summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2012-01-16 14:30:05 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2012-01-16 14:30:05 +0000
commit3ba1963110e3e3bbc08a8c51b37034b3d4d44d3e (patch)
tree07940e83d515268898c125ab6ca3c43e482dfac5
parentc0cc66c3d7b7bf2dab40d4d28a999b60ab70c608 (diff)
downloadtar-3ba1963110e3e3bbc08a8c51b37034b3d4d44d3e.tar.gz
add output of bootstrapbaserock/bootstrap-deprecated
alters .gitignores and removes bootstrap step from morph
-rw-r--r--.gitignore23
-rw-r--r--ABOUT-NLS1101
-rw-r--r--ChangeLog2
-rw-r--r--INSTALL371
-rw-r--r--Make.rules69
-rw-r--r--Makefile.in1658
-rw-r--r--aclocal.m41243
-rw-r--r--autom4te.cache/output.034479
-rw-r--r--autom4te.cache/output.134479
-rw-r--r--autom4te.cache/requests866
-rw-r--r--autom4te.cache/traces.021023
-rw-r--r--autom4te.cache/traces.16021
-rw-r--r--build-aux/.gitignore0
-rwxr-xr-xbuild-aux/compile143
-rwxr-xr-xbuild-aux/config.guess1522
-rwxr-xr-xbuild-aux/config.rpath690
-rwxr-xr-xbuild-aux/config.sub1766
-rwxr-xr-xbuild-aux/depcomp688
-rwxr-xr-xbuild-aux/gitlog-to-changelog377
-rwxr-xr-xbuild-aux/install-sh527
-rwxr-xr-xbuild-aux/mdate-sh225
-rwxr-xr-xbuild-aux/missing331
-rw-r--r--build-aux/snippet/.gitignore0
-rw-r--r--build-aux/snippet/_Noreturn.h10
-rw-r--r--build-aux/snippet/arg-nonnull.h28
-rw-r--r--build-aux/snippet/c++defs.h273
-rw-r--r--build-aux/snippet/warn-on-use.h111
-rw-r--r--build-aux/texinfo.tex9913
-rwxr-xr-xbuild-aux/ylwrap222
-rw-r--r--config.h.in2362
-rwxr-xr-xconfigure34479
-rw-r--r--doc/.gitignore26
-rw-r--r--doc/Makefile.in1611
-rw-r--r--doc/genfile.texi348
-rw-r--r--doc/parse-datetime.texi588
-rw-r--r--gnu/.gitignore0
-rw-r--r--gnu/Makefile.am3112
-rw-r--r--gnu/Makefile.in3171
-rw-r--r--gnu/alloca.c480
-rw-r--r--gnu/alloca.in.h58
-rw-r--r--gnu/allocator.c7
-rw-r--r--gnu/allocator.h60
-rw-r--r--gnu/anytostr.c57
-rw-r--r--gnu/areadlink.c41
-rw-r--r--gnu/areadlink.h35
-rw-r--r--gnu/areadlinkat.c67
-rw-r--r--gnu/argmatch.c279
-rw-r--r--gnu/argmatch.h105
-rw-r--r--gnu/argp-ba.c36
-rw-r--r--gnu/argp-eexst.c32
-rw-r--r--gnu/argp-fmtstream.c437
-rw-r--r--gnu/argp-fmtstream.h356
-rw-r--r--gnu/argp-fs-xinl.c44
-rw-r--r--gnu/argp-help.c1956
-rw-r--r--gnu/argp-namefrob.h159
-rw-r--r--gnu/argp-parse.c955
-rw-r--r--gnu/argp-pin.c29
-rw-r--r--gnu/argp-pv.c36
-rw-r--r--gnu/argp-pvh.c33
-rw-r--r--gnu/argp-version-etc.c40
-rw-r--r--gnu/argp-version-etc.h42
-rw-r--r--gnu/argp-xinl.c44
-rw-r--r--gnu/argp.h647
-rw-r--r--gnu/asnprintf.c37
-rw-r--r--gnu/asprintf.c42
-rw-r--r--gnu/at-func.c133
-rw-r--r--gnu/at-func2.c284
-rw-r--r--gnu/backupfile.c357
-rw-r--r--gnu/backupfile.h61
-rw-r--r--gnu/basename-lgpl.c77
-rw-r--r--gnu/basename.c60
-rw-r--r--gnu/bitrotate.h128
-rw-r--r--gnu/btowc.c41
-rw-r--r--gnu/c-ctype.c398
-rw-r--r--gnu/c-ctype.h297
-rw-r--r--gnu/c-strcase.h59
-rw-r--r--gnu/c-strcasecmp.c59
-rw-r--r--gnu/c-strcaseeq.h186
-rw-r--r--gnu/c-strncasecmp.c59
-rw-r--r--gnu/canonicalize-lgpl.c380
-rw-r--r--gnu/careadlinkat.c177
-rw-r--r--gnu/careadlinkat.h74
-rw-r--r--gnu/chdir-long.c268
-rw-r--r--gnu/chdir-long.h32
-rw-r--r--gnu/chown.c158
-rw-r--r--gnu/cloexec.c85
-rw-r--r--gnu/cloexec.h40
-rw-r--r--gnu/close-stream.c80
-rw-r--r--gnu/close-stream.h4
-rw-r--r--gnu/close.c71
-rw-r--r--gnu/closedir.c69
-rw-r--r--gnu/closeout.c126
-rw-r--r--gnu/closeout.h38
-rw-r--r--gnu/config.charset685
-rw-r--r--gnu/dirent--.h25
-rw-r--r--gnu/dirent-private.h42
-rw-r--r--gnu/dirent-safer.h24
-rw-r--r--gnu/dirent.in.h251
-rw-r--r--gnu/dirfd.c34
-rw-r--r--gnu/dirname-lgpl.c88
-rw-r--r--gnu/dirname.c40
-rw-r--r--gnu/dirname.h48
-rw-r--r--gnu/dosname.h55
-rw-r--r--gnu/dup-safer.c36
-rw-r--r--gnu/dup.c63
-rw-r--r--gnu/dup2.c159
-rw-r--r--gnu/errno.in.h235
-rw-r--r--gnu/error.c403
-rw-r--r--gnu/error.h67
-rw-r--r--gnu/exclude.c580
-rw-r--r--gnu/exclude.h54
-rw-r--r--gnu/exitfail.c26
-rw-r--r--gnu/exitfail.h20
-rw-r--r--gnu/fchdir.c210
-rw-r--r--gnu/fchown-stub.c18
-rw-r--r--gnu/fcntl.c313
-rw-r--r--gnu/fcntl.in.h333
-rw-r--r--gnu/fd-hook.c118
-rw-r--r--gnu/fd-hook.h121
-rw-r--r--gnu/fd-safer.c51
-rw-r--r--gnu/fdopendir.c206
-rw-r--r--gnu/fdutimensat.c59
-rw-r--r--gnu/fileblocks.c76
-rw-r--r--gnu/filename.h56
-rw-r--r--gnu/filenamecat-lgpl.c90
-rw-r--r--gnu/filenamecat.h29
-rw-r--r--gnu/float+.h150
-rw-r--r--gnu/float.c35
-rw-r--r--gnu/float.in.h190
-rw-r--r--gnu/fnmatch.c353
-rw-r--r--gnu/fnmatch.in.h70
-rw-r--r--gnu/fnmatch_loop.c1222
-rw-r--r--gnu/fpending.c32
-rw-r--r--gnu/fpending.h36
-rw-r--r--gnu/fseek.c32
-rw-r--r--gnu/fseeko.c145
-rw-r--r--gnu/fstat.c84
-rw-r--r--gnu/fstatat.c137
-rw-r--r--gnu/full-write.c81
-rw-r--r--gnu/full-write.h36
-rw-r--r--gnu/futimens.c39
-rw-r--r--gnu/getcwd-lgpl.c127
-rw-r--r--gnu/getcwd.c444
-rw-r--r--gnu/getdelim.c139
-rw-r--r--gnu/getdtablesize.c88
-rw-r--r--gnu/getline.c31
-rw-r--r--gnu/getopt.c1247
-rw-r--r--gnu/getopt.in.h255
-rw-r--r--gnu/getopt1.c172
-rw-r--r--gnu/getopt_int.h137
-rw-r--r--gnu/getpagesize.c41
-rw-r--r--gnu/gettext.h288
-rw-r--r--gnu/gettime.c50
-rw-r--r--gnu/gettimeofday.c146
-rw-r--r--gnu/hash.c1235
-rw-r--r--gnu/hash.h109
-rw-r--r--gnu/human.c472
-rw-r--r--gnu/human.h85
-rw-r--r--gnu/imaxtostr.c5
-rw-r--r--gnu/intprops.h321
-rw-r--r--gnu/inttostr.c5
-rw-r--r--gnu/inttostr.h48
-rw-r--r--gnu/inttypes.in.h1132
-rw-r--r--gnu/iswblank.c29
-rw-r--r--gnu/itold.c30
-rw-r--r--gnu/langinfo.in.h179
-rw-r--r--gnu/lchown.c119
-rw-r--r--gnu/link.c214
-rw-r--r--gnu/linkat.c345
-rw-r--r--gnu/localcharset.c549
-rw-r--r--gnu/localcharset.h43
-rw-r--r--gnu/lseek.c66
-rw-r--r--gnu/lstat.c99
-rw-r--r--gnu/malloc.c59
-rw-r--r--gnu/malloca.c141
-rw-r--r--gnu/malloca.h136
-rw-r--r--gnu/malloca.valgrind7
-rw-r--r--gnu/mbchar.c37
-rw-r--r--gnu/mbchar.h352
-rw-r--r--gnu/mbrtowc.c398
-rw-r--r--gnu/mbscasecmp.c100
-rw-r--r--gnu/mbsinit.c63
-rw-r--r--gnu/mbsrtowcs-impl.h124
-rw-r--r--gnu/mbsrtowcs-state.c39
-rw-r--r--gnu/mbsrtowcs.c34
-rw-r--r--gnu/mbtowc-impl.h46
-rw-r--r--gnu/mbtowc.c28
-rw-r--r--gnu/mbuiter.h224
-rw-r--r--gnu/memchr.c174
-rw-r--r--gnu/memchr.valgrind14
-rw-r--r--gnu/mempcpy.c31
-rw-r--r--gnu/memrchr.c163
-rw-r--r--gnu/mkdtemp.c41
-rw-r--r--gnu/mkfifo.c60
-rw-r--r--gnu/mkfifoat.c57
-rw-r--r--gnu/mknod.c76
-rw-r--r--gnu/mknodat.c59
-rw-r--r--gnu/mktime-internal.h6
-rw-r--r--gnu/mktime.c741
-rw-r--r--gnu/modechange.c387
-rw-r--r--gnu/modechange.h32
-rw-r--r--gnu/msvc-inval.c132
-rw-r--r--gnu/msvc-inval.h225
-rw-r--r--gnu/msvc-nothrow.c52
-rw-r--r--gnu/msvc-nothrow.h46
-rw-r--r--gnu/nl_langinfo.c273
-rw-r--r--gnu/obstack.c422
-rw-r--r--gnu/obstack.h514
-rw-r--r--gnu/offtostr.c5
-rw-r--r--gnu/open.c183
-rw-r--r--gnu/openat-die.c64
-rw-r--r--gnu/openat-priv.h66
-rw-r--r--gnu/openat-proc.c112
-rw-r--r--gnu/openat.c288
-rw-r--r--gnu/openat.h106
-rw-r--r--gnu/opendir-safer.c78
-rw-r--r--gnu/opendir.c150
-rw-r--r--gnu/parse-datetime.h24
-rw-r--r--gnu/parse-datetime.y1617
-rw-r--r--gnu/pathmax.h86
-rw-r--r--gnu/pipe-safer.c58
-rw-r--r--gnu/printf-args.c190
-rw-r--r--gnu/printf-args.h161
-rw-r--r--gnu/printf-parse.c641
-rw-r--r--gnu/printf-parse.h196
-rw-r--r--gnu/priv-set.c144
-rw-r--r--gnu/priv-set.h52
-rw-r--r--gnu/progname.c94
-rw-r--r--gnu/progname.h64
-rw-r--r--gnu/quote.c42
-rw-r--r--gnu/quote.h22
-rw-r--r--gnu/quotearg.c930
-rw-r--r--gnu/quotearg.h393
-rw-r--r--gnu/raise.c81
-rw-r--r--gnu/rawmemchr.c138
-rw-r--r--gnu/rawmemchr.valgrind12
-rw-r--r--gnu/read.c87
-rw-r--r--gnu/readdir.c100
-rw-r--r--gnu/readlink.c76
-rw-r--r--gnu/readlinkat.c49
-rw-r--r--gnu/realloc.c81
-rw-r--r--gnu/ref-add.sin30
-rw-r--r--gnu/ref-del.sin25
-rw-r--r--gnu/regcomp.c3878
-rw-r--r--gnu/regex.c74
-rw-r--r--gnu/regex.h677
-rw-r--r--gnu/regex_internal.c1743
-rw-r--r--gnu/regex_internal.h868
-rw-r--r--gnu/regexec.c4419
-rw-r--r--gnu/rename.c475
-rw-r--r--gnu/renameat.c159
-rw-r--r--gnu/rewinddir.c51
-rw-r--r--gnu/rmdir.c55
-rw-r--r--gnu/rpmatch.c175
-rw-r--r--gnu/safe-read.c79
-rw-r--r--gnu/safe-read.h49
-rw-r--r--gnu/safe-write.c20
-rw-r--r--gnu/safe-write.h39
-rw-r--r--gnu/same-inode.h35
-rw-r--r--gnu/save-cwd.c101
-rw-r--r--gnu/save-cwd.h36
-rw-r--r--gnu/savedir.c147
-rw-r--r--gnu/savedir.h31
-rw-r--r--gnu/setenv.c392
-rw-r--r--gnu/signal.in.h449
-rw-r--r--gnu/size_max.h33
-rw-r--r--gnu/sleep.c78
-rw-r--r--gnu/snprintf.c74
-rw-r--r--gnu/stat-macros.h5
-rw-r--r--gnu/stat-time.h191
-rw-r--r--gnu/stat.c125
-rw-r--r--gnu/stdalign.in.h93
-rw-r--r--gnu/stdarg.in.h38
-rw-r--r--gnu/stdbool.in.h124
-rw-r--r--gnu/stddef.in.h89
-rw-r--r--gnu/stdint.in.h611
-rw-r--r--gnu/stdio-impl.h112
-rw-r--r--gnu/stdio.in.h1352
-rw-r--r--gnu/stdlib.in.h920
-rw-r--r--gnu/stpcpy.c51
-rw-r--r--gnu/strcasecmp.c65
-rw-r--r--gnu/strchrnul.c144
-rw-r--r--gnu/strchrnul.valgrind12
-rw-r--r--gnu/strdup.c57
-rw-r--r--gnu/streq.h178
-rw-r--r--gnu/strerror-override.c291
-rw-r--r--gnu/strerror-override.h54
-rw-r--r--gnu/strerror.c72
-rw-r--r--gnu/string.in.h1013
-rw-r--r--gnu/strings.in.h125
-rw-r--r--gnu/stripslash.c47
-rw-r--r--gnu/strncasecmp.c65
-rw-r--r--gnu/strndup.c39
-rw-r--r--gnu/strnlen.c33
-rw-r--r--gnu/strnlen1.c37
-rw-r--r--gnu/strnlen1.h42
-rw-r--r--gnu/strtoimax.c77
-rw-r--r--gnu/strtol.c435
-rw-r--r--gnu/strtoul.c21
-rw-r--r--gnu/strtoull.c28
-rw-r--r--gnu/strtoumax.c4
-rw-r--r--gnu/symlink.c59
-rw-r--r--gnu/symlinkat.c78
-rw-r--r--gnu/sys_stat.in.h681
-rw-r--r--gnu/sys_time.in.h202
-rw-r--r--gnu/sys_types.in.h42
-rw-r--r--gnu/sysexits.in.h74
-rw-r--r--gnu/tempname.c311
-rw-r--r--gnu/tempname.h52
-rw-r--r--gnu/time.in.h251
-rw-r--r--gnu/time_r.c47
-rw-r--r--gnu/timespec.h84
-rw-r--r--gnu/uinttostr.c5
-rw-r--r--gnu/umaxtostr.c5
-rw-r--r--gnu/unistd--.h34
-rw-r--r--gnu/unistd-safer.h33
-rw-r--r--gnu/unistd.in.h1528
-rw-r--r--gnu/unitypes.in.h28
-rw-r--r--gnu/uniwidth.in.h71
-rw-r--r--gnu/uniwidth/.gitignore0
-rw-r--r--gnu/uniwidth/cjk.h39
-rw-r--r--gnu/uniwidth/width.c370
-rw-r--r--gnu/unlinkdir.c56
-rw-r--r--gnu/unlinkdir.h28
-rw-r--r--gnu/unlocked-io.h138
-rw-r--r--gnu/unsetenv.c129
-rw-r--r--gnu/utimens.c535
-rw-r--r--gnu/utimens.h21
-rw-r--r--gnu/utimensat.c156
-rw-r--r--gnu/vasnprintf.c5609
-rw-r--r--gnu/vasnprintf.h82
-rw-r--r--gnu/vasprintf.c53
-rw-r--r--gnu/verify.h243
-rw-r--r--gnu/version-etc-fsf.c32
-rw-r--r--gnu/version-etc.c260
-rw-r--r--gnu/version-etc.h80
-rw-r--r--gnu/vsnprintf.c73
-rw-r--r--gnu/wchar.in.h1008
-rw-r--r--gnu/wcrtomb.c55
-rw-r--r--gnu/wctype.in.h501
-rw-r--r--gnu/wcwidth.c52
-rw-r--r--gnu/write.c147
-rw-r--r--gnu/xalloc-die.c43
-rw-r--r--gnu/xalloc-oversized.h40
-rw-r--r--gnu/xalloc.h273
-rw-r--r--gnu/xasprintf.c36
-rw-r--r--gnu/xgetcwd.c43
-rw-r--r--gnu/xgetcwd.h19
-rw-r--r--gnu/xmalloc.c126
-rw-r--r--gnu/xsize.h110
-rw-r--r--gnu/xstrndup.c38
-rw-r--r--gnu/xstrndup.h25
-rw-r--r--gnu/xstrtol-error.c100
-rw-r--r--gnu/xstrtol.c243
-rw-r--r--gnu/xstrtol.h75
-rw-r--r--gnu/xstrtoul.c8
-rw-r--r--gnu/xstrtoumax.c8
-rw-r--r--gnu/xvasprintf.c112
-rw-r--r--gnu/xvasprintf.h57
m---------gnulib0
-rw-r--r--lib/.gitignore10
-rw-r--r--lib/Makefile.in1354
-rw-r--r--lib/paxerror.c359
-rw-r--r--lib/paxexit-status.c3
-rw-r--r--lib/paxexit.c26
-rw-r--r--lib/paxlib.h112
-rw-r--r--lib/paxnames.c164
-rw-r--r--lib/rmt.h99
-rw-r--r--lib/rtapelib.c750
-rw-r--r--lib/system-ioctl.h55
-rw-r--r--lib/system.h480
-rw-r--r--m4/.gitignore0
-rw-r--r--m4/00gnulib.m430
-rw-r--r--m4/alloca.m4121
-rw-r--r--m4/argp.m465
-rw-r--r--m4/backupfile.m413
-rw-r--r--m4/bison.m424
-rw-r--r--m4/btowc.m4116
-rw-r--r--m4/canonicalize.m4101
-rw-r--r--m4/chdir-long.m434
-rw-r--r--m4/chown.m4135
-rw-r--r--m4/clock_time.m431
-rw-r--r--m4/close-stream.m411
-rw-r--r--m4/close.m433
-rw-r--r--m4/closedir.m425
-rw-r--r--m4/closeout.m412
-rw-r--r--m4/codeset.m423
-rw-r--r--m4/configmake.m450
-rw-r--r--m4/d-ino.m446
-rw-r--r--m4/dirent-safer.m410
-rw-r--r--m4/dirent_h.m464
-rw-r--r--m4/dirfd.m483
-rw-r--r--m4/dirname.m419
-rw-r--r--m4/double-slash-root.m438
-rw-r--r--m4/dup.m427
-rw-r--r--m4/dup2.m478
-rw-r--r--m4/eealloc.m432
-rw-r--r--m4/environ.m447
-rw-r--r--m4/errno_h.m4125
-rw-r--r--m4/error.m428
-rw-r--r--m4/exponentd.m4115
-rw-r--r--m4/extensions.m4123
-rw-r--r--m4/fchdir.m451
-rw-r--r--m4/fcntl-o.m4123
-rw-r--r--m4/fcntl.m495
-rw-r--r--m4/fcntl_h.m450
-rw-r--r--m4/fdopendir.m451
-rw-r--r--m4/fileblocks.m423
-rw-r--r--m4/filenamecat.m416
-rw-r--r--m4/float_h.m498
-rw-r--r--m4/fnmatch.m4156
-rw-r--r--m4/fpending.m487
-rw-r--r--m4/fseek.m415
-rw-r--r--m4/fseeko.m461
-rw-r--r--m4/fstat.m428
-rw-r--r--m4/fstatat.m460
-rw-r--r--m4/futimens.m459
-rw-r--r--m4/getcwd-abort-bug.m4129
-rw-r--r--m4/getcwd-path-max.m4201
-rw-r--r--m4/getcwd.m4156
-rw-r--r--m4/getdelim.m486
-rw-r--r--m4/getdtablesize.m419
-rw-r--r--m4/getline.m494
-rw-r--r--m4/getopt.m4341
-rw-r--r--m4/getpagesize.m432
-rw-r--r--m4/gettext.m4402
-rw-r--r--m4/gettime.m413
-rw-r--r--m4/gettimeofday.m4125
-rw-r--r--m4/glibc21.m434
-rw-r--r--m4/gnulib-cache.m4115
-rw-r--r--m4/gnulib-common.m4372
-rw-r--r--m4/gnulib-comp.m41647
-rw-r--r--m4/gnulib-tool.m457
-rw-r--r--m4/human.m411
-rw-r--r--m4/iconv.m4268
-rw-r--r--m4/include_next.m4270
-rw-r--r--m4/inline.m440
-rw-r--r--m4/intl.m4300
-rw-r--r--m4/intldir.m419
-rw-r--r--m4/intlmacosx.m456
-rw-r--r--m4/intmax.m436
-rw-r--r--m4/intmax_t.m467
-rw-r--r--m4/inttostr.m432
-rw-r--r--m4/inttypes-pri.m442
-rw-r--r--m4/inttypes.m4157
-rw-r--r--m4/inttypes_h.m429
-rw-r--r--m4/iswblank.m441
-rw-r--r--m4/langinfo_h.m4105
-rw-r--r--m4/largefile.m4104
-rw-r--r--m4/lchown.m428
-rw-r--r--m4/lib-ld.m4109
-rw-r--r--m4/lib-link.m4777
-rw-r--r--m4/lib-prefix.m4224
-rw-r--r--m4/libunistring-base.m4141
-rw-r--r--m4/link-follow.m499
-rw-r--r--m4/link.m445
-rw-r--r--m4/linkat.m495
-rw-r--r--m4/localcharset.m417
-rw-r--r--m4/locale-fr.m4246
-rw-r--r--m4/locale-ja.m4136
-rw-r--r--m4/locale-zh.m4130
-rw-r--r--m4/longdouble.m433
-rw-r--r--m4/longlong.m4113
-rw-r--r--m4/lseek.m448
-rw-r--r--m4/lstat.m470
-rw-r--r--m4/malloc.m460
-rw-r--r--m4/malloca.m415
-rw-r--r--m4/math_h.m4243
-rw-r--r--m4/mbchar.m414
-rw-r--r--m4/mbiter.m415
-rw-r--r--m4/mbrtowc.m4572
-rw-r--r--m4/mbsinit.m451
-rw-r--r--m4/mbsrtowcs.m4155
-rw-r--r--m4/mbstate_t.m441
-rw-r--r--m4/mbtowc.m419
-rw-r--r--m4/memchr.m488
-rw-r--r--m4/mempcpy.m426
-rw-r--r--m4/memrchr.m423
-rw-r--r--m4/mkdtemp.m420
-rw-r--r--m4/mkfifo.m448
-rw-r--r--m4/mkfifoat.m422
-rw-r--r--m4/mknod.m448
-rw-r--r--m4/mktime.m4250
-rw-r--r--m4/mmap-anon.m455
-rw-r--r--m4/mode_t.m426
-rw-r--r--m4/modechange.m411
-rw-r--r--m4/msvc-inval.m419
-rw-r--r--m4/msvc-nothrow.m410
-rw-r--r--m4/multiarch.m462
-rw-r--r--m4/nl_langinfo.m450
-rw-r--r--m4/nls.m432
-rw-r--r--m4/nocrash.m4130
-rw-r--r--m4/open.m492
-rw-r--r--m4/openat.m437
-rw-r--r--m4/opendir.m425
-rw-r--r--m4/parse-datetime.m455
-rw-r--r--m4/pathmax.m442
-rw-r--r--m4/paxutils.m47
-rw-r--r--m4/po.m4452
-rw-r--r--m4/printf.m41569
-rw-r--r--m4/priv-set.m416
-rw-r--r--m4/progtest.m491
-rw-r--r--m4/quote.m413
-rw-r--r--m4/quotearg.m410
-rw-r--r--m4/raise.m436
-rw-r--r--m4/rawmemchr.m420
-rw-r--r--m4/read.m429
-rw-r--r--m4/readdir.m415
-rw-r--r--m4/readlink.m459
-rw-r--r--m4/readlinkat.m420
-rw-r--r--m4/realloc.m438
-rw-r--r--m4/regex.m4223
-rw-r--r--m4/rename.m4189
-rw-r--r--m4/renameat.m424
-rw-r--r--m4/rewinddir.m415
-rw-r--r--m4/rmdir.m439
-rw-r--r--m4/rmt.m471
-rw-r--r--m4/rpmatch.m431
-rw-r--r--m4/rtapelib.m43
-rw-r--r--m4/safe-read.m412
-rw-r--r--m4/safe-write.m411
-rw-r--r--m4/save-cwd.m411
-rw-r--r--m4/savedir.m411
-rw-r--r--m4/setenv.m4140
-rw-r--r--m4/signal_h.m483
-rw-r--r--m4/size_max.m479
-rw-r--r--m4/sleep.m452
-rw-r--r--m4/snprintf.m454
-rw-r--r--m4/ssize_t.m423
-rw-r--r--m4/stat-time.m485
-rw-r--r--m4/stat.m468
-rw-r--r--m4/stdalign.m437
-rw-r--r--m4/stdarg.m478
-rw-r--r--m4/stdbool.m4100
-rw-r--r--m4/stddef_h.m447
-rw-r--r--m4/stdint.m4484
-rw-r--r--m4/stdint_h.m427
-rw-r--r--m4/stdio_h.m4195
-rw-r--r--m4/stdlib_h.m4114
-rw-r--r--m4/stpcpy.m425
-rw-r--r--m4/strcase.m445
-rw-r--r--m4/strchrnul.m450
-rw-r--r--m4/strdup.m436
-rw-r--r--m4/strerror.m478
-rw-r--r--m4/string_h.m4120
-rw-r--r--m4/strings_h.m452
-rw-r--r--m4/strndup.m455
-rw-r--r--m4/strnlen.m430
-rw-r--r--m4/strtol.m410
-rw-r--r--m4/strtoul.m410
-rw-r--r--m4/strtoull.m424
-rw-r--r--m4/strtoumax.m423
-rw-r--r--m4/symlink.m443
-rw-r--r--m4/symlinkat.m420
-rw-r--r--m4/sys_socket_h.m4177
-rw-r--r--m4/sys_stat_h.m486
-rw-r--r--m4/sys_time_h.m478
-rw-r--r--m4/sys_types_h.m421
-rw-r--r--m4/sysexits.m444
-rw-r--r--m4/system.m431
-rw-r--r--m4/tempname.m419
-rw-r--r--m4/threadlib.m4371
-rw-r--r--m4/time_h.m4109
-rw-r--r--m4/time_r.m458
-rw-r--r--m4/timespec.m415
-rw-r--r--m4/tm_gmtoff.m414
-rw-r--r--m4/unistd-safer.m410
-rw-r--r--m4/unistd_h.m4183
-rw-r--r--m4/unlinkdir.m432
-rw-r--r--m4/unlocked-io.m441
-rw-r--r--m4/utimbuf.m439
-rw-r--r--m4/utimens.m440
-rw-r--r--m4/utimensat.m471
-rw-r--r--m4/utimes.m4136
-rw-r--r--m4/vasnprintf.m4292
-rw-r--r--m4/vasprintf.m446
-rw-r--r--m4/version-etc.m433
-rw-r--r--m4/vsnprintf.m454
-rw-r--r--m4/warn-on-use.m447
-rw-r--r--m4/wchar_h.m4225
-rw-r--r--m4/wchar_t.m424
-rw-r--r--m4/wcrtomb.m4112
-rw-r--r--m4/wctype_h.m4211
-rw-r--r--m4/wcwidth.m498
-rw-r--r--m4/wint_t.m432
-rw-r--r--m4/write.m435
-rw-r--r--m4/xalloc.m422
-rw-r--r--m4/xgetcwd.m410
-rw-r--r--m4/xsize.m413
-rw-r--r--m4/xstrndup.m415
-rw-r--r--m4/xstrtol.m410
-rw-r--r--m4/xvasprintf.m411
m---------paxutils0
-rw-r--r--po/.gitignore21
-rw-r--r--po/.reference/bg.po2412
-rw-r--r--po/.reference/bg.s11
-rw-r--r--po/.reference/ca.po2615
-rw-r--r--po/.reference/ca.s11
-rw-r--r--po/.reference/cs.po3135
-rw-r--r--po/.reference/cs.s11
-rw-r--r--po/.reference/da.po2620
-rw-r--r--po/.reference/da.s11
-rw-r--r--po/.reference/de.po2730
-rw-r--r--po/.reference/de.s11
-rw-r--r--po/.reference/el.po1366
-rw-r--r--po/.reference/el.s11
-rw-r--r--po/.reference/es.po2776
-rw-r--r--po/.reference/es.s11
-rw-r--r--po/.reference/et.po2614
-rw-r--r--po/.reference/et.s11
-rw-r--r--po/.reference/eu.po2267
-rw-r--r--po/.reference/eu.s11
-rw-r--r--po/.reference/fi.po2890
-rw-r--r--po/.reference/fi.s11
-rw-r--r--po/.reference/fr.po2694
-rw-r--r--po/.reference/fr.s11
-rw-r--r--po/.reference/ga.po2724
-rw-r--r--po/.reference/ga.s11
-rw-r--r--po/.reference/gl.po1627
-rw-r--r--po/.reference/gl.s11
-rw-r--r--po/.reference/hr.po1419
-rw-r--r--po/.reference/hr.s11
-rw-r--r--po/.reference/hu.po2619
-rw-r--r--po/.reference/hu.s11
-rw-r--r--po/.reference/id.po3071
-rw-r--r--po/.reference/id.s11
-rw-r--r--po/.reference/it.po2636
-rw-r--r--po/.reference/it.s11
-rw-r--r--po/.reference/ja.po2620
-rw-r--r--po/.reference/ja.s11
-rw-r--r--po/.reference/ko.po1454
-rw-r--r--po/.reference/ko.s11
-rw-r--r--po/.reference/ky.po2319
-rw-r--r--po/.reference/ky.s11
-rw-r--r--po/.reference/ms.po1271
-rw-r--r--po/.reference/ms.s11
-rw-r--r--po/.reference/nb.po1376
-rw-r--r--po/.reference/nb.s11
-rw-r--r--po/.reference/nl.po2632
-rw-r--r--po/.reference/nl.s11
-rw-r--r--po/.reference/pl.po2624
-rw-r--r--po/.reference/pl.s11
-rw-r--r--po/.reference/pt.po1606
-rw-r--r--po/.reference/pt.s11
-rw-r--r--po/.reference/pt_BR.po1375
-rw-r--r--po/.reference/pt_BR.s11
-rw-r--r--po/.reference/ro.po1759
-rw-r--r--po/.reference/ro.s11
-rw-r--r--po/.reference/ru.po2695
-rw-r--r--po/.reference/ru.s11
-rw-r--r--po/.reference/sk.po1382
-rw-r--r--po/.reference/sk.s11
-rw-r--r--po/.reference/sl.po3553
-rw-r--r--po/.reference/sl.s11
-rw-r--r--po/.reference/sv.po2618
-rw-r--r--po/.reference/sv.s11
-rw-r--r--po/.reference/tr.po2305
-rw-r--r--po/.reference/tr.s11
-rw-r--r--po/.reference/uk.po2632
-rw-r--r--po/.reference/uk.s11
-rw-r--r--po/.reference/vi.po2631
-rw-r--r--po/.reference/vi.s11
-rw-r--r--po/.reference/zh_CN.po3044
-rw-r--r--po/.reference/zh_CN.s11
-rw-r--r--po/.reference/zh_TW.po2543
-rw-r--r--po/.reference/zh_TW.s11
-rw-r--r--po/LINGUAS36
-rw-r--r--po/Makefile.in.in405
-rw-r--r--po/Makevars59
-rw-r--r--po/Makevars.template43
-rw-r--r--po/Rules-quot47
-rw-r--r--po/bg.po2412
-rw-r--r--po/boldquot.sed10
-rw-r--r--po/ca.po2615
-rw-r--r--po/cs.po3135
-rw-r--r--po/da.po2620
-rw-r--r--po/de.po2730
-rw-r--r--po/el.po1366
-rw-r--r--po/en@boldquot.header25
-rw-r--r--po/en@quot.header22
-rw-r--r--po/es.po2776
-rw-r--r--po/et.po2614
-rw-r--r--po/eu.po2267
-rw-r--r--po/fi.po2890
-rw-r--r--po/fr.po2694
-rw-r--r--po/ga.po2724
-rw-r--r--po/gl.po1627
-rw-r--r--po/hr.po1419
-rw-r--r--po/hu.po2619
-rw-r--r--po/id.po3071
-rw-r--r--po/insert-header.sin23
-rw-r--r--po/it.po2636
-rw-r--r--po/ja.po2620
-rw-r--r--po/ko.po1454
-rw-r--r--po/ky.po2319
-rw-r--r--po/ms.po1271
-rw-r--r--po/nb.po1376
-rw-r--r--po/nl.po2632
-rw-r--r--po/pl.po2624
-rw-r--r--po/pt.po1606
-rw-r--r--po/pt_BR.po1375
-rw-r--r--po/quot.sed6
-rw-r--r--po/remove-potcdate.sin19
-rw-r--r--po/ro.po1759
-rw-r--r--po/ru.po2695
-rw-r--r--po/sk.po1382
-rw-r--r--po/sl.po3553
-rw-r--r--po/sv.po2618
-rw-r--r--po/tr.po2305
-rw-r--r--po/uk.po2632
-rw-r--r--po/vi.po2631
-rw-r--r--po/zh_CN.po3044
-rw-r--r--po/zh_TW.po2543
-rw-r--r--rmt/Makefile.am13
-rw-r--r--rmt/Makefile.in1361
-rw-r--r--rmt/rmt.c831
-rw-r--r--scripts/Makefile.in1356
-rw-r--r--src/.gitignore1
-rw-r--r--src/Makefile.in1416
-rw-r--r--tar.morph1
-rw-r--r--tests/.gitignore10
-rw-r--r--tests/Makefile.in1485
-rw-r--r--tests/argcv.c400
-rw-r--r--tests/argcv.h50
-rw-r--r--tests/genfile.c910
725 files changed, 438395 insertions, 90 deletions
diff --git a/.gitignore b/.gitignore
index 1abb25e5..c242e384 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,25 +8,4 @@
.deps
.emacs*
.libs
-ABOUT-NLS
-ChangeLog
-INSTALL
-Make.rules
-Makefile
-Makefile.in
-aclocal.m4
-autom4te.cache
-build-aux
-build-aux/
-config.h
-config.h.in
-config.log
-config.status
-configure
-gnu
-gnulib
-libtool
-m4
-paxutils
-rmt
-stamp-h1
+
diff --git a/ABOUT-NLS b/ABOUT-NLS
new file mode 100644
index 00000000..ec20977e
--- /dev/null
+++ b/ABOUT-NLS
@@ -0,0 +1,1101 @@
+1 Notes on the Free Translation Project
+***************************************
+
+Free software is going international! The Free Translation Project is
+a way to get maintainers of free software, translators, and users all
+together, so that free software will gradually become able to speak many
+languages. A few packages already provide translations for their
+messages.
+
+ If you found this `ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU `gettext' internally,
+itself available at your nearest GNU archive site. But you do _not_
+need to install GNU `gettext' prior to configuring, installing or using
+this package with messages translated.
+
+ Installers will find here some useful hints. These notes also
+explain how users should proceed for getting the programs to use the
+available translations. They tell how people wanting to contribute and
+work on translations can contact the appropriate team.
+
+ When reporting bugs in the `intl/' directory or bugs which may be
+related to internationalization, you should tell about the version of
+`gettext' which is used. The information can be found in the
+`intl/VERSION' file, in internationalized packages.
+
+1.1 Quick configuration advice
+==============================
+
+If you want to exploit the full power of internationalization, you
+should configure it using
+
+ ./configure --with-included-gettext
+
+to force usage of internationalizing routines provided within this
+package, despite the existence of internationalizing capabilities in the
+operating system where this package is being installed. So far, only
+the `gettext' implementation in the GNU C library version 2 provides as
+many features (such as locale alias, message inheritance, automatic
+charset conversion or plural form handling) as the implementation here.
+It is also not possible to offer this additional functionality on top
+of a `catgets' implementation. Future versions of GNU `gettext' will
+very likely convey even more functionality. So it might be a good idea
+to change to GNU `gettext' as soon as possible.
+
+ So you need _not_ provide this option if you are using GNU libc 2 or
+you have installed a recent copy of the GNU gettext package with the
+included `libintl'.
+
+1.2 INSTALL Matters
+===================
+
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language. Most such
+packages use GNU `gettext'. Other packages have their own ways to
+internationalization, predating GNU `gettext'.
+
+ By default, this package will be installed to allow translation of
+messages. It will automatically detect whether the system already
+provides the GNU `gettext' functions. If not, the included GNU
+`gettext' library will be used. This library is wholly contained
+within this package, usually in the `intl/' subdirectory, so prior
+installation of the GNU `gettext' package is _not_ required.
+Installers may use special options at configuration time for changing
+the default behaviour. The commands:
+
+ ./configure --with-included-gettext
+ ./configure --disable-nls
+
+will, respectively, bypass any pre-existing `gettext' to use the
+internationalizing routines provided within this package, or else,
+_totally_ disable translation of messages.
+
+ When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl.a' file and
+will decide to use this. This might not be desirable. You should use
+the more recent version of the GNU `gettext' library. I.e. if the file
+`intl/VERSION' shows that the library which comes with this package is
+more recent, you should use
+
+ ./configure --with-included-gettext
+
+to prevent auto-detection.
+
+ The configuration process will not test for the `catgets' function
+and therefore it will not be used. The reason is that even an
+emulation of `gettext' on top of `catgets' could not provide all the
+extensions of the GNU `gettext' library.
+
+ Internationalized packages usually have many `po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language. Unless
+translations have been forbidden at `configure' time by using the
+`--disable-nls' switch, all available translations are installed
+together with the package. However, the environment variable `LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+`LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+1.3 Using This Package
+======================
+
+As a user, if your language has been installed for this package, you
+only have to set the `LANG' environment variable to the appropriate
+`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
+and `CC' is an ISO 3166 two-letter country code. For example, let's
+suppose that you speak German and live in Germany. At the shell
+prompt, merely execute `setenv LANG de_DE' (in `csh'),
+`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
+This can be done from your `.login' or `.profile' file, once and for
+all.
+
+ You might think that the country code specification is redundant.
+But in fact, some languages have dialects in different countries. For
+example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
+country code serves to distinguish the dialects.
+
+ The locale naming convention of `LL_CC', with `LL' denoting the
+language and `CC' denoting the country, is the one use on systems based
+on GNU libc. On other systems, some variations of this scheme are
+used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
+locales supported by your system for your language by running the
+command `locale -a | grep '^LL''.
+
+ Not all programs have translations for all languages. By default, an
+English message is shown in place of a nonexistent translation. If you
+understand other languages, you can set up a priority list of languages.
+This is done through a different environment variable, called
+`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
+for the purpose of message handling, but you still need to have `LANG'
+set to the primary language; this is required by other parts of the
+system libraries. For example, some Swedish users who would rather
+read translations in German than English for when Swedish is not
+available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
+
+ Special advice for Norwegian users: The language code for Norwegian
+bokma*l changed from `no' to `nb' recently (in 2003). During the
+transition period, while some message catalogs for this language are
+installed under `nb' and some older ones under `no', it's recommended
+for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
+older translations are used.
+
+ In the `LANGUAGE' environment variable, but not in the `LANG'
+environment variable, `LL_CC' combinations can be abbreviated as `LL'
+to denote the language's main dialect. For example, `de' is equivalent
+to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
+(Portuguese as spoken in Portugal) in this context.
+
+1.4 Translating Teams
+=====================
+
+For the Free Translation Project to be a success, we need interested
+people who like their own language and write it well, and who are also
+able to synergize with other translators speaking the same language.
+Each translation team has its own mailing list. The up-to-date list of
+teams can be found at the Free Translation Project's homepage,
+`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
+area.
+
+ If you'd like to volunteer to _work_ at translating messages, you
+should become a member of the translating team for your own language.
+The subscribing address is _not_ the same as the list itself, it has
+`-request' appended. For example, speakers of Swedish can send a
+message to `sv-request@li.org', having this message body:
+
+ subscribe
+
+ Keep in mind that team members are expected to participate
+_actively_ in translations, or at solving translational difficulties,
+rather than merely lurking around. If your team does not exist yet and
+you want to start one, or if you are unsure about what to do or how to
+get started, please write to `translation@iro.umontreal.ca' to reach the
+coordinator for all translator teams.
+
+ The English team is special. It works at improving and uniformizing
+the terminology in use. Proven linguistic skills are praised more than
+programming skills, here.
+
+1.5 Available Packages
+======================
+
+Languages are not equally supported in all packages. The following
+matrix shows the current state of internationalization, as of October
+2006. The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
+translation percentage of at least 50%.
+
+ Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo
+ +----------------------------------------------------+
+ GNUnet | [] |
+ a2ps | [] [] [] [] [] |
+ aegis | () |
+ ant-phone | () |
+ anubis | [] |
+ ap-utils | |
+ aspell | [] [] [] [] [] |
+ bash | [] [] [] |
+ batchelor | [] |
+ bfd | |
+ bibshelf | [] |
+ binutils | [] |
+ bison | [] [] |
+ bison-runtime | |
+ bluez-pin | [] [] [] [] [] |
+ cflow | [] |
+ clisp | [] [] |
+ console-tools | [] [] |
+ coreutils | [] [] [] |
+ cpio | |
+ cpplib | [] [] [] |
+ cryptonit | [] |
+ darkstat | [] () [] |
+ dialog | [] [] [] [] [] [] |
+ diffutils | [] [] [] [] [] [] |
+ doodle | [] |
+ e2fsprogs | [] [] |
+ enscript | [] [] [] [] |
+ error | [] [] [] [] |
+ fetchmail | [] [] () [] |
+ fileutils | [] [] |
+ findutils | [] [] [] |
+ flex | [] [] [] |
+ fslint | [] |
+ gas | |
+ gawk | [] [] [] |
+ gbiff | [] |
+ gcal | [] |
+ gcc | [] |
+ gettext-examples | [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] |
+ gettext-tools | [] [] |
+ gimp-print | [] [] [] [] |
+ gip | [] |
+ gliv | [] |
+ glunarclock | [] |
+ gmult | [] [] |
+ gnubiff | () |
+ gnucash | () () [] |
+ gnucash-glossary | [] () |
+ gnuedu | |
+ gnulib | [] [] [] [] [] [] |
+ gnunet-gtk | |
+ gnutls | |
+ gpe-aerial | [] [] |
+ gpe-beam | [] [] |
+ gpe-calendar | |
+ gpe-clock | [] [] |
+ gpe-conf | [] [] |
+ gpe-contacts | |
+ gpe-edit | [] |
+ gpe-filemanager | |
+ gpe-go | [] |
+ gpe-login | [] [] |
+ gpe-ownerinfo | [] [] |
+ gpe-package | |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] |
+ gpe-taskmanager | [] [] |
+ gpe-timesheet | [] |
+ gpe-today | [] [] |
+ gpe-todo | |
+ gphoto2 | [] [] [] [] |
+ gprof | [] [] |
+ gpsdrive | () () |
+ gramadoir | [] [] |
+ grep | [] [] [] [] [] [] |
+ gretl | |
+ gsasl | |
+ gss | |
+ gst-plugins | [] [] [] [] |
+ gst-plugins-base | [] [] [] |
+ gst-plugins-good | [] [] [] [] [] [] [] |
+ gstreamer | [] [] [] [] [] [] [] |
+ gtick | () |
+ gtkam | [] [] [] |
+ gtkorphan | [] [] |
+ gtkspell | [] [] [] [] |
+ gutenprint | [] |
+ hello | [] [] [] [] [] |
+ id-utils | [] [] |
+ impost | |
+ indent | [] [] [] |
+ iso_3166 | [] [] |
+ iso_3166_2 | |
+ iso_4217 | [] |
+ iso_639 | [] [] |
+ jpilot | [] |
+ jtag | |
+ jwhois | |
+ kbd | [] [] [] [] |
+ keytouch | |
+ keytouch-editor | |
+ keytouch-keyboa... | |
+ latrine | () |
+ ld | [] |
+ leafpad | [] [] [] [] [] |
+ libc | [] [] [] [] [] |
+ libexif | [] |
+ libextractor | [] |
+ libgpewidget | [] [] [] |
+ libgpg-error | [] |
+ libgphoto2 | [] [] |
+ libgphoto2_port | [] [] |
+ libgsasl | |
+ libiconv | [] [] |
+ libidn | [] [] |
+ lifelines | [] () |
+ lilypond | [] |
+ lingoteach | |
+ lynx | [] [] [] [] |
+ m4 | [] [] [] [] |
+ mailutils | [] |
+ make | [] [] |
+ man-db | [] () [] [] |
+ minicom | [] [] [] |
+ mysecretdiary | [] [] |
+ nano | [] [] [] |
+ nano_1_0 | [] () [] [] |
+ opcodes | [] |
+ parted | |
+ pilot-qof | [] |
+ psmisc | [] |
+ pwdutils | |
+ python | |
+ qof | |
+ radius | [] |
+ recode | [] [] [] [] [] [] |
+ rpm | [] [] |
+ screem | |
+ scrollkeeper | [] [] [] [] [] [] [] [] |
+ sed | [] [] [] |
+ sh-utils | [] [] |
+ shared-mime-info | [] [] [] [] |
+ sharutils | [] [] [] [] [] [] |
+ shishi | |
+ silky | |
+ skencil | [] () |
+ sketch | [] () |
+ solfege | |
+ soundtracker | [] [] |
+ sp | [] |
+ stardict | [] |
+ system-tools-ba... | [] [] [] [] [] [] [] [] [] |
+ tar | [] |
+ texinfo | [] [] [] |
+ textutils | [] [] [] |
+ tin | () () |
+ tp-robot | [] |
+ tuxpaint | [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] [] [] |
+ vorbis-tools | [] [] [] [] |
+ wastesedge | () |
+ wdiff | [] [] [] [] |
+ wget | [] [] |
+ xchat | [] [] [] [] [] [] |
+ xkeyboard-config | |
+ xpad | [] [] |
+ +----------------------------------------------------+
+ af am ar az be bg bs ca cs cy da de el en en_GB eo
+ 10 0 1 2 9 22 1 42 41 2 60 95 16 1 17 16
+
+ es et eu fa fi fr ga gl gu he hi hr hu id is it
+ +--------------------------------------------------+
+ GNUnet | |
+ a2ps | [] [] [] () |
+ aegis | |
+ ant-phone | [] |
+ anubis | [] |
+ ap-utils | [] [] |
+ aspell | [] [] [] |
+ bash | [] [] [] |
+ batchelor | [] [] |
+ bfd | [] |
+ bibshelf | [] [] [] |
+ binutils | [] [] [] |
+ bison | [] [] [] [] [] [] |
+ bison-runtime | [] [] [] [] [] |
+ bluez-pin | [] [] [] [] [] |
+ cflow | [] |
+ clisp | [] [] |
+ console-tools | |
+ coreutils | [] [] [] [] [] [] |
+ cpio | [] [] [] |
+ cpplib | [] [] |
+ cryptonit | [] |
+ darkstat | [] () [] [] [] |
+ dialog | [] [] [] [] [] [] [] [] |
+ diffutils | [] [] [] [] [] [] [] [] [] |
+ doodle | [] [] |
+ e2fsprogs | [] [] [] |
+ enscript | [] [] [] |
+ error | [] [] [] [] [] |
+ fetchmail | [] |
+ fileutils | [] [] [] [] [] [] |
+ findutils | [] [] [] [] |
+ flex | [] [] [] |
+ fslint | [] |
+ gas | [] [] |
+ gawk | [] [] [] [] |
+ gbiff | [] |
+ gcal | [] [] |
+ gcc | [] |
+ gettext-examples | [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] |
+ gettext-tools | [] [] [] |
+ gimp-print | [] [] |
+ gip | [] [] [] |
+ gliv | () |
+ glunarclock | [] [] [] |
+ gmult | [] [] [] |
+ gnubiff | () () |
+ gnucash | () () () |
+ gnucash-glossary | [] [] |
+ gnuedu | [] |
+ gnulib | [] [] [] [] [] [] [] [] |
+ gnunet-gtk | |
+ gnutls | |
+ gpe-aerial | [] [] |
+ gpe-beam | [] [] |
+ gpe-calendar | |
+ gpe-clock | [] [] [] [] |
+ gpe-conf | [] |
+ gpe-contacts | [] [] |
+ gpe-edit | [] [] [] [] |
+ gpe-filemanager | [] |
+ gpe-go | [] [] [] |
+ gpe-login | [] [] [] |
+ gpe-ownerinfo | [] [] [] [] [] |
+ gpe-package | [] |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] [] [] |
+ gpe-taskmanager | [] [] [] |
+ gpe-timesheet | [] [] [] [] |
+ gpe-today | [] [] [] [] |
+ gpe-todo | [] |
+ gphoto2 | [] [] [] [] [] |
+ gprof | [] [] [] [] |
+ gpsdrive | () () [] () |
+ gramadoir | [] [] |
+ grep | [] [] [] [] [] [] [] [] [] [] [] [] |
+ gretl | [] [] [] |
+ gsasl | [] [] |
+ gss | [] |
+ gst-plugins | [] [] [] |
+ gst-plugins-base | [] [] |
+ gst-plugins-good | [] [] [] |
+ gstreamer | [] [] [] |
+ gtick | [] |
+ gtkam | [] [] [] [] |
+ gtkorphan | [] [] |
+ gtkspell | [] [] [] [] [] [] |
+ gutenprint | [] |
+ hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ id-utils | [] [] [] [] [] |
+ impost | [] [] |
+ indent | [] [] [] [] [] [] [] [] [] [] |
+ iso_3166 | [] [] [] |
+ iso_3166_2 | [] |
+ iso_4217 | [] [] [] [] |
+ iso_639 | [] [] [] [] [] |
+ jpilot | [] [] |
+ jtag | [] |
+ jwhois | [] [] [] [] [] |
+ kbd | [] [] |
+ keytouch | [] |
+ keytouch-editor | [] |
+ keytouch-keyboa... | [] |
+ latrine | [] [] [] |
+ ld | [] [] |
+ leafpad | [] [] [] [] [] [] |
+ libc | [] [] [] [] [] |
+ libexif | [] |
+ libextractor | [] |
+ libgpewidget | [] [] [] [] [] |
+ libgpg-error | |
+ libgphoto2 | [] [] [] |
+ libgphoto2_port | [] [] |
+ libgsasl | [] [] |
+ libiconv | [] [] |
+ libidn | [] [] |
+ lifelines | () |
+ lilypond | [] |
+ lingoteach | [] [] [] |
+ lynx | [] [] [] |
+ m4 | [] [] [] [] |
+ mailutils | [] [] |
+ make | [] [] [] [] [] [] [] [] |
+ man-db | () |
+ minicom | [] [] [] [] |
+ mysecretdiary | [] [] [] |
+ nano | [] [] [] [] [] [] |
+ nano_1_0 | [] [] [] [] [] |
+ opcodes | [] [] [] [] |
+ parted | [] [] [] [] |
+ pilot-qof | |
+ psmisc | [] [] [] |
+ pwdutils | |
+ python | |
+ qof | [] |
+ radius | [] [] |
+ recode | [] [] [] [] [] [] [] [] |
+ rpm | [] [] |
+ screem | |
+ scrollkeeper | [] [] [] |
+ sed | [] [] [] [] [] |
+ sh-utils | [] [] [] [] [] [] [] |
+ shared-mime-info | [] [] [] [] [] [] |
+ sharutils | [] [] [] [] [] [] [] [] |
+ shishi | |
+ silky | [] |
+ skencil | [] [] |
+ sketch | [] [] |
+ solfege | [] |
+ soundtracker | [] [] [] |
+ sp | [] |
+ stardict | [] |
+ system-tools-ba... | [] [] [] [] [] [] [] [] |
+ tar | [] [] [] [] [] [] [] |
+ texinfo | [] [] |
+ textutils | [] [] [] [] [] |
+ tin | [] () |
+ tp-robot | [] [] [] [] |
+ tuxpaint | [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | [] [] |
+ util-linux | [] [] [] [] [] [] [] |
+ vorbis-tools | [] [] |
+ wastesedge | () |
+ wdiff | [] [] [] [] [] [] [] [] |
+ wget | [] [] [] [] [] [] [] [] |
+ xchat | [] [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] [] [] |
+ xpad | [] [] [] |
+ +--------------------------------------------------+
+ es et eu fa fi fr ga gl gu he hi hr hu id is it
+ 88 22 14 2 40 115 61 14 1 8 1 6 59 31 0 52
+
+ ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no
+ +-------------------------------------------------+
+ GNUnet | |
+ a2ps | () [] [] () |
+ aegis | () |
+ ant-phone | [] |
+ anubis | [] [] [] |
+ ap-utils | [] |
+ aspell | [] [] |
+ bash | [] |
+ batchelor | [] [] |
+ bfd | |
+ bibshelf | [] |
+ binutils | |
+ bison | [] [] [] |
+ bison-runtime | [] [] [] |
+ bluez-pin | [] [] [] |
+ cflow | |
+ clisp | [] |
+ console-tools | |
+ coreutils | [] |
+ cpio | |
+ cpplib | [] |
+ cryptonit | [] |
+ darkstat | [] [] |
+ dialog | [] [] |
+ diffutils | [] [] [] |
+ doodle | |
+ e2fsprogs | [] |
+ enscript | [] |
+ error | [] |
+ fetchmail | [] [] |
+ fileutils | [] [] |
+ findutils | [] |
+ flex | [] [] |
+ fslint | [] [] |
+ gas | |
+ gawk | [] [] |
+ gbiff | [] |
+ gcal | |
+ gcc | |
+ gettext-examples | [] [] |
+ gettext-runtime | [] [] [] |
+ gettext-tools | [] [] |
+ gimp-print | [] [] |
+ gip | [] [] |
+ gliv | [] |
+ glunarclock | [] [] |
+ gmult | [] [] |
+ gnubiff | |
+ gnucash | () () |
+ gnucash-glossary | [] |
+ gnuedu | |
+ gnulib | [] [] [] [] |
+ gnunet-gtk | |
+ gnutls | |
+ gpe-aerial | [] |
+ gpe-beam | [] |
+ gpe-calendar | [] |
+ gpe-clock | [] [] [] |
+ gpe-conf | [] [] |
+ gpe-contacts | [] |
+ gpe-edit | [] [] [] |
+ gpe-filemanager | [] [] |
+ gpe-go | [] [] [] |
+ gpe-login | [] [] [] |
+ gpe-ownerinfo | [] [] |
+ gpe-package | [] [] |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] [] |
+ gpe-taskmanager | [] [] [] [] |
+ gpe-timesheet | [] |
+ gpe-today | [] [] |
+ gpe-todo | [] |
+ gphoto2 | [] [] |
+ gprof | |
+ gpsdrive | () () () |
+ gramadoir | () |
+ grep | [] [] [] [] |
+ gretl | |
+ gsasl | [] |
+ gss | |
+ gst-plugins | [] |
+ gst-plugins-base | |
+ gst-plugins-good | [] |
+ gstreamer | [] |
+ gtick | |
+ gtkam | [] |
+ gtkorphan | [] |
+ gtkspell | [] [] |
+ gutenprint | |
+ hello | [] [] [] [] [] [] |
+ id-utils | [] |
+ impost | |
+ indent | [] [] |
+ iso_3166 | [] |
+ iso_3166_2 | [] |
+ iso_4217 | [] [] [] |
+ iso_639 | [] [] |
+ jpilot | () () () |
+ jtag | |
+ jwhois | [] |
+ kbd | [] |
+ keytouch | [] |
+ keytouch-editor | |
+ keytouch-keyboa... | |
+ latrine | [] |
+ ld | |
+ leafpad | [] [] |
+ libc | [] [] [] [] [] |
+ libexif | |
+ libextractor | |
+ libgpewidget | [] |
+ libgpg-error | |
+ libgphoto2 | [] |
+ libgphoto2_port | [] |
+ libgsasl | [] |
+ libiconv | |
+ libidn | [] [] |
+ lifelines | [] |
+ lilypond | |
+ lingoteach | [] |
+ lynx | [] [] |
+ m4 | [] [] |
+ mailutils | |
+ make | [] [] [] |
+ man-db | () |
+ minicom | [] |
+ mysecretdiary | [] |
+ nano | [] [] [] |
+ nano_1_0 | [] [] [] |
+ opcodes | [] |
+ parted | [] [] |
+ pilot-qof | |
+ psmisc | [] [] [] |
+ pwdutils | |
+ python | |
+ qof | |
+ radius | |
+ recode | [] |
+ rpm | [] [] |
+ screem | [] |
+ scrollkeeper | [] [] [] [] |
+ sed | [] [] |
+ sh-utils | [] [] |
+ shared-mime-info | [] [] [] [] [] |
+ sharutils | [] [] |
+ shishi | |
+ silky | [] |
+ skencil | |
+ sketch | |
+ solfege | |
+ soundtracker | |
+ sp | () |
+ stardict | [] [] |
+ system-tools-ba... | [] [] [] [] |
+ tar | [] [] [] |
+ texinfo | [] [] [] |
+ textutils | [] [] [] |
+ tin | |
+ tp-robot | [] |
+ tuxpaint | [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] |
+ vorbis-tools | [] |
+ wastesedge | [] |
+ wdiff | [] [] |
+ wget | [] [] |
+ xchat | [] [] [] [] |
+ xkeyboard-config | [] |
+ xpad | [] [] [] |
+ +-------------------------------------------------+
+ ja ko ku ky lg lt lv mk mn ms mt nb ne nl nn no
+ 52 24 2 2 1 3 0 2 3 21 0 15 1 97 5 1
+
+ nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
+ +------------------------------------------------------+
+ GNUnet | |
+ a2ps | () [] [] [] [] [] [] |
+ aegis | () () |
+ ant-phone | [] [] |
+ anubis | [] [] [] |
+ ap-utils | () |
+ aspell | [] [] |
+ bash | [] [] [] |
+ batchelor | [] [] |
+ bfd | |
+ bibshelf | [] |
+ binutils | [] [] |
+ bison | [] [] [] [] [] |
+ bison-runtime | [] [] [] [] |
+ bluez-pin | [] [] [] [] [] [] [] [] [] |
+ cflow | [] |
+ clisp | [] |
+ console-tools | [] |
+ coreutils | [] [] [] [] |
+ cpio | [] [] [] |
+ cpplib | [] |
+ cryptonit | [] [] |
+ darkstat | [] [] [] [] [] [] |
+ dialog | [] [] [] [] [] [] [] [] [] |
+ diffutils | [] [] [] [] [] [] |
+ doodle | [] [] |
+ e2fsprogs | [] [] |
+ enscript | [] [] [] [] [] |
+ error | [] [] [] [] |
+ fetchmail | [] [] [] |
+ fileutils | [] [] [] [] [] |
+ findutils | [] [] [] [] [] [] |
+ flex | [] [] [] [] [] |
+ fslint | [] [] [] [] |
+ gas | |
+ gawk | [] [] [] [] |
+ gbiff | [] |
+ gcal | [] |
+ gcc | [] |
+ gettext-examples | [] [] [] [] [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] [] [] [] |
+ gettext-tools | [] [] [] [] [] [] [] |
+ gimp-print | [] [] |
+ gip | [] [] [] [] |
+ gliv | [] [] [] [] |
+ glunarclock | [] [] [] [] [] [] |
+ gmult | [] [] [] [] |
+ gnubiff | () |
+ gnucash | () [] |
+ gnucash-glossary | [] [] [] |
+ gnuedu | |
+ gnulib | [] [] [] [] [] |
+ gnunet-gtk | [] |
+ gnutls | [] [] |
+ gpe-aerial | [] [] [] [] [] [] [] |
+ gpe-beam | [] [] [] [] [] [] [] |
+ gpe-calendar | [] |
+ gpe-clock | [] [] [] [] [] [] [] [] |
+ gpe-conf | [] [] [] [] [] [] [] |
+ gpe-contacts | [] [] [] [] [] |
+ gpe-edit | [] [] [] [] [] [] [] [] |
+ gpe-filemanager | [] [] |
+ gpe-go | [] [] [] [] [] [] |
+ gpe-login | [] [] [] [] [] [] [] [] |
+ gpe-ownerinfo | [] [] [] [] [] [] [] [] |
+ gpe-package | [] [] |
+ gpe-sketchbook | [] [] [] [] [] [] [] [] |
+ gpe-su | [] [] [] [] [] [] [] [] |
+ gpe-taskmanager | [] [] [] [] [] [] [] [] |
+ gpe-timesheet | [] [] [] [] [] [] [] [] |
+ gpe-today | [] [] [] [] [] [] [] [] |
+ gpe-todo | [] [] [] [] |
+ gphoto2 | [] [] [] [] [] |
+ gprof | [] [] [] |
+ gpsdrive | [] [] [] |
+ gramadoir | [] [] |
+ grep | [] [] [] [] [] [] [] [] |
+ gretl | [] |
+ gsasl | [] [] [] |
+ gss | [] [] [] |
+ gst-plugins | [] [] [] [] |
+ gst-plugins-base | [] |
+ gst-plugins-good | [] [] [] [] |
+ gstreamer | [] [] [] |
+ gtick | [] |
+ gtkam | [] [] [] [] |
+ gtkorphan | [] |
+ gtkspell | [] [] [] [] [] [] [] [] |
+ gutenprint | [] |
+ hello | [] [] [] [] [] [] [] [] |
+ id-utils | [] [] [] [] |
+ impost | [] |
+ indent | [] [] [] [] [] [] |
+ iso_3166 | [] [] [] [] [] [] |
+ iso_3166_2 | |
+ iso_4217 | [] [] [] [] |
+ iso_639 | [] [] [] [] |
+ jpilot | |
+ jtag | [] |
+ jwhois | [] [] [] [] |
+ kbd | [] [] [] |
+ keytouch | [] |
+ keytouch-editor | [] |
+ keytouch-keyboa... | [] |
+ latrine | [] [] |
+ ld | [] |
+ leafpad | [] [] [] [] [] [] |
+ libc | [] [] [] [] [] |
+ libexif | [] |
+ libextractor | [] [] |
+ libgpewidget | [] [] [] [] [] [] [] |
+ libgpg-error | [] [] |
+ libgphoto2 | [] |
+ libgphoto2_port | [] [] [] |
+ libgsasl | [] [] [] [] |
+ libiconv | [] [] |
+ libidn | [] [] () |
+ lifelines | [] [] |
+ lilypond | |
+ lingoteach | [] |
+ lynx | [] [] [] |
+ m4 | [] [] [] [] [] |
+ mailutils | [] [] [] [] |
+ make | [] [] [] [] |
+ man-db | [] [] |
+ minicom | [] [] [] [] [] |
+ mysecretdiary | [] [] [] [] |
+ nano | [] [] [] |
+ nano_1_0 | [] [] [] [] |
+ opcodes | [] [] |
+ parted | [] |
+ pilot-qof | [] |
+ psmisc | [] [] |
+ pwdutils | [] [] |
+ python | |
+ qof | [] [] |
+ radius | [] [] |
+ recode | [] [] [] [] [] [] [] |
+ rpm | [] [] [] [] |
+ screem | |
+ scrollkeeper | [] [] [] [] [] [] [] |
+ sed | [] [] [] [] [] [] [] [] [] |
+ sh-utils | [] [] [] |
+ shared-mime-info | [] [] [] [] [] |
+ sharutils | [] [] [] [] |
+ shishi | [] |
+ silky | [] |
+ skencil | [] [] [] |
+ sketch | [] [] [] |
+ solfege | [] |
+ soundtracker | [] [] |
+ sp | |
+ stardict | [] [] [] |
+ system-tools-ba... | [] [] [] [] [] [] [] [] [] |
+ tar | [] [] [] [] [] |
+ texinfo | [] [] [] [] |
+ textutils | [] [] [] |
+ tin | () |
+ tp-robot | [] |
+ tuxpaint | [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] [] [] |
+ vorbis-tools | [] [] |
+ wastesedge | |
+ wdiff | [] [] [] [] [] [] |
+ wget | [] [] [] [] |
+ xchat | [] [] [] [] [] [] [] |
+ xkeyboard-config | [] [] |
+ xpad | [] [] [] |
+ +------------------------------------------------------+
+ nso or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta
+ 0 2 3 58 30 54 5 73 72 4 40 46 11 50 128 2
+
+ tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu
+ +---------------------------------------------------+
+ GNUnet | [] | 2
+ a2ps | [] [] [] | 19
+ aegis | | 0
+ ant-phone | [] [] | 6
+ anubis | [] [] [] | 11
+ ap-utils | () [] | 4
+ aspell | [] [] [] | 15
+ bash | [] | 11
+ batchelor | [] [] | 9
+ bfd | | 1
+ bibshelf | [] | 7
+ binutils | [] [] [] | 9
+ bison | [] [] [] | 19
+ bison-runtime | [] [] [] | 15
+ bluez-pin | [] [] [] [] [] [] | 28
+ cflow | [] [] | 5
+ clisp | | 6
+ console-tools | [] [] | 5
+ coreutils | [] [] | 16
+ cpio | [] [] [] | 9
+ cpplib | [] [] [] [] | 11
+ cryptonit | | 5
+ darkstat | [] () () | 15
+ dialog | [] [] [] [] [] | 30
+ diffutils | [] [] [] [] | 28
+ doodle | [] | 6
+ e2fsprogs | [] [] | 10
+ enscript | [] [] [] | 16
+ error | [] [] [] [] | 18
+ fetchmail | [] [] | 12
+ fileutils | [] [] [] | 18
+ findutils | [] [] [] | 17
+ flex | [] [] | 15
+ fslint | [] | 9
+ gas | [] | 3
+ gawk | [] [] | 15
+ gbiff | [] | 5
+ gcal | [] | 5
+ gcc | [] [] [] | 6
+ gettext-examples | [] [] [] [] [] [] | 27
+ gettext-runtime | [] [] [] [] [] [] | 28
+ gettext-tools | [] [] [] [] [] | 19
+ gimp-print | [] [] | 12
+ gip | [] [] | 12
+ gliv | [] [] | 8
+ glunarclock | [] [] [] | 15
+ gmult | [] [] [] [] | 15
+ gnubiff | [] | 1
+ gnucash | () | 2
+ gnucash-glossary | [] [] | 9
+ gnuedu | [] | 2
+ gnulib | [] [] [] [] [] | 28
+ gnunet-gtk | | 1
+ gnutls | | 2
+ gpe-aerial | [] [] | 14
+ gpe-beam | [] [] | 14
+ gpe-calendar | [] | 3
+ gpe-clock | [] [] [] [] | 21
+ gpe-conf | [] [] | 14
+ gpe-contacts | [] [] | 10
+ gpe-edit | [] [] [] [] | 20
+ gpe-filemanager | [] | 6
+ gpe-go | [] [] | 15
+ gpe-login | [] [] [] [] [] | 21
+ gpe-ownerinfo | [] [] [] [] | 21
+ gpe-package | [] | 6
+ gpe-sketchbook | [] [] | 16
+ gpe-su | [] [] [] | 20
+ gpe-taskmanager | [] [] [] | 20
+ gpe-timesheet | [] [] [] [] | 18
+ gpe-today | [] [] [] [] [] | 21
+ gpe-todo | [] | 7
+ gphoto2 | [] [] [] [] | 20
+ gprof | [] [] | 11
+ gpsdrive | | 4
+ gramadoir | [] | 7
+ grep | [] [] [] [] | 34
+ gretl | | 4
+ gsasl | [] [] | 8
+ gss | [] | 5
+ gst-plugins | [] [] [] | 15
+ gst-plugins-base | [] [] [] | 9
+ gst-plugins-good | [] [] [] [] [] | 20
+ gstreamer | [] [] [] | 17
+ gtick | [] | 3
+ gtkam | [] | 13
+ gtkorphan | [] | 7
+ gtkspell | [] [] [] [] [] [] | 26
+ gutenprint | | 3
+ hello | [] [] [] [] [] | 37
+ id-utils | [] [] | 14
+ impost | [] | 4
+ indent | [] [] [] [] | 25
+ iso_3166 | [] [] [] [] | 16
+ iso_3166_2 | | 2
+ iso_4217 | [] [] | 14
+ iso_639 | [] | 14
+ jpilot | [] [] [] [] | 7
+ jtag | [] | 3
+ jwhois | [] [] [] | 13
+ kbd | [] [] | 12
+ keytouch | [] | 4
+ keytouch-editor | | 2
+ keytouch-keyboa... | [] | 3
+ latrine | [] [] | 8
+ ld | [] [] [] [] | 8
+ leafpad | [] [] [] [] | 23
+ libc | [] [] [] | 23
+ libexif | [] | 4
+ libextractor | [] | 5
+ libgpewidget | [] [] [] | 19
+ libgpg-error | [] | 4
+ libgphoto2 | [] | 8
+ libgphoto2_port | [] [] [] | 11
+ libgsasl | [] | 8
+ libiconv | [] | 7
+ libidn | [] [] | 10
+ lifelines | | 4
+ lilypond | | 2
+ lingoteach | [] | 6
+ lynx | [] [] [] | 15
+ m4 | [] [] [] | 18
+ mailutils | [] | 8
+ make | [] [] [] | 20
+ man-db | [] | 6
+ minicom | [] | 14
+ mysecretdiary | [] [] | 12
+ nano | [] [] | 17
+ nano_1_0 | [] [] [] | 18
+ opcodes | [] [] | 10
+ parted | [] [] [] | 10
+ pilot-qof | [] | 3
+ psmisc | [] | 10
+ pwdutils | [] | 3
+ python | | 0
+ qof | [] | 4
+ radius | [] | 6
+ recode | [] [] [] | 25
+ rpm | [] [] [] [] | 14
+ screem | [] | 2
+ scrollkeeper | [] [] [] [] | 26
+ sed | [] [] [] | 22
+ sh-utils | [] | 15
+ shared-mime-info | [] [] [] [] | 24
+ sharutils | [] [] [] | 23
+ shishi | | 1
+ silky | [] | 4
+ skencil | [] | 7
+ sketch | | 6
+ solfege | | 2
+ soundtracker | [] [] | 9
+ sp | [] | 3
+ stardict | [] [] [] [] | 11
+ system-tools-ba... | [] [] [] [] [] [] [] | 37
+ tar | [] [] [] [] | 20
+ texinfo | [] [] [] | 15
+ textutils | [] [] [] | 17
+ tin | | 1
+ tp-robot | [] [] [] | 10
+ tuxpaint | [] [] [] | 16
+ unicode-han-tra... | | 0
+ unicode-transla... | | 2
+ util-linux | [] [] [] | 20
+ vorbis-tools | [] [] | 11
+ wastesedge | | 1
+ wdiff | [] [] | 22
+ wget | [] [] [] | 19
+ xchat | [] [] [] [] | 29
+ xkeyboard-config | [] [] [] [] | 11
+ xpad | [] [] [] | 14
+ +---------------------------------------------------+
+ 77 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu
+ 170 domains 0 1 1 77 39 0 136 10 1 48 5 54 0 2028
+
+ Some counters in the preceding matrix are higher than the number of
+visible blocks let us expect. This is because a few extra PO files are
+used for implementing regional variants of languages, or language
+dialects.
+
+ For a PO file in the matrix above to be effective, the package to
+which it applies should also have been internationalized and
+distributed as such by its maintainer. There might be an observable
+lag between the mere existence a PO file and its wide availability in a
+distribution.
+
+ If October 2006 seems to be old, you may fetch a more recent copy of
+this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
+matrix with full percentage details can be found at
+`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
+
+1.6 Using `gettext' in new packages
+===================================
+
+If you are writing a freely available program and want to
+internationalize it you are welcome to use GNU `gettext' in your
+package. Of course you have to respect the GNU Library General Public
+License which covers the use of the GNU `gettext' library. This means
+in particular that even non-free programs can use `libintl' as a shared
+library, whereas only free software can use `libintl' as a static
+library or use modified versions of `libintl'.
+
+ Once the sources are changed appropriately and the setup can handle
+the use of `gettext' the only thing missing are the translations. The
+Free Translation Project is also available for packages which are not
+developed inside the GNU project. Therefore the information given above
+applies also for every other Free Software Project. Contact
+`translation@iro.umontreal.ca' to make the `.pot' files available to
+the translation teams.
+
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 00000000..875c4a9d
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,2 @@
+This file is a placeholder. It will be replaced with the actual ChangeLog
+by make dist. Run make ChangeLog if you wish to create it earlier.
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 00000000..ef4b7890
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,371 @@
+Installation Instructions
+*************************
+
+Copyright (C) 1994-1996, 1999-2002, 2004-2012 Free Software Foundation,
+Inc.
+
+ 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
+==================
+
+ 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. 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
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
+
+ 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.
+
+ Running `configure' might take a while. While running, it prints
+ some messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package, generally using the just-built uninstalled binaries.
+
+ 4. Type `make install' to install the programs and any data files and
+ 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
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+ 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
+=====================
+
+ Some systems require unusual options for compilation or linking that
+the `configure' script does not know about. Run `./configure --help'
+for details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c99 CFLAGS=-g LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+ You can compile the package for more than one kind of computer at the
+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 `..'. 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
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
+
+ On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor. Like
+this:
+
+ ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+ CPP="gcc -E" CXXCPP="g++ -E"
+
+ This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
+
+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', where PREFIX must be an
+absolute file name.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+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. 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'.
+
+ 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
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+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
+==================
+
+ On HP-UX, the default C compiler is not ANSI C compatible. If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+ ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+ HP-UX `make' updates targets which have the same time stamps as
+their prerequisites, which makes it generally unusable when shipped
+generated files such as `configure' are involved. Use GNU `make'
+instead.
+
+ On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file. The option `-nodtk' can be used as
+a workaround. If GNU CC is not installed, it is therefore recommended
+to try
+
+ ./configure CC="cc"
+
+and if that doesn't work, try
+
+ ./configure CC="cc -nodtk"
+
+ On Solaris, don't put `/usr/ucb' early in your `PATH'. This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+ On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'. It is recommended to use the following options:
+
+ ./configure --prefix=/boot/common
+
+Specifying the System Type
+==========================
+
+ There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on. Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ 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
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+ If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+ Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script).
+
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf limitation. Until the limitation is lifted, you can use
+this workaround:
+
+ CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+`configure' Invocation
+======================
+
+ `configure' recognizes the following options to control how it
+operates.
+
+`--help'
+`-h'
+ Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+ Print a summary of the options unique to this package's
+ `configure', and exit. The `short' variant lists options used
+ only in the top level, while the `recursive' variant lists options
+ also present in any nested packages.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`--prefix=DIR'
+ Use DIR as the installation prefix. *note Installation Names::
+ for more details, including other options available for fine-tuning
+ the installation locations.
+
+`--no-create'
+`-n'
+ Run the configure checks, but stop before creating any output
+ files.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
diff --git a/Make.rules b/Make.rules
new file mode 100644
index 00000000..a1de301a
--- /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.in b/Makefile.in
new file mode 100644
index 00000000..4958f66a
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,1658 @@
+# 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@
+
+# Main Makefile for GNU tar.
+
+# 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@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@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@
+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 README-alpha 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/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/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+ $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.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/double-slash-root.m4 $(top_srcdir)/m4/dup.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/exponentd.m4 \
+ $(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fchdir.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/filenamecat.m4 \
+ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
+ $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+ $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
+ $(top_srcdir)/m4/getcwd-abort-bug.m4 \
+ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.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/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/iswblank.m4 \
+ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.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/libunistring-base.m4 \
+ $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
+ $(top_srcdir)/m4/linkat.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/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
+ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
+ $(top_srcdir)/m4/mkdtemp.m4 $(top_srcdir)/m4/mkfifo.m4 \
+ $(top_srcdir)/m4/mkfifoat.m4 $(top_srcdir)/m4/mknod.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/msvc-inval.m4 \
+ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/open.m4 \
+ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \
+ $(top_srcdir)/m4/parse-datetime.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/raise.m4 \
+ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/read.m4 \
+ $(top_srcdir)/m4/readdir.m4 $(top_srcdir)/m4/readlink.m4 \
+ $(top_srcdir)/m4/readlinkat.m4 $(top_srcdir)/m4/realloc.m4 \
+ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
+ $(top_srcdir)/m4/renameat.m4 $(top_srcdir)/m4/rewinddir.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/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
+ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stdalign.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/strtol.m4 \
+ $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
+ $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+ $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
+ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
+ $(top_srcdir)/m4/sys_types_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/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+ $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+ $(top_srcdir)/m4/utimensat.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)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+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 \
+ 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
+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)
+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)"; }; }
+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).tar.xz \
+ $(distdir).shar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+pkglibexecdir = @pkglibexecdir@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+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_CHDIR = @GNULIB_CHDIR@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@
+GNULIB_DIRFD = @GNULIB_DIRFD@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
+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_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+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_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
+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_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
+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_GETS = @GNULIB_GETS@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
+GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
+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_MBTOWC = @GNULIB_MBTOWC@
+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_NONBLOCKING = @GNULIB_NONBLOCKING@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
+GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
+GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
+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_REWINDDIR = @GNULIB_REWINDDIR@
+GNULIB_RMDIR = @GNULIB_RMDIR@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SIGACTION = @GNULIB_SIGACTION@
+GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
+GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+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_STRERROR_R = @GNULIB_STRERROR_R@
+GNULIB_STRNCAT = @GNULIB_STRNCAT@
+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_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TIMEGM = @GNULIB_TIMEGM@
+GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNLINK = @GNULIB_UNLINK@
+GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
+GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
+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_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
+GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
+GREP = @GREP@
+HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
+HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
+HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
+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_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_DUP3 = @HAVE_DUP3@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FACCESSAT = @HAVE_FACCESSAT@
+HAVE_FCHDIR = @HAVE_FCHDIR@
+HAVE_FCHMODAT = @HAVE_FCHMODAT@
+HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSTATAT = @HAVE_FSTATAT@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_FUTIMENS = @HAVE_FUTIMENS@
+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_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWBLANK = @HAVE_ISWBLANK@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
+HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
+HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
+HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
+HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
+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_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSLEN = @HAVE_MBSLEN@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMCHR = @HAVE_MEMCHR@
+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_MKSTEMP = @HAVE_MKSTEMP@
+HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
+HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
+HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
+HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
+HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
+HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
+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_SIGSET_T = @HAVE_SIGSET_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_STRINGS_H = @HAVE_STRINGS_H@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRPTIME = @HAVE_STRPTIME@
+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_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+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_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNLINKAT = @HAVE_UNLINKAT@
+HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
+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_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
+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@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+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_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_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_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_SIGNAL_H = @NEXT_SIGNAL_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_SYS_TYPES_H = @NEXT_SYS_TYPES_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_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PU_RMT_PROG = @PU_RMT_PROG@
+RANLIB = @RANLIB@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
+REPLACE_DIRFD = @REPLACE_DIRFD@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_DUP = @REPLACE_DUP@
+REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+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_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
+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_MALLOC = @REPLACE_MALLOC@
+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_MBTOWC = @REPLACE_MBTOWC@
+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_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
+REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
+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_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPNCPY = @REPLACE_STPNCPY@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
+REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNDUP = @REPLACE_STRNDUP@
+REPLACE_STRNLEN = @REPLACE_STRNLEN@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
+REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
+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_WCSWIDTH = @REPLACE_WCSWIDTH@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
+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@
+STDALIGN_H = @STDALIGN_H@
+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@
+gltests_WITNESS = @gltests_WITNESS@
+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@
+lispdir = @lispdir@
+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@
+ACLOCAL_AMFLAGS = -I m4
+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 $(srcdir)/Make.rules $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnits'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --gnits \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ 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 \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+ @if test ! -f $@; then \
+ rm -f stamp-h1; \
+ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
+ else :; fi
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+
+# 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) config.h.in $(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) 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; }; }'`; \
+ 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) config.h.in $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ 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)$$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)
+ @case `sed 15q $(srcdir)/NEWS` in \
+ *"$(VERSION)"*) : ;; \
+ *) \
+ echo "NEWS not updated; not releasing" 1>&2; \
+ exit 1;; \
+ esac
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @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
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+ -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)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ $(am__remove_distdir)
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+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)
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__remove_distdir)
+
+dist dist-all: distdir
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lzma*) \
+ 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) gzip -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
+ chmod -R a-w $(distdir); chmod a+w $(distdir)
+ 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-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) dvi \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(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:
+ @$(am__cd) '$(distuninstallcheck_dir)' \
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+check: check-recursive
+all-am: Makefile config.h
+installdirs: installdirs-recursive
+installdirs-am:
+install: 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:
+
+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-recursive
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-hdr distclean-local \
+ 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-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 -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.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-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/aclocal.m4 b/aclocal.m4
new file mode 100644
index 00000000..d85aee6b
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,1243 @@
+# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 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.
+
+# 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.
+
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.68],,
+[m4_warning([this file was generated for autoconf 2.68.
+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'.])])
+
+# 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,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# 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.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.11.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+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 AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001, 2003, 2005 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.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
+# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is `.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# 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 9
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+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='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# 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 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,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "GCJ", or "OBJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ 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
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ 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
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ 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
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $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 $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
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# 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 5
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # 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
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking
+# is enabled. FIXME. This creates each `.P' file that we will
+# need in order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 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 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.
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# 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.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
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+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.
+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([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_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
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_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
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# 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,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+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.
+#
+# 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
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# 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 4
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check to see how make treats includes.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# 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
+ 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])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+
+# 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 6
+
+# AM_PROG_CC_C_O
+# --------------
+# Like AC_PROG_CC_C_O, but changed for automake.
+AC_DEFUN([AM_PROG_CC_C_O],
+[AC_REQUIRE([AC_PROG_CC_C_O])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+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.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+dnl Make sure AC_PROG_CC is never called again, or it will override our
+dnl setting of CC.
+m4_define([AC_PROG_CC],
+ [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
+])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# 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 6
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it supports --run.
+# If it does, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+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=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+
+# Copyright (C) 2003, 2004, 2005, 2006 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.
+
+# AM_PROG_MKDIR_P
+# ---------------
+# Check for `mkdir -p'.
+AC_DEFUN([AM_PROG_MKDIR_P],
+[AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# 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 4
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# ------------------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ----------------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 2001, 2003, 2005 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.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# 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 5
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# 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`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # 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".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+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
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor `install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in `make install-strip', and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# 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.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# 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.
+#
+# 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_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/00gnulib.m4])
+m4_include([m4/alloca.m4])
+m4_include([m4/argp.m4])
+m4_include([m4/backupfile.m4])
+m4_include([m4/bison.m4])
+m4_include([m4/btowc.m4])
+m4_include([m4/canonicalize.m4])
+m4_include([m4/chdir-long.m4])
+m4_include([m4/chown.m4])
+m4_include([m4/clock_time.m4])
+m4_include([m4/close-stream.m4])
+m4_include([m4/close.m4])
+m4_include([m4/closedir.m4])
+m4_include([m4/closeout.m4])
+m4_include([m4/codeset.m4])
+m4_include([m4/configmake.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])
+m4_include([m4/double-slash-root.m4])
+m4_include([m4/dup.m4])
+m4_include([m4/dup2.m4])
+m4_include([m4/eealloc.m4])
+m4_include([m4/environ.m4])
+m4_include([m4/errno_h.m4])
+m4_include([m4/error.m4])
+m4_include([m4/exponentd.m4])
+m4_include([m4/extensions.m4])
+m4_include([m4/fchdir.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/filenamecat.m4])
+m4_include([m4/float_h.m4])
+m4_include([m4/fnmatch.m4])
+m4_include([m4/fpending.m4])
+m4_include([m4/fseek.m4])
+m4_include([m4/fseeko.m4])
+m4_include([m4/fstat.m4])
+m4_include([m4/fstatat.m4])
+m4_include([m4/futimens.m4])
+m4_include([m4/getcwd-abort-bug.m4])
+m4_include([m4/getcwd-path-max.m4])
+m4_include([m4/getcwd.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])
+m4_include([m4/gettext.m4])
+m4_include([m4/gettime.m4])
+m4_include([m4/gettimeofday.m4])
+m4_include([m4/glibc21.m4])
+m4_include([m4/gnulib-common.m4])
+m4_include([m4/gnulib-comp.m4])
+m4_include([m4/human.m4])
+m4_include([m4/iconv.m4])
+m4_include([m4/include_next.m4])
+m4_include([m4/inline.m4])
+m4_include([m4/intlmacosx.m4])
+m4_include([m4/intmax_t.m4])
+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/iswblank.m4])
+m4_include([m4/langinfo_h.m4])
+m4_include([m4/largefile.m4])
+m4_include([m4/lchown.m4])
+m4_include([m4/lib-ld.m4])
+m4_include([m4/lib-link.m4])
+m4_include([m4/lib-prefix.m4])
+m4_include([m4/libunistring-base.m4])
+m4_include([m4/link-follow.m4])
+m4_include([m4/link.m4])
+m4_include([m4/linkat.m4])
+m4_include([m4/localcharset.m4])
+m4_include([m4/locale-fr.m4])
+m4_include([m4/locale-ja.m4])
+m4_include([m4/locale-zh.m4])
+m4_include([m4/longlong.m4])
+m4_include([m4/lseek.m4])
+m4_include([m4/lstat.m4])
+m4_include([m4/malloc.m4])
+m4_include([m4/malloca.m4])
+m4_include([m4/mbchar.m4])
+m4_include([m4/mbiter.m4])
+m4_include([m4/mbrtowc.m4])
+m4_include([m4/mbsinit.m4])
+m4_include([m4/mbsrtowcs.m4])
+m4_include([m4/mbstate_t.m4])
+m4_include([m4/mbtowc.m4])
+m4_include([m4/memchr.m4])
+m4_include([m4/mempcpy.m4])
+m4_include([m4/memrchr.m4])
+m4_include([m4/mkdtemp.m4])
+m4_include([m4/mkfifo.m4])
+m4_include([m4/mkfifoat.m4])
+m4_include([m4/mknod.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/msvc-inval.m4])
+m4_include([m4/msvc-nothrow.m4])
+m4_include([m4/multiarch.m4])
+m4_include([m4/nl_langinfo.m4])
+m4_include([m4/nls.m4])
+m4_include([m4/nocrash.m4])
+m4_include([m4/open.m4])
+m4_include([m4/openat.m4])
+m4_include([m4/opendir.m4])
+m4_include([m4/parse-datetime.m4])
+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])
+m4_include([m4/raise.m4])
+m4_include([m4/rawmemchr.m4])
+m4_include([m4/read.m4])
+m4_include([m4/readdir.m4])
+m4_include([m4/readlink.m4])
+m4_include([m4/readlinkat.m4])
+m4_include([m4/realloc.m4])
+m4_include([m4/regex.m4])
+m4_include([m4/rename.m4])
+m4_include([m4/renameat.m4])
+m4_include([m4/rewinddir.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/save-cwd.m4])
+m4_include([m4/savedir.m4])
+m4_include([m4/setenv.m4])
+m4_include([m4/signal_h.m4])
+m4_include([m4/size_max.m4])
+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/stdalign.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])
+m4_include([m4/stdlib_h.m4])
+m4_include([m4/stpcpy.m4])
+m4_include([m4/strcase.m4])
+m4_include([m4/strchrnul.m4])
+m4_include([m4/strdup.m4])
+m4_include([m4/strerror.m4])
+m4_include([m4/string_h.m4])
+m4_include([m4/strings_h.m4])
+m4_include([m4/strndup.m4])
+m4_include([m4/strnlen.m4])
+m4_include([m4/strtol.m4])
+m4_include([m4/strtoul.m4])
+m4_include([m4/strtoull.m4])
+m4_include([m4/strtoumax.m4])
+m4_include([m4/symlink.m4])
+m4_include([m4/symlinkat.m4])
+m4_include([m4/sys_socket_h.m4])
+m4_include([m4/sys_stat_h.m4])
+m4_include([m4/sys_time_h.m4])
+m4_include([m4/sys_types_h.m4])
+m4_include([m4/sysexits.m4])
+m4_include([m4/system.m4])
+m4_include([m4/tempname.m4])
+m4_include([m4/time_h.m4])
+m4_include([m4/time_r.m4])
+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/unlinkdir.m4])
+m4_include([m4/unlocked-io.m4])
+m4_include([m4/utimbuf.m4])
+m4_include([m4/utimens.m4])
+m4_include([m4/utimensat.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/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_h.m4])
+m4_include([m4/wcwidth.m4])
+m4_include([m4/wint_t.m4])
+m4_include([m4/write.m4])
+m4_include([m4/xalloc.m4])
+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/autom4te.cache/output.0 b/autom4te.cache/output.0
new file mode 100644
index 00000000..d2241a38
--- /dev/null
+++ b/autom4te.cache/output.0
@@ -0,0 +1,34479 @@
+@%:@! /bin/sh
+@%:@ Guess values for system-dependent variables and create Makefiles.
+@%:@ Generated by GNU Autoconf 2.68 for GNU tar 1.26.90.
+@%:@
+@%:@ Report bugs to <bug-tar@gnu.org>.
+@%:@
+@%:@
+@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+@%:@ Foundation, Inc.
+@%:@
+@%:@
+@%:@ This configure script is free software; the Free Software Foundation
+@%:@ gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # 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
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+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
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (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
+ 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
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# 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.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # 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
+else
+ case \`(set -o) 2>/dev/null\` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in @%:@(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ # Preserve -v and -x to the replacement shell.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ case $- in @%:@ ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+ esac
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org and bug-tar@gnu.org
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
+@%:@ ----------------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ 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'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in @%:@(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIB@&t@OBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='GNU tar'
+PACKAGE_TARNAME='tar'
+PACKAGE_VERSION='1.26.90'
+PACKAGE_STRING='GNU tar 1.26.90'
+PACKAGE_BUGREPORT='bug-tar@gnu.org'
+PACKAGE_URL='http://www.gnu.org/software/tar/'
+
+ac_unique_file="src/tar.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_header_list=
+ac_func_list=
+gl_fnmatch_required=POSIX
+gl_getopt_required=POSIX
+gl_getopt_required=POSIX
+gt_needs=
+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
+LIB@&t@OBJS
+DEFAULT_RMT_COMMAND
+DEFAULT_RMT_DIR
+PU_RMT_PROG
+LIB_SETSOCKOPT
+LIBGNU_LTLIBDEPS
+LIBGNU_LIBDEPS
+gltests_WITNESS
+NEXT_AS_FIRST_DIRECTIVE_WCHAR_H
+NEXT_WCHAR_H
+HAVE_FEATURES_H
+LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE
+LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE
+LIBUNISTRING_UNIWIDTH_H
+LIBUNISTRING_UNITYPES_H
+HAVE_UNISTD_H
+NEXT_AS_FIRST_DIRECTIVE_UNISTD_H
+NEXT_UNISTD_H
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC
+SYS_TIME_H_DEFINES_STRUCT_TIMESPEC
+TIME_H_DEFINES_STRUCT_TIMESPEC
+NEXT_AS_FIRST_DIRECTIVE_TIME_H
+NEXT_TIME_H
+GL_GENERATE_SYSEXITS_H_FALSE
+GL_GENERATE_SYSEXITS_H_TRUE
+SYSEXITS_H
+HAVE_SYSEXITS_H
+NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H
+NEXT_SYSEXITS_H
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H
+NEXT_SYS_TYPES_H
+NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H
+NEXT_SYS_STAT_H
+HAVE_STRINGS_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_FFS
+GNULIB_FFS
+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
+GL_GENERATE_STDDEF_H_FALSE
+GL_GENERATE_STDDEF_H_TRUE
+STDDEF_H
+HAVE_WCHAR_T
+REPLACE_NULL
+GL_GENERATE_STDARG_H_FALSE
+GL_GENERATE_STDARG_H_TRUE
+STDARG_H
+NEXT_AS_FIRST_DIRECTIVE_STDARG_H
+NEXT_STDARG_H
+GL_GENERATE_STDALIGN_H_FALSE
+GL_GENERATE_STDALIGN_H_TRUE
+STDALIGN_H
+NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H
+NEXT_SIGNAL_H
+REPLACE_RAISE
+REPLACE_PTHREAD_SIGMASK
+HAVE_SIGHANDLER_T
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T
+HAVE_STRUCT_SIGACTION_SA_SIGACTION
+HAVE_SIGACTION
+HAVE_SIGINFO_T
+HAVE_SIGSET_T
+HAVE_RAISE
+HAVE_PTHREAD_SIGMASK
+HAVE_POSIX_SIGNALBLOCKING
+GNULIB_SIGACTION
+GNULIB_SIGPROCMASK
+GNULIB_SIGNAL_H_SIGPIPE
+GNULIB_RAISE
+GNULIB_PTHREAD_SIGMASK
+HAVE__BOOL
+GL_GENERATE_STDBOOL_H_FALSE
+GL_GENERATE_STDBOOL_H_TRUE
+STDBOOL_H
+REPLACE_TIMEGM
+REPLACE_NANOSLEEP
+REPLACE_MKTIME
+REPLACE_LOCALTIME_R
+HAVE_TIMEGM
+HAVE_STRPTIME
+HAVE_NANOSLEEP
+HAVE_DECL_LOCALTIME_R
+GNULIB_TIME_R
+GNULIB_TIMEGM
+GNULIB_STRPTIME
+GNULIB_NANOSLEEP
+GNULIB_MKTIME
+UNDEFINE_STRTOK_R
+REPLACE_STRTOK_R
+REPLACE_STRSIGNAL
+REPLACE_STRNLEN
+REPLACE_STRNDUP
+REPLACE_STRNCAT
+REPLACE_STRERROR_R
+REPLACE_STRERROR
+REPLACE_STRCHRNUL
+REPLACE_STRCASESTR
+REPLACE_STRSTR
+REPLACE_STRDUP
+REPLACE_STPNCPY
+REPLACE_MEMMEM
+REPLACE_MEMCHR
+HAVE_STRVERSCMP
+HAVE_DECL_STRSIGNAL
+HAVE_DECL_STRERROR_R
+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_MEMCHR
+HAVE_FFSLL
+HAVE_FFSL
+HAVE_MBSLEN
+GNULIB_STRVERSCMP
+GNULIB_STRSIGNAL
+GNULIB_STRERROR_R
+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_STRNCAT
+GNULIB_STRDUP
+GNULIB_STRCHRNUL
+GNULIB_STPNCPY
+GNULIB_STPCPY
+GNULIB_RAWMEMCHR
+GNULIB_MEMRCHR
+GNULIB_MEMPCPY
+GNULIB_MEMMEM
+GNULIB_MEMCHR
+GNULIB_FFSLL
+GNULIB_FFSL
+LOCALE_FR_UTF8
+LOCALE_ZH_CN
+LOCALE_JA
+LOCALCHARSET_TESTS_ENVIRONMENT
+GLIBC21
+HAVE_LANGINFO_YESEXPR
+HAVE_LANGINFO_ERA
+HAVE_LANGINFO_T_FMT_AMPM
+HAVE_LANGINFO_CODESET
+HAVE_LANGINFO_H
+NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H
+NEXT_LANGINFO_H
+REPLACE_NL_LANGINFO
+HAVE_NL_LANGINFO
+GNULIB_NL_LANGINFO
+REPLACE_TOWLOWER
+REPLACE_ISWCNTRL
+HAVE_WCTYPE_H
+NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H
+NEXT_WCTYPE_H
+HAVE_WINT_T
+HAVE_ISWCNTRL
+REPLACE_ISWBLANK
+HAVE_WCTRANS_T
+HAVE_WCTYPE_T
+HAVE_ISWBLANK
+GNULIB_TOWCTRANS
+GNULIB_WCTRANS
+GNULIB_ISWCTYPE
+GNULIB_WCTYPE
+GNULIB_ISWBLANK
+NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H
+NEXT_INTTYPES_H
+UINT64_MAX_EQ_ULONG_MAX
+UINT32_MAX_LT_UINTMAX_MAX
+PRIPTR_PREFIX
+PRI_MACROS_BROKEN
+INT64_MAX_EQ_LONG_MAX
+INT32_MAX_LT_INTMAX_MAX
+REPLACE_STRTOIMAX
+HAVE_DECL_STRTOUMAX
+HAVE_DECL_STRTOIMAX
+HAVE_DECL_IMAXDIV
+HAVE_DECL_IMAXABS
+GNULIB_STRTOUMAX
+GNULIB_STRTOIMAX
+GNULIB_IMAXDIV
+GNULIB_IMAXABS
+GL_GENERATE_STDINT_H_FALSE
+GL_GENERATE_STDINT_H_TRUE
+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_WCHAR_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
+GNULIB_GL_UNISTD_H_GETOPT
+GETOPT_H
+HAVE_GETOPT_H
+NEXT_AS_FIRST_DIRECTIVE_GETOPT_H
+NEXT_GETOPT_H
+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_FSTAT
+GNULIB_FCHMODAT
+REPLACE_VSPRINTF
+REPLACE_VSNPRINTF
+REPLACE_VPRINTF
+REPLACE_VFPRINTF
+REPLACE_VDPRINTF
+REPLACE_VASPRINTF
+REPLACE_TMPFILE
+REPLACE_STDIO_WRITE_FUNCS
+REPLACE_STDIO_READ_FUNCS
+REPLACE_SPRINTF
+REPLACE_SNPRINTF
+REPLACE_RENAMEAT
+REPLACE_RENAME
+REPLACE_REMOVE
+REPLACE_PRINTF
+REPLACE_POPEN
+REPLACE_PERROR
+REPLACE_OBSTACK_PRINTF
+REPLACE_GETLINE
+REPLACE_GETDELIM
+REPLACE_FTELLO
+REPLACE_FTELL
+REPLACE_FSEEKO
+REPLACE_FSEEK
+REPLACE_FREOPEN
+REPLACE_FPURGE
+REPLACE_FPRINTF
+REPLACE_FOPEN
+REPLACE_FFLUSH
+REPLACE_FDOPEN
+REPLACE_FCLOSE
+REPLACE_DPRINTF
+HAVE_VDPRINTF
+HAVE_VASPRINTF
+HAVE_RENAMEAT
+HAVE_POPEN
+HAVE_PCLOSE
+HAVE_FTELLO
+HAVE_FSEEKO
+HAVE_DPRINTF
+HAVE_DECL_VSNPRINTF
+HAVE_DECL_SNPRINTF
+HAVE_DECL_OBSTACK_PRINTF
+HAVE_DECL_GETLINE
+HAVE_DECL_GETDELIM
+HAVE_DECL_FTELLO
+HAVE_DECL_FSEEKO
+HAVE_DECL_FPURGE
+GNULIB_VSPRINTF_POSIX
+GNULIB_VSNPRINTF
+GNULIB_VPRINTF_POSIX
+GNULIB_VPRINTF
+GNULIB_VFPRINTF_POSIX
+GNULIB_VFPRINTF
+GNULIB_VDPRINTF
+GNULIB_VSCANF
+GNULIB_VFSCANF
+GNULIB_VASPRINTF
+GNULIB_TMPFILE
+GNULIB_STDIO_H_SIGPIPE
+GNULIB_STDIO_H_NONBLOCKING
+GNULIB_SPRINTF_POSIX
+GNULIB_SNPRINTF
+GNULIB_SCANF
+GNULIB_RENAMEAT
+GNULIB_RENAME
+GNULIB_REMOVE
+GNULIB_PUTS
+GNULIB_PUTCHAR
+GNULIB_PUTC
+GNULIB_PRINTF_POSIX
+GNULIB_PRINTF
+GNULIB_POPEN
+GNULIB_PERROR
+GNULIB_PCLOSE
+GNULIB_OBSTACK_PRINTF_POSIX
+GNULIB_OBSTACK_PRINTF
+GNULIB_GETS
+GNULIB_GETLINE
+GNULIB_GETDELIM
+GNULIB_GETCHAR
+GNULIB_GETC
+GNULIB_FWRITE
+GNULIB_FTELLO
+GNULIB_FTELL
+GNULIB_FSEEKO
+GNULIB_FSEEK
+GNULIB_FSCANF
+GNULIB_FREOPEN
+GNULIB_FREAD
+GNULIB_FPUTS
+GNULIB_FPUTC
+GNULIB_FPURGE
+GNULIB_FPRINTF_POSIX
+GNULIB_FPRINTF
+GNULIB_FOPEN
+GNULIB_FGETS
+GNULIB_FGETC
+GNULIB_FFLUSH
+GNULIB_FDOPEN
+GNULIB_FCLOSE
+GNULIB_DPRINTF
+GL_GENERATE_FNMATCH_H_FALSE
+GL_GENERATE_FNMATCH_H_TRUE
+FNMATCH_H
+REPLACE_ITOLD
+GL_GENERATE_FLOAT_H_FALSE
+GL_GENERATE_FLOAT_H_TRUE
+FLOAT_H
+NEXT_AS_FIRST_DIRECTIVE_FLOAT_H
+NEXT_FLOAT_H
+NEXT_AS_FIRST_DIRECTIVE_FCNTL_H
+NEXT_FCNTL_H
+REPLACE_OPENAT
+REPLACE_OPEN
+REPLACE_FCNTL
+HAVE_OPENAT
+HAVE_FCNTL
+GNULIB_OPENAT
+GNULIB_OPEN
+GNULIB_NONBLOCKING
+GNULIB_FCNTL
+EOVERFLOW_VALUE
+EOVERFLOW_HIDDEN
+ENOLINK_VALUE
+ENOLINK_HIDDEN
+EMULTIHOP_VALUE
+EMULTIHOP_HIDDEN
+GL_GENERATE_ERRNO_H_FALSE
+GL_GENERATE_ERRNO_H_TRUE
+ERRNO_H
+NEXT_AS_FIRST_DIRECTIVE_ERRNO_H
+NEXT_ERRNO_H
+HAVE_DIRENT_H
+NEXT_AS_FIRST_DIRECTIVE_DIRENT_H
+NEXT_DIRENT_H
+PRAGMA_COLUMNS
+PRAGMA_SYSTEM_HEADER
+INCLUDE_NEXT_AS_FIRST_DIRECTIVE
+INCLUDE_NEXT
+pkglibexecdir
+lispdir
+REPLACE_FDOPENDIR
+REPLACE_DIRFD
+REPLACE_CLOSEDIR
+REPLACE_OPENDIR
+HAVE_ALPHASORT
+HAVE_SCANDIR
+HAVE_FDOPENDIR
+HAVE_DECL_FDOPENDIR
+HAVE_DECL_DIRFD
+HAVE_CLOSEDIR
+HAVE_REWINDDIR
+HAVE_READDIR
+HAVE_OPENDIR
+GNULIB_ALPHASORT
+GNULIB_SCANDIR
+GNULIB_FDOPENDIR
+GNULIB_DIRFD
+GNULIB_CLOSEDIR
+GNULIB_REWINDDIR
+GNULIB_READDIR
+GNULIB_OPENDIR
+HAVE_WINSOCK2_H
+HAVE_MSVC_INVALID_PARAMETER_HANDLER
+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_TTYNAME_R
+REPLACE_SYMLINK
+REPLACE_SLEEP
+REPLACE_RMDIR
+REPLACE_READLINK
+REPLACE_READ
+REPLACE_PWRITE
+REPLACE_PREAD
+REPLACE_LSEEK
+REPLACE_LINKAT
+REPLACE_LINK
+REPLACE_LCHOWN
+REPLACE_ISATTY
+REPLACE_GETPAGESIZE
+REPLACE_GETGROUPS
+REPLACE_GETLOGIN_R
+REPLACE_GETDOMAINNAME
+REPLACE_GETCWD
+REPLACE_FCHOWNAT
+REPLACE_DUP2
+REPLACE_DUP
+REPLACE_CLOSE
+REPLACE_CHOWN
+HAVE_SYS_PARAM_H
+HAVE_OS_H
+HAVE_DECL_TTYNAME_R
+HAVE_DECL_SETHOSTNAME
+HAVE_DECL_GETUSERSHELL
+HAVE_DECL_GETPAGESIZE
+HAVE_DECL_GETLOGIN_R
+HAVE_DECL_GETDOMAINNAME
+HAVE_DECL_FDATASYNC
+HAVE_DECL_FCHDIR
+HAVE_DECL_ENVIRON
+HAVE_USLEEP
+HAVE_UNLINKAT
+HAVE_SYMLINKAT
+HAVE_SYMLINK
+HAVE_SLEEP
+HAVE_SETHOSTNAME
+HAVE_READLINKAT
+HAVE_READLINK
+HAVE_PWRITE
+HAVE_PREAD
+HAVE_PIPE2
+HAVE_PIPE
+HAVE_LINKAT
+HAVE_LINK
+HAVE_LCHOWN
+HAVE_GROUP_MEMBER
+HAVE_GETPAGESIZE
+HAVE_GETLOGIN
+HAVE_GETHOSTNAME
+HAVE_GETGROUPS
+HAVE_GETDTABLESIZE
+HAVE_FTRUNCATE
+HAVE_FSYNC
+HAVE_FDATASYNC
+HAVE_FCHOWNAT
+HAVE_FCHDIR
+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_NONBLOCKING
+GNULIB_TTYNAME_R
+GNULIB_SYMLINKAT
+GNULIB_SYMLINK
+GNULIB_SLEEP
+GNULIB_SETHOSTNAME
+GNULIB_RMDIR
+GNULIB_READLINKAT
+GNULIB_READLINK
+GNULIB_READ
+GNULIB_PWRITE
+GNULIB_PREAD
+GNULIB_PIPE2
+GNULIB_PIPE
+GNULIB_LSEEK
+GNULIB_LINKAT
+GNULIB_LINK
+GNULIB_LCHOWN
+GNULIB_ISATTY
+GNULIB_GROUP_MEMBER
+GNULIB_GETUSERSHELL
+GNULIB_GETPAGESIZE
+GNULIB_GETLOGIN_R
+GNULIB_GETLOGIN
+GNULIB_GETHOSTNAME
+GNULIB_GETGROUPS
+GNULIB_GETDTABLESIZE
+GNULIB_GETDOMAINNAME
+GNULIB_GETCWD
+GNULIB_FTRUNCATE
+GNULIB_FSYNC
+GNULIB_FDATASYNC
+GNULIB_FCHOWNAT
+GNULIB_FCHDIR
+GNULIB_FACCESSAT
+GNULIB_EUIDACCESS
+GNULIB_ENVIRON
+GNULIB_DUP3
+GNULIB_DUP2
+GNULIB_DUP
+GNULIB_CLOSE
+GNULIB_CHOWN
+GNULIB_CHDIR
+REPLACE_WCTOMB
+REPLACE_UNSETENV
+REPLACE_STRTOD
+REPLACE_SETENV
+REPLACE_REALPATH
+REPLACE_REALLOC
+REPLACE_RANDOM_R
+REPLACE_PUTENV
+REPLACE_PTSNAME_R
+REPLACE_MKSTEMP
+REPLACE_MBTOWC
+REPLACE_MALLOC
+REPLACE_CANONICALIZE_FILE_NAME
+REPLACE_CALLOC
+HAVE_DECL_UNSETENV
+HAVE_UNLOCKPT
+HAVE_SYS_LOADAVG_H
+HAVE_STRUCT_RANDOM_DATA
+HAVE_STRTOULL
+HAVE_STRTOLL
+HAVE_STRTOD
+HAVE_DECL_SETENV
+HAVE_SETENV
+HAVE_RPMATCH
+HAVE_REALPATH
+HAVE_RANDOM_R
+HAVE_RANDOM_H
+HAVE_RANDOM
+HAVE_PTSNAME_R
+HAVE_PTSNAME
+HAVE_POSIX_OPENPT
+HAVE_MKSTEMPS
+HAVE_MKSTEMP
+HAVE_MKOSTEMPS
+HAVE_MKOSTEMP
+HAVE_MKDTEMP
+HAVE_GRANTPT
+HAVE_GETSUBOPT
+HAVE_DECL_GETLOADAVG
+HAVE_CANONICALIZE_FILE_NAME
+HAVE_ATOLL
+HAVE__EXIT
+GNULIB_WCTOMB
+GNULIB_UNSETENV
+GNULIB_UNLOCKPT
+GNULIB_SYSTEM_POSIX
+GNULIB_STRTOULL
+GNULIB_STRTOLL
+GNULIB_STRTOD
+GNULIB_SETENV
+GNULIB_RPMATCH
+GNULIB_REALPATH
+GNULIB_REALLOC_POSIX
+GNULIB_RANDOM_R
+GNULIB_RANDOM
+GNULIB_PUTENV
+GNULIB_PTSNAME_R
+GNULIB_PTSNAME
+GNULIB_POSIX_OPENPT
+GNULIB_MKSTEMPS
+GNULIB_MKSTEMP
+GNULIB_MKOSTEMPS
+GNULIB_MKOSTEMP
+GNULIB_MKDTEMP
+GNULIB_MBTOWC
+GNULIB_MALLOC_POSIX
+GNULIB_GRANTPT
+GNULIB_GETSUBOPT
+GNULIB_GETLOADAVG
+GNULIB_CANONICALIZE_FILE_NAME
+GNULIB_CALLOC_POSIX
+GNULIB_ATOLL
+GNULIB__EXIT
+LOCALE_FR
+REPLACE_WCSWIDTH
+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_WCSWIDTH
+HAVE_WCSTOK
+HAVE_WCSSTR
+HAVE_WCSPBRK
+HAVE_WCSSPN
+HAVE_WCSCSPN
+HAVE_WCSRCHR
+HAVE_WCSCHR
+HAVE_WCSDUP
+HAVE_WCSXFRM
+HAVE_WCSCOLL
+HAVE_WCSNCASECMP
+HAVE_WCSCASECMP
+HAVE_WCSNCMP
+HAVE_WCSCMP
+HAVE_WCSNCAT
+HAVE_WCSCAT
+HAVE_WCPNCPY
+HAVE_WCSNCPY
+HAVE_WCPCPY
+HAVE_WCSCPY
+HAVE_WCSNLEN
+HAVE_WCSLEN
+HAVE_WMEMSET
+HAVE_WMEMMOVE
+HAVE_WMEMCPY
+HAVE_WMEMCMP
+HAVE_WMEMCHR
+HAVE_WCSNRTOMBS
+HAVE_WCSRTOMBS
+HAVE_WCRTOMB
+HAVE_MBSNRTOWCS
+HAVE_MBSRTOWCS
+HAVE_MBRLEN
+HAVE_MBRTOWC
+HAVE_MBSINIT
+HAVE_BTOWC
+GNULIB_WCSWIDTH
+GNULIB_WCSTOK
+GNULIB_WCSSTR
+GNULIB_WCSPBRK
+GNULIB_WCSSPN
+GNULIB_WCSCSPN
+GNULIB_WCSRCHR
+GNULIB_WCSCHR
+GNULIB_WCSDUP
+GNULIB_WCSXFRM
+GNULIB_WCSCOLL
+GNULIB_WCSNCASECMP
+GNULIB_WCSCASECMP
+GNULIB_WCSNCMP
+GNULIB_WCSCMP
+GNULIB_WCSNCAT
+GNULIB_WCSCAT
+GNULIB_WCPNCPY
+GNULIB_WCSNCPY
+GNULIB_WCPCPY
+GNULIB_WCSCPY
+GNULIB_WCSNLEN
+GNULIB_WCSLEN
+GNULIB_WMEMSET
+GNULIB_WMEMMOVE
+GNULIB_WMEMCPY
+GNULIB_WMEMCMP
+GNULIB_WMEMCHR
+GNULIB_WCWIDTH
+GNULIB_WCSNRTOMBS
+GNULIB_WCSRTOMBS
+GNULIB_WCRTOMB
+GNULIB_MBSNRTOWCS
+GNULIB_MBSRTOWCS
+GNULIB_MBRLEN
+GNULIB_MBRTOWC
+GNULIB_MBSINIT
+GNULIB_WCTOB
+GNULIB_BTOWC
+GL_GENERATE_ALLOCA_H_FALSE
+GL_GENERATE_ALLOCA_H_TRUE
+ALLOCA_H
+ALLOCA
+GL_COND_LIBTOOL_FALSE
+GL_COND_LIBTOOL_TRUE
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+ARFLAGS
+AR
+EGREP
+GREP
+CPP
+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_URL
+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
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+YACC
+YFLAGS
+CPP
+DEFAULT_RMT_DIR
+DEFAULT_ARCHIVE_FORMAT
+DEFAULT_ARCHIVE
+DEFAULT_BLOCKING
+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
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ 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 ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ 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- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ 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_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ 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.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $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
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $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
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+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 .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ 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
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+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.26.90 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ @<:@@S|@ac_default_prefix@:>@
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ @<:@PREFIX@:>@
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+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]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of GNU tar 1.26.90:";;
+ 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
+ --disable-rpath do not hardcode runtime library paths
+ --disable-nls do not use Native Language Support
+ --enable-backup-scripts Create and install backup and restore scripts
+
+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 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
+ --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib
+ --without-libintl-prefix don't search for libintl in includedir and libdir
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ YACC The `Yet Another Compiler Compiler' implementation to use.
+ Defaults to the first program found out of: `bison -y', `byacc',
+ `yacc'.
+ YFLAGS The list of arguments that will be passed by default to @S|@YACC.
+ This script will default YFLAGS to the empty string to avoid a
+ default value of `-d' given by some make applications.
+ CPP C preprocessor
+ DEFAULT_RMT_DIR
+ Define full file name of the directory where to install `rmt'.
+ (default: @S|@(libexecdir))
+ DEFAULT_ARCHIVE_FORMAT
+ Set the default archive format. Allowed values are: V7, OLDGNU,
+ USTAR, POSIX, GNU. Default is GNU
+ DEFAULT_ARCHIVE
+ Set the name of the default archive (default: -)
+ DEFAULT_BLOCKING
+ Define default blocking factor (default: 20)
+ DEFAULT_QUOTING_STYLE
+ Set the default quoting style. Allowed values are: literal,
+ shell, shell-always, c, escape, locale, clocale . Default is
+ "escape".
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <bug-tar@gnu.org>.
+GNU tar home page: <http://www.gnu.org/software/tar/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>.
+_ACEOF
+ac_status=$?
+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" ||
+ { 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=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ 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/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+GNU tar configure 1.26.90
+generated by GNU Autoconf 2.68
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+@%:@ ac_fn_c_try_compile LINENO
+@%:@ --------------------------
+@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_compile
+
+@%:@ ac_fn_c_try_cpp LINENO
+@%:@ ----------------------
+@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_cpp
+
+@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using
+@%:@ the include files in INCLUDES and setting the cache variable VAR
+@%:@ accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ------------------------------ ##
+## Report this to bug-tar@gnu.org ##
+## ------------------------------ ##"
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_header_mongrel
+
+@%:@ ac_fn_c_try_run LINENO
+@%:@ ----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes
+@%:@ that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+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
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_run
+
+@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists and can be compiled using the include files in
+@%:@ INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_header_compile
+
+@%:@ ac_fn_c_try_link LINENO
+@%:@ -----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ 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_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_link
+
+@%:@ ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+@%:@ -------------------------------------------
+@%:@ Tests whether TYPE exists after having included INCLUDES, setting cache
+@%:@ variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_type
+
+@%:@ ac_fn_c_check_func LINENO FUNC VAR
+@%:@ ----------------------------------
+@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); 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 $2
+
+/* 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 $2 ();
+/* 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_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_func
+
+@%:@ ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+@%:@ ---------------------------------------------
+@%:@ Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+@%:@ accordingly.
+ac_fn_c_check_decl ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+@%:@ifndef $as_decl_name
+@%:@ifdef __cplusplus
+ (void) $as_decl_use;
+@%:@else
+ (void) $as_decl_name;
+@%:@endif
+@%:@endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_decl
+
+@%:@ ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+@%:@ --------------------------------------------
+@%:@ Tries to find the compile-time value of EXPR in a program that includes
+@%:@ INCLUDES, setting VAR accordingly. Returns whether the value could be
+@%:@ computed
+ac_fn_c_compute_int ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !(($2) >= 0)@:>@;
+test_array @<:@0@:>@ = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@;
+test_array @<:@0@:>@ = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid; break
+else
+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !(($2) < 0)@:>@;
+test_array @<:@0@:>@ = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !(($2) >= $ac_mid)@:>@;
+test_array @<:@0@:>@ = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=$ac_mid; break
+else
+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@;
+test_array @<:@0@:>@ = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid
+else
+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in @%:@((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+@%:@include <stdio.h>
+@%:@include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ return 1;
+ if (($2) < 0)
+ {
+ long int i = longval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%ld", i);
+ }
+ else
+ {
+ unsigned long int i = ulongval ();
+ if (i != ($2))
+ return 1;
+ 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;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+ ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+ fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_compute_int
+
+@%:@ ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+@%:@ ----------------------------------------------------
+@%:@ Tries to find if the field MEMBER exists in type AGGR, after including
+@%:@ INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$4
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_member
+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.26.90, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$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= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $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 &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in @%:@((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$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" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+as_fn_append ac_header_list " fcntl.h"
+as_fn_append ac_header_list " linux/fd.h"
+as_fn_append ac_header_list " memory.h"
+as_fn_append ac_header_list " net/errno.h"
+as_fn_append ac_header_list " sgtty.h"
+as_fn_append ac_header_list " string.h"
+as_fn_append ac_header_list " sys/param.h"
+as_fn_append ac_header_list " sys/device.h"
+as_fn_append ac_header_list " sys/gentape.h"
+as_fn_append ac_header_list " sys/inet.h"
+as_fn_append ac_header_list " sys/io/trioctl.h"
+as_fn_append ac_header_list " sys/mtio.h"
+as_fn_append ac_header_list " sys/time.h"
+as_fn_append ac_header_list " sys/tprintf.h"
+as_fn_append ac_header_list " sys/tape.h"
+as_fn_append ac_header_list " unistd.h"
+as_fn_append ac_header_list " locale.h"
+as_fn_append ac_func_list " flockfile"
+as_fn_append ac_func_list " funlockfile"
+as_fn_append ac_header_list " features.h"
+as_fn_append ac_header_list " linewrap.h"
+as_fn_append ac_func_list " pathconf"
+as_fn_append ac_func_list " btowc"
+as_fn_append ac_func_list " canonicalize_file_name"
+as_fn_append ac_func_list " getcwd"
+as_fn_append ac_func_list " readlink"
+as_fn_append ac_func_list " realpath"
+as_fn_append ac_func_list " readlinkat"
+as_fn_append ac_func_list " chown"
+as_fn_append ac_func_list " fchown"
+as_fn_append ac_func_list " _set_invalid_parameter_handler"
+as_fn_append ac_header_list " sys/socket.h"
+as_fn_append ac_func_list " fchdir"
+as_fn_append ac_header_list " dirent.h"
+as_fn_append ac_func_list " fdopendir"
+as_fn_append ac_func_list " fcntl"
+as_fn_append ac_func_list " symlink"
+as_fn_append ac_func_list " mempcpy"
+as_fn_append ac_func_list " isblank"
+as_fn_append ac_func_list " iswctype"
+as_fn_append ac_func_list " mbsrtowcs"
+as_fn_append ac_func_list " wmemchr"
+as_fn_append ac_func_list " wmemcpy"
+as_fn_append ac_func_list " wmempcpy"
+as_fn_append ac_header_list " wctype.h"
+gl_fnmatch_required=GNU
+as_fn_append ac_header_list " stdio_ext.h"
+as_fn_append ac_func_list " __fpending"
+as_fn_append ac_func_list " fstatat"
+as_fn_append ac_func_list " futimens"
+as_fn_append ac_func_list " getdelim"
+as_fn_append ac_func_list " getdtablesize"
+gl_getopt_required=GNU
+as_fn_append ac_header_list " getopt.h"
+as_fn_append ac_func_list " gettimeofday"
+as_fn_append ac_func_list " nanotime"
+as_fn_append ac_header_list " wchar.h"
+as_fn_append ac_header_list " stdint.h"
+as_fn_append ac_header_list " inttypes.h"
+as_fn_append ac_func_list " iswcntrl"
+as_fn_append ac_func_list " iswblank"
+as_fn_append ac_header_list " langinfo.h"
+as_fn_append ac_func_list " lchmod"
+as_fn_append ac_func_list " link"
+as_fn_append ac_func_list " openat"
+as_fn_append ac_func_list " linkat"
+as_fn_append ac_func_list " lstat"
+as_fn_append ac_func_list " mbsinit"
+as_fn_append ac_func_list " mbrtowc"
+as_fn_append ac_header_list " sys/mman.h"
+as_fn_append ac_func_list " mprotect"
+as_fn_append ac_func_list " mkfifo"
+as_fn_append ac_func_list " mkfifoat"
+as_fn_append ac_func_list " mknodat"
+as_fn_append ac_func_list " mknod"
+as_fn_append ac_func_list " alarm"
+as_fn_append ac_func_list " nl_langinfo"
+as_fn_append ac_header_list " priv.h"
+as_fn_append ac_func_list " wcscoll"
+as_fn_append ac_func_list " renameat"
+as_fn_append ac_func_list " setenv"
+as_fn_append ac_func_list " sleep"
+as_fn_append ac_func_list " snprintf"
+as_fn_append ac_func_list " strdup"
+as_fn_append ac_header_list " strings.h"
+as_fn_append ac_func_list " strndup"
+as_fn_append ac_func_list " strtoumax"
+as_fn_append ac_func_list " symlinkat"
+as_fn_append ac_header_list " sys/stat.h"
+as_fn_append ac_header_list " sysexits.h"
+as_fn_append ac_func_list " localtime_r"
+as_fn_append ac_func_list " pipe"
+as_fn_append ac_header_list " utime.h"
+as_fn_append ac_func_list " futimes"
+as_fn_append ac_func_list " futimesat"
+as_fn_append ac_func_list " utimensat"
+as_fn_append ac_func_list " lutimes"
+as_fn_append ac_func_list " vasnprintf"
+as_fn_append ac_func_list " wcrtomb"
+as_fn_append ac_func_list " wcwidth"
+as_fn_append ac_header_list " netdb.h"
+as_fn_append ac_header_list " sys/wait.h"
+as_fn_append ac_header_list " pwd.h"
+as_fn_append ac_header_list " grp.h"
+as_fn_append ac_func_list " setlocale"
+as_fn_append ac_func_list " fchmod"
+as_fn_append ac_func_list " fsync"
+gt_needs="$gt_needs need-formatstring-macros"
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$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)
+ { $as_echo "$as_me:${as_lineno-$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
+ # 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:${as_lineno-$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:${as_lineno-$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:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$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=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$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_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+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
+
+
+
+ac_aux_dir=
+for ac_dir in build-aux "$srcdir"/build-aux; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+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"
+
+
+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
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# 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.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in @%:@((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ 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
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$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_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+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`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # 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".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $.
+# By default was `s,x,x', remove it if useless.
+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`
+
+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=
+ { $as_echo "$as_me:${as_lineno-$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
+
+# 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:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; 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:${as_lineno-$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:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; 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:${as_lineno-$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:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$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:${as_lineno-$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 ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # 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_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$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 eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+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
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='tar'
+ VERSION='1.26.90'
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+
+{ $as_echo "$as_me:${as_lineno-$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}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ { echo "$as_me:$LINENO: $_am_tar --version" >&5
+ ($_am_tar --version) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && break
+ done
+ am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x ustar -w "$$tardir"'
+ am__tar_='pax -L -x ustar -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+ am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+ am__untar='cpio -i -H ustar -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_ustar}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+ (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+ ($am__untar <conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+if ${am_cv_prog_tar_ustar+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_prog_tar_ustar=$_am_tool
+fi
+
+{ $as_echo "$as_me:${as_lineno-$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
+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
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $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.
+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_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+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
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $@%:@ != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ 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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $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.
+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_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+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.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&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 | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; 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'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+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 | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+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 | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; 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 | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$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 :
+
+fi
+
+ac_ext=c
+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
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$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
+# 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
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+@%:@ Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $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
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ 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
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ 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
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ 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
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $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 $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
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # 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_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $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.
+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_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_YACC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$YACC"; then
+ ac_cv_prog_YACC="$YACC" # 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_YACC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+YACC=$ac_cv_prog_YACC
+if test -n "$YACC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
+$as_echo "$YACC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$YACC" && break
+done
+test -n "$YACC" || YACC="yacc"
+
+
+ac_ext=c
+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
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_prog_CPP+:} false; then :
+ $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"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+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
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_path_GREP+:} false; then :
+ $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
+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.
+ # 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
+ $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"
+ $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
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $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
+ 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
+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.
+ # 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
+ $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"
+ $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
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5
+$as_echo_n "checking for Minix Amsterdam compiler... " >&6; }
+if ${gl_cv_c_amsterdam_compiler+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __ACK__
+Amsterdam
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Amsterdam" >/dev/null 2>&1; then :
+ gl_cv_c_amsterdam_compiler=yes
+else
+ gl_cv_c_amsterdam_compiler=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5
+$as_echo "$gl_cv_c_amsterdam_compiler" >&6; }
+ if test -z "$AR"; then
+ if test $gl_cv_c_amsterdam_compiler = yes; then
+ AR='cc -c.a'
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='-o'
+ fi
+ else
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # 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_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR="ar"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='cru'
+ fi
+ fi
+ else
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='cru'
+ fi
+ fi
+
+
+ if test -z "$RANLIB"; then
+ if test $gl_cv_c_amsterdam_compiler = yes; then
+ RANLIB=':'
+ else
+ 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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # 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_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $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.
+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_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+ fi
+ fi
+
+
+if test "x$CC" != xcc; then
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$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=`$as_echo "$2" |
+ sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+# Make sure it works both with $CC and with simple cc.
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+rm -f conftest2.*
+if { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } &&
+ test -f conftest2.$ac_objext && { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; };
+then
+ eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+ if test "x$CC" != xcc; then
+ # Test first that cc exists at all.
+ if { ac_try='cc -c conftest.$ac_ext >&5'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+ rm -f conftest2.*
+ if { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } &&
+ test -f conftest2.$ac_objext && { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; };
+ then
+ # cc works too.
+ :
+ else
+ # cc exists but doesn't like -o.
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
+ fi
+ fi
+ fi
+else
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
+fi
+rm -f core conftest*
+
+fi
+if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+$as_echo "@%:@define NO_MINUS_C_MINUS_O 1" >>confdefs.h
+
+fi
+
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+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.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $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 &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $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` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
+ MINIX=yes
+else
+ MINIX=
+fi
+
+
+ if test "$MINIX" = yes; then
+
+$as_echo "@%:@define _POSIX_SOURCE 1" >>confdefs.h
+
+
+$as_echo "@%:@define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+$as_echo "@%:@define _MINIX 1" >>confdefs.h
+
+ fi
+
+ case "$host_os" in
+ hpux*)
+
+$as_echo "@%:@define _XOPEN_SOURCE 500" >>confdefs.h
+
+ ;;
+ esac
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# define __EXTENSIONS__ 1
+ $ac_includes_default
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_safe_to_define___extensions__=yes
+else
+ ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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 &&
+ $as_echo "@%:@define __EXTENSIONS__ 1" >>confdefs.h
+
+ $as_echo "@%:@define _ALL_SOURCE 1" >>confdefs.h
+
+ $as_echo "@%:@define _DARWIN_C_SOURCE 1" >>confdefs.h
+
+ $as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h
+
+ $as_echo "@%:@define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+ $as_echo "@%:@define _TANDEM_SOURCE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_largefile_source+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_sys_largefile_source=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@define _LARGEFILE_SOURCE 1
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_sys_largefile_source=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_cv_sys_largefile_source=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+@%:@define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
+_ACEOF
+;;
+esac
+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.
+# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+if test $ac_cv_sys_largefile_source != unknown; then
+
+$as_echo "@%:@define HAVE_FSEEKO 1" >>confdefs.h
+
+fi
+
+@%:@ Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_largefile_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_file_offset_bits+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@define _FILE_OFFSET_BITS 64
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_large_files+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@define _LARGE_FILES 1
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+@%:@define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ fi
+
+
+fi
+
+ case $ac_cv_prog_cc_stdc in @%:@(
+ no) :
+ ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; @%:@(
+ *) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
+$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
+if ${ac_cv_prog_cc_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdio.h>
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+#define debug(...) fprintf (stderr, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+ int x = 1234;
+ int y = 5678;
+ debug ("Flag");
+ debug ("X = %d\n", x);
+ showlist (The first, second, and third items.);
+ report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+ your preprocessor is broken;
+#endif
+#if BIG_OK
+#else
+ your preprocessor is broken;
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+ int datasize;
+ double data[];
+};
+
+struct named_init {
+ int number;
+ const wchar_t *name;
+ double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+ // See if C++-style comments work.
+ // Iterate through items via the restricted pointer.
+ // Also check for declarations in for loops.
+ for (unsigned int i = 0; *(text+i) != '\0'; ++i)
+ continue;
+ return 0;
+}
+
+// Check varargs and va_copy.
+static void
+test_varargs (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ va_list args_copy;
+ va_copy (args_copy, args);
+
+ const char *str;
+ int number;
+ float fnumber;
+
+ while (*format)
+ {
+ switch (*format++)
+ {
+ case 's': // string
+ str = va_arg (args_copy, const char *);
+ break;
+ case 'd': // int
+ number = va_arg (args_copy, int);
+ break;
+ case 'f': // float
+ fnumber = va_arg (args_copy, double);
+ break;
+ default:
+ break;
+ }
+ }
+ va_end (args_copy);
+ va_end (args);
+}
+
+int
+main ()
+{
+
+ // Check bool.
+ _Bool success = false;
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ test_varargs ("s, d' f .", "string", 65, 34.234);
+ test_varargs_macros ();
+
+ // Check flexible array members.
+ struct incomplete_array *ia =
+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ ia->datasize = 10;
+ for (int i = 0; i < ia->datasize; ++i)
+ ia->data[i] = i * 1.234;
+
+ // Check named initializers.
+ struct named_init ni = {
+ .number = 34,
+ .name = L"Test wide string",
+ .average = 543.34343,
+ };
+
+ ni.number = 58;
+
+ int dynamic_array[ni.number];
+ dynamic_array[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+ || dynamic_array[ni.number - 1] != 543);
+
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c99" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c99"
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$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
+else
+ ac_cv_prog_cc_stdc=no
+fi
+
+fi
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_prog_cc_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+
+ case $ac_cv_prog_cc_stdc in @%:@(
+ no) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;; @%:@(
+ '') :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;; @%:@(
+ *) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5
+$as_echo "$ac_cv_prog_cc_stdc" >&6; } ;;
+esac
+
+
+
+
+ # Code from module alloca:
+ # Code from module alloca-opt:
+ # Code from module allocator:
+ # Code from module areadlink:
+ # Code from module areadlinkat:
+ # Code from module argmatch:
+ # Code from module argp:
+ # Code from module argp-version-etc:
+ # Code from module at-internal:
+ # Code from module backupfile:
+ # Code from module bitrotate:
+ # Code from module btowc:
+ # Code from module c-ctype:
+ # Code from module c-strcase:
+ # Code from module c-strcaseeq:
+ # Code from module canonicalize-lgpl:
+ # Code from module careadlinkat:
+ # Code from module chdir:
+ # Code from module chdir-long:
+ # Code from module chown:
+ # Code from module clock-time:
+ # Code from module cloexec:
+ # Code from module close:
+ # Code from module close-stream:
+ # Code from module closedir:
+ # Code from module closeout:
+ # Code from module configmake:
+ # Code from module d-ino:
+ # Code from module dirent:
+ # Code from module dirent-safer:
+ # Code from module dirfd:
+ # Code from module dirname:
+ # Code from module dirname-lgpl:
+ # Code from module dosname:
+ # Code from module double-slash-root:
+ # Code from module dup:
+ # Code from module dup2:
+ # Code from module environ:
+ # Code from module errno:
+ # Code from module error:
+ # Code from module exclude:
+ # Code from module exitfail:
+ # Code from module extensions:
+
+ # Code from module fchdir:
+ # Code from module fcntl:
+ # Code from module fcntl-h:
+ # Code from module fd-hook:
+ # Code from module fdopendir:
+ # Code from module fdutimensat:
+ # Code from module fileblocks:
+ # Code from module filename:
+ # Code from module filenamecat-lgpl:
+ # Code from module float:
+ # Code from module fnmatch:
+ # Code from module fnmatch-gnu:
+ # Code from module fpending:
+ # Code from module fseek:
+ # Code from module fseeko:
+
+ # Code from module fstat:
+ # Code from module fstatat:
+ # Code from module full-write:
+ # Code from module futimens:
+ # Code from module getcwd:
+ # Code from module getcwd-lgpl:
+ # Code from module getdelim:
+ # Code from module getdtablesize:
+ # Code from module getline:
+ # Code from module getopt-gnu:
+ # Code from module getopt-posix:
+ # Code from module getpagesize:
+ # Code from module gettext:
+ # Code from module gettext-h:
+ # Code from module gettime:
+ # Code from module gettimeofday:
+ # Code from module gitlog-to-changelog:
+ # Code from module hash:
+ # Code from module havelib:
+ # Code from module human:
+ # Code from module include_next:
+ # Code from module inline:
+ # Code from module intprops:
+ # Code from module inttostr:
+ # Code from module inttypes:
+ # Code from module inttypes-incomplete:
+ # Code from module iswblank:
+ # Code from module langinfo:
+ # Code from module largefile:
+
+ # Code from module lchown:
+ # Code from module link:
+ # Code from module link-follow:
+ # Code from module linkat:
+ # Code from module localcharset:
+ # Code from module lseek:
+ # Code from module lstat:
+ # Code from module malloc-gnu:
+ # Code from module malloc-posix:
+ # Code from module malloca:
+ # Code from module mbchar:
+ # Code from module mbrtowc:
+ # Code from module mbscasecmp:
+ # Code from module mbsinit:
+ # Code from module mbsrtowcs:
+ # Code from module mbtowc:
+ # Code from module mbuiter:
+ # Code from module memchr:
+ # Code from module mempcpy:
+ # Code from module memrchr:
+ # Code from module mkdtemp:
+ # Code from module mkfifo:
+ # Code from module mkfifoat:
+ # Code from module mknod:
+ # Code from module mktime:
+ # Code from module modechange:
+ # Code from module msvc-inval:
+ # Code from module msvc-nothrow:
+ # Code from module multiarch:
+ # Code from module nl_langinfo:
+ # Code from module nocrash:
+ # Code from module obstack:
+ # Code from module open:
+ # Code from module openat:
+ # Code from module openat-die:
+ # Code from module openat-h:
+ # Code from module opendir:
+ # Code from module parse-datetime:
+ # Code from module pathmax:
+ # Code from module priv-set:
+ # Code from module progname:
+ # Code from module quote:
+ # Code from module quotearg:
+ # Code from module quotearg-simple:
+ # Code from module raise:
+ # Code from module rawmemchr:
+ # Code from module read:
+ # Code from module readdir:
+ # Code from module readlink:
+ # Code from module readlinkat:
+ # Code from module realloc-posix:
+ # Code from module regex:
+ # Code from module rename:
+ # Code from module renameat:
+ # Code from module rewinddir:
+ # Code from module rmdir:
+ # Code from module rpmatch:
+ # Code from module safe-read:
+ # Code from module safe-write:
+ # Code from module same-inode:
+ # Code from module save-cwd:
+ # Code from module savedir:
+ # Code from module setenv:
+ # Code from module signal-h:
+ # Code from module size_max:
+ # Code from module sleep:
+ # Code from module snippet/_Noreturn:
+ # Code from module snippet/arg-nonnull:
+ # Code from module snippet/c++defs:
+ # Code from module snippet/warn-on-use:
+ # Code from module snprintf:
+ # Code from module ssize_t:
+ # Code from module stat:
+ # Code from module stat-macros:
+ # Code from module stat-time:
+ # Code from module stdalign:
+ # Code from module stdarg:
+
+
+
+ # Code from module stdbool:
+ # Code from module stddef:
+ # Code from module stdint:
+ # Code from module stdio:
+ # Code from module stdlib:
+ # Code from module stpcpy:
+ # Code from module strcase:
+ # Code from module strchrnul:
+ # Code from module strdup-posix:
+ # Code from module streq:
+ # Code from module strerror:
+ # Code from module strerror-override:
+ # Code from module string:
+ # Code from module strings:
+ # Code from module strndup:
+ # Code from module strnlen:
+ # Code from module strnlen1:
+ # Code from module strtol:
+ # Code from module strtoul:
+ # Code from module strtoull:
+ # Code from module strtoumax:
+ # Code from module symlink:
+ # Code from module symlinkat:
+ # Code from module sys_stat:
+ # Code from module sys_time:
+ # Code from module sys_types:
+ # Code from module sysexits:
+ # Code from module tempname:
+ # Code from module time:
+ # Code from module time_r:
+ # Code from module timespec:
+ # Code from module unistd:
+ # Code from module unistd-safer:
+ # Code from module unitypes:
+ # Code from module uniwidth/base:
+ # Code from module uniwidth/width:
+ # Code from module unlinkdir:
+ # Code from module unlocked-io:
+ # Code from module unsetenv:
+ # Code from module utimens:
+ # Code from module utimensat:
+ # Code from module vasnprintf:
+ # Code from module vasprintf:
+ # Code from module verify:
+ # Code from module version-etc:
+ # Code from module version-etc-fsf:
+ # Code from module vsnprintf:
+ # Code from module wchar:
+ # Code from module wcrtomb:
+ # Code from module wctype-h:
+ # Code from module wcwidth:
+ # Code from module write:
+ # Code from module xalloc:
+ # Code from module xalloc-die:
+ # Code from module xalloc-oversized:
+ # Code from module xgetcwd:
+ # Code from module xsize:
+ # Code from module xstrndup:
+ # Code from module xstrtol:
+ # Code from module xstrtoumax:
+ # Code from module xvasprintf:
+
+
+@%:@ Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_largefile_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_file_offset_bits+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@define _FILE_OFFSET_BITS 64
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_large_files+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@define _LARGE_FILES 1
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+@%:@define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
+$as_echo_n "checking for library containing strerror... " >&6; }
+if ${ac_cv_search_strerror+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 strerror ();
+int
+main ()
+{
+return strerror ();
+ ;
+ return 0;
+}
+_ACEOF
+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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_strerror=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_strerror+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_strerror+:} false; then :
+
+else
+ ac_cv_search_strerror=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+$as_echo_n "checking for inline... " >&6; }
+if ${ac_cv_c_inline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_inline=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+$as_echo "$ac_cv_c_inline" >&6; }
+
+case $ac_cv_c_inline in
+ inline | yes) ;;
+ *)
+ case $ac_cv_c_inline in
+ no) ac_val=;;
+ *) ac_val=$ac_cv_c_inline;;
+ esac
+ cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+ ;;
+esac
+
+
+
+
+
+ for ac_header in $ac_header_list
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+for ac_header in sys/buf.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "sys/buf.h" "ac_cv_header_sys_buf_h" "#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+"
+if test "x$ac_cv_header_sys_buf_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_BUF_H 1
+_ACEOF
+
+fi
+
+done
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_header_sys_wait_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/wait.h>
+#ifndef WEXITSTATUS
+# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
+#endif
+#ifndef WIFEXITED
+# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
+#endif
+
+int
+main ()
+{
+ int s;
+ wait (&s);
+ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_sys_wait_h=yes
+else
+ ac_cv_header_sys_wait_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_SYS_WAIT_H 1" >>confdefs.h
+
+fi
+
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/types.h defines makedev" >&5
+$as_echo_n "checking whether sys/types.h defines makedev... " >&6; }
+if ${ac_cv_header_sys_types_h_makedev+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+int
+main ()
+{
+return makedev(0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_header_sys_types_h_makedev=yes
+else
+ ac_cv_header_sys_types_h_makedev=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ac_fn_c_check_header_mongrel "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mkdev_h" = xyes; then :
+
+$as_echo "@%:@define MAJOR_IN_MKDEV 1" >>confdefs.h
+
+fi
+
+
+
+ if test $ac_cv_header_sys_mkdev_h = no; then
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_sysmacros_h" = xyes; then :
+
+$as_echo "@%:@define MAJOR_IN_SYSMACROS 1" >>confdefs.h
+
+fi
+
+
+ fi
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5
+$as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
+if ${ac_cv_header_stat_broken+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#if defined S_ISBLK && defined S_IFDIR
+extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1];
+#endif
+
+#if defined S_ISBLK && defined S_IFCHR
+extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1];
+#endif
+
+#if defined S_ISLNK && defined S_IFREG
+extern char c3[S_ISLNK (S_IFREG) ? -1 : 1];
+#endif
+
+#if defined S_ISSOCK && defined S_IFREG
+extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stat_broken=no
+else
+ ac_cv_header_stat_broken=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define STAT_MACROS_BROKEN 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_fstype string in struct stat" >&5
+$as_echo_n "checking for st_fstype string in struct stat... " >&6; }
+if ${diff_cv_st_fstype_string+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/stat.h>
+int
+main ()
+{
+struct stat s; s.st_fstype[0] = 'x';
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ diff_cv_st_fstype_string=yes
+else
+ diff_cv_st_fstype_string=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_ST_FSTYPE_STRING 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
+$as_echo_n "checking return type of signal handlers... " >&6; }
+if ${ac_cv_type_signal+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <signal.h>
+
+int
+main ()
+{
+return *(signal (0, 0)) (0) == 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_type_signal=int
+else
+ ac_cv_type_signal=void
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
+if test "x$ac_cv_type_mode_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define mode_t int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
+if test "x$ac_cv_type_pid_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define pid_t int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
+if test "x$ac_cv_type_off_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define off_t long int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define size_t unsigned int
+_ACEOF
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
+$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
+if ${ac_cv_type_uid_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "uid_t" >/dev/null 2>&1; then :
+ ac_cv_type_uid_t=yes
+else
+ ac_cv_type_uid_t=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
+$as_echo "$ac_cv_type_uid_t" >&6; }
+if test $ac_cv_type_uid_t = no; then
+
+$as_echo "@%:@define uid_t int" >>confdefs.h
+
+
+$as_echo "@%:@define gid_t int" >>confdefs.h
+
+fi
+
+ac_fn_c_check_type "$LINENO" "major_t" "ac_cv_type_major_t" "$ac_includes_default"
+if test "x$ac_cv_type_major_t" = xyes; then :
+
+else
+
+$as_echo "@%:@define major_t int" >>confdefs.h
+
+fi
+
+ac_fn_c_check_type "$LINENO" "minor_t" "ac_cv_type_minor_t" "$ac_includes_default"
+if test "x$ac_cv_type_minor_t" = xyes; then :
+
+else
+
+$as_echo "@%:@define minor_t int" >>confdefs.h
+
+fi
+
+ac_fn_c_check_type "$LINENO" "dev_t" "ac_cv_type_dev_t" "$ac_includes_default"
+if test "x$ac_cv_type_dev_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define dev_t unsigned
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "ino_t" "ac_cv_type_ino_t" "$ac_includes_default"
+if test "x$ac_cv_type_ino_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define ino_t unsigned
+_ACEOF
+
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
+$as_echo_n "checking for ssize_t... " >&6; }
+if ${gt_cv_ssize_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main ()
+{
+int x = sizeof (ssize_t *) + sizeof (ssize_t);
+ return !x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_ssize_t=yes
+else
+ gt_cv_ssize_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5
+$as_echo "$gt_cv_ssize_t" >&6; }
+ if test $gt_cv_ssize_t = no; then
+
+$as_echo "@%:@define ssize_t int" >>confdefs.h
+
+ fi
+
+
+# gnulib modules
+
+
+
+
+
+ LIBC_FATAL_STDERR_=1
+ export LIBC_FATAL_STDERR_
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments. Useless!
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
+$as_echo_n "checking for working alloca.h... " >&6; }
+if ${ac_cv_working_alloca_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <alloca.h>
+int
+main ()
+{
+char *p = (char *) alloca (2 * sizeof (int));
+ if (p) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_working_alloca_h=yes
+else
+ ac_cv_working_alloca_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
+$as_echo_n "checking for alloca... " >&6; }
+if ${ac_cv_func_alloca_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# ifdef HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+void *alloca (size_t);
+# endif
+# endif
+# endif
+# endif
+#endif
+
+int
+main ()
+{
+char *p = (char *) alloca (1);
+ if (p) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_func_alloca_works=yes
+else
+ ac_cv_func_alloca_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h
+
+else
+ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble. Some versions do not even contain alloca or
+# contain a buggy version. If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+
+
+
+
+
+ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
+
+$as_echo "@%:@define C_ALLOCA 1" >>confdefs.h
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether 'alloca.c' needs Cray hooks" >&5
+$as_echo_n "checking whether 'alloca.c' needs Cray hooks... " >&6; }
+if ${ac_cv_os_cray+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined CRAY && ! defined CRAY2
+webecray
+#else
+wenotbecray
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "webecray" >/dev/null 2>&1; then :
+ ac_cv_os_cray=yes
+else
+ ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define CRAY_STACKSEG_END $ac_func
+_ACEOF
+
+ break
+fi
+
+ done
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
+$as_echo_n "checking stack direction for C alloca... " >&6; }
+if ${ac_cv_c_stack_direction+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_c_stack_direction=0
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+find_stack_direction (int *addr, int depth)
+{
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
+}
+
+int
+main (int argc, char **argv)
+{
+ return find_stack_direction (0, argc + !argv + 20) < 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_stack_direction=1
+else
+ ac_cv_c_stack_direction=-1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $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
+_ACEOF
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
+$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
+if ${ac_cv_c_restrict+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_restrict=no
+ # The order here caters to the fact that C++ does not require restrict.
+ for ac_kw in __restrict __restrict__ _Restrict restrict; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+typedef int * int_ptr;
+ 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)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_restrict=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_restrict" != no && break
+ done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
+$as_echo "$ac_cv_c_restrict" >&6; }
+
+ case $ac_cv_c_restrict in
+ restrict) ;;
+ no) $as_echo "@%:@define restrict /**/" >>confdefs.h
+ ;;
+ *) cat >>confdefs.h <<_ACEOF
+@%:@define restrict $ac_cv_c_restrict
+_ACEOF
+ ;;
+ esac
+
+ac_fn_c_check_decl "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_clearerr_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_feof_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_ferror_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fflush_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fgets_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputs_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fread_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fwrite_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getchar_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_putc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_PUTC_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_putchar_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl
+_ACEOF
+
+
+
+
+ for ac_func in $ac_func_list
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+
+
+
+ XGETTEXT_EXTRA_OPTIONS=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5
+$as_echo_n "checking for d_ino member in directory struct... " >&6; }
+if ${gl_cv_struct_dirent_d_ino+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_struct_dirent_d_ino=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.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);
+ if (! e)
+ return 2;
+ if (stat (e->d_name, &st) != 0)
+ return 3;
+ if (e->d_ino != st.st_ino)
+ return 4;
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_struct_dirent_d_ino=yes
+else
+ gl_cv_struct_dirent_d_ino=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5
+$as_echo "$gl_cv_struct_dirent_d_ino" >&6; }
+ if test $gl_cv_struct_dirent_d_ino = yes; then
+
+$as_echo "@%:@define D_INO_IN_DIRENT 1" >>confdefs.h
+
+ fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5
+$as_echo_n "checking for long file names... " >&6; }
+if ${ac_cv_sys_long_file_names+:} false; then :
+ $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:
+# . the current directory, where building will happen
+# $prefix/lib where we will be installing things
+# $exec_prefix/lib likewise
+# $TMPDIR if set, where it might want to write temporary files
+# /tmp where it might want to write temporary files
+# /var/tmp likewise
+# /usr/tmp likewise
+for ac_dir in . "$TMPDIR" /tmp /var/tmp /usr/tmp "$prefix/lib" "$exec_prefix/lib"; do
+ # Skip $TMPDIR if it is empty or bogus, and skip $exec_prefix/lib
+ # in the usual case where exec_prefix is '${prefix}'.
+ case $ac_dir in #(
+ . | /* | ?:[\\/]*) ;; #(
+ *) continue;;
+ esac
+ test -w "$ac_dir/." || continue # It is less confusing to not echo anything here.
+ ac_xdir=$ac_dir/cf$$
+ (umask 077 && mkdir "$ac_xdir" 2>/dev/null) || continue
+ ac_tf1=$ac_xdir/conftest9012345
+ ac_tf2=$ac_xdir/conftest9012346
+ touch "$ac_tf1" 2>/dev/null && test -f "$ac_tf1" && test ! -f "$ac_tf2" ||
+ ac_cv_sys_long_file_names=no
+ rm -f -r "$ac_xdir" 2>/dev/null
+ test $ac_cv_sys_long_file_names = no && break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_LONG_FILE_NAMES 1" >>confdefs.h
+
+fi
+
+
+
+
+ GNULIB_BTOWC=0;
+ GNULIB_WCTOB=0;
+ GNULIB_MBSINIT=0;
+ GNULIB_MBRTOWC=0;
+ GNULIB_MBRLEN=0;
+ GNULIB_MBSRTOWCS=0;
+ GNULIB_MBSNRTOWCS=0;
+ GNULIB_WCRTOMB=0;
+ GNULIB_WCSRTOMBS=0;
+ GNULIB_WCSNRTOMBS=0;
+ GNULIB_WCWIDTH=0;
+ GNULIB_WMEMCHR=0;
+ GNULIB_WMEMCMP=0;
+ GNULIB_WMEMCPY=0;
+ GNULIB_WMEMMOVE=0;
+ GNULIB_WMEMSET=0;
+ GNULIB_WCSLEN=0;
+ GNULIB_WCSNLEN=0;
+ GNULIB_WCSCPY=0;
+ GNULIB_WCPCPY=0;
+ GNULIB_WCSNCPY=0;
+ GNULIB_WCPNCPY=0;
+ GNULIB_WCSCAT=0;
+ GNULIB_WCSNCAT=0;
+ GNULIB_WCSCMP=0;
+ GNULIB_WCSNCMP=0;
+ GNULIB_WCSCASECMP=0;
+ GNULIB_WCSNCASECMP=0;
+ GNULIB_WCSCOLL=0;
+ GNULIB_WCSXFRM=0;
+ GNULIB_WCSDUP=0;
+ GNULIB_WCSCHR=0;
+ GNULIB_WCSRCHR=0;
+ GNULIB_WCSCSPN=0;
+ GNULIB_WCSSPN=0;
+ GNULIB_WCSPBRK=0;
+ GNULIB_WCSSTR=0;
+ GNULIB_WCSTOK=0;
+ GNULIB_WCSWIDTH=0;
+ HAVE_BTOWC=1;
+ HAVE_MBSINIT=1;
+ HAVE_MBRTOWC=1;
+ HAVE_MBRLEN=1;
+ HAVE_MBSRTOWCS=1;
+ HAVE_MBSNRTOWCS=1;
+ HAVE_WCRTOMB=1;
+ HAVE_WCSRTOMBS=1;
+ HAVE_WCSNRTOMBS=1;
+ HAVE_WMEMCHR=1;
+ HAVE_WMEMCMP=1;
+ HAVE_WMEMCPY=1;
+ HAVE_WMEMMOVE=1;
+ HAVE_WMEMSET=1;
+ HAVE_WCSLEN=1;
+ HAVE_WCSNLEN=1;
+ HAVE_WCSCPY=1;
+ HAVE_WCPCPY=1;
+ HAVE_WCSNCPY=1;
+ HAVE_WCPNCPY=1;
+ HAVE_WCSCAT=1;
+ HAVE_WCSNCAT=1;
+ HAVE_WCSCMP=1;
+ HAVE_WCSNCMP=1;
+ HAVE_WCSCASECMP=1;
+ HAVE_WCSNCASECMP=1;
+ HAVE_WCSCOLL=1;
+ HAVE_WCSXFRM=1;
+ HAVE_WCSDUP=1;
+ HAVE_WCSCHR=1;
+ HAVE_WCSRCHR=1;
+ HAVE_WCSCSPN=1;
+ HAVE_WCSSPN=1;
+ HAVE_WCSPBRK=1;
+ HAVE_WCSSTR=1;
+ HAVE_WCSTOK=1;
+ HAVE_WCSWIDTH=1;
+ HAVE_DECL_WCTOB=1;
+ HAVE_DECL_WCWIDTH=1;
+ REPLACE_MBSTATE_T=0;
+ REPLACE_BTOWC=0;
+ REPLACE_WCTOB=0;
+ REPLACE_MBSINIT=0;
+ REPLACE_MBRTOWC=0;
+ REPLACE_MBRLEN=0;
+ REPLACE_MBSRTOWCS=0;
+ REPLACE_MBSNRTOWCS=0;
+ REPLACE_WCRTOMB=0;
+ REPLACE_WCSRTOMBS=0;
+ REPLACE_WCSNRTOMBS=0;
+ REPLACE_WCWIDTH=0;
+ REPLACE_WCSWIDTH=0;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5
+$as_echo_n "checking whether <wchar.h> uses 'inline' correctly... " >&6; }
+if ${gl_cv_header_wchar_h_correct_inline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gl_cv_header_wchar_h_correct_inline=yes
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #define wcstod renamed_wcstod
+/* 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>
+extern int zero (void);
+int main () { return zero(); }
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ mv conftest.$ac_objext conftest1.$ac_objext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #define wcstod renamed_wcstod
+/* 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>
+int zero (void) { return 0; }
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; 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:${as_lineno-$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_fn_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." "$LINENO" 5
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
+$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
+if ${am_cv_langinfo_codeset+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET); return !cs;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_langinfo_codeset=yes
+else
+ am_cv_langinfo_codeset=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
+$as_echo "$am_cv_langinfo_codeset" >&6; }
+ if test $am_cv_langinfo_codeset = yes; then
+
+$as_echo "@%:@define HAVE_LANGINFO_CODESET 1" >>confdefs.h
+
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.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 () {
+ /* Check whether the given locale name is recognized by the system. */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 the abbreviation of the second month, the second
+ character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+ one byte long. 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) < 3 || buf[2] != 'v') return 1;
+ /* Check whether the decimal separator is a comma.
+ On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+ are nl_langinfo(RADIXCHAR) are both ".". */
+ if (localeconv () ->decimal_point[0] != ',') return 1;
+ return 0;
+}
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the native Windows locale name.
+ if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=French_France.1252
+ else
+ # None found.
+ gt_cv_locale_fr=none
+ fi
+ ;;
+ *)
+ # 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 usual locale name.
+ if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.ISO-8859-1
+ else
+ # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+ if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.ISO8859-1
+ else
+ # Test for the HP-UX locale name.
+ if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.iso88591
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr
+ else
+ # None found.
+ gt_cv_locale_fr=none
+ fi
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+ LOCALE_FR=$gt_cv_locale_fr
+
+
+
+ GNULIB__EXIT=0;
+ GNULIB_ATOLL=0;
+ GNULIB_CALLOC_POSIX=0;
+ GNULIB_CANONICALIZE_FILE_NAME=0;
+ GNULIB_GETLOADAVG=0;
+ GNULIB_GETSUBOPT=0;
+ GNULIB_GRANTPT=0;
+ GNULIB_MALLOC_POSIX=0;
+ GNULIB_MBTOWC=0;
+ GNULIB_MKDTEMP=0;
+ GNULIB_MKOSTEMP=0;
+ GNULIB_MKOSTEMPS=0;
+ GNULIB_MKSTEMP=0;
+ GNULIB_MKSTEMPS=0;
+ GNULIB_POSIX_OPENPT=0;
+ GNULIB_PTSNAME=0;
+ GNULIB_PTSNAME_R=0;
+ GNULIB_PUTENV=0;
+ GNULIB_RANDOM=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_SYSTEM_POSIX=0;
+ GNULIB_UNLOCKPT=0;
+ GNULIB_UNSETENV=0;
+ GNULIB_WCTOMB=0;
+ HAVE__EXIT=1;
+ HAVE_ATOLL=1;
+ HAVE_CANONICALIZE_FILE_NAME=1;
+ HAVE_DECL_GETLOADAVG=1;
+ HAVE_GETSUBOPT=1;
+ HAVE_GRANTPT=1;
+ HAVE_MKDTEMP=1;
+ HAVE_MKOSTEMP=1;
+ HAVE_MKOSTEMPS=1;
+ HAVE_MKSTEMP=1;
+ HAVE_MKSTEMPS=1;
+ HAVE_POSIX_OPENPT=1;
+ HAVE_PTSNAME=1;
+ HAVE_PTSNAME_R=1;
+ HAVE_RANDOM=1;
+ HAVE_RANDOM_H=1;
+ HAVE_RANDOM_R=1;
+ HAVE_REALPATH=1;
+ HAVE_RPMATCH=1;
+ HAVE_SETENV=1;
+ HAVE_DECL_SETENV=1;
+ HAVE_STRTOD=1;
+ HAVE_STRTOLL=1;
+ HAVE_STRTOULL=1;
+ HAVE_STRUCT_RANDOM_DATA=1;
+ HAVE_SYS_LOADAVG_H=0;
+ HAVE_UNLOCKPT=1;
+ HAVE_DECL_UNSETENV=1;
+ REPLACE_CALLOC=0;
+ REPLACE_CANONICALIZE_FILE_NAME=0;
+ REPLACE_MALLOC=0;
+ REPLACE_MBTOWC=0;
+ REPLACE_MKSTEMP=0;
+ REPLACE_PTSNAME_R=0;
+ REPLACE_PUTENV=0;
+ REPLACE_RANDOM_R=0;
+ REPLACE_REALLOC=0;
+ REPLACE_REALPATH=0;
+ REPLACE_SETENV=0;
+ REPLACE_STRTOD=0;
+ REPLACE_UNSETENV=0;
+ REPLACE_WCTOMB=0;
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
+$as_echo_n "checking whether // is distinct from /... " >&6; }
+if ${gl_cv_double_slash_root+:} false; 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:${as_lineno-$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
+
+$as_echo "@%:@define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether realpath works" >&5
+$as_echo_n "checking whether realpath works... " >&6; }
+if ${gl_cv_func_realpath_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ touch conftest.a
+ mkdir conftest.d
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_realpath_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on MacOS X. */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens. */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+ EXC_BAD_ACCESS. */
+static void *
+mach_exception_thread (void *arg)
+{
+ /* Buffer for a message to be received. */
+ struct {
+ mach_msg_header_t head;
+ mach_msg_body_t msgh_body;
+ char data[1024];
+ } msg;
+ mach_msg_return_t retval;
+ /* Wait for a message on the exception port. */
+ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+ our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+ if (retval != MACH_MSG_SUCCESS)
+ abort ();
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+ mach_port_t self = mach_task_self ();
+ /* Allocate a port on which the thread shall listen for exceptions. */
+ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+ == KERN_SUCCESS) {
+ /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */
+ if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+ MACH_MSG_TYPE_MAKE_SEND)
+ == KERN_SUCCESS) {
+ /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting
+ for us. */
+ exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+ /* Create the thread listening on the exception port. */
+ pthread_attr_t attr;
+ pthread_t thread;
+ if (pthread_attr_init (&attr) == 0
+ && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+ && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+ pthread_attr_destroy (&attr);
+ /* Replace the exception port info for these exceptions with our own.
+ Note that we replace the exception port for the entire task, not only
+ for a particular thread. This has the effect that when our exception
+ port gets the message, the thread specific exception port has already
+ been asked, and we don't need to bother about it.
+ See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */
+ task_set_exception_ports (self, mask, our_exception_port,
+ EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+ }
+ }
+ }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows. */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+ switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+ {
+ case EXCEPTION_ACCESS_VIOLATION:
+ case EXCEPTION_IN_PAGE_ERROR:
+ case EXCEPTION_STACK_OVERFLOW:
+ case EXCEPTION_GUARD_PAGE:
+ case EXCEPTION_PRIV_INSTRUCTION:
+ case EXCEPTION_ILLEGAL_INSTRUCTION:
+ case EXCEPTION_DATATYPE_MISALIGNMENT:
+ case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+ case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+ exit (1);
+ }
+ return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+ SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems. */
+#include <signal.h>
+/* A POSIX signal handler. */
+static void
+exception_handler (int sig)
+{
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+ signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+ signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
+
+ #include <stdlib.h>
+ #include <string.h>
+
+int
+main ()
+{
+
+ int result = 0;
+ {
+ char *name = realpath ("conftest.a", NULL);
+ if (!(name && *name == '/'))
+ result |= 1;
+ }
+ {
+ char *name = realpath ("conftest.b/../conftest.a", NULL);
+ if (name != NULL)
+ result |= 2;
+ }
+ {
+ char *name = realpath ("conftest.a/", NULL);
+ if (name != NULL)
+ result |= 4;
+ }
+ {
+ char *name1 = realpath (".", NULL);
+ char *name2 = realpath ("conftest.d//./..", NULL);
+ if (strcmp (name1, name2) != 0)
+ result |= 8;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_realpath_works=yes
+else
+ gl_cv_func_realpath_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.a conftest.d
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define FUNC_REALPATH_WORKS 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ GNULIB_CHDIR=0;
+ GNULIB_CHOWN=0;
+ GNULIB_CLOSE=0;
+ GNULIB_DUP=0;
+ GNULIB_DUP2=0;
+ GNULIB_DUP3=0;
+ GNULIB_ENVIRON=0;
+ GNULIB_EUIDACCESS=0;
+ GNULIB_FACCESSAT=0;
+ GNULIB_FCHDIR=0;
+ GNULIB_FCHOWNAT=0;
+ GNULIB_FDATASYNC=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_GROUP_MEMBER=0;
+ GNULIB_ISATTY=0;
+ GNULIB_LCHOWN=0;
+ GNULIB_LINK=0;
+ GNULIB_LINKAT=0;
+ GNULIB_LSEEK=0;
+ GNULIB_PIPE=0;
+ GNULIB_PIPE2=0;
+ GNULIB_PREAD=0;
+ GNULIB_PWRITE=0;
+ GNULIB_READ=0;
+ GNULIB_READLINK=0;
+ GNULIB_READLINKAT=0;
+ GNULIB_RMDIR=0;
+ GNULIB_SETHOSTNAME=0;
+ GNULIB_SLEEP=0;
+ GNULIB_SYMLINK=0;
+ GNULIB_SYMLINKAT=0;
+ GNULIB_TTYNAME_R=0;
+ GNULIB_UNISTD_H_NONBLOCKING=0;
+ GNULIB_UNISTD_H_SIGPIPE=0;
+ GNULIB_UNLINK=0;
+ GNULIB_UNLINKAT=0;
+ GNULIB_USLEEP=0;
+ GNULIB_WRITE=0;
+ HAVE_CHOWN=1;
+ HAVE_DUP2=1;
+ HAVE_DUP3=1;
+ HAVE_EUIDACCESS=1;
+ HAVE_FACCESSAT=1;
+ HAVE_FCHDIR=1;
+ HAVE_FCHOWNAT=1;
+ HAVE_FDATASYNC=1;
+ HAVE_FSYNC=1;
+ HAVE_FTRUNCATE=1;
+ HAVE_GETDTABLESIZE=1;
+ HAVE_GETGROUPS=1;
+ HAVE_GETHOSTNAME=1;
+ HAVE_GETLOGIN=1;
+ HAVE_GETPAGESIZE=1;
+ HAVE_GROUP_MEMBER=1;
+ HAVE_LCHOWN=1;
+ HAVE_LINK=1;
+ HAVE_LINKAT=1;
+ HAVE_PIPE=1;
+ HAVE_PIPE2=1;
+ HAVE_PREAD=1;
+ HAVE_PWRITE=1;
+ HAVE_READLINK=1;
+ HAVE_READLINKAT=1;
+ HAVE_SETHOSTNAME=1;
+ HAVE_SLEEP=1;
+ HAVE_SYMLINK=1;
+ HAVE_SYMLINKAT=1;
+ HAVE_UNLINKAT=1;
+ HAVE_USLEEP=1;
+ HAVE_DECL_ENVIRON=1;
+ HAVE_DECL_FCHDIR=1;
+ HAVE_DECL_FDATASYNC=1;
+ HAVE_DECL_GETDOMAINNAME=1;
+ HAVE_DECL_GETLOGIN_R=1;
+ HAVE_DECL_GETPAGESIZE=1;
+ HAVE_DECL_GETUSERSHELL=1;
+ HAVE_DECL_SETHOSTNAME=1;
+ HAVE_DECL_TTYNAME_R=1;
+ HAVE_OS_H=0;
+ HAVE_SYS_PARAM_H=0;
+ REPLACE_CHOWN=0;
+ REPLACE_CLOSE=0;
+ REPLACE_DUP=0;
+ REPLACE_DUP2=0;
+ REPLACE_FCHOWNAT=0;
+ REPLACE_GETCWD=0;
+ REPLACE_GETDOMAINNAME=0;
+ REPLACE_GETLOGIN_R=0;
+ REPLACE_GETGROUPS=0;
+ REPLACE_GETPAGESIZE=0;
+ REPLACE_ISATTY=0;
+ REPLACE_LCHOWN=0;
+ REPLACE_LINK=0;
+ REPLACE_LINKAT=0;
+ REPLACE_LSEEK=0;
+ REPLACE_PREAD=0;
+ REPLACE_PWRITE=0;
+ REPLACE_READ=0;
+ REPLACE_READLINK=0;
+ REPLACE_RMDIR=0;
+ REPLACE_SLEEP=0;
+ REPLACE_SYMLINK=0;
+ REPLACE_TTYNAME_R=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 :
+ ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_UNISTD_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5
+$as_echo_n "checking for working chown... " >&6; }
+if ${ac_cv_func_chown_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_chown_works=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+#include <fcntl.h>
+
+int
+main ()
+{
+ char *f = "conftest.chown";
+ struct stat before, after;
+
+ if (creat (f, 0600) < 0)
+ return 1;
+ if (stat (f, &before) < 0)
+ return 1;
+ if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
+ return 1;
+ if (stat (f, &after) < 0)
+ return 1;
+ return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_chown_works=yes
+else
+ ac_cv_func_chown_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+rm -f conftest.chown
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5
+$as_echo "$ac_cv_func_chown_works" >&6; }
+if test $ac_cv_func_chown_works = yes; then
+
+$as_echo "@%:@define HAVE_CHOWN 1" >>confdefs.h
+
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown dereferences symlinks" >&5
+$as_echo_n "checking whether chown dereferences symlinks... " >&6; }
+if ${gl_cv_func_chown_follows_symlink+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_chown_follows_symlink=yes
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+ int
+ main ()
+ {
+ int result = 0;
+ char const *dangling_symlink = "conftest.dangle";
+
+ unlink (dangling_symlink);
+ if (symlink ("conftest.no-such", dangling_symlink))
+ abort ();
+
+ /* Exit successfully on a conforming system,
+ i.e., where chown must fail with ENOENT. */
+ if (chown (dangling_symlink, getuid (), getgid ()) == 0)
+ result |= 1;
+ if (errno != ENOENT)
+ result |= 2;
+ return result;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_follows_symlink=yes
+else
+ gl_cv_func_chown_follows_symlink=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_follows_symlink" >&5
+$as_echo "$gl_cv_func_chown_follows_symlink" >&6; }
+
+ if test $gl_cv_func_chown_follows_symlink = no; then
+
+$as_echo "@%:@define CHOWN_MODIFIES_SYMLINK 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_chown = no; then
+ HAVE_CHOWN=0
+ else
+ if test $gl_cv_func_chown_follows_symlink = no; then
+ REPLACE_CHOWN=1
+ fi
+
+ if test $ac_cv_func_chown_works = no; then
+
+$as_echo "@%:@define CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown honors trailing slash" >&5
+$as_echo_n "checking whether chown honors trailing slash... " >&6; }
+if ${gl_cv_func_chown_slash_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ touch conftest.file && rm -f conftest.link
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_chown_slash_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+int
+main ()
+{
+ if (symlink ("conftest.file", "conftest.link")) return 1;
+ if (chown ("conftest.link/", getuid (), getgid ()) == 0) return 2;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_slash_works=yes
+else
+ gl_cv_func_chown_slash_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.link conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_slash_works" >&5
+$as_echo "$gl_cv_func_chown_slash_works" >&6; }
+ if test "$gl_cv_func_chown_slash_works" != yes; then
+
+$as_echo "@%:@define CHOWN_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown always updates ctime" >&5
+$as_echo_n "checking whether chown always updates ctime... " >&6; }
+if ${gl_cv_func_chown_ctime_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_chown_ctime_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+int
+main ()
+{
+ struct stat st1, st2;
+ if (close (creat ("conftest.file", 0600))) return 1;
+ if (stat ("conftest.file", &st1)) return 2;
+ sleep (1);
+ if (chown ("conftest.file", st1.st_uid, st1.st_gid)) return 3;
+ if (stat ("conftest.file", &st2)) return 4;
+ if (st2.st_ctime <= st1.st_ctime) return 5;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_ctime_works=yes
+else
+ gl_cv_func_chown_ctime_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_ctime_works" >&5
+$as_echo "$gl_cv_func_chown_ctime_works" >&6; }
+ if test "$gl_cv_func_chown_ctime_works" != yes; then
+
+$as_echo "@%:@define CHOWN_CHANGE_TIME_BUG 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ fi
+ fi
+
+
+
+
+
+ if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+
+$as_echo "@%:@define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
+
+ else
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+ fi
+
+
+
+
+
+
+
+ GNULIB_OPENDIR=0;
+ GNULIB_READDIR=0;
+ GNULIB_REWINDDIR=0;
+ GNULIB_CLOSEDIR=0;
+ GNULIB_DIRFD=0;
+ GNULIB_FDOPENDIR=0;
+ GNULIB_SCANDIR=0;
+ GNULIB_ALPHASORT=0;
+ HAVE_OPENDIR=1;
+ HAVE_READDIR=1;
+ HAVE_REWINDDIR=1;
+ HAVE_CLOSEDIR=1;
+ HAVE_DECL_DIRFD=1;
+ HAVE_DECL_FDOPENDIR=1;
+ HAVE_FDOPENDIR=1;
+ HAVE_SCANDIR=1;
+ HAVE_ALPHASORT=1;
+ REPLACE_OPENDIR=0;
+ REPLACE_CLOSEDIR=0;
+ REPLACE_DIRFD=0;
+ REPLACE_FDOPENDIR=0;
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5
+$as_echo_n "checking whether the preprocessor supports include_next... " >&6; }
+if ${gl_cv_have_include_next+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftestd1a conftestd1b conftestd2
+ mkdir conftestd1a conftestd1b conftestd2
+ cat <<EOF > conftestd1a/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+ cat <<EOF > conftestd1b/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include <stdio.h>
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+ cat <<EOF > conftestd2/conftest.h
+#ifndef DEFINED_IN_CONFTESTD1
+#error "include_next test doesn't work"
+#endif
+#define DEFINED_IN_CONFTESTD2
+EOF
+ gl_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <conftest.h>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_have_include_next=yes
+else
+ CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <conftest.h>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_have_include_next=buggy
+else
+ gl_cv_have_include_next=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$gl_save_CPPFLAGS"
+ rm -rf conftestd1a conftestd1b conftestd2
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+ if test -n "$GCC"; then
+ PRAGMA_SYSTEM_HEADER='#pragma GCC system_header'
+ fi
+ else
+ if test $gl_cv_have_include_next = buggy; then
+ INCLUDE_NEXT=include
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+ else
+ INCLUDE_NEXT=include
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include
+ fi
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5
+$as_echo_n "checking whether system header files limit the line length... " >&6; }
+if ${gl_cv_pragma_columns+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __TANDEM
+choke me
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "choke me" >/dev/null 2>&1; then :
+ gl_cv_pragma_columns=yes
+else
+ gl_cv_pragma_columns=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5
+$as_echo "$gl_cv_pragma_columns" >&6; }
+ if test $gl_cv_pragma_columns = yes; then
+ PRAGMA_COLUMNS="#pragma COLUMNS 10000"
+ else
+ PRAGMA_COLUMNS=
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5
+$as_echo_n "checking if environ is properly declared... " >&6; }
+ if ${gt_cv_var_environ_declaration+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+ /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */
+ #include <stdlib.h>
+
+ extern struct { int foo; } environ;
+int
+main ()
+{
+environ.foo = 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_var_environ_declaration=no
+else
+ gt_cv_var_environ_declaration=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+ { $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_ENVIRON_DECL 1" >>confdefs.h
+
+ fi
+
+
+ if test $gt_cv_var_environ_declaration != yes; then
+ HAVE_DECL_ENVIRON=0
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5
+$as_echo_n "checking for complete errno.h... " >&6; }
+if ${gl_cv_header_errno_h_complete+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#if !defined ENOMSG
+booboo
+#endif
+#if !defined EIDRM
+booboo
+#endif
+#if !defined ENOLINK
+booboo
+#endif
+#if !defined EPROTO
+booboo
+#endif
+#if !defined EMULTIHOP
+booboo
+#endif
+#if !defined EBADMSG
+booboo
+#endif
+#if !defined EOVERFLOW
+booboo
+#endif
+#if !defined ENOTSUP
+booboo
+#endif
+#if !defined ENETRESET
+booboo
+#endif
+#if !defined ECONNABORTED
+booboo
+#endif
+#if !defined ESTALE
+booboo
+#endif
+#if !defined EDQUOT
+booboo
+#endif
+#if !defined ECANCELED
+booboo
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "booboo" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_complete=no
+else
+ gl_cv_header_errno_h_complete=yes
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_errno_h='<'errno.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <errno.h>" >&5
+$as_echo_n "checking absolute name of <errno.h>... " >&6; }
+if ${gl_cv_next_errno_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <errno.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'errno.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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'
+ fi
+
+ if test -n "$ERRNO_H"; then
+ GL_GENERATE_ERRNO_H_TRUE=
+ GL_GENERATE_ERRNO_H_FALSE='#'
+else
+ GL_GENERATE_ERRNO_H_TRUE='#'
+ GL_GENERATE_ERRNO_H_FALSE=
+fi
+
+
+ if test -n "$ERRNO_H"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5
+$as_echo_n "checking for EMULTIHOP value... " >&6; }
+if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#ifdef EMULTIHOP
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EMULTIHOP=yes
+else
+ gl_cv_header_errno_h_EMULTIHOP=no
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EMULTIHOP = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+#ifdef EMULTIHOP
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EMULTIHOP=hidden
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then
+ if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" "
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+"; then :
+
+fi
+
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ ;;
+ *)
+ EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP"
+ ;;
+ esac
+
+
+ fi
+
+
+ if test -n "$ERRNO_H"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5
+$as_echo_n "checking for ENOLINK value... " >&6; }
+if ${gl_cv_header_errno_h_ENOLINK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#ifdef ENOLINK
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_ENOLINK=yes
+else
+ gl_cv_header_errno_h_ENOLINK=no
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_ENOLINK = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+#ifdef ENOLINK
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_ENOLINK=hidden
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_ENOLINK = hidden; then
+ if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" "
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+"; then :
+
+fi
+
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ ;;
+ *)
+ ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK"
+ ;;
+ esac
+
+
+ fi
+
+
+ if test -n "$ERRNO_H"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5
+$as_echo_n "checking for EOVERFLOW value... " >&6; }
+if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#ifdef EOVERFLOW
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EOVERFLOW=yes
+else
+ gl_cv_header_errno_h_EOVERFLOW=no
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EOVERFLOW = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+#ifdef EOVERFLOW
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EOVERFLOW=hidden
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then
+ if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" "
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+"; then :
+
+fi
+
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ ;;
+ *)
+ EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW"
+ ;;
+ esac
+
+
+ fi
+
+
+ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strerror_r" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRERROR_R $ac_have_decl
+_ACEOF
+
+for ac_func in strerror_r
+do :
+ ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
+if test "x$ac_cv_func_strerror_r" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRERROR_R 1
+_ACEOF
+
+fi
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
+$as_echo_n "checking whether strerror_r returns char *... " >&6; }
+if ${ac_cv_func_strerror_r_char_p+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ac_cv_func_strerror_r_char_p=no
+ if test $ac_cv_have_decl_strerror_r = yes; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ char buf[100];
+ char x = *strerror_r (0, buf, sizeof buf);
+ char *p = strerror_r (0, buf, sizeof buf);
+ return !p || x;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_func_strerror_r_char_p=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ else
+ # strerror_r is not declared. Choose between
+ # systems that have relatively inaccessible declarations for the
+ # function. BeOS and DEC UNIX 4.0 fall in this category, but the
+ # former has a strerror_r that returns char*, while the latter
+ # has a strerror_r that returns `int'.
+ # This test should segfault on the DEC system.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ extern char *strerror_r ();
+int
+main ()
+{
+char buf[100];
+ char x = *strerror_r (0, buf, sizeof buf);
+ return ! isalpha (x);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_strerror_r_char_p=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define STRERROR_R_CHAR_P 1" >>confdefs.h
+
+fi
+
+ac_fn_c_check_decl "$LINENO" "fchdir" "ac_cv_have_decl_fchdir" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fchdir" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FCHDIR $ac_have_decl
+_ACEOF
+
+
+ GNULIB_FCNTL=0;
+ GNULIB_NONBLOCKING=0;
+ GNULIB_OPEN=0;
+ GNULIB_OPENAT=0;
+ HAVE_FCNTL=1;
+ HAVE_OPENAT=1;
+ REPLACE_FCNTL=0;
+ REPLACE_OPEN=0;
+ REPLACE_OPENAT=0;
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5
+$as_echo_n "checking for working fcntl.h... " >&6; }
+if ${gl_cv_header_working_fcntl_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_header_working_fcntl_h=cross-compiling
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/stat.h>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <io.h>
+ # include <stdlib.h>
+ # defined sleep(n) _sleep ((n) * 1000)
+ #endif
+ #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 result = !constants;
+ #if HAVE_SYMLINK
+ {
+ static char const sym[] = "conftest.sym";
+ if (symlink (".", sym) != 0)
+ result |= 2;
+ else
+ {
+ int fd = open (sym, O_RDONLY | O_NOFOLLOW);
+ if (fd >= 0)
+ {
+ close (fd);
+ result |= 4;
+ }
+ }
+ unlink (sym);
+ }
+ #endif
+ {
+ static char const file[] = "confdefs.h";
+ int fd = open (file, O_RDONLY | O_NOATIME);
+ if (fd < 0)
+ result |= 8;
+ else
+ {
+ struct stat st0;
+ if (fstat (fd, &st0) != 0)
+ result |= 16;
+ else
+ {
+ char c;
+ sleep (1);
+ if (read (fd, &c, 1) != 1)
+ result |= 24;
+ else
+ {
+ if (close (fd) != 0)
+ result |= 32;
+ else
+ {
+ struct stat st1;
+ if (stat (file, &st1) != 0)
+ result |= 40;
+ else
+ if (st0.st_atime != st1.st_atime)
+ result |= 64;
+ }
+ }
+ }
+ }
+ }
+ return result;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_header_working_fcntl_h=yes
+else
+ case $? in #(
+ 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
+ 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
+ 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
+ *) gl_cv_header_working_fcntl_h='no';;
+ esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_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
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
+$as_echo_n "checking for mbstate_t... " >&6; }
+if ${ac_cv_type_mbstate_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+/* 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>
+int
+main ()
+{
+mbstate_t x; return sizeof x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_type_mbstate_t=yes
+else
+ ac_cv_type_mbstate_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_MBSTATE_T 1" >>confdefs.h
+
+ else
+
+$as_echo "@%:@define mbstate_t int" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GNULIB_DPRINTF=0;
+ GNULIB_FCLOSE=0;
+ GNULIB_FDOPEN=0;
+ GNULIB_FFLUSH=0;
+ GNULIB_FGETC=0;
+ GNULIB_FGETS=0;
+ GNULIB_FOPEN=0;
+ GNULIB_FPRINTF=0;
+ GNULIB_FPRINTF_POSIX=0;
+ GNULIB_FPURGE=0;
+ GNULIB_FPUTC=0;
+ GNULIB_FPUTS=0;
+ GNULIB_FREAD=0;
+ GNULIB_FREOPEN=0;
+ GNULIB_FSCANF=0;
+ GNULIB_FSEEK=0;
+ GNULIB_FSEEKO=0;
+ GNULIB_FTELL=0;
+ GNULIB_FTELLO=0;
+ GNULIB_FWRITE=0;
+ GNULIB_GETC=0;
+ GNULIB_GETCHAR=0;
+ GNULIB_GETDELIM=0;
+ GNULIB_GETLINE=0;
+ GNULIB_GETS=0;
+ GNULIB_OBSTACK_PRINTF=0;
+ GNULIB_OBSTACK_PRINTF_POSIX=0;
+ GNULIB_PCLOSE=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_SCANF=0;
+ GNULIB_SNPRINTF=0;
+ GNULIB_SPRINTF_POSIX=0;
+ GNULIB_STDIO_H_NONBLOCKING=0;
+ GNULIB_STDIO_H_SIGPIPE=0;
+ GNULIB_TMPFILE=0;
+ GNULIB_VASPRINTF=0;
+ GNULIB_VFSCANF=0;
+ GNULIB_VSCANF=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_FSEEKO=1;
+ HAVE_DECL_FTELLO=1;
+ HAVE_DECL_GETDELIM=1;
+ HAVE_DECL_GETLINE=1;
+ HAVE_DECL_OBSTACK_PRINTF=1;
+ HAVE_DECL_SNPRINTF=1;
+ HAVE_DECL_VSNPRINTF=1;
+ HAVE_DPRINTF=1;
+ HAVE_FSEEKO=1;
+ HAVE_FTELLO=1;
+ HAVE_PCLOSE=1;
+ HAVE_POPEN=1;
+ HAVE_RENAMEAT=1;
+ HAVE_VASPRINTF=1;
+ HAVE_VDPRINTF=1;
+ REPLACE_DPRINTF=0;
+ REPLACE_FCLOSE=0;
+ REPLACE_FDOPEN=0;
+ REPLACE_FFLUSH=0;
+ REPLACE_FOPEN=0;
+ REPLACE_FPRINTF=0;
+ REPLACE_FPURGE=0;
+ REPLACE_FREOPEN=0;
+ REPLACE_FSEEK=0;
+ REPLACE_FSEEKO=0;
+ REPLACE_FTELL=0;
+ 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_READ_FUNCS=0;
+ REPLACE_STDIO_WRITE_FUNCS=0;
+ REPLACE_TMPFILE=0;
+ REPLACE_VASPRINTF=0;
+ REPLACE_VDPRINTF=0;
+ REPLACE_VFPRINTF=0;
+ REPLACE_VPRINTF=0;
+ REPLACE_VSNPRINTF=0;
+ REPLACE_VSPRINTF=0;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdin defaults to large file offsets" >&5
+$as_echo_n "checking whether stdin defaults to large file offsets... " >&6; }
+if ${gl_cv_var_stdin_large_offset+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+#if defined __SL64 && defined __SCLE /* cygwin */
+ /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
+ fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and
+ it is easier to do a version check than building a runtime test. */
+# include <cygwin/version.h>
+# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
+ choke me
+# endif
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_var_stdin_large_offset=yes
+else
+ gl_cv_var_stdin_large_offset=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var_stdin_large_offset" >&5
+$as_echo "$gl_cv_var_stdin_large_offset" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "fseeko" "ac_cv_have_decl_fseeko" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fseeko" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FSEEKO $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5
+$as_echo_n "checking for fseeko... " >&6; }
+if ${gl_cv_func_fseeko+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+int
+main ()
+{
+fseeko (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_func_fseeko=yes
+else
+ gl_cv_func_fseeko=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5
+$as_echo "$gl_cv_func_fseeko" >&6; }
+
+
+ if test $ac_cv_have_decl_fseeko = no; then
+ HAVE_DECL_FSEEKO=0
+ fi
+
+ if test $gl_cv_func_fseeko = no; then
+ HAVE_FSEEKO=0
+ else
+ if test $gl_cv_var_stdin_large_offset = no; then
+ REPLACE_FSEEKO=1
+ fi
+
+ fi
+
+
+ GNULIB_FCHMODAT=0;
+ GNULIB_FSTAT=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;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5
+$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; }
+if ${gl_cv_func_lstat_dereferences_slashed_symlink+:} false; 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 :
+ # When cross-compiling, be pessimistic so we will end up using the
+ # replacement version of lstat that checks for trailing slashes and
+ # calls lstat a second time when necessary.
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+struct stat sbuf;
+ /* Linux will dereference the symlink and fail, as required by
+ POSIX. 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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_lstat_dereferences_slashed_symlink=yes
+else
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ else
+ # If the 'ln -s' command failed, then we probably don't even
+ # have an lstat function.
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+ fi
+ rm -f conftest.sym conftest.file
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5
+$as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; }
+ test $gl_cv_func_lstat_dereferences_slashed_symlink = yes &&
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
+_ACEOF
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_getcwd_null+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_getcwd_null="guessing yes";;
+ # Guess yes on Cygwin.
+ cygwin*) 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# if HAVE_UNISTD_H
+# include <unistd.h>
+# else /* on Windows with MSVC */
+# include <direct.h>
+# endif
+# ifndef getcwd
+ char *getcwd ();
+# endif
+
+int
+main ()
+{
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* mingw cwd does not start with '/', but getcwd does allocate.
+ However, mingw fails to honor non-zero size. */
+#else
+ if (chdir ("/") != 0)
+ return 1;
+ else
+ {
+ char *f = getcwd (NULL, 0);
+ if (! f)
+ return 2;
+ if (f[0] != '/')
+ return 3;
+ if (f[1] != '\0')
+ return 4;
+ return 0;
+ }
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getcwd_null=yes
+else
+ gl_cv_func_getcwd_null=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5
+$as_echo "$gl_cv_func_getcwd_null" >&6; }
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getcwd with POSIX signature" >&5
+$as_echo_n "checking for getcwd with POSIX signature... " >&6; }
+if ${gl_cv_func_getcwd_posix_signature+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *getcwd (char *, size_t);
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_getcwd_posix_signature=yes
+else
+ gl_cv_func_getcwd_posix_signature=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_posix_signature" >&5
+$as_echo "$gl_cv_func_getcwd_posix_signature" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "getcwd" "ac_cv_have_decl_getcwd" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getcwd" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETCWD $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getdelim" "ac_cv_have_decl_getdelim" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getdelim" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETDELIM $ac_have_decl
+_ACEOF
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "getline" "ac_cv_have_decl_getline" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getline" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETLINE $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_getopt_h='<'getopt.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <getopt.h>" >&5
+$as_echo_n "checking absolute name of <getopt.h>... " >&6; }
+if ${gl_cv_next_getopt_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_getopt_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <getopt.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'getopt.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_getopt_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_getopt_h='<'getopt.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 :
+ ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default"
+if test "x$ac_cv_header_getopt_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_GETOPT_H 1
+_ACEOF
+
+else
+ gl_replace_getopt=yes
+fi
+
+done
+
+ fi
+
+ if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
+ for ac_func in getopt_long_only
+do :
+ ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only"
+if test "x$ac_cv_func_getopt_long_only" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_GETOPT_LONG_ONLY 1
+_ACEOF
+
+else
+ gl_replace_getopt=yes
+fi
+done
+
+ fi
+
+ if test -z "$gl_replace_getopt"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5
+$as_echo_n "checking whether getopt is POSIX compatible... " >&6; }
+if ${gl_cv_func_getopt_posix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+int *p = &optreset; return optreset;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_optind_min=1
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <getopt.h>
+int
+main ()
+{
+return !getopt_clip;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_optind_min=1
+else
+ gl_optind_min=0
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+ gl_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -DOPTIND_MIN=$gl_optind_min"
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ mingw*) gl_cv_func_getopt_posix="guessing no";;
+ darwin* | aix*) gl_cv_func_getopt_posix="guessing no";;
+ *) gl_cv_func_getopt_posix="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main ()
+{
+ {
+ static char program[] = "program";
+ static char a[] = "-a";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, a, foo, bar, NULL };
+ int c;
+
+ optind = OPTIND_MIN;
+ opterr = 0;
+
+ c = getopt (4, argv, "ab");
+ if (!(c == 'a'))
+ return 1;
+ c = getopt (4, argv, "ab");
+ if (!(c == -1))
+ return 2;
+ if (!(optind == 2))
+ return 3;
+ }
+ /* Some internal state exists at this point. */
+ {
+ static char program[] = "program";
+ static char donald[] = "donald";
+ static char p[] = "-p";
+ static char billy[] = "billy";
+ static char duck[] = "duck";
+ static char a[] = "-a";
+ static char bar[] = "bar";
+ char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
+ int c;
+
+ optind = OPTIND_MIN;
+ opterr = 0;
+
+ c = getopt (7, 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;
+ }
+ /* Detect MacOS 10.5, AIX 7.1 bug. */
+ {
+ static char program[] = "program";
+ static char ab[] = "-ab";
+ char *argv[3] = { program, ab, NULL };
+ optind = OPTIND_MIN;
+ opterr = 0;
+ if (getopt (2, argv, "ab:") != 'a')
+ return 13;
+ if (getopt (2, argv, "ab:") != '?')
+ return 14;
+ if (optopt != 'b')
+ return 15;
+ if (optind != 2)
+ return 16;
+ }
+
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getopt_posix=yes
+else
+ gl_cv_func_getopt_posix=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ CPPFLAGS=$gl_save_CPPFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5
+$as_echo_n "checking for working GNU getopt function... " >&6; }
+if ${gl_cv_func_getopt_gnu+:} false; 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.
+ # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT;
+ # so take care to revert to the correct (non-)export state.
+ gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }'
+ case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in
+ xx) gl_had_POSIXLY_CORRECT=exported ;;
+ x) gl_had_POSIXLY_CORRECT=yes ;;
+ *) gl_had_POSIXLY_CORRECT= ;;
+ esac
+ 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <getopt.h>
+ #include <stddef.h>
+ #include <string.h>
+
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on MacOS X. */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens. */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+ EXC_BAD_ACCESS. */
+static void *
+mach_exception_thread (void *arg)
+{
+ /* Buffer for a message to be received. */
+ struct {
+ mach_msg_header_t head;
+ mach_msg_body_t msgh_body;
+ char data[1024];
+ } msg;
+ mach_msg_return_t retval;
+ /* Wait for a message on the exception port. */
+ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+ our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+ if (retval != MACH_MSG_SUCCESS)
+ abort ();
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+ mach_port_t self = mach_task_self ();
+ /* Allocate a port on which the thread shall listen for exceptions. */
+ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+ == KERN_SUCCESS) {
+ /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */
+ if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+ MACH_MSG_TYPE_MAKE_SEND)
+ == KERN_SUCCESS) {
+ /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting
+ for us. */
+ exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+ /* Create the thread listening on the exception port. */
+ pthread_attr_t attr;
+ pthread_t thread;
+ if (pthread_attr_init (&attr) == 0
+ && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+ && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+ pthread_attr_destroy (&attr);
+ /* Replace the exception port info for these exceptions with our own.
+ Note that we replace the exception port for the entire task, not only
+ for a particular thread. This has the effect that when our exception
+ port gets the message, the thread specific exception port has already
+ been asked, and we don't need to bother about it.
+ See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */
+ task_set_exception_ports (self, mask, our_exception_port,
+ EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+ }
+ }
+ }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows. */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+ switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+ {
+ case EXCEPTION_ACCESS_VIOLATION:
+ case EXCEPTION_IN_PAGE_ERROR:
+ case EXCEPTION_STACK_OVERFLOW:
+ case EXCEPTION_GUARD_PAGE:
+ case EXCEPTION_PRIV_INSTRUCTION:
+ case EXCEPTION_ILLEGAL_INSTRUCTION:
+ case EXCEPTION_DATATYPE_MISALIGNMENT:
+ case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+ case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+ exit (1);
+ }
+ return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+ SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems. */
+#include <signal.h>
+/* A POSIX signal handler. */
+static void
+exception_handler (int sig)
+{
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+ signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+ signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
+
+
+int
+main ()
+{
+
+ int result = 0;
+
+ nocrash_init();
+
+ /* 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. */
+ {
+ static char conftest[] = "conftest";
+ static char plus[] = "-+";
+ char *argv[3] = { conftest, plus, NULL };
+ opterr = 0;
+ if (getopt (2, argv, "+a") != '?')
+ result |= 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. */
+ {
+ static char program[] = "program";
+ static char p[] = "-p";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, p, foo, bar, NULL };
+
+ optind = 1;
+ if (getopt (4, argv, "p::") != 'p')
+ result |= 2;
+ else if (optarg != NULL)
+ result |= 4;
+ else if (getopt (4, argv, "p::") != -1)
+ result |= 6;
+ else if (optind != 2)
+ result |= 8;
+ }
+ /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */
+ {
+ static char program[] = "program";
+ static char foo[] = "foo";
+ static char p[] = "-p";
+ char *argv[] = { program, foo, p, NULL };
+ optind = 0;
+ if (getopt (3, argv, "-p") != 1)
+ result |= 16;
+ else if (getopt (3, argv, "-p") != 'p')
+ result |= 32;
+ }
+ /* This code fails on glibc 2.11. */
+ {
+ static char program[] = "program";
+ static char b[] = "-b";
+ static char a[] = "-a";
+ char *argv[] = { program, b, a, NULL };
+ optind = opterr = 0;
+ if (getopt (3, argv, "+:a:b") != 'b')
+ result |= 64;
+ else if (getopt (3, argv, "+:a:b") != ':')
+ result |= 64;
+ }
+ /* This code dumps core on glibc 2.14. */
+ {
+ static char program[] = "program";
+ static char w[] = "-W";
+ static char dummy[] = "dummy";
+ char *argv[] = { program, w, dummy, NULL };
+ optind = opterr = 1;
+ if (getopt (3, argv, "W;") != 'W')
+ result |= 128;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getopt_gnu=yes
+else
+ gl_cv_func_getopt_gnu=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ case $gl_had_POSIXLY_CORRECT in
+ exported) ;;
+ yes) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}; POSIXLY_CORRECT=1 ;;
+ *) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;} ;;
+ esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+ if test -n "$gl_replace_getopt"; then :
+
+fi
+
+ REPLACE_GETOPT=1
+
+ if test $REPLACE_GETOPT = 1; then
+
+ GETOPT_H=getopt.h
+
+$as_echo "@%:@define __GETOPT_PREFIX rpl_" >>confdefs.h
+
+
+
+ fi
+
+ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getenv" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETENV $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+ GNULIB_GETTIMEOFDAY=0;
+ HAVE_GETTIMEOFDAY=1;
+ HAVE_STRUCT_TIMEVAL=1;
+ HAVE_SYS_TIME_H=1;
+ REPLACE_GETTIMEOFDAY=0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_sys_time_h='<'sys/time.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/time.h>" >&5
+$as_echo_n "checking absolute name of <sys/time.h>... " >&6; }
+if ${gl_cv_next_sys_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_sys_time_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/time.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sys/time.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sys_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_sys_time_h='<'sys/time.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=0
+ fi
+
+
+
+
+
+ if test $ac_cv_header_sys_socket_h != yes; then
+ for ac_header in winsock2.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+ fi
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ HAVE_WINSOCK2_H=1
+ UNISTD_H_HAVE_WINSOCK2_H=1
+ SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+ else
+ HAVE_WINSOCK2_H=0
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5
+$as_echo_n "checking for struct timeval... " >&6; }
+if ${gl_cv_sys_struct_timeval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_SYS_TIME_H
+ #include <sys/time.h>
+ #endif
+ #include <time.h>
+ #if HAVE_WINSOCK2_H
+ # include <winsock2.h>
+ #endif
+
+int
+main ()
+{
+static struct timeval x; x.tv_sec = x.tv_usec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timeval=yes
+else
+ gl_cv_sys_struct_timeval=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
+$as_echo_n "checking for unsigned long long int... " >&6; }
+if ${ac_cv_type_unsigned_long_long_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_type_unsigned_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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. */
+ /* 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)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ ? 1 : -1)];
+ int i = 63;
+int
+main ()
+{
+/* 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));
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+else
+ ac_cv_type_unsigned_long_long_int=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
+
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
+$as_echo_n "checking for long long int... " >&6; }
+if ${ac_cv_type_long_long_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_type_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
+ if test $ac_cv_type_long_long_int = yes; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+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;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_type_long_long_int=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_LONG_LONG_INT 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+ gl_cv_c_multiarch=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ arch=
+ prev=
+ for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
+ if test -n "$prev"; then
+ case $word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$arch" || test "$arch" = "$word"; then
+ arch="$word"
+ else
+ gl_cv_c_multiarch=yes
+ fi
+ ;;
+ esac
+ prev=
+ else
+ if test "x$word" = "x-arch"; then
+ prev=arch
+ fi
+ fi
+ done
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $gl_cv_c_multiarch = yes; then
+ APPLE_UNIVERSAL_BUILD=1
+ else
+ APPLE_UNIVERSAL_BUILD=0
+ fi
+
+
+
+
+
+ if test $ac_cv_type_long_long_int = yes; then
+ HAVE_LONG_LONG_INT=1
+ else
+ HAVE_LONG_LONG_INT=0
+ fi
+
+
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+ HAVE_UNSIGNED_LONG_LONG_INT=1
+ else
+ HAVE_UNSIGNED_LONG_LONG_INT=0
+ fi
+
+
+
+ if test $ac_cv_header_wchar_h = yes; then
+ HAVE_WCHAR_H=1
+ else
+ HAVE_WCHAR_H=0
+ fi
+
+
+ if test $ac_cv_header_inttypes_h = yes; then
+ HAVE_INTTYPES_H=1
+ else
+ HAVE_INTTYPES_H=0
+ fi
+
+
+ if test $ac_cv_header_sys_types_h = yes; then
+ HAVE_SYS_TYPES_H=1
+ else
+ HAVE_SYS_TYPES_H=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_stdint_h='<'stdint.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5
+$as_echo_n "checking absolute name of <stdint.h>... " >&6; }
+if ${gl_cv_next_stdint_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_stdint_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdint.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdint.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_stdint_h='<'stdint.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ HAVE_STDINT_H=1
+ else
+ HAVE_STDINT_H=0
+ fi
+
+
+ if test $ac_cv_header_stdint_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5
+$as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
+if ${gl_cv_header_working_stdint_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gl_cv_header_working_stdint_h=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */
+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+#endif
+
+
+ /* 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
+
+
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
+#else
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+#endif
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
+#endif
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
+#endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
+
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) ((t) 0 < (t) -1 \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+struct s {
+ int check_PTRDIFF:
+ PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+ && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+ ? 1 : -1;
+ /* Detect bug in FreeBSD 6.0 / ia64. */
+ int check_SIG_ATOMIC:
+ SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+ && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+ ? 1 : -1;
+ int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+ int check_WCHAR:
+ WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+ && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+ ? 1 : -1;
+ /* Detect bug in mingw. */
+ int check_WINT:
+ WINT_MIN == TYPE_MINIMUM (wint_t)
+ && WINT_MAX == TYPE_MAXIMUM (wint_t)
+ ? 1 : -1;
+
+ /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */
+ int check_UINT8_C:
+ (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+ int check_UINT16_C:
+ (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
+
+ /* Detect bugs in OpenBSD 3.9 stdint.h. */
+#ifdef UINT8_MAX
+ int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+ int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+ int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+ int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+ int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+ int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+ int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+ int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+ int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+ int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+ int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+ int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+ int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+ int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+ int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if test "$cross_compiling" = yes; then :
+ gl_cv_header_working_stdint_h=yes
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#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 mv - macro_values + 1;
+ }
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_header_working_stdint_h=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ else
+ for ac_header in sys/inttypes.h sys/bitypes.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_sys_inttypes_h = yes; then
+ HAVE_SYS_INTTYPES_H=1
+ else
+ HAVE_SYS_INTTYPES_H=0
+ fi
+
+ if test $ac_cv_header_sys_bitypes_h = yes; then
+ HAVE_SYS_BITYPES_H=1
+ else
+ HAVE_SYS_BITYPES_H=0
+ fi
+
+
+
+
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+
+
+ for gltype in ptrdiff_t size_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" "
+ /* 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 <limits.h>"; then :
+
+else
+ result=unknown
+fi
+
+ eval gl_cv_bitsizeof_${gltype}=\$result
+
+fi
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval result=\$gl_cv_bitsizeof_${gltype}
+ if test $result = unknown; then
+ result=0
+ fi
+ GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ cat >>confdefs.h <<_ACEOF
+@%:@define BITSIZEOF_${GLTYPE} $result
+_ACEOF
+
+ eval BITSIZEOF_${GLTYPE}=\$result
+ done
+
+
+ fi
+
+
+ for gltype in sig_atomic_t wchar_t wint_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" "
+ /* 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 <limits.h>"; then :
+
+else
+ result=unknown
+fi
+
+ eval gl_cv_bitsizeof_${gltype}=\$result
+
+fi
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval result=\$gl_cv_bitsizeof_${gltype}
+ if test $result = unknown; then
+ result=0
+ fi
+ GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ cat >>confdefs.h <<_ACEOF
+@%:@define BITSIZEOF_${GLTYPE} $result
+_ACEOF
+
+ eval BITSIZEOF_${GLTYPE}=\$result
+ done
+
+
+
+
+ for gltype in sig_atomic_t wchar_t wint_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5
+$as_echo_n "checking whether $gltype is signed... " >&6; }
+if eval \${gl_cv_type_${gltype}_signed+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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
+
+ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ result=yes
+else
+ result=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ eval gl_cv_type_${gltype}_signed=\$result
+
+fi
+eval ac_res=\$gl_cv_type_${gltype}_signed
+ { $as_echo "$as_me:${as_lineno-$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
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SIGNED_${GLTYPE} 1
+_ACEOF
+
+ eval HAVE_SIGNED_${GLTYPE}=1
+ else
+ eval HAVE_SIGNED_${GLTYPE}=0
+ fi
+ done
+
+
+ gl_cv_type_ptrdiff_t_signed=yes
+ gl_cv_type_size_t_signed=no
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+
+
+ for gltype in ptrdiff_t size_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval gl_cv_type_${gltype}_suffix=no
+ eval result=\$gl_cv_type_${gltype}_signed
+ if test "$result" = yes; then
+ glsufu=
+ else
+ glsufu=u
+ fi
+ 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';;
+ ui64)gltype1='unsigned __int64';;
+ esac
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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
+
+ extern $gltype foo;
+ extern $gltype1 foo;
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval gl_cv_type_${gltype}_suffix=\$glsuf
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ eval result=\$gl_cv_type_${gltype}_suffix
+ test "$result" != no && break
+ done
+fi
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+ { $as_echo "$as_me:${as_lineno-$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=
+ eval ${GLTYPE}_SUFFIX=\$result
+ cat >>confdefs.h <<_ACEOF
+@%:@define ${GLTYPE}_SUFFIX $result
+_ACEOF
+
+ done
+
+
+ fi
+
+
+ for gltype in sig_atomic_t wchar_t wint_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval gl_cv_type_${gltype}_suffix=no
+ eval result=\$gl_cv_type_${gltype}_signed
+ if test "$result" = yes; then
+ glsufu=
+ else
+ glsufu=u
+ fi
+ 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';;
+ ui64)gltype1='unsigned __int64';;
+ esac
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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
+
+ extern $gltype foo;
+ extern $gltype1 foo;
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval gl_cv_type_${gltype}_suffix=\$glsuf
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ eval result=\$gl_cv_type_${gltype}_suffix
+ test "$result" != no && break
+ done
+fi
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+ { $as_echo "$as_me:${as_lineno-$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=
+ eval ${GLTYPE}_SUFFIX=\$result
+ cat >>confdefs.h <<_ACEOF
+@%:@define ${GLTYPE}_SUFFIX $result
+_ACEOF
+
+ done
+
+
+
+ if test $BITSIZEOF_WINT_T -lt 32; then
+ BITSIZEOF_WINT_T=32
+ fi
+
+ STDINT_H=stdint.h
+ fi
+
+ if test -n "$STDINT_H"; then
+ GL_GENERATE_STDINT_H_TRUE=
+ GL_GENERATE_STDINT_H_FALSE='#'
+else
+ GL_GENERATE_STDINT_H_TRUE='#'
+ GL_GENERATE_STDINT_H_FALSE=
+fi
+
+
+
+
+
+ GNULIB_IMAXABS=0;
+ GNULIB_IMAXDIV=0;
+ GNULIB_STRTOIMAX=0;
+ GNULIB_STRTOUMAX=0;
+ HAVE_DECL_IMAXABS=1;
+ HAVE_DECL_IMAXDIV=1;
+ HAVE_DECL_STRTOIMAX=1;
+ HAVE_DECL_STRTOUMAX=1;
+ REPLACE_STRTOIMAX=0;
+ INT32_MAX_LT_INTMAX_MAX=1;
+ INT64_MAX_EQ_LONG_MAX='defined _LP64';
+ PRI_MACROS_BROKEN=0;
+ PRIPTR_PREFIX=__PRIPTR_PREFIX;
+ UINT32_MAX_LT_UINTMAX_MAX=1;
+ UINT64_MAX_EQ_ULONG_MAX='defined _LP64';
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_inttypes_h='<'inttypes.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <inttypes.h>" >&5
+$as_echo_n "checking absolute name of <inttypes.h>... " >&6; }
+if ${gl_cv_next_inttypes_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_inttypes_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <inttypes.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'inttypes.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_inttypes_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_inttypes_h='<'inttypes.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <inttypes.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+ for ac_header in inttypes.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
+if test "x$ac_cv_header_inttypes_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_INTTYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_inttypes_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$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 ${gt_cv_inttypes_pri_broken+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_inttypes_pri_broken=no
+else
+ gt_cv_inttypes_pri_broken=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PRI_MACROS_BROKEN 1
+_ACEOF
+
+ PRI_MACROS_BROKEN=1
+ else
+ PRI_MACROS_BROKEN=0
+ fi
+
+
+
+ GNULIB_ISWBLANK=0;
+ GNULIB_WCTYPE=0;
+ GNULIB_ISWCTYPE=0;
+ GNULIB_WCTRANS=0;
+ GNULIB_TOWCTRANS=0;
+ HAVE_ISWBLANK=1;
+ HAVE_WCTYPE_T=1;
+ HAVE_WCTRANS_T=1;
+ REPLACE_ISWBLANK=0;
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
+$as_echo_n "checking for wint_t... " >&6; }
+if ${gt_cv_c_wint_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ wint_t foo = (wchar_t)'\0';
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_c_wint_t=yes
+else
+ gt_cv_c_wint_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_WINT_T 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+ if test $ac_cv_func_iswcntrl = yes; then
+ HAVE_ISWCNTRL=1
+ else
+ HAVE_ISWCNTRL=0
+ fi
+
+
+
+
+
+ if test $gt_cv_c_wint_t = yes; then
+ HAVE_WINT_T=1
+ else
+ HAVE_WINT_T=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
+$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
+if ${gl_cv_next_wctype_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_wctype_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <wctype.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'wctype.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_wctype_h = yes; then
+ if test $ac_cv_func_iswcntrl = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
+$as_echo_n "checking whether iswcntrl works... " >&6; }
+if ${gl_cv_func_iswcntrl_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+ #if __GNU_LIBRARY__ == 1
+ Linux libc5 i18n is broken.
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ int main () { return iswprint ('x') == 0; }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
+$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
+ fi
+ HAVE_WCTYPE_H=1
+ else
+ HAVE_WCTYPE_H=0
+ fi
+
+
+ if test "$gl_cv_func_iswcntrl_works" = no; then
+ REPLACE_ISWCNTRL=1
+ else
+ REPLACE_ISWCNTRL=0
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+ fi
+
+ if test $REPLACE_ISWCNTRL = 1; then
+ REPLACE_TOWLOWER=1
+ else
+ for ac_func in towlower
+do :
+ ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower"
+if test "x$ac_cv_func_towlower" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_TOWLOWER 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_towlower = yes; then
+ REPLACE_TOWLOWER=0
+ else
+ ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* 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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+
+"
+if test "x$ac_cv_have_decl_towlower" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_TOWLOWER $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_towlower = yes; then
+ REPLACE_TOWLOWER=1
+ else
+ REPLACE_TOWLOWER=0
+ fi
+ fi
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+ :
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
+$as_echo_n "checking for wctype_t... " >&6; }
+if ${gl_cv_type_wctype_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ wctype_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctype_t=yes
+else
+ gl_cv_type_wctype_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5
+$as_echo "$gl_cv_type_wctype_t" >&6; }
+ if test $gl_cv_type_wctype_t = no; then
+ HAVE_WCTYPE_T=0
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
+$as_echo_n "checking for wctrans_t... " >&6; }
+if ${gl_cv_type_wctrans_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ wctrans_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctrans_t=yes
+else
+ gl_cv_type_wctrans_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5
+$as_echo "$gl_cv_type_wctrans_t" >&6; }
+ if test $gl_cv_type_wctrans_t = no; then
+ HAVE_WCTRANS_T=0
+ fi
+
+
+ for gl_func in wctype iswctype wctrans towctrans ; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+ GNULIB_NL_LANGINFO=0;
+ HAVE_NL_LANGINFO=1;
+ REPLACE_NL_LANGINFO=0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ yes+yes)
+ ;;
+ yes+*)
+ # Solaris 9 has *at functions, but uniformly mishandles trailing
+ # slash in all of them.
+ REPLACE_OPENAT=1
+ ;;
+ *)
+ HAVE_OPENAT=0
+ ;;
+ esac
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5
+$as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; }
+if ${ac_cv_gnu_library_2_1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+#ifdef __UCLIBC__
+ Lucky user
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Lucky" >/dev/null 2>&1; then :
+ ac_cv_gnu_library_2_1=yes
+else
+ ac_cv_gnu_library_2_1=no
+fi
+rm -f conftest*
+
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5
+$as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; }
+if ${gl_cv_func_malloc_posix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ choke me
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_malloc_posix=yes
+else
+ gl_cv_func_malloc_posix=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5
+$as_echo "$gl_cv_func_malloc_posix" >&6; }
+
+
+ for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
+$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
+if ${ac_cv_func_malloc_0_nonnull+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_malloc_0_nonnull=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *malloc ();
+#endif
+
+int
+main ()
+{
+return ! malloc (0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_malloc_0_nonnull=yes
+else
+ ac_cv_func_malloc_0_nonnull=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $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
+ gl_cv_func_malloc_0_nonnull=0
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull
+_ACEOF
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
+$as_echo_n "checking for a traditional japanese locale... " >&6; }
+if ${gt_cv_locale_ja+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.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 (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 MB_CUR_MAX is > 1. This excludes the dysfunctional locales
+ on Cygwin 1.5.x. */
+ if (MB_CUR_MAX == 1)
+ return 1;
+ /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+ This excludes the UTF-8 encoding (except on MirBSD). */
+ 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;
+ return 0;
+}
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Note that on native Windows, the Japanese locale is
+ # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+ # cannot use it here.
+ gt_cv_locale_ja=none
+ ;;
+ *)
+ # 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 AIX locale name.
+ if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.EUC-JP
+ else
+ # Test for the HP-UX, OSF/1, NetBSD locale name.
+ if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.eucJP
+ else
+ # Test for the IRIX, FreeBSD locale name.
+ if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.EUC
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja
+ else
+ # Special test for NetBSD 1.6.
+ if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+ gt_cv_locale_ja=ja_JP.eucJP
+ else
+ # None found.
+ gt_cv_locale_ja=none
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
+$as_echo "$gt_cv_locale_ja" >&6; }
+ LOCALE_JA=$gt_cv_locale_ja
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
+$as_echo_n "checking for a transitional chinese locale... " >&6; }
+if ${gt_cv_locale_zh_CN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 (except on MirBSD). */
+ 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\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the hypothetical native Windows locale name.
+ if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_zh_CN=Chinese_China.54936
+ else
+ # None found.
+ gt_cv_locale_zh_CN=none
+ fi
+ ;;
+ solaris2.8)
+ # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+ # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+ # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+ gt_cv_locale_zh_CN=none
+ ;;
+ *)
+ # 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
+ ;;
+ esac
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.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 () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if !(defined __BEOS__ || defined __HAIKU__)
+ /* Check whether the given locale name is recognized by the system. */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+# else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+ /* 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 the abbreviation of the second month, the second
+ character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+ two bytes long, with UTF-8 encoding. */
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%b", &t) < 4
+ || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+ return 1;
+#endif
+ /* Check whether the decimal separator is a comma.
+ On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+ are nl_langinfo(RADIXCHAR) are both ".". */
+ if (localeconv () ->decimal_point[0] != ',') return 1;
+ return 0;
+}
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the hypothetical native Windows locale name.
+ if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=French_France.65001
+ else
+ # None found.
+ gt_cv_locale_fr_utf8=none
+ fi
+ ;;
+ *)
+ # 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 usual locale name.
+ if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr_FR
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr_FR.UTF-8
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr.UTF-8
+ else
+ # None found.
+ gt_cv_locale_fr_utf8=none
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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_FFSL=0;
+ GNULIB_FFSLL=0;
+ 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_STRNCAT=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_STRERROR_R=0;
+ GNULIB_STRSIGNAL=0;
+ GNULIB_STRVERSCMP=0;
+ HAVE_MBSLEN=0;
+ HAVE_FFSL=1;
+ HAVE_FFSLL=1;
+ HAVE_MEMCHR=1;
+ 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_R=1;
+ HAVE_DECL_STRSIGNAL=1;
+ HAVE_STRVERSCMP=1;
+ REPLACE_MEMCHR=0;
+ REPLACE_MEMMEM=0;
+ REPLACE_STPNCPY=0;
+ REPLACE_STRDUP=0;
+ REPLACE_STRSTR=0;
+ REPLACE_STRCASESTR=0;
+ REPLACE_STRCHRNUL=0;
+ REPLACE_STRERROR=0;
+ REPLACE_STRERROR_R=0;
+ REPLACE_STRNCAT=0;
+ REPLACE_STRNDUP=0;
+ REPLACE_STRNLEN=0;
+ REPLACE_STRSIGNAL=0;
+ REPLACE_STRTOK_R=0;
+ UNDEFINE_STRTOK_R=0;
+
+
+
+
+
+
+
+
+
+ # 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_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; 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:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 :
+
+$as_echo "@%:@define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+ gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+ if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "@%:@define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+ fi
+ fi
+
+
+
+
+
+
+ if test $HAVE_MEMCHR = 1; 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:${as_lineno-$LINENO}: checking whether memchr works" >&5
+$as_echo_n "checking whether memchr works... " >&6; }
+if ${gl_cv_func_memchr_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_memchr_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 ()
+{
+
+ int result = 0;
+ 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))
+ result |= 1;
+ strcpy (fence - 9, "12345678");
+ if (memchr (fence - 9, 0, 79) != fence - 1)
+ result |= 2;
+ if (memchr (fence - 1, 0, 3) != fence - 1)
+ result |= 4;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_memchr_works=yes
+else
+ gl_cv_func_memchr_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_MEMCHR=1
+ fi
+ fi
+
+ac_fn_c_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default"
+if test "x$ac_cv_have_decl_memrchr" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_MEMRCHR $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+ GNULIB_MKTIME=0;
+ GNULIB_NANOSLEEP=0;
+ GNULIB_STRPTIME=0;
+ GNULIB_TIMEGM=0;
+ GNULIB_TIME_R=0;
+ HAVE_DECL_LOCALTIME_R=1;
+ HAVE_NANOSLEEP=1;
+ HAVE_STRPTIME=1;
+ HAVE_TIMEGM=1;
+ REPLACE_LOCALTIME_R=GNULIB_PORTCHECK;
+ REPLACE_MKTIME=GNULIB_PORTCHECK;
+ REPLACE_NANOSLEEP=GNULIB_PORTCHECK;
+ REPLACE_TIMEGM=GNULIB_PORTCHECK;
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5
+$as_echo_n "checking for promoted mode_t type... " >&6; }
+if ${gl_cv_promoted_mode_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main ()
+{
+typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_promoted_mode_t='int'
+else
+ gl_cv_promoted_mode_t='mode_t'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
+$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
+if ${ac_cv_header_stdbool_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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];
+ /* See body of main program for 'e'. */
+ 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 };
+ /* The following fails for
+ HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+ _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];
+ /* 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 ()
+{
+
+ bool e = &s;
+ *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
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdbool_h=yes
+else
+ ac_cv_header_stdbool_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
+$as_echo "$ac_cv_header_stdbool_h" >&6; }
+ ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
+if test "x$ac_cv_type__Bool" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE__BOOL 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 -n "$STDBOOL_H"; then
+ GL_GENERATE_STDBOOL_H_TRUE=
+ GL_GENERATE_STDBOOL_H_FALSE='#'
+else
+ GL_GENERATE_STDBOOL_H_TRUE='#'
+ GL_GENERATE_STDBOOL_H_FALSE=
+fi
+
+
+ if test "$ac_cv_type__Bool" = yes; then
+ HAVE__BOOL=1
+ else
+ HAVE__BOOL=0
+ fi
+
+
+
+ # parse-datetime.y works with bison only.
+ : ${YACC='bison -y'}
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compound literals" >&5
+$as_echo_n "checking for compound literals... " >&6; }
+if ${gl_cv_compound_literals+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+struct s { int i, j; };
+int
+main ()
+{
+struct s t = (struct s) { 3, 4 };
+ if (t.i != 0) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_compound_literals=yes
+else
+ gl_cv_compound_literals=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compound_literals" >&5
+$as_echo "$gl_cv_compound_literals" >&6; }
+ if test $gl_cv_compound_literals = yes; then
+
+$as_echo "@%:@define HAVE_COMPOUND_LITERALS 1" >>confdefs.h
+
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_struct_tm+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <time.h>
+
+int
+main ()
+{
+struct tm tm;
+ int *p = &tm.tm_sec;
+ return !p;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_struct_tm=time.h
+else
+ ac_cv_struct_tm=sys/time.h
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
+$as_echo "$ac_cv_struct_tm" >&6; }
+if test $ac_cv_struct_tm = sys/time.h; then
+
+$as_echo "@%:@define TM_IN_SYS_TIME 1" >>confdefs.h
+
+fi
+
+
+ ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h>
+"
+if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then :
+
+$as_echo "@%:@define HAVE_TM_GMTOFF 1" >>confdefs.h
+
+fi
+
+
+
+
+
+ GNULIB_PTHREAD_SIGMASK=0;
+ GNULIB_RAISE=0;
+ GNULIB_SIGNAL_H_SIGPIPE=0;
+ GNULIB_SIGPROCMASK=0;
+ GNULIB_SIGACTION=0;
+ HAVE_POSIX_SIGNALBLOCKING=1;
+ HAVE_PTHREAD_SIGMASK=1;
+ HAVE_RAISE=1;
+ HAVE_SIGSET_T=1;
+ HAVE_SIGINFO_T=1;
+ HAVE_SIGACTION=1;
+ HAVE_STRUCT_SIGACTION_SA_SIGACTION=1;
+
+ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1;
+
+ HAVE_SIGHANDLER_T=1;
+ REPLACE_PTHREAD_SIGMASK=0;
+ REPLACE_RAISE=0;
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_setenv" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_SETENV $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+ if test $ac_cv_have_decl_setenv = no; then
+ HAVE_DECL_SETENV=0
+ fi
+
+
+
+
+
+ for ac_header in search.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default"
+if test "x$ac_cv_header_search_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SEARCH_H 1
+_ACEOF
+
+fi
+
+done
+
+ for ac_func in tsearch
+do :
+ ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch"
+if test "x$ac_cv_func_tsearch" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_TSEARCH 1
+_ACEOF
+
+fi
+done
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" "
+ #include <signal.h>
+ /* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>. */
+ #include <sys/types.h>
+
+"
+if test "x$ac_cv_type_sigset_t" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SIGSET_T 1
+_ACEOF
+
+gl_cv_type_sigset_t=yes
+else
+ gl_cv_type_sigset_t=no
+fi
+
+ if test $gl_cv_type_sigset_t != yes; then
+ HAVE_SIGSET_T=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5
+$as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; }
+if ${gl_cv_func_snprintf_retval_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on OpenBSD >= 3.9.
+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+ gl_cv_func_snprintf_retval_c99="guessing no";;
+ openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on Solaris >= 2.10.
+ solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ solaris*) gl_cv_func_printf_sizes_c99="guessing no";;
+ # Guess yes on AIX >= 4.
+ aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ aix*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_snprintf_retval_c99="guessing no";;
+ netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_snprintf_retval_c99="guessing no";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+static char buf[100];
+int main ()
+{
+ strcpy (buf, "ABCDEF");
+ if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7)
+ return 1;
+ if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7)
+ return 2;
+ if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
+ return 3;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_snprintf_retval_c99=yes
+else
+ gl_cv_func_snprintf_retval_c99=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5
+$as_echo "$gl_cv_func_snprintf_retval_c99" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_snprintf" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_SNPRINTF $ac_have_decl
+_ACEOF
+
+
+ REPLACE_NULL=0;
+ HAVE_WCHAR_T=1;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
+$as_echo_n "checking for wchar_t... " >&6; }
+if ${gt_cv_c_wchar_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ wchar_t foo = (wchar_t)'\0';
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_c_wchar_t=yes
+else
+ gt_cv_c_wchar_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_WCHAR_T 1" >>confdefs.h
+
+ fi
+
+
+ GNULIB_FFS=0;
+ HAVE_FFS=1;
+ HAVE_STRCASECMP=1;
+ HAVE_DECL_STRNCASECMP=1;
+
+
+
+ac_fn_c_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strdup" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRDUP $ac_have_decl
+_ACEOF
+
+
+ REPLACE_STRERROR_0=0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5
+$as_echo_n "checking whether strerror(0) succeeds... " >&6; }
+if ${gl_cv_func_strerror_0_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_strerror_0_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+ #include <errno.h>
+
+int
+main ()
+{
+int result = 0;
+ char *str;
+ errno = 0;
+ str = strerror (0);
+ if (!*str) result |= 1;
+ if (errno) result |= 2;
+ if (strstr (str, "nknown") || strstr (str, "ndefined"))
+ result |= 4;
+ return result;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_strerror_0_works=yes
+else
+ gl_cv_func_strerror_0_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5
+$as_echo "$gl_cv_func_strerror_0_works" >&6; }
+ if test "$gl_cv_func_strerror_0_works" != yes; then
+ REPLACE_STRERROR_0=1
+
+$as_echo "@%:@define REPLACE_STRERROR_0 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_string_h='<'string.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <string.h>" >&5
+$as_echo_n "checking absolute name of <string.h>... " >&6; }
+if ${gl_cv_next_string_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'string.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+ for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <strings.h>" >&5
+$as_echo_n "checking absolute name of <strings.h>... " >&6; }
+if ${gl_cv_next_strings_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_strings_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <strings.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'strings.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_strings_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_strings_h='<'strings.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_strings_h = yes; then
+ HAVE_STRINGS_H=1
+ else
+ HAVE_STRINGS_H=0
+ fi
+
+
+
+ for gl_func in ffs strcasecmp strncasecmp; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
+ <strings.h>. */
+ #include <sys/types.h>
+ #include <strings.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+ac_fn_c_check_decl "$LINENO" "strndup" "ac_cv_have_decl_strndup" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strndup" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRNDUP $ac_have_decl
+_ACEOF
+
+
+
+ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strnlen" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRNLEN $ac_have_decl
+_ACEOF
+
+
+
+ac_fn_c_check_decl "$LINENO" "strtoumax" "ac_cv_have_decl_strtoumax" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtoumax" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRTOUMAX $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <time.h>" >&5
+$as_echo_n "checking for struct timespec in <time.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timespec_in_time_h=yes
+else
+ gl_cv_sys_struct_timespec_in_time_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
+ if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
+ TIME_H_DEFINES_STRUCT_TIMESPEC=1
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <sys/time.h>" >&5
+$as_echo_n "checking for struct timespec in <sys/time.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/time.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timespec_in_sys_time_h=yes
+else
+ gl_cv_sys_struct_timespec_in_sys_time_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <pthread.h>" >&5
+$as_echo_n "checking for struct timespec in <pthread.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <pthread.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timespec_in_pthread_h=yes
+else
+ gl_cv_sys_struct_timespec_in_pthread_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5
+$as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; }
+ if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
+ fi
+ fi
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_time_h='<'time.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <time.h>" >&5
+$as_echo_n "checking absolute name of <time.h>... " >&6; }
+if ${gl_cv_next_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'time.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_localtime_r" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_LOCALTIME_R $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+
+
+ if test "$HAVE_LIBUNISTRING" = yes; then
+ LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"`
+ LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"`
+ LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
+ fi
+
+ac_fn_c_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_unsetenv" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_UNSETENV $ac_have_decl
+_ACEOF
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the utimes function works" >&5
+$as_echo_n "checking whether the utimes function works... " >&6; }
+if ${gl_cv_func_working_utimes+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_working_utimes=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/time.h>
+#include <time.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <utime.h>
+
+static int
+inorder (time_t a, time_t b, time_t c)
+{
+ return a <= b && b <= c;
+}
+
+int
+main ()
+{
+ int result = 0;
+ char const *file = "conftest.utimes";
+ static struct timeval timeval[2] = {{9, 10}, {999999, 999999}};
+
+ /* Test whether utimes() essentially works. */
+ {
+ struct stat sbuf;
+ FILE *f = fopen (file, "w");
+ if (f == NULL)
+ result |= 1;
+ else if (fclose (f) != 0)
+ result |= 1;
+ else if (utimes (file, timeval) != 0)
+ result |= 2;
+ else if (lstat (file, &sbuf) != 0)
+ result |= 1;
+ else if (!(sbuf.st_atime == timeval[0].tv_sec
+ && sbuf.st_mtime == timeval[1].tv_sec))
+ result |= 4;
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ /* Test whether utimes() with a NULL argument sets the file's timestamp
+ to the current time. Use 'fstat' as well as 'time' to
+ determine the "current" time, to accommodate NFS file systems
+ if there is a time skew between the host and the NFS server. */
+ {
+ int fd = open (file, O_WRONLY|O_CREAT, 0644);
+ if (fd < 0)
+ result |= 1;
+ else
+ {
+ time_t t0, t2;
+ struct stat st0, st1, st2;
+ if (time (&t0) == (time_t) -1)
+ result |= 1;
+ else if (fstat (fd, &st0) != 0)
+ result |= 1;
+ else if (utimes (file, timeval) != 0)
+ result |= 2;
+ else if (utimes (file, NULL) != 0)
+ result |= 8;
+ else if (fstat (fd, &st1) != 0)
+ result |= 1;
+ else if (write (fd, "\n", 1) != 1)
+ result |= 1;
+ else if (fstat (fd, &st2) != 0)
+ result |= 1;
+ else if (time (&t2) == (time_t) -1)
+ result |= 1;
+ else
+ {
+ int m_ok_POSIX = inorder (t0, st1.st_mtime, t2);
+ int m_ok_NFS = inorder (st0.st_mtime, st1.st_mtime, st2.st_mtime);
+ if (! (st1.st_atime == st1.st_mtime))
+ result |= 16;
+ if (! (m_ok_POSIX || m_ok_NFS))
+ result |= 32;
+ }
+ if (close (fd) != 0)
+ result |= 1;
+ }
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ /* Test whether utimes() with a NULL argument works on read-only files. */
+ {
+ int fd = open (file, O_WRONLY|O_CREAT, 0444);
+ if (fd < 0)
+ result |= 1;
+ else if (close (fd) != 0)
+ result |= 1;
+ else if (utimes (file, NULL) != 0)
+ result |= 64;
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ return result;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_utimes=yes
+else
+ gl_cv_func_working_utimes=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_utimes" >&5
+$as_echo "$gl_cv_func_working_utimes" >&6; }
+
+ if test $gl_cv_func_working_utimes = yes; then
+
+$as_echo "@%:@define HAVE_WORKING_UTIMES 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct utimbuf" >&5
+$as_echo_n "checking for struct utimbuf... " >&6; }
+if ${gl_cv_sys_struct_utimbuf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_utimbuf=yes
+else
+ gl_cv_sys_struct_utimbuf=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_STRUCT_UTIMBUF 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_header_features_h = yes; then
+ HAVE_FEATURES_H=1
+ else
+ HAVE_FEATURES_H=0
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
+$as_echo_n "checking for inttypes.h... " >&6; }
+if ${gl_cv_header_inttypes_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h>
+#include <inttypes.h>
+
+int
+main ()
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_inttypes_h=yes
+else
+ gl_cv_header_inttypes_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+@%:@define HAVE_INTTYPES_H_WITH_UINTMAX 1
+_ACEOF
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
+$as_echo_n "checking for stdint.h... " >&6; }
+if ${gl_cv_header_stdint_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <stdint.h>
+int
+main ()
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_stdint_h=yes
+else
+ gl_cv_header_stdint_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+@%:@define HAVE_STDINT_H_WITH_UINTMAX 1
+_ACEOF
+
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
+$as_echo_n "checking for intmax_t... " >&6; }
+if ${gt_cv_c_intmax_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+
+int
+main ()
+{
+intmax_t x = -1; return !x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_c_intmax_t=yes
+else
+ gt_cv_c_intmax_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_INTMAX_T 1" >>confdefs.h
+
+ else
+
+ test $ac_cv_type_long_long_int = yes \
+ && ac_type='long long' \
+ || ac_type='long'
+
+cat >>confdefs.h <<_ACEOF
+@%:@define intmax_t $ac_type
+_ACEOF
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
+$as_echo_n "checking where to find the exponent in a 'double'... " >&6; }
+if ${gl_cv_cc_double_expbit0+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if defined arm || defined __arm || defined __arm__
+ mixed_endianness
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "mixed_endianness" >/dev/null 2>&1; then :
+ gl_cv_cc_double_expbit0="unknown"
+else
+
+ :
+if ${ac_cv_c_bigendian+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then :
+ # Try to guess by grepping values from an object file.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_bigendian=no
+else
+ ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+fi
+:
+ case $ac_cv_c_bigendian in #(
+ yes)
+ gl_cv_cc_double_expbit0="word 0 bit 20";; #(
+ no)
+ gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
+ universal)
+
+$as_echo "@%:@define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+ ;; #(
+ *)
+ gl_cv_cc_double_expbit0="unknown" ;;
+ esac
+
+
+fi
+rm -f conftest*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
+{
+ memory_double m;
+ size_t i;
+ /* Clear it first, in case sizeof (double) < sizeof (memory_double). */
+ memset (&m, 0, sizeof (memory_double));
+ m.value = x;
+ for (i = 0; i < NWORDS; i++)
+ {
+ ored_words[i] |= m.word[i];
+ anded_words[i] &= m.word[i];
+ }
+}
+int main ()
+{
+ size_t j;
+ FILE *fp = fopen ("conftest.out", "w");
+ if (fp == NULL)
+ return 1;
+ for (j = 0; j < NWORDS; j++)
+ anded_words[j] = ~ (unsigned int) 0;
+ add_to_ored_words (0.25);
+ add_to_ored_words (0.5);
+ add_to_ored_words (1.0);
+ add_to_ored_words (2.0);
+ add_to_ored_words (4.0);
+ /* Remove bits that are common (e.g. if representation of the first mantissa
+ bit is explicit). */
+ for (j = 0; j < NWORDS; j++)
+ ored_words[j] &= ~anded_words[j];
+ /* Now find the nonzero word. */
+ for (j = 0; j < NWORDS; j++)
+ if (ored_words[j] != 0)
+ break;
+ if (j < NWORDS)
+ {
+ size_t i;
+ for (i = j + 1; i < NWORDS; i++)
+ if (ored_words[i] != 0)
+ {
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+ }
+ for (i = 0; ; i++)
+ if ((ored_words[j] >> i) & 1)
+ {
+ fprintf (fp, "word %d bit %d", (int) j, (int) i);
+ return (fclose (fp) != 0);
+ }
+ }
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_cc_double_expbit0=`cat conftest.out`
+else
+ gl_cv_cc_double_expbit0="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.out
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
+$as_echo "$gl_cv_cc_double_expbit0" >&6; }
+ case "$gl_cv_cc_double_expbit0" in
+ word*bit*)
+ word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+ bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DBL_EXPBIT0_WORD $word
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DBL_EXPBIT0_BIT $bit
+_ACEOF
+
+ ;;
+ esac
+
+
+
+
+
+
+
+ for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include <stdio.h>
+"
+if test "x$ac_cv_have_decl__snprintf" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL__SNPRINTF $ac_have_decl
+_ACEOF
+
+
+
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+
+$as_echo "@%:@define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h
+
+ ;;
+ esac
+
+ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_vsnprintf" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_VSNPRINTF $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+ if false; then
+ GL_COND_LIBTOOL_TRUE=
+ GL_COND_LIBTOOL_FALSE='#'
+else
+ GL_COND_LIBTOOL_TRUE='#'
+ GL_COND_LIBTOOL_FALSE=
+fi
+
+ gl_cond_libtool=false
+ gl_libdeps=
+ gl_ltlibdeps=
+ gl_m4_base='m4'
+
+
+
+
+
+
+
+
+
+ gl_source_base='gnu'
+
+
+ if test $ac_cv_func_alloca_works = no; then
+ :
+ fi
+
+ # Define an additional variable used in the Makefile substitution.
+ if test $ac_cv_working_alloca_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5
+$as_echo_n "checking for alloca as a compiler built-in... " >&6; }
+if ${gl_cv_rpl_alloca+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
+ Need own alloca
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Need own alloca" >/dev/null 2>&1; then :
+ gl_cv_rpl_alloca=yes
+else
+ gl_cv_rpl_alloca=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5
+$as_echo "$gl_cv_rpl_alloca" >&6; }
+ if test $gl_cv_rpl_alloca = yes; then
+
+$as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h
+
+ ALLOCA_H=alloca.h
+ else
+ ALLOCA_H=
+ fi
+ else
+ ALLOCA_H=alloca.h
+ fi
+
+ if test -n "$ALLOCA_H"; then
+ GL_GENERATE_ALLOCA_H_TRUE=
+ GL_GENERATE_ALLOCA_H_FALSE='#'
+else
+ GL_GENERATE_ALLOCA_H_TRUE='#'
+ GL_GENERATE_ALLOCA_H_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_AREADLINKAT 1
+_ACEOF
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then :
+
+$as_echo "@%:@define HAVE_DECL_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+
+else
+
+$as_echo "@%:@define GNULIB_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+
+fi
+
+ ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then :
+
+$as_echo "@%:@define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
+
+else
+
+$as_echo "@%:@define GNULIB_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
+
+fi
+
+
+ # Check if program_invocation_name and program_invocation_short_name
+ # 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.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_name is defined" >&5
+$as_echo_n "checking whether program_invocation_name is defined... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <argp.h>
+int
+main ()
+{
+program_invocation_name = "test";
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+$as_echo "@%:@define HAVE_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_short_name is defined" >&5
+$as_echo_n "checking whether program_invocation_short_name is defined... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <argp.h>
+int
+main ()
+{
+program_invocation_short_name = "test";
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+$as_echo "@%:@define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_error:2:c-format"
+
+
+
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_failure:4:c-format"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS openat-proc.$ac_objext"
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_btowc = no; then
+ HAVE_BTOWC=0
+ else
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5
+$as_echo_n "checking whether btowc(0) is correct... " >&6; }
+if ${gl_cv_func_btowc_nul+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess no on Cygwin.
+ cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_nul="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <string.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>
+int main ()
+{
+ if (btowc ('\0') != 0)
+ return 1;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_btowc_nul=yes
+else
+ gl_cv_func_btowc_nul=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5
+$as_echo "$gl_cv_func_btowc_nul" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5
+$as_echo_n "checking whether btowc(EOF) is correct... " >&6; }
+if ${gl_cv_func_btowc_eof+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on IRIX.
+ irix*) gl_cv_func_btowc_eof="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_eof="guessing yes" ;;
+ esac
+ if test $LOCALE_FR != none; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ if (btowc (EOF) != WEOF)
+ return 1;
+ }
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_btowc_eof=yes
+else
+ gl_cv_func_btowc_eof=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5
+$as_echo "$gl_cv_func_btowc_eof" >&6; }
+
+ case "$gl_cv_func_btowc_nul" in
+ *yes) ;;
+ *) REPLACE_BTOWC=1 ;;
+ esac
+ case "$gl_cv_func_btowc_eof" in
+ *yes) ;;
+ *) REPLACE_BTOWC=1 ;;
+ esac
+ fi
+
+if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS btowc.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_BTOWC=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_BTOWC 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_canonicalize_file_name = no; then
+ HAVE_CANONICALIZE_FILE_NAME=0
+ 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
+ REPLACE_CANONICALIZE_FILE_NAME=1
+ REPLACE_REALPATH=1
+ fi
+
+if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS canonicalize-lgpl.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_CANONICALIZE_LGPL 1
+_ACEOF
+
+
+
+
+
+
+
+ GNULIB_CANONICALIZE_FILE_NAME=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CANONICALIZE_FILE_NAME 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ GNULIB_REALPATH=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_REALPATH 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ GNULIB_CHDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CHDIR 1" >>confdefs.h
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_have_arbitrary_file_name_length_limit+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+
+#ifdef PATH_MAX
+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
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS chdir-long.$ac_objext"
+
+
+
+ :
+
+fi
+
+if test $HAVE_CHOWN = 0 || test $REPLACE_CHOWN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext"
+
+fi
+if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fchown-stub.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_CHOWN=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CHOWN 1" >>confdefs.h
+
+
+
+
+
+
+ # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
+ # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
+
+ # 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
+$as_echo_n "checking for library containing clock_gettime... " >&6; }
+if ${ac_cv_search_clock_gettime+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 clock_gettime ();
+int
+main ()
+{
+return clock_gettime ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' rt posix4; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_clock_gettime=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_clock_gettime+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_clock_gettime+:} false; then :
+
+else
+ ac_cv_search_clock_gettime=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+ test "$ac_cv_search_clock_gettime" = "none required" ||
+ LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime
+fi
+
+ for ac_func in clock_gettime clock_settime
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ LIBS=$gl_saved_libs
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CLOEXEC 1" >>confdefs.h
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_CLOSE=1
+ fi
+
+
+
+
+
+ if test $ac_cv_header_sys_socket_h != yes; then
+ for ac_header in winsock2.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+ fi
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ HAVE_WINSOCK2_H=1
+ UNISTD_H_HAVE_WINSOCK2_H=1
+ SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+ else
+ HAVE_WINSOCK2_H=0
+ fi
+
+
+ if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then
+ REPLACE_CLOSE=1
+ fi
+
+
+ if test $REPLACE_CLOSE = 0; then
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_CLOSE=1
+ fi
+ fi
+
+
+if test $REPLACE_CLOSE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_CLOSE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CLOSE 1" >>confdefs.h
+
+
+
+
+ :
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_CLOSE_STREAM 1
+_ACEOF
+
+
+
+
+
+ for ac_func in closedir
+do :
+ ac_fn_c_check_func "$LINENO" "closedir" "ac_cv_func_closedir"
+if test "x$ac_cv_func_closedir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_CLOSEDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_closedir = no; then
+ HAVE_CLOSEDIR=0
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_CLOSEDIR = 1; then
+ REPLACE_CLOSEDIR=1
+ fi
+ fi
+
+
+if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS closedir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_CLOSEDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CLOSEDIR 1" >>confdefs.h
+
+
+
+
+ :
+
+
+ if test "x$datarootdir" = x; then
+ datarootdir='${datadir}'
+
+ fi
+ if test "x$docdir" = x; then
+ docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+
+ fi
+ if test "x$htmldir" = x; then
+ htmldir='${docdir}'
+
+ fi
+ if test "x$dvidir" = x; then
+ dvidir='${docdir}'
+
+ fi
+ if test "x$pdfdir" = x; then
+ pdfdir='${docdir}'
+
+ fi
+ if test "x$psdir" = x; then
+ psdir='${docdir}'
+
+ fi
+ if test "x$lispdir" = x; then
+ lispdir='${datarootdir}/emacs/site-lisp'
+
+ fi
+ if test "x$localedir" = x; then
+ localedir='${datarootdir}/locale'
+
+ fi
+
+ pkglibexecdir='${libexecdir}/${PACKAGE}'
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5
+$as_echo_n "checking for d_ino member in directory struct... " >&6; }
+if ${gl_cv_struct_dirent_d_ino+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_struct_dirent_d_ino=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.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);
+ if (! e)
+ return 2;
+ if (stat (e->d_name, &st) != 0)
+ return 3;
+ if (e->d_ino != st.st_ino)
+ return 4;
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_struct_dirent_d_ino=yes
+else
+ gl_cv_struct_dirent_d_ino=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5
+$as_echo "$gl_cv_struct_dirent_d_ino" >&6; }
+ if test $gl_cv_struct_dirent_d_ino = yes; then
+
+$as_echo "@%:@define D_INO_IN_DIRENT 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_dirent_h='<'dirent.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <dirent.h>" >&5
+$as_echo_n "checking absolute name of <dirent.h>... " >&6; }
+if ${gl_cv_next_dirent_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_dirent_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <dirent.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'dirent.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_dirent_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_dirent_h='<'dirent.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_dirent_h = yes; then
+ HAVE_DIRENT_H=1
+ else
+ HAVE_DIRENT_H=0
+ fi
+
+
+
+ for gl_func in alphasort closedir dirfd fdopendir opendir readdir rewinddir scandir; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <dirent.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_DIRENT_SAFER 1
+_ACEOF
+
+
+
+
+
+
+
+ for ac_func in dirfd
+do :
+ ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd"
+if test "x$ac_cv_func_dirfd" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DIRFD 1
+_ACEOF
+
+fi
+done
+
+ ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h>
+ #include <dirent.h>
+"
+if test "x$ac_cv_have_decl_dirfd" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_DIRFD $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_dirfd = no; then
+ HAVE_DECL_DIRFD=0
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dirfd is a macro" >&5
+$as_echo_n "checking whether dirfd is a macro... " >&6; }
+if ${gl_cv_func_dirfd_macro+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h>
+#include <dirent.h>
+#ifdef dirfd
+ dirent_header_defines_dirfd
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "dirent_header_defines_dirfd" >/dev/null 2>&1; then :
+ gl_cv_func_dirfd_macro=yes
+else
+ gl_cv_func_dirfd_macro=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 or macro with that name.
+ if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+ if test $ac_cv_have_decl_dirfd = yes; then
+ # If the system declares dirfd already, let's declare rpl_dirfd instead.
+ REPLACE_DIRFD=1
+ fi
+ fi
+
+if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS dirfd.$ac_objext"
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_sys_dir_fd_member_name+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ dir_fd_found=yes
+
+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:${as_lineno-$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
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_DIRFD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_DIRNAME 1
+_ACEOF
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
+$as_echo_n "checking whether // is distinct from /... " >&6; }
+if ${gl_cv_double_slash_root+:} false; 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:${as_lineno-$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
+
+$as_echo "@%:@define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
+
+ fi
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_DUP=1
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_DUP=1
+ fi
+
+
+if test $REPLACE_DUP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS dup.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_DUP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_DUP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+$as_echo "@%:@define HAVE_DUP2 1" >>confdefs.h
+
+
+ if test $HAVE_DUP2 = 1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5
+$as_echo_n "checking whether dup2 works... " >&6; }
+if ${gl_cv_func_dup2_works+:} false; 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;;
+ haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
+ gl_cv_func_dup2_works=no;;
+ *) gl_cv_func_dup2_works=yes;;
+ esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+int
+main ()
+{
+int result = 0;
+#ifdef FD_CLOEXEC
+ if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
+ result |= 1;
+#endif
+ if (dup2 (1, 1) == 0)
+ result |= 2;
+#ifdef FD_CLOEXEC
+ if (fcntl (1, F_GETFD) != FD_CLOEXEC)
+ result |= 4;
+#endif
+ close (0);
+ if (dup2 (0, 0) != -1)
+ result |= 8;
+ /* Many gnulib modules require POSIX conformance of EBADF. */
+ if (dup2 (2, 1000000) == -1 && errno != EBADF)
+ result |= 16;
+ return result;
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_dup2_works=yes
+else
+ gl_cv_func_dup2_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_DUP2=1
+ fi
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_DUP2 = 1; then
+ REPLACE_DUP2=1
+ fi
+ fi
+
+
+if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext"
+
+
+fi
+
+
+
+
+
+ GNULIB_DUP2=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_DUP2 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ GNULIB_ENVIRON=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_ENVIRON 1" >>confdefs.h
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
+$as_echo_n "checking for error_at_line... " >&6; }
+if ${ac_cv_lib_error_at_line+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <error.h>
+int
+main ()
+{
+error_at_line (0, 0, "", 0, "an error occurred");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_error_at_line=yes
+else
+ ac_cv_lib_error_at_line=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+
+
+
+
+
+ if test $ac_cv_have_decl_fchdir = no; then
+ HAVE_DECL_FCHDIR=0
+ fi
+
+
+ if test $HAVE_FCHDIR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fchdir.$ac_objext"
+
+ :
+
+$as_echo "@%:@define REPLACE_FCHDIR 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open can visit directories" >&5
+$as_echo_n "checking whether open can visit directories... " >&6; }
+if ${gl_cv_func_open_directory_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_open_directory_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fcntl.h>
+
+int
+main ()
+{
+return open(".", O_RDONLY) < 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_open_directory_works=yes
+else
+ gl_cv_func_open_directory_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define REPLACE_OPEN_DIRECTORY 1" >>confdefs.h
+
+ fi
+ fi
+
+
+
+
+
+
+ GNULIB_FCHDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FCHDIR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5
+$as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; }
+if ${gl_cv_func_fcntl_f_dupfd_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <errno.h>
+
+int
+main ()
+{
+int result = 0;
+ if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
+ if (errno != EINVAL) result |= 2;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_fcntl_f_dupfd_works=yes
+else
+ gl_cv_func_fcntl_f_dupfd_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+
+$as_echo "@%:@define FCNTL_DUPFD_BUGGY 1" >>confdefs.h
+ ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5
+$as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; }
+if ${gl_cv_func_fcntl_f_dupfd_cloexec+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#ifndef F_DUPFD_CLOEXEC
+choke me
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_fcntl_f_dupfd_cloexec=yes
+else
+ gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ 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:${as_lineno-$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
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+ fi
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+ fi
+
+
+if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FCNTL=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FCNTL 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_fcntl_h='<'fcntl.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <fcntl.h>" >&5
+$as_echo_n "checking absolute name of <fcntl.h>... " >&6; }
+if ${gl_cv_next_fcntl_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fcntl.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'fcntl.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_fcntl_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fcntl.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "fdopendir" "ac_cv_have_decl_fdopendir" "
+#include <dirent.h>
+
+"
+if test "x$ac_cv_have_decl_fdopendir" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FDOPENDIR $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
+
+else
+ HAVE_DECL_FDOPENDIR=0
+fi
+
+
+ if test $ac_cv_func_fdopendir = no; then
+ HAVE_FDOPENDIR=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fdopendir works" >&5
+$as_echo_n "checking whether fdopendir works... " >&6; }
+if ${gl_cv_func_fdopendir_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_fdopendir_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <dirent.h>
+#include <fcntl.h>
+#include <unistd.h>
+#if !HAVE_DECL_FDOPENDIR
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
+#endif
+
+int
+main ()
+{
+int result = 0;
+ int fd = open ("conftest.c", O_RDONLY);
+ if (fd < 0) result |= 1;
+ if (fdopendir (fd)) result |= 2;
+ if (close (fd)) result |= 4;
+ return result;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_fdopendir_works=yes
+else
+ gl_cv_func_fdopendir_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FDOPENDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FDOPENDIR 1" >>confdefs.h
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_FDOPENDIR 1
+_ACEOF
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_FDUTIMENSAT 1
+_ACEOF
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BLOCKS 1
+_ACEOF
+
+
+$as_echo "@%:@define HAVE_ST_BLOCKS 1" >>confdefs.h
+
+else
+ :
+fi
+
+
+
+
+if test $ac_cv_member_struct_stat_st_blocks = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fileblocks.$ac_objext"
+
+
+
+ :
+
+fi
+
+
+
+
+
+
+ FLOAT_H=
+ REPLACE_FLOAT_LDBL=0
+ case "$host_os" in
+ aix* | beos* | openbsd* | mirbsd* | irix*)
+ FLOAT_H=float.h
+ ;;
+ freebsd*)
+ case "$host_cpu" in
+ i[34567]86 )
+ FLOAT_H=float.h
+ ;;
+ x86_64 )
+ # On x86_64 systems, the C compiler may still be generating
+ # 32-bit code.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+ yes
+ #endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+
+else
+ FLOAT_H=float.h
+fi
+rm -f conftest*
+
+ ;;
+ esac
+ ;;
+ linux*)
+ case "$host_cpu" in
+ powerpc*)
+ FLOAT_H=float.h
+ ;;
+ esac
+ ;;
+ esac
+ case "$host_os" in
+ aix* | freebsd* | linux*)
+ if test -n "$FLOAT_H"; then
+ REPLACE_FLOAT_LDBL=1
+ fi
+ ;;
+ esac
+
+ REPLACE_ITOLD=0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5
+$as_echo_n "checking whether conversion from 'int' to 'long double' works... " >&6; }
+if ${gl_cv_func_itold_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ case "$host" in
+ sparc*-*-linux*)
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __LP64__ || defined __arch64__
+ yes
+ #endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_func_itold_works="guessing no"
+else
+ gl_cv_func_itold_works="guessing yes"
+fi
+rm -f conftest*
+
+ ;;
+ *) gl_cv_func_itold_works="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int i = -1;
+volatile long double ld;
+int main ()
+{
+ ld += i * 1.0L;
+ if (ld > 0)
+ return 1;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_itold_works=yes
+else
+ gl_cv_func_itold_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5
+$as_echo "$gl_cv_func_itold_works" >&6; }
+ case "$gl_cv_func_itold_works" in
+ *no)
+ REPLACE_ITOLD=1
+ FLOAT_H=float.h
+ ;;
+ esac
+
+ if test -n "$FLOAT_H"; then
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_float_h='<'float.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <float.h>" >&5
+$as_echo_n "checking absolute name of <float.h>... " >&6; }
+if ${gl_cv_next_float_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <float.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'float.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ fi
+
+ if test -n "$FLOAT_H"; then
+ GL_GENERATE_FLOAT_H_TRUE=
+ GL_GENERATE_FLOAT_H_FALSE='#'
+else
+ GL_GENERATE_FLOAT_H_TRUE='#'
+ GL_GENERATE_FLOAT_H_FALSE=
+fi
+
+
+
+if test $REPLACE_FLOAT_LDBL = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext"
+
+fi
+if test $REPLACE_ITOLD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext"
+
+fi
+
+
+
+
+
+ FNMATCH_H=
+ 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:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5
+$as_echo_n "checking for working $gl_fnmatch_required fnmatch... " >&6; }
+if eval \${$gl_fnmatch_cache_var+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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;
+ }
+
+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 };
+ int result = 0;
+ if (!n ("a*", "", 0))
+ return 1;
+ if (!y ("a*", "abc", 0))
+ return 1;
+ if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
+ return 1;
+ if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
+ return 2;
+ if (!y ("a\\\\bc", "abc", 0))
+ return 3;
+ if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
+ return 3;
+ if (!y ("*x", ".x", 0))
+ return 4;
+ if (!n ("*x", ".x", FNM_PERIOD))
+ return 4;
+ if (!y (Apat, "\\\\", 0))
+ return 5;
+ if (!y (Apat, "A", 0))
+ return 5;
+ if (!y (apat, "\\\\", 0))
+ return 5;
+ if (!y (apat, "a", 0))
+ return 5;
+ if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, a01, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
+ return 5;
+ $gl_fnmatch_gnu_start
+ if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
+ result |= 8;
+ if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
+ result |= 16;
+ if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
+ result |= 32;
+ if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ $gl_fnmatch_gnu_end
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ eval "$gl_fnmatch_cache_var=yes"
+else
+ eval "$gl_fnmatch_cache_var=no"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+eval ac_res=\$$gl_fnmatch_cache_var
+ { $as_echo "$as_me:${as_lineno-$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
+ fi
+
+ if test -n "$FNMATCH_H"; then
+ GL_GENERATE_FNMATCH_H_TRUE=
+ GL_GENERATE_FNMATCH_H_FALSE='#'
+else
+ GL_GENERATE_FNMATCH_H_TRUE='#'
+ GL_GENERATE_FNMATCH_H_FALSE=
+fi
+
+
+if test -n "$FNMATCH_H"; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
+_ACEOF
+
+
+ ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
+
+
+
+
+fi
+
+
+
+
+
+if test -n "$FNMATCH_H"; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
+_ACEOF
+
+
+ ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
+
+
+
+
+fi
+
+
+
+ fp_headers='
+# include <stdio.h>
+# if HAVE_STDIO_EXT_H
+# include <stdio_ext.h>
+# endif
+'
+ ac_fn_c_check_decl "$LINENO" "__fpending" "ac_cv_have_decl___fpending" "$fp_headers
+"
+if test "x$ac_cv_have_decl___fpending" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL___FPENDING $ac_have_decl
+_ACEOF
+
+
+if test $ac_cv_func___fpending = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fpending.$ac_objext"
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_pending_output_n_bytes+:} false; then :
+ $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' \
+ \
+ '# Minix' \
+ 'fp->_ptr - fp->_buf' \
+ \
+ '# 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *fp = stdin; (void) ($ac_expr);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ fp_done=yes
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$fp_done" = yes && break
+ done
+
+ ac_cv_sys_pending_output_n_bytes=$ac_expr
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+_ACEOF
+
+
+fi
+
+
+
+ if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+ REPLACE_FSEEK=1
+ fi
+
+if test $REPLACE_FSEEK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fseek.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FSEEK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FSEEK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5
+$as_echo_n "checking for fseeko... " >&6; }
+if ${gl_cv_func_fseeko+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+int
+main ()
+{
+fseeko (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_func_fseeko=yes
+else
+ gl_cv_func_fseeko=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5
+$as_echo "$gl_cv_func_fseeko" >&6; }
+
+
+ if test $ac_cv_have_decl_fseeko = no; then
+ HAVE_DECL_FSEEKO=0
+ fi
+
+ if test $gl_cv_func_fseeko = no; then
+ HAVE_FSEEKO=0
+ else
+ if test $gl_cv_var_stdin_large_offset = no; then
+ REPLACE_FSEEKO=1
+ fi
+
+ fi
+
+if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fseeko.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FSEEKO=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FSEEKO 1" >>confdefs.h
+
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_FSTAT=1
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0 \
+ && test "$gl_cv_func_open_directory_works" != yes; then
+ REPLACE_FSTAT=1
+ fi
+
+
+if test $REPLACE_FSTAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fstat.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_FSTAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FSTAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_fstatat = no; then
+ HAVE_FSTATAT=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fstatat (..., 0) works" >&5
+$as_echo_n "checking whether fstatat (..., 0) works... " >&6; }
+if ${gl_cv_func_fstatat_zero_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ aix*) gl_cv_func_fstatat_zero_flag="guessing no";;
+ *) gl_cv_func_fstatat_zero_flag="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ int
+ main (void)
+ {
+ struct stat a;
+ return fstatat (AT_FDCWD, ".", &a, 0) != 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_fstatat_zero_flag=yes
+else
+ gl_cv_func_fstatat_zero_flag=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fstatat_zero_flag" >&5
+$as_echo "$gl_cv_func_fstatat_zero_flag" >&6; }
+
+ case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ *yes+yes) ;;
+ *) REPLACE_FSTATAT=1
+ case $gl_cv_func_fstatat_zero_flag in
+ *yes)
+
+$as_echo "@%:@define HAVE_WORKING_FSTATAT_ZERO_FLAG 1" >>confdefs.h
+
+ ;;
+ esac
+ ;;
+ esac
+ fi
+
+if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fstatat.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_FSTATAT 1
+_ACEOF
+
+
+
+
+
+
+ GNULIB_FSTATAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FSTATAT 1" >>confdefs.h
+
+
+
+
+
+
+
+ if test $ac_cv_func_futimens = no; then
+ HAVE_FUTIMENS=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether futimens works" >&5
+$as_echo_n "checking whether futimens works... " >&6; }
+if ${gl_cv_func_futimens_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_futimens_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <errno.h>
+
+int
+main ()
+{
+struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+ int fd = creat ("conftest.file", 0600);
+ struct stat st;
+ if (fd < 0) return 1;
+ errno = 0;
+ if (futimens (AT_FDCWD, NULL) == 0) return 2;
+ if (errno != EBADF) return 3;
+ if (futimens (fd, ts)) return 4;
+ sleep (1);
+ ts[0].tv_nsec = UTIME_NOW;
+ ts[1].tv_nsec = UTIME_OMIT;
+ if (futimens (fd, ts)) return 5;
+ if (fstat (fd, &st)) return 6;
+ if (st.st_ctime < st.st_atime) return 7;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __linux__
+/* The Linux kernel added futimens in 2.6.22, but has bugs with UTIME_OMIT
+ in several file systems as recently as 2.6.32. Always replace futimens
+ to support older kernels. */
+choke me
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_futimens_works=yes
+else
+ gl_cv_func_futimens_works="needs runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ gl_cv_func_futimens_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_futimens_works" >&5
+$as_echo "$gl_cv_func_futimens_works" >&6; }
+ if test "$gl_cv_func_futimens_works" != yes; then
+ REPLACE_FUTIMENS=1
+ fi
+ fi
+
+if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS futimens.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FUTIMENS=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FUTIMENS 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ gl_abort_bug=no
+ case "$host_os" in
+ mingw*)
+ gl_cv_func_getcwd_path_max=yes
+ ;;
+ *)
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd handles long file names properly" >&5
+$as_echo_n "checking whether getcwd handles long file names properly... " >&6; }
+if ${gl_cv_func_getcwd_path_max+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir3"
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ aix*) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+ *) gl_cv_func_getcwd_path_max=no;;
+ esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else
+# include <direct.h>
+#endif
+#include <string.h>
+#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+
+
+#ifndef AT_FDCWD
+# define AT_FDCWD 0
+#endif
+#ifdef ENAMETOOLONG
+# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG)
+#else
+# define is_ENAMETOOLONG(x) 0
+#endif
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir. */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* The length of this name must be 8. */
+#define DIR_NAME "confdir3"
+#define DIR_NAME_LEN 8
+#define DIR_NAME_SIZE (DIR_NAME_LEN + 1)
+
+/* The length of "../". */
+#define DOTDOTSLASH_LEN 3
+
+/* Leftover bytes in the buffer, to work around library or OS bugs. */
+#define BUF_SLOP 20
+
+int
+main ()
+{
+#ifndef PATH_MAX
+ /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
+ at least not on a local file system. And if we were to start worrying
+ about remote file systems, we'd have to enable the wrapper function
+ all of the time, just to be safe. That's not worth the cost. */
+ exit (0);
+#elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
+ - DIR_NAME_SIZE - BUF_SLOP) \
+ <= PATH_MAX)
+ /* FIXME: Assuming there's a system for which this is true,
+ this should be done in a compile test. */
+ exit (0);
+#else
+ char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1)
+ + DIR_NAME_SIZE + BUF_SLOP];
+ char *cwd = getcwd (buf, PATH_MAX);
+ size_t initial_cwd_len;
+ size_t cwd_len;
+ int fail = 0;
+ size_t n_chdirs = 0;
+
+ if (cwd == NULL)
+ exit (10);
+
+ cwd_len = initial_cwd_len = strlen (cwd);
+
+ while (1)
+ {
+ size_t dotdot_max = PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN);
+ char *c = NULL;
+
+ 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. */
+ if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
+ {
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ fail = 20;
+ break;
+ }
+
+ if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE)
+ {
+ c = getcwd (buf, PATH_MAX);
+ if (!c && errno == ENOENT)
+ {
+ fail = 11;
+ break;
+ }
+ if (c)
+ {
+ fail = 31;
+ break;
+ }
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ {
+ fail = 21;
+ 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 = 22;
+ break;
+ }
+ if (AT_FDCWD || errno == ERANGE || errno == ENOENT)
+ {
+ fail = 12;
+ break;
+ }
+ }
+ }
+
+ if (c && strlen (c) != cwd_len)
+ {
+ fail = 23;
+ break;
+ }
+ ++n_chdirs;
+ }
+
+ /* Leaving behind such a deep directory is not polite.
+ So clean up here, right away, even though the driving
+ shell script would also clean up. */
+ {
+ size_t i;
+
+ /* Try rmdir first, in case the chdir failed. */
+ rmdir (DIR_NAME);
+ for (i = 0; i <= n_chdirs; i++)
+ {
+ if (chdir ("..") < 0)
+ break;
+ if (rmdir (DIR_NAME) != 0)
+ break;
+ }
+ }
+
+ exit (fail);
+#endif
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getcwd_path_max=yes
+else
+ case $? in
+ 10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
+ 31) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+ *) gl_cv_func_getcwd_path_max=no;;
+ esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_path_max" >&5
+$as_echo "$gl_cv_func_getcwd_path_max" >&6; }
+
+ case "$gl_cv_func_getcwd_null" in
+ *yes)
+
+
+
+
+ for ac_func in getpagesize
+do :
+ ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_GETPAGESIZE 1
+_ACEOF
+
+fi
+done
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_getcwd_abort_bug+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Remove any remnants of a previous test.
+ rm -rf confdir-14B---
+ # Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir-14B---"
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_getcwd_abort_bug=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <direct.h>
+#endif
+#include <string.h>
+#include <sys/stat.h>
+
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir. */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* FIXME: skip the run-test altogether on systems without getpagesize. */
+#if ! HAVE_GETPAGESIZE
+# define getpagesize() 0
+#endif
+
+/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than
+ the 16kB pagesize on ia64 linux. Those conditions make the code below
+ trigger a bug in glibc's getcwd implementation before 2.4.90-10. */
+#define TARGET_LEN (5 * 1024)
+
+int
+main ()
+{
+ char const *dir_name = "confdir-14B---";
+ char *cwd;
+ size_t initial_cwd_len;
+ int fail = 0;
+ size_t desired_depth;
+ size_t d;
+
+ /* The bug is triggered when PATH_MAX < getpagesize (), so skip
+ this relatively expensive and invasive test if that's not true. */
+ if (getpagesize () <= PATH_MAX)
+ return 0;
+
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ return 2;
+
+ initial_cwd_len = strlen (cwd);
+ free (cwd);
+ desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
+ / (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;
+ }
+ }
+
+ /* If libc has the bug in question, this invocation of getcwd
+ results in a failed assertion. */
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ fail = 4; /* getcwd failed: it refuses to return a string longer
+ than PATH_MAX. */
+ free (cwd);
+
+ /* Call rmdir first, in case the above chdir failed. */
+ rmdir (dir_name);
+ while (0 < d--)
+ {
+ if (chdir ("..") < 0)
+ {
+ fail = 5;
+ break;
+ }
+ rmdir (dir_name);
+ }
+
+ return fail;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getcwd_abort_bug=no
+else
+ ret=$?
+ if test $ret -ge 128 || test $ret = 4; then
+ gl_cv_func_getcwd_abort_bug=yes
+ else
+ gl_cv_func_getcwd_abort_bug=no
+ fi
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_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
+
+ ;;
+ esac
+ ;;
+ esac
+ case "$gl_cv_func_getcwd_path_max" in
+ "no, it has the AIX bug") ;;
+ *)
+
+$as_echo "@%:@define HAVE_MINIMALLY_WORKING_GETCWD 1" >>confdefs.h
+
+ ;;
+ esac
+ case "$gl_cv_func_getcwd_path_max" in
+ "no, but it is partly working")
+
+$as_echo "@%:@define HAVE_PARTLY_WORKING_GETCWD 1" >>confdefs.h
+
+ ;;
+ esac
+
+ if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \
+ || test $gl_cv_func_getcwd_posix_signature != yes \
+ || test "$gl_cv_func_getcwd_path_max" != yes \
+ || test $gl_abort_bug = yes; then
+ REPLACE_GETCWD=1
+ fi
+
+if test $REPLACE_GETCWD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getcwd.$ac_objext"
+
+
+
+
+ :
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_GETCWD 1
+_ACEOF
+
+
+
+
+
+
+
+ GNULIB_GETCWD=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETCWD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in
+ *yes,yes) ;;
+ *)
+ REPLACE_GETCWD=1
+ ;;
+ esac
+
+if test $REPLACE_GETCWD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getcwd-lgpl.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_GETCWD=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETCWD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_getdelim = yes; then
+ HAVE_GETDELIM=1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getdelim function" >&5
+$as_echo_n "checking for working getdelim function... " >&6; }
+if ${gl_cv_func_working_getdelim+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+#endif
+
+_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*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 2;
+ }
+ {
+ /* 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 3;
+ }
+ return 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_getdelim=yes
+else
+ gl_cv_func_working_getdelim=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5
+$as_echo "$gl_cv_func_working_getdelim" >&6; }
+ if test $gl_cv_func_working_getdelim = no; then
+ REPLACE_GETDELIM=1
+ fi
+ else
+ HAVE_GETDELIM=0
+ fi
+
+ if test $ac_cv_have_decl_getdelim = no; then
+ HAVE_DECL_GETDELIM=0
+ fi
+
+if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext"
+
+
+ for ac_func in flockfile funlockfile
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
+_ACEOF
+
+
+fi
+
+
+
+
+
+ GNULIB_GETDELIM=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETDELIM 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_getdtablesize != yes; then
+ HAVE_GETDTABLESIZE=0
+ fi
+
+if test $HAVE_GETDTABLESIZE = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getdtablesize.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_GETDTABLESIZE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+ gl_getline_needs_run_time_check=no
+ ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline"
+if test "x$ac_cv_func_getline" = xyes; 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getline function" >&5
+$as_echo_n "checking for working getline function... " >&6; }
+if ${am_cv_func_working_getline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Lucky GNU user" >/dev/null 2>&1; then :
+ am_cv_func_working_getline=yes
+else
+ am_cv_func_working_getline=no
+fi
+rm -f conftest*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 = getline (&line, &siz, in);
+ if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
+ return 2;
+ }
+ {
+ /* 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 3;
+ }
+ return 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ am_cv_func_working_getline=yes
+else
+ am_cv_func_working_getline=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5
+$as_echo "$am_cv_func_working_getline" >&6; }
+ fi
+
+ if test $ac_cv_have_decl_getline = no; then
+ HAVE_DECL_GETLINE=0
+ fi
+
+ if test $am_cv_func_working_getline = no; then
+ REPLACE_GETLINE=1
+ fi
+
+if test $REPLACE_GETLINE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getline.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_GETLINE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETLINE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+if test $REPLACE_GETOPT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
+
+
+
+
+ GNULIB_GL_UNISTD_H_GETOPT=1
+fi
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETOPT_GNU 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test -n "$gl_replace_getopt"; then :
+
+fi
+
+ REPLACE_GETOPT=1
+
+ if test $REPLACE_GETOPT = 1; then
+
+ GETOPT_H=getopt.h
+
+$as_echo "@%:@define __GETOPT_PREFIX rpl_" >>confdefs.h
+
+
+
+ fi
+
+if test $REPLACE_GETOPT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
+
+
+
+
+ GNULIB_GL_UNISTD_H_GETOPT=1
+fi
+
+
+
+
+ for ac_func in getpagesize
+do :
+ ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_GETPAGESIZE 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_getpagesize = no; then
+ HAVE_GETPAGESIZE=0
+ for ac_header in OS.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "OS.h" "ac_cv_header_OS_h" "$ac_includes_default"
+if test "x$ac_cv_header_OS_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_OS_H 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_OS_h = yes; then
+ HAVE_OS_H=1
+ fi
+ for ac_header in sys/param.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_param_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_PARAM_H 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_sys_param_h = yes; then
+ HAVE_SYS_PARAM_H=1
+ fi
+ fi
+ case "$host_os" in
+ mingw*)
+ REPLACE_GETPAGESIZE=1
+ ;;
+ esac
+ ac_fn_c_check_decl "$LINENO" "getpagesize" "ac_cv_have_decl_getpagesize" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getpagesize" = xyes; then :
+
+else
+ HAVE_DECL_GETPAGESIZE=0
+fi
+
+
+if test $REPLACE_GETPAGESIZE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getpagesize.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_GETPAGESIZE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gl_gettimeofday_timezone=void
+ if test $ac_cv_func_gettimeofday != yes; then
+ HAVE_GETTIMEOFDAY=0
+ else
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday clobbers localtime buffer" >&5
+$as_echo_n "checking whether gettimeofday clobbers localtime buffer... " >&6; }
+if ${gl_cv_func_gettimeofday_clobber+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_gettimeofday_clobber=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.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;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_gettimeofday_clobber=no
+else
+ gl_cv_func_gettimeofday_clobber=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gettimeofday_clobber" >&5
+$as_echo "$gl_cv_func_gettimeofday_clobber" >&6; }
+
+ if test $gl_cv_func_gettimeofday_clobber = yes; then
+ REPLACE_GETTIMEOFDAY=1
+
+
+$as_echo "@%:@define gmtime rpl_gmtime" >>confdefs.h
+
+
+$as_echo "@%:@define localtime rpl_localtime" >>confdefs.h
+
+
+
+$as_echo "@%:@define GETTIMEOFDAY_CLOBBERS_LOCALTIME 1" >>confdefs.h
+
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettimeofday with POSIX signature" >&5
+$as_echo_n "checking for gettimeofday with POSIX signature... " >&6; }
+if ${gl_cv_func_gettimeofday_posix_signature+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_gettimeofday_posix_signature=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/time.h>
+int gettimeofday (struct timeval *restrict, struct timezone *restrict);
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_gettimeofday_posix_signature=almost
+else
+ gl_cv_func_gettimeofday_posix_signature=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+
+ fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GETTIMEOFDAY_TIMEZONE $gl_gettimeofday_timezone
+_ACEOF
+
+
+if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext"
+
+
+ for ac_header in sys/timeb.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_timeb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_TIMEB_H 1
+_ACEOF
+
+fi
+
+done
+
+ for ac_func in _ftime
+do :
+ ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime"
+if test "x$ac_cv_func__ftime" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE__FTIME 1
+_ACEOF
+
+fi
+done
+
+
+fi
+
+
+
+
+
+ GNULIB_GETTIMEOFDAY=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h
+
+
+
+
+ :
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generally respects inline" >&5
+$as_echo_n "checking whether the compiler generally respects inline... " >&6; }
+if ${gl_cv_c_inline_effective+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test $ac_cv_c_inline = no; then
+ gl_cv_c_inline_effective=no
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifdef __NO_INLINE__
+ #error "inline is not effective"
+ #endif
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_c_inline_effective=yes
+else
+ gl_cv_c_inline_effective=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_INLINE 1" >>confdefs.h
+
+ fi
+
+
+
+
+ :
+
+ :
+ :
+ :
+ :
+
+
+
+
+
+
+ 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdint.h>
+ extern intptr_t foo;
+ extern $gltype1 foo;
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ PRIPTR_PREFIX='"'$glpfx'"'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test -n "$PRIPTR_PREFIX" && break
+ done
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT32_MAX < INTMAX_MAX" >&5
+$as_echo_n "checking whether INT32_MAX < INTMAX_MAX... " >&6; }
+if ${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes
+else
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking whether INT64_MAX == LONG_MAX" >&5
+$as_echo_n "checking whether INT64_MAX == LONG_MAX... " >&6; }
+if ${gl_cv_test_INT64_MAX_EQ_LONG_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes
+else
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking whether UINT32_MAX < UINTMAX_MAX" >&5
+$as_echo_n "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; }
+if ${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes
+else
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking whether UINT64_MAX == ULONG_MAX" >&5
+$as_echo_n "checking whether UINT64_MAX == ULONG_MAX... " >&6; }
+if ${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes
+else
+ 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:${as_lineno-$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
+
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "iswblank" "ac_cv_have_decl_iswblank" "
+/* 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 <wctype.h>
+
+"
+if test "x$ac_cv_have_decl_iswblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_ISWBLANK $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_func_iswblank = no; then
+ HAVE_ISWBLANK=0
+ if test $ac_cv_have_decl_iswblank = yes; then
+ REPLACE_ISWBLANK=1
+ fi
+ fi
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+ else
+ if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+ :
+ fi
+ fi
+
+
+if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+else
+ if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS iswblank.$ac_objext"
+
+ fi
+fi
+
+
+
+
+
+ GNULIB_ISWBLANK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_ISWBLANK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_langinfo_h='<'langinfo.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <langinfo.h>" >&5
+$as_echo_n "checking absolute name of <langinfo.h>... " >&6; }
+if ${gl_cv_next_langinfo_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_langinfo_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'langinfo.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_langinfo_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_langinfo_h='<'langinfo.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 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
+
+
+
+
+
+ HAVE_LANGINFO_CODESET=0
+ HAVE_LANGINFO_T_FMT_AMPM=0
+ HAVE_LANGINFO_ERA=0
+ HAVE_LANGINFO_YESEXPR=0
+
+ if test $ac_cv_header_langinfo_h = yes; then
+ HAVE_LANGINFO_H=1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5
+$as_echo_n "checking whether langinfo.h defines CODESET... " >&6; }
+if ${gl_cv_header_langinfo_codeset+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = CODESET;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_codeset=yes
+else
+ gl_cv_header_langinfo_codeset=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5
+$as_echo_n "checking whether langinfo.h defines T_FMT_AMPM... " >&6; }
+if ${gl_cv_header_langinfo_t_fmt_ampm+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = T_FMT_AMPM;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_t_fmt_ampm=yes
+else
+ gl_cv_header_langinfo_t_fmt_ampm=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5
+$as_echo "$gl_cv_header_langinfo_t_fmt_ampm" >&6; }
+ if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
+ HAVE_LANGINFO_T_FMT_AMPM=1
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5
+$as_echo_n "checking whether langinfo.h defines ERA... " >&6; }
+if ${gl_cv_header_langinfo_era+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = ERA;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_era=yes
+else
+ gl_cv_header_langinfo_era=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5
+$as_echo_n "checking whether langinfo.h defines YESEXPR... " >&6; }
+if ${gl_cv_header_langinfo_yesexpr+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = YESEXPR;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_yesexpr=yes
+else
+ gl_cv_header_langinfo_yesexpr=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5
+$as_echo "$gl_cv_header_langinfo_yesexpr" >&6; }
+ if test $gl_cv_header_langinfo_yesexpr = yes; then
+ HAVE_LANGINFO_YESEXPR=1
+ fi
+ else
+ HAVE_LANGINFO_H=0
+ fi
+
+
+
+
+
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+ for ac_func in lchown
+do :
+ ac_fn_c_check_func "$LINENO" "lchown" "ac_cv_func_lchown"
+if test "x$ac_cv_func_lchown" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LCHOWN 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_lchown = no; then
+ HAVE_LCHOWN=0
+ elif test "$gl_cv_func_chown_slash_works" != yes \
+ || test "$gl_cv_func_chown_ctime_works" != yes; then
+ REPLACE_LCHOWN=1
+ fi
+
+if test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS lchown.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LCHOWN=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_LCHOWN 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_link = no; then
+ HAVE_LINK=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link obeys POSIX" >&5
+$as_echo_n "checking whether link obeys POSIX... " >&6; }
+if ${gl_cv_func_link_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ touch conftest.a
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.a conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_link_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ if (!link ("conftest.a", "conftest.b/"))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!link ("conftest.lnk/", "conftest.b"))
+ result |= 2;
+ if (rename ("conftest.a", "conftest.b"))
+ result |= 4;
+ if (!link ("conftest.b", "conftest.lnk"))
+ result |= 8;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_link_works=yes
+else
+ gl_cv_func_link_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.a conftest.b conftest.lnk
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_link_works" >&5
+$as_echo "$gl_cv_func_link_works" >&6; }
+ if test "$gl_cv_func_link_works" != yes; then
+ REPLACE_LINK=1
+ fi
+ fi
+
+if test $HAVE_LINK = 0 || test $REPLACE_LINK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS link.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LINK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_LINK 1" >>confdefs.h
+
+
+
+
+ gl_link_follows_symlinks=0 # assume GNU behavior
+ if test $ac_cv_func_readlink = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __xpg4" >&5
+$as_echo_n "checking for __xpg4... " >&6; }
+if ${gl_cv_have___xpg4+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+extern int __xpg4;
+int
+main ()
+{
+return __xpg4;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_have___xpg4=yes
+else
+ gl_cv_have___xpg4=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have___xpg4" >&5
+$as_echo "$gl_cv_have___xpg4" >&6; }
+ if test $gl_cv_have___xpg4 = yes; then
+ gl_link_follows_symlinks=-1
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link(2) dereferences a symlink" >&5
+$as_echo_n "checking whether link(2) dereferences a symlink... " >&6; }
+if ${gl_cv_func_link_follows_symlink+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ # Create a regular file.
+ echo > conftest.file
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_link_follows_symlink=unknown
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/stat.h>
+# include <unistd.h>
+# include <stdlib.h>
+
+# define SAME_INODE(Stat_buf_1, Stat_buf_2) \
+ ((Stat_buf_1).st_ino == (Stat_buf_2).st_ino \
+ && (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)
+
+ int
+ main ()
+ {
+ const char *file = "conftest.file";
+ const char *sym = "conftest.sym";
+ const char *hard = "conftest.hard";
+ struct stat sb_file, sb_hard;
+
+ /* Create a symlink to the regular file. */
+ if (symlink (file, sym))
+ return 2;
+
+ /* Create a hard link to that symlink. */
+ if (link (sym, hard))
+ return 3;
+
+ if (lstat (hard, &sb_hard))
+ return 4;
+ if (lstat (file, &sb_file))
+ return 5;
+
+ /* If the dev/inode of hard and file are the same, then
+ the link call followed the symlink. */
+ return SAME_INODE (sb_hard, sb_file) ? 1 : 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_link_follows_symlink=no
+else
+ gl_cv_func_link_follows_symlink=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file conftest.sym conftest.hard
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_link_follows_symlink" >&5
+$as_echo "$gl_cv_func_link_follows_symlink" >&6; }
+ case $gl_cv_func_link_follows_symlink in
+ yes) gl_link_follows_symlinks=1 ;;
+ no) ;; # already defaulted to 0
+ *) gl_link_follows_symlinks=-2 ;;
+ esac
+ fi
+ fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LINK_FOLLOWS_SYMLINKS $gl_link_follows_symlinks
+_ACEOF
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_linkat = no; then
+ HAVE_LINKAT=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linkat(,AT_SYMLINK_FOLLOW) works" >&5
+$as_echo_n "checking whether linkat(,AT_SYMLINK_FOLLOW) works... " >&6; }
+if ${gl_cv_func_linkat_follow+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f1 conftest.f2
+ touch conftest.f1
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <unistd.h>
+#ifdef __linux__
+/* Linux added linkat in 2.6.16, but did not add AT_SYMLINK_FOLLOW
+ until 2.6.18. Always replace linkat to support older kernels. */
+choke me
+#endif
+
+int
+main ()
+{
+return linkat (AT_FDCWD, "conftest.f1", AT_FDCWD, "conftest.f2",
+ AT_SYMLINK_FOLLOW);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_linkat_follow=yes
+else
+ gl_cv_func_linkat_follow="need runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ rm -rf conftest.f1 conftest.f2
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_linkat_follow" >&5
+$as_echo "$gl_cv_func_linkat_follow" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linkat handles trailing slash correctly" >&5
+$as_echo_n "checking whether linkat handles trailing slash correctly... " >&6; }
+if ${gl_cv_func_linkat_slash+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.a conftest.b conftest.c conftest.d
+ if test "$cross_compiling" = yes; then :
+ # Guess yes on glibc systems, no otherwise.
+ case "$host_os" in
+ *-gnu*) gl_cv_func_linkat_slash="guessing yes";;
+ *) gl_cv_func_linkat_slash="guessing no";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <stdio.h>
+
+int
+main ()
+{
+int result;
+ int fd;
+ /* Create a regular file. */
+ fd = open ("conftest.a", O_CREAT | O_EXCL | O_WRONLY, 0600);
+ if (fd < 0)
+ return 1;
+ if (write (fd, "hello", 5) < 5)
+ return 2;
+ if (close (fd) < 0)
+ return 3;
+ /* Test whether hard links are supported on the current
+ device. */
+ if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.b",
+ AT_SYMLINK_FOLLOW) < 0)
+ return 0;
+ result = 0;
+ /* Test whether a trailing "/" is treated like "/.". */
+ if (linkat (AT_FDCWD, "conftest.a/", AT_FDCWD, "conftest.c",
+ AT_SYMLINK_FOLLOW) == 0)
+ result |= 4;
+ if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.d/",
+ AT_SYMLINK_FOLLOW) == 0)
+ result |= 8;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_linkat_slash=yes
+else
+ gl_cv_func_linkat_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.a conftest.b conftest.c conftest.d
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_linkat_slash" >&5
+$as_echo "$gl_cv_func_linkat_slash" >&6; }
+ case "$gl_cv_func_linkat_slash" in
+ *yes) gl_linkat_slash_bug=0 ;;
+ *) gl_linkat_slash_bug=1 ;;
+ esac
+ if test "$gl_cv_func_linkat_follow" != yes \
+ || test $gl_linkat_slash_bug = 1; then
+ REPLACE_LINKAT=1
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LINKAT_TRAILING_SLASH_BUG $gl_linkat_slash_bug
+_ACEOF
+
+ fi
+ fi
+
+if test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS linkat.$ac_objext"
+
+fi
+if test $HAVE_LINKAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LINKAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_LINKAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lseek detects pipes" >&5
+$as_echo_n "checking whether lseek detects pipes... " >&6; }
+if ${gl_cv_func_lseek_pipe+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test $cross_compiling = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h> /* for off_t */
+#include <stdio.h> /* for SEEK_CUR */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <io.h>
+#endif
+
+int
+main ()
+{
+
+ /* Exit with success only if stdin is seekable. */
+ return lseek (0, (off_t)0, SEEK_CUR) < 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ 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
+else
+ gl_cv_func_lseek_pipe=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || defined __BEOS__
+/* mingw and BeOS mistakenly return 0 when trying to seek on pipes. */
+ Choke me.
+#endif
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_lseek_pipe=yes
+else
+ gl_cv_func_lseek_pipe=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_LSEEK=1
+
+$as_echo "@%:@define LSEEK_PIPE_BROKEN 1" >>confdefs.h
+
+ fi
+
+if test $REPLACE_LSEEK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS lseek.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LSEEK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_LSEEK 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_lstat = yes; then
+
+ if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then
+ REPLACE_LSTAT=1
+ fi
+ else
+ HAVE_LSTAT=0
+ fi
+
+if test $REPLACE_LSTAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS lstat.$ac_objext"
+
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_LSTAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_LSTAT 1" >>confdefs.h
+
+
+
+
+
+ for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
+$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
+if ${ac_cv_func_malloc_0_nonnull+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_malloc_0_nonnull=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *malloc ();
+#endif
+
+int
+main ()
+{
+return ! malloc (0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_malloc_0_nonnull=yes
+else
+ ac_cv_func_malloc_0_nonnull=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $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 :
+
+$as_echo "@%:@define HAVE_MALLOC_GNU 1" >>confdefs.h
+
+else
+ $as_echo "@%:@define HAVE_MALLOC_GNU 0" >>confdefs.h
+
+ REPLACE_MALLOC=1
+
+fi
+
+
+if test $REPLACE_MALLOC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_MALLOC_GNU 1
+_ACEOF
+
+
+
+
+
+ if test $gl_cv_func_malloc_posix = yes; then
+
+$as_echo "@%:@define HAVE_MALLOC_POSIX 1" >>confdefs.h
+
+ else
+ REPLACE_MALLOC=1
+ fi
+
+if test $REPLACE_MALLOC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MALLOC_POSIX=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_mbrtowc = no; then
+ HAVE_MBRTOWC=0
+ ac_fn_c_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_mbrtowc" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_MBRTOWC $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_mbrtowc = yes; then
+ REPLACE_MBRTOWC=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBRTOWC=1
+ else
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5
+$as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; }
+if ${gl_cv_func_mbrtowc_null_arg1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on Solaris.
+ solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
+ esac
+ if test $LOCALE_FR_UTF8 != none; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+
+ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ {
+ char input[] = "\303\237er";
+ mbstate_t state;
+ wchar_t wc;
+ size_t ret;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input, 5, &state);
+ if (ret != 2)
+ result |= 1;
+ if (!mbsinit (&state))
+ result |= 2;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ ret = mbrtowc (NULL, input, 5, &state);
+ if (ret != 2) /* Solaris 7 fails here: ret is -1. */
+ result |= 4;
+ if (!mbsinit (&state))
+ result |= 8;
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_null_arg1=yes
+else
+ gl_cv_func_mbrtowc_null_arg1=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5
+$as_echo "$gl_cv_func_mbrtowc_null_arg1" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5
+$as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; }
+if ${gl_cv_func_mbrtowc_null_arg2+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on OSF/1.
+ osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
+ esac
+ if test $LOCALE_FR_UTF8 != none; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_null_arg2=yes
+else
+ gl_cv_func_mbrtowc_null_arg2=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5
+$as_echo "$gl_cv_func_mbrtowc_null_arg2" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5
+$as_echo_n "checking whether mbrtowc has a correct return value... " >&6; }
+if ${gl_cv_func_mbrtowc_retval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on HP-UX, Solaris, native Windows.
+ hpux* | solaris* | mingw*) 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 \
+ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ int found_some_locale = 0;
+ /* 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)
+ result |= 1;
+ }
+ found_some_locale = 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)
+ result |= 2;
+ }
+ found_some_locale = 1;
+ }
+ /* This fails on native Windows. */
+ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
+ {
+ char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 4;
+ }
+ found_some_locale = 1;
+ }
+ if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
+ {
+ char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 8;
+ }
+ found_some_locale = 1;
+ }
+ if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
+ {
+ char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 16;
+ }
+ found_some_locale = 1;
+ }
+ return (found_some_locale ? result : 77);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_retval=yes
+else
+ if test $? != 77; then
+ gl_cv_func_mbrtowc_retval=no
+ fi
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5
+$as_echo "$gl_cv_func_mbrtowc_retval" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_mbrtowc_nul_retval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ /* 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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_nul_retval=yes
+else
+ gl_cv_func_mbrtowc_nul_retval=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5
+$as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; }
+
+ case "$gl_cv_func_mbrtowc_null_arg1" in
+ *yes) ;;
+ *)
+$as_echo "@%:@define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_null_arg2" in
+ *yes) ;;
+ *)
+$as_echo "@%:@define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_retval" in
+ *yes) ;;
+ *)
+$as_echo "@%:@define MBRTOWC_RETVAL_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_nul_retval" in
+ *yes) ;;
+ *)
+$as_echo "@%:@define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBRTOWC=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ GNULIB_MBSCASECMP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MBSCASECMP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_mbsinit = no; then
+ HAVE_MBSINIT=0
+ ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_mbsinit" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_MBSINIT $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_mbsinit = yes; then
+ REPLACE_MBSINIT=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBSINIT=1
+ else
+ case "$host_os" in
+ mingw*) REPLACE_MBSINIT=1 ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBSINIT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MBSINIT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_mbsrtowcs = no; then
+ HAVE_MBSRTOWCS=0
+ ac_fn_c_check_decl "$LINENO" "mbsrtowcs" "ac_cv_have_decl_mbsrtowcs" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_mbsrtowcs" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_MBSRTOWCS $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_mbsrtowcs = yes; then
+ REPLACE_MBSRTOWCS=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBSRTOWCS=1
+ else
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbsrtowcs works" >&5
+$as_echo_n "checking whether mbsrtowcs works... " >&6; }
+if ${gl_cv_func_mbsrtowcs_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on HP-UX, Solaris, mingw.
+ hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbsrtowcs_works="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 :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ /* Test whether the function supports a NULL destination argument.
+ This fails on native Windows. */
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ const char input[] = "\337er";
+ const char *src = input;
+ mbstate_t state;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbsrtowcs (NULL, &src, 1, &state) != 3
+ || src != input)
+ result |= 1;
+ }
+ /* 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)
+ result |= 2;
+ }
+ }
+ 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)
+ result |= 4;
+ }
+ }
+ 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)
+ result |= 8;
+ }
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbsrtowcs_works=yes
+else
+ gl_cv_func_mbsrtowcs_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbsrtowcs_works" >&5
+$as_echo "$gl_cv_func_mbsrtowcs_works" >&6; }
+
+ case "$gl_cv_func_mbsrtowcs_works" in
+ *yes) ;;
+ *) REPLACE_MBSRTOWCS=1 ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs-state.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBSRTOWCS=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MBSRTOWCS 1" >>confdefs.h
+
+
+
+
+
+
+ if false; then
+ REPLACE_MBTOWC=1
+ fi
+
+if test $REPLACE_MBTOWC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbtowc.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBTOWC=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MBTOWC 1" >>confdefs.h
+
+
+
+
+
+
+ :
+
+
+if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext"
+
+
+ for ac_header in bp-sym.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default"
+if test "x$ac_cv_header_bp_sym_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_BP_SYM_H 1
+_ACEOF
+
+fi
+
+done
+
+
+fi
+
+
+
+
+
+ GNULIB_MEMCHR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MEMCHR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ for ac_func in mempcpy
+do :
+ ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
+if test "x$ac_cv_func_mempcpy" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MEMPCPY 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_mempcpy = no; then
+ HAVE_MEMPCPY=0
+ fi
+
+if test $HAVE_MEMPCPY = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mempcpy.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MEMPCPY=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MEMPCPY 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_memrchr = no; then
+ HAVE_DECL_MEMRCHR=0
+ fi
+
+ for ac_func in memrchr
+do :
+ ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr"
+if test "x$ac_cv_func_memrchr" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MEMRCHR 1
+_ACEOF
+
+fi
+done
+
+
+if test $ac_cv_func_memrchr = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS memrchr.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_MEMRCHR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MEMRCHR 1" >>confdefs.h
+
+
+
+
+
+ for ac_func in mkdtemp
+do :
+ ac_fn_c_check_func "$LINENO" "mkdtemp" "ac_cv_func_mkdtemp"
+if test "x$ac_cv_func_mkdtemp" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MKDTEMP 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_mkdtemp = no; then
+ HAVE_MKDTEMP=0
+ fi
+
+if test $HAVE_MKDTEMP = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mkdtemp.$ac_objext"
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MKDTEMP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKDTEMP 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_mkfifo = no; then
+ HAVE_MKFIFO=0
+ else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkfifo rejects trailing slashes" >&5
+$as_echo_n "checking whether mkfifo rejects trailing slashes... " >&6; }
+if ${gl_cv_func_mkfifo_works+:} false; then :
+ $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
+ ln -s conftest.tmp conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_mkfifo_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+int result = 0;
+ if (!mkfifo ("conftest.tmp/", 0600))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!mkfifo ("conftest.lnk/", 0600))
+ result |= 2;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mkfifo_works=yes
+else
+ gl_cv_func_mkfifo_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.tmp conftest.lnk
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkfifo_works" >&5
+$as_echo "$gl_cv_func_mkfifo_works" >&6; }
+ if test "$gl_cv_func_mkfifo_works" != yes; then
+
+$as_echo "@%:@define MKFIFO_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_MKFIFO=1
+ fi
+ fi
+
+if test $HAVE_MKFIFO = 0 || test $REPLACE_MKFIFO = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mkfifo.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MKFIFO=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKFIFO 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mkfifoat = no; then
+ # No known system has mkfifoat but not mknodat
+ HAVE_MKFIFOAT=0
+ HAVE_MKNODAT=0
+ fi
+
+if test $HAVE_MKFIFOAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mkfifoat.$ac_objext"
+
+fi
+if test $HAVE_MKNODAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mknodat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MKFIFOAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKFIFOAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ GNULIB_MKNODAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKNODAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mknod = no; then
+ HAVE_MKNOD=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mknod can create fifo without root privileges" >&5
+$as_echo_n "checking whether mknod can create fifo without root privileges... " >&6; }
+if ${gl_cv_func_mknod_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_mknod_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+ #include <unistd.h>
+
+int
+main ()
+{
+/* Indeterminate for super-user, assume no. Why are you running
+ configure as root, anyway? */
+ if (!geteuid ()) return 99;
+ if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mknod_works=yes
+else
+ if test $? = 99 && test x"$FORCE_UNSAFE_CONFIGURE" = x; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ gl_cv_func_mknod_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.fifo
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mknod_works" >&5
+$as_echo "$gl_cv_func_mknod_works" >&6; }
+ if test "$gl_cv_func_mknod_works" != yes; then
+
+$as_echo "@%:@define MKNOD_FIFO_BUG 1" >>confdefs.h
+
+ fi
+ if test $REPLACE_MKFIFO = 1 || test "$gl_cv_func_mknod_works" != yes; then
+ REPLACE_MKNOD=1
+ fi
+ fi
+
+if test $HAVE_MKNOD = 0 || test $REPLACE_MKNOD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mknod.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MKNOD=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKNOD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $APPLE_UNIVERSAL_BUILD = 1; then
+ # A universal build on Apple MacOS X platforms.
+ # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
+ # But we need a configuration result that is valid in both modes.
+ gl_cv_func_working_mktime=no
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5
+$as_echo_n "checking for working mktime... " >&6; }
+if ${gl_cv_func_working_mktime+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_working_mktime=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Test program from Paul Eggert and Tony Leneis. */
+#include <limits.h>
+#include <stdlib.h>
+#include <time.h>
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#ifndef HAVE_ALARM
+# define alarm(X) /* empty */
+#endif
+
+/* Work around redefinition to rpl_putenv by other config tests. */
+#undef putenv
+
+static time_t time_t_max;
+static time_t time_t_min;
+
+/* Values we'll use to set the TZ environment variable. */
+static char *tz_strings[] = {
+ (char *) 0, "TZ=GMT0", "TZ=JST-9",
+ "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
+};
+#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
+
+/* Return 0 if mktime fails to convert a date in the spring-forward gap.
+ Based on a problem report from Andreas Jaeger. */
+static int
+spring_forward_gap ()
+{
+ /* glibc (up to about 1998-10-07) failed this test. */
+ struct tm tm;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ tm.tm_year = 98;
+ tm.tm_mon = 3;
+ tm.tm_mday = 5;
+ tm.tm_hour = 2;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+ return mktime (&tm) != (time_t) -1;
+}
+
+static int
+mktime_test1 (time_t now)
+{
+ struct tm *lt;
+ return ! (lt = localtime (&now)) || mktime (lt) == now;
+}
+
+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)));
+}
+
+static int
+irix_6_4_bug ()
+{
+ /* Based on code from Ariel Faigon. */
+ struct tm tm;
+ tm.tm_year = 96;
+ tm.tm_mon = 3;
+ tm.tm_mday = 0;
+ tm.tm_hour = 0;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+ mktime (&tm);
+ return tm.tm_mon == 2 && tm.tm_mday == 31;
+}
+
+static int
+bigtime_test (int j)
+{
+ struct tm tm;
+ time_t now;
+ tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
+ now = mktime (&tm);
+ if (now != (time_t) -1)
+ {
+ 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;
+ }
+ return 1;
+}
+
+static int
+year_2050_test ()
+{
+ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
+ ignoring leap seconds. */
+ unsigned long int answer = 2527315200UL;
+
+ struct tm tm;
+ time_t t;
+ tm.tm_year = 2050 - 1900;
+ tm.tm_mon = 2 - 1;
+ tm.tm_mday = 1;
+ tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ t = mktime (&tm);
+
+ /* Check that the result is either a failure, or close enough
+ 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));
+}
+
+int
+main ()
+{
+ int result = 0;
+ time_t t, delta;
+ int i, j;
+ int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1;
+ int time_t_signed = ! ((time_t) 0 < (time_t) -1);
+
+ /* This test makes some buggy mktime implementations loop.
+ Give up after 60 seconds; a mktime slower than that
+ isn't worth using anyway. */
+ alarm (60);
+
+ time_t_max = (! time_t_signed
+ ? (time_t) -1
+ : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
+ * 2 + 1));
+ time_t_min = (! time_t_signed
+ ? (time_t) 0
+ : time_t_signed_magnitude
+ ? ~ (time_t) 0
+ : ~ time_t_max);
+
+ delta = time_t_max / 997; /* a suitable prime number */
+ for (i = 0; i < N_STRINGS; i++)
+ {
+ if (tz_strings[i])
+ putenv (tz_strings[i]);
+
+ for (t = 0; t <= time_t_max - delta; t += delta)
+ if (! mktime_test (t))
+ result |= 1;
+ if (! (mktime_test ((time_t) 1)
+ && mktime_test ((time_t) (60 * 60))
+ && mktime_test ((time_t) (60 * 60 * 24))))
+ result |= 2;
+
+ for (j = 1; ; j <<= 1)
+ if (! bigtime_test (j))
+ result |= 4;
+ else if (INT_MAX / 2 < j)
+ break;
+ if (! bigtime_test (INT_MAX))
+ result |= 8;
+ }
+ if (! irix_6_4_bug ())
+ result |= 16;
+ if (! spring_forward_gap ())
+ result |= 32;
+ if (! year_2050_test ())
+ result |= 64;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_mktime=yes
+else
+ gl_cv_func_working_mktime=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mktime" >&5
+$as_echo "$gl_cv_func_working_mktime" >&6; }
+
+ if test $gl_cv_func_working_mktime = no; then
+ REPLACE_MKTIME=1
+ else
+ REPLACE_MKTIME=0
+ fi
+
+if test $REPLACE_MKTIME = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mktime.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_MKTIME=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKTIME 1" >>confdefs.h
+
+
+
+
+ :
+
+
+
+ if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+
+$as_echo "@%:@define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
+
+ else
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+ fi
+
+
+if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext"
+
+fi
+
+
+
+if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext"
+
+fi
+
+
+
+
+
+ if test $ac_cv_func_nl_langinfo = yes; then
+ # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5
+$as_echo_n "checking whether YESEXPR works... " >&6; }
+if ${gl_cv_func_nl_langinfo_yesexpr_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess no on irix systems.
+ irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";;
+ # Guess yes elsewhere.
+ *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+
+int
+main ()
+{
+return !*nl_langinfo(YESEXPR);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_nl_langinfo_yesexpr_works=yes
+else
+ gl_cv_func_nl_langinfo_yesexpr_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5
+$as_echo "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; }
+ case $gl_cv_func_nl_langinfo_yesexpr_works in
+ *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;;
+ *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;;
+ esac
+
+cat >>confdefs.h <<_ACEOF
+@%:@define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS
+_ACEOF
+
+ if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \
+ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
+ :
+ else
+ REPLACE_NL_LANGINFO=1
+
+$as_echo "@%:@define REPLACE_NL_LANGINFO 1" >>confdefs.h
+
+ fi
+ else
+ HAVE_NL_LANGINFO=0
+ fi
+
+if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_NL_LANGINFO=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for obstacks" >&5
+$as_echo_n "checking for obstacks... " >&6; }
+if ${ac_cv_func_obstack+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ @%:@include "obstack.h"
+int
+main ()
+{
+struct obstack mem;
+ @%:@define obstack_chunk_alloc malloc
+ @%:@define obstack_chunk_free free
+ obstack_init (&mem);
+ obstack_free (&mem, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_func_obstack=yes
+else
+ ac_cv_func_obstack=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_obstack" >&5
+$as_echo "$ac_cv_func_obstack" >&6; }
+if test $ac_cv_func_obstack = yes; then
+
+$as_echo "@%:@define HAVE_OBSTACK 1" >>confdefs.h
+
+else
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS obstack.$ac_objext"
+
+fi
+
+
+
+ case "$host_os" in
+ mingw* | pw*)
+ REPLACE_OPEN=1
+ ;;
+ *)
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5
+$as_echo_n "checking whether open recognizes a trailing slash... " >&6; }
+if ${gl_cv_func_open_slash+:} false; then :
+ $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* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
+ gl_cv_func_open_slash="guessing no" ;;
+ *)
+ gl_cv_func_open_slash="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+int main ()
+{
+ int result = 0;
+#if HAVE_LSTAT
+ if (open ("conftest.lnk/", O_RDONLY) != -1)
+ result |= 1;
+#endif
+ if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
+ result |= 2;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_open_slash=yes
+else
+ gl_cv_func_open_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.sl conftest.tmp conftest.lnk
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5
+$as_echo "$gl_cv_func_open_slash" >&6; }
+ case "$gl_cv_func_open_slash" in
+ *no)
+
+$as_echo "@%:@define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_OPEN=1
+ ;;
+ esac
+ ;;
+ esac
+
+ if test $REPLACE_OPEN = 0; then
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_OPEN=1
+ fi
+ fi
+
+
+
+if test $REPLACE_OPEN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext"
+
+
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_OPEN=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_OPEN 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ yes+yes)
+ ;;
+ yes+*)
+ # Solaris 9 has *at functions, but uniformly mishandles trailing
+ # slash in all of them.
+ REPLACE_OPENAT=1
+ ;;
+ *)
+ HAVE_OPENAT=0
+ ;;
+ esac
+
+if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS openat.$ac_objext"
+
+
+
+
+ :
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_OPENAT 1
+_ACEOF
+
+
+
+
+
+
+ GNULIB_OPENAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_OPENAT 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in opendir
+do :
+ ac_fn_c_check_func "$LINENO" "opendir" "ac_cv_func_opendir"
+if test "x$ac_cv_func_opendir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_OPENDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_opendir = no; then
+ HAVE_OPENDIR=0
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_OPENDIR = 1; then
+ REPLACE_OPENDIR=1
+ fi
+ fi
+
+
+if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS opendir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_OPENDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_OPENDIR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h>
+#include <$ac_cv_struct_tm>
+
+"
+if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_TM_TM_ZONE 1
+_ACEOF
+
+
+fi
+
+if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
+
+$as_echo "@%:@define HAVE_TM_ZONE 1" >>confdefs.h
+
+else
+ ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h>
+"
+if test "x$ac_cv_have_decl_tzname" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_TZNAME $ac_have_decl
+_ACEOF
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
+$as_echo_n "checking for tzname... " >&6; }
+if ${ac_cv_var_tzname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+#if !HAVE_DECL_TZNAME
+extern char *tzname[];
+#endif
+
+int
+main ()
+{
+return tzname[0][0];
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_var_tzname=yes
+else
+ ac_cv_var_tzname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
+$as_echo "$ac_cv_var_tzname" >&6; }
+ if test $ac_cv_var_tzname = yes; then
+
+$as_echo "@%:@define HAVE_TZNAME 1" >>confdefs.h
+
+ fi
+fi
+
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) ((t) 0 < (t) -1 \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 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
+if ac_fn_c_try_compile "$LINENO"; then :
+
+$as_echo "@%:@define TIME_T_FITS_IN_LONG_INT 1" >>confdefs.h
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+
+
+
+
+ for ac_func in getppriv
+do :
+ ac_fn_c_check_func "$LINENO" "getppriv" "ac_cv_func_getppriv"
+if test "x$ac_cv_func_getppriv" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_GETPPRIV 1
+_ACEOF
+
+fi
+done
+
+
+
+ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl
+_ACEOF
+
+
+ :
+
+
+ :
+
+
+
+
+
+ for ac_func in raise
+do :
+ ac_fn_c_check_func "$LINENO" "raise" "ac_cv_func_raise"
+if test "x$ac_cv_func_raise" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_RAISE 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_raise = no; then
+ HAVE_RAISE=0
+ else
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_RAISE=1
+ fi
+
+ fi
+
+if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS raise.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_RAISE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RAISE 1" >>confdefs.h
+
+
+
+
+
+
+
+ for ac_func in rawmemchr
+do :
+ ac_fn_c_check_func "$LINENO" "rawmemchr" "ac_cv_func_rawmemchr"
+if test "x$ac_cv_func_rawmemchr" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_RAWMEMCHR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_rawmemchr = no; then
+ HAVE_RAWMEMCHR=0
+ fi
+
+if test $HAVE_RAWMEMCHR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rawmemchr.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_RAWMEMCHR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RAWMEMCHR 1" >>confdefs.h
+
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_READ=1
+ fi
+
+
+if test $REPLACE_READ = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS read.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_READ=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_READ 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in readdir
+do :
+ ac_fn_c_check_func "$LINENO" "readdir" "ac_cv_func_readdir"
+if test "x$ac_cv_func_readdir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_READDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_readdir = no; then
+ HAVE_READDIR=0
+ fi
+
+if test $HAVE_READDIR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS readdir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_READDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_READDIR 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_readlink = no; then
+ HAVE_READLINK=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink signature is correct" >&5
+$as_echo_n "checking whether readlink signature is correct... " >&6; }
+if ${gl_cv_decl_readlink_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_decl_readlink_works=yes
+else
+ gl_cv_decl_readlink_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_readlink_works" >&5
+$as_echo "$gl_cv_decl_readlink_works" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink handles trailing slash correctly" >&5
+$as_echo_n "checking whether readlink handles trailing slash correctly... " >&6; }
+if ${gl_cv_func_readlink_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+int
+main ()
+{
+char buf[20];
+ return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_readlink_works=yes
+else
+ gl_cv_func_readlink_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.link conftest.lnk2
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define READLINK_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_READLINK=1
+ elif test "$gl_cv_decl_readlink_works" != yes; then
+ REPLACE_READLINK=1
+ fi
+ fi
+
+if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS readlink.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_READLINK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_READLINK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_readlinkat = no; then
+ HAVE_READLINKAT=0
+ fi
+
+if test $HAVE_READLINKAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS readlinkat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_READLINKAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_READLINKAT 1" >>confdefs.h
+
+
+
+
+
+
+ if test $gl_cv_func_malloc_posix = yes; then
+
+$as_echo "@%:@define HAVE_REALLOC_POSIX 1" >>confdefs.h
+
+ else
+ REPLACE_REALLOC=1
+ fi
+
+if test $REPLACE_REALLOC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_REALLOC_POSIX=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h
+
+
+
+
+
+@%:@ Check whether --with-included-regex was given.
+if test "${with_included_regex+set}" = set; then :
+ withval=$with_included_regex;
+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.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5
+$as_echo_n "checking for working re_compile_pattern... " >&6; }
+if ${gl_cv_func_re_compile_pattern_working+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_re_compile_pattern_working=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ #include <locale.h>
+ #include <limits.h>
+ #include <regex.h>
+
+int
+main ()
+{
+int result = 0;
+ static struct re_pattern_buffer regex;
+ unsigned char folded_chars[UCHAR_MAX + 1];
+ int i;
+ const char *s;
+ struct re_registers regs;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern (pat, sizeof pat - 1, &regex);
+ if (s)
+ result |= 1;
+ else if (re_search (&regex, data, sizeof data - 1,
+ 0, sizeof data - 1, &regs)
+ != -1)
+ result |= 1;
+ if (! setlocale (LC_ALL, "C"))
+ return 1;
+ }
+
+ /* This test is from glibc bug 3957, reported by Andrew Mackey. */
+ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("a[^x]b", 6, &regex);
+ if (s)
+ result |= 2;
+ /* This should fail, but succeeds for glibc-2.5. */
+ else if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
+ result |= 2;
+
+ /* This regular expression is from Spencer ere test number 75
+ in grep-2.3. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+ memset (&regex, 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, &regex);
+ /* This should fail with _Invalid character class name_ error. */
+ if (!s)
+ result |= 4;
+
+ /* Ensure that [b-a] is diagnosed as invalid, when
+ using RE_NO_EMPTY_RANGES. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES);
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("a[b-a]", 6, &regex);
+ if (s == 0)
+ result |= 8;
+
+ /* This should succeed, but does not for glibc-2.1.3. */
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("{1", 2, &regex);
+ if (s)
+ result |= 8;
+
+ /* The following example is derived from a problem report
+ against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("[an\371]*n", 7, &regex);
+ if (s)
+ result |= 8;
+ /* This should match, but does not for glibc-2.2.1. */
+ else if (re_match (&regex, "an", 2, 0, &regs) != 2)
+ result |= 8;
+
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("x", 1, &regex);
+ if (s)
+ result |= 8;
+ /* glibc-2.2.93 does not work with a negative RANGE argument. */
+ else if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
+ result |= 8;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("x", 1, &regex);
+ if (s)
+ result |= 16;
+ else if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
+ result |= 16;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
+ if (s)
+ result |= 32;
+
+ /* REG_STARTEND was added to glibc on 2004-01-15.
+ Reject older versions. */
+ if (! REG_STARTEND)
+ result |= 64;
+
+#if 0
+ /* It would be nice to reject hosts whose regoff_t values are too
+ narrow (including glibc on hosts with 64-bit ptrdiff_t and
+ 32-bit int), but we should wait until glibc implements this
+ feature. Otherwise, support for equivalence classes and
+ multibyte collation symbols would always be broken except
+ when compiling --without-included-regex. */
+ if (sizeof (regoff_t) < sizeof (ptrdiff_t)
+ || sizeof (regoff_t) < sizeof (ssize_t))
+ result |= 64;
+#endif
+
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_re_compile_pattern_working=yes
+else
+ gl_cv_func_re_compile_pattern_working=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_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
+ ;;
+ *) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5
+ ;;
+ esac
+
+ if test $ac_use_included_regex = yes; then
+
+$as_echo "@%:@define _REGEX_LARGE_OFFSETS 1" >>confdefs.h
+
+
+$as_echo "@%:@define re_syntax_options rpl_re_syntax_options" >>confdefs.h
+
+
+$as_echo "@%:@define re_set_syntax rpl_re_set_syntax" >>confdefs.h
+
+
+$as_echo "@%:@define re_compile_pattern rpl_re_compile_pattern" >>confdefs.h
+
+
+$as_echo "@%:@define re_compile_fastmap rpl_re_compile_fastmap" >>confdefs.h
+
+
+$as_echo "@%:@define re_search rpl_re_search" >>confdefs.h
+
+
+$as_echo "@%:@define re_search_2 rpl_re_search_2" >>confdefs.h
+
+
+$as_echo "@%:@define re_match rpl_re_match" >>confdefs.h
+
+
+$as_echo "@%:@define re_match_2 rpl_re_match_2" >>confdefs.h
+
+
+$as_echo "@%:@define re_set_registers rpl_re_set_registers" >>confdefs.h
+
+
+$as_echo "@%:@define re_comp rpl_re_comp" >>confdefs.h
+
+
+$as_echo "@%:@define re_exec rpl_re_exec" >>confdefs.h
+
+
+$as_echo "@%:@define regcomp rpl_regcomp" >>confdefs.h
+
+
+$as_echo "@%:@define regexec rpl_regexec" >>confdefs.h
+
+
+$as_echo "@%:@define regerror rpl_regerror" >>confdefs.h
+
+
+$as_echo "@%:@define regfree rpl_regfree" >>confdefs.h
+
+ fi
+
+if test $ac_use_included_regex = yes; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext"
+
+
+
+
+
+
+ for ac_header in libintl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
+if test "x$ac_cv_header_libintl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LIBINTL_H 1
+_ACEOF
+
+fi
+
+done
+
+
+ ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
+
+
+fi
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on destination" >&5
+$as_echo_n "checking whether rename honors trailing slash on destination... " >&6; }
+if ${gl_cv_func_rename_slash_dst_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+ touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+ as_fn_error $? "cannot create temporary files" "$LINENO" 5
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.f conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_slash_dst_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.f1", "conftest.f2/") == 0)
+ result |= 1;
+ if (rename ("conftest.d1", "conftest.d2/") != 0)
+ result |= 2;
+#if HAVE_LSTAT
+ if (rename ("conftest.f", "conftest.lnk/") == 0)
+ result |= 4;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_slash_dst_works=yes
+else
+ gl_cv_func_rename_slash_dst_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_dst_works" >&5
+$as_echo "$gl_cv_func_rename_slash_dst_works" >&6; }
+ if test "x$gl_cv_func_rename_slash_dst_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "@%:@define RENAME_TRAILING_SLASH_DEST_BUG 1" >>confdefs.h
+
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on source" >&5
+$as_echo_n "checking whether rename honors trailing slash on source... " >&6; }
+if ${gl_cv_func_rename_slash_src_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+ touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+ as_fn_error $? "cannot create temporary files" "$LINENO" 5
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.f conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_slash_src_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.f1/", "conftest.d3") == 0)
+ result |= 1;
+ if (rename ("conftest.d1/", "conftest.d2") != 0)
+ result |= 2;
+#if HAVE_LSTAT
+ if (rename ("conftest.lnk/", "conftest.f") == 0)
+ result |= 4;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_slash_src_works=yes
+else
+ gl_cv_func_rename_slash_src_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_src_works" >&5
+$as_echo "$gl_cv_func_rename_slash_src_works" >&6; }
+ if test "x$gl_cv_func_rename_slash_src_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "@%:@define RENAME_TRAILING_SLASH_SOURCE_BUG 1" >>confdefs.h
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages hard links correctly" >&5
+$as_echo_n "checking whether rename manages hard links correctly... " >&6; }
+if ${gl_cv_func_rename_link_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test $ac_cv_func_link = yes; then
+ rm -rf conftest.f conftest.f1
+ if touch conftest.f && ln conftest.f conftest.f1 &&
+ set x `ls -i conftest.f conftest.f1` && test "" = ""; then
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_link_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+# include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.f", "conftest.f1"))
+ result |= 1;
+ if (unlink ("conftest.f1"))
+ result |= 2;
+ if (rename ("conftest.f", "conftest.f"))
+ result |= 4;
+ if (rename ("conftest.f1", "conftest.f1") == 0)
+ result |= 8;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_link_works=yes
+else
+ gl_cv_func_rename_link_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ else
+ gl_cv_func_rename_link_works="guessing no"
+ fi
+ rm -rf conftest.f conftest.f1
+ else
+ gl_cv_func_rename_link_works=yes
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_link_works" >&5
+$as_echo "$gl_cv_func_rename_link_works" >&6; }
+ if test "x$gl_cv_func_rename_link_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "@%:@define RENAME_HARD_LINK_BUG 1" >>confdefs.h
+
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages existing destinations correctly" >&5
+$as_echo_n "checking whether rename manages existing destinations correctly... " >&6; }
+if ${gl_cv_func_rename_dest_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f conftest.d1 conftest.d2
+ touch conftest.f && mkdir conftest.d1 conftest.d2 ||
+ as_fn_error $? "cannot create temporary files" "$LINENO" 5
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_dest_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.d1", "conftest.d2") != 0)
+ result |= 1;
+ if (rename ("conftest.d2", "conftest.f") == 0)
+ result |= 2;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_dest_works=yes
+else
+ gl_cv_func_rename_dest_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.f conftest.d1 conftest.d2
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_dest_works" >&5
+$as_echo "$gl_cv_func_rename_dest_works" >&6; }
+ if test "x$gl_cv_func_rename_dest_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "@%:@define RENAME_DEST_EXISTS_BUG 1" >>confdefs.h
+
+ fi
+
+if test $REPLACE_RENAME = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rename.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_RENAME=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RENAME 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_renameat = no; then
+ HAVE_RENAMEAT=0
+ elif test $REPLACE_RENAME = 1; then
+ REPLACE_RENAMEAT=1
+ fi
+
+if test $HAVE_RENAMEAT = 0 || test $REPLACE_RENAMEAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS renameat.$ac_objext"
+
+fi
+if test $HAVE_RENAMEAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_RENAMEAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RENAMEAT 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in rewinddir
+do :
+ ac_fn_c_check_func "$LINENO" "rewinddir" "ac_cv_func_rewinddir"
+if test "x$ac_cv_func_rewinddir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_REWINDDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_rewinddir = no; then
+ HAVE_REWINDDIR=0
+ fi
+
+if test $HAVE_REWINDDIR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rewinddir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_REWINDDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_REWINDDIR 1" >>confdefs.h
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rmdir works" >&5
+$as_echo_n "checking whether rmdir works... " >&6; }
+if ${gl_cv_func_rmdir_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+ #include <errno.h>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <direct.h>
+ #endif
+
+int
+main ()
+{
+int result = 0;
+ if (!rmdir ("conftest.file/"))
+ result |= 1;
+ else if (errno != ENOTDIR)
+ result |= 2;
+ if (!rmdir ("conftest.dir/./"))
+ result |= 4;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rmdir_works=yes
+else
+ gl_cv_func_rmdir_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.dir conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+
+if test $REPLACE_RMDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rmdir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_RMDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RMDIR 1" >>confdefs.h
+
+
+
+
+
+
+
+ for ac_func in rpmatch
+do :
+ ac_fn_c_check_func "$LINENO" "rpmatch" "ac_cv_func_rpmatch"
+if test "x$ac_cv_func_rpmatch" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_RPMATCH 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_rpmatch = no; then
+ HAVE_RPMATCH=0
+ fi
+
+if test $HAVE_RPMATCH = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rpmatch.$ac_objext"
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and YESEXPR" >&5
+$as_echo_n "checking for nl_langinfo and YESEXPR... " >&6; }
+if ${gl_cv_langinfo_yesexpr+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(YESEXPR); return !cs;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_langinfo_yesexpr=yes
+else
+ gl_cv_langinfo_yesexpr=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_langinfo_yesexpr" >&5
+$as_echo "$gl_cv_langinfo_yesexpr" >&6; }
+ if test $gl_cv_langinfo_yesexpr = yes; then
+
+$as_echo "@%:@define HAVE_LANGINFO_YESEXPR 1" >>confdefs.h
+
+ fi
+
+fi
+
+
+
+
+
+ GNULIB_RPMATCH=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RPMATCH 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ :
+
+
+
+ if test $ac_cv_func_setenv = no; then
+ HAVE_SETENV=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5
+$as_echo_n "checking whether setenv validates arguments... " >&6; }
+if ${gl_cv_func_setenv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_setenv_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <stdlib.h>
+ #include <errno.h>
+ #include <string.h>
+
+int
+main ()
+{
+
+ int result = 0;
+ {
+ if (setenv ("", "", 0) != -1)
+ result |= 1;
+ else if (errno != EINVAL)
+ result |= 2;
+ }
+ {
+ if (setenv ("a", "=", 1) != 0)
+ result |= 4;
+ else if (strcmp (getenv ("a"), "=") != 0)
+ result |= 8;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_setenv_works=yes
+else
+ gl_cv_func_setenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SETENV=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_SETENV 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_signal_h='<'signal.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <signal.h>" >&5
+$as_echo_n "checking absolute name of <signal.h>... " >&6; }
+if ${gl_cv_next_signal_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <signal.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'signal.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_signal_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_signal_h" >&5
+$as_echo "$gl_cv_next_signal_h" >&6; }
+ fi
+ NEXT_SIGNAL_H=$gl_cv_next_signal_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='<'signal.h'>'
+ else
+ # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+ gl_next_as_first_directive=$gl_cv_next_signal_h
+ fi
+ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H=$gl_next_as_first_directive
+
+
+
+
+
+# AIX declares sig_atomic_t to already include volatile, and C89 compilers
+# then choke on 'volatile sig_atomic_t'. C99 requires that it compile.
+ ac_fn_c_check_type "$LINENO" "volatile sig_atomic_t" "ac_cv_type_volatile_sig_atomic_t" "
+#include <signal.h>
+
+"
+if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes; then :
+
+else
+ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0
+fi
+
+
+
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "sighandler_t" "ac_cv_type_sighandler_t" "
+#include <signal.h>
+
+"
+if test "x$ac_cv_type_sighandler_t" = xyes; then :
+
+else
+ HAVE_SIGHANDLER_T=0
+fi
+
+
+
+ for gl_func in pthread_sigmask sigaction sigaddset sigdelset sigemptyset sigfillset sigismember sigpending sigprocmask; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <signal.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+ for ac_header in stdint.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDINT_H 1
+_ACEOF
+
+fi
+
+done
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5
+$as_echo_n "checking for SIZE_MAX... " >&6; }
+if ${gl_cv_size_max+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_cv_size_max=
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Found it" >/dev/null 2>&1; then :
+ gl_cv_size_max=yes
+fi
+rm -f conftest*
+
+ if test -z "$gl_cv_size_max"; then
+ if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include <stddef.h>
+#include <limits.h>"; then :
+
+else
+ size_t_bits_minus_1=
+fi
+
+ if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint" "#include <stddef.h>"; then :
+
+else
+ fits_in_uint=
+fi
+
+ if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
+ if test $fits_in_uint = 1; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ extern size_t foo;
+ extern unsigned long foo;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ fits_in_uint=0
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $fits_in_uint = 1; then
+ gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ else
+ gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ fi
+ else
+ gl_cv_size_max='((size_t)~(size_t)0)'
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+@%:@define SIZE_MAX $gl_cv_size_max
+_ACEOF
+
+ fi
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "sleep" "ac_cv_have_decl_sleep" "#include <unistd.h>
+"
+if test "x$ac_cv_have_decl_sleep" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_SLEEP $ac_have_decl
+_ACEOF
+
+
+ if test $ac_cv_have_decl_sleep != yes; then
+ HAVE_SLEEP=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working sleep" >&5
+$as_echo_n "checking for working sleep... " >&6; }
+if ${gl_cv_func_sleep_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_sleep_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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);
+ if (remaining > pentecost)
+ return 3;
+ if (remaining <= pentecost - 10)
+ return 4;
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_sleep_works=yes
+else
+ gl_cv_func_sleep_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS sleep.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SLEEP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_SLEEP 1" >>confdefs.h
+
+
+
+
+
+ gl_cv_func_snprintf_usable=no
+ for ac_func in snprintf
+do :
+ ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
+if test "x$ac_cv_func_snprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SNPRINTF 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_snprintf = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5
+$as_echo_n "checking whether snprintf respects a size of 1... " >&6; }
+if ${gl_cv_func_snprintf_size1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_snprintf_size1="guessing yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+int main()
+{
+ static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+ my_snprintf (buf, 1, "%d", 12345);
+ return buf[1] != 'E';
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_snprintf_size1=yes
+else
+ gl_cv_func_snprintf_size1=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5
+$as_echo "$gl_cv_func_snprintf_size1" >&6; }
+
+ case "$gl_cv_func_snprintf_size1" in
+ *yes)
+
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5
+$as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; }
+if ${gl_cv_func_printf_positions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+ gl_cv_func_printf_positions="guessing no";;
+ beos*) gl_cv_func_printf_positions="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+ *) gl_cv_func_printf_positions="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+ dollar expansion (possibly an autoconf bug). */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, "55 33") != 0);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_printf_positions=yes
+else
+ gl_cv_func_printf_positions=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5
+$as_echo "$gl_cv_func_printf_positions" >&6; }
+
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_snprintf_usable=yes
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ if test $gl_cv_func_snprintf_usable = no; then
+
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS snprintf.$ac_objext"
+
+ if test $ac_cv_func_snprintf = yes; then
+ REPLACE_SNPRINTF=1
+ fi
+ :
+
+ fi
+
+ if test $ac_cv_have_decl_snprintf = no; then
+ HAVE_DECL_SNPRINTF=0
+ fi
+
+
+
+
+
+
+ GNULIB_SNPRINTF=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_SNPRINTF 1" >>confdefs.h
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_SNPRINTF 1
+_ACEOF
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
+$as_echo_n "checking for ssize_t... " >&6; }
+if ${gt_cv_ssize_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main ()
+{
+int x = sizeof (ssize_t *) + sizeof (ssize_t);
+ return !x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_ssize_t=yes
+else
+ gt_cv_ssize_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5
+$as_echo "$gt_cv_ssize_t" >&6; }
+ if test $gt_cv_ssize_t = no; then
+
+$as_echo "@%:@define ssize_t int" >>confdefs.h
+
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on directories" >&5
+$as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; }
+if ${gl_cv_func_stat_dir_slash+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+struct stat st; return stat (".", &st) != stat ("./", &st);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_stat_dir_slash=yes
+else
+ gl_cv_func_stat_dir_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_dir_slash" >&5
+$as_echo "$gl_cv_func_stat_dir_slash" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5
+$as_echo_n "checking whether stat handles trailing slashes on files... " >&6; }
+if ${gl_cv_func_stat_file_slash+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+int result = 0;
+ struct stat st;
+ if (!stat ("conftest.tmp/", &st))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!stat ("conftest.lnk/", &st))
+ result |= 2;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_stat_file_slash=yes
+else
+ gl_cv_func_stat_file_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.tmp conftest.lnk
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define REPLACE_FUNC_STAT_DIR 1" >>confdefs.h
+;;
+ esac
+ case $gl_cv_func_stat_file_slash in
+ *no) REPLACE_STAT=1
+
+$as_echo "@%:@define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h
+;;
+ esac
+
+if test $REPLACE_STAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext"
+
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_STAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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;
+
+int
+main ()
+{
+
+ st.st_atim = ts;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes
+else
+ ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h
+
+ fi
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_ATIMENSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1
+_ACEOF
+
+
+fi
+
+fi
+
+fi
+
+fi
+
+
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimensec" "ac_cv_member_struct_stat_st_birthtimensec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_birthtimensec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtim.tv_nsec" "ac_cv_member_struct_stat_st_birthtim_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1
+_ACEOF
+
+
+fi
+
+fi
+
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working stdalign.h" >&5
+$as_echo_n "checking for working stdalign.h... " >&6; }
+if ${gl_cv_header_working_stdalign_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdalign.h>
+ int align_int = alignof (int) + _Alignof (double);
+
+ /* Test _Alignas only on platforms where gnulib can help. */
+ #if \
+ (__GNUC__ || __IBMC__ || __IBMCPP__ \
+ || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER)
+ int alignas (8) alignas_int = 1;
+ #endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_working_stdalign_h=yes
+else
+ gl_cv_header_working_stdalign_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdalign_h" >&5
+$as_echo "$gl_cv_header_working_stdalign_h" >&6; }
+
+ if test $gl_cv_header_working_stdalign_h = yes; then
+ STDALIGN_H=''
+ else
+ STDALIGN_H='stdalign.h'
+ fi
+
+
+ if test -n "$STDALIGN_H"; then
+ GL_GENERATE_STDALIGN_H_TRUE=
+ GL_GENERATE_STDALIGN_H_FALSE='#'
+else
+ GL_GENERATE_STDALIGN_H_TRUE='#'
+ GL_GENERATE_STDALIGN_H_FALSE=
+fi
+
+
+
+ STDARG_H=''
+ NEXT_STDARG_H='<stdarg.h>'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
+$as_echo_n "checking for va_copy... " >&6; }
+ if ${gl_cv_func_va_copy+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+int
+main ()
+{
+
+#ifndef va_copy
+void (*func) (va_list, va_list) = va_copy;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_va_copy=yes
+else
+ gl_cv_func_va_copy=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+ { $as_echo "$as_me:${as_lineno-$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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined _AIX && !defined __GNUC__
+ AIX vaccine
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "vaccine" >/dev/null 2>&1; then :
+ gl_aixcc=yes
+else
+ gl_aixcc=no
+fi
+rm -f conftest*
+
+ if test $gl_aixcc = yes; then
+ STDARG_H=stdarg.h
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_stdarg_h='<'stdarg.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdarg.h>" >&5
+$as_echo_n "checking absolute name of <stdarg.h>... " >&6; }
+if ${gl_cv_next_stdarg_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdarg.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdarg_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ gl_cv_next_stdarg_h='"///usr/include/stdarg.h"'
+ NEXT_STDARG_H="$gl_cv_next_stdarg_h"
+ fi
+ else
+
+ saved_as_echo_n="$as_echo_n"
+ as_echo_n=':'
+ if ${gl_cv_func___va_copy+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+int
+main ()
+{
+
+#ifndef __va_copy
+error, bail out
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func___va_copy=yes
+else
+ gl_cv_func___va_copy=no
+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
+
+$as_echo "@%:@define va_copy __va_copy" >>confdefs.h
+
+ else
+
+
+$as_echo "@%:@define va_copy gl_va_copy" >>confdefs.h
+
+ fi
+ fi
+ fi
+
+ if test -n "$STDARG_H"; then
+ GL_GENERATE_STDARG_H_TRUE=
+ GL_GENERATE_STDARG_H_FALSE='#'
+else
+ GL_GENERATE_STDARG_H_TRUE='#'
+ GL_GENERATE_STDARG_H_FALSE=
+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 -n "$STDBOOL_H"; then
+ GL_GENERATE_STDBOOL_H_TRUE=
+ GL_GENERATE_STDBOOL_H_FALSE='#'
+else
+ GL_GENERATE_STDBOOL_H_TRUE='#'
+ GL_GENERATE_STDBOOL_H_FALSE=
+fi
+
+
+ if test "$ac_cv_type__Bool" = yes; then
+ HAVE__BOOL=1
+ else
+ HAVE__BOOL=0
+ fi
+
+
+
+
+
+ STDDEF_H=
+ if test $gt_cv_c_wchar_t = no; then
+ HAVE_WCHAR_T=0
+ STDDEF_H=stddef.h
+ fi
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_decl_null_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ int test[2 * (sizeof NULL == sizeof (void *)) -1];
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_decl_null_works=yes
+else
+ gl_cv_decl_null_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ GL_GENERATE_STDDEF_H_TRUE=
+ GL_GENERATE_STDDEF_H_FALSE='#'
+else
+ GL_GENERATE_STDDEF_H_TRUE='#'
+ GL_GENERATE_STDDEF_H_FALSE=
+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:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
+$as_echo_n "checking absolute name of <stddef.h>... " >&6; }
+if ${gl_cv_next_stddef_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stddef.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $gl_cv_have_include_next = yes; then
+ gl_cv_next_stdio_h='<'stdio.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdio.h>" >&5
+$as_echo_n "checking absolute name of <stdio.h>... " >&6; }
+if ${gl_cv_next_stdio_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdio.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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_FSCANF=1
+ GNULIB_SCANF=1
+ GNULIB_FGETC=1
+ GNULIB_GETC=1
+ GNULIB_GETCHAR=1
+ GNULIB_FGETS=1
+ GNULIB_GETS=1
+ GNULIB_FREAD=1
+
+
+ GNULIB_FPRINTF=1
+ GNULIB_PRINTF=1
+ GNULIB_VFPRINTF=1
+ GNULIB_VPRINTF=1
+ GNULIB_FPUTC=1
+ GNULIB_PUTC=1
+ GNULIB_PUTCHAR=1
+ GNULIB_FPUTS=1
+ GNULIB_PUTS=1
+ GNULIB_FWRITE=1
+
+
+
+
+ for gl_func in dprintf fpurge fseeko ftello getdelim getline pclose popen renameat snprintf tmpfile vdprintf vsnprintf; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdlib.h>" >&5
+$as_echo_n "checking absolute name of <stdlib.h>... " >&6; }
+if ${gl_cv_next_stdlib_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdlib.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r random random_r realpath rpmatch setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#if HAVE_SYS_LOADAVG_H
+# include <sys/loadavg.h>
+#endif
+#if HAVE_RANDOM_H
+# include <random.h>
+#endif
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+
+ for ac_func in stpcpy
+do :
+ ac_fn_c_check_func "$LINENO" "stpcpy" "ac_cv_func_stpcpy"
+if test "x$ac_cv_func_stpcpy" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STPCPY 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_stpcpy = no; then
+ HAVE_STPCPY=0
+ fi
+
+if test $HAVE_STPCPY = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS stpcpy.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_STPCPY=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STPCPY 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in strcasecmp
+do :
+ ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
+if test "x$ac_cv_func_strcasecmp" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRCASECMP 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strcasecmp = no; then
+ HAVE_STRCASECMP=0
+ fi
+
+
+
+ for ac_func in strncasecmp
+do :
+ ac_fn_c_check_func "$LINENO" "strncasecmp" "ac_cv_func_strncasecmp"
+if test "x$ac_cv_func_strncasecmp" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRNCASECMP 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strncasecmp = yes; then
+ HAVE_STRNCASECMP=1
+ else
+ HAVE_STRNCASECMP=0
+ fi
+ ac_fn_c_check_decl "$LINENO" "strncasecmp" "ac_cv_have_decl_strncasecmp" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strncasecmp" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRNCASECMP $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_strncasecmp = no; then
+ HAVE_DECL_STRNCASECMP=0
+ fi
+
+
+if test $HAVE_STRCASECMP = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strcasecmp.$ac_objext"
+
+
+ :
+
+fi
+if test $HAVE_STRNCASECMP = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strncasecmp.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+ for ac_func in strchrnul
+do :
+ ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul"
+if test "x$ac_cv_func_strchrnul" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRCHRNUL 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strchrnul = no; then
+ HAVE_STRCHRNUL=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strchrnul works" >&5
+$as_echo_n "checking whether strchrnul works... " >&6; }
+if ${gl_cv_func_strchrnul_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9)
+ Lucky user
+ #endif
+#else
+ Lucky user
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Lucky user" >/dev/null 2>&1; then :
+ gl_cv_func_strchrnul_works="guessing yes"
+else
+ gl_cv_func_strchrnul_works="guessing no"
+fi
+rm -f conftest*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <string.h> /* for strchrnul */
+
+int
+main ()
+{
+const char *buf = "a";
+ return strchrnul (buf, 'b') != buf + 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_strchrnul_works=yes
+else
+ gl_cv_func_strchrnul_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strchrnul_works" >&5
+$as_echo "$gl_cv_func_strchrnul_works" >&6; }
+ case "$gl_cv_func_strchrnul_works" in
+ *yes) ;;
+ *) REPLACE_STRCHRNUL=1 ;;
+ esac
+ fi
+
+if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strchrnul.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_STRCHRNUL=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRCHRNUL 1" >>confdefs.h
+
+
+
+
+
+
+
+ if test $ac_cv_func_strdup = yes; then
+ if test $gl_cv_func_malloc_posix != yes; then
+ REPLACE_STRDUP=1
+ fi
+ fi
+
+ if test $ac_cv_have_decl_strdup = no; then
+ HAVE_DECL_STRDUP=0
+ fi
+
+if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_STRDUP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRDUP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5
+$as_echo_n "checking for working strerror function... " >&6; }
+if ${gl_cv_func_working_strerror+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_working_strerror="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+int
+main ()
+{
+if (!*strerror (-2)) return 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_strerror=yes
+else
+ gl_cv_func_working_strerror=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5
+$as_echo "$gl_cv_func_working_strerror" >&6; }
+ if test "$gl_cv_func_working_strerror" != yes; then
+ REPLACE_STRERROR=1
+ fi
+
+ else
+ REPLACE_STRERROR=1
+ fi
+
+if test $REPLACE_STRERROR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_STRERROR 1
+_ACEOF
+
+
+
+
+
+
+
+ GNULIB_STRERROR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRERROR 1" >>confdefs.h
+
+
+
+
+
+if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext"
+
+
+
+
+
+ if test $ac_cv_header_sys_socket_h != yes; then
+ for ac_header in winsock2.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+ fi
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ HAVE_WINSOCK2_H=1
+ UNISTD_H_HAVE_WINSOCK2_H=1
+ SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+ else
+ HAVE_WINSOCK2_H=0
+ fi
+
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_strndup = no; then
+ HAVE_DECL_STRNDUP=0
+ fi
+
+ if test $ac_cv_func_strndup = yes; then
+ HAVE_STRNDUP=1
+ # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strndup" >&5
+$as_echo_n "checking for working strndup... " >&6; }
+if ${gl_cv_func_strndup_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+
+ case $host_os in
+ aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";;
+ *) gl_cv_func_strndup_works="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <string.h>
+ #include <stdlib.h>
+int
+main ()
+{
+
+#ifndef HAVE_DECL_STRNDUP
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *strndup (const char *, size_t);
+#endif
+ char *s;
+ s = strndup ("some longer string", 15);
+ free (s);
+ s = strndup ("shorter string", 13);
+ return s[13] != '\0';
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_strndup_works=yes
+else
+ gl_cv_func_strndup_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ HAVE_STRNDUP=0
+ fi
+
+if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_STRNDUP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRNDUP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_strnlen = no; then
+ HAVE_DECL_STRNLEN=0
+ else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strnlen" >&5
+$as_echo_n "checking for working strnlen... " >&6; }
+if ${ac_cv_func_strnlen_working+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ # Guess no on AIX systems, yes otherwise.
+ case "$host_os" in
+ aix*) ac_cv_func_strnlen_working=no;;
+ *) ac_cv_func_strnlen_working=yes;;
+ esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+#define S "foobar"
+#define S_LEN (sizeof S - 1)
+
+ /* At least one implementation is buggy: that of AIX 4.3 would
+ give strnlen (S, 1) == 3. */
+
+ int i;
+ for (i = 0; i < S_LEN + 1; ++i)
+ {
+ int expected = i <= S_LEN ? i : S_LEN;
+ if (strnlen (S, i) != expected)
+ return 1;
+ }
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_strnlen_working=yes
+else
+ ac_cv_func_strnlen_working=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strnlen_working" >&5
+$as_echo "$ac_cv_func_strnlen_working" >&6; }
+test $ac_cv_func_strnlen_working = no && :
+
+
+ if test $ac_cv_func_strnlen_working = no; then
+ REPLACE_STRNLEN=1
+ fi
+ fi
+
+if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_STRNLEN=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRNLEN 1" >>confdefs.h
+
+
+
+
+ for ac_func in strtol
+do :
+ ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol"
+if test "x$ac_cv_func_strtol" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRTOL 1
+_ACEOF
+
+fi
+done
+
+
+if test $ac_cv_func_strtol = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtol.$ac_objext"
+
+fi
+
+ for ac_func in strtoul
+do :
+ ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul"
+if test "x$ac_cv_func_strtoul" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRTOUL 1
+_ACEOF
+
+fi
+done
+
+
+if test $ac_cv_func_strtoul = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtoul.$ac_objext"
+
+fi
+
+
+
+ if test "$ac_cv_type_unsigned_long_long_int" = yes; then
+ for ac_func in strtoull
+do :
+ ac_fn_c_check_func "$LINENO" "strtoull" "ac_cv_func_strtoull"
+if test "x$ac_cv_func_strtoull" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRTOULL 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strtoull = no; then
+ HAVE_STRTOULL=0
+ fi
+ fi
+
+if test $HAVE_STRTOULL = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtoull.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_STRTOULL=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRTOULL 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test "$ac_cv_have_decl_strtoumax" != yes; then
+ HAVE_DECL_STRTOUMAX=0
+ fi
+
+if test $ac_cv_func_strtoumax = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtoumax.$ac_objext"
+
+
+ ac_fn_c_check_decl "$LINENO" "strtoull" "ac_cv_have_decl_strtoull" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtoull" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRTOULL $ac_have_decl
+_ACEOF
+
+
+
+fi
+
+
+
+
+
+ GNULIB_STRTOUMAX=1
+
+
+
+
+
+
+
+ if test $ac_cv_func_symlink = no; then
+ HAVE_SYMLINK=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symlink handles trailing slash correctly" >&5
+$as_echo_n "checking whether symlink handles trailing slash correctly... " >&6; }
+if ${gl_cv_func_symlink_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_symlink_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ if (!symlink ("a", "conftest.link/"))
+ result |= 1;
+ if (symlink ("conftest.f", "conftest.lnk2"))
+ result |= 2;
+ else if (!symlink ("a", "conftest.lnk2/"))
+ result |= 4;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_symlink_works=yes
+else
+ gl_cv_func_symlink_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.f conftest.link conftest.lnk2
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_symlink_works" >&5
+$as_echo "$gl_cv_func_symlink_works" >&6; }
+ if test "$gl_cv_func_symlink_works" != yes; then
+ REPLACE_SYMLINK=1
+ fi
+ fi
+
+if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS symlink.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SYMLINK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_SYMLINK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_symlinkat = no; then
+ HAVE_SYMLINKAT=0
+ fi
+
+if test $HAVE_SYMLINKAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS symlinkat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SYMLINKAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_SYMLINKAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_sys_stat_h='<'sys/stat.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/stat.h>" >&5
+$as_echo_n "checking absolute name of <sys/stat.h>... " >&6; }
+if ${gl_cv_next_sys_stat_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_sys_stat_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sys/stat.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_sys_stat_h='<'sys/stat.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_type_nlink_t" = xyes; then :
+
+else
+
+$as_echo "@%:@define nlink_t int" >>confdefs.h
+
+fi
+
+
+
+ for gl_func in fchmodat fstat 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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_sys_types_h='<'sys/types.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5
+$as_echo_n "checking absolute name of <sys/types.h>... " >&6; }
+if ${gl_cv_next_sys_types_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sys/types.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sys_types_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5
+$as_echo "$gl_cv_next_sys_types_h" >&6; }
+ fi
+ NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_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/types.h'>'
+ else
+ # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+ gl_next_as_first_directive=$gl_cv_next_sys_types_h
+ fi
+ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_header_sysexits_h = yes; then
+ HAVE_SYSEXITS_H=1
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_sysexits_h='<'sysexits.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sysexits.h>" >&5
+$as_echo_n "checking absolute name of <sysexits.h>... " >&6; }
+if ${gl_cv_next_sysexits_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_sysexits_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sysexits.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sysexits.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sysexits_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_sysexits_h='<'sysexits.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sysexits.h>
+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;
+ }
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ SYSEXITS_H=
+else
+ SYSEXITS_H=sysexits.h
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ else
+ HAVE_SYSEXITS_H=0
+ SYSEXITS_H=sysexits.h
+ fi
+
+
+ if test -n "$SYSEXITS_H"; then
+ GL_GENERATE_SYSEXITS_H_TRUE=
+ GL_GENERATE_SYSEXITS_H_FALSE='#'
+else
+ GL_GENERATE_SYSEXITS_H_TRUE='#'
+ GL_GENERATE_SYSEXITS_H_FALSE=
+fi
+
+
+
+
+ :
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_localtime_r = no; then
+ HAVE_DECL_LOCALTIME_R=0
+ fi
+
+
+ if test $ac_cv_func_localtime_r = yes; then
+ HAVE_LOCALTIME_R=1
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_time_r_posix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+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);
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_time_r_posix=yes
+else
+ gl_cv_time_r_posix=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_LOCALTIME_R=1
+ fi
+ else
+ HAVE_LOCALTIME_R=0
+ fi
+
+if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS time_r.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_TIME_R=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_TIME_R 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_unistd_h='<'unistd.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <unistd.h>" >&5
+$as_echo_n "checking absolute name of <unistd.h>... " >&6; }
+if ${gl_cv_next_unistd_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_unistd_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'unistd.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_unistd_h='<'unistd.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_unistd_h = yes; then
+ HAVE_UNISTD_H=1
+ else
+ HAVE_UNISTD_H=0
+ fi
+
+
+
+
+
+ for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r unlink unlinkat usleep; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+/* Some systems declare various items in the wrong headers. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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 "$HAVE_LIBUNISTRING" != yes \
+ || {
+
+
+
+ test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+ }
+ }
+ }
+
+
+
+
+ }
+ }; then
+ LIBUNISTRING_UNITYPES_H='unitypes.h'
+ else
+ LIBUNISTRING_UNITYPES_H=
+ fi
+
+
+
+
+ if { test "$HAVE_LIBUNISTRING" != yes \
+ || {
+
+
+
+ test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+ }
+ }
+ }
+
+
+
+
+ }
+ }; then
+ LIBUNISTRING_UNIWIDTH_H='uniwidth.h'
+ else
+ LIBUNISTRING_UNIWIDTH_H=
+ fi
+
+
+
+
+ if { test "$HAVE_LIBUNISTRING" != yes \
+ || {
+
+
+
+ test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+ }
+ }
+ }
+
+
+
+
+ }
+ }; then
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE=
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE='#'
+else
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE='#'
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE=
+fi
+
+
+
+
+
+
+ # The Hurd, the Linux kernel, the FreeBSD kernel version 2.2 and later,
+ # 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_os in
+ gnu[0-9]* | \
+ linux-* | linux | \
+ freebsd2.2* | freebsd[3-9]* | freebsd[1-9][0-9]* | \
+ cygwin | \
+ mingw*)
+
+$as_echo "@%:@define UNLINK_CANNOT_UNLINK_DIR 1" >>confdefs.h
+;;
+ esac
+
+
+
+$as_echo "@%:@define USE_UNLOCKED_IO 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_unsetenv = no; then
+ HAVE_DECL_UNSETENV=0
+ fi
+ for ac_func in unsetenv
+do :
+ ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv"
+if test "x$ac_cv_func_unsetenv" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_UNSETENV 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_unsetenv = no; then
+ HAVE_UNSETENV=0
+ else
+ HAVE_UNSETENV=1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5
+$as_echo_n "checking for unsetenv() return type... " >&6; }
+if ${gt_cv_func_unsetenv_ret+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#undef _BSD
+#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
+#include <stdlib.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int unsetenv (const char *name);
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_func_unsetenv_ret='int'
+else
+ gt_cv_func_unsetenv_ret='void'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define VOID_UNSETENV 1" >>confdefs.h
+
+ REPLACE_UNSETENV=1
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5
+$as_echo_n "checking whether unsetenv obeys POSIX... " >&6; }
+if ${gl_cv_func_unsetenv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_unsetenv_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <stdlib.h>
+ #include <errno.h>
+ extern char **environ;
+
+int
+main ()
+{
+
+ char entry1[] = "a=1";
+ char entry2[] = "b=2";
+ char *env[] = { entry1, entry2, NULL };
+ if (putenv ((char *) "a=1")) return 1;
+ if (putenv (entry2)) return 2;
+ entry2[0] = 'a';
+ unsetenv ("a");
+ if (getenv ("a")) return 3;
+ if (!unsetenv ("") || errno != EINVAL) return 4;
+ entry2[0] = 'b';
+ environ = env;
+ if (!getenv ("a")) return 5;
+ entry2[0] = 'a';
+ unsetenv ("a");
+ if (getenv ("a")) return 6;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_unsetenv_works=yes
+else
+ gl_cv_func_unsetenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext"
+
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_UNSETENV=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_UNSETENV 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether futimesat handles NULL file" >&5
+$as_echo_n "checking whether futimesat handles NULL file... " >&6; }
+if ${gl_cv_func_futimesat_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stddef.h>
+#include <sys/times.h>
+#include <fcntl.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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_futimesat_works=yes
+else
+ gl_cv_func_futimesat_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_futimesat_works" >&5
+$as_echo "$gl_cv_func_futimesat_works" >&6; }
+ if test "$gl_cv_func_futimesat_works" != yes; then
+
+$as_echo "@%:@define FUTIMESAT_NULL_BUG 1" >>confdefs.h
+
+ fi
+ fi
+
+
+
+
+
+ if test $ac_cv_func_utimensat = no; then
+ HAVE_UTIMENSAT=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether utimensat works" >&5
+$as_echo_n "checking whether utimensat works... " >&6; }
+if ${gl_cv_func_utimensat_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_utimensat_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ const char *f = "conftest.file";
+ if (close (creat (f, 0600)))
+ return 1;
+ /* Test whether the AT_SYMLINK_NOFOLLOW flag is supported. */
+ {
+ if (utimensat (AT_FDCWD, f, NULL, AT_SYMLINK_NOFOLLOW))
+ result |= 2;
+ }
+ /* Test whether UTIME_NOW and UTIME_OMIT work. */
+ {
+ struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+ if (utimensat (AT_FDCWD, f, ts, 0))
+ result |= 4;
+ }
+ sleep (1);
+ {
+ struct timespec ts[2] = { { 1, UTIME_NOW }, { 1, UTIME_OMIT } };
+ struct stat st;
+ if (utimensat (AT_FDCWD, f, ts, 0))
+ result |= 8;
+ if (stat (f, &st))
+ result |= 16;
+ else if (st.st_ctime < st.st_atime)
+ result |= 32;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __linux__
+/* The Linux kernel added utimensat in 2.6.22, but has bugs with UTIME_OMIT
+ in several file systems as recently as 2.6.32. Always replace utimensat
+ to support older kernels. */
+choke me
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_utimensat_works=yes
+else
+ gl_cv_func_utimensat_works="needs runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ gl_cv_func_utimensat_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_utimensat_works" >&5
+$as_echo "$gl_cv_func_utimensat_works" >&6; }
+ if test "$gl_cv_func_utimensat_works" != yes; then
+ REPLACE_UTIMENSAT=1
+ fi
+ fi
+
+if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS utimensat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_UTIMENSAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_UTIMENSAT 1" >>confdefs.h
+
+
+
+
+
+ if test $ac_cv_func_vasnprintf = no; then
+
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext"
+
+ if test $ac_cv_func_vasnprintf = yes; then
+
+$as_echo "@%:@define REPLACE_VASNPRINTF 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
+
+else
+
+$as_echo "@%:@define ptrdiff_t long" >>confdefs.h
+
+
+fi
+
+
+
+
+
+
+
+ fi
+
+
+ for ac_func in vasprintf
+do :
+ ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf"
+if test "x$ac_cv_func_vasprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_VASPRINTF 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_vasprintf = no; then
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_VASPRINTF 1" >>confdefs.h
+
+
+
+
+
+ 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 PACKAGE_PACKAGER "$withval"
+_ACEOF
+ ;;
+ esac
+
+fi
+
+
+
+@%:@ 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_fn_error $? "The --with-packager-{bug-reports,version} options require --with-packager" "$LINENO" 5
+ fi
+
+
+
+ gl_cv_func_vsnprintf_usable=no
+ for ac_func in vsnprintf
+do :
+ ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
+if test "x$ac_cv_func_vsnprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_VSNPRINTF 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_vsnprintf = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5
+$as_echo_n "checking whether snprintf respects a size of 1... " >&6; }
+if ${gl_cv_func_snprintf_size1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_snprintf_size1="guessing yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+int main()
+{
+ static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+ my_snprintf (buf, 1, "%d", 12345);
+ return buf[1] != 'E';
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_snprintf_size1=yes
+else
+ gl_cv_func_snprintf_size1=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5
+$as_echo "$gl_cv_func_snprintf_size1" >&6; }
+
+ case "$gl_cv_func_snprintf_size1" in
+ *yes)
+
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5
+$as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; }
+if ${gl_cv_func_printf_positions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+ gl_cv_func_printf_positions="guessing no";;
+ beos*) gl_cv_func_printf_positions="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+ *) gl_cv_func_printf_positions="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+ dollar expansion (possibly an autoconf bug). */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, "55 33") != 0);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_printf_positions=yes
+else
+ gl_cv_func_printf_positions=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5
+$as_echo "$gl_cv_func_printf_positions" >&6; }
+
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_vsnprintf_usable=yes
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ if test $gl_cv_func_vsnprintf_usable = no; then
+
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS vsnprintf.$ac_objext"
+
+ if test $ac_cv_func_vsnprintf = yes; then
+ REPLACE_VSNPRINTF=1
+ fi
+ :
+
+ fi
+
+ if test $ac_cv_have_decl_vsnprintf = no; then
+ HAVE_DECL_VSNPRINTF=0
+ fi
+
+
+
+
+
+
+ GNULIB_VSNPRINTF=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_VSNPRINTF 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_wchar_h='<'wchar.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wchar.h>" >&5
+$as_echo_n "checking absolute name of <wchar.h>... " >&6; }
+if ${gl_cv_next_wchar_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_wchar_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <wchar.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'wchar.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_wchar_h='<'wchar.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+#endif
+#include <wchar.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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 $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_wcrtomb = no; then
+ HAVE_WCRTOMB=0
+ ac_fn_c_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_wcrtomb" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_WCRTOMB $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_wcrtomb = yes; then
+ REPLACE_WCRTOMB=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_WCRTOMB=1
+ else
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5
+$as_echo_n "checking whether wcrtomb return value is correct... " >&6; }
+if ${gl_cv_func_wcrtomb_retval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # 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 :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 1;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 2;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 4;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 8;
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_wcrtomb_retval=yes
+else
+ gl_cv_func_wcrtomb_retval=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS wcrtomb.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_WCRTOMB=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_WCRTOMB 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_iswcntrl = yes; then
+ HAVE_ISWCNTRL=1
+ else
+ HAVE_ISWCNTRL=0
+ fi
+
+
+
+
+
+ if test $gt_cv_c_wint_t = yes; then
+ HAVE_WINT_T=1
+ else
+ HAVE_WINT_T=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
+$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
+if ${gl_cv_next_wctype_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_wctype_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <wctype.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'wctype.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_wctype_h = yes; then
+ if test $ac_cv_func_iswcntrl = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
+$as_echo_n "checking whether iswcntrl works... " >&6; }
+if ${gl_cv_func_iswcntrl_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+ #if __GNU_LIBRARY__ == 1
+ Linux libc5 i18n is broken.
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ int main () { return iswprint ('x') == 0; }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
+$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
+ fi
+ HAVE_WCTYPE_H=1
+ else
+ HAVE_WCTYPE_H=0
+ fi
+
+
+ if test "$gl_cv_func_iswcntrl_works" = no; then
+ REPLACE_ISWCNTRL=1
+ else
+ REPLACE_ISWCNTRL=0
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+ fi
+
+ if test $REPLACE_ISWCNTRL = 1; then
+ REPLACE_TOWLOWER=1
+ else
+ for ac_func in towlower
+do :
+ ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower"
+if test "x$ac_cv_func_towlower" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_TOWLOWER 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_towlower = yes; then
+ REPLACE_TOWLOWER=0
+ else
+ ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* 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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+
+"
+if test "x$ac_cv_have_decl_towlower" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_TOWLOWER $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_towlower = yes; then
+ REPLACE_TOWLOWER=1
+ else
+ REPLACE_TOWLOWER=0
+ fi
+ fi
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+ :
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
+$as_echo_n "checking for wctype_t... " >&6; }
+if ${gl_cv_type_wctype_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ wctype_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctype_t=yes
+else
+ gl_cv_type_wctype_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5
+$as_echo "$gl_cv_type_wctype_t" >&6; }
+ if test $gl_cv_type_wctype_t = no; then
+ HAVE_WCTYPE_T=0
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
+$as_echo_n "checking for wctrans_t... " >&6; }
+if ${gl_cv_type_wctrans_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ wctrans_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctrans_t=yes
+else
+ gl_cv_type_wctrans_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5
+$as_echo "$gl_cv_type_wctrans_t" >&6; }
+ if test $gl_cv_type_wctrans_t = no; then
+ HAVE_WCTRANS_T=0
+ fi
+
+
+ for gl_func in wctype iswctype wctrans towctrans ; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "wcwidth" "ac_cv_have_decl_wcwidth" "
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.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>
+
+"
+if test "x$ac_cv_have_decl_wcwidth" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_WCWIDTH $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_wcwidth != yes; then
+ HAVE_DECL_WCWIDTH=0
+ fi
+
+ if test $ac_cv_func_wcwidth = yes; then
+ HAVE_WCWIDTH=1
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_wcwidth_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess yes on glibc and AIX 7 systems.
+ *-gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
+ *) gl_cv_func_wcwidth_works="guessing no";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.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>
+#if !HAVE_DECL_WCWIDTH
+extern
+# ifdef __cplusplus
+"C"
+# endif
+int wcwidth (int);
+#endif
+int main ()
+{
+ int result = 0;
+ if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
+ {
+ if (wcwidth (0x0301) > 0)
+ result |= 1;
+ if (wcwidth (0x200B) > 0)
+ result |= 2;
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_wcwidth_works=yes
+else
+ gl_cv_func_wcwidth_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ HAVE_WCWIDTH=0
+ fi
+
+if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_WCWIDTH=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_WCWIDTH 1" >>confdefs.h
+
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_WRITE=1
+ fi
+
+
+
+if test $REPLACE_WRITE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS write.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_WRITE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_WRITE 1" >>confdefs.h
+
+
+
+
+
+
+ :
+
+
+ :
+
+
+
+ :
+
+
+
+
+ for ac_header in stdint.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDINT_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+ :
+
+
+
+ :
+
+
+
+
+
+
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=xasprintf:1:c-format"
+
+ # End of code from modules
+
+
+
+
+
+
+
+
+
+ gltests_libdeps=
+ gltests_ltlibdeps=
+
+
+
+
+
+
+
+
+
+ gl_source_base='tests'
+ gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
+
+ gl_module_indicator_condition=$gltests_WITNESS
+
+
+
+
+
+
+
+
+
+ LIBGNU_LIBDEPS="$gl_libdeps"
+
+ LIBGNU_LTLIBDEPS="$gl_ltlibdeps"
+
+
+# paxutils modules
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_header_time+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+
+int
+main ()
+{
+if ((struct tm *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_time=yes
+else
+ ac_cv_header_time=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
+$as_echo "$ac_cv_header_time" >&6; }
+if test $ac_cv_header_time = yes; then
+
+$as_echo "@%:@define TIME_WITH_SYS_TIME 1" >>confdefs.h
+
+fi
+
+ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+_ACEOF
+
+
+$as_echo "@%:@define HAVE_ST_BLKSIZE 1" >>confdefs.h
+
+fi
+
+
+
+
+
+
+ # Set LIB_SETSOCKOPT to -lnsl -lsocket if necessary.
+ pu_save_LIBS=$LIBS
+ LIB_SETSOCKOPT=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' socket; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' socket; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib -lnsl $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+
+ case "$ac_cv_search_setsockopt" in
+ -l*) LIB_SETSOCKOPT=$ac_cv_search_setsockopt
+ esac
+
+ LIBS=$pu_save_LIBS
+
+ enable_rmt() {
+ if test $ac_cv_header_sys_mtio_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remote tape header files" >&5
+$as_echo_n "checking for remote tape header files... " >&6; }
+if ${pu_cv_header_rmt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if HAVE_SGTTY_H
+# include <sgtty.h>
+#endif
+#include <sys/socket.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ pu_cv_header_rmt=yes
+else
+ pu_cv_header_rmt=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ }
+
+ for ac_header in sys/mtio.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/mtio.h" "ac_cv_header_sys_mtio_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mtio_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_MTIO_H 1
+_ACEOF
+
+fi
+
+done
+
+ { $as_echo "$as_me:${as_lineno-$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 ${pu_cv_header_mtio_check_field+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/mtio.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "mt_model" >/dev/null 2>&1; then :
+ pu_cv_header_mtio_check_field=mt_model
+else
+ pu_cv_header_mtio_check_field=mt_type
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+_ACEOF
+
+
+
+
+ if test "x$DEFAULT_RMT_DIR" != x; then
+ DEFAULT_RMT_COMMAND=$DEFAULT_RMT_DIR/rmt
+ else
+ DEFAULT_RMT_DIR='$(libexecdir)'
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$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) as_fn_error $? "Invalid argument to --with-rmt" "$LINENO" 5;;
+ /*) DEFAULT_RMT_COMMAND=$withval
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, use $withval instead" >&5
+$as_echo "no, use $withval instead" >&6; };;
+ *) as_fn_error $? "Argument to --with-rmt must be an absolute file name" "$LINENO" 5;;
+ esac
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ enable_rmt
+ if test "$PU_RMT_PROG" = ""; then
+ { $as_echo "$as_me:${as_lineno-$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
+
+
+
+ if test "x$DEFAULT_RMT_COMMAND" != x; then
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DEFAULT_RMT_COMMAND "$DEFAULT_RMT_COMMAND"
+_ACEOF
+
+ fi
+
+
+
+
+
+
+
+
+
+ for ac_header in sys/buf.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "sys/buf.h" "ac_cv_header_sys_buf_h" "#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+"
+if test "x$ac_cv_header_sys_buf_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_BUF_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+_ACEOF
+
+
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5
+$as_echo_n "checking for library containing gethostbyname... " >&6; }
+if ${ac_cv_search_gethostbyname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_gethostbyname=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_gethostbyname+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_gethostbyname+:} false; then :
+
+else
+ ac_cv_search_gethostbyname=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "getgrgid" "ac_cv_have_decl_getgrgid" "#include <grp.h>
+"
+if test "x$ac_cv_have_decl_getgrgid" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETGRGID $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getpwuid" "ac_cv_have_decl_getpwuid" "#include <pwd.h>
+"
+if test "x$ac_cv_have_decl_getpwuid" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETPWUID $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "time" "ac_cv_have_decl_time" "#include <time.h>
+"
+if test "x$ac_cv_have_decl_time" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_TIME $ac_have_decl
+_ACEOF
+
+
+ac_fn_c_check_func "$LINENO" "waitpid" "ac_cv_func_waitpid"
+if test "x$ac_cv_func_waitpid" = xyes; then :
+ $as_echo "@%:@define HAVE_WAITPID 1" >>confdefs.h
+
+else
+ case " $LIB@&t@OBJS " in
+ *" waitpid.$ac_objext "* ) ;;
+ *) LIB@&t@OBJS="$LIB@&t@OBJS waitpid.$ac_objext"
+ ;;
+esac
+
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for remote shell" >&5
+$as_echo_n "checking for remote shell... " >&6; }
+if ${tar_cv_path_RSH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RSH"; then
+ tar_cv_path_RSH=$RSH
+ else
+ tar_cv_path_RSH=no
+ for ac_file in /usr/ucb/rsh /usr/bin/remsh /usr/bin/rsh /usr/bsd/rsh \
+ /usr/bin/nsh /usr/bin/rcmd
+ do
+ # Prefer a non-symlink rsh to a symlink one, so that binaries built
+ # on AIX 4.1.4, where /usr/ucb/rsh is a symlink to /usr/bin/rsh
+ # will run on AIX 4.3.0, which has only /usr/bin/rsh.
+ if test -f $ac_file; then
+ if (test -h $ac_file) 2>/dev/null; then
+ test $tar_cv_path_RSH = no && tar_cv_path_RSH=$ac_file
+ else
+ tar_cv_path_RSH=$ac_file
+ break
+ fi
+ fi
+ done
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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 :
+ ac_fn_c_check_header_mongrel "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default"
+if test "x$ac_cv_header_netdb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_NETDB_H 1
+_ACEOF
+
+fi
+
+done
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define REMOTE_SHELL "$tar_cv_path_RSH"
+_ACEOF
+
+fi
+
+
+
+
+
+@%:@ 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:${as_lineno-$LINENO}: checking for default archive format" >&5
+$as_echo_n "checking for default archive format... " >&6; }
+
+
+
+if test -z "$DEFAULT_ARCHIVE_FORMAT"; then
+ DEFAULT_ARCHIVE_FORMAT="GNU"
+fi
+case $DEFAULT_ARCHIVE_FORMAT in
+ V7|OLDGNU|USTAR|POSIX|GNU) ;;
+ *) as_fn_error $? "Invalid format name" "$LINENO" 5;;
+esac
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DEFAULT_ARCHIVE_FORMAT ${DEFAULT_ARCHIVE_FORMAT}_FORMAT
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_ARCHIVE_FORMAT" >&5
+$as_echo "$DEFAULT_ARCHIVE_FORMAT" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$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.
+ # FIXME: Rearrange, here.
+ case $DEFAULT_ARCHIVE in
+ *[0-7][lmh])
+
+$as_echo "@%:@define DENSITY_LETTER 1" >>confdefs.h
+
+ device_prefix=`echo $DEFAULT_ARCHIVE | sed 's/0-7lmh$//'`
+ ;;
+ *[0-7])
+ device_prefix=`echo $DEFAULT_ARCHIVE | sed 's/0-7$//'`
+ ;;
+ *)
+ device_prefix=
+ ;;
+ esac
+ case "$device_prefix" in
+ ?*)
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DEVICE_PREFIX "$device_prefix"
+_ACEOF
+
+ ;;
+ esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DEFAULT_ARCHIVE "$DEFAULT_ARCHIVE"
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_ARCHIVE" >&5
+$as_echo "$DEFAULT_ARCHIVE" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$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
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_BLOCKING" >&5
+$as_echo "$DEFAULT_BLOCKING" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default quoting style" >&5
+$as_echo_n "checking for default quoting style... " >&6; }
+
+
+DEFAULT_QUOTING_STYLE="escape"
+
+
+case $DEFAULT_QUOTING_STYLE in
+ literal|shell|shell-always|c|escape|locale|clocale) ;;
+*) as_fn_error $? "Invalid quoting style" "$LINENO" 5;;
+esac
+{ $as_echo "$as_me:${as_lineno-$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
+@%:@define DEFAULT_QUOTING_STYLE $DEFAULT_QUOTING_STYLE
+_ACEOF
+
+
+# Iconv
+
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+
+
+@%:@ Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$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
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # 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%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${acl_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # 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" != yes && break ;;
+ esac
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${acl_cv_prog_gnu_ld+:} false; then :
+ $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
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes ;;
+*)
+ acl_cv_prog_gnu_ld=no ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
+$as_echo "$acl_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$acl_cv_prog_gnu_ld
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
+$as_echo_n "checking for shared library run path origin... " >&6; }
+if ${acl_cv_rpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+ acl_libname_spec="$acl_cv_libname_spec"
+ acl_library_names_spec="$acl_cv_library_names_spec"
+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ acl_hardcode_direct="$acl_cv_hardcode_direct"
+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ @%:@ Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then :
+ enableval=$enable_rpath; :
+else
+ enable_rpath=yes
+fi
+
+
+
+
+ acl_libdirstem=lib
+ acl_libdirstem2=
+ case "$host_os" in
+ solaris*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
+$as_echo_n "checking for 64-bit host... " >&6; }
+if ${gl_cv_solaris_64bit+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef _LP64
+sixtyfour bits
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
+ gl_cv_solaris_64bit=yes
+else
+ gl_cv_solaris_64bit=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ sparc*) acl_libdirstem2=lib/sparcv9 ;;
+ i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
+ esac
+ fi
+ ;;
+ *)
+ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ 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 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ fi
+ ;;
+ esac
+ test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+
+
+
+
+
+
+
+
+
+
+
+
+ use_additional=yes
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+
+@%:@ Check whether --with-libiconv-prefix was given.
+if test "${with_libiconv_prefix+set}" = set; then :
+ withval=$with_libiconv_prefix;
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
+ fi
+ fi
+
+fi
+
+ LIBICONV=
+ LTLIBICONV=
+ INCICONV=
+ LIBICONV_PREFIX=
+ HAVE_LIBICONV=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='iconv '
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
+ else
+ :
+ fi
+ else
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ dir="$additional_libdir"
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ if test "$acl_hardcode_direct" = yes; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
+ fi
+ fi
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = 'iconv'; then
+ LIBICONV_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = 'iconv'; then
+ LIBICONV_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INCICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -n "$found_la"; then
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ else
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ for found_dir in $ltrpathdirs; do
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
+ done
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+ am_save_CPPFLAGS="$CPPFLAGS"
+
+ for element in $INCICONV; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if ${am_cv_func_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$am_save_LIBS"
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
+$as_echo_n "checking for working iconv... " >&6; }
+if ${am_cv_func_iconv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ int result = 0;
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ 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_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ result |= 1;
+ iconv_close (cd_utf8_to_88591);
+ }
+ }
+ /* 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)
+ result |= 2;
+ iconv_close (cd_ascii_to_88591);
+ }
+ }
+ /* Test against AIX 6.1..7.1 bug: Buffer overrun. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304";
+ static char buf[2] = { (char)0xDE, (char)0xAD };
+ const char *inptr = input;
+ size_t inbytesleft = 1;
+ char *outptr = buf;
+ size_t outbytesleft = 1;
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
+ result |= 4;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ result |= 8;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ result |= 16;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ am_cv_func_iconv_works=yes
+else
+ am_cv_func_iconv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ LIBS="$am_save_LIBS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+
+$as_echo "@%:@define HAVE_ICONV 1" >>confdefs.h
+
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+ else
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+
+
+
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
+ if ${am_cv_proto_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ am_cv_proto_iconv_arg1=""
+else
+ am_cv_proto_iconv_arg1="const"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ 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);"
+fi
+
+ am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ { $as_echo "$as_me:${as_lineno-$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
+_ACEOF
+
+
+ fi
+
+for ac_header in iconv.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default"
+if test "x$ac_cv_header_iconv_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ICONV_H 1
+_ACEOF
+
+fi
+
+done
+
+ac_fn_c_check_type "$LINENO" "iconv_t" "ac_cv_type_iconv_t" "
+#ifdef HAVE_ICONV_H
+# include <iconv.h>
+#endif
+
+"
+if test "x$ac_cv_type_iconv_t" = xyes; then :
+ :
+else
+
+$as_echo "@%:@define iconv_t int" >>confdefs.h
+
+fi
+
+
+# Gettext.
+
+ { $as_echo "$as_me:${as_lineno-$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
+else
+ USE_NLS=yes
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+
+
+
+
+ GETTEXT_MACRO_VERSION=0.18
+
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGFMT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case "$MSGFMT" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+ ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GMSGFMT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GMSGFMT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ 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_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+ case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+ *) MSGFMT_015=$MSGFMT ;;
+ esac
+
+ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+ *) GMSGFMT_015=$GMSGFMT ;;
+ esac
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XGETTEXT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case "$XGETTEXT" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+ ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ rm -f messages.po
+
+ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+ *) XGETTEXT_015=$XGETTEXT ;;
+ esac
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGMERGE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case "$MSGMERGE" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
+ ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
+ ;;
+esac
+fi
+MSGMERGE="$ac_cv_path_MSGMERGE"
+if test "$MSGMERGE" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
+$as_echo "$MSGMERGE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$localedir" || localedir='${datadir}/locale'
+
+
+ test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+
+
+ ac_config_commands="$ac_config_commands po-directories"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
+$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
+if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <CoreFoundation/CFPreferences.h>
+int
+main ()
+{
+CFPreferencesCopyAppValue(NULL, NULL)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gt_cv_func_CFPreferencesCopyAppValue=yes
+else
+ gt_cv_func_CFPreferencesCopyAppValue=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$gt_save_LIBS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+
+$as_echo "@%:@define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
+$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
+if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <CoreFoundation/CFLocale.h>
+int
+main ()
+{
+CFLocaleCopyCurrent();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gt_cv_func_CFLocaleCopyCurrent=yes
+else
+ gt_cv_func_CFLocaleCopyCurrent=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$gt_save_LIBS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
+ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+
+$as_echo "@%:@define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
+
+ fi
+ INTL_MACOSX_LIBS=
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+ fi
+
+
+
+
+
+
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ case " $gt_needs " in
+ *" need-formatstring-macros "*) gt_api_version=3 ;;
+ *" need-ngettext "*) gt_api_version=2 ;;
+ *) gt_api_version=1 ;;
+ esac
+ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+
+
+ if test $gt_api_version -ge 3; then
+ gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+'
+ else
+ gt_revision_test_code=
+ fi
+ if test $gt_api_version -ge 2; then
+ gt_expression_test_code=' + * ngettext ("", "", 0)'
+ else
+ gt_expression_test_code=
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
+$as_echo_n "checking for GNU gettext in libc... " >&6; }
+if eval \${$gt_func_gnugettext_libc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+
+int
+main ()
+{
+
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$gt_func_gnugettext_libc=yes"
+else
+ eval "$gt_func_gnugettext_libc=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$gt_func_gnugettext_libc
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+
+
+
+
+
+ am_save_CPPFLAGS="$CPPFLAGS"
+
+ for element in $INCICONV; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if ${am_cv_func_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$am_save_LIBS"
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
+$as_echo_n "checking for working iconv... " >&6; }
+if ${am_cv_func_iconv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ int result = 0;
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ 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_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ result |= 1;
+ iconv_close (cd_utf8_to_88591);
+ }
+ }
+ /* 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)
+ result |= 2;
+ iconv_close (cd_ascii_to_88591);
+ }
+ }
+ /* Test against AIX 6.1..7.1 bug: Buffer overrun. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304";
+ static char buf[2] = { (char)0xDE, (char)0xAD };
+ const char *inptr = input;
+ size_t inbytesleft = 1;
+ char *outptr = buf;
+ size_t outbytesleft = 1;
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
+ result |= 4;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ result |= 8;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ result |= 16;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ am_cv_func_iconv_works=yes
+else
+ am_cv_func_iconv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ LIBS="$am_save_LIBS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+
+$as_echo "@%:@define HAVE_ICONV 1" >>confdefs.h
+
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+ else
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ use_additional=yes
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+
+@%:@ Check whether --with-libintl-prefix was given.
+if test "${with_libintl_prefix+set}" = set; then :
+ withval=$with_libintl_prefix;
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
+ fi
+ fi
+
+fi
+
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ LIBINTL_PREFIX=
+ HAVE_LIBINTL=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='intl '
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
+ else
+ :
+ fi
+ else
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ dir="$additional_libdir"
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ if test "$acl_hardcode_direct" = yes; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ haveit=
+ for x in $LDFLAGS $LIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
+ fi
+ fi
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = 'intl'; then
+ LIBINTL_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = 'intl'; then
+ LIBINTL_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INCINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -n "$found_la"; then
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+ else
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ for found_dir in $ltrpathdirs; do
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
+ done
+ fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
+$as_echo_n "checking for GNU gettext in libintl... " >&6; }
+if eval \${$gt_func_gnugettext_libintl+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+
+int
+main ()
+{
+
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$gt_func_gnugettext_libintl=yes"
+else
+ eval "$gt_func_gnugettext_libintl=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+
+int
+main ()
+{
+
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ eval "$gt_func_gnugettext_libintl=yes"
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"
+fi
+eval ac_res=\$$gt_func_gnugettext_libintl
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ fi
+
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
+
+
+
+ if test -n "$INTL_MACOSX_LIBS"; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+ fi
+ fi
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+
+$as_echo "@%:@define ENABLE_NLS 1" >>confdefs.h
+
+ else
+ USE_NLS=no
+ fi
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
+$as_echo_n "checking whether to use NLS... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+ if test "$USE_NLS" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$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"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
+$as_echo_n "checking how to link with libintl... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
+$as_echo "$LIBINTL" >&6; }
+
+ for element in $INCINTL; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+ fi
+
+
+$as_echo "@%:@define HAVE_GETTEXT 1" >>confdefs.h
+
+
+$as_echo "@%:@define HAVE_DCGETTEXT 1" >>confdefs.h
+
+ fi
+
+ POSUB=po
+ fi
+
+
+
+ INTLLIBS="$LIBINTL"
+
+
+
+
+
+
+
+
+# Initialize the test suite.
+ac_config_commands="$ac_config_commands tests/atconfig"
+
+ac_config_files="$ac_config_files tests/Makefile tests/atlocal"
+ # FIXME: tests/preset?
+
+AUTOM4TE=${AUTOM4TE-"${am_missing_run}autom4te"}
+
+
+
+
+@%:@ Check whether --enable-backup-scripts was given.
+if test "${enable_backup_scripts+set}" = set; then :
+ enableval=$enable_backup_scripts; case $enableval in
+ yes) BACKUP_LIBEXEC_SCRIPTS='$(BACKUP_LIBEXEC_SCRIPTS_LIST)'
+ BACKUP_SBIN_SCRIPTS='$(BACKUP_SBIN_SCRIPTS_LIST)'
+ ;;
+ esac
+fi
+
+
+
+if date +%Y-%m-%d 2>/dev/null >&2; then
+ BACKUP_SED_COND='/^\#ELSE_DATE_FORMAT_OK/,/^\#ENDIF_DATE_FORMAT_OK/d;/^\#IF_DATE_FORMAT_OK/d'
+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 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
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$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= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIB@&t@OBJS; 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=`$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.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIB@&t@OBJS=$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
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
+ as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_FLOAT_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_FNMATCH_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDALIGN_H_TRUE}" && test -z "${GL_GENERATE_STDALIGN_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDALIGN_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDARG_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_SYSEXITS_H_TRUE}" && test -z "${GL_GENERATE_SYSEXITS_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_SYSEXITS_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE}"; then
+ as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+
+ gl_libobjs=
+ gl_ltlibobjs=
+ 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 -e "$sed_drop_objext" | sort | uniq`; do
+ gl_libobjs="$gl_libobjs $i.$ac_objext"
+ gl_ltlibobjs="$gl_ltlibobjs $i.lo"
+ done
+ fi
+ gl_LIBOBJS=$gl_libobjs
+
+ gl_LTLIBOBJS=$gl_ltlibobjs
+
+
+
+ gltests_libobjs=
+ gltests_ltlibobjs=
+ 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 -e "$sed_drop_objext" | sort | uniq`; do
+ gltests_libobjs="$gltests_libobjs $i.$ac_objext"
+ gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
+ done
+ fi
+ gltests_LIBOBJS=$gltests_libobjs
+
+ gltests_LTLIBOBJS=$gltests_ltlibobjs
+
+
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # 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
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+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
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (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
+ 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
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# 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.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
+@%:@ ----------------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ 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'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in @%:@(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# 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.26.90, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_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"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -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
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-tar@gnu.org>.
+GNU tar home page: <http://www.gnu.org/software/tar/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+GNU tar config.status 1.26.90
+configured by $0, generated by GNU Autoconf 2.68,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+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
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $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.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ 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 "\$@"
+fi
+
+_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
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+ # from automake < 1.5.
+ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+
+
+
+_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" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
+ "tests/atconfig") CONFIG_COMMANDS="$CONFIG_COMMANDS tests/atconfig" ;;
+ "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
+ "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" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# 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
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+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
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ 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
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ 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 >>"\$ac_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 >>"\$ac_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
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+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 < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+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 >"$ac_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.
+
+# 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_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ 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_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+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*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append 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 '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$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 >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ 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/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_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=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$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 || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_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 || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+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
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+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
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$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 "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# 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
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$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"" || {
+ # 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 ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ 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" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+ "po-directories":C)
+ for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ # Treat a directory as a PO directory if and only if it has a
+ # POTFILES.in file. This allows packages to have multiple PO
+ # directories under different names or in different locations.
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ gt_tab=`printf '\t'`
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ POMAKEFILEDEPS="POTFILES.in"
+ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+ # on $ac_dir but don't depend on user-specified configuration
+ # parameters.
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # The set of available languages was given in configure.in.
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+ fi
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+ fi
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+ if test -f "$f"; then
+ case "$f" in
+ *.orig | *.bak | *~) ;;
+ *) cat "$f" >> "$ac_dir/Makefile" ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done ;;
+ "tests/atconfig":C) cat >tests/atconfig <<ATEOF
+@%:@ Configurable variable values for building test suites.
+@%:@ Generated by $0.
+@%:@ Copyright (C) 2010 Free Software Foundation, Inc.
+
+# The test suite will define top_srcdir=$at_top_srcdir/../.. etc.
+at_testdir='tests'
+abs_builddir='$ac_abs_builddir'
+at_srcdir='$ac_srcdir'
+abs_srcdir='$ac_abs_srcdir'
+at_top_srcdir='$ac_top_srcdir'
+abs_top_srcdir='$ac_abs_top_srcdir'
+at_top_build_prefix='$ac_top_build_prefix'
+abs_top_builddir='$ac_abs_top_builddir'
+
+# Backward compatibility with Autotest <= 2.59b:
+at_top_builddir=\$at_top_build_prefix
+
+AUTOTEST_PATH='tests'
+
+SHELL=\${CONFIG_SHELL-'$SHELL'}
+ATEOF
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/autom4te.cache/output.1 b/autom4te.cache/output.1
new file mode 100644
index 00000000..d2241a38
--- /dev/null
+++ b/autom4te.cache/output.1
@@ -0,0 +1,34479 @@
+@%:@! /bin/sh
+@%:@ Guess values for system-dependent variables and create Makefiles.
+@%:@ Generated by GNU Autoconf 2.68 for GNU tar 1.26.90.
+@%:@
+@%:@ Report bugs to <bug-tar@gnu.org>.
+@%:@
+@%:@
+@%:@ Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+@%:@ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+@%:@ Foundation, Inc.
+@%:@
+@%:@
+@%:@ This configure script is free software; the Free Software Foundation
+@%:@ gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # 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
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+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
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (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
+ 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
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# 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.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # 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
+else
+ case \`(set -o) 2>/dev/null\` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in @%:@(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ # Preserve -v and -x to the replacement shell.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ case $- in @%:@ ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+ esac
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org and bug-tar@gnu.org
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
+@%:@ ----------------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ 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'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in @%:@(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIB@&t@OBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='GNU tar'
+PACKAGE_TARNAME='tar'
+PACKAGE_VERSION='1.26.90'
+PACKAGE_STRING='GNU tar 1.26.90'
+PACKAGE_BUGREPORT='bug-tar@gnu.org'
+PACKAGE_URL='http://www.gnu.org/software/tar/'
+
+ac_unique_file="src/tar.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_header_list=
+ac_func_list=
+gl_fnmatch_required=POSIX
+gl_getopt_required=POSIX
+gl_getopt_required=POSIX
+gt_needs=
+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
+LIB@&t@OBJS
+DEFAULT_RMT_COMMAND
+DEFAULT_RMT_DIR
+PU_RMT_PROG
+LIB_SETSOCKOPT
+LIBGNU_LTLIBDEPS
+LIBGNU_LIBDEPS
+gltests_WITNESS
+NEXT_AS_FIRST_DIRECTIVE_WCHAR_H
+NEXT_WCHAR_H
+HAVE_FEATURES_H
+LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE
+LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE
+LIBUNISTRING_UNIWIDTH_H
+LIBUNISTRING_UNITYPES_H
+HAVE_UNISTD_H
+NEXT_AS_FIRST_DIRECTIVE_UNISTD_H
+NEXT_UNISTD_H
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC
+SYS_TIME_H_DEFINES_STRUCT_TIMESPEC
+TIME_H_DEFINES_STRUCT_TIMESPEC
+NEXT_AS_FIRST_DIRECTIVE_TIME_H
+NEXT_TIME_H
+GL_GENERATE_SYSEXITS_H_FALSE
+GL_GENERATE_SYSEXITS_H_TRUE
+SYSEXITS_H
+HAVE_SYSEXITS_H
+NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H
+NEXT_SYSEXITS_H
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H
+NEXT_SYS_TYPES_H
+NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H
+NEXT_SYS_STAT_H
+HAVE_STRINGS_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_FFS
+GNULIB_FFS
+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
+GL_GENERATE_STDDEF_H_FALSE
+GL_GENERATE_STDDEF_H_TRUE
+STDDEF_H
+HAVE_WCHAR_T
+REPLACE_NULL
+GL_GENERATE_STDARG_H_FALSE
+GL_GENERATE_STDARG_H_TRUE
+STDARG_H
+NEXT_AS_FIRST_DIRECTIVE_STDARG_H
+NEXT_STDARG_H
+GL_GENERATE_STDALIGN_H_FALSE
+GL_GENERATE_STDALIGN_H_TRUE
+STDALIGN_H
+NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H
+NEXT_SIGNAL_H
+REPLACE_RAISE
+REPLACE_PTHREAD_SIGMASK
+HAVE_SIGHANDLER_T
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T
+HAVE_STRUCT_SIGACTION_SA_SIGACTION
+HAVE_SIGACTION
+HAVE_SIGINFO_T
+HAVE_SIGSET_T
+HAVE_RAISE
+HAVE_PTHREAD_SIGMASK
+HAVE_POSIX_SIGNALBLOCKING
+GNULIB_SIGACTION
+GNULIB_SIGPROCMASK
+GNULIB_SIGNAL_H_SIGPIPE
+GNULIB_RAISE
+GNULIB_PTHREAD_SIGMASK
+HAVE__BOOL
+GL_GENERATE_STDBOOL_H_FALSE
+GL_GENERATE_STDBOOL_H_TRUE
+STDBOOL_H
+REPLACE_TIMEGM
+REPLACE_NANOSLEEP
+REPLACE_MKTIME
+REPLACE_LOCALTIME_R
+HAVE_TIMEGM
+HAVE_STRPTIME
+HAVE_NANOSLEEP
+HAVE_DECL_LOCALTIME_R
+GNULIB_TIME_R
+GNULIB_TIMEGM
+GNULIB_STRPTIME
+GNULIB_NANOSLEEP
+GNULIB_MKTIME
+UNDEFINE_STRTOK_R
+REPLACE_STRTOK_R
+REPLACE_STRSIGNAL
+REPLACE_STRNLEN
+REPLACE_STRNDUP
+REPLACE_STRNCAT
+REPLACE_STRERROR_R
+REPLACE_STRERROR
+REPLACE_STRCHRNUL
+REPLACE_STRCASESTR
+REPLACE_STRSTR
+REPLACE_STRDUP
+REPLACE_STPNCPY
+REPLACE_MEMMEM
+REPLACE_MEMCHR
+HAVE_STRVERSCMP
+HAVE_DECL_STRSIGNAL
+HAVE_DECL_STRERROR_R
+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_MEMCHR
+HAVE_FFSLL
+HAVE_FFSL
+HAVE_MBSLEN
+GNULIB_STRVERSCMP
+GNULIB_STRSIGNAL
+GNULIB_STRERROR_R
+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_STRNCAT
+GNULIB_STRDUP
+GNULIB_STRCHRNUL
+GNULIB_STPNCPY
+GNULIB_STPCPY
+GNULIB_RAWMEMCHR
+GNULIB_MEMRCHR
+GNULIB_MEMPCPY
+GNULIB_MEMMEM
+GNULIB_MEMCHR
+GNULIB_FFSLL
+GNULIB_FFSL
+LOCALE_FR_UTF8
+LOCALE_ZH_CN
+LOCALE_JA
+LOCALCHARSET_TESTS_ENVIRONMENT
+GLIBC21
+HAVE_LANGINFO_YESEXPR
+HAVE_LANGINFO_ERA
+HAVE_LANGINFO_T_FMT_AMPM
+HAVE_LANGINFO_CODESET
+HAVE_LANGINFO_H
+NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H
+NEXT_LANGINFO_H
+REPLACE_NL_LANGINFO
+HAVE_NL_LANGINFO
+GNULIB_NL_LANGINFO
+REPLACE_TOWLOWER
+REPLACE_ISWCNTRL
+HAVE_WCTYPE_H
+NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H
+NEXT_WCTYPE_H
+HAVE_WINT_T
+HAVE_ISWCNTRL
+REPLACE_ISWBLANK
+HAVE_WCTRANS_T
+HAVE_WCTYPE_T
+HAVE_ISWBLANK
+GNULIB_TOWCTRANS
+GNULIB_WCTRANS
+GNULIB_ISWCTYPE
+GNULIB_WCTYPE
+GNULIB_ISWBLANK
+NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H
+NEXT_INTTYPES_H
+UINT64_MAX_EQ_ULONG_MAX
+UINT32_MAX_LT_UINTMAX_MAX
+PRIPTR_PREFIX
+PRI_MACROS_BROKEN
+INT64_MAX_EQ_LONG_MAX
+INT32_MAX_LT_INTMAX_MAX
+REPLACE_STRTOIMAX
+HAVE_DECL_STRTOUMAX
+HAVE_DECL_STRTOIMAX
+HAVE_DECL_IMAXDIV
+HAVE_DECL_IMAXABS
+GNULIB_STRTOUMAX
+GNULIB_STRTOIMAX
+GNULIB_IMAXDIV
+GNULIB_IMAXABS
+GL_GENERATE_STDINT_H_FALSE
+GL_GENERATE_STDINT_H_TRUE
+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_WCHAR_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
+GNULIB_GL_UNISTD_H_GETOPT
+GETOPT_H
+HAVE_GETOPT_H
+NEXT_AS_FIRST_DIRECTIVE_GETOPT_H
+NEXT_GETOPT_H
+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_FSTAT
+GNULIB_FCHMODAT
+REPLACE_VSPRINTF
+REPLACE_VSNPRINTF
+REPLACE_VPRINTF
+REPLACE_VFPRINTF
+REPLACE_VDPRINTF
+REPLACE_VASPRINTF
+REPLACE_TMPFILE
+REPLACE_STDIO_WRITE_FUNCS
+REPLACE_STDIO_READ_FUNCS
+REPLACE_SPRINTF
+REPLACE_SNPRINTF
+REPLACE_RENAMEAT
+REPLACE_RENAME
+REPLACE_REMOVE
+REPLACE_PRINTF
+REPLACE_POPEN
+REPLACE_PERROR
+REPLACE_OBSTACK_PRINTF
+REPLACE_GETLINE
+REPLACE_GETDELIM
+REPLACE_FTELLO
+REPLACE_FTELL
+REPLACE_FSEEKO
+REPLACE_FSEEK
+REPLACE_FREOPEN
+REPLACE_FPURGE
+REPLACE_FPRINTF
+REPLACE_FOPEN
+REPLACE_FFLUSH
+REPLACE_FDOPEN
+REPLACE_FCLOSE
+REPLACE_DPRINTF
+HAVE_VDPRINTF
+HAVE_VASPRINTF
+HAVE_RENAMEAT
+HAVE_POPEN
+HAVE_PCLOSE
+HAVE_FTELLO
+HAVE_FSEEKO
+HAVE_DPRINTF
+HAVE_DECL_VSNPRINTF
+HAVE_DECL_SNPRINTF
+HAVE_DECL_OBSTACK_PRINTF
+HAVE_DECL_GETLINE
+HAVE_DECL_GETDELIM
+HAVE_DECL_FTELLO
+HAVE_DECL_FSEEKO
+HAVE_DECL_FPURGE
+GNULIB_VSPRINTF_POSIX
+GNULIB_VSNPRINTF
+GNULIB_VPRINTF_POSIX
+GNULIB_VPRINTF
+GNULIB_VFPRINTF_POSIX
+GNULIB_VFPRINTF
+GNULIB_VDPRINTF
+GNULIB_VSCANF
+GNULIB_VFSCANF
+GNULIB_VASPRINTF
+GNULIB_TMPFILE
+GNULIB_STDIO_H_SIGPIPE
+GNULIB_STDIO_H_NONBLOCKING
+GNULIB_SPRINTF_POSIX
+GNULIB_SNPRINTF
+GNULIB_SCANF
+GNULIB_RENAMEAT
+GNULIB_RENAME
+GNULIB_REMOVE
+GNULIB_PUTS
+GNULIB_PUTCHAR
+GNULIB_PUTC
+GNULIB_PRINTF_POSIX
+GNULIB_PRINTF
+GNULIB_POPEN
+GNULIB_PERROR
+GNULIB_PCLOSE
+GNULIB_OBSTACK_PRINTF_POSIX
+GNULIB_OBSTACK_PRINTF
+GNULIB_GETS
+GNULIB_GETLINE
+GNULIB_GETDELIM
+GNULIB_GETCHAR
+GNULIB_GETC
+GNULIB_FWRITE
+GNULIB_FTELLO
+GNULIB_FTELL
+GNULIB_FSEEKO
+GNULIB_FSEEK
+GNULIB_FSCANF
+GNULIB_FREOPEN
+GNULIB_FREAD
+GNULIB_FPUTS
+GNULIB_FPUTC
+GNULIB_FPURGE
+GNULIB_FPRINTF_POSIX
+GNULIB_FPRINTF
+GNULIB_FOPEN
+GNULIB_FGETS
+GNULIB_FGETC
+GNULIB_FFLUSH
+GNULIB_FDOPEN
+GNULIB_FCLOSE
+GNULIB_DPRINTF
+GL_GENERATE_FNMATCH_H_FALSE
+GL_GENERATE_FNMATCH_H_TRUE
+FNMATCH_H
+REPLACE_ITOLD
+GL_GENERATE_FLOAT_H_FALSE
+GL_GENERATE_FLOAT_H_TRUE
+FLOAT_H
+NEXT_AS_FIRST_DIRECTIVE_FLOAT_H
+NEXT_FLOAT_H
+NEXT_AS_FIRST_DIRECTIVE_FCNTL_H
+NEXT_FCNTL_H
+REPLACE_OPENAT
+REPLACE_OPEN
+REPLACE_FCNTL
+HAVE_OPENAT
+HAVE_FCNTL
+GNULIB_OPENAT
+GNULIB_OPEN
+GNULIB_NONBLOCKING
+GNULIB_FCNTL
+EOVERFLOW_VALUE
+EOVERFLOW_HIDDEN
+ENOLINK_VALUE
+ENOLINK_HIDDEN
+EMULTIHOP_VALUE
+EMULTIHOP_HIDDEN
+GL_GENERATE_ERRNO_H_FALSE
+GL_GENERATE_ERRNO_H_TRUE
+ERRNO_H
+NEXT_AS_FIRST_DIRECTIVE_ERRNO_H
+NEXT_ERRNO_H
+HAVE_DIRENT_H
+NEXT_AS_FIRST_DIRECTIVE_DIRENT_H
+NEXT_DIRENT_H
+PRAGMA_COLUMNS
+PRAGMA_SYSTEM_HEADER
+INCLUDE_NEXT_AS_FIRST_DIRECTIVE
+INCLUDE_NEXT
+pkglibexecdir
+lispdir
+REPLACE_FDOPENDIR
+REPLACE_DIRFD
+REPLACE_CLOSEDIR
+REPLACE_OPENDIR
+HAVE_ALPHASORT
+HAVE_SCANDIR
+HAVE_FDOPENDIR
+HAVE_DECL_FDOPENDIR
+HAVE_DECL_DIRFD
+HAVE_CLOSEDIR
+HAVE_REWINDDIR
+HAVE_READDIR
+HAVE_OPENDIR
+GNULIB_ALPHASORT
+GNULIB_SCANDIR
+GNULIB_FDOPENDIR
+GNULIB_DIRFD
+GNULIB_CLOSEDIR
+GNULIB_REWINDDIR
+GNULIB_READDIR
+GNULIB_OPENDIR
+HAVE_WINSOCK2_H
+HAVE_MSVC_INVALID_PARAMETER_HANDLER
+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_TTYNAME_R
+REPLACE_SYMLINK
+REPLACE_SLEEP
+REPLACE_RMDIR
+REPLACE_READLINK
+REPLACE_READ
+REPLACE_PWRITE
+REPLACE_PREAD
+REPLACE_LSEEK
+REPLACE_LINKAT
+REPLACE_LINK
+REPLACE_LCHOWN
+REPLACE_ISATTY
+REPLACE_GETPAGESIZE
+REPLACE_GETGROUPS
+REPLACE_GETLOGIN_R
+REPLACE_GETDOMAINNAME
+REPLACE_GETCWD
+REPLACE_FCHOWNAT
+REPLACE_DUP2
+REPLACE_DUP
+REPLACE_CLOSE
+REPLACE_CHOWN
+HAVE_SYS_PARAM_H
+HAVE_OS_H
+HAVE_DECL_TTYNAME_R
+HAVE_DECL_SETHOSTNAME
+HAVE_DECL_GETUSERSHELL
+HAVE_DECL_GETPAGESIZE
+HAVE_DECL_GETLOGIN_R
+HAVE_DECL_GETDOMAINNAME
+HAVE_DECL_FDATASYNC
+HAVE_DECL_FCHDIR
+HAVE_DECL_ENVIRON
+HAVE_USLEEP
+HAVE_UNLINKAT
+HAVE_SYMLINKAT
+HAVE_SYMLINK
+HAVE_SLEEP
+HAVE_SETHOSTNAME
+HAVE_READLINKAT
+HAVE_READLINK
+HAVE_PWRITE
+HAVE_PREAD
+HAVE_PIPE2
+HAVE_PIPE
+HAVE_LINKAT
+HAVE_LINK
+HAVE_LCHOWN
+HAVE_GROUP_MEMBER
+HAVE_GETPAGESIZE
+HAVE_GETLOGIN
+HAVE_GETHOSTNAME
+HAVE_GETGROUPS
+HAVE_GETDTABLESIZE
+HAVE_FTRUNCATE
+HAVE_FSYNC
+HAVE_FDATASYNC
+HAVE_FCHOWNAT
+HAVE_FCHDIR
+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_NONBLOCKING
+GNULIB_TTYNAME_R
+GNULIB_SYMLINKAT
+GNULIB_SYMLINK
+GNULIB_SLEEP
+GNULIB_SETHOSTNAME
+GNULIB_RMDIR
+GNULIB_READLINKAT
+GNULIB_READLINK
+GNULIB_READ
+GNULIB_PWRITE
+GNULIB_PREAD
+GNULIB_PIPE2
+GNULIB_PIPE
+GNULIB_LSEEK
+GNULIB_LINKAT
+GNULIB_LINK
+GNULIB_LCHOWN
+GNULIB_ISATTY
+GNULIB_GROUP_MEMBER
+GNULIB_GETUSERSHELL
+GNULIB_GETPAGESIZE
+GNULIB_GETLOGIN_R
+GNULIB_GETLOGIN
+GNULIB_GETHOSTNAME
+GNULIB_GETGROUPS
+GNULIB_GETDTABLESIZE
+GNULIB_GETDOMAINNAME
+GNULIB_GETCWD
+GNULIB_FTRUNCATE
+GNULIB_FSYNC
+GNULIB_FDATASYNC
+GNULIB_FCHOWNAT
+GNULIB_FCHDIR
+GNULIB_FACCESSAT
+GNULIB_EUIDACCESS
+GNULIB_ENVIRON
+GNULIB_DUP3
+GNULIB_DUP2
+GNULIB_DUP
+GNULIB_CLOSE
+GNULIB_CHOWN
+GNULIB_CHDIR
+REPLACE_WCTOMB
+REPLACE_UNSETENV
+REPLACE_STRTOD
+REPLACE_SETENV
+REPLACE_REALPATH
+REPLACE_REALLOC
+REPLACE_RANDOM_R
+REPLACE_PUTENV
+REPLACE_PTSNAME_R
+REPLACE_MKSTEMP
+REPLACE_MBTOWC
+REPLACE_MALLOC
+REPLACE_CANONICALIZE_FILE_NAME
+REPLACE_CALLOC
+HAVE_DECL_UNSETENV
+HAVE_UNLOCKPT
+HAVE_SYS_LOADAVG_H
+HAVE_STRUCT_RANDOM_DATA
+HAVE_STRTOULL
+HAVE_STRTOLL
+HAVE_STRTOD
+HAVE_DECL_SETENV
+HAVE_SETENV
+HAVE_RPMATCH
+HAVE_REALPATH
+HAVE_RANDOM_R
+HAVE_RANDOM_H
+HAVE_RANDOM
+HAVE_PTSNAME_R
+HAVE_PTSNAME
+HAVE_POSIX_OPENPT
+HAVE_MKSTEMPS
+HAVE_MKSTEMP
+HAVE_MKOSTEMPS
+HAVE_MKOSTEMP
+HAVE_MKDTEMP
+HAVE_GRANTPT
+HAVE_GETSUBOPT
+HAVE_DECL_GETLOADAVG
+HAVE_CANONICALIZE_FILE_NAME
+HAVE_ATOLL
+HAVE__EXIT
+GNULIB_WCTOMB
+GNULIB_UNSETENV
+GNULIB_UNLOCKPT
+GNULIB_SYSTEM_POSIX
+GNULIB_STRTOULL
+GNULIB_STRTOLL
+GNULIB_STRTOD
+GNULIB_SETENV
+GNULIB_RPMATCH
+GNULIB_REALPATH
+GNULIB_REALLOC_POSIX
+GNULIB_RANDOM_R
+GNULIB_RANDOM
+GNULIB_PUTENV
+GNULIB_PTSNAME_R
+GNULIB_PTSNAME
+GNULIB_POSIX_OPENPT
+GNULIB_MKSTEMPS
+GNULIB_MKSTEMP
+GNULIB_MKOSTEMPS
+GNULIB_MKOSTEMP
+GNULIB_MKDTEMP
+GNULIB_MBTOWC
+GNULIB_MALLOC_POSIX
+GNULIB_GRANTPT
+GNULIB_GETSUBOPT
+GNULIB_GETLOADAVG
+GNULIB_CANONICALIZE_FILE_NAME
+GNULIB_CALLOC_POSIX
+GNULIB_ATOLL
+GNULIB__EXIT
+LOCALE_FR
+REPLACE_WCSWIDTH
+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_WCSWIDTH
+HAVE_WCSTOK
+HAVE_WCSSTR
+HAVE_WCSPBRK
+HAVE_WCSSPN
+HAVE_WCSCSPN
+HAVE_WCSRCHR
+HAVE_WCSCHR
+HAVE_WCSDUP
+HAVE_WCSXFRM
+HAVE_WCSCOLL
+HAVE_WCSNCASECMP
+HAVE_WCSCASECMP
+HAVE_WCSNCMP
+HAVE_WCSCMP
+HAVE_WCSNCAT
+HAVE_WCSCAT
+HAVE_WCPNCPY
+HAVE_WCSNCPY
+HAVE_WCPCPY
+HAVE_WCSCPY
+HAVE_WCSNLEN
+HAVE_WCSLEN
+HAVE_WMEMSET
+HAVE_WMEMMOVE
+HAVE_WMEMCPY
+HAVE_WMEMCMP
+HAVE_WMEMCHR
+HAVE_WCSNRTOMBS
+HAVE_WCSRTOMBS
+HAVE_WCRTOMB
+HAVE_MBSNRTOWCS
+HAVE_MBSRTOWCS
+HAVE_MBRLEN
+HAVE_MBRTOWC
+HAVE_MBSINIT
+HAVE_BTOWC
+GNULIB_WCSWIDTH
+GNULIB_WCSTOK
+GNULIB_WCSSTR
+GNULIB_WCSPBRK
+GNULIB_WCSSPN
+GNULIB_WCSCSPN
+GNULIB_WCSRCHR
+GNULIB_WCSCHR
+GNULIB_WCSDUP
+GNULIB_WCSXFRM
+GNULIB_WCSCOLL
+GNULIB_WCSNCASECMP
+GNULIB_WCSCASECMP
+GNULIB_WCSNCMP
+GNULIB_WCSCMP
+GNULIB_WCSNCAT
+GNULIB_WCSCAT
+GNULIB_WCPNCPY
+GNULIB_WCSNCPY
+GNULIB_WCPCPY
+GNULIB_WCSCPY
+GNULIB_WCSNLEN
+GNULIB_WCSLEN
+GNULIB_WMEMSET
+GNULIB_WMEMMOVE
+GNULIB_WMEMCPY
+GNULIB_WMEMCMP
+GNULIB_WMEMCHR
+GNULIB_WCWIDTH
+GNULIB_WCSNRTOMBS
+GNULIB_WCSRTOMBS
+GNULIB_WCRTOMB
+GNULIB_MBSNRTOWCS
+GNULIB_MBSRTOWCS
+GNULIB_MBRLEN
+GNULIB_MBRTOWC
+GNULIB_MBSINIT
+GNULIB_WCTOB
+GNULIB_BTOWC
+GL_GENERATE_ALLOCA_H_FALSE
+GL_GENERATE_ALLOCA_H_TRUE
+ALLOCA_H
+ALLOCA
+GL_COND_LIBTOOL_FALSE
+GL_COND_LIBTOOL_TRUE
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+ARFLAGS
+AR
+EGREP
+GREP
+CPP
+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_URL
+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
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+YACC
+YFLAGS
+CPP
+DEFAULT_RMT_DIR
+DEFAULT_ARCHIVE_FORMAT
+DEFAULT_ARCHIVE
+DEFAULT_BLOCKING
+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
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ 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 ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ 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- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ 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_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ 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.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $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
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $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
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+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 .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ 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
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+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.26.90 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ @<:@@S|@ac_default_prefix@:>@
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ @<:@PREFIX@:>@
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+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]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of GNU tar 1.26.90:";;
+ 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
+ --disable-rpath do not hardcode runtime library paths
+ --disable-nls do not use Native Language Support
+ --enable-backup-scripts Create and install backup and restore scripts
+
+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 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
+ --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib
+ --without-libintl-prefix don't search for libintl in includedir and libdir
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ YACC The `Yet Another Compiler Compiler' implementation to use.
+ Defaults to the first program found out of: `bison -y', `byacc',
+ `yacc'.
+ YFLAGS The list of arguments that will be passed by default to @S|@YACC.
+ This script will default YFLAGS to the empty string to avoid a
+ default value of `-d' given by some make applications.
+ CPP C preprocessor
+ DEFAULT_RMT_DIR
+ Define full file name of the directory where to install `rmt'.
+ (default: @S|@(libexecdir))
+ DEFAULT_ARCHIVE_FORMAT
+ Set the default archive format. Allowed values are: V7, OLDGNU,
+ USTAR, POSIX, GNU. Default is GNU
+ DEFAULT_ARCHIVE
+ Set the name of the default archive (default: -)
+ DEFAULT_BLOCKING
+ Define default blocking factor (default: 20)
+ DEFAULT_QUOTING_STYLE
+ Set the default quoting style. Allowed values are: literal,
+ shell, shell-always, c, escape, locale, clocale . Default is
+ "escape".
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <bug-tar@gnu.org>.
+GNU tar home page: <http://www.gnu.org/software/tar/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>.
+_ACEOF
+ac_status=$?
+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" ||
+ { 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=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ 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/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+GNU tar configure 1.26.90
+generated by GNU Autoconf 2.68
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+@%:@ ac_fn_c_try_compile LINENO
+@%:@ --------------------------
+@%:@ Try to compile conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_compile
+
+@%:@ ac_fn_c_try_cpp LINENO
+@%:@ ----------------------
+@%:@ Try to preprocess conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_cpp
+
+@%:@ ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists, giving a warning if it cannot be compiled using
+@%:@ the include files in INCLUDES and setting the cache variable VAR
+@%:@ accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ------------------------------ ##
+## Report this to bug-tar@gnu.org ##
+## ------------------------------ ##"
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_header_mongrel
+
+@%:@ ac_fn_c_try_run LINENO
+@%:@ ----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded. Assumes
+@%:@ that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+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
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_run
+
+@%:@ ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+@%:@ -------------------------------------------------------
+@%:@ Tests whether HEADER exists and can be compiled using the include files in
+@%:@ INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+@%:@include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_header_compile
+
+@%:@ ac_fn_c_try_link LINENO
+@%:@ -----------------------
+@%:@ Try to link conftest.@S|@ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ 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_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_try_link
+
+@%:@ ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+@%:@ -------------------------------------------
+@%:@ Tests whether TYPE exists after having included INCLUDES, setting cache
+@%:@ variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_type
+
+@%:@ ac_fn_c_check_func LINENO FUNC VAR
+@%:@ ----------------------------------
+@%:@ Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); 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 $2
+
+/* 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 $2 ();
+/* 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_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_func
+
+@%:@ ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+@%:@ ---------------------------------------------
+@%:@ Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+@%:@ accordingly.
+ac_fn_c_check_decl ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+@%:@ifndef $as_decl_name
+@%:@ifdef __cplusplus
+ (void) $as_decl_use;
+@%:@else
+ (void) $as_decl_name;
+@%:@endif
+@%:@endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_decl
+
+@%:@ ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+@%:@ --------------------------------------------
+@%:@ Tries to find the compile-time value of EXPR in a program that includes
+@%:@ INCLUDES, setting VAR accordingly. Returns whether the value could be
+@%:@ computed
+ac_fn_c_compute_int ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !(($2) >= 0)@:>@;
+test_array @<:@0@:>@ = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@;
+test_array @<:@0@:>@ = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid; break
+else
+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !(($2) < 0)@:>@;
+test_array @<:@0@:>@ = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !(($2) >= $ac_mid)@:>@;
+test_array @<:@0@:>@ = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=$ac_mid; break
+else
+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array @<:@1 - 2 * !(($2) <= $ac_mid)@:>@;
+test_array @<:@0@:>@ = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid
+else
+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in @%:@((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+@%:@include <stdio.h>
+@%:@include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ return 1;
+ if (($2) < 0)
+ {
+ long int i = longval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%ld", i);
+ }
+ else
+ {
+ unsigned long int i = ulongval ();
+ if (i != ($2))
+ return 1;
+ 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;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+ ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+ fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} @%:@ ac_fn_c_compute_int
+
+@%:@ ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+@%:@ ----------------------------------------------------
+@%:@ Tries to find if the field MEMBER exists in type AGGR, after including
+@%:@ INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$4
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} @%:@ ac_fn_c_check_member
+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.26.90, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$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= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $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 &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in @%:@((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$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" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+as_fn_append ac_header_list " fcntl.h"
+as_fn_append ac_header_list " linux/fd.h"
+as_fn_append ac_header_list " memory.h"
+as_fn_append ac_header_list " net/errno.h"
+as_fn_append ac_header_list " sgtty.h"
+as_fn_append ac_header_list " string.h"
+as_fn_append ac_header_list " sys/param.h"
+as_fn_append ac_header_list " sys/device.h"
+as_fn_append ac_header_list " sys/gentape.h"
+as_fn_append ac_header_list " sys/inet.h"
+as_fn_append ac_header_list " sys/io/trioctl.h"
+as_fn_append ac_header_list " sys/mtio.h"
+as_fn_append ac_header_list " sys/time.h"
+as_fn_append ac_header_list " sys/tprintf.h"
+as_fn_append ac_header_list " sys/tape.h"
+as_fn_append ac_header_list " unistd.h"
+as_fn_append ac_header_list " locale.h"
+as_fn_append ac_func_list " flockfile"
+as_fn_append ac_func_list " funlockfile"
+as_fn_append ac_header_list " features.h"
+as_fn_append ac_header_list " linewrap.h"
+as_fn_append ac_func_list " pathconf"
+as_fn_append ac_func_list " btowc"
+as_fn_append ac_func_list " canonicalize_file_name"
+as_fn_append ac_func_list " getcwd"
+as_fn_append ac_func_list " readlink"
+as_fn_append ac_func_list " realpath"
+as_fn_append ac_func_list " readlinkat"
+as_fn_append ac_func_list " chown"
+as_fn_append ac_func_list " fchown"
+as_fn_append ac_func_list " _set_invalid_parameter_handler"
+as_fn_append ac_header_list " sys/socket.h"
+as_fn_append ac_func_list " fchdir"
+as_fn_append ac_header_list " dirent.h"
+as_fn_append ac_func_list " fdopendir"
+as_fn_append ac_func_list " fcntl"
+as_fn_append ac_func_list " symlink"
+as_fn_append ac_func_list " mempcpy"
+as_fn_append ac_func_list " isblank"
+as_fn_append ac_func_list " iswctype"
+as_fn_append ac_func_list " mbsrtowcs"
+as_fn_append ac_func_list " wmemchr"
+as_fn_append ac_func_list " wmemcpy"
+as_fn_append ac_func_list " wmempcpy"
+as_fn_append ac_header_list " wctype.h"
+gl_fnmatch_required=GNU
+as_fn_append ac_header_list " stdio_ext.h"
+as_fn_append ac_func_list " __fpending"
+as_fn_append ac_func_list " fstatat"
+as_fn_append ac_func_list " futimens"
+as_fn_append ac_func_list " getdelim"
+as_fn_append ac_func_list " getdtablesize"
+gl_getopt_required=GNU
+as_fn_append ac_header_list " getopt.h"
+as_fn_append ac_func_list " gettimeofday"
+as_fn_append ac_func_list " nanotime"
+as_fn_append ac_header_list " wchar.h"
+as_fn_append ac_header_list " stdint.h"
+as_fn_append ac_header_list " inttypes.h"
+as_fn_append ac_func_list " iswcntrl"
+as_fn_append ac_func_list " iswblank"
+as_fn_append ac_header_list " langinfo.h"
+as_fn_append ac_func_list " lchmod"
+as_fn_append ac_func_list " link"
+as_fn_append ac_func_list " openat"
+as_fn_append ac_func_list " linkat"
+as_fn_append ac_func_list " lstat"
+as_fn_append ac_func_list " mbsinit"
+as_fn_append ac_func_list " mbrtowc"
+as_fn_append ac_header_list " sys/mman.h"
+as_fn_append ac_func_list " mprotect"
+as_fn_append ac_func_list " mkfifo"
+as_fn_append ac_func_list " mkfifoat"
+as_fn_append ac_func_list " mknodat"
+as_fn_append ac_func_list " mknod"
+as_fn_append ac_func_list " alarm"
+as_fn_append ac_func_list " nl_langinfo"
+as_fn_append ac_header_list " priv.h"
+as_fn_append ac_func_list " wcscoll"
+as_fn_append ac_func_list " renameat"
+as_fn_append ac_func_list " setenv"
+as_fn_append ac_func_list " sleep"
+as_fn_append ac_func_list " snprintf"
+as_fn_append ac_func_list " strdup"
+as_fn_append ac_header_list " strings.h"
+as_fn_append ac_func_list " strndup"
+as_fn_append ac_func_list " strtoumax"
+as_fn_append ac_func_list " symlinkat"
+as_fn_append ac_header_list " sys/stat.h"
+as_fn_append ac_header_list " sysexits.h"
+as_fn_append ac_func_list " localtime_r"
+as_fn_append ac_func_list " pipe"
+as_fn_append ac_header_list " utime.h"
+as_fn_append ac_func_list " futimes"
+as_fn_append ac_func_list " futimesat"
+as_fn_append ac_func_list " utimensat"
+as_fn_append ac_func_list " lutimes"
+as_fn_append ac_func_list " vasnprintf"
+as_fn_append ac_func_list " wcrtomb"
+as_fn_append ac_func_list " wcwidth"
+as_fn_append ac_header_list " netdb.h"
+as_fn_append ac_header_list " sys/wait.h"
+as_fn_append ac_header_list " pwd.h"
+as_fn_append ac_header_list " grp.h"
+as_fn_append ac_func_list " setlocale"
+as_fn_append ac_func_list " fchmod"
+as_fn_append ac_func_list " fsync"
+gt_needs="$gt_needs need-formatstring-macros"
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$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)
+ { $as_echo "$as_me:${as_lineno-$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
+ # 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:${as_lineno-$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:${as_lineno-$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:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$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=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$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_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+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
+
+
+
+ac_aux_dir=
+for ac_dir in build-aux "$srcdir"/build-aux; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+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"
+
+
+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
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# 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.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in @%:@((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ 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
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$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_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+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`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # 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".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $.
+# By default was `s,x,x', remove it if useless.
+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`
+
+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=
+ { $as_echo "$as_me:${as_lineno-$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
+
+# 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:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; 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:${as_lineno-$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:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; 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:${as_lineno-$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:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$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:${as_lineno-$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 ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # 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_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$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 eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+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
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='tar'
+ VERSION='1.26.90'
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+
+{ $as_echo "$as_me:${as_lineno-$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}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ { echo "$as_me:$LINENO: $_am_tar --version" >&5
+ ($_am_tar --version) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && break
+ done
+ am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x ustar -w "$$tardir"'
+ am__tar_='pax -L -x ustar -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+ am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+ am__untar='cpio -i -H ustar -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_ustar}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+ (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+ ($am__untar <conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+if ${am_cv_prog_tar_ustar+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_prog_tar_ustar=$_am_tool
+fi
+
+{ $as_echo "$as_me:${as_lineno-$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
+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
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $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.
+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_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+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
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $@%:@ != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ 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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $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.
+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_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+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.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&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 | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; 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'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+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 | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+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 | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; 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 | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$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 :
+
+fi
+
+ac_ext=c
+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
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$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
+# 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
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+@%:@ Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $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
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ 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
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ 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
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ 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
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $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 $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
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # 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_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $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.
+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_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_YACC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$YACC"; then
+ ac_cv_prog_YACC="$YACC" # 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_YACC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+YACC=$ac_cv_prog_YACC
+if test -n "$YACC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
+$as_echo "$YACC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$YACC" && break
+done
+test -n "$YACC" || YACC="yacc"
+
+
+ac_ext=c
+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
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_prog_CPP+:} false; then :
+ $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"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@ifdef __STDC__
+@%:@ include <limits.h>
+@%:@else
+@%:@ include <assert.h>
+@%:@endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+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
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_path_GREP+:} false; then :
+ $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
+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.
+ # 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
+ $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"
+ $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
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $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
+ 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
+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.
+ # 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
+ $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"
+ $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
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5
+$as_echo_n "checking for Minix Amsterdam compiler... " >&6; }
+if ${gl_cv_c_amsterdam_compiler+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __ACK__
+Amsterdam
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Amsterdam" >/dev/null 2>&1; then :
+ gl_cv_c_amsterdam_compiler=yes
+else
+ gl_cv_c_amsterdam_compiler=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5
+$as_echo "$gl_cv_c_amsterdam_compiler" >&6; }
+ if test -z "$AR"; then
+ if test $gl_cv_c_amsterdam_compiler = yes; then
+ AR='cc -c.a'
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='-o'
+ fi
+ else
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # 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_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR="ar"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='cru'
+ fi
+ fi
+ else
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='cru'
+ fi
+ fi
+
+
+ if test -z "$RANLIB"; then
+ if test $gl_cv_c_amsterdam_compiler = yes; then
+ RANLIB=':'
+ else
+ 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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # 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_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $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.
+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_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+ fi
+ fi
+
+
+if test "x$CC" != xcc; then
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$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=`$as_echo "$2" |
+ sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+# Make sure it works both with $CC and with simple cc.
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+rm -f conftest2.*
+if { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } &&
+ test -f conftest2.$ac_objext && { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; };
+then
+ eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+ if test "x$CC" != xcc; then
+ # Test first that cc exists at all.
+ if { ac_try='cc -c conftest.$ac_ext >&5'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+ rm -f conftest2.*
+ if { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } &&
+ test -f conftest2.$ac_objext && { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; };
+ then
+ # cc works too.
+ :
+ else
+ # cc exists but doesn't like -o.
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
+ fi
+ fi
+ fi
+else
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
+fi
+rm -f core conftest*
+
+fi
+if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+$as_echo "@%:@define NO_MINUS_C_MINUS_O 1" >>confdefs.h
+
+fi
+
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+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.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $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 &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $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` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
+ MINIX=yes
+else
+ MINIX=
+fi
+
+
+ if test "$MINIX" = yes; then
+
+$as_echo "@%:@define _POSIX_SOURCE 1" >>confdefs.h
+
+
+$as_echo "@%:@define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+$as_echo "@%:@define _MINIX 1" >>confdefs.h
+
+ fi
+
+ case "$host_os" in
+ hpux*)
+
+$as_echo "@%:@define _XOPEN_SOURCE 500" >>confdefs.h
+
+ ;;
+ esac
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# define __EXTENSIONS__ 1
+ $ac_includes_default
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_safe_to_define___extensions__=yes
+else
+ ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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 &&
+ $as_echo "@%:@define __EXTENSIONS__ 1" >>confdefs.h
+
+ $as_echo "@%:@define _ALL_SOURCE 1" >>confdefs.h
+
+ $as_echo "@%:@define _DARWIN_C_SOURCE 1" >>confdefs.h
+
+ $as_echo "@%:@define _GNU_SOURCE 1" >>confdefs.h
+
+ $as_echo "@%:@define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+ $as_echo "@%:@define _TANDEM_SOURCE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_largefile_source+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_sys_largefile_source=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@define _LARGEFILE_SOURCE 1
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_sys_largefile_source=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_cv_sys_largefile_source=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+@%:@define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
+_ACEOF
+;;
+esac
+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.
+# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+if test $ac_cv_sys_largefile_source != unknown; then
+
+$as_echo "@%:@define HAVE_FSEEKO 1" >>confdefs.h
+
+fi
+
+@%:@ Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_largefile_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_file_offset_bits+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@define _FILE_OFFSET_BITS 64
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_large_files+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@define _LARGE_FILES 1
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+@%:@define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ fi
+
+
+fi
+
+ case $ac_cv_prog_cc_stdc in @%:@(
+ no) :
+ ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; @%:@(
+ *) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
+$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
+if ${ac_cv_prog_cc_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdio.h>
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+#define debug(...) fprintf (stderr, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+ int x = 1234;
+ int y = 5678;
+ debug ("Flag");
+ debug ("X = %d\n", x);
+ showlist (The first, second, and third items.);
+ report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+ your preprocessor is broken;
+#endif
+#if BIG_OK
+#else
+ your preprocessor is broken;
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+ int datasize;
+ double data[];
+};
+
+struct named_init {
+ int number;
+ const wchar_t *name;
+ double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+ // See if C++-style comments work.
+ // Iterate through items via the restricted pointer.
+ // Also check for declarations in for loops.
+ for (unsigned int i = 0; *(text+i) != '\0'; ++i)
+ continue;
+ return 0;
+}
+
+// Check varargs and va_copy.
+static void
+test_varargs (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ va_list args_copy;
+ va_copy (args_copy, args);
+
+ const char *str;
+ int number;
+ float fnumber;
+
+ while (*format)
+ {
+ switch (*format++)
+ {
+ case 's': // string
+ str = va_arg (args_copy, const char *);
+ break;
+ case 'd': // int
+ number = va_arg (args_copy, int);
+ break;
+ case 'f': // float
+ fnumber = va_arg (args_copy, double);
+ break;
+ default:
+ break;
+ }
+ }
+ va_end (args_copy);
+ va_end (args);
+}
+
+int
+main ()
+{
+
+ // Check bool.
+ _Bool success = false;
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ test_varargs ("s, d' f .", "string", 65, 34.234);
+ test_varargs_macros ();
+
+ // Check flexible array members.
+ struct incomplete_array *ia =
+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ ia->datasize = 10;
+ for (int i = 0; i < ia->datasize; ++i)
+ ia->data[i] = i * 1.234;
+
+ // Check named initializers.
+ struct named_init ni = {
+ .number = 34,
+ .name = L"Test wide string",
+ .average = 543.34343,
+ };
+
+ ni.number = 58;
+
+ int dynamic_array[ni.number];
+ dynamic_array[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+ || dynamic_array[ni.number - 1] != 543);
+
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c99" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c99"
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$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
+else
+ ac_cv_prog_cc_stdc=no
+fi
+
+fi
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_prog_cc_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+
+ case $ac_cv_prog_cc_stdc in @%:@(
+ no) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;; @%:@(
+ '') :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;; @%:@(
+ *) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5
+$as_echo "$ac_cv_prog_cc_stdc" >&6; } ;;
+esac
+
+
+
+
+ # Code from module alloca:
+ # Code from module alloca-opt:
+ # Code from module allocator:
+ # Code from module areadlink:
+ # Code from module areadlinkat:
+ # Code from module argmatch:
+ # Code from module argp:
+ # Code from module argp-version-etc:
+ # Code from module at-internal:
+ # Code from module backupfile:
+ # Code from module bitrotate:
+ # Code from module btowc:
+ # Code from module c-ctype:
+ # Code from module c-strcase:
+ # Code from module c-strcaseeq:
+ # Code from module canonicalize-lgpl:
+ # Code from module careadlinkat:
+ # Code from module chdir:
+ # Code from module chdir-long:
+ # Code from module chown:
+ # Code from module clock-time:
+ # Code from module cloexec:
+ # Code from module close:
+ # Code from module close-stream:
+ # Code from module closedir:
+ # Code from module closeout:
+ # Code from module configmake:
+ # Code from module d-ino:
+ # Code from module dirent:
+ # Code from module dirent-safer:
+ # Code from module dirfd:
+ # Code from module dirname:
+ # Code from module dirname-lgpl:
+ # Code from module dosname:
+ # Code from module double-slash-root:
+ # Code from module dup:
+ # Code from module dup2:
+ # Code from module environ:
+ # Code from module errno:
+ # Code from module error:
+ # Code from module exclude:
+ # Code from module exitfail:
+ # Code from module extensions:
+
+ # Code from module fchdir:
+ # Code from module fcntl:
+ # Code from module fcntl-h:
+ # Code from module fd-hook:
+ # Code from module fdopendir:
+ # Code from module fdutimensat:
+ # Code from module fileblocks:
+ # Code from module filename:
+ # Code from module filenamecat-lgpl:
+ # Code from module float:
+ # Code from module fnmatch:
+ # Code from module fnmatch-gnu:
+ # Code from module fpending:
+ # Code from module fseek:
+ # Code from module fseeko:
+
+ # Code from module fstat:
+ # Code from module fstatat:
+ # Code from module full-write:
+ # Code from module futimens:
+ # Code from module getcwd:
+ # Code from module getcwd-lgpl:
+ # Code from module getdelim:
+ # Code from module getdtablesize:
+ # Code from module getline:
+ # Code from module getopt-gnu:
+ # Code from module getopt-posix:
+ # Code from module getpagesize:
+ # Code from module gettext:
+ # Code from module gettext-h:
+ # Code from module gettime:
+ # Code from module gettimeofday:
+ # Code from module gitlog-to-changelog:
+ # Code from module hash:
+ # Code from module havelib:
+ # Code from module human:
+ # Code from module include_next:
+ # Code from module inline:
+ # Code from module intprops:
+ # Code from module inttostr:
+ # Code from module inttypes:
+ # Code from module inttypes-incomplete:
+ # Code from module iswblank:
+ # Code from module langinfo:
+ # Code from module largefile:
+
+ # Code from module lchown:
+ # Code from module link:
+ # Code from module link-follow:
+ # Code from module linkat:
+ # Code from module localcharset:
+ # Code from module lseek:
+ # Code from module lstat:
+ # Code from module malloc-gnu:
+ # Code from module malloc-posix:
+ # Code from module malloca:
+ # Code from module mbchar:
+ # Code from module mbrtowc:
+ # Code from module mbscasecmp:
+ # Code from module mbsinit:
+ # Code from module mbsrtowcs:
+ # Code from module mbtowc:
+ # Code from module mbuiter:
+ # Code from module memchr:
+ # Code from module mempcpy:
+ # Code from module memrchr:
+ # Code from module mkdtemp:
+ # Code from module mkfifo:
+ # Code from module mkfifoat:
+ # Code from module mknod:
+ # Code from module mktime:
+ # Code from module modechange:
+ # Code from module msvc-inval:
+ # Code from module msvc-nothrow:
+ # Code from module multiarch:
+ # Code from module nl_langinfo:
+ # Code from module nocrash:
+ # Code from module obstack:
+ # Code from module open:
+ # Code from module openat:
+ # Code from module openat-die:
+ # Code from module openat-h:
+ # Code from module opendir:
+ # Code from module parse-datetime:
+ # Code from module pathmax:
+ # Code from module priv-set:
+ # Code from module progname:
+ # Code from module quote:
+ # Code from module quotearg:
+ # Code from module quotearg-simple:
+ # Code from module raise:
+ # Code from module rawmemchr:
+ # Code from module read:
+ # Code from module readdir:
+ # Code from module readlink:
+ # Code from module readlinkat:
+ # Code from module realloc-posix:
+ # Code from module regex:
+ # Code from module rename:
+ # Code from module renameat:
+ # Code from module rewinddir:
+ # Code from module rmdir:
+ # Code from module rpmatch:
+ # Code from module safe-read:
+ # Code from module safe-write:
+ # Code from module same-inode:
+ # Code from module save-cwd:
+ # Code from module savedir:
+ # Code from module setenv:
+ # Code from module signal-h:
+ # Code from module size_max:
+ # Code from module sleep:
+ # Code from module snippet/_Noreturn:
+ # Code from module snippet/arg-nonnull:
+ # Code from module snippet/c++defs:
+ # Code from module snippet/warn-on-use:
+ # Code from module snprintf:
+ # Code from module ssize_t:
+ # Code from module stat:
+ # Code from module stat-macros:
+ # Code from module stat-time:
+ # Code from module stdalign:
+ # Code from module stdarg:
+
+
+
+ # Code from module stdbool:
+ # Code from module stddef:
+ # Code from module stdint:
+ # Code from module stdio:
+ # Code from module stdlib:
+ # Code from module stpcpy:
+ # Code from module strcase:
+ # Code from module strchrnul:
+ # Code from module strdup-posix:
+ # Code from module streq:
+ # Code from module strerror:
+ # Code from module strerror-override:
+ # Code from module string:
+ # Code from module strings:
+ # Code from module strndup:
+ # Code from module strnlen:
+ # Code from module strnlen1:
+ # Code from module strtol:
+ # Code from module strtoul:
+ # Code from module strtoull:
+ # Code from module strtoumax:
+ # Code from module symlink:
+ # Code from module symlinkat:
+ # Code from module sys_stat:
+ # Code from module sys_time:
+ # Code from module sys_types:
+ # Code from module sysexits:
+ # Code from module tempname:
+ # Code from module time:
+ # Code from module time_r:
+ # Code from module timespec:
+ # Code from module unistd:
+ # Code from module unistd-safer:
+ # Code from module unitypes:
+ # Code from module uniwidth/base:
+ # Code from module uniwidth/width:
+ # Code from module unlinkdir:
+ # Code from module unlocked-io:
+ # Code from module unsetenv:
+ # Code from module utimens:
+ # Code from module utimensat:
+ # Code from module vasnprintf:
+ # Code from module vasprintf:
+ # Code from module verify:
+ # Code from module version-etc:
+ # Code from module version-etc-fsf:
+ # Code from module vsnprintf:
+ # Code from module wchar:
+ # Code from module wcrtomb:
+ # Code from module wctype-h:
+ # Code from module wcwidth:
+ # Code from module write:
+ # Code from module xalloc:
+ # Code from module xalloc-die:
+ # Code from module xalloc-oversized:
+ # Code from module xgetcwd:
+ # Code from module xsize:
+ # Code from module xstrndup:
+ # Code from module xstrtol:
+ # Code from module xstrtoumax:
+ # Code from module xvasprintf:
+
+
+@%:@ Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_largefile_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_file_offset_bits+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@define _FILE_OFFSET_BITS 64
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+@%:@define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_large_files+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@define _LARGE_FILES 1
+@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+@%:@define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
+$as_echo_n "checking for library containing strerror... " >&6; }
+if ${ac_cv_search_strerror+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 strerror ();
+int
+main ()
+{
+return strerror ();
+ ;
+ return 0;
+}
+_ACEOF
+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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_strerror=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_strerror+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_strerror+:} false; then :
+
+else
+ ac_cv_search_strerror=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+$as_echo_n "checking for inline... " >&6; }
+if ${ac_cv_c_inline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_inline=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+$as_echo "$ac_cv_c_inline" >&6; }
+
+case $ac_cv_c_inline in
+ inline | yes) ;;
+ *)
+ case $ac_cv_c_inline in
+ no) ac_val=;;
+ *) ac_val=$ac_cv_c_inline;;
+ esac
+ cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+ ;;
+esac
+
+
+
+
+
+ for ac_header in $ac_header_list
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+for ac_header in sys/buf.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "sys/buf.h" "ac_cv_header_sys_buf_h" "#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+"
+if test "x$ac_cv_header_sys_buf_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_BUF_H 1
+_ACEOF
+
+fi
+
+done
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_header_sys_wait_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/wait.h>
+#ifndef WEXITSTATUS
+# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
+#endif
+#ifndef WIFEXITED
+# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
+#endif
+
+int
+main ()
+{
+ int s;
+ wait (&s);
+ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_sys_wait_h=yes
+else
+ ac_cv_header_sys_wait_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_SYS_WAIT_H 1" >>confdefs.h
+
+fi
+
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/types.h defines makedev" >&5
+$as_echo_n "checking whether sys/types.h defines makedev... " >&6; }
+if ${ac_cv_header_sys_types_h_makedev+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <sys/types.h>
+int
+main ()
+{
+return makedev(0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_header_sys_types_h_makedev=yes
+else
+ ac_cv_header_sys_types_h_makedev=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ac_fn_c_check_header_mongrel "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mkdev_h" = xyes; then :
+
+$as_echo "@%:@define MAJOR_IN_MKDEV 1" >>confdefs.h
+
+fi
+
+
+
+ if test $ac_cv_header_sys_mkdev_h = no; then
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_sysmacros_h" = xyes; then :
+
+$as_echo "@%:@define MAJOR_IN_SYSMACROS 1" >>confdefs.h
+
+fi
+
+
+ fi
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5
+$as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
+if ${ac_cv_header_stat_broken+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#if defined S_ISBLK && defined S_IFDIR
+extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1];
+#endif
+
+#if defined S_ISBLK && defined S_IFCHR
+extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1];
+#endif
+
+#if defined S_ISLNK && defined S_IFREG
+extern char c3[S_ISLNK (S_IFREG) ? -1 : 1];
+#endif
+
+#if defined S_ISSOCK && defined S_IFREG
+extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stat_broken=no
+else
+ ac_cv_header_stat_broken=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define STAT_MACROS_BROKEN 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "@%:@define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_fstype string in struct stat" >&5
+$as_echo_n "checking for st_fstype string in struct stat... " >&6; }
+if ${diff_cv_st_fstype_string+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/stat.h>
+int
+main ()
+{
+struct stat s; s.st_fstype[0] = 'x';
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ diff_cv_st_fstype_string=yes
+else
+ diff_cv_st_fstype_string=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_ST_FSTYPE_STRING 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
+$as_echo_n "checking return type of signal handlers... " >&6; }
+if ${ac_cv_type_signal+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <signal.h>
+
+int
+main ()
+{
+return *(signal (0, 0)) (0) == 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_type_signal=int
+else
+ ac_cv_type_signal=void
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
+if test "x$ac_cv_type_mode_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define mode_t int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
+if test "x$ac_cv_type_pid_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define pid_t int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
+if test "x$ac_cv_type_off_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define off_t long int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define size_t unsigned int
+_ACEOF
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
+$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
+if ${ac_cv_type_uid_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "uid_t" >/dev/null 2>&1; then :
+ ac_cv_type_uid_t=yes
+else
+ ac_cv_type_uid_t=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
+$as_echo "$ac_cv_type_uid_t" >&6; }
+if test $ac_cv_type_uid_t = no; then
+
+$as_echo "@%:@define uid_t int" >>confdefs.h
+
+
+$as_echo "@%:@define gid_t int" >>confdefs.h
+
+fi
+
+ac_fn_c_check_type "$LINENO" "major_t" "ac_cv_type_major_t" "$ac_includes_default"
+if test "x$ac_cv_type_major_t" = xyes; then :
+
+else
+
+$as_echo "@%:@define major_t int" >>confdefs.h
+
+fi
+
+ac_fn_c_check_type "$LINENO" "minor_t" "ac_cv_type_minor_t" "$ac_includes_default"
+if test "x$ac_cv_type_minor_t" = xyes; then :
+
+else
+
+$as_echo "@%:@define minor_t int" >>confdefs.h
+
+fi
+
+ac_fn_c_check_type "$LINENO" "dev_t" "ac_cv_type_dev_t" "$ac_includes_default"
+if test "x$ac_cv_type_dev_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define dev_t unsigned
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "ino_t" "ac_cv_type_ino_t" "$ac_includes_default"
+if test "x$ac_cv_type_ino_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define ino_t unsigned
+_ACEOF
+
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
+$as_echo_n "checking for ssize_t... " >&6; }
+if ${gt_cv_ssize_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main ()
+{
+int x = sizeof (ssize_t *) + sizeof (ssize_t);
+ return !x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_ssize_t=yes
+else
+ gt_cv_ssize_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5
+$as_echo "$gt_cv_ssize_t" >&6; }
+ if test $gt_cv_ssize_t = no; then
+
+$as_echo "@%:@define ssize_t int" >>confdefs.h
+
+ fi
+
+
+# gnulib modules
+
+
+
+
+
+ LIBC_FATAL_STDERR_=1
+ export LIBC_FATAL_STDERR_
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments. Useless!
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
+$as_echo_n "checking for working alloca.h... " >&6; }
+if ${ac_cv_working_alloca_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+@%:@include <alloca.h>
+int
+main ()
+{
+char *p = (char *) alloca (2 * sizeof (int));
+ if (p) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_working_alloca_h=yes
+else
+ ac_cv_working_alloca_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_ALLOCA_H 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
+$as_echo_n "checking for alloca... " >&6; }
+if ${ac_cv_func_alloca_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# ifdef HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+void *alloca (size_t);
+# endif
+# endif
+# endif
+# endif
+#endif
+
+int
+main ()
+{
+char *p = (char *) alloca (1);
+ if (p) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_func_alloca_works=yes
+else
+ ac_cv_func_alloca_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h
+
+else
+ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble. Some versions do not even contain alloca or
+# contain a buggy version. If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+
+
+
+
+
+ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
+
+$as_echo "@%:@define C_ALLOCA 1" >>confdefs.h
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether 'alloca.c' needs Cray hooks" >&5
+$as_echo_n "checking whether 'alloca.c' needs Cray hooks... " >&6; }
+if ${ac_cv_os_cray+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined CRAY && ! defined CRAY2
+webecray
+#else
+wenotbecray
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "webecray" >/dev/null 2>&1; then :
+ ac_cv_os_cray=yes
+else
+ ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define CRAY_STACKSEG_END $ac_func
+_ACEOF
+
+ break
+fi
+
+ done
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
+$as_echo_n "checking stack direction for C alloca... " >&6; }
+if ${ac_cv_c_stack_direction+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_c_stack_direction=0
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+find_stack_direction (int *addr, int depth)
+{
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
+}
+
+int
+main (int argc, char **argv)
+{
+ return find_stack_direction (0, argc + !argv + 20) < 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_stack_direction=1
+else
+ ac_cv_c_stack_direction=-1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $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
+_ACEOF
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
+$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
+if ${ac_cv_c_restrict+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_restrict=no
+ # The order here caters to the fact that C++ does not require restrict.
+ for ac_kw in __restrict __restrict__ _Restrict restrict; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+typedef int * int_ptr;
+ 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)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_restrict=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_restrict" != no && break
+ done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
+$as_echo "$ac_cv_c_restrict" >&6; }
+
+ case $ac_cv_c_restrict in
+ restrict) ;;
+ no) $as_echo "@%:@define restrict /**/" >>confdefs.h
+ ;;
+ *) cat >>confdefs.h <<_ACEOF
+@%:@define restrict $ac_cv_c_restrict
+_ACEOF
+ ;;
+ esac
+
+ac_fn_c_check_decl "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_clearerr_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_feof_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_ferror_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fflush_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fgets_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputs_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fread_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fwrite_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getchar_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_putc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_PUTC_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_putchar_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl
+_ACEOF
+
+
+
+
+ for ac_func in $ac_func_list
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+
+
+
+ XGETTEXT_EXTRA_OPTIONS=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5
+$as_echo_n "checking for d_ino member in directory struct... " >&6; }
+if ${gl_cv_struct_dirent_d_ino+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_struct_dirent_d_ino=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.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);
+ if (! e)
+ return 2;
+ if (stat (e->d_name, &st) != 0)
+ return 3;
+ if (e->d_ino != st.st_ino)
+ return 4;
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_struct_dirent_d_ino=yes
+else
+ gl_cv_struct_dirent_d_ino=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5
+$as_echo "$gl_cv_struct_dirent_d_ino" >&6; }
+ if test $gl_cv_struct_dirent_d_ino = yes; then
+
+$as_echo "@%:@define D_INO_IN_DIRENT 1" >>confdefs.h
+
+ fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5
+$as_echo_n "checking for long file names... " >&6; }
+if ${ac_cv_sys_long_file_names+:} false; then :
+ $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:
+# . the current directory, where building will happen
+# $prefix/lib where we will be installing things
+# $exec_prefix/lib likewise
+# $TMPDIR if set, where it might want to write temporary files
+# /tmp where it might want to write temporary files
+# /var/tmp likewise
+# /usr/tmp likewise
+for ac_dir in . "$TMPDIR" /tmp /var/tmp /usr/tmp "$prefix/lib" "$exec_prefix/lib"; do
+ # Skip $TMPDIR if it is empty or bogus, and skip $exec_prefix/lib
+ # in the usual case where exec_prefix is '${prefix}'.
+ case $ac_dir in #(
+ . | /* | ?:[\\/]*) ;; #(
+ *) continue;;
+ esac
+ test -w "$ac_dir/." || continue # It is less confusing to not echo anything here.
+ ac_xdir=$ac_dir/cf$$
+ (umask 077 && mkdir "$ac_xdir" 2>/dev/null) || continue
+ ac_tf1=$ac_xdir/conftest9012345
+ ac_tf2=$ac_xdir/conftest9012346
+ touch "$ac_tf1" 2>/dev/null && test -f "$ac_tf1" && test ! -f "$ac_tf2" ||
+ ac_cv_sys_long_file_names=no
+ rm -f -r "$ac_xdir" 2>/dev/null
+ test $ac_cv_sys_long_file_names = no && break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_LONG_FILE_NAMES 1" >>confdefs.h
+
+fi
+
+
+
+
+ GNULIB_BTOWC=0;
+ GNULIB_WCTOB=0;
+ GNULIB_MBSINIT=0;
+ GNULIB_MBRTOWC=0;
+ GNULIB_MBRLEN=0;
+ GNULIB_MBSRTOWCS=0;
+ GNULIB_MBSNRTOWCS=0;
+ GNULIB_WCRTOMB=0;
+ GNULIB_WCSRTOMBS=0;
+ GNULIB_WCSNRTOMBS=0;
+ GNULIB_WCWIDTH=0;
+ GNULIB_WMEMCHR=0;
+ GNULIB_WMEMCMP=0;
+ GNULIB_WMEMCPY=0;
+ GNULIB_WMEMMOVE=0;
+ GNULIB_WMEMSET=0;
+ GNULIB_WCSLEN=0;
+ GNULIB_WCSNLEN=0;
+ GNULIB_WCSCPY=0;
+ GNULIB_WCPCPY=0;
+ GNULIB_WCSNCPY=0;
+ GNULIB_WCPNCPY=0;
+ GNULIB_WCSCAT=0;
+ GNULIB_WCSNCAT=0;
+ GNULIB_WCSCMP=0;
+ GNULIB_WCSNCMP=0;
+ GNULIB_WCSCASECMP=0;
+ GNULIB_WCSNCASECMP=0;
+ GNULIB_WCSCOLL=0;
+ GNULIB_WCSXFRM=0;
+ GNULIB_WCSDUP=0;
+ GNULIB_WCSCHR=0;
+ GNULIB_WCSRCHR=0;
+ GNULIB_WCSCSPN=0;
+ GNULIB_WCSSPN=0;
+ GNULIB_WCSPBRK=0;
+ GNULIB_WCSSTR=0;
+ GNULIB_WCSTOK=0;
+ GNULIB_WCSWIDTH=0;
+ HAVE_BTOWC=1;
+ HAVE_MBSINIT=1;
+ HAVE_MBRTOWC=1;
+ HAVE_MBRLEN=1;
+ HAVE_MBSRTOWCS=1;
+ HAVE_MBSNRTOWCS=1;
+ HAVE_WCRTOMB=1;
+ HAVE_WCSRTOMBS=1;
+ HAVE_WCSNRTOMBS=1;
+ HAVE_WMEMCHR=1;
+ HAVE_WMEMCMP=1;
+ HAVE_WMEMCPY=1;
+ HAVE_WMEMMOVE=1;
+ HAVE_WMEMSET=1;
+ HAVE_WCSLEN=1;
+ HAVE_WCSNLEN=1;
+ HAVE_WCSCPY=1;
+ HAVE_WCPCPY=1;
+ HAVE_WCSNCPY=1;
+ HAVE_WCPNCPY=1;
+ HAVE_WCSCAT=1;
+ HAVE_WCSNCAT=1;
+ HAVE_WCSCMP=1;
+ HAVE_WCSNCMP=1;
+ HAVE_WCSCASECMP=1;
+ HAVE_WCSNCASECMP=1;
+ HAVE_WCSCOLL=1;
+ HAVE_WCSXFRM=1;
+ HAVE_WCSDUP=1;
+ HAVE_WCSCHR=1;
+ HAVE_WCSRCHR=1;
+ HAVE_WCSCSPN=1;
+ HAVE_WCSSPN=1;
+ HAVE_WCSPBRK=1;
+ HAVE_WCSSTR=1;
+ HAVE_WCSTOK=1;
+ HAVE_WCSWIDTH=1;
+ HAVE_DECL_WCTOB=1;
+ HAVE_DECL_WCWIDTH=1;
+ REPLACE_MBSTATE_T=0;
+ REPLACE_BTOWC=0;
+ REPLACE_WCTOB=0;
+ REPLACE_MBSINIT=0;
+ REPLACE_MBRTOWC=0;
+ REPLACE_MBRLEN=0;
+ REPLACE_MBSRTOWCS=0;
+ REPLACE_MBSNRTOWCS=0;
+ REPLACE_WCRTOMB=0;
+ REPLACE_WCSRTOMBS=0;
+ REPLACE_WCSNRTOMBS=0;
+ REPLACE_WCWIDTH=0;
+ REPLACE_WCSWIDTH=0;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5
+$as_echo_n "checking whether <wchar.h> uses 'inline' correctly... " >&6; }
+if ${gl_cv_header_wchar_h_correct_inline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gl_cv_header_wchar_h_correct_inline=yes
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #define wcstod renamed_wcstod
+/* 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>
+extern int zero (void);
+int main () { return zero(); }
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ mv conftest.$ac_objext conftest1.$ac_objext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #define wcstod renamed_wcstod
+/* 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>
+int zero (void) { return 0; }
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; 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:${as_lineno-$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_fn_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." "$LINENO" 5
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
+$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
+if ${am_cv_langinfo_codeset+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET); return !cs;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_langinfo_codeset=yes
+else
+ am_cv_langinfo_codeset=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
+$as_echo "$am_cv_langinfo_codeset" >&6; }
+ if test $am_cv_langinfo_codeset = yes; then
+
+$as_echo "@%:@define HAVE_LANGINFO_CODESET 1" >>confdefs.h
+
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.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 () {
+ /* Check whether the given locale name is recognized by the system. */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 the abbreviation of the second month, the second
+ character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+ one byte long. 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) < 3 || buf[2] != 'v') return 1;
+ /* Check whether the decimal separator is a comma.
+ On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+ are nl_langinfo(RADIXCHAR) are both ".". */
+ if (localeconv () ->decimal_point[0] != ',') return 1;
+ return 0;
+}
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the native Windows locale name.
+ if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=French_France.1252
+ else
+ # None found.
+ gt_cv_locale_fr=none
+ fi
+ ;;
+ *)
+ # 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 usual locale name.
+ if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.ISO-8859-1
+ else
+ # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+ if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.ISO8859-1
+ else
+ # Test for the HP-UX locale name.
+ if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.iso88591
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr
+ else
+ # None found.
+ gt_cv_locale_fr=none
+ fi
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+ LOCALE_FR=$gt_cv_locale_fr
+
+
+
+ GNULIB__EXIT=0;
+ GNULIB_ATOLL=0;
+ GNULIB_CALLOC_POSIX=0;
+ GNULIB_CANONICALIZE_FILE_NAME=0;
+ GNULIB_GETLOADAVG=0;
+ GNULIB_GETSUBOPT=0;
+ GNULIB_GRANTPT=0;
+ GNULIB_MALLOC_POSIX=0;
+ GNULIB_MBTOWC=0;
+ GNULIB_MKDTEMP=0;
+ GNULIB_MKOSTEMP=0;
+ GNULIB_MKOSTEMPS=0;
+ GNULIB_MKSTEMP=0;
+ GNULIB_MKSTEMPS=0;
+ GNULIB_POSIX_OPENPT=0;
+ GNULIB_PTSNAME=0;
+ GNULIB_PTSNAME_R=0;
+ GNULIB_PUTENV=0;
+ GNULIB_RANDOM=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_SYSTEM_POSIX=0;
+ GNULIB_UNLOCKPT=0;
+ GNULIB_UNSETENV=0;
+ GNULIB_WCTOMB=0;
+ HAVE__EXIT=1;
+ HAVE_ATOLL=1;
+ HAVE_CANONICALIZE_FILE_NAME=1;
+ HAVE_DECL_GETLOADAVG=1;
+ HAVE_GETSUBOPT=1;
+ HAVE_GRANTPT=1;
+ HAVE_MKDTEMP=1;
+ HAVE_MKOSTEMP=1;
+ HAVE_MKOSTEMPS=1;
+ HAVE_MKSTEMP=1;
+ HAVE_MKSTEMPS=1;
+ HAVE_POSIX_OPENPT=1;
+ HAVE_PTSNAME=1;
+ HAVE_PTSNAME_R=1;
+ HAVE_RANDOM=1;
+ HAVE_RANDOM_H=1;
+ HAVE_RANDOM_R=1;
+ HAVE_REALPATH=1;
+ HAVE_RPMATCH=1;
+ HAVE_SETENV=1;
+ HAVE_DECL_SETENV=1;
+ HAVE_STRTOD=1;
+ HAVE_STRTOLL=1;
+ HAVE_STRTOULL=1;
+ HAVE_STRUCT_RANDOM_DATA=1;
+ HAVE_SYS_LOADAVG_H=0;
+ HAVE_UNLOCKPT=1;
+ HAVE_DECL_UNSETENV=1;
+ REPLACE_CALLOC=0;
+ REPLACE_CANONICALIZE_FILE_NAME=0;
+ REPLACE_MALLOC=0;
+ REPLACE_MBTOWC=0;
+ REPLACE_MKSTEMP=0;
+ REPLACE_PTSNAME_R=0;
+ REPLACE_PUTENV=0;
+ REPLACE_RANDOM_R=0;
+ REPLACE_REALLOC=0;
+ REPLACE_REALPATH=0;
+ REPLACE_SETENV=0;
+ REPLACE_STRTOD=0;
+ REPLACE_UNSETENV=0;
+ REPLACE_WCTOMB=0;
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
+$as_echo_n "checking whether // is distinct from /... " >&6; }
+if ${gl_cv_double_slash_root+:} false; 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:${as_lineno-$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
+
+$as_echo "@%:@define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether realpath works" >&5
+$as_echo_n "checking whether realpath works... " >&6; }
+if ${gl_cv_func_realpath_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ touch conftest.a
+ mkdir conftest.d
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_realpath_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on MacOS X. */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens. */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+ EXC_BAD_ACCESS. */
+static void *
+mach_exception_thread (void *arg)
+{
+ /* Buffer for a message to be received. */
+ struct {
+ mach_msg_header_t head;
+ mach_msg_body_t msgh_body;
+ char data[1024];
+ } msg;
+ mach_msg_return_t retval;
+ /* Wait for a message on the exception port. */
+ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+ our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+ if (retval != MACH_MSG_SUCCESS)
+ abort ();
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+ mach_port_t self = mach_task_self ();
+ /* Allocate a port on which the thread shall listen for exceptions. */
+ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+ == KERN_SUCCESS) {
+ /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */
+ if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+ MACH_MSG_TYPE_MAKE_SEND)
+ == KERN_SUCCESS) {
+ /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting
+ for us. */
+ exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+ /* Create the thread listening on the exception port. */
+ pthread_attr_t attr;
+ pthread_t thread;
+ if (pthread_attr_init (&attr) == 0
+ && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+ && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+ pthread_attr_destroy (&attr);
+ /* Replace the exception port info for these exceptions with our own.
+ Note that we replace the exception port for the entire task, not only
+ for a particular thread. This has the effect that when our exception
+ port gets the message, the thread specific exception port has already
+ been asked, and we don't need to bother about it.
+ See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */
+ task_set_exception_ports (self, mask, our_exception_port,
+ EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+ }
+ }
+ }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows. */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+ switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+ {
+ case EXCEPTION_ACCESS_VIOLATION:
+ case EXCEPTION_IN_PAGE_ERROR:
+ case EXCEPTION_STACK_OVERFLOW:
+ case EXCEPTION_GUARD_PAGE:
+ case EXCEPTION_PRIV_INSTRUCTION:
+ case EXCEPTION_ILLEGAL_INSTRUCTION:
+ case EXCEPTION_DATATYPE_MISALIGNMENT:
+ case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+ case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+ exit (1);
+ }
+ return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+ SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems. */
+#include <signal.h>
+/* A POSIX signal handler. */
+static void
+exception_handler (int sig)
+{
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+ signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+ signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
+
+ #include <stdlib.h>
+ #include <string.h>
+
+int
+main ()
+{
+
+ int result = 0;
+ {
+ char *name = realpath ("conftest.a", NULL);
+ if (!(name && *name == '/'))
+ result |= 1;
+ }
+ {
+ char *name = realpath ("conftest.b/../conftest.a", NULL);
+ if (name != NULL)
+ result |= 2;
+ }
+ {
+ char *name = realpath ("conftest.a/", NULL);
+ if (name != NULL)
+ result |= 4;
+ }
+ {
+ char *name1 = realpath (".", NULL);
+ char *name2 = realpath ("conftest.d//./..", NULL);
+ if (strcmp (name1, name2) != 0)
+ result |= 8;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_realpath_works=yes
+else
+ gl_cv_func_realpath_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.a conftest.d
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define FUNC_REALPATH_WORKS 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ GNULIB_CHDIR=0;
+ GNULIB_CHOWN=0;
+ GNULIB_CLOSE=0;
+ GNULIB_DUP=0;
+ GNULIB_DUP2=0;
+ GNULIB_DUP3=0;
+ GNULIB_ENVIRON=0;
+ GNULIB_EUIDACCESS=0;
+ GNULIB_FACCESSAT=0;
+ GNULIB_FCHDIR=0;
+ GNULIB_FCHOWNAT=0;
+ GNULIB_FDATASYNC=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_GROUP_MEMBER=0;
+ GNULIB_ISATTY=0;
+ GNULIB_LCHOWN=0;
+ GNULIB_LINK=0;
+ GNULIB_LINKAT=0;
+ GNULIB_LSEEK=0;
+ GNULIB_PIPE=0;
+ GNULIB_PIPE2=0;
+ GNULIB_PREAD=0;
+ GNULIB_PWRITE=0;
+ GNULIB_READ=0;
+ GNULIB_READLINK=0;
+ GNULIB_READLINKAT=0;
+ GNULIB_RMDIR=0;
+ GNULIB_SETHOSTNAME=0;
+ GNULIB_SLEEP=0;
+ GNULIB_SYMLINK=0;
+ GNULIB_SYMLINKAT=0;
+ GNULIB_TTYNAME_R=0;
+ GNULIB_UNISTD_H_NONBLOCKING=0;
+ GNULIB_UNISTD_H_SIGPIPE=0;
+ GNULIB_UNLINK=0;
+ GNULIB_UNLINKAT=0;
+ GNULIB_USLEEP=0;
+ GNULIB_WRITE=0;
+ HAVE_CHOWN=1;
+ HAVE_DUP2=1;
+ HAVE_DUP3=1;
+ HAVE_EUIDACCESS=1;
+ HAVE_FACCESSAT=1;
+ HAVE_FCHDIR=1;
+ HAVE_FCHOWNAT=1;
+ HAVE_FDATASYNC=1;
+ HAVE_FSYNC=1;
+ HAVE_FTRUNCATE=1;
+ HAVE_GETDTABLESIZE=1;
+ HAVE_GETGROUPS=1;
+ HAVE_GETHOSTNAME=1;
+ HAVE_GETLOGIN=1;
+ HAVE_GETPAGESIZE=1;
+ HAVE_GROUP_MEMBER=1;
+ HAVE_LCHOWN=1;
+ HAVE_LINK=1;
+ HAVE_LINKAT=1;
+ HAVE_PIPE=1;
+ HAVE_PIPE2=1;
+ HAVE_PREAD=1;
+ HAVE_PWRITE=1;
+ HAVE_READLINK=1;
+ HAVE_READLINKAT=1;
+ HAVE_SETHOSTNAME=1;
+ HAVE_SLEEP=1;
+ HAVE_SYMLINK=1;
+ HAVE_SYMLINKAT=1;
+ HAVE_UNLINKAT=1;
+ HAVE_USLEEP=1;
+ HAVE_DECL_ENVIRON=1;
+ HAVE_DECL_FCHDIR=1;
+ HAVE_DECL_FDATASYNC=1;
+ HAVE_DECL_GETDOMAINNAME=1;
+ HAVE_DECL_GETLOGIN_R=1;
+ HAVE_DECL_GETPAGESIZE=1;
+ HAVE_DECL_GETUSERSHELL=1;
+ HAVE_DECL_SETHOSTNAME=1;
+ HAVE_DECL_TTYNAME_R=1;
+ HAVE_OS_H=0;
+ HAVE_SYS_PARAM_H=0;
+ REPLACE_CHOWN=0;
+ REPLACE_CLOSE=0;
+ REPLACE_DUP=0;
+ REPLACE_DUP2=0;
+ REPLACE_FCHOWNAT=0;
+ REPLACE_GETCWD=0;
+ REPLACE_GETDOMAINNAME=0;
+ REPLACE_GETLOGIN_R=0;
+ REPLACE_GETGROUPS=0;
+ REPLACE_GETPAGESIZE=0;
+ REPLACE_ISATTY=0;
+ REPLACE_LCHOWN=0;
+ REPLACE_LINK=0;
+ REPLACE_LINKAT=0;
+ REPLACE_LSEEK=0;
+ REPLACE_PREAD=0;
+ REPLACE_PWRITE=0;
+ REPLACE_READ=0;
+ REPLACE_READLINK=0;
+ REPLACE_RMDIR=0;
+ REPLACE_SLEEP=0;
+ REPLACE_SYMLINK=0;
+ REPLACE_TTYNAME_R=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 :
+ ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_UNISTD_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5
+$as_echo_n "checking for working chown... " >&6; }
+if ${ac_cv_func_chown_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_chown_works=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+#include <fcntl.h>
+
+int
+main ()
+{
+ char *f = "conftest.chown";
+ struct stat before, after;
+
+ if (creat (f, 0600) < 0)
+ return 1;
+ if (stat (f, &before) < 0)
+ return 1;
+ if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
+ return 1;
+ if (stat (f, &after) < 0)
+ return 1;
+ return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_chown_works=yes
+else
+ ac_cv_func_chown_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+rm -f conftest.chown
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5
+$as_echo "$ac_cv_func_chown_works" >&6; }
+if test $ac_cv_func_chown_works = yes; then
+
+$as_echo "@%:@define HAVE_CHOWN 1" >>confdefs.h
+
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown dereferences symlinks" >&5
+$as_echo_n "checking whether chown dereferences symlinks... " >&6; }
+if ${gl_cv_func_chown_follows_symlink+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_chown_follows_symlink=yes
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+ int
+ main ()
+ {
+ int result = 0;
+ char const *dangling_symlink = "conftest.dangle";
+
+ unlink (dangling_symlink);
+ if (symlink ("conftest.no-such", dangling_symlink))
+ abort ();
+
+ /* Exit successfully on a conforming system,
+ i.e., where chown must fail with ENOENT. */
+ if (chown (dangling_symlink, getuid (), getgid ()) == 0)
+ result |= 1;
+ if (errno != ENOENT)
+ result |= 2;
+ return result;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_follows_symlink=yes
+else
+ gl_cv_func_chown_follows_symlink=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_follows_symlink" >&5
+$as_echo "$gl_cv_func_chown_follows_symlink" >&6; }
+
+ if test $gl_cv_func_chown_follows_symlink = no; then
+
+$as_echo "@%:@define CHOWN_MODIFIES_SYMLINK 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_chown = no; then
+ HAVE_CHOWN=0
+ else
+ if test $gl_cv_func_chown_follows_symlink = no; then
+ REPLACE_CHOWN=1
+ fi
+
+ if test $ac_cv_func_chown_works = no; then
+
+$as_echo "@%:@define CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown honors trailing slash" >&5
+$as_echo_n "checking whether chown honors trailing slash... " >&6; }
+if ${gl_cv_func_chown_slash_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ touch conftest.file && rm -f conftest.link
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_chown_slash_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+int
+main ()
+{
+ if (symlink ("conftest.file", "conftest.link")) return 1;
+ if (chown ("conftest.link/", getuid (), getgid ()) == 0) return 2;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_slash_works=yes
+else
+ gl_cv_func_chown_slash_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.link conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_slash_works" >&5
+$as_echo "$gl_cv_func_chown_slash_works" >&6; }
+ if test "$gl_cv_func_chown_slash_works" != yes; then
+
+$as_echo "@%:@define CHOWN_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown always updates ctime" >&5
+$as_echo_n "checking whether chown always updates ctime... " >&6; }
+if ${gl_cv_func_chown_ctime_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_chown_ctime_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+int
+main ()
+{
+ struct stat st1, st2;
+ if (close (creat ("conftest.file", 0600))) return 1;
+ if (stat ("conftest.file", &st1)) return 2;
+ sleep (1);
+ if (chown ("conftest.file", st1.st_uid, st1.st_gid)) return 3;
+ if (stat ("conftest.file", &st2)) return 4;
+ if (st2.st_ctime <= st1.st_ctime) return 5;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_ctime_works=yes
+else
+ gl_cv_func_chown_ctime_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_ctime_works" >&5
+$as_echo "$gl_cv_func_chown_ctime_works" >&6; }
+ if test "$gl_cv_func_chown_ctime_works" != yes; then
+
+$as_echo "@%:@define CHOWN_CHANGE_TIME_BUG 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ fi
+ fi
+
+
+
+
+
+ if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+
+$as_echo "@%:@define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
+
+ else
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+ fi
+
+
+
+
+
+
+
+ GNULIB_OPENDIR=0;
+ GNULIB_READDIR=0;
+ GNULIB_REWINDDIR=0;
+ GNULIB_CLOSEDIR=0;
+ GNULIB_DIRFD=0;
+ GNULIB_FDOPENDIR=0;
+ GNULIB_SCANDIR=0;
+ GNULIB_ALPHASORT=0;
+ HAVE_OPENDIR=1;
+ HAVE_READDIR=1;
+ HAVE_REWINDDIR=1;
+ HAVE_CLOSEDIR=1;
+ HAVE_DECL_DIRFD=1;
+ HAVE_DECL_FDOPENDIR=1;
+ HAVE_FDOPENDIR=1;
+ HAVE_SCANDIR=1;
+ HAVE_ALPHASORT=1;
+ REPLACE_OPENDIR=0;
+ REPLACE_CLOSEDIR=0;
+ REPLACE_DIRFD=0;
+ REPLACE_FDOPENDIR=0;
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5
+$as_echo_n "checking whether the preprocessor supports include_next... " >&6; }
+if ${gl_cv_have_include_next+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftestd1a conftestd1b conftestd2
+ mkdir conftestd1a conftestd1b conftestd2
+ cat <<EOF > conftestd1a/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+ cat <<EOF > conftestd1b/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include <stdio.h>
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+ cat <<EOF > conftestd2/conftest.h
+#ifndef DEFINED_IN_CONFTESTD1
+#error "include_next test doesn't work"
+#endif
+#define DEFINED_IN_CONFTESTD2
+EOF
+ gl_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <conftest.h>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_have_include_next=yes
+else
+ CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <conftest.h>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_have_include_next=buggy
+else
+ gl_cv_have_include_next=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$gl_save_CPPFLAGS"
+ rm -rf conftestd1a conftestd1b conftestd2
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+ if test -n "$GCC"; then
+ PRAGMA_SYSTEM_HEADER='#pragma GCC system_header'
+ fi
+ else
+ if test $gl_cv_have_include_next = buggy; then
+ INCLUDE_NEXT=include
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+ else
+ INCLUDE_NEXT=include
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include
+ fi
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5
+$as_echo_n "checking whether system header files limit the line length... " >&6; }
+if ${gl_cv_pragma_columns+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __TANDEM
+choke me
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "choke me" >/dev/null 2>&1; then :
+ gl_cv_pragma_columns=yes
+else
+ gl_cv_pragma_columns=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5
+$as_echo "$gl_cv_pragma_columns" >&6; }
+ if test $gl_cv_pragma_columns = yes; then
+ PRAGMA_COLUMNS="#pragma COLUMNS 10000"
+ else
+ PRAGMA_COLUMNS=
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5
+$as_echo_n "checking if environ is properly declared... " >&6; }
+ if ${gt_cv_var_environ_declaration+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+ /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */
+ #include <stdlib.h>
+
+ extern struct { int foo; } environ;
+int
+main ()
+{
+environ.foo = 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_var_environ_declaration=no
+else
+ gt_cv_var_environ_declaration=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+ { $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_ENVIRON_DECL 1" >>confdefs.h
+
+ fi
+
+
+ if test $gt_cv_var_environ_declaration != yes; then
+ HAVE_DECL_ENVIRON=0
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5
+$as_echo_n "checking for complete errno.h... " >&6; }
+if ${gl_cv_header_errno_h_complete+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#if !defined ENOMSG
+booboo
+#endif
+#if !defined EIDRM
+booboo
+#endif
+#if !defined ENOLINK
+booboo
+#endif
+#if !defined EPROTO
+booboo
+#endif
+#if !defined EMULTIHOP
+booboo
+#endif
+#if !defined EBADMSG
+booboo
+#endif
+#if !defined EOVERFLOW
+booboo
+#endif
+#if !defined ENOTSUP
+booboo
+#endif
+#if !defined ENETRESET
+booboo
+#endif
+#if !defined ECONNABORTED
+booboo
+#endif
+#if !defined ESTALE
+booboo
+#endif
+#if !defined EDQUOT
+booboo
+#endif
+#if !defined ECANCELED
+booboo
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "booboo" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_complete=no
+else
+ gl_cv_header_errno_h_complete=yes
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_errno_h='<'errno.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <errno.h>" >&5
+$as_echo_n "checking absolute name of <errno.h>... " >&6; }
+if ${gl_cv_next_errno_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <errno.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'errno.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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'
+ fi
+
+ if test -n "$ERRNO_H"; then
+ GL_GENERATE_ERRNO_H_TRUE=
+ GL_GENERATE_ERRNO_H_FALSE='#'
+else
+ GL_GENERATE_ERRNO_H_TRUE='#'
+ GL_GENERATE_ERRNO_H_FALSE=
+fi
+
+
+ if test -n "$ERRNO_H"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5
+$as_echo_n "checking for EMULTIHOP value... " >&6; }
+if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#ifdef EMULTIHOP
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EMULTIHOP=yes
+else
+ gl_cv_header_errno_h_EMULTIHOP=no
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EMULTIHOP = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+#ifdef EMULTIHOP
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EMULTIHOP=hidden
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then
+ if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" "
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+"; then :
+
+fi
+
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ ;;
+ *)
+ EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP"
+ ;;
+ esac
+
+
+ fi
+
+
+ if test -n "$ERRNO_H"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5
+$as_echo_n "checking for ENOLINK value... " >&6; }
+if ${gl_cv_header_errno_h_ENOLINK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#ifdef ENOLINK
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_ENOLINK=yes
+else
+ gl_cv_header_errno_h_ENOLINK=no
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_ENOLINK = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+#ifdef ENOLINK
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_ENOLINK=hidden
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_ENOLINK = hidden; then
+ if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" "
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+"; then :
+
+fi
+
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ ;;
+ *)
+ ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK"
+ ;;
+ esac
+
+
+ fi
+
+
+ if test -n "$ERRNO_H"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5
+$as_echo_n "checking for EOVERFLOW value... " >&6; }
+if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#ifdef EOVERFLOW
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EOVERFLOW=yes
+else
+ gl_cv_header_errno_h_EOVERFLOW=no
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EOVERFLOW = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+#ifdef EOVERFLOW
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EOVERFLOW=hidden
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then
+ if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" "
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+"; then :
+
+fi
+
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ ;;
+ *)
+ EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW"
+ ;;
+ esac
+
+
+ fi
+
+
+ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strerror_r" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRERROR_R $ac_have_decl
+_ACEOF
+
+for ac_func in strerror_r
+do :
+ ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
+if test "x$ac_cv_func_strerror_r" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRERROR_R 1
+_ACEOF
+
+fi
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
+$as_echo_n "checking whether strerror_r returns char *... " >&6; }
+if ${ac_cv_func_strerror_r_char_p+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ac_cv_func_strerror_r_char_p=no
+ if test $ac_cv_have_decl_strerror_r = yes; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ char buf[100];
+ char x = *strerror_r (0, buf, sizeof buf);
+ char *p = strerror_r (0, buf, sizeof buf);
+ return !p || x;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_func_strerror_r_char_p=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ else
+ # strerror_r is not declared. Choose between
+ # systems that have relatively inaccessible declarations for the
+ # function. BeOS and DEC UNIX 4.0 fall in this category, but the
+ # former has a strerror_r that returns char*, while the latter
+ # has a strerror_r that returns `int'.
+ # This test should segfault on the DEC system.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ extern char *strerror_r ();
+int
+main ()
+{
+char buf[100];
+ char x = *strerror_r (0, buf, sizeof buf);
+ return ! isalpha (x);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_strerror_r_char_p=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define STRERROR_R_CHAR_P 1" >>confdefs.h
+
+fi
+
+ac_fn_c_check_decl "$LINENO" "fchdir" "ac_cv_have_decl_fchdir" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fchdir" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FCHDIR $ac_have_decl
+_ACEOF
+
+
+ GNULIB_FCNTL=0;
+ GNULIB_NONBLOCKING=0;
+ GNULIB_OPEN=0;
+ GNULIB_OPENAT=0;
+ HAVE_FCNTL=1;
+ HAVE_OPENAT=1;
+ REPLACE_FCNTL=0;
+ REPLACE_OPEN=0;
+ REPLACE_OPENAT=0;
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5
+$as_echo_n "checking for working fcntl.h... " >&6; }
+if ${gl_cv_header_working_fcntl_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_header_working_fcntl_h=cross-compiling
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/stat.h>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <io.h>
+ # include <stdlib.h>
+ # defined sleep(n) _sleep ((n) * 1000)
+ #endif
+ #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 result = !constants;
+ #if HAVE_SYMLINK
+ {
+ static char const sym[] = "conftest.sym";
+ if (symlink (".", sym) != 0)
+ result |= 2;
+ else
+ {
+ int fd = open (sym, O_RDONLY | O_NOFOLLOW);
+ if (fd >= 0)
+ {
+ close (fd);
+ result |= 4;
+ }
+ }
+ unlink (sym);
+ }
+ #endif
+ {
+ static char const file[] = "confdefs.h";
+ int fd = open (file, O_RDONLY | O_NOATIME);
+ if (fd < 0)
+ result |= 8;
+ else
+ {
+ struct stat st0;
+ if (fstat (fd, &st0) != 0)
+ result |= 16;
+ else
+ {
+ char c;
+ sleep (1);
+ if (read (fd, &c, 1) != 1)
+ result |= 24;
+ else
+ {
+ if (close (fd) != 0)
+ result |= 32;
+ else
+ {
+ struct stat st1;
+ if (stat (file, &st1) != 0)
+ result |= 40;
+ else
+ if (st0.st_atime != st1.st_atime)
+ result |= 64;
+ }
+ }
+ }
+ }
+ }
+ return result;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_header_working_fcntl_h=yes
+else
+ case $? in #(
+ 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
+ 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
+ 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
+ *) gl_cv_header_working_fcntl_h='no';;
+ esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_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
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
+$as_echo_n "checking for mbstate_t... " >&6; }
+if ${ac_cv_type_mbstate_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+/* 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>
+int
+main ()
+{
+mbstate_t x; return sizeof x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_type_mbstate_t=yes
+else
+ ac_cv_type_mbstate_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_MBSTATE_T 1" >>confdefs.h
+
+ else
+
+$as_echo "@%:@define mbstate_t int" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GNULIB_DPRINTF=0;
+ GNULIB_FCLOSE=0;
+ GNULIB_FDOPEN=0;
+ GNULIB_FFLUSH=0;
+ GNULIB_FGETC=0;
+ GNULIB_FGETS=0;
+ GNULIB_FOPEN=0;
+ GNULIB_FPRINTF=0;
+ GNULIB_FPRINTF_POSIX=0;
+ GNULIB_FPURGE=0;
+ GNULIB_FPUTC=0;
+ GNULIB_FPUTS=0;
+ GNULIB_FREAD=0;
+ GNULIB_FREOPEN=0;
+ GNULIB_FSCANF=0;
+ GNULIB_FSEEK=0;
+ GNULIB_FSEEKO=0;
+ GNULIB_FTELL=0;
+ GNULIB_FTELLO=0;
+ GNULIB_FWRITE=0;
+ GNULIB_GETC=0;
+ GNULIB_GETCHAR=0;
+ GNULIB_GETDELIM=0;
+ GNULIB_GETLINE=0;
+ GNULIB_GETS=0;
+ GNULIB_OBSTACK_PRINTF=0;
+ GNULIB_OBSTACK_PRINTF_POSIX=0;
+ GNULIB_PCLOSE=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_SCANF=0;
+ GNULIB_SNPRINTF=0;
+ GNULIB_SPRINTF_POSIX=0;
+ GNULIB_STDIO_H_NONBLOCKING=0;
+ GNULIB_STDIO_H_SIGPIPE=0;
+ GNULIB_TMPFILE=0;
+ GNULIB_VASPRINTF=0;
+ GNULIB_VFSCANF=0;
+ GNULIB_VSCANF=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_FSEEKO=1;
+ HAVE_DECL_FTELLO=1;
+ HAVE_DECL_GETDELIM=1;
+ HAVE_DECL_GETLINE=1;
+ HAVE_DECL_OBSTACK_PRINTF=1;
+ HAVE_DECL_SNPRINTF=1;
+ HAVE_DECL_VSNPRINTF=1;
+ HAVE_DPRINTF=1;
+ HAVE_FSEEKO=1;
+ HAVE_FTELLO=1;
+ HAVE_PCLOSE=1;
+ HAVE_POPEN=1;
+ HAVE_RENAMEAT=1;
+ HAVE_VASPRINTF=1;
+ HAVE_VDPRINTF=1;
+ REPLACE_DPRINTF=0;
+ REPLACE_FCLOSE=0;
+ REPLACE_FDOPEN=0;
+ REPLACE_FFLUSH=0;
+ REPLACE_FOPEN=0;
+ REPLACE_FPRINTF=0;
+ REPLACE_FPURGE=0;
+ REPLACE_FREOPEN=0;
+ REPLACE_FSEEK=0;
+ REPLACE_FSEEKO=0;
+ REPLACE_FTELL=0;
+ 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_READ_FUNCS=0;
+ REPLACE_STDIO_WRITE_FUNCS=0;
+ REPLACE_TMPFILE=0;
+ REPLACE_VASPRINTF=0;
+ REPLACE_VDPRINTF=0;
+ REPLACE_VFPRINTF=0;
+ REPLACE_VPRINTF=0;
+ REPLACE_VSNPRINTF=0;
+ REPLACE_VSPRINTF=0;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdin defaults to large file offsets" >&5
+$as_echo_n "checking whether stdin defaults to large file offsets... " >&6; }
+if ${gl_cv_var_stdin_large_offset+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+#if defined __SL64 && defined __SCLE /* cygwin */
+ /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
+ fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and
+ it is easier to do a version check than building a runtime test. */
+# include <cygwin/version.h>
+# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
+ choke me
+# endif
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_var_stdin_large_offset=yes
+else
+ gl_cv_var_stdin_large_offset=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var_stdin_large_offset" >&5
+$as_echo "$gl_cv_var_stdin_large_offset" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "fseeko" "ac_cv_have_decl_fseeko" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fseeko" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FSEEKO $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5
+$as_echo_n "checking for fseeko... " >&6; }
+if ${gl_cv_func_fseeko+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+int
+main ()
+{
+fseeko (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_func_fseeko=yes
+else
+ gl_cv_func_fseeko=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5
+$as_echo "$gl_cv_func_fseeko" >&6; }
+
+
+ if test $ac_cv_have_decl_fseeko = no; then
+ HAVE_DECL_FSEEKO=0
+ fi
+
+ if test $gl_cv_func_fseeko = no; then
+ HAVE_FSEEKO=0
+ else
+ if test $gl_cv_var_stdin_large_offset = no; then
+ REPLACE_FSEEKO=1
+ fi
+
+ fi
+
+
+ GNULIB_FCHMODAT=0;
+ GNULIB_FSTAT=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;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5
+$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; }
+if ${gl_cv_func_lstat_dereferences_slashed_symlink+:} false; 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 :
+ # When cross-compiling, be pessimistic so we will end up using the
+ # replacement version of lstat that checks for trailing slashes and
+ # calls lstat a second time when necessary.
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+struct stat sbuf;
+ /* Linux will dereference the symlink and fail, as required by
+ POSIX. 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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_lstat_dereferences_slashed_symlink=yes
+else
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ else
+ # If the 'ln -s' command failed, then we probably don't even
+ # have an lstat function.
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+ fi
+ rm -f conftest.sym conftest.file
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5
+$as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; }
+ test $gl_cv_func_lstat_dereferences_slashed_symlink = yes &&
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
+_ACEOF
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_getcwd_null+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_getcwd_null="guessing yes";;
+ # Guess yes on Cygwin.
+ cygwin*) 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# if HAVE_UNISTD_H
+# include <unistd.h>
+# else /* on Windows with MSVC */
+# include <direct.h>
+# endif
+# ifndef getcwd
+ char *getcwd ();
+# endif
+
+int
+main ()
+{
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* mingw cwd does not start with '/', but getcwd does allocate.
+ However, mingw fails to honor non-zero size. */
+#else
+ if (chdir ("/") != 0)
+ return 1;
+ else
+ {
+ char *f = getcwd (NULL, 0);
+ if (! f)
+ return 2;
+ if (f[0] != '/')
+ return 3;
+ if (f[1] != '\0')
+ return 4;
+ return 0;
+ }
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getcwd_null=yes
+else
+ gl_cv_func_getcwd_null=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5
+$as_echo "$gl_cv_func_getcwd_null" >&6; }
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getcwd with POSIX signature" >&5
+$as_echo_n "checking for getcwd with POSIX signature... " >&6; }
+if ${gl_cv_func_getcwd_posix_signature+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *getcwd (char *, size_t);
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_getcwd_posix_signature=yes
+else
+ gl_cv_func_getcwd_posix_signature=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_posix_signature" >&5
+$as_echo "$gl_cv_func_getcwd_posix_signature" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "getcwd" "ac_cv_have_decl_getcwd" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getcwd" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETCWD $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getdelim" "ac_cv_have_decl_getdelim" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getdelim" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETDELIM $ac_have_decl
+_ACEOF
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "getline" "ac_cv_have_decl_getline" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getline" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETLINE $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_getopt_h='<'getopt.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <getopt.h>" >&5
+$as_echo_n "checking absolute name of <getopt.h>... " >&6; }
+if ${gl_cv_next_getopt_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_getopt_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <getopt.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'getopt.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_getopt_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_getopt_h='<'getopt.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 :
+ ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default"
+if test "x$ac_cv_header_getopt_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_GETOPT_H 1
+_ACEOF
+
+else
+ gl_replace_getopt=yes
+fi
+
+done
+
+ fi
+
+ if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
+ for ac_func in getopt_long_only
+do :
+ ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only"
+if test "x$ac_cv_func_getopt_long_only" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_GETOPT_LONG_ONLY 1
+_ACEOF
+
+else
+ gl_replace_getopt=yes
+fi
+done
+
+ fi
+
+ if test -z "$gl_replace_getopt"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5
+$as_echo_n "checking whether getopt is POSIX compatible... " >&6; }
+if ${gl_cv_func_getopt_posix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+int *p = &optreset; return optreset;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_optind_min=1
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <getopt.h>
+int
+main ()
+{
+return !getopt_clip;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_optind_min=1
+else
+ gl_optind_min=0
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+ gl_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -DOPTIND_MIN=$gl_optind_min"
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ mingw*) gl_cv_func_getopt_posix="guessing no";;
+ darwin* | aix*) gl_cv_func_getopt_posix="guessing no";;
+ *) gl_cv_func_getopt_posix="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main ()
+{
+ {
+ static char program[] = "program";
+ static char a[] = "-a";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, a, foo, bar, NULL };
+ int c;
+
+ optind = OPTIND_MIN;
+ opterr = 0;
+
+ c = getopt (4, argv, "ab");
+ if (!(c == 'a'))
+ return 1;
+ c = getopt (4, argv, "ab");
+ if (!(c == -1))
+ return 2;
+ if (!(optind == 2))
+ return 3;
+ }
+ /* Some internal state exists at this point. */
+ {
+ static char program[] = "program";
+ static char donald[] = "donald";
+ static char p[] = "-p";
+ static char billy[] = "billy";
+ static char duck[] = "duck";
+ static char a[] = "-a";
+ static char bar[] = "bar";
+ char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
+ int c;
+
+ optind = OPTIND_MIN;
+ opterr = 0;
+
+ c = getopt (7, 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;
+ }
+ /* Detect MacOS 10.5, AIX 7.1 bug. */
+ {
+ static char program[] = "program";
+ static char ab[] = "-ab";
+ char *argv[3] = { program, ab, NULL };
+ optind = OPTIND_MIN;
+ opterr = 0;
+ if (getopt (2, argv, "ab:") != 'a')
+ return 13;
+ if (getopt (2, argv, "ab:") != '?')
+ return 14;
+ if (optopt != 'b')
+ return 15;
+ if (optind != 2)
+ return 16;
+ }
+
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getopt_posix=yes
+else
+ gl_cv_func_getopt_posix=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ CPPFLAGS=$gl_save_CPPFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5
+$as_echo_n "checking for working GNU getopt function... " >&6; }
+if ${gl_cv_func_getopt_gnu+:} false; 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.
+ # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT;
+ # so take care to revert to the correct (non-)export state.
+ gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }'
+ case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in
+ xx) gl_had_POSIXLY_CORRECT=exported ;;
+ x) gl_had_POSIXLY_CORRECT=yes ;;
+ *) gl_had_POSIXLY_CORRECT= ;;
+ esac
+ 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <getopt.h>
+ #include <stddef.h>
+ #include <string.h>
+
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on MacOS X. */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens. */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+ EXC_BAD_ACCESS. */
+static void *
+mach_exception_thread (void *arg)
+{
+ /* Buffer for a message to be received. */
+ struct {
+ mach_msg_header_t head;
+ mach_msg_body_t msgh_body;
+ char data[1024];
+ } msg;
+ mach_msg_return_t retval;
+ /* Wait for a message on the exception port. */
+ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+ our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+ if (retval != MACH_MSG_SUCCESS)
+ abort ();
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+ mach_port_t self = mach_task_self ();
+ /* Allocate a port on which the thread shall listen for exceptions. */
+ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+ == KERN_SUCCESS) {
+ /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */
+ if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+ MACH_MSG_TYPE_MAKE_SEND)
+ == KERN_SUCCESS) {
+ /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting
+ for us. */
+ exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+ /* Create the thread listening on the exception port. */
+ pthread_attr_t attr;
+ pthread_t thread;
+ if (pthread_attr_init (&attr) == 0
+ && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+ && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+ pthread_attr_destroy (&attr);
+ /* Replace the exception port info for these exceptions with our own.
+ Note that we replace the exception port for the entire task, not only
+ for a particular thread. This has the effect that when our exception
+ port gets the message, the thread specific exception port has already
+ been asked, and we don't need to bother about it.
+ See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */
+ task_set_exception_ports (self, mask, our_exception_port,
+ EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+ }
+ }
+ }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows. */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+ switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+ {
+ case EXCEPTION_ACCESS_VIOLATION:
+ case EXCEPTION_IN_PAGE_ERROR:
+ case EXCEPTION_STACK_OVERFLOW:
+ case EXCEPTION_GUARD_PAGE:
+ case EXCEPTION_PRIV_INSTRUCTION:
+ case EXCEPTION_ILLEGAL_INSTRUCTION:
+ case EXCEPTION_DATATYPE_MISALIGNMENT:
+ case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+ case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+ exit (1);
+ }
+ return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+ SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems. */
+#include <signal.h>
+/* A POSIX signal handler. */
+static void
+exception_handler (int sig)
+{
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+ signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+ signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
+
+
+int
+main ()
+{
+
+ int result = 0;
+
+ nocrash_init();
+
+ /* 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. */
+ {
+ static char conftest[] = "conftest";
+ static char plus[] = "-+";
+ char *argv[3] = { conftest, plus, NULL };
+ opterr = 0;
+ if (getopt (2, argv, "+a") != '?')
+ result |= 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. */
+ {
+ static char program[] = "program";
+ static char p[] = "-p";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, p, foo, bar, NULL };
+
+ optind = 1;
+ if (getopt (4, argv, "p::") != 'p')
+ result |= 2;
+ else if (optarg != NULL)
+ result |= 4;
+ else if (getopt (4, argv, "p::") != -1)
+ result |= 6;
+ else if (optind != 2)
+ result |= 8;
+ }
+ /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */
+ {
+ static char program[] = "program";
+ static char foo[] = "foo";
+ static char p[] = "-p";
+ char *argv[] = { program, foo, p, NULL };
+ optind = 0;
+ if (getopt (3, argv, "-p") != 1)
+ result |= 16;
+ else if (getopt (3, argv, "-p") != 'p')
+ result |= 32;
+ }
+ /* This code fails on glibc 2.11. */
+ {
+ static char program[] = "program";
+ static char b[] = "-b";
+ static char a[] = "-a";
+ char *argv[] = { program, b, a, NULL };
+ optind = opterr = 0;
+ if (getopt (3, argv, "+:a:b") != 'b')
+ result |= 64;
+ else if (getopt (3, argv, "+:a:b") != ':')
+ result |= 64;
+ }
+ /* This code dumps core on glibc 2.14. */
+ {
+ static char program[] = "program";
+ static char w[] = "-W";
+ static char dummy[] = "dummy";
+ char *argv[] = { program, w, dummy, NULL };
+ optind = opterr = 1;
+ if (getopt (3, argv, "W;") != 'W')
+ result |= 128;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getopt_gnu=yes
+else
+ gl_cv_func_getopt_gnu=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ case $gl_had_POSIXLY_CORRECT in
+ exported) ;;
+ yes) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}; POSIXLY_CORRECT=1 ;;
+ *) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;} ;;
+ esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+ if test -n "$gl_replace_getopt"; then :
+
+fi
+
+ REPLACE_GETOPT=1
+
+ if test $REPLACE_GETOPT = 1; then
+
+ GETOPT_H=getopt.h
+
+$as_echo "@%:@define __GETOPT_PREFIX rpl_" >>confdefs.h
+
+
+
+ fi
+
+ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getenv" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETENV $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+ GNULIB_GETTIMEOFDAY=0;
+ HAVE_GETTIMEOFDAY=1;
+ HAVE_STRUCT_TIMEVAL=1;
+ HAVE_SYS_TIME_H=1;
+ REPLACE_GETTIMEOFDAY=0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_sys_time_h='<'sys/time.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/time.h>" >&5
+$as_echo_n "checking absolute name of <sys/time.h>... " >&6; }
+if ${gl_cv_next_sys_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_sys_time_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/time.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sys/time.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sys_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_sys_time_h='<'sys/time.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=0
+ fi
+
+
+
+
+
+ if test $ac_cv_header_sys_socket_h != yes; then
+ for ac_header in winsock2.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+ fi
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ HAVE_WINSOCK2_H=1
+ UNISTD_H_HAVE_WINSOCK2_H=1
+ SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+ else
+ HAVE_WINSOCK2_H=0
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5
+$as_echo_n "checking for struct timeval... " >&6; }
+if ${gl_cv_sys_struct_timeval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_SYS_TIME_H
+ #include <sys/time.h>
+ #endif
+ #include <time.h>
+ #if HAVE_WINSOCK2_H
+ # include <winsock2.h>
+ #endif
+
+int
+main ()
+{
+static struct timeval x; x.tv_sec = x.tv_usec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timeval=yes
+else
+ gl_cv_sys_struct_timeval=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
+$as_echo_n "checking for unsigned long long int... " >&6; }
+if ${ac_cv_type_unsigned_long_long_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_type_unsigned_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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. */
+ /* 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)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ ? 1 : -1)];
+ int i = 63;
+int
+main ()
+{
+/* 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));
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+else
+ ac_cv_type_unsigned_long_long_int=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
+
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
+$as_echo_n "checking for long long int... " >&6; }
+if ${ac_cv_type_long_long_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_type_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
+ if test $ac_cv_type_long_long_int = yes; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+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;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_type_long_long_int=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_LONG_LONG_INT 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+ gl_cv_c_multiarch=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ arch=
+ prev=
+ for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
+ if test -n "$prev"; then
+ case $word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$arch" || test "$arch" = "$word"; then
+ arch="$word"
+ else
+ gl_cv_c_multiarch=yes
+ fi
+ ;;
+ esac
+ prev=
+ else
+ if test "x$word" = "x-arch"; then
+ prev=arch
+ fi
+ fi
+ done
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $gl_cv_c_multiarch = yes; then
+ APPLE_UNIVERSAL_BUILD=1
+ else
+ APPLE_UNIVERSAL_BUILD=0
+ fi
+
+
+
+
+
+ if test $ac_cv_type_long_long_int = yes; then
+ HAVE_LONG_LONG_INT=1
+ else
+ HAVE_LONG_LONG_INT=0
+ fi
+
+
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+ HAVE_UNSIGNED_LONG_LONG_INT=1
+ else
+ HAVE_UNSIGNED_LONG_LONG_INT=0
+ fi
+
+
+
+ if test $ac_cv_header_wchar_h = yes; then
+ HAVE_WCHAR_H=1
+ else
+ HAVE_WCHAR_H=0
+ fi
+
+
+ if test $ac_cv_header_inttypes_h = yes; then
+ HAVE_INTTYPES_H=1
+ else
+ HAVE_INTTYPES_H=0
+ fi
+
+
+ if test $ac_cv_header_sys_types_h = yes; then
+ HAVE_SYS_TYPES_H=1
+ else
+ HAVE_SYS_TYPES_H=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_stdint_h='<'stdint.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5
+$as_echo_n "checking absolute name of <stdint.h>... " >&6; }
+if ${gl_cv_next_stdint_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_stdint_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdint.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdint.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_stdint_h='<'stdint.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ HAVE_STDINT_H=1
+ else
+ HAVE_STDINT_H=0
+ fi
+
+
+ if test $ac_cv_header_stdint_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5
+$as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
+if ${gl_cv_header_working_stdint_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gl_cv_header_working_stdint_h=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */
+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+#endif
+
+
+ /* 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
+
+
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
+#else
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+#endif
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
+#endif
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
+#endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
+
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) ((t) 0 < (t) -1 \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+struct s {
+ int check_PTRDIFF:
+ PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+ && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+ ? 1 : -1;
+ /* Detect bug in FreeBSD 6.0 / ia64. */
+ int check_SIG_ATOMIC:
+ SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+ && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+ ? 1 : -1;
+ int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+ int check_WCHAR:
+ WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+ && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+ ? 1 : -1;
+ /* Detect bug in mingw. */
+ int check_WINT:
+ WINT_MIN == TYPE_MINIMUM (wint_t)
+ && WINT_MAX == TYPE_MAXIMUM (wint_t)
+ ? 1 : -1;
+
+ /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */
+ int check_UINT8_C:
+ (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+ int check_UINT16_C:
+ (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
+
+ /* Detect bugs in OpenBSD 3.9 stdint.h. */
+#ifdef UINT8_MAX
+ int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+ int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+ int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+ int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+ int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+ int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+ int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+ int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+ int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+ int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+ int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+ int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+ int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+ int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+ int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if test "$cross_compiling" = yes; then :
+ gl_cv_header_working_stdint_h=yes
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#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 mv - macro_values + 1;
+ }
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_header_working_stdint_h=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ else
+ for ac_header in sys/inttypes.h sys/bitypes.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_sys_inttypes_h = yes; then
+ HAVE_SYS_INTTYPES_H=1
+ else
+ HAVE_SYS_INTTYPES_H=0
+ fi
+
+ if test $ac_cv_header_sys_bitypes_h = yes; then
+ HAVE_SYS_BITYPES_H=1
+ else
+ HAVE_SYS_BITYPES_H=0
+ fi
+
+
+
+
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+
+
+ for gltype in ptrdiff_t size_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" "
+ /* 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 <limits.h>"; then :
+
+else
+ result=unknown
+fi
+
+ eval gl_cv_bitsizeof_${gltype}=\$result
+
+fi
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval result=\$gl_cv_bitsizeof_${gltype}
+ if test $result = unknown; then
+ result=0
+ fi
+ GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ cat >>confdefs.h <<_ACEOF
+@%:@define BITSIZEOF_${GLTYPE} $result
+_ACEOF
+
+ eval BITSIZEOF_${GLTYPE}=\$result
+ done
+
+
+ fi
+
+
+ for gltype in sig_atomic_t wchar_t wint_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" "
+ /* 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 <limits.h>"; then :
+
+else
+ result=unknown
+fi
+
+ eval gl_cv_bitsizeof_${gltype}=\$result
+
+fi
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval result=\$gl_cv_bitsizeof_${gltype}
+ if test $result = unknown; then
+ result=0
+ fi
+ GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ cat >>confdefs.h <<_ACEOF
+@%:@define BITSIZEOF_${GLTYPE} $result
+_ACEOF
+
+ eval BITSIZEOF_${GLTYPE}=\$result
+ done
+
+
+
+
+ for gltype in sig_atomic_t wchar_t wint_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5
+$as_echo_n "checking whether $gltype is signed... " >&6; }
+if eval \${gl_cv_type_${gltype}_signed+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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
+
+ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ result=yes
+else
+ result=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ eval gl_cv_type_${gltype}_signed=\$result
+
+fi
+eval ac_res=\$gl_cv_type_${gltype}_signed
+ { $as_echo "$as_me:${as_lineno-$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
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SIGNED_${GLTYPE} 1
+_ACEOF
+
+ eval HAVE_SIGNED_${GLTYPE}=1
+ else
+ eval HAVE_SIGNED_${GLTYPE}=0
+ fi
+ done
+
+
+ gl_cv_type_ptrdiff_t_signed=yes
+ gl_cv_type_size_t_signed=no
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+
+
+ for gltype in ptrdiff_t size_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval gl_cv_type_${gltype}_suffix=no
+ eval result=\$gl_cv_type_${gltype}_signed
+ if test "$result" = yes; then
+ glsufu=
+ else
+ glsufu=u
+ fi
+ 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';;
+ ui64)gltype1='unsigned __int64';;
+ esac
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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
+
+ extern $gltype foo;
+ extern $gltype1 foo;
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval gl_cv_type_${gltype}_suffix=\$glsuf
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ eval result=\$gl_cv_type_${gltype}_suffix
+ test "$result" != no && break
+ done
+fi
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+ { $as_echo "$as_me:${as_lineno-$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=
+ eval ${GLTYPE}_SUFFIX=\$result
+ cat >>confdefs.h <<_ACEOF
+@%:@define ${GLTYPE}_SUFFIX $result
+_ACEOF
+
+ done
+
+
+ fi
+
+
+ for gltype in sig_atomic_t wchar_t wint_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval gl_cv_type_${gltype}_suffix=no
+ eval result=\$gl_cv_type_${gltype}_signed
+ if test "$result" = yes; then
+ glsufu=
+ else
+ glsufu=u
+ fi
+ 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';;
+ ui64)gltype1='unsigned __int64';;
+ esac
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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
+
+ extern $gltype foo;
+ extern $gltype1 foo;
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval gl_cv_type_${gltype}_suffix=\$glsuf
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ eval result=\$gl_cv_type_${gltype}_suffix
+ test "$result" != no && break
+ done
+fi
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+ { $as_echo "$as_me:${as_lineno-$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=
+ eval ${GLTYPE}_SUFFIX=\$result
+ cat >>confdefs.h <<_ACEOF
+@%:@define ${GLTYPE}_SUFFIX $result
+_ACEOF
+
+ done
+
+
+
+ if test $BITSIZEOF_WINT_T -lt 32; then
+ BITSIZEOF_WINT_T=32
+ fi
+
+ STDINT_H=stdint.h
+ fi
+
+ if test -n "$STDINT_H"; then
+ GL_GENERATE_STDINT_H_TRUE=
+ GL_GENERATE_STDINT_H_FALSE='#'
+else
+ GL_GENERATE_STDINT_H_TRUE='#'
+ GL_GENERATE_STDINT_H_FALSE=
+fi
+
+
+
+
+
+ GNULIB_IMAXABS=0;
+ GNULIB_IMAXDIV=0;
+ GNULIB_STRTOIMAX=0;
+ GNULIB_STRTOUMAX=0;
+ HAVE_DECL_IMAXABS=1;
+ HAVE_DECL_IMAXDIV=1;
+ HAVE_DECL_STRTOIMAX=1;
+ HAVE_DECL_STRTOUMAX=1;
+ REPLACE_STRTOIMAX=0;
+ INT32_MAX_LT_INTMAX_MAX=1;
+ INT64_MAX_EQ_LONG_MAX='defined _LP64';
+ PRI_MACROS_BROKEN=0;
+ PRIPTR_PREFIX=__PRIPTR_PREFIX;
+ UINT32_MAX_LT_UINTMAX_MAX=1;
+ UINT64_MAX_EQ_ULONG_MAX='defined _LP64';
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_inttypes_h='<'inttypes.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <inttypes.h>" >&5
+$as_echo_n "checking absolute name of <inttypes.h>... " >&6; }
+if ${gl_cv_next_inttypes_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_inttypes_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <inttypes.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'inttypes.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_inttypes_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_inttypes_h='<'inttypes.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <inttypes.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+ for ac_header in inttypes.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
+if test "x$ac_cv_header_inttypes_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_INTTYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_inttypes_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$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 ${gt_cv_inttypes_pri_broken+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_inttypes_pri_broken=no
+else
+ gt_cv_inttypes_pri_broken=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+cat >>confdefs.h <<_ACEOF
+@%:@define PRI_MACROS_BROKEN 1
+_ACEOF
+
+ PRI_MACROS_BROKEN=1
+ else
+ PRI_MACROS_BROKEN=0
+ fi
+
+
+
+ GNULIB_ISWBLANK=0;
+ GNULIB_WCTYPE=0;
+ GNULIB_ISWCTYPE=0;
+ GNULIB_WCTRANS=0;
+ GNULIB_TOWCTRANS=0;
+ HAVE_ISWBLANK=1;
+ HAVE_WCTYPE_T=1;
+ HAVE_WCTRANS_T=1;
+ REPLACE_ISWBLANK=0;
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
+$as_echo_n "checking for wint_t... " >&6; }
+if ${gt_cv_c_wint_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ wint_t foo = (wchar_t)'\0';
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_c_wint_t=yes
+else
+ gt_cv_c_wint_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_WINT_T 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+ if test $ac_cv_func_iswcntrl = yes; then
+ HAVE_ISWCNTRL=1
+ else
+ HAVE_ISWCNTRL=0
+ fi
+
+
+
+
+
+ if test $gt_cv_c_wint_t = yes; then
+ HAVE_WINT_T=1
+ else
+ HAVE_WINT_T=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
+$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
+if ${gl_cv_next_wctype_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_wctype_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <wctype.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'wctype.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_wctype_h = yes; then
+ if test $ac_cv_func_iswcntrl = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
+$as_echo_n "checking whether iswcntrl works... " >&6; }
+if ${gl_cv_func_iswcntrl_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+ #if __GNU_LIBRARY__ == 1
+ Linux libc5 i18n is broken.
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ int main () { return iswprint ('x') == 0; }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
+$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
+ fi
+ HAVE_WCTYPE_H=1
+ else
+ HAVE_WCTYPE_H=0
+ fi
+
+
+ if test "$gl_cv_func_iswcntrl_works" = no; then
+ REPLACE_ISWCNTRL=1
+ else
+ REPLACE_ISWCNTRL=0
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+ fi
+
+ if test $REPLACE_ISWCNTRL = 1; then
+ REPLACE_TOWLOWER=1
+ else
+ for ac_func in towlower
+do :
+ ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower"
+if test "x$ac_cv_func_towlower" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_TOWLOWER 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_towlower = yes; then
+ REPLACE_TOWLOWER=0
+ else
+ ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* 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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+
+"
+if test "x$ac_cv_have_decl_towlower" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_TOWLOWER $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_towlower = yes; then
+ REPLACE_TOWLOWER=1
+ else
+ REPLACE_TOWLOWER=0
+ fi
+ fi
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+ :
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
+$as_echo_n "checking for wctype_t... " >&6; }
+if ${gl_cv_type_wctype_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ wctype_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctype_t=yes
+else
+ gl_cv_type_wctype_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5
+$as_echo "$gl_cv_type_wctype_t" >&6; }
+ if test $gl_cv_type_wctype_t = no; then
+ HAVE_WCTYPE_T=0
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
+$as_echo_n "checking for wctrans_t... " >&6; }
+if ${gl_cv_type_wctrans_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ wctrans_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctrans_t=yes
+else
+ gl_cv_type_wctrans_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5
+$as_echo "$gl_cv_type_wctrans_t" >&6; }
+ if test $gl_cv_type_wctrans_t = no; then
+ HAVE_WCTRANS_T=0
+ fi
+
+
+ for gl_func in wctype iswctype wctrans towctrans ; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+ GNULIB_NL_LANGINFO=0;
+ HAVE_NL_LANGINFO=1;
+ REPLACE_NL_LANGINFO=0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ yes+yes)
+ ;;
+ yes+*)
+ # Solaris 9 has *at functions, but uniformly mishandles trailing
+ # slash in all of them.
+ REPLACE_OPENAT=1
+ ;;
+ *)
+ HAVE_OPENAT=0
+ ;;
+ esac
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5
+$as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; }
+if ${ac_cv_gnu_library_2_1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+#ifdef __UCLIBC__
+ Lucky user
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Lucky" >/dev/null 2>&1; then :
+ ac_cv_gnu_library_2_1=yes
+else
+ ac_cv_gnu_library_2_1=no
+fi
+rm -f conftest*
+
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5
+$as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; }
+if ${gl_cv_func_malloc_posix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ choke me
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_malloc_posix=yes
+else
+ gl_cv_func_malloc_posix=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5
+$as_echo "$gl_cv_func_malloc_posix" >&6; }
+
+
+ for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
+$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
+if ${ac_cv_func_malloc_0_nonnull+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_malloc_0_nonnull=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *malloc ();
+#endif
+
+int
+main ()
+{
+return ! malloc (0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_malloc_0_nonnull=yes
+else
+ ac_cv_func_malloc_0_nonnull=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $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
+ gl_cv_func_malloc_0_nonnull=0
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull
+_ACEOF
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
+$as_echo_n "checking for a traditional japanese locale... " >&6; }
+if ${gt_cv_locale_ja+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.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 (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 MB_CUR_MAX is > 1. This excludes the dysfunctional locales
+ on Cygwin 1.5.x. */
+ if (MB_CUR_MAX == 1)
+ return 1;
+ /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+ This excludes the UTF-8 encoding (except on MirBSD). */
+ 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;
+ return 0;
+}
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Note that on native Windows, the Japanese locale is
+ # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+ # cannot use it here.
+ gt_cv_locale_ja=none
+ ;;
+ *)
+ # 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 AIX locale name.
+ if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.EUC-JP
+ else
+ # Test for the HP-UX, OSF/1, NetBSD locale name.
+ if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.eucJP
+ else
+ # Test for the IRIX, FreeBSD locale name.
+ if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.EUC
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja
+ else
+ # Special test for NetBSD 1.6.
+ if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+ gt_cv_locale_ja=ja_JP.eucJP
+ else
+ # None found.
+ gt_cv_locale_ja=none
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
+$as_echo "$gt_cv_locale_ja" >&6; }
+ LOCALE_JA=$gt_cv_locale_ja
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
+$as_echo_n "checking for a transitional chinese locale... " >&6; }
+if ${gt_cv_locale_zh_CN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 (except on MirBSD). */
+ 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\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the hypothetical native Windows locale name.
+ if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_zh_CN=Chinese_China.54936
+ else
+ # None found.
+ gt_cv_locale_zh_CN=none
+ fi
+ ;;
+ solaris2.8)
+ # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+ # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+ # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+ gt_cv_locale_zh_CN=none
+ ;;
+ *)
+ # 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
+ ;;
+ esac
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.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 () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if !(defined __BEOS__ || defined __HAIKU__)
+ /* Check whether the given locale name is recognized by the system. */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+# else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+ /* 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 the abbreviation of the second month, the second
+ character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+ two bytes long, with UTF-8 encoding. */
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%b", &t) < 4
+ || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+ return 1;
+#endif
+ /* Check whether the decimal separator is a comma.
+ On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+ are nl_langinfo(RADIXCHAR) are both ".". */
+ if (localeconv () ->decimal_point[0] != ',') return 1;
+ return 0;
+}
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the hypothetical native Windows locale name.
+ if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=French_France.65001
+ else
+ # None found.
+ gt_cv_locale_fr_utf8=none
+ fi
+ ;;
+ *)
+ # 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 usual locale name.
+ if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr_FR
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr_FR.UTF-8
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr.UTF-8
+ else
+ # None found.
+ gt_cv_locale_fr_utf8=none
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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_FFSL=0;
+ GNULIB_FFSLL=0;
+ 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_STRNCAT=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_STRERROR_R=0;
+ GNULIB_STRSIGNAL=0;
+ GNULIB_STRVERSCMP=0;
+ HAVE_MBSLEN=0;
+ HAVE_FFSL=1;
+ HAVE_FFSLL=1;
+ HAVE_MEMCHR=1;
+ 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_R=1;
+ HAVE_DECL_STRSIGNAL=1;
+ HAVE_STRVERSCMP=1;
+ REPLACE_MEMCHR=0;
+ REPLACE_MEMMEM=0;
+ REPLACE_STPNCPY=0;
+ REPLACE_STRDUP=0;
+ REPLACE_STRSTR=0;
+ REPLACE_STRCASESTR=0;
+ REPLACE_STRCHRNUL=0;
+ REPLACE_STRERROR=0;
+ REPLACE_STRERROR_R=0;
+ REPLACE_STRNCAT=0;
+ REPLACE_STRNDUP=0;
+ REPLACE_STRNLEN=0;
+ REPLACE_STRSIGNAL=0;
+ REPLACE_STRTOK_R=0;
+ UNDEFINE_STRTOK_R=0;
+
+
+
+
+
+
+
+
+
+ # 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_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; 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:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 :
+
+$as_echo "@%:@define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+ gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+ if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "@%:@define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+ fi
+ fi
+
+
+
+
+
+
+ if test $HAVE_MEMCHR = 1; 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:${as_lineno-$LINENO}: checking whether memchr works" >&5
+$as_echo_n "checking whether memchr works... " >&6; }
+if ${gl_cv_func_memchr_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_memchr_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 ()
+{
+
+ int result = 0;
+ 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))
+ result |= 1;
+ strcpy (fence - 9, "12345678");
+ if (memchr (fence - 9, 0, 79) != fence - 1)
+ result |= 2;
+ if (memchr (fence - 1, 0, 3) != fence - 1)
+ result |= 4;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_memchr_works=yes
+else
+ gl_cv_func_memchr_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_MEMCHR=1
+ fi
+ fi
+
+ac_fn_c_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default"
+if test "x$ac_cv_have_decl_memrchr" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_MEMRCHR $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+ GNULIB_MKTIME=0;
+ GNULIB_NANOSLEEP=0;
+ GNULIB_STRPTIME=0;
+ GNULIB_TIMEGM=0;
+ GNULIB_TIME_R=0;
+ HAVE_DECL_LOCALTIME_R=1;
+ HAVE_NANOSLEEP=1;
+ HAVE_STRPTIME=1;
+ HAVE_TIMEGM=1;
+ REPLACE_LOCALTIME_R=GNULIB_PORTCHECK;
+ REPLACE_MKTIME=GNULIB_PORTCHECK;
+ REPLACE_NANOSLEEP=GNULIB_PORTCHECK;
+ REPLACE_TIMEGM=GNULIB_PORTCHECK;
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5
+$as_echo_n "checking for promoted mode_t type... " >&6; }
+if ${gl_cv_promoted_mode_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main ()
+{
+typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_promoted_mode_t='int'
+else
+ gl_cv_promoted_mode_t='mode_t'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
+$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
+if ${ac_cv_header_stdbool_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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];
+ /* See body of main program for 'e'. */
+ 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 };
+ /* The following fails for
+ HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+ _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];
+ /* 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 ()
+{
+
+ bool e = &s;
+ *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
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdbool_h=yes
+else
+ ac_cv_header_stdbool_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
+$as_echo "$ac_cv_header_stdbool_h" >&6; }
+ ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
+if test "x$ac_cv_type__Bool" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE__BOOL 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 -n "$STDBOOL_H"; then
+ GL_GENERATE_STDBOOL_H_TRUE=
+ GL_GENERATE_STDBOOL_H_FALSE='#'
+else
+ GL_GENERATE_STDBOOL_H_TRUE='#'
+ GL_GENERATE_STDBOOL_H_FALSE=
+fi
+
+
+ if test "$ac_cv_type__Bool" = yes; then
+ HAVE__BOOL=1
+ else
+ HAVE__BOOL=0
+ fi
+
+
+
+ # parse-datetime.y works with bison only.
+ : ${YACC='bison -y'}
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compound literals" >&5
+$as_echo_n "checking for compound literals... " >&6; }
+if ${gl_cv_compound_literals+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+struct s { int i, j; };
+int
+main ()
+{
+struct s t = (struct s) { 3, 4 };
+ if (t.i != 0) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_compound_literals=yes
+else
+ gl_cv_compound_literals=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compound_literals" >&5
+$as_echo "$gl_cv_compound_literals" >&6; }
+ if test $gl_cv_compound_literals = yes; then
+
+$as_echo "@%:@define HAVE_COMPOUND_LITERALS 1" >>confdefs.h
+
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_struct_tm+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <time.h>
+
+int
+main ()
+{
+struct tm tm;
+ int *p = &tm.tm_sec;
+ return !p;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_struct_tm=time.h
+else
+ ac_cv_struct_tm=sys/time.h
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
+$as_echo "$ac_cv_struct_tm" >&6; }
+if test $ac_cv_struct_tm = sys/time.h; then
+
+$as_echo "@%:@define TM_IN_SYS_TIME 1" >>confdefs.h
+
+fi
+
+
+ ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h>
+"
+if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then :
+
+$as_echo "@%:@define HAVE_TM_GMTOFF 1" >>confdefs.h
+
+fi
+
+
+
+
+
+ GNULIB_PTHREAD_SIGMASK=0;
+ GNULIB_RAISE=0;
+ GNULIB_SIGNAL_H_SIGPIPE=0;
+ GNULIB_SIGPROCMASK=0;
+ GNULIB_SIGACTION=0;
+ HAVE_POSIX_SIGNALBLOCKING=1;
+ HAVE_PTHREAD_SIGMASK=1;
+ HAVE_RAISE=1;
+ HAVE_SIGSET_T=1;
+ HAVE_SIGINFO_T=1;
+ HAVE_SIGACTION=1;
+ HAVE_STRUCT_SIGACTION_SA_SIGACTION=1;
+
+ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1;
+
+ HAVE_SIGHANDLER_T=1;
+ REPLACE_PTHREAD_SIGMASK=0;
+ REPLACE_RAISE=0;
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_setenv" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_SETENV $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+ if test $ac_cv_have_decl_setenv = no; then
+ HAVE_DECL_SETENV=0
+ fi
+
+
+
+
+
+ for ac_header in search.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default"
+if test "x$ac_cv_header_search_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SEARCH_H 1
+_ACEOF
+
+fi
+
+done
+
+ for ac_func in tsearch
+do :
+ ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch"
+if test "x$ac_cv_func_tsearch" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_TSEARCH 1
+_ACEOF
+
+fi
+done
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" "
+ #include <signal.h>
+ /* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>. */
+ #include <sys/types.h>
+
+"
+if test "x$ac_cv_type_sigset_t" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SIGSET_T 1
+_ACEOF
+
+gl_cv_type_sigset_t=yes
+else
+ gl_cv_type_sigset_t=no
+fi
+
+ if test $gl_cv_type_sigset_t != yes; then
+ HAVE_SIGSET_T=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5
+$as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; }
+if ${gl_cv_func_snprintf_retval_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on OpenBSD >= 3.9.
+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+ gl_cv_func_snprintf_retval_c99="guessing no";;
+ openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on Solaris >= 2.10.
+ solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ solaris*) gl_cv_func_printf_sizes_c99="guessing no";;
+ # Guess yes on AIX >= 4.
+ aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ aix*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_snprintf_retval_c99="guessing no";;
+ netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_snprintf_retval_c99="guessing no";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+static char buf[100];
+int main ()
+{
+ strcpy (buf, "ABCDEF");
+ if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7)
+ return 1;
+ if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7)
+ return 2;
+ if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
+ return 3;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_snprintf_retval_c99=yes
+else
+ gl_cv_func_snprintf_retval_c99=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5
+$as_echo "$gl_cv_func_snprintf_retval_c99" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_snprintf" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_SNPRINTF $ac_have_decl
+_ACEOF
+
+
+ REPLACE_NULL=0;
+ HAVE_WCHAR_T=1;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
+$as_echo_n "checking for wchar_t... " >&6; }
+if ${gt_cv_c_wchar_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ wchar_t foo = (wchar_t)'\0';
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_c_wchar_t=yes
+else
+ gt_cv_c_wchar_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_WCHAR_T 1" >>confdefs.h
+
+ fi
+
+
+ GNULIB_FFS=0;
+ HAVE_FFS=1;
+ HAVE_STRCASECMP=1;
+ HAVE_DECL_STRNCASECMP=1;
+
+
+
+ac_fn_c_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strdup" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRDUP $ac_have_decl
+_ACEOF
+
+
+ REPLACE_STRERROR_0=0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5
+$as_echo_n "checking whether strerror(0) succeeds... " >&6; }
+if ${gl_cv_func_strerror_0_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_strerror_0_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+ #include <errno.h>
+
+int
+main ()
+{
+int result = 0;
+ char *str;
+ errno = 0;
+ str = strerror (0);
+ if (!*str) result |= 1;
+ if (errno) result |= 2;
+ if (strstr (str, "nknown") || strstr (str, "ndefined"))
+ result |= 4;
+ return result;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_strerror_0_works=yes
+else
+ gl_cv_func_strerror_0_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5
+$as_echo "$gl_cv_func_strerror_0_works" >&6; }
+ if test "$gl_cv_func_strerror_0_works" != yes; then
+ REPLACE_STRERROR_0=1
+
+$as_echo "@%:@define REPLACE_STRERROR_0 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_string_h='<'string.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <string.h>" >&5
+$as_echo_n "checking absolute name of <string.h>... " >&6; }
+if ${gl_cv_next_string_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'string.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+ for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <strings.h>" >&5
+$as_echo_n "checking absolute name of <strings.h>... " >&6; }
+if ${gl_cv_next_strings_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_strings_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <strings.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'strings.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_strings_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_strings_h='<'strings.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_strings_h = yes; then
+ HAVE_STRINGS_H=1
+ else
+ HAVE_STRINGS_H=0
+ fi
+
+
+
+ for gl_func in ffs strcasecmp strncasecmp; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
+ <strings.h>. */
+ #include <sys/types.h>
+ #include <strings.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+ac_fn_c_check_decl "$LINENO" "strndup" "ac_cv_have_decl_strndup" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strndup" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRNDUP $ac_have_decl
+_ACEOF
+
+
+
+ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strnlen" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRNLEN $ac_have_decl
+_ACEOF
+
+
+
+ac_fn_c_check_decl "$LINENO" "strtoumax" "ac_cv_have_decl_strtoumax" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtoumax" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRTOUMAX $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <time.h>" >&5
+$as_echo_n "checking for struct timespec in <time.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timespec_in_time_h=yes
+else
+ gl_cv_sys_struct_timespec_in_time_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
+ if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
+ TIME_H_DEFINES_STRUCT_TIMESPEC=1
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <sys/time.h>" >&5
+$as_echo_n "checking for struct timespec in <sys/time.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/time.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timespec_in_sys_time_h=yes
+else
+ gl_cv_sys_struct_timespec_in_sys_time_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <pthread.h>" >&5
+$as_echo_n "checking for struct timespec in <pthread.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <pthread.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timespec_in_pthread_h=yes
+else
+ gl_cv_sys_struct_timespec_in_pthread_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5
+$as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; }
+ if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
+ fi
+ fi
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_time_h='<'time.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <time.h>" >&5
+$as_echo_n "checking absolute name of <time.h>... " >&6; }
+if ${gl_cv_next_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'time.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_localtime_r" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_LOCALTIME_R $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+
+
+ if test "$HAVE_LIBUNISTRING" = yes; then
+ LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"`
+ LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"`
+ LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
+ fi
+
+ac_fn_c_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_unsetenv" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_UNSETENV $ac_have_decl
+_ACEOF
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the utimes function works" >&5
+$as_echo_n "checking whether the utimes function works... " >&6; }
+if ${gl_cv_func_working_utimes+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_working_utimes=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/time.h>
+#include <time.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <utime.h>
+
+static int
+inorder (time_t a, time_t b, time_t c)
+{
+ return a <= b && b <= c;
+}
+
+int
+main ()
+{
+ int result = 0;
+ char const *file = "conftest.utimes";
+ static struct timeval timeval[2] = {{9, 10}, {999999, 999999}};
+
+ /* Test whether utimes() essentially works. */
+ {
+ struct stat sbuf;
+ FILE *f = fopen (file, "w");
+ if (f == NULL)
+ result |= 1;
+ else if (fclose (f) != 0)
+ result |= 1;
+ else if (utimes (file, timeval) != 0)
+ result |= 2;
+ else if (lstat (file, &sbuf) != 0)
+ result |= 1;
+ else if (!(sbuf.st_atime == timeval[0].tv_sec
+ && sbuf.st_mtime == timeval[1].tv_sec))
+ result |= 4;
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ /* Test whether utimes() with a NULL argument sets the file's timestamp
+ to the current time. Use 'fstat' as well as 'time' to
+ determine the "current" time, to accommodate NFS file systems
+ if there is a time skew between the host and the NFS server. */
+ {
+ int fd = open (file, O_WRONLY|O_CREAT, 0644);
+ if (fd < 0)
+ result |= 1;
+ else
+ {
+ time_t t0, t2;
+ struct stat st0, st1, st2;
+ if (time (&t0) == (time_t) -1)
+ result |= 1;
+ else if (fstat (fd, &st0) != 0)
+ result |= 1;
+ else if (utimes (file, timeval) != 0)
+ result |= 2;
+ else if (utimes (file, NULL) != 0)
+ result |= 8;
+ else if (fstat (fd, &st1) != 0)
+ result |= 1;
+ else if (write (fd, "\n", 1) != 1)
+ result |= 1;
+ else if (fstat (fd, &st2) != 0)
+ result |= 1;
+ else if (time (&t2) == (time_t) -1)
+ result |= 1;
+ else
+ {
+ int m_ok_POSIX = inorder (t0, st1.st_mtime, t2);
+ int m_ok_NFS = inorder (st0.st_mtime, st1.st_mtime, st2.st_mtime);
+ if (! (st1.st_atime == st1.st_mtime))
+ result |= 16;
+ if (! (m_ok_POSIX || m_ok_NFS))
+ result |= 32;
+ }
+ if (close (fd) != 0)
+ result |= 1;
+ }
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ /* Test whether utimes() with a NULL argument works on read-only files. */
+ {
+ int fd = open (file, O_WRONLY|O_CREAT, 0444);
+ if (fd < 0)
+ result |= 1;
+ else if (close (fd) != 0)
+ result |= 1;
+ else if (utimes (file, NULL) != 0)
+ result |= 64;
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ return result;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_utimes=yes
+else
+ gl_cv_func_working_utimes=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_utimes" >&5
+$as_echo "$gl_cv_func_working_utimes" >&6; }
+
+ if test $gl_cv_func_working_utimes = yes; then
+
+$as_echo "@%:@define HAVE_WORKING_UTIMES 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct utimbuf" >&5
+$as_echo_n "checking for struct utimbuf... " >&6; }
+if ${gl_cv_sys_struct_utimbuf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_utimbuf=yes
+else
+ gl_cv_sys_struct_utimbuf=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_STRUCT_UTIMBUF 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_header_features_h = yes; then
+ HAVE_FEATURES_H=1
+ else
+ HAVE_FEATURES_H=0
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
+$as_echo_n "checking for inttypes.h... " >&6; }
+if ${gl_cv_header_inttypes_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h>
+#include <inttypes.h>
+
+int
+main ()
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_inttypes_h=yes
+else
+ gl_cv_header_inttypes_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+@%:@define HAVE_INTTYPES_H_WITH_UINTMAX 1
+_ACEOF
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
+$as_echo_n "checking for stdint.h... " >&6; }
+if ${gl_cv_header_stdint_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <stdint.h>
+int
+main ()
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_stdint_h=yes
+else
+ gl_cv_header_stdint_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+@%:@define HAVE_STDINT_H_WITH_UINTMAX 1
+_ACEOF
+
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
+$as_echo_n "checking for intmax_t... " >&6; }
+if ${gt_cv_c_intmax_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+
+int
+main ()
+{
+intmax_t x = -1; return !x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_c_intmax_t=yes
+else
+ gt_cv_c_intmax_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_INTMAX_T 1" >>confdefs.h
+
+ else
+
+ test $ac_cv_type_long_long_int = yes \
+ && ac_type='long long' \
+ || ac_type='long'
+
+cat >>confdefs.h <<_ACEOF
+@%:@define intmax_t $ac_type
+_ACEOF
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
+$as_echo_n "checking where to find the exponent in a 'double'... " >&6; }
+if ${gl_cv_cc_double_expbit0+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if defined arm || defined __arm || defined __arm__
+ mixed_endianness
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "mixed_endianness" >/dev/null 2>&1; then :
+ gl_cv_cc_double_expbit0="unknown"
+else
+
+ :
+if ${ac_cv_c_bigendian+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then :
+ # Try to guess by grepping values from an object file.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_bigendian=no
+else
+ ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+fi
+:
+ case $ac_cv_c_bigendian in #(
+ yes)
+ gl_cv_cc_double_expbit0="word 0 bit 20";; #(
+ no)
+ gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
+ universal)
+
+$as_echo "@%:@define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+ ;; #(
+ *)
+ gl_cv_cc_double_expbit0="unknown" ;;
+ esac
+
+
+fi
+rm -f conftest*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
+{
+ memory_double m;
+ size_t i;
+ /* Clear it first, in case sizeof (double) < sizeof (memory_double). */
+ memset (&m, 0, sizeof (memory_double));
+ m.value = x;
+ for (i = 0; i < NWORDS; i++)
+ {
+ ored_words[i] |= m.word[i];
+ anded_words[i] &= m.word[i];
+ }
+}
+int main ()
+{
+ size_t j;
+ FILE *fp = fopen ("conftest.out", "w");
+ if (fp == NULL)
+ return 1;
+ for (j = 0; j < NWORDS; j++)
+ anded_words[j] = ~ (unsigned int) 0;
+ add_to_ored_words (0.25);
+ add_to_ored_words (0.5);
+ add_to_ored_words (1.0);
+ add_to_ored_words (2.0);
+ add_to_ored_words (4.0);
+ /* Remove bits that are common (e.g. if representation of the first mantissa
+ bit is explicit). */
+ for (j = 0; j < NWORDS; j++)
+ ored_words[j] &= ~anded_words[j];
+ /* Now find the nonzero word. */
+ for (j = 0; j < NWORDS; j++)
+ if (ored_words[j] != 0)
+ break;
+ if (j < NWORDS)
+ {
+ size_t i;
+ for (i = j + 1; i < NWORDS; i++)
+ if (ored_words[i] != 0)
+ {
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+ }
+ for (i = 0; ; i++)
+ if ((ored_words[j] >> i) & 1)
+ {
+ fprintf (fp, "word %d bit %d", (int) j, (int) i);
+ return (fclose (fp) != 0);
+ }
+ }
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_cc_double_expbit0=`cat conftest.out`
+else
+ gl_cv_cc_double_expbit0="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.out
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
+$as_echo "$gl_cv_cc_double_expbit0" >&6; }
+ case "$gl_cv_cc_double_expbit0" in
+ word*bit*)
+ word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+ bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DBL_EXPBIT0_WORD $word
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DBL_EXPBIT0_BIT $bit
+_ACEOF
+
+ ;;
+ esac
+
+
+
+
+
+
+
+ for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include <stdio.h>
+"
+if test "x$ac_cv_have_decl__snprintf" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL__SNPRINTF $ac_have_decl
+_ACEOF
+
+
+
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+
+$as_echo "@%:@define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h
+
+ ;;
+ esac
+
+ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_vsnprintf" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_VSNPRINTF $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+ if false; then
+ GL_COND_LIBTOOL_TRUE=
+ GL_COND_LIBTOOL_FALSE='#'
+else
+ GL_COND_LIBTOOL_TRUE='#'
+ GL_COND_LIBTOOL_FALSE=
+fi
+
+ gl_cond_libtool=false
+ gl_libdeps=
+ gl_ltlibdeps=
+ gl_m4_base='m4'
+
+
+
+
+
+
+
+
+
+ gl_source_base='gnu'
+
+
+ if test $ac_cv_func_alloca_works = no; then
+ :
+ fi
+
+ # Define an additional variable used in the Makefile substitution.
+ if test $ac_cv_working_alloca_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5
+$as_echo_n "checking for alloca as a compiler built-in... " >&6; }
+if ${gl_cv_rpl_alloca+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
+ Need own alloca
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Need own alloca" >/dev/null 2>&1; then :
+ gl_cv_rpl_alloca=yes
+else
+ gl_cv_rpl_alloca=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5
+$as_echo "$gl_cv_rpl_alloca" >&6; }
+ if test $gl_cv_rpl_alloca = yes; then
+
+$as_echo "@%:@define HAVE_ALLOCA 1" >>confdefs.h
+
+ ALLOCA_H=alloca.h
+ else
+ ALLOCA_H=
+ fi
+ else
+ ALLOCA_H=alloca.h
+ fi
+
+ if test -n "$ALLOCA_H"; then
+ GL_GENERATE_ALLOCA_H_TRUE=
+ GL_GENERATE_ALLOCA_H_FALSE='#'
+else
+ GL_GENERATE_ALLOCA_H_TRUE='#'
+ GL_GENERATE_ALLOCA_H_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_AREADLINKAT 1
+_ACEOF
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then :
+
+$as_echo "@%:@define HAVE_DECL_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+
+else
+
+$as_echo "@%:@define GNULIB_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+
+fi
+
+ ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then :
+
+$as_echo "@%:@define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
+
+else
+
+$as_echo "@%:@define GNULIB_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
+
+fi
+
+
+ # Check if program_invocation_name and program_invocation_short_name
+ # 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.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_name is defined" >&5
+$as_echo_n "checking whether program_invocation_name is defined... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <argp.h>
+int
+main ()
+{
+program_invocation_name = "test";
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+$as_echo "@%:@define HAVE_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_short_name is defined" >&5
+$as_echo_n "checking whether program_invocation_short_name is defined... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <argp.h>
+int
+main ()
+{
+program_invocation_short_name = "test";
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+$as_echo "@%:@define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_error:2:c-format"
+
+
+
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_failure:4:c-format"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS openat-proc.$ac_objext"
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_btowc = no; then
+ HAVE_BTOWC=0
+ else
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5
+$as_echo_n "checking whether btowc(0) is correct... " >&6; }
+if ${gl_cv_func_btowc_nul+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess no on Cygwin.
+ cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_nul="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <string.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>
+int main ()
+{
+ if (btowc ('\0') != 0)
+ return 1;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_btowc_nul=yes
+else
+ gl_cv_func_btowc_nul=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5
+$as_echo "$gl_cv_func_btowc_nul" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5
+$as_echo_n "checking whether btowc(EOF) is correct... " >&6; }
+if ${gl_cv_func_btowc_eof+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on IRIX.
+ irix*) gl_cv_func_btowc_eof="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_eof="guessing yes" ;;
+ esac
+ if test $LOCALE_FR != none; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ if (btowc (EOF) != WEOF)
+ return 1;
+ }
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_btowc_eof=yes
+else
+ gl_cv_func_btowc_eof=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5
+$as_echo "$gl_cv_func_btowc_eof" >&6; }
+
+ case "$gl_cv_func_btowc_nul" in
+ *yes) ;;
+ *) REPLACE_BTOWC=1 ;;
+ esac
+ case "$gl_cv_func_btowc_eof" in
+ *yes) ;;
+ *) REPLACE_BTOWC=1 ;;
+ esac
+ fi
+
+if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS btowc.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_BTOWC=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_BTOWC 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_canonicalize_file_name = no; then
+ HAVE_CANONICALIZE_FILE_NAME=0
+ 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
+ REPLACE_CANONICALIZE_FILE_NAME=1
+ REPLACE_REALPATH=1
+ fi
+
+if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS canonicalize-lgpl.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_CANONICALIZE_LGPL 1
+_ACEOF
+
+
+
+
+
+
+
+ GNULIB_CANONICALIZE_FILE_NAME=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CANONICALIZE_FILE_NAME 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ GNULIB_REALPATH=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_REALPATH 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ GNULIB_CHDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CHDIR 1" >>confdefs.h
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_have_arbitrary_file_name_length_limit+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+
+#ifdef PATH_MAX
+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
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS chdir-long.$ac_objext"
+
+
+
+ :
+
+fi
+
+if test $HAVE_CHOWN = 0 || test $REPLACE_CHOWN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext"
+
+fi
+if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fchown-stub.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_CHOWN=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CHOWN 1" >>confdefs.h
+
+
+
+
+
+
+ # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
+ # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
+
+ # 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
+$as_echo_n "checking for library containing clock_gettime... " >&6; }
+if ${ac_cv_search_clock_gettime+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 clock_gettime ();
+int
+main ()
+{
+return clock_gettime ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' rt posix4; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_clock_gettime=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_clock_gettime+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_clock_gettime+:} false; then :
+
+else
+ ac_cv_search_clock_gettime=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+ test "$ac_cv_search_clock_gettime" = "none required" ||
+ LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime
+fi
+
+ for ac_func in clock_gettime clock_settime
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ LIBS=$gl_saved_libs
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CLOEXEC 1" >>confdefs.h
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_CLOSE=1
+ fi
+
+
+
+
+
+ if test $ac_cv_header_sys_socket_h != yes; then
+ for ac_header in winsock2.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+ fi
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ HAVE_WINSOCK2_H=1
+ UNISTD_H_HAVE_WINSOCK2_H=1
+ SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+ else
+ HAVE_WINSOCK2_H=0
+ fi
+
+
+ if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then
+ REPLACE_CLOSE=1
+ fi
+
+
+ if test $REPLACE_CLOSE = 0; then
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_CLOSE=1
+ fi
+ fi
+
+
+if test $REPLACE_CLOSE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_CLOSE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CLOSE 1" >>confdefs.h
+
+
+
+
+ :
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_CLOSE_STREAM 1
+_ACEOF
+
+
+
+
+
+ for ac_func in closedir
+do :
+ ac_fn_c_check_func "$LINENO" "closedir" "ac_cv_func_closedir"
+if test "x$ac_cv_func_closedir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_CLOSEDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_closedir = no; then
+ HAVE_CLOSEDIR=0
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_CLOSEDIR = 1; then
+ REPLACE_CLOSEDIR=1
+ fi
+ fi
+
+
+if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS closedir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_CLOSEDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_CLOSEDIR 1" >>confdefs.h
+
+
+
+
+ :
+
+
+ if test "x$datarootdir" = x; then
+ datarootdir='${datadir}'
+
+ fi
+ if test "x$docdir" = x; then
+ docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+
+ fi
+ if test "x$htmldir" = x; then
+ htmldir='${docdir}'
+
+ fi
+ if test "x$dvidir" = x; then
+ dvidir='${docdir}'
+
+ fi
+ if test "x$pdfdir" = x; then
+ pdfdir='${docdir}'
+
+ fi
+ if test "x$psdir" = x; then
+ psdir='${docdir}'
+
+ fi
+ if test "x$lispdir" = x; then
+ lispdir='${datarootdir}/emacs/site-lisp'
+
+ fi
+ if test "x$localedir" = x; then
+ localedir='${datarootdir}/locale'
+
+ fi
+
+ pkglibexecdir='${libexecdir}/${PACKAGE}'
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5
+$as_echo_n "checking for d_ino member in directory struct... " >&6; }
+if ${gl_cv_struct_dirent_d_ino+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_struct_dirent_d_ino=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.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);
+ if (! e)
+ return 2;
+ if (stat (e->d_name, &st) != 0)
+ return 3;
+ if (e->d_ino != st.st_ino)
+ return 4;
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_struct_dirent_d_ino=yes
+else
+ gl_cv_struct_dirent_d_ino=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5
+$as_echo "$gl_cv_struct_dirent_d_ino" >&6; }
+ if test $gl_cv_struct_dirent_d_ino = yes; then
+
+$as_echo "@%:@define D_INO_IN_DIRENT 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_dirent_h='<'dirent.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <dirent.h>" >&5
+$as_echo_n "checking absolute name of <dirent.h>... " >&6; }
+if ${gl_cv_next_dirent_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_dirent_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <dirent.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'dirent.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_dirent_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_dirent_h='<'dirent.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_dirent_h = yes; then
+ HAVE_DIRENT_H=1
+ else
+ HAVE_DIRENT_H=0
+ fi
+
+
+
+ for gl_func in alphasort closedir dirfd fdopendir opendir readdir rewinddir scandir; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <dirent.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_DIRENT_SAFER 1
+_ACEOF
+
+
+
+
+
+
+
+ for ac_func in dirfd
+do :
+ ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd"
+if test "x$ac_cv_func_dirfd" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DIRFD 1
+_ACEOF
+
+fi
+done
+
+ ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h>
+ #include <dirent.h>
+"
+if test "x$ac_cv_have_decl_dirfd" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_DIRFD $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_dirfd = no; then
+ HAVE_DECL_DIRFD=0
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dirfd is a macro" >&5
+$as_echo_n "checking whether dirfd is a macro... " >&6; }
+if ${gl_cv_func_dirfd_macro+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h>
+#include <dirent.h>
+#ifdef dirfd
+ dirent_header_defines_dirfd
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "dirent_header_defines_dirfd" >/dev/null 2>&1; then :
+ gl_cv_func_dirfd_macro=yes
+else
+ gl_cv_func_dirfd_macro=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 or macro with that name.
+ if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+ if test $ac_cv_have_decl_dirfd = yes; then
+ # If the system declares dirfd already, let's declare rpl_dirfd instead.
+ REPLACE_DIRFD=1
+ fi
+ fi
+
+if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS dirfd.$ac_objext"
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_sys_dir_fd_member_name+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ dir_fd_found=yes
+
+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:${as_lineno-$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
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_DIRFD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_DIRNAME 1
+_ACEOF
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
+$as_echo_n "checking whether // is distinct from /... " >&6; }
+if ${gl_cv_double_slash_root+:} false; 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:${as_lineno-$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
+
+$as_echo "@%:@define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
+
+ fi
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_DUP=1
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_DUP=1
+ fi
+
+
+if test $REPLACE_DUP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS dup.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_DUP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_DUP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+$as_echo "@%:@define HAVE_DUP2 1" >>confdefs.h
+
+
+ if test $HAVE_DUP2 = 1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5
+$as_echo_n "checking whether dup2 works... " >&6; }
+if ${gl_cv_func_dup2_works+:} false; 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;;
+ haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
+ gl_cv_func_dup2_works=no;;
+ *) gl_cv_func_dup2_works=yes;;
+ esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+int
+main ()
+{
+int result = 0;
+#ifdef FD_CLOEXEC
+ if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
+ result |= 1;
+#endif
+ if (dup2 (1, 1) == 0)
+ result |= 2;
+#ifdef FD_CLOEXEC
+ if (fcntl (1, F_GETFD) != FD_CLOEXEC)
+ result |= 4;
+#endif
+ close (0);
+ if (dup2 (0, 0) != -1)
+ result |= 8;
+ /* Many gnulib modules require POSIX conformance of EBADF. */
+ if (dup2 (2, 1000000) == -1 && errno != EBADF)
+ result |= 16;
+ return result;
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_dup2_works=yes
+else
+ gl_cv_func_dup2_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_DUP2=1
+ fi
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_DUP2 = 1; then
+ REPLACE_DUP2=1
+ fi
+ fi
+
+
+if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext"
+
+
+fi
+
+
+
+
+
+ GNULIB_DUP2=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_DUP2 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ GNULIB_ENVIRON=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_ENVIRON 1" >>confdefs.h
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
+$as_echo_n "checking for error_at_line... " >&6; }
+if ${ac_cv_lib_error_at_line+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <error.h>
+int
+main ()
+{
+error_at_line (0, 0, "", 0, "an error occurred");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_error_at_line=yes
+else
+ ac_cv_lib_error_at_line=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+
+
+
+
+
+ if test $ac_cv_have_decl_fchdir = no; then
+ HAVE_DECL_FCHDIR=0
+ fi
+
+
+ if test $HAVE_FCHDIR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fchdir.$ac_objext"
+
+ :
+
+$as_echo "@%:@define REPLACE_FCHDIR 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open can visit directories" >&5
+$as_echo_n "checking whether open can visit directories... " >&6; }
+if ${gl_cv_func_open_directory_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_open_directory_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fcntl.h>
+
+int
+main ()
+{
+return open(".", O_RDONLY) < 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_open_directory_works=yes
+else
+ gl_cv_func_open_directory_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define REPLACE_OPEN_DIRECTORY 1" >>confdefs.h
+
+ fi
+ fi
+
+
+
+
+
+
+ GNULIB_FCHDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FCHDIR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5
+$as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; }
+if ${gl_cv_func_fcntl_f_dupfd_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <errno.h>
+
+int
+main ()
+{
+int result = 0;
+ if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
+ if (errno != EINVAL) result |= 2;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_fcntl_f_dupfd_works=yes
+else
+ gl_cv_func_fcntl_f_dupfd_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+
+$as_echo "@%:@define FCNTL_DUPFD_BUGGY 1" >>confdefs.h
+ ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5
+$as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; }
+if ${gl_cv_func_fcntl_f_dupfd_cloexec+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#ifndef F_DUPFD_CLOEXEC
+choke me
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_fcntl_f_dupfd_cloexec=yes
+else
+ gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ 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:${as_lineno-$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
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+ fi
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+ fi
+
+
+if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FCNTL=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FCNTL 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_fcntl_h='<'fcntl.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <fcntl.h>" >&5
+$as_echo_n "checking absolute name of <fcntl.h>... " >&6; }
+if ${gl_cv_next_fcntl_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fcntl.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'fcntl.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_fcntl_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fcntl.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "fdopendir" "ac_cv_have_decl_fdopendir" "
+#include <dirent.h>
+
+"
+if test "x$ac_cv_have_decl_fdopendir" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_FDOPENDIR $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
+
+else
+ HAVE_DECL_FDOPENDIR=0
+fi
+
+
+ if test $ac_cv_func_fdopendir = no; then
+ HAVE_FDOPENDIR=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fdopendir works" >&5
+$as_echo_n "checking whether fdopendir works... " >&6; }
+if ${gl_cv_func_fdopendir_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_fdopendir_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <dirent.h>
+#include <fcntl.h>
+#include <unistd.h>
+#if !HAVE_DECL_FDOPENDIR
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
+#endif
+
+int
+main ()
+{
+int result = 0;
+ int fd = open ("conftest.c", O_RDONLY);
+ if (fd < 0) result |= 1;
+ if (fdopendir (fd)) result |= 2;
+ if (close (fd)) result |= 4;
+ return result;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_fdopendir_works=yes
+else
+ gl_cv_func_fdopendir_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FDOPENDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FDOPENDIR 1" >>confdefs.h
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_FDOPENDIR 1
+_ACEOF
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_FDUTIMENSAT 1
+_ACEOF
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BLOCKS 1
+_ACEOF
+
+
+$as_echo "@%:@define HAVE_ST_BLOCKS 1" >>confdefs.h
+
+else
+ :
+fi
+
+
+
+
+if test $ac_cv_member_struct_stat_st_blocks = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fileblocks.$ac_objext"
+
+
+
+ :
+
+fi
+
+
+
+
+
+
+ FLOAT_H=
+ REPLACE_FLOAT_LDBL=0
+ case "$host_os" in
+ aix* | beos* | openbsd* | mirbsd* | irix*)
+ FLOAT_H=float.h
+ ;;
+ freebsd*)
+ case "$host_cpu" in
+ i[34567]86 )
+ FLOAT_H=float.h
+ ;;
+ x86_64 )
+ # On x86_64 systems, the C compiler may still be generating
+ # 32-bit code.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+ yes
+ #endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+
+else
+ FLOAT_H=float.h
+fi
+rm -f conftest*
+
+ ;;
+ esac
+ ;;
+ linux*)
+ case "$host_cpu" in
+ powerpc*)
+ FLOAT_H=float.h
+ ;;
+ esac
+ ;;
+ esac
+ case "$host_os" in
+ aix* | freebsd* | linux*)
+ if test -n "$FLOAT_H"; then
+ REPLACE_FLOAT_LDBL=1
+ fi
+ ;;
+ esac
+
+ REPLACE_ITOLD=0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5
+$as_echo_n "checking whether conversion from 'int' to 'long double' works... " >&6; }
+if ${gl_cv_func_itold_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ case "$host" in
+ sparc*-*-linux*)
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __LP64__ || defined __arch64__
+ yes
+ #endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_func_itold_works="guessing no"
+else
+ gl_cv_func_itold_works="guessing yes"
+fi
+rm -f conftest*
+
+ ;;
+ *) gl_cv_func_itold_works="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int i = -1;
+volatile long double ld;
+int main ()
+{
+ ld += i * 1.0L;
+ if (ld > 0)
+ return 1;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_itold_works=yes
+else
+ gl_cv_func_itold_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5
+$as_echo "$gl_cv_func_itold_works" >&6; }
+ case "$gl_cv_func_itold_works" in
+ *no)
+ REPLACE_ITOLD=1
+ FLOAT_H=float.h
+ ;;
+ esac
+
+ if test -n "$FLOAT_H"; then
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_float_h='<'float.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <float.h>" >&5
+$as_echo_n "checking absolute name of <float.h>... " >&6; }
+if ${gl_cv_next_float_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <float.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'float.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ fi
+
+ if test -n "$FLOAT_H"; then
+ GL_GENERATE_FLOAT_H_TRUE=
+ GL_GENERATE_FLOAT_H_FALSE='#'
+else
+ GL_GENERATE_FLOAT_H_TRUE='#'
+ GL_GENERATE_FLOAT_H_FALSE=
+fi
+
+
+
+if test $REPLACE_FLOAT_LDBL = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext"
+
+fi
+if test $REPLACE_ITOLD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext"
+
+fi
+
+
+
+
+
+ FNMATCH_H=
+ 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:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5
+$as_echo_n "checking for working $gl_fnmatch_required fnmatch... " >&6; }
+if eval \${$gl_fnmatch_cache_var+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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;
+ }
+
+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 };
+ int result = 0;
+ if (!n ("a*", "", 0))
+ return 1;
+ if (!y ("a*", "abc", 0))
+ return 1;
+ if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
+ return 1;
+ if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
+ return 2;
+ if (!y ("a\\\\bc", "abc", 0))
+ return 3;
+ if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
+ return 3;
+ if (!y ("*x", ".x", 0))
+ return 4;
+ if (!n ("*x", ".x", FNM_PERIOD))
+ return 4;
+ if (!y (Apat, "\\\\", 0))
+ return 5;
+ if (!y (Apat, "A", 0))
+ return 5;
+ if (!y (apat, "\\\\", 0))
+ return 5;
+ if (!y (apat, "a", 0))
+ return 5;
+ if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, a01, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
+ return 5;
+ $gl_fnmatch_gnu_start
+ if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
+ result |= 8;
+ if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
+ result |= 16;
+ if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
+ result |= 32;
+ if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ $gl_fnmatch_gnu_end
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ eval "$gl_fnmatch_cache_var=yes"
+else
+ eval "$gl_fnmatch_cache_var=no"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+eval ac_res=\$$gl_fnmatch_cache_var
+ { $as_echo "$as_me:${as_lineno-$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
+ fi
+
+ if test -n "$FNMATCH_H"; then
+ GL_GENERATE_FNMATCH_H_TRUE=
+ GL_GENERATE_FNMATCH_H_FALSE='#'
+else
+ GL_GENERATE_FNMATCH_H_TRUE='#'
+ GL_GENERATE_FNMATCH_H_FALSE=
+fi
+
+
+if test -n "$FNMATCH_H"; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
+_ACEOF
+
+
+ ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
+
+
+
+
+fi
+
+
+
+
+
+if test -n "$FNMATCH_H"; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
+_ACEOF
+
+
+ ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
+
+
+
+
+fi
+
+
+
+ fp_headers='
+# include <stdio.h>
+# if HAVE_STDIO_EXT_H
+# include <stdio_ext.h>
+# endif
+'
+ ac_fn_c_check_decl "$LINENO" "__fpending" "ac_cv_have_decl___fpending" "$fp_headers
+"
+if test "x$ac_cv_have_decl___fpending" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL___FPENDING $ac_have_decl
+_ACEOF
+
+
+if test $ac_cv_func___fpending = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fpending.$ac_objext"
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_pending_output_n_bytes+:} false; then :
+ $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' \
+ \
+ '# Minix' \
+ 'fp->_ptr - fp->_buf' \
+ \
+ '# 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *fp = stdin; (void) ($ac_expr);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ fp_done=yes
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$fp_done" = yes && break
+ done
+
+ ac_cv_sys_pending_output_n_bytes=$ac_expr
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+_ACEOF
+
+
+fi
+
+
+
+ if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+ REPLACE_FSEEK=1
+ fi
+
+if test $REPLACE_FSEEK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fseek.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FSEEK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FSEEK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5
+$as_echo_n "checking for fseeko... " >&6; }
+if ${gl_cv_func_fseeko+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+int
+main ()
+{
+fseeko (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_func_fseeko=yes
+else
+ gl_cv_func_fseeko=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5
+$as_echo "$gl_cv_func_fseeko" >&6; }
+
+
+ if test $ac_cv_have_decl_fseeko = no; then
+ HAVE_DECL_FSEEKO=0
+ fi
+
+ if test $gl_cv_func_fseeko = no; then
+ HAVE_FSEEKO=0
+ else
+ if test $gl_cv_var_stdin_large_offset = no; then
+ REPLACE_FSEEKO=1
+ fi
+
+ fi
+
+if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fseeko.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FSEEKO=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FSEEKO 1" >>confdefs.h
+
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_FSTAT=1
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0 \
+ && test "$gl_cv_func_open_directory_works" != yes; then
+ REPLACE_FSTAT=1
+ fi
+
+
+if test $REPLACE_FSTAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fstat.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_FSTAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FSTAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_fstatat = no; then
+ HAVE_FSTATAT=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fstatat (..., 0) works" >&5
+$as_echo_n "checking whether fstatat (..., 0) works... " >&6; }
+if ${gl_cv_func_fstatat_zero_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ aix*) gl_cv_func_fstatat_zero_flag="guessing no";;
+ *) gl_cv_func_fstatat_zero_flag="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ int
+ main (void)
+ {
+ struct stat a;
+ return fstatat (AT_FDCWD, ".", &a, 0) != 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_fstatat_zero_flag=yes
+else
+ gl_cv_func_fstatat_zero_flag=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fstatat_zero_flag" >&5
+$as_echo "$gl_cv_func_fstatat_zero_flag" >&6; }
+
+ case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ *yes+yes) ;;
+ *) REPLACE_FSTATAT=1
+ case $gl_cv_func_fstatat_zero_flag in
+ *yes)
+
+$as_echo "@%:@define HAVE_WORKING_FSTATAT_ZERO_FLAG 1" >>confdefs.h
+
+ ;;
+ esac
+ ;;
+ esac
+ fi
+
+if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fstatat.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_FSTATAT 1
+_ACEOF
+
+
+
+
+
+
+ GNULIB_FSTATAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FSTATAT 1" >>confdefs.h
+
+
+
+
+
+
+
+ if test $ac_cv_func_futimens = no; then
+ HAVE_FUTIMENS=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether futimens works" >&5
+$as_echo_n "checking whether futimens works... " >&6; }
+if ${gl_cv_func_futimens_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_futimens_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <errno.h>
+
+int
+main ()
+{
+struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+ int fd = creat ("conftest.file", 0600);
+ struct stat st;
+ if (fd < 0) return 1;
+ errno = 0;
+ if (futimens (AT_FDCWD, NULL) == 0) return 2;
+ if (errno != EBADF) return 3;
+ if (futimens (fd, ts)) return 4;
+ sleep (1);
+ ts[0].tv_nsec = UTIME_NOW;
+ ts[1].tv_nsec = UTIME_OMIT;
+ if (futimens (fd, ts)) return 5;
+ if (fstat (fd, &st)) return 6;
+ if (st.st_ctime < st.st_atime) return 7;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __linux__
+/* The Linux kernel added futimens in 2.6.22, but has bugs with UTIME_OMIT
+ in several file systems as recently as 2.6.32. Always replace futimens
+ to support older kernels. */
+choke me
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_futimens_works=yes
+else
+ gl_cv_func_futimens_works="needs runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ gl_cv_func_futimens_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_futimens_works" >&5
+$as_echo "$gl_cv_func_futimens_works" >&6; }
+ if test "$gl_cv_func_futimens_works" != yes; then
+ REPLACE_FUTIMENS=1
+ fi
+ fi
+
+if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS futimens.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FUTIMENS=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_FUTIMENS 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ gl_abort_bug=no
+ case "$host_os" in
+ mingw*)
+ gl_cv_func_getcwd_path_max=yes
+ ;;
+ *)
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd handles long file names properly" >&5
+$as_echo_n "checking whether getcwd handles long file names properly... " >&6; }
+if ${gl_cv_func_getcwd_path_max+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir3"
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ aix*) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+ *) gl_cv_func_getcwd_path_max=no;;
+ esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else
+# include <direct.h>
+#endif
+#include <string.h>
+#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+
+
+#ifndef AT_FDCWD
+# define AT_FDCWD 0
+#endif
+#ifdef ENAMETOOLONG
+# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG)
+#else
+# define is_ENAMETOOLONG(x) 0
+#endif
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir. */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* The length of this name must be 8. */
+#define DIR_NAME "confdir3"
+#define DIR_NAME_LEN 8
+#define DIR_NAME_SIZE (DIR_NAME_LEN + 1)
+
+/* The length of "../". */
+#define DOTDOTSLASH_LEN 3
+
+/* Leftover bytes in the buffer, to work around library or OS bugs. */
+#define BUF_SLOP 20
+
+int
+main ()
+{
+#ifndef PATH_MAX
+ /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
+ at least not on a local file system. And if we were to start worrying
+ about remote file systems, we'd have to enable the wrapper function
+ all of the time, just to be safe. That's not worth the cost. */
+ exit (0);
+#elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
+ - DIR_NAME_SIZE - BUF_SLOP) \
+ <= PATH_MAX)
+ /* FIXME: Assuming there's a system for which this is true,
+ this should be done in a compile test. */
+ exit (0);
+#else
+ char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1)
+ + DIR_NAME_SIZE + BUF_SLOP];
+ char *cwd = getcwd (buf, PATH_MAX);
+ size_t initial_cwd_len;
+ size_t cwd_len;
+ int fail = 0;
+ size_t n_chdirs = 0;
+
+ if (cwd == NULL)
+ exit (10);
+
+ cwd_len = initial_cwd_len = strlen (cwd);
+
+ while (1)
+ {
+ size_t dotdot_max = PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN);
+ char *c = NULL;
+
+ 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. */
+ if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
+ {
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ fail = 20;
+ break;
+ }
+
+ if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE)
+ {
+ c = getcwd (buf, PATH_MAX);
+ if (!c && errno == ENOENT)
+ {
+ fail = 11;
+ break;
+ }
+ if (c)
+ {
+ fail = 31;
+ break;
+ }
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ {
+ fail = 21;
+ 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 = 22;
+ break;
+ }
+ if (AT_FDCWD || errno == ERANGE || errno == ENOENT)
+ {
+ fail = 12;
+ break;
+ }
+ }
+ }
+
+ if (c && strlen (c) != cwd_len)
+ {
+ fail = 23;
+ break;
+ }
+ ++n_chdirs;
+ }
+
+ /* Leaving behind such a deep directory is not polite.
+ So clean up here, right away, even though the driving
+ shell script would also clean up. */
+ {
+ size_t i;
+
+ /* Try rmdir first, in case the chdir failed. */
+ rmdir (DIR_NAME);
+ for (i = 0; i <= n_chdirs; i++)
+ {
+ if (chdir ("..") < 0)
+ break;
+ if (rmdir (DIR_NAME) != 0)
+ break;
+ }
+ }
+
+ exit (fail);
+#endif
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getcwd_path_max=yes
+else
+ case $? in
+ 10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
+ 31) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+ *) gl_cv_func_getcwd_path_max=no;;
+ esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_path_max" >&5
+$as_echo "$gl_cv_func_getcwd_path_max" >&6; }
+
+ case "$gl_cv_func_getcwd_null" in
+ *yes)
+
+
+
+
+ for ac_func in getpagesize
+do :
+ ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_GETPAGESIZE 1
+_ACEOF
+
+fi
+done
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_getcwd_abort_bug+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Remove any remnants of a previous test.
+ rm -rf confdir-14B---
+ # Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir-14B---"
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_getcwd_abort_bug=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <direct.h>
+#endif
+#include <string.h>
+#include <sys/stat.h>
+
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir. */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* FIXME: skip the run-test altogether on systems without getpagesize. */
+#if ! HAVE_GETPAGESIZE
+# define getpagesize() 0
+#endif
+
+/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than
+ the 16kB pagesize on ia64 linux. Those conditions make the code below
+ trigger a bug in glibc's getcwd implementation before 2.4.90-10. */
+#define TARGET_LEN (5 * 1024)
+
+int
+main ()
+{
+ char const *dir_name = "confdir-14B---";
+ char *cwd;
+ size_t initial_cwd_len;
+ int fail = 0;
+ size_t desired_depth;
+ size_t d;
+
+ /* The bug is triggered when PATH_MAX < getpagesize (), so skip
+ this relatively expensive and invasive test if that's not true. */
+ if (getpagesize () <= PATH_MAX)
+ return 0;
+
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ return 2;
+
+ initial_cwd_len = strlen (cwd);
+ free (cwd);
+ desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
+ / (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;
+ }
+ }
+
+ /* If libc has the bug in question, this invocation of getcwd
+ results in a failed assertion. */
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ fail = 4; /* getcwd failed: it refuses to return a string longer
+ than PATH_MAX. */
+ free (cwd);
+
+ /* Call rmdir first, in case the above chdir failed. */
+ rmdir (dir_name);
+ while (0 < d--)
+ {
+ if (chdir ("..") < 0)
+ {
+ fail = 5;
+ break;
+ }
+ rmdir (dir_name);
+ }
+
+ return fail;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getcwd_abort_bug=no
+else
+ ret=$?
+ if test $ret -ge 128 || test $ret = 4; then
+ gl_cv_func_getcwd_abort_bug=yes
+ else
+ gl_cv_func_getcwd_abort_bug=no
+ fi
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_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
+
+ ;;
+ esac
+ ;;
+ esac
+ case "$gl_cv_func_getcwd_path_max" in
+ "no, it has the AIX bug") ;;
+ *)
+
+$as_echo "@%:@define HAVE_MINIMALLY_WORKING_GETCWD 1" >>confdefs.h
+
+ ;;
+ esac
+ case "$gl_cv_func_getcwd_path_max" in
+ "no, but it is partly working")
+
+$as_echo "@%:@define HAVE_PARTLY_WORKING_GETCWD 1" >>confdefs.h
+
+ ;;
+ esac
+
+ if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \
+ || test $gl_cv_func_getcwd_posix_signature != yes \
+ || test "$gl_cv_func_getcwd_path_max" != yes \
+ || test $gl_abort_bug = yes; then
+ REPLACE_GETCWD=1
+ fi
+
+if test $REPLACE_GETCWD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getcwd.$ac_objext"
+
+
+
+
+ :
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_GETCWD 1
+_ACEOF
+
+
+
+
+
+
+
+ GNULIB_GETCWD=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETCWD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in
+ *yes,yes) ;;
+ *)
+ REPLACE_GETCWD=1
+ ;;
+ esac
+
+if test $REPLACE_GETCWD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getcwd-lgpl.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_GETCWD=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETCWD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_getdelim = yes; then
+ HAVE_GETDELIM=1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getdelim function" >&5
+$as_echo_n "checking for working getdelim function... " >&6; }
+if ${gl_cv_func_working_getdelim+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+#endif
+
+_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*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 2;
+ }
+ {
+ /* 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 3;
+ }
+ return 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_getdelim=yes
+else
+ gl_cv_func_working_getdelim=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5
+$as_echo "$gl_cv_func_working_getdelim" >&6; }
+ if test $gl_cv_func_working_getdelim = no; then
+ REPLACE_GETDELIM=1
+ fi
+ else
+ HAVE_GETDELIM=0
+ fi
+
+ if test $ac_cv_have_decl_getdelim = no; then
+ HAVE_DECL_GETDELIM=0
+ fi
+
+if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext"
+
+
+ for ac_func in flockfile funlockfile
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
+_ACEOF
+
+
+fi
+
+
+
+
+
+ GNULIB_GETDELIM=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETDELIM 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_getdtablesize != yes; then
+ HAVE_GETDTABLESIZE=0
+ fi
+
+if test $HAVE_GETDTABLESIZE = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getdtablesize.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_GETDTABLESIZE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+ gl_getline_needs_run_time_check=no
+ ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline"
+if test "x$ac_cv_func_getline" = xyes; 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getline function" >&5
+$as_echo_n "checking for working getline function... " >&6; }
+if ${am_cv_func_working_getline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Lucky GNU user" >/dev/null 2>&1; then :
+ am_cv_func_working_getline=yes
+else
+ am_cv_func_working_getline=no
+fi
+rm -f conftest*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 = getline (&line, &siz, in);
+ if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
+ return 2;
+ }
+ {
+ /* 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 3;
+ }
+ return 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ am_cv_func_working_getline=yes
+else
+ am_cv_func_working_getline=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5
+$as_echo "$am_cv_func_working_getline" >&6; }
+ fi
+
+ if test $ac_cv_have_decl_getline = no; then
+ HAVE_DECL_GETLINE=0
+ fi
+
+ if test $am_cv_func_working_getline = no; then
+ REPLACE_GETLINE=1
+ fi
+
+if test $REPLACE_GETLINE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getline.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_GETLINE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETLINE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+if test $REPLACE_GETOPT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
+
+
+
+
+ GNULIB_GL_UNISTD_H_GETOPT=1
+fi
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETOPT_GNU 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test -n "$gl_replace_getopt"; then :
+
+fi
+
+ REPLACE_GETOPT=1
+
+ if test $REPLACE_GETOPT = 1; then
+
+ GETOPT_H=getopt.h
+
+$as_echo "@%:@define __GETOPT_PREFIX rpl_" >>confdefs.h
+
+
+
+ fi
+
+if test $REPLACE_GETOPT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
+
+
+
+
+ GNULIB_GL_UNISTD_H_GETOPT=1
+fi
+
+
+
+
+ for ac_func in getpagesize
+do :
+ ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_GETPAGESIZE 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_getpagesize = no; then
+ HAVE_GETPAGESIZE=0
+ for ac_header in OS.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "OS.h" "ac_cv_header_OS_h" "$ac_includes_default"
+if test "x$ac_cv_header_OS_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_OS_H 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_OS_h = yes; then
+ HAVE_OS_H=1
+ fi
+ for ac_header in sys/param.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_param_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_PARAM_H 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_sys_param_h = yes; then
+ HAVE_SYS_PARAM_H=1
+ fi
+ fi
+ case "$host_os" in
+ mingw*)
+ REPLACE_GETPAGESIZE=1
+ ;;
+ esac
+ ac_fn_c_check_decl "$LINENO" "getpagesize" "ac_cv_have_decl_getpagesize" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getpagesize" = xyes; then :
+
+else
+ HAVE_DECL_GETPAGESIZE=0
+fi
+
+
+if test $REPLACE_GETPAGESIZE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getpagesize.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_GETPAGESIZE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gl_gettimeofday_timezone=void
+ if test $ac_cv_func_gettimeofday != yes; then
+ HAVE_GETTIMEOFDAY=0
+ else
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday clobbers localtime buffer" >&5
+$as_echo_n "checking whether gettimeofday clobbers localtime buffer... " >&6; }
+if ${gl_cv_func_gettimeofday_clobber+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_gettimeofday_clobber=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.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;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_gettimeofday_clobber=no
+else
+ gl_cv_func_gettimeofday_clobber=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gettimeofday_clobber" >&5
+$as_echo "$gl_cv_func_gettimeofday_clobber" >&6; }
+
+ if test $gl_cv_func_gettimeofday_clobber = yes; then
+ REPLACE_GETTIMEOFDAY=1
+
+
+$as_echo "@%:@define gmtime rpl_gmtime" >>confdefs.h
+
+
+$as_echo "@%:@define localtime rpl_localtime" >>confdefs.h
+
+
+
+$as_echo "@%:@define GETTIMEOFDAY_CLOBBERS_LOCALTIME 1" >>confdefs.h
+
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettimeofday with POSIX signature" >&5
+$as_echo_n "checking for gettimeofday with POSIX signature... " >&6; }
+if ${gl_cv_func_gettimeofday_posix_signature+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_gettimeofday_posix_signature=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/time.h>
+int gettimeofday (struct timeval *restrict, struct timezone *restrict);
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_gettimeofday_posix_signature=almost
+else
+ gl_cv_func_gettimeofday_posix_signature=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+
+ fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GETTIMEOFDAY_TIMEZONE $gl_gettimeofday_timezone
+_ACEOF
+
+
+if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext"
+
+
+ for ac_header in sys/timeb.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_timeb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_TIMEB_H 1
+_ACEOF
+
+fi
+
+done
+
+ for ac_func in _ftime
+do :
+ ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime"
+if test "x$ac_cv_func__ftime" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE__FTIME 1
+_ACEOF
+
+fi
+done
+
+
+fi
+
+
+
+
+
+ GNULIB_GETTIMEOFDAY=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h
+
+
+
+
+ :
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generally respects inline" >&5
+$as_echo_n "checking whether the compiler generally respects inline... " >&6; }
+if ${gl_cv_c_inline_effective+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test $ac_cv_c_inline = no; then
+ gl_cv_c_inline_effective=no
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifdef __NO_INLINE__
+ #error "inline is not effective"
+ #endif
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_c_inline_effective=yes
+else
+ gl_cv_c_inline_effective=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define HAVE_INLINE 1" >>confdefs.h
+
+ fi
+
+
+
+
+ :
+
+ :
+ :
+ :
+ :
+
+
+
+
+
+
+ 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdint.h>
+ extern intptr_t foo;
+ extern $gltype1 foo;
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ PRIPTR_PREFIX='"'$glpfx'"'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test -n "$PRIPTR_PREFIX" && break
+ done
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT32_MAX < INTMAX_MAX" >&5
+$as_echo_n "checking whether INT32_MAX < INTMAX_MAX... " >&6; }
+if ${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes
+else
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking whether INT64_MAX == LONG_MAX" >&5
+$as_echo_n "checking whether INT64_MAX == LONG_MAX... " >&6; }
+if ${gl_cv_test_INT64_MAX_EQ_LONG_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes
+else
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking whether UINT32_MAX < UINTMAX_MAX" >&5
+$as_echo_n "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; }
+if ${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes
+else
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking whether UINT64_MAX == ULONG_MAX" >&5
+$as_echo_n "checking whether UINT64_MAX == ULONG_MAX... " >&6; }
+if ${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes
+else
+ 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:${as_lineno-$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
+
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "iswblank" "ac_cv_have_decl_iswblank" "
+/* 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 <wctype.h>
+
+"
+if test "x$ac_cv_have_decl_iswblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_ISWBLANK $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_func_iswblank = no; then
+ HAVE_ISWBLANK=0
+ if test $ac_cv_have_decl_iswblank = yes; then
+ REPLACE_ISWBLANK=1
+ fi
+ fi
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+ else
+ if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+ :
+ fi
+ fi
+
+
+if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+else
+ if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS iswblank.$ac_objext"
+
+ fi
+fi
+
+
+
+
+
+ GNULIB_ISWBLANK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_ISWBLANK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_langinfo_h='<'langinfo.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <langinfo.h>" >&5
+$as_echo_n "checking absolute name of <langinfo.h>... " >&6; }
+if ${gl_cv_next_langinfo_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_langinfo_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'langinfo.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_langinfo_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_langinfo_h='<'langinfo.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 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
+
+
+
+
+
+ HAVE_LANGINFO_CODESET=0
+ HAVE_LANGINFO_T_FMT_AMPM=0
+ HAVE_LANGINFO_ERA=0
+ HAVE_LANGINFO_YESEXPR=0
+
+ if test $ac_cv_header_langinfo_h = yes; then
+ HAVE_LANGINFO_H=1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5
+$as_echo_n "checking whether langinfo.h defines CODESET... " >&6; }
+if ${gl_cv_header_langinfo_codeset+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = CODESET;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_codeset=yes
+else
+ gl_cv_header_langinfo_codeset=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5
+$as_echo_n "checking whether langinfo.h defines T_FMT_AMPM... " >&6; }
+if ${gl_cv_header_langinfo_t_fmt_ampm+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = T_FMT_AMPM;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_t_fmt_ampm=yes
+else
+ gl_cv_header_langinfo_t_fmt_ampm=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5
+$as_echo "$gl_cv_header_langinfo_t_fmt_ampm" >&6; }
+ if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
+ HAVE_LANGINFO_T_FMT_AMPM=1
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5
+$as_echo_n "checking whether langinfo.h defines ERA... " >&6; }
+if ${gl_cv_header_langinfo_era+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = ERA;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_era=yes
+else
+ gl_cv_header_langinfo_era=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5
+$as_echo_n "checking whether langinfo.h defines YESEXPR... " >&6; }
+if ${gl_cv_header_langinfo_yesexpr+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = YESEXPR;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_yesexpr=yes
+else
+ gl_cv_header_langinfo_yesexpr=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5
+$as_echo "$gl_cv_header_langinfo_yesexpr" >&6; }
+ if test $gl_cv_header_langinfo_yesexpr = yes; then
+ HAVE_LANGINFO_YESEXPR=1
+ fi
+ else
+ HAVE_LANGINFO_H=0
+ fi
+
+
+
+
+
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+ for ac_func in lchown
+do :
+ ac_fn_c_check_func "$LINENO" "lchown" "ac_cv_func_lchown"
+if test "x$ac_cv_func_lchown" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LCHOWN 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_lchown = no; then
+ HAVE_LCHOWN=0
+ elif test "$gl_cv_func_chown_slash_works" != yes \
+ || test "$gl_cv_func_chown_ctime_works" != yes; then
+ REPLACE_LCHOWN=1
+ fi
+
+if test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS lchown.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LCHOWN=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_LCHOWN 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_link = no; then
+ HAVE_LINK=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link obeys POSIX" >&5
+$as_echo_n "checking whether link obeys POSIX... " >&6; }
+if ${gl_cv_func_link_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ touch conftest.a
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.a conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_link_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ if (!link ("conftest.a", "conftest.b/"))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!link ("conftest.lnk/", "conftest.b"))
+ result |= 2;
+ if (rename ("conftest.a", "conftest.b"))
+ result |= 4;
+ if (!link ("conftest.b", "conftest.lnk"))
+ result |= 8;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_link_works=yes
+else
+ gl_cv_func_link_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.a conftest.b conftest.lnk
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_link_works" >&5
+$as_echo "$gl_cv_func_link_works" >&6; }
+ if test "$gl_cv_func_link_works" != yes; then
+ REPLACE_LINK=1
+ fi
+ fi
+
+if test $HAVE_LINK = 0 || test $REPLACE_LINK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS link.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LINK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_LINK 1" >>confdefs.h
+
+
+
+
+ gl_link_follows_symlinks=0 # assume GNU behavior
+ if test $ac_cv_func_readlink = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __xpg4" >&5
+$as_echo_n "checking for __xpg4... " >&6; }
+if ${gl_cv_have___xpg4+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+extern int __xpg4;
+int
+main ()
+{
+return __xpg4;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_have___xpg4=yes
+else
+ gl_cv_have___xpg4=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have___xpg4" >&5
+$as_echo "$gl_cv_have___xpg4" >&6; }
+ if test $gl_cv_have___xpg4 = yes; then
+ gl_link_follows_symlinks=-1
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link(2) dereferences a symlink" >&5
+$as_echo_n "checking whether link(2) dereferences a symlink... " >&6; }
+if ${gl_cv_func_link_follows_symlink+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ # Create a regular file.
+ echo > conftest.file
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_link_follows_symlink=unknown
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/stat.h>
+# include <unistd.h>
+# include <stdlib.h>
+
+# define SAME_INODE(Stat_buf_1, Stat_buf_2) \
+ ((Stat_buf_1).st_ino == (Stat_buf_2).st_ino \
+ && (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)
+
+ int
+ main ()
+ {
+ const char *file = "conftest.file";
+ const char *sym = "conftest.sym";
+ const char *hard = "conftest.hard";
+ struct stat sb_file, sb_hard;
+
+ /* Create a symlink to the regular file. */
+ if (symlink (file, sym))
+ return 2;
+
+ /* Create a hard link to that symlink. */
+ if (link (sym, hard))
+ return 3;
+
+ if (lstat (hard, &sb_hard))
+ return 4;
+ if (lstat (file, &sb_file))
+ return 5;
+
+ /* If the dev/inode of hard and file are the same, then
+ the link call followed the symlink. */
+ return SAME_INODE (sb_hard, sb_file) ? 1 : 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_link_follows_symlink=no
+else
+ gl_cv_func_link_follows_symlink=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file conftest.sym conftest.hard
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_link_follows_symlink" >&5
+$as_echo "$gl_cv_func_link_follows_symlink" >&6; }
+ case $gl_cv_func_link_follows_symlink in
+ yes) gl_link_follows_symlinks=1 ;;
+ no) ;; # already defaulted to 0
+ *) gl_link_follows_symlinks=-2 ;;
+ esac
+ fi
+ fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LINK_FOLLOWS_SYMLINKS $gl_link_follows_symlinks
+_ACEOF
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_linkat = no; then
+ HAVE_LINKAT=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linkat(,AT_SYMLINK_FOLLOW) works" >&5
+$as_echo_n "checking whether linkat(,AT_SYMLINK_FOLLOW) works... " >&6; }
+if ${gl_cv_func_linkat_follow+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f1 conftest.f2
+ touch conftest.f1
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <unistd.h>
+#ifdef __linux__
+/* Linux added linkat in 2.6.16, but did not add AT_SYMLINK_FOLLOW
+ until 2.6.18. Always replace linkat to support older kernels. */
+choke me
+#endif
+
+int
+main ()
+{
+return linkat (AT_FDCWD, "conftest.f1", AT_FDCWD, "conftest.f2",
+ AT_SYMLINK_FOLLOW);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_linkat_follow=yes
+else
+ gl_cv_func_linkat_follow="need runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ rm -rf conftest.f1 conftest.f2
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_linkat_follow" >&5
+$as_echo "$gl_cv_func_linkat_follow" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linkat handles trailing slash correctly" >&5
+$as_echo_n "checking whether linkat handles trailing slash correctly... " >&6; }
+if ${gl_cv_func_linkat_slash+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.a conftest.b conftest.c conftest.d
+ if test "$cross_compiling" = yes; then :
+ # Guess yes on glibc systems, no otherwise.
+ case "$host_os" in
+ *-gnu*) gl_cv_func_linkat_slash="guessing yes";;
+ *) gl_cv_func_linkat_slash="guessing no";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <stdio.h>
+
+int
+main ()
+{
+int result;
+ int fd;
+ /* Create a regular file. */
+ fd = open ("conftest.a", O_CREAT | O_EXCL | O_WRONLY, 0600);
+ if (fd < 0)
+ return 1;
+ if (write (fd, "hello", 5) < 5)
+ return 2;
+ if (close (fd) < 0)
+ return 3;
+ /* Test whether hard links are supported on the current
+ device. */
+ if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.b",
+ AT_SYMLINK_FOLLOW) < 0)
+ return 0;
+ result = 0;
+ /* Test whether a trailing "/" is treated like "/.". */
+ if (linkat (AT_FDCWD, "conftest.a/", AT_FDCWD, "conftest.c",
+ AT_SYMLINK_FOLLOW) == 0)
+ result |= 4;
+ if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.d/",
+ AT_SYMLINK_FOLLOW) == 0)
+ result |= 8;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_linkat_slash=yes
+else
+ gl_cv_func_linkat_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.a conftest.b conftest.c conftest.d
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_linkat_slash" >&5
+$as_echo "$gl_cv_func_linkat_slash" >&6; }
+ case "$gl_cv_func_linkat_slash" in
+ *yes) gl_linkat_slash_bug=0 ;;
+ *) gl_linkat_slash_bug=1 ;;
+ esac
+ if test "$gl_cv_func_linkat_follow" != yes \
+ || test $gl_linkat_slash_bug = 1; then
+ REPLACE_LINKAT=1
+
+cat >>confdefs.h <<_ACEOF
+@%:@define LINKAT_TRAILING_SLASH_BUG $gl_linkat_slash_bug
+_ACEOF
+
+ fi
+ fi
+
+if test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS linkat.$ac_objext"
+
+fi
+if test $HAVE_LINKAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LINKAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_LINKAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lseek detects pipes" >&5
+$as_echo_n "checking whether lseek detects pipes... " >&6; }
+if ${gl_cv_func_lseek_pipe+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test $cross_compiling = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h> /* for off_t */
+#include <stdio.h> /* for SEEK_CUR */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <io.h>
+#endif
+
+int
+main ()
+{
+
+ /* Exit with success only if stdin is seekable. */
+ return lseek (0, (off_t)0, SEEK_CUR) < 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ 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
+else
+ gl_cv_func_lseek_pipe=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || defined __BEOS__
+/* mingw and BeOS mistakenly return 0 when trying to seek on pipes. */
+ Choke me.
+#endif
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_lseek_pipe=yes
+else
+ gl_cv_func_lseek_pipe=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_LSEEK=1
+
+$as_echo "@%:@define LSEEK_PIPE_BROKEN 1" >>confdefs.h
+
+ fi
+
+if test $REPLACE_LSEEK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS lseek.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LSEEK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_LSEEK 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_lstat = yes; then
+
+ if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then
+ REPLACE_LSTAT=1
+ fi
+ else
+ HAVE_LSTAT=0
+ fi
+
+if test $REPLACE_LSTAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS lstat.$ac_objext"
+
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_LSTAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_LSTAT 1" >>confdefs.h
+
+
+
+
+
+ for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
+$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
+if ${ac_cv_func_malloc_0_nonnull+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_malloc_0_nonnull=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *malloc ();
+#endif
+
+int
+main ()
+{
+return ! malloc (0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_malloc_0_nonnull=yes
+else
+ ac_cv_func_malloc_0_nonnull=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $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 :
+
+$as_echo "@%:@define HAVE_MALLOC_GNU 1" >>confdefs.h
+
+else
+ $as_echo "@%:@define HAVE_MALLOC_GNU 0" >>confdefs.h
+
+ REPLACE_MALLOC=1
+
+fi
+
+
+if test $REPLACE_MALLOC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_MALLOC_GNU 1
+_ACEOF
+
+
+
+
+
+ if test $gl_cv_func_malloc_posix = yes; then
+
+$as_echo "@%:@define HAVE_MALLOC_POSIX 1" >>confdefs.h
+
+ else
+ REPLACE_MALLOC=1
+ fi
+
+if test $REPLACE_MALLOC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MALLOC_POSIX=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_mbrtowc = no; then
+ HAVE_MBRTOWC=0
+ ac_fn_c_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_mbrtowc" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_MBRTOWC $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_mbrtowc = yes; then
+ REPLACE_MBRTOWC=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBRTOWC=1
+ else
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5
+$as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; }
+if ${gl_cv_func_mbrtowc_null_arg1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on Solaris.
+ solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
+ esac
+ if test $LOCALE_FR_UTF8 != none; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+
+ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ {
+ char input[] = "\303\237er";
+ mbstate_t state;
+ wchar_t wc;
+ size_t ret;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input, 5, &state);
+ if (ret != 2)
+ result |= 1;
+ if (!mbsinit (&state))
+ result |= 2;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ ret = mbrtowc (NULL, input, 5, &state);
+ if (ret != 2) /* Solaris 7 fails here: ret is -1. */
+ result |= 4;
+ if (!mbsinit (&state))
+ result |= 8;
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_null_arg1=yes
+else
+ gl_cv_func_mbrtowc_null_arg1=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5
+$as_echo "$gl_cv_func_mbrtowc_null_arg1" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5
+$as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; }
+if ${gl_cv_func_mbrtowc_null_arg2+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on OSF/1.
+ osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
+ esac
+ if test $LOCALE_FR_UTF8 != none; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_null_arg2=yes
+else
+ gl_cv_func_mbrtowc_null_arg2=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5
+$as_echo "$gl_cv_func_mbrtowc_null_arg2" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5
+$as_echo_n "checking whether mbrtowc has a correct return value... " >&6; }
+if ${gl_cv_func_mbrtowc_retval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on HP-UX, Solaris, native Windows.
+ hpux* | solaris* | mingw*) 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 \
+ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ int found_some_locale = 0;
+ /* 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)
+ result |= 1;
+ }
+ found_some_locale = 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)
+ result |= 2;
+ }
+ found_some_locale = 1;
+ }
+ /* This fails on native Windows. */
+ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
+ {
+ char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 4;
+ }
+ found_some_locale = 1;
+ }
+ if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
+ {
+ char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 8;
+ }
+ found_some_locale = 1;
+ }
+ if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
+ {
+ char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 16;
+ }
+ found_some_locale = 1;
+ }
+ return (found_some_locale ? result : 77);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_retval=yes
+else
+ if test $? != 77; then
+ gl_cv_func_mbrtowc_retval=no
+ fi
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5
+$as_echo "$gl_cv_func_mbrtowc_retval" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_mbrtowc_nul_retval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ /* 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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_nul_retval=yes
+else
+ gl_cv_func_mbrtowc_nul_retval=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5
+$as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; }
+
+ case "$gl_cv_func_mbrtowc_null_arg1" in
+ *yes) ;;
+ *)
+$as_echo "@%:@define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_null_arg2" in
+ *yes) ;;
+ *)
+$as_echo "@%:@define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_retval" in
+ *yes) ;;
+ *)
+$as_echo "@%:@define MBRTOWC_RETVAL_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_nul_retval" in
+ *yes) ;;
+ *)
+$as_echo "@%:@define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBRTOWC=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ GNULIB_MBSCASECMP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MBSCASECMP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_mbsinit = no; then
+ HAVE_MBSINIT=0
+ ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_mbsinit" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_MBSINIT $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_mbsinit = yes; then
+ REPLACE_MBSINIT=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBSINIT=1
+ else
+ case "$host_os" in
+ mingw*) REPLACE_MBSINIT=1 ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBSINIT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MBSINIT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_mbsrtowcs = no; then
+ HAVE_MBSRTOWCS=0
+ ac_fn_c_check_decl "$LINENO" "mbsrtowcs" "ac_cv_have_decl_mbsrtowcs" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_mbsrtowcs" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_MBSRTOWCS $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_mbsrtowcs = yes; then
+ REPLACE_MBSRTOWCS=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBSRTOWCS=1
+ else
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbsrtowcs works" >&5
+$as_echo_n "checking whether mbsrtowcs works... " >&6; }
+if ${gl_cv_func_mbsrtowcs_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on HP-UX, Solaris, mingw.
+ hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbsrtowcs_works="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 :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ /* Test whether the function supports a NULL destination argument.
+ This fails on native Windows. */
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ const char input[] = "\337er";
+ const char *src = input;
+ mbstate_t state;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbsrtowcs (NULL, &src, 1, &state) != 3
+ || src != input)
+ result |= 1;
+ }
+ /* 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)
+ result |= 2;
+ }
+ }
+ 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)
+ result |= 4;
+ }
+ }
+ 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)
+ result |= 8;
+ }
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbsrtowcs_works=yes
+else
+ gl_cv_func_mbsrtowcs_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbsrtowcs_works" >&5
+$as_echo "$gl_cv_func_mbsrtowcs_works" >&6; }
+
+ case "$gl_cv_func_mbsrtowcs_works" in
+ *yes) ;;
+ *) REPLACE_MBSRTOWCS=1 ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs-state.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBSRTOWCS=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MBSRTOWCS 1" >>confdefs.h
+
+
+
+
+
+
+ if false; then
+ REPLACE_MBTOWC=1
+ fi
+
+if test $REPLACE_MBTOWC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbtowc.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBTOWC=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MBTOWC 1" >>confdefs.h
+
+
+
+
+
+
+ :
+
+
+if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext"
+
+
+ for ac_header in bp-sym.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default"
+if test "x$ac_cv_header_bp_sym_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_BP_SYM_H 1
+_ACEOF
+
+fi
+
+done
+
+
+fi
+
+
+
+
+
+ GNULIB_MEMCHR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MEMCHR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ for ac_func in mempcpy
+do :
+ ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
+if test "x$ac_cv_func_mempcpy" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MEMPCPY 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_mempcpy = no; then
+ HAVE_MEMPCPY=0
+ fi
+
+if test $HAVE_MEMPCPY = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mempcpy.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MEMPCPY=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MEMPCPY 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_memrchr = no; then
+ HAVE_DECL_MEMRCHR=0
+ fi
+
+ for ac_func in memrchr
+do :
+ ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr"
+if test "x$ac_cv_func_memrchr" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MEMRCHR 1
+_ACEOF
+
+fi
+done
+
+
+if test $ac_cv_func_memrchr = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS memrchr.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_MEMRCHR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MEMRCHR 1" >>confdefs.h
+
+
+
+
+
+ for ac_func in mkdtemp
+do :
+ ac_fn_c_check_func "$LINENO" "mkdtemp" "ac_cv_func_mkdtemp"
+if test "x$ac_cv_func_mkdtemp" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_MKDTEMP 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_mkdtemp = no; then
+ HAVE_MKDTEMP=0
+ fi
+
+if test $HAVE_MKDTEMP = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mkdtemp.$ac_objext"
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MKDTEMP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKDTEMP 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_mkfifo = no; then
+ HAVE_MKFIFO=0
+ else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkfifo rejects trailing slashes" >&5
+$as_echo_n "checking whether mkfifo rejects trailing slashes... " >&6; }
+if ${gl_cv_func_mkfifo_works+:} false; then :
+ $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
+ ln -s conftest.tmp conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_mkfifo_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+int result = 0;
+ if (!mkfifo ("conftest.tmp/", 0600))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!mkfifo ("conftest.lnk/", 0600))
+ result |= 2;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mkfifo_works=yes
+else
+ gl_cv_func_mkfifo_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.tmp conftest.lnk
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkfifo_works" >&5
+$as_echo "$gl_cv_func_mkfifo_works" >&6; }
+ if test "$gl_cv_func_mkfifo_works" != yes; then
+
+$as_echo "@%:@define MKFIFO_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_MKFIFO=1
+ fi
+ fi
+
+if test $HAVE_MKFIFO = 0 || test $REPLACE_MKFIFO = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mkfifo.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MKFIFO=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKFIFO 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mkfifoat = no; then
+ # No known system has mkfifoat but not mknodat
+ HAVE_MKFIFOAT=0
+ HAVE_MKNODAT=0
+ fi
+
+if test $HAVE_MKFIFOAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mkfifoat.$ac_objext"
+
+fi
+if test $HAVE_MKNODAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mknodat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MKFIFOAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKFIFOAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ GNULIB_MKNODAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKNODAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mknod = no; then
+ HAVE_MKNOD=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mknod can create fifo without root privileges" >&5
+$as_echo_n "checking whether mknod can create fifo without root privileges... " >&6; }
+if ${gl_cv_func_mknod_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_mknod_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+ #include <unistd.h>
+
+int
+main ()
+{
+/* Indeterminate for super-user, assume no. Why are you running
+ configure as root, anyway? */
+ if (!geteuid ()) return 99;
+ if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mknod_works=yes
+else
+ if test $? = 99 && test x"$FORCE_UNSAFE_CONFIGURE" = x; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ gl_cv_func_mknod_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.fifo
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mknod_works" >&5
+$as_echo "$gl_cv_func_mknod_works" >&6; }
+ if test "$gl_cv_func_mknod_works" != yes; then
+
+$as_echo "@%:@define MKNOD_FIFO_BUG 1" >>confdefs.h
+
+ fi
+ if test $REPLACE_MKFIFO = 1 || test "$gl_cv_func_mknod_works" != yes; then
+ REPLACE_MKNOD=1
+ fi
+ fi
+
+if test $HAVE_MKNOD = 0 || test $REPLACE_MKNOD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mknod.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MKNOD=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKNOD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $APPLE_UNIVERSAL_BUILD = 1; then
+ # A universal build on Apple MacOS X platforms.
+ # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
+ # But we need a configuration result that is valid in both modes.
+ gl_cv_func_working_mktime=no
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5
+$as_echo_n "checking for working mktime... " >&6; }
+if ${gl_cv_func_working_mktime+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_working_mktime=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Test program from Paul Eggert and Tony Leneis. */
+#include <limits.h>
+#include <stdlib.h>
+#include <time.h>
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#ifndef HAVE_ALARM
+# define alarm(X) /* empty */
+#endif
+
+/* Work around redefinition to rpl_putenv by other config tests. */
+#undef putenv
+
+static time_t time_t_max;
+static time_t time_t_min;
+
+/* Values we'll use to set the TZ environment variable. */
+static char *tz_strings[] = {
+ (char *) 0, "TZ=GMT0", "TZ=JST-9",
+ "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
+};
+#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
+
+/* Return 0 if mktime fails to convert a date in the spring-forward gap.
+ Based on a problem report from Andreas Jaeger. */
+static int
+spring_forward_gap ()
+{
+ /* glibc (up to about 1998-10-07) failed this test. */
+ struct tm tm;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ tm.tm_year = 98;
+ tm.tm_mon = 3;
+ tm.tm_mday = 5;
+ tm.tm_hour = 2;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+ return mktime (&tm) != (time_t) -1;
+}
+
+static int
+mktime_test1 (time_t now)
+{
+ struct tm *lt;
+ return ! (lt = localtime (&now)) || mktime (lt) == now;
+}
+
+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)));
+}
+
+static int
+irix_6_4_bug ()
+{
+ /* Based on code from Ariel Faigon. */
+ struct tm tm;
+ tm.tm_year = 96;
+ tm.tm_mon = 3;
+ tm.tm_mday = 0;
+ tm.tm_hour = 0;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+ mktime (&tm);
+ return tm.tm_mon == 2 && tm.tm_mday == 31;
+}
+
+static int
+bigtime_test (int j)
+{
+ struct tm tm;
+ time_t now;
+ tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
+ now = mktime (&tm);
+ if (now != (time_t) -1)
+ {
+ 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;
+ }
+ return 1;
+}
+
+static int
+year_2050_test ()
+{
+ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
+ ignoring leap seconds. */
+ unsigned long int answer = 2527315200UL;
+
+ struct tm tm;
+ time_t t;
+ tm.tm_year = 2050 - 1900;
+ tm.tm_mon = 2 - 1;
+ tm.tm_mday = 1;
+ tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ t = mktime (&tm);
+
+ /* Check that the result is either a failure, or close enough
+ 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));
+}
+
+int
+main ()
+{
+ int result = 0;
+ time_t t, delta;
+ int i, j;
+ int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1;
+ int time_t_signed = ! ((time_t) 0 < (time_t) -1);
+
+ /* This test makes some buggy mktime implementations loop.
+ Give up after 60 seconds; a mktime slower than that
+ isn't worth using anyway. */
+ alarm (60);
+
+ time_t_max = (! time_t_signed
+ ? (time_t) -1
+ : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
+ * 2 + 1));
+ time_t_min = (! time_t_signed
+ ? (time_t) 0
+ : time_t_signed_magnitude
+ ? ~ (time_t) 0
+ : ~ time_t_max);
+
+ delta = time_t_max / 997; /* a suitable prime number */
+ for (i = 0; i < N_STRINGS; i++)
+ {
+ if (tz_strings[i])
+ putenv (tz_strings[i]);
+
+ for (t = 0; t <= time_t_max - delta; t += delta)
+ if (! mktime_test (t))
+ result |= 1;
+ if (! (mktime_test ((time_t) 1)
+ && mktime_test ((time_t) (60 * 60))
+ && mktime_test ((time_t) (60 * 60 * 24))))
+ result |= 2;
+
+ for (j = 1; ; j <<= 1)
+ if (! bigtime_test (j))
+ result |= 4;
+ else if (INT_MAX / 2 < j)
+ break;
+ if (! bigtime_test (INT_MAX))
+ result |= 8;
+ }
+ if (! irix_6_4_bug ())
+ result |= 16;
+ if (! spring_forward_gap ())
+ result |= 32;
+ if (! year_2050_test ())
+ result |= 64;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_mktime=yes
+else
+ gl_cv_func_working_mktime=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mktime" >&5
+$as_echo "$gl_cv_func_working_mktime" >&6; }
+
+ if test $gl_cv_func_working_mktime = no; then
+ REPLACE_MKTIME=1
+ else
+ REPLACE_MKTIME=0
+ fi
+
+if test $REPLACE_MKTIME = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mktime.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_MKTIME=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_MKTIME 1" >>confdefs.h
+
+
+
+
+ :
+
+
+
+ if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+
+$as_echo "@%:@define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
+
+ else
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+ fi
+
+
+if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext"
+
+fi
+
+
+
+if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext"
+
+fi
+
+
+
+
+
+ if test $ac_cv_func_nl_langinfo = yes; then
+ # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5
+$as_echo_n "checking whether YESEXPR works... " >&6; }
+if ${gl_cv_func_nl_langinfo_yesexpr_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess no on irix systems.
+ irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";;
+ # Guess yes elsewhere.
+ *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+
+int
+main ()
+{
+return !*nl_langinfo(YESEXPR);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_nl_langinfo_yesexpr_works=yes
+else
+ gl_cv_func_nl_langinfo_yesexpr_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5
+$as_echo "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; }
+ case $gl_cv_func_nl_langinfo_yesexpr_works in
+ *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;;
+ *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;;
+ esac
+
+cat >>confdefs.h <<_ACEOF
+@%:@define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS
+_ACEOF
+
+ if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \
+ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
+ :
+ else
+ REPLACE_NL_LANGINFO=1
+
+$as_echo "@%:@define REPLACE_NL_LANGINFO 1" >>confdefs.h
+
+ fi
+ else
+ HAVE_NL_LANGINFO=0
+ fi
+
+if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_NL_LANGINFO=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for obstacks" >&5
+$as_echo_n "checking for obstacks... " >&6; }
+if ${ac_cv_func_obstack+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ @%:@include "obstack.h"
+int
+main ()
+{
+struct obstack mem;
+ @%:@define obstack_chunk_alloc malloc
+ @%:@define obstack_chunk_free free
+ obstack_init (&mem);
+ obstack_free (&mem, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_func_obstack=yes
+else
+ ac_cv_func_obstack=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_obstack" >&5
+$as_echo "$ac_cv_func_obstack" >&6; }
+if test $ac_cv_func_obstack = yes; then
+
+$as_echo "@%:@define HAVE_OBSTACK 1" >>confdefs.h
+
+else
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS obstack.$ac_objext"
+
+fi
+
+
+
+ case "$host_os" in
+ mingw* | pw*)
+ REPLACE_OPEN=1
+ ;;
+ *)
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5
+$as_echo_n "checking whether open recognizes a trailing slash... " >&6; }
+if ${gl_cv_func_open_slash+:} false; then :
+ $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* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
+ gl_cv_func_open_slash="guessing no" ;;
+ *)
+ gl_cv_func_open_slash="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+int main ()
+{
+ int result = 0;
+#if HAVE_LSTAT
+ if (open ("conftest.lnk/", O_RDONLY) != -1)
+ result |= 1;
+#endif
+ if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
+ result |= 2;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_open_slash=yes
+else
+ gl_cv_func_open_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.sl conftest.tmp conftest.lnk
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5
+$as_echo "$gl_cv_func_open_slash" >&6; }
+ case "$gl_cv_func_open_slash" in
+ *no)
+
+$as_echo "@%:@define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_OPEN=1
+ ;;
+ esac
+ ;;
+ esac
+
+ if test $REPLACE_OPEN = 0; then
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_OPEN=1
+ fi
+ fi
+
+
+
+if test $REPLACE_OPEN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext"
+
+
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_OPEN=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_OPEN 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ yes+yes)
+ ;;
+ yes+*)
+ # Solaris 9 has *at functions, but uniformly mishandles trailing
+ # slash in all of them.
+ REPLACE_OPENAT=1
+ ;;
+ *)
+ HAVE_OPENAT=0
+ ;;
+ esac
+
+if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS openat.$ac_objext"
+
+
+
+
+ :
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_OPENAT 1
+_ACEOF
+
+
+
+
+
+
+ GNULIB_OPENAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_OPENAT 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in opendir
+do :
+ ac_fn_c_check_func "$LINENO" "opendir" "ac_cv_func_opendir"
+if test "x$ac_cv_func_opendir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_OPENDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_opendir = no; then
+ HAVE_OPENDIR=0
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_OPENDIR = 1; then
+ REPLACE_OPENDIR=1
+ fi
+ fi
+
+
+if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS opendir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_OPENDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_OPENDIR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h>
+#include <$ac_cv_struct_tm>
+
+"
+if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_TM_TM_ZONE 1
+_ACEOF
+
+
+fi
+
+if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
+
+$as_echo "@%:@define HAVE_TM_ZONE 1" >>confdefs.h
+
+else
+ ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h>
+"
+if test "x$ac_cv_have_decl_tzname" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_TZNAME $ac_have_decl
+_ACEOF
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
+$as_echo_n "checking for tzname... " >&6; }
+if ${ac_cv_var_tzname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+#if !HAVE_DECL_TZNAME
+extern char *tzname[];
+#endif
+
+int
+main ()
+{
+return tzname[0][0];
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_var_tzname=yes
+else
+ ac_cv_var_tzname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
+$as_echo "$ac_cv_var_tzname" >&6; }
+ if test $ac_cv_var_tzname = yes; then
+
+$as_echo "@%:@define HAVE_TZNAME 1" >>confdefs.h
+
+ fi
+fi
+
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) ((t) 0 < (t) -1 \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 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
+if ac_fn_c_try_compile "$LINENO"; then :
+
+$as_echo "@%:@define TIME_T_FITS_IN_LONG_INT 1" >>confdefs.h
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+
+
+
+
+ for ac_func in getppriv
+do :
+ ac_fn_c_check_func "$LINENO" "getppriv" "ac_cv_func_getppriv"
+if test "x$ac_cv_func_getppriv" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_GETPPRIV 1
+_ACEOF
+
+fi
+done
+
+
+
+ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl
+_ACEOF
+
+
+ :
+
+
+ :
+
+
+
+
+
+ for ac_func in raise
+do :
+ ac_fn_c_check_func "$LINENO" "raise" "ac_cv_func_raise"
+if test "x$ac_cv_func_raise" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_RAISE 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_raise = no; then
+ HAVE_RAISE=0
+ else
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_RAISE=1
+ fi
+
+ fi
+
+if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS raise.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_RAISE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RAISE 1" >>confdefs.h
+
+
+
+
+
+
+
+ for ac_func in rawmemchr
+do :
+ ac_fn_c_check_func "$LINENO" "rawmemchr" "ac_cv_func_rawmemchr"
+if test "x$ac_cv_func_rawmemchr" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_RAWMEMCHR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_rawmemchr = no; then
+ HAVE_RAWMEMCHR=0
+ fi
+
+if test $HAVE_RAWMEMCHR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rawmemchr.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_RAWMEMCHR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RAWMEMCHR 1" >>confdefs.h
+
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_READ=1
+ fi
+
+
+if test $REPLACE_READ = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS read.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_READ=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_READ 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in readdir
+do :
+ ac_fn_c_check_func "$LINENO" "readdir" "ac_cv_func_readdir"
+if test "x$ac_cv_func_readdir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_READDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_readdir = no; then
+ HAVE_READDIR=0
+ fi
+
+if test $HAVE_READDIR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS readdir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_READDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_READDIR 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_readlink = no; then
+ HAVE_READLINK=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink signature is correct" >&5
+$as_echo_n "checking whether readlink signature is correct... " >&6; }
+if ${gl_cv_decl_readlink_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_decl_readlink_works=yes
+else
+ gl_cv_decl_readlink_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_readlink_works" >&5
+$as_echo "$gl_cv_decl_readlink_works" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink handles trailing slash correctly" >&5
+$as_echo_n "checking whether readlink handles trailing slash correctly... " >&6; }
+if ${gl_cv_func_readlink_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+int
+main ()
+{
+char buf[20];
+ return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_readlink_works=yes
+else
+ gl_cv_func_readlink_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.link conftest.lnk2
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define READLINK_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_READLINK=1
+ elif test "$gl_cv_decl_readlink_works" != yes; then
+ REPLACE_READLINK=1
+ fi
+ fi
+
+if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS readlink.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_READLINK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_READLINK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_readlinkat = no; then
+ HAVE_READLINKAT=0
+ fi
+
+if test $HAVE_READLINKAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS readlinkat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_READLINKAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_READLINKAT 1" >>confdefs.h
+
+
+
+
+
+
+ if test $gl_cv_func_malloc_posix = yes; then
+
+$as_echo "@%:@define HAVE_REALLOC_POSIX 1" >>confdefs.h
+
+ else
+ REPLACE_REALLOC=1
+ fi
+
+if test $REPLACE_REALLOC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_REALLOC_POSIX=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h
+
+
+
+
+
+@%:@ Check whether --with-included-regex was given.
+if test "${with_included_regex+set}" = set; then :
+ withval=$with_included_regex;
+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.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5
+$as_echo_n "checking for working re_compile_pattern... " >&6; }
+if ${gl_cv_func_re_compile_pattern_working+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_re_compile_pattern_working=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ #include <locale.h>
+ #include <limits.h>
+ #include <regex.h>
+
+int
+main ()
+{
+int result = 0;
+ static struct re_pattern_buffer regex;
+ unsigned char folded_chars[UCHAR_MAX + 1];
+ int i;
+ const char *s;
+ struct re_registers regs;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern (pat, sizeof pat - 1, &regex);
+ if (s)
+ result |= 1;
+ else if (re_search (&regex, data, sizeof data - 1,
+ 0, sizeof data - 1, &regs)
+ != -1)
+ result |= 1;
+ if (! setlocale (LC_ALL, "C"))
+ return 1;
+ }
+
+ /* This test is from glibc bug 3957, reported by Andrew Mackey. */
+ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("a[^x]b", 6, &regex);
+ if (s)
+ result |= 2;
+ /* This should fail, but succeeds for glibc-2.5. */
+ else if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
+ result |= 2;
+
+ /* This regular expression is from Spencer ere test number 75
+ in grep-2.3. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+ memset (&regex, 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, &regex);
+ /* This should fail with _Invalid character class name_ error. */
+ if (!s)
+ result |= 4;
+
+ /* Ensure that [b-a] is diagnosed as invalid, when
+ using RE_NO_EMPTY_RANGES. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES);
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("a[b-a]", 6, &regex);
+ if (s == 0)
+ result |= 8;
+
+ /* This should succeed, but does not for glibc-2.1.3. */
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("{1", 2, &regex);
+ if (s)
+ result |= 8;
+
+ /* The following example is derived from a problem report
+ against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("[an\371]*n", 7, &regex);
+ if (s)
+ result |= 8;
+ /* This should match, but does not for glibc-2.2.1. */
+ else if (re_match (&regex, "an", 2, 0, &regs) != 2)
+ result |= 8;
+
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("x", 1, &regex);
+ if (s)
+ result |= 8;
+ /* glibc-2.2.93 does not work with a negative RANGE argument. */
+ else if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
+ result |= 8;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("x", 1, &regex);
+ if (s)
+ result |= 16;
+ else if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
+ result |= 16;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
+ if (s)
+ result |= 32;
+
+ /* REG_STARTEND was added to glibc on 2004-01-15.
+ Reject older versions. */
+ if (! REG_STARTEND)
+ result |= 64;
+
+#if 0
+ /* It would be nice to reject hosts whose regoff_t values are too
+ narrow (including glibc on hosts with 64-bit ptrdiff_t and
+ 32-bit int), but we should wait until glibc implements this
+ feature. Otherwise, support for equivalence classes and
+ multibyte collation symbols would always be broken except
+ when compiling --without-included-regex. */
+ if (sizeof (regoff_t) < sizeof (ptrdiff_t)
+ || sizeof (regoff_t) < sizeof (ssize_t))
+ result |= 64;
+#endif
+
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_re_compile_pattern_working=yes
+else
+ gl_cv_func_re_compile_pattern_working=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_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
+ ;;
+ *) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5
+ ;;
+ esac
+
+ if test $ac_use_included_regex = yes; then
+
+$as_echo "@%:@define _REGEX_LARGE_OFFSETS 1" >>confdefs.h
+
+
+$as_echo "@%:@define re_syntax_options rpl_re_syntax_options" >>confdefs.h
+
+
+$as_echo "@%:@define re_set_syntax rpl_re_set_syntax" >>confdefs.h
+
+
+$as_echo "@%:@define re_compile_pattern rpl_re_compile_pattern" >>confdefs.h
+
+
+$as_echo "@%:@define re_compile_fastmap rpl_re_compile_fastmap" >>confdefs.h
+
+
+$as_echo "@%:@define re_search rpl_re_search" >>confdefs.h
+
+
+$as_echo "@%:@define re_search_2 rpl_re_search_2" >>confdefs.h
+
+
+$as_echo "@%:@define re_match rpl_re_match" >>confdefs.h
+
+
+$as_echo "@%:@define re_match_2 rpl_re_match_2" >>confdefs.h
+
+
+$as_echo "@%:@define re_set_registers rpl_re_set_registers" >>confdefs.h
+
+
+$as_echo "@%:@define re_comp rpl_re_comp" >>confdefs.h
+
+
+$as_echo "@%:@define re_exec rpl_re_exec" >>confdefs.h
+
+
+$as_echo "@%:@define regcomp rpl_regcomp" >>confdefs.h
+
+
+$as_echo "@%:@define regexec rpl_regexec" >>confdefs.h
+
+
+$as_echo "@%:@define regerror rpl_regerror" >>confdefs.h
+
+
+$as_echo "@%:@define regfree rpl_regfree" >>confdefs.h
+
+ fi
+
+if test $ac_use_included_regex = yes; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext"
+
+
+
+
+
+
+ for ac_header in libintl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
+if test "x$ac_cv_header_libintl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_LIBINTL_H 1
+_ACEOF
+
+fi
+
+done
+
+
+ ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
+
+
+fi
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on destination" >&5
+$as_echo_n "checking whether rename honors trailing slash on destination... " >&6; }
+if ${gl_cv_func_rename_slash_dst_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+ touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+ as_fn_error $? "cannot create temporary files" "$LINENO" 5
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.f conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_slash_dst_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.f1", "conftest.f2/") == 0)
+ result |= 1;
+ if (rename ("conftest.d1", "conftest.d2/") != 0)
+ result |= 2;
+#if HAVE_LSTAT
+ if (rename ("conftest.f", "conftest.lnk/") == 0)
+ result |= 4;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_slash_dst_works=yes
+else
+ gl_cv_func_rename_slash_dst_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_dst_works" >&5
+$as_echo "$gl_cv_func_rename_slash_dst_works" >&6; }
+ if test "x$gl_cv_func_rename_slash_dst_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "@%:@define RENAME_TRAILING_SLASH_DEST_BUG 1" >>confdefs.h
+
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on source" >&5
+$as_echo_n "checking whether rename honors trailing slash on source... " >&6; }
+if ${gl_cv_func_rename_slash_src_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+ touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+ as_fn_error $? "cannot create temporary files" "$LINENO" 5
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.f conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_slash_src_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.f1/", "conftest.d3") == 0)
+ result |= 1;
+ if (rename ("conftest.d1/", "conftest.d2") != 0)
+ result |= 2;
+#if HAVE_LSTAT
+ if (rename ("conftest.lnk/", "conftest.f") == 0)
+ result |= 4;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_slash_src_works=yes
+else
+ gl_cv_func_rename_slash_src_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_src_works" >&5
+$as_echo "$gl_cv_func_rename_slash_src_works" >&6; }
+ if test "x$gl_cv_func_rename_slash_src_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "@%:@define RENAME_TRAILING_SLASH_SOURCE_BUG 1" >>confdefs.h
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages hard links correctly" >&5
+$as_echo_n "checking whether rename manages hard links correctly... " >&6; }
+if ${gl_cv_func_rename_link_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test $ac_cv_func_link = yes; then
+ rm -rf conftest.f conftest.f1
+ if touch conftest.f && ln conftest.f conftest.f1 &&
+ set x `ls -i conftest.f conftest.f1` && test "" = ""; then
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_link_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+# include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.f", "conftest.f1"))
+ result |= 1;
+ if (unlink ("conftest.f1"))
+ result |= 2;
+ if (rename ("conftest.f", "conftest.f"))
+ result |= 4;
+ if (rename ("conftest.f1", "conftest.f1") == 0)
+ result |= 8;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_link_works=yes
+else
+ gl_cv_func_rename_link_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ else
+ gl_cv_func_rename_link_works="guessing no"
+ fi
+ rm -rf conftest.f conftest.f1
+ else
+ gl_cv_func_rename_link_works=yes
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_link_works" >&5
+$as_echo "$gl_cv_func_rename_link_works" >&6; }
+ if test "x$gl_cv_func_rename_link_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "@%:@define RENAME_HARD_LINK_BUG 1" >>confdefs.h
+
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages existing destinations correctly" >&5
+$as_echo_n "checking whether rename manages existing destinations correctly... " >&6; }
+if ${gl_cv_func_rename_dest_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f conftest.d1 conftest.d2
+ touch conftest.f && mkdir conftest.d1 conftest.d2 ||
+ as_fn_error $? "cannot create temporary files" "$LINENO" 5
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_dest_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.d1", "conftest.d2") != 0)
+ result |= 1;
+ if (rename ("conftest.d2", "conftest.f") == 0)
+ result |= 2;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_dest_works=yes
+else
+ gl_cv_func_rename_dest_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.f conftest.d1 conftest.d2
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_dest_works" >&5
+$as_echo "$gl_cv_func_rename_dest_works" >&6; }
+ if test "x$gl_cv_func_rename_dest_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "@%:@define RENAME_DEST_EXISTS_BUG 1" >>confdefs.h
+
+ fi
+
+if test $REPLACE_RENAME = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rename.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_RENAME=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RENAME 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_renameat = no; then
+ HAVE_RENAMEAT=0
+ elif test $REPLACE_RENAME = 1; then
+ REPLACE_RENAMEAT=1
+ fi
+
+if test $HAVE_RENAMEAT = 0 || test $REPLACE_RENAMEAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS renameat.$ac_objext"
+
+fi
+if test $HAVE_RENAMEAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_RENAMEAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RENAMEAT 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in rewinddir
+do :
+ ac_fn_c_check_func "$LINENO" "rewinddir" "ac_cv_func_rewinddir"
+if test "x$ac_cv_func_rewinddir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_REWINDDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_rewinddir = no; then
+ HAVE_REWINDDIR=0
+ fi
+
+if test $HAVE_REWINDDIR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rewinddir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_REWINDDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_REWINDDIR 1" >>confdefs.h
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rmdir works" >&5
+$as_echo_n "checking whether rmdir works... " >&6; }
+if ${gl_cv_func_rmdir_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+ #include <errno.h>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <direct.h>
+ #endif
+
+int
+main ()
+{
+int result = 0;
+ if (!rmdir ("conftest.file/"))
+ result |= 1;
+ else if (errno != ENOTDIR)
+ result |= 2;
+ if (!rmdir ("conftest.dir/./"))
+ result |= 4;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rmdir_works=yes
+else
+ gl_cv_func_rmdir_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.dir conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+
+if test $REPLACE_RMDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rmdir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_RMDIR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RMDIR 1" >>confdefs.h
+
+
+
+
+
+
+
+ for ac_func in rpmatch
+do :
+ ac_fn_c_check_func "$LINENO" "rpmatch" "ac_cv_func_rpmatch"
+if test "x$ac_cv_func_rpmatch" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_RPMATCH 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_rpmatch = no; then
+ HAVE_RPMATCH=0
+ fi
+
+if test $HAVE_RPMATCH = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rpmatch.$ac_objext"
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and YESEXPR" >&5
+$as_echo_n "checking for nl_langinfo and YESEXPR... " >&6; }
+if ${gl_cv_langinfo_yesexpr+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(YESEXPR); return !cs;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_langinfo_yesexpr=yes
+else
+ gl_cv_langinfo_yesexpr=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_langinfo_yesexpr" >&5
+$as_echo "$gl_cv_langinfo_yesexpr" >&6; }
+ if test $gl_cv_langinfo_yesexpr = yes; then
+
+$as_echo "@%:@define HAVE_LANGINFO_YESEXPR 1" >>confdefs.h
+
+ fi
+
+fi
+
+
+
+
+
+ GNULIB_RPMATCH=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_RPMATCH 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ :
+
+
+
+ if test $ac_cv_func_setenv = no; then
+ HAVE_SETENV=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5
+$as_echo_n "checking whether setenv validates arguments... " >&6; }
+if ${gl_cv_func_setenv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_setenv_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <stdlib.h>
+ #include <errno.h>
+ #include <string.h>
+
+int
+main ()
+{
+
+ int result = 0;
+ {
+ if (setenv ("", "", 0) != -1)
+ result |= 1;
+ else if (errno != EINVAL)
+ result |= 2;
+ }
+ {
+ if (setenv ("a", "=", 1) != 0)
+ result |= 4;
+ else if (strcmp (getenv ("a"), "=") != 0)
+ result |= 8;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_setenv_works=yes
+else
+ gl_cv_func_setenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SETENV=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_SETENV 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_signal_h='<'signal.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <signal.h>" >&5
+$as_echo_n "checking absolute name of <signal.h>... " >&6; }
+if ${gl_cv_next_signal_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <signal.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'signal.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_signal_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_signal_h" >&5
+$as_echo "$gl_cv_next_signal_h" >&6; }
+ fi
+ NEXT_SIGNAL_H=$gl_cv_next_signal_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='<'signal.h'>'
+ else
+ # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+ gl_next_as_first_directive=$gl_cv_next_signal_h
+ fi
+ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H=$gl_next_as_first_directive
+
+
+
+
+
+# AIX declares sig_atomic_t to already include volatile, and C89 compilers
+# then choke on 'volatile sig_atomic_t'. C99 requires that it compile.
+ ac_fn_c_check_type "$LINENO" "volatile sig_atomic_t" "ac_cv_type_volatile_sig_atomic_t" "
+#include <signal.h>
+
+"
+if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes; then :
+
+else
+ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0
+fi
+
+
+
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "sighandler_t" "ac_cv_type_sighandler_t" "
+#include <signal.h>
+
+"
+if test "x$ac_cv_type_sighandler_t" = xyes; then :
+
+else
+ HAVE_SIGHANDLER_T=0
+fi
+
+
+
+ for gl_func in pthread_sigmask sigaction sigaddset sigdelset sigemptyset sigfillset sigismember sigpending sigprocmask; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <signal.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+ for ac_header in stdint.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDINT_H 1
+_ACEOF
+
+fi
+
+done
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5
+$as_echo_n "checking for SIZE_MAX... " >&6; }
+if ${gl_cv_size_max+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_cv_size_max=
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Found it" >/dev/null 2>&1; then :
+ gl_cv_size_max=yes
+fi
+rm -f conftest*
+
+ if test -z "$gl_cv_size_max"; then
+ if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include <stddef.h>
+#include <limits.h>"; then :
+
+else
+ size_t_bits_minus_1=
+fi
+
+ if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint" "#include <stddef.h>"; then :
+
+else
+ fits_in_uint=
+fi
+
+ if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
+ if test $fits_in_uint = 1; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ extern size_t foo;
+ extern unsigned long foo;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ fits_in_uint=0
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $fits_in_uint = 1; then
+ gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ else
+ gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ fi
+ else
+ gl_cv_size_max='((size_t)~(size_t)0)'
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+@%:@define SIZE_MAX $gl_cv_size_max
+_ACEOF
+
+ fi
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "sleep" "ac_cv_have_decl_sleep" "#include <unistd.h>
+"
+if test "x$ac_cv_have_decl_sleep" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_SLEEP $ac_have_decl
+_ACEOF
+
+
+ if test $ac_cv_have_decl_sleep != yes; then
+ HAVE_SLEEP=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working sleep" >&5
+$as_echo_n "checking for working sleep... " >&6; }
+if ${gl_cv_func_sleep_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_sleep_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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);
+ if (remaining > pentecost)
+ return 3;
+ if (remaining <= pentecost - 10)
+ return 4;
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_sleep_works=yes
+else
+ gl_cv_func_sleep_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS sleep.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SLEEP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_SLEEP 1" >>confdefs.h
+
+
+
+
+
+ gl_cv_func_snprintf_usable=no
+ for ac_func in snprintf
+do :
+ ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
+if test "x$ac_cv_func_snprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SNPRINTF 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_snprintf = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5
+$as_echo_n "checking whether snprintf respects a size of 1... " >&6; }
+if ${gl_cv_func_snprintf_size1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_snprintf_size1="guessing yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+int main()
+{
+ static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+ my_snprintf (buf, 1, "%d", 12345);
+ return buf[1] != 'E';
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_snprintf_size1=yes
+else
+ gl_cv_func_snprintf_size1=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5
+$as_echo "$gl_cv_func_snprintf_size1" >&6; }
+
+ case "$gl_cv_func_snprintf_size1" in
+ *yes)
+
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5
+$as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; }
+if ${gl_cv_func_printf_positions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+ gl_cv_func_printf_positions="guessing no";;
+ beos*) gl_cv_func_printf_positions="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+ *) gl_cv_func_printf_positions="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+ dollar expansion (possibly an autoconf bug). */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, "55 33") != 0);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_printf_positions=yes
+else
+ gl_cv_func_printf_positions=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5
+$as_echo "$gl_cv_func_printf_positions" >&6; }
+
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_snprintf_usable=yes
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ if test $gl_cv_func_snprintf_usable = no; then
+
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS snprintf.$ac_objext"
+
+ if test $ac_cv_func_snprintf = yes; then
+ REPLACE_SNPRINTF=1
+ fi
+ :
+
+ fi
+
+ if test $ac_cv_have_decl_snprintf = no; then
+ HAVE_DECL_SNPRINTF=0
+ fi
+
+
+
+
+
+
+ GNULIB_SNPRINTF=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_SNPRINTF 1" >>confdefs.h
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_SNPRINTF 1
+_ACEOF
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
+$as_echo_n "checking for ssize_t... " >&6; }
+if ${gt_cv_ssize_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main ()
+{
+int x = sizeof (ssize_t *) + sizeof (ssize_t);
+ return !x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_ssize_t=yes
+else
+ gt_cv_ssize_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5
+$as_echo "$gt_cv_ssize_t" >&6; }
+ if test $gt_cv_ssize_t = no; then
+
+$as_echo "@%:@define ssize_t int" >>confdefs.h
+
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on directories" >&5
+$as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; }
+if ${gl_cv_func_stat_dir_slash+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+struct stat st; return stat (".", &st) != stat ("./", &st);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_stat_dir_slash=yes
+else
+ gl_cv_func_stat_dir_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_dir_slash" >&5
+$as_echo "$gl_cv_func_stat_dir_slash" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5
+$as_echo_n "checking whether stat handles trailing slashes on files... " >&6; }
+if ${gl_cv_func_stat_file_slash+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+int result = 0;
+ struct stat st;
+ if (!stat ("conftest.tmp/", &st))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!stat ("conftest.lnk/", &st))
+ result |= 2;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_stat_file_slash=yes
+else
+ gl_cv_func_stat_file_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.tmp conftest.lnk
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define REPLACE_FUNC_STAT_DIR 1" >>confdefs.h
+;;
+ esac
+ case $gl_cv_func_stat_file_slash in
+ *no) REPLACE_STAT=1
+
+$as_echo "@%:@define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h
+;;
+ esac
+
+if test $REPLACE_STAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext"
+
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_STAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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;
+
+int
+main ()
+{
+
+ st.st_atim = ts;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes
+else
+ ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h
+
+ fi
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_ATIMENSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1
+_ACEOF
+
+
+fi
+
+fi
+
+fi
+
+fi
+
+
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimensec" "ac_cv_member_struct_stat_st_birthtimensec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_birthtimensec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtim.tv_nsec" "ac_cv_member_struct_stat_st_birthtim_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1
+_ACEOF
+
+
+fi
+
+fi
+
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working stdalign.h" >&5
+$as_echo_n "checking for working stdalign.h... " >&6; }
+if ${gl_cv_header_working_stdalign_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdalign.h>
+ int align_int = alignof (int) + _Alignof (double);
+
+ /* Test _Alignas only on platforms where gnulib can help. */
+ #if \
+ (__GNUC__ || __IBMC__ || __IBMCPP__ \
+ || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER)
+ int alignas (8) alignas_int = 1;
+ #endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_working_stdalign_h=yes
+else
+ gl_cv_header_working_stdalign_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdalign_h" >&5
+$as_echo "$gl_cv_header_working_stdalign_h" >&6; }
+
+ if test $gl_cv_header_working_stdalign_h = yes; then
+ STDALIGN_H=''
+ else
+ STDALIGN_H='stdalign.h'
+ fi
+
+
+ if test -n "$STDALIGN_H"; then
+ GL_GENERATE_STDALIGN_H_TRUE=
+ GL_GENERATE_STDALIGN_H_FALSE='#'
+else
+ GL_GENERATE_STDALIGN_H_TRUE='#'
+ GL_GENERATE_STDALIGN_H_FALSE=
+fi
+
+
+
+ STDARG_H=''
+ NEXT_STDARG_H='<stdarg.h>'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
+$as_echo_n "checking for va_copy... " >&6; }
+ if ${gl_cv_func_va_copy+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+int
+main ()
+{
+
+#ifndef va_copy
+void (*func) (va_list, va_list) = va_copy;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_va_copy=yes
+else
+ gl_cv_func_va_copy=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+ { $as_echo "$as_me:${as_lineno-$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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined _AIX && !defined __GNUC__
+ AIX vaccine
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "vaccine" >/dev/null 2>&1; then :
+ gl_aixcc=yes
+else
+ gl_aixcc=no
+fi
+rm -f conftest*
+
+ if test $gl_aixcc = yes; then
+ STDARG_H=stdarg.h
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_stdarg_h='<'stdarg.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdarg.h>" >&5
+$as_echo_n "checking absolute name of <stdarg.h>... " >&6; }
+if ${gl_cv_next_stdarg_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdarg.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdarg_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ gl_cv_next_stdarg_h='"///usr/include/stdarg.h"'
+ NEXT_STDARG_H="$gl_cv_next_stdarg_h"
+ fi
+ else
+
+ saved_as_echo_n="$as_echo_n"
+ as_echo_n=':'
+ if ${gl_cv_func___va_copy+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+int
+main ()
+{
+
+#ifndef __va_copy
+error, bail out
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func___va_copy=yes
+else
+ gl_cv_func___va_copy=no
+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
+
+$as_echo "@%:@define va_copy __va_copy" >>confdefs.h
+
+ else
+
+
+$as_echo "@%:@define va_copy gl_va_copy" >>confdefs.h
+
+ fi
+ fi
+ fi
+
+ if test -n "$STDARG_H"; then
+ GL_GENERATE_STDARG_H_TRUE=
+ GL_GENERATE_STDARG_H_FALSE='#'
+else
+ GL_GENERATE_STDARG_H_TRUE='#'
+ GL_GENERATE_STDARG_H_FALSE=
+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 -n "$STDBOOL_H"; then
+ GL_GENERATE_STDBOOL_H_TRUE=
+ GL_GENERATE_STDBOOL_H_FALSE='#'
+else
+ GL_GENERATE_STDBOOL_H_TRUE='#'
+ GL_GENERATE_STDBOOL_H_FALSE=
+fi
+
+
+ if test "$ac_cv_type__Bool" = yes; then
+ HAVE__BOOL=1
+ else
+ HAVE__BOOL=0
+ fi
+
+
+
+
+
+ STDDEF_H=
+ if test $gt_cv_c_wchar_t = no; then
+ HAVE_WCHAR_T=0
+ STDDEF_H=stddef.h
+ fi
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_decl_null_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ int test[2 * (sizeof NULL == sizeof (void *)) -1];
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_decl_null_works=yes
+else
+ gl_cv_decl_null_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ GL_GENERATE_STDDEF_H_TRUE=
+ GL_GENERATE_STDDEF_H_FALSE='#'
+else
+ GL_GENERATE_STDDEF_H_TRUE='#'
+ GL_GENERATE_STDDEF_H_FALSE=
+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:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
+$as_echo_n "checking absolute name of <stddef.h>... " >&6; }
+if ${gl_cv_next_stddef_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stddef.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $gl_cv_have_include_next = yes; then
+ gl_cv_next_stdio_h='<'stdio.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdio.h>" >&5
+$as_echo_n "checking absolute name of <stdio.h>... " >&6; }
+if ${gl_cv_next_stdio_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdio.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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_FSCANF=1
+ GNULIB_SCANF=1
+ GNULIB_FGETC=1
+ GNULIB_GETC=1
+ GNULIB_GETCHAR=1
+ GNULIB_FGETS=1
+ GNULIB_GETS=1
+ GNULIB_FREAD=1
+
+
+ GNULIB_FPRINTF=1
+ GNULIB_PRINTF=1
+ GNULIB_VFPRINTF=1
+ GNULIB_VPRINTF=1
+ GNULIB_FPUTC=1
+ GNULIB_PUTC=1
+ GNULIB_PUTCHAR=1
+ GNULIB_FPUTS=1
+ GNULIB_PUTS=1
+ GNULIB_FWRITE=1
+
+
+
+
+ for gl_func in dprintf fpurge fseeko ftello getdelim getline pclose popen renameat snprintf tmpfile vdprintf vsnprintf; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdlib.h>" >&5
+$as_echo_n "checking absolute name of <stdlib.h>... " >&6; }
+if ${gl_cv_next_stdlib_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdlib.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r random random_r realpath rpmatch setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#if HAVE_SYS_LOADAVG_H
+# include <sys/loadavg.h>
+#endif
+#if HAVE_RANDOM_H
+# include <random.h>
+#endif
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+
+ for ac_func in stpcpy
+do :
+ ac_fn_c_check_func "$LINENO" "stpcpy" "ac_cv_func_stpcpy"
+if test "x$ac_cv_func_stpcpy" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STPCPY 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_stpcpy = no; then
+ HAVE_STPCPY=0
+ fi
+
+if test $HAVE_STPCPY = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS stpcpy.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_STPCPY=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STPCPY 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in strcasecmp
+do :
+ ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
+if test "x$ac_cv_func_strcasecmp" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRCASECMP 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strcasecmp = no; then
+ HAVE_STRCASECMP=0
+ fi
+
+
+
+ for ac_func in strncasecmp
+do :
+ ac_fn_c_check_func "$LINENO" "strncasecmp" "ac_cv_func_strncasecmp"
+if test "x$ac_cv_func_strncasecmp" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRNCASECMP 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strncasecmp = yes; then
+ HAVE_STRNCASECMP=1
+ else
+ HAVE_STRNCASECMP=0
+ fi
+ ac_fn_c_check_decl "$LINENO" "strncasecmp" "ac_cv_have_decl_strncasecmp" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strncasecmp" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRNCASECMP $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_strncasecmp = no; then
+ HAVE_DECL_STRNCASECMP=0
+ fi
+
+
+if test $HAVE_STRCASECMP = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strcasecmp.$ac_objext"
+
+
+ :
+
+fi
+if test $HAVE_STRNCASECMP = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strncasecmp.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+ for ac_func in strchrnul
+do :
+ ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul"
+if test "x$ac_cv_func_strchrnul" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRCHRNUL 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strchrnul = no; then
+ HAVE_STRCHRNUL=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strchrnul works" >&5
+$as_echo_n "checking whether strchrnul works... " >&6; }
+if ${gl_cv_func_strchrnul_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9)
+ Lucky user
+ #endif
+#else
+ Lucky user
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Lucky user" >/dev/null 2>&1; then :
+ gl_cv_func_strchrnul_works="guessing yes"
+else
+ gl_cv_func_strchrnul_works="guessing no"
+fi
+rm -f conftest*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <string.h> /* for strchrnul */
+
+int
+main ()
+{
+const char *buf = "a";
+ return strchrnul (buf, 'b') != buf + 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_strchrnul_works=yes
+else
+ gl_cv_func_strchrnul_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strchrnul_works" >&5
+$as_echo "$gl_cv_func_strchrnul_works" >&6; }
+ case "$gl_cv_func_strchrnul_works" in
+ *yes) ;;
+ *) REPLACE_STRCHRNUL=1 ;;
+ esac
+ fi
+
+if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strchrnul.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_STRCHRNUL=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRCHRNUL 1" >>confdefs.h
+
+
+
+
+
+
+
+ if test $ac_cv_func_strdup = yes; then
+ if test $gl_cv_func_malloc_posix != yes; then
+ REPLACE_STRDUP=1
+ fi
+ fi
+
+ if test $ac_cv_have_decl_strdup = no; then
+ HAVE_DECL_STRDUP=0
+ fi
+
+if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_STRDUP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRDUP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5
+$as_echo_n "checking for working strerror function... " >&6; }
+if ${gl_cv_func_working_strerror+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_working_strerror="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+int
+main ()
+{
+if (!*strerror (-2)) return 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_strerror=yes
+else
+ gl_cv_func_working_strerror=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5
+$as_echo "$gl_cv_func_working_strerror" >&6; }
+ if test "$gl_cv_func_working_strerror" != yes; then
+ REPLACE_STRERROR=1
+ fi
+
+ else
+ REPLACE_STRERROR=1
+ fi
+
+if test $REPLACE_STRERROR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+@%:@define GNULIB_STRERROR 1
+_ACEOF
+
+
+
+
+
+
+
+ GNULIB_STRERROR=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRERROR 1" >>confdefs.h
+
+
+
+
+
+if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext"
+
+
+
+
+
+ if test $ac_cv_header_sys_socket_h != yes; then
+ for ac_header in winsock2.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+ fi
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ HAVE_WINSOCK2_H=1
+ UNISTD_H_HAVE_WINSOCK2_H=1
+ SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+ else
+ HAVE_WINSOCK2_H=0
+ fi
+
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_strndup = no; then
+ HAVE_DECL_STRNDUP=0
+ fi
+
+ if test $ac_cv_func_strndup = yes; then
+ HAVE_STRNDUP=1
+ # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strndup" >&5
+$as_echo_n "checking for working strndup... " >&6; }
+if ${gl_cv_func_strndup_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+
+ case $host_os in
+ aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";;
+ *) gl_cv_func_strndup_works="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <string.h>
+ #include <stdlib.h>
+int
+main ()
+{
+
+#ifndef HAVE_DECL_STRNDUP
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *strndup (const char *, size_t);
+#endif
+ char *s;
+ s = strndup ("some longer string", 15);
+ free (s);
+ s = strndup ("shorter string", 13);
+ return s[13] != '\0';
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_strndup_works=yes
+else
+ gl_cv_func_strndup_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ HAVE_STRNDUP=0
+ fi
+
+if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_STRNDUP=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRNDUP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_strnlen = no; then
+ HAVE_DECL_STRNLEN=0
+ else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strnlen" >&5
+$as_echo_n "checking for working strnlen... " >&6; }
+if ${ac_cv_func_strnlen_working+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ # Guess no on AIX systems, yes otherwise.
+ case "$host_os" in
+ aix*) ac_cv_func_strnlen_working=no;;
+ *) ac_cv_func_strnlen_working=yes;;
+ esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+#define S "foobar"
+#define S_LEN (sizeof S - 1)
+
+ /* At least one implementation is buggy: that of AIX 4.3 would
+ give strnlen (S, 1) == 3. */
+
+ int i;
+ for (i = 0; i < S_LEN + 1; ++i)
+ {
+ int expected = i <= S_LEN ? i : S_LEN;
+ if (strnlen (S, i) != expected)
+ return 1;
+ }
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_strnlen_working=yes
+else
+ ac_cv_func_strnlen_working=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strnlen_working" >&5
+$as_echo "$ac_cv_func_strnlen_working" >&6; }
+test $ac_cv_func_strnlen_working = no && :
+
+
+ if test $ac_cv_func_strnlen_working = no; then
+ REPLACE_STRNLEN=1
+ fi
+ fi
+
+if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_STRNLEN=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRNLEN 1" >>confdefs.h
+
+
+
+
+ for ac_func in strtol
+do :
+ ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol"
+if test "x$ac_cv_func_strtol" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRTOL 1
+_ACEOF
+
+fi
+done
+
+
+if test $ac_cv_func_strtol = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtol.$ac_objext"
+
+fi
+
+ for ac_func in strtoul
+do :
+ ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul"
+if test "x$ac_cv_func_strtoul" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRTOUL 1
+_ACEOF
+
+fi
+done
+
+
+if test $ac_cv_func_strtoul = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtoul.$ac_objext"
+
+fi
+
+
+
+ if test "$ac_cv_type_unsigned_long_long_int" = yes; then
+ for ac_func in strtoull
+do :
+ ac_fn_c_check_func "$LINENO" "strtoull" "ac_cv_func_strtoull"
+if test "x$ac_cv_func_strtoull" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRTOULL 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strtoull = no; then
+ HAVE_STRTOULL=0
+ fi
+ fi
+
+if test $HAVE_STRTOULL = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtoull.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_STRTOULL=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_STRTOULL 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test "$ac_cv_have_decl_strtoumax" != yes; then
+ HAVE_DECL_STRTOUMAX=0
+ fi
+
+if test $ac_cv_func_strtoumax = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtoumax.$ac_objext"
+
+
+ ac_fn_c_check_decl "$LINENO" "strtoull" "ac_cv_have_decl_strtoull" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtoull" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_STRTOULL $ac_have_decl
+_ACEOF
+
+
+
+fi
+
+
+
+
+
+ GNULIB_STRTOUMAX=1
+
+
+
+
+
+
+
+ if test $ac_cv_func_symlink = no; then
+ HAVE_SYMLINK=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symlink handles trailing slash correctly" >&5
+$as_echo_n "checking whether symlink handles trailing slash correctly... " >&6; }
+if ${gl_cv_func_symlink_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_symlink_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ if (!symlink ("a", "conftest.link/"))
+ result |= 1;
+ if (symlink ("conftest.f", "conftest.lnk2"))
+ result |= 2;
+ else if (!symlink ("a", "conftest.lnk2/"))
+ result |= 4;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_symlink_works=yes
+else
+ gl_cv_func_symlink_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.f conftest.link conftest.lnk2
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_symlink_works" >&5
+$as_echo "$gl_cv_func_symlink_works" >&6; }
+ if test "$gl_cv_func_symlink_works" != yes; then
+ REPLACE_SYMLINK=1
+ fi
+ fi
+
+if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS symlink.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SYMLINK=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_SYMLINK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_symlinkat = no; then
+ HAVE_SYMLINKAT=0
+ fi
+
+if test $HAVE_SYMLINKAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS symlinkat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SYMLINKAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_SYMLINKAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_sys_stat_h='<'sys/stat.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/stat.h>" >&5
+$as_echo_n "checking absolute name of <sys/stat.h>... " >&6; }
+if ${gl_cv_next_sys_stat_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_sys_stat_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sys/stat.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_sys_stat_h='<'sys/stat.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_type_nlink_t" = xyes; then :
+
+else
+
+$as_echo "@%:@define nlink_t int" >>confdefs.h
+
+fi
+
+
+
+ for gl_func in fchmodat fstat 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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_sys_types_h='<'sys/types.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5
+$as_echo_n "checking absolute name of <sys/types.h>... " >&6; }
+if ${gl_cv_next_sys_types_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sys/types.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sys_types_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5
+$as_echo "$gl_cv_next_sys_types_h" >&6; }
+ fi
+ NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_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/types.h'>'
+ else
+ # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+ gl_next_as_first_directive=$gl_cv_next_sys_types_h
+ fi
+ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_header_sysexits_h = yes; then
+ HAVE_SYSEXITS_H=1
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_sysexits_h='<'sysexits.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sysexits.h>" >&5
+$as_echo_n "checking absolute name of <sysexits.h>... " >&6; }
+if ${gl_cv_next_sysexits_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_sysexits_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sysexits.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sysexits.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sysexits_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_sysexits_h='<'sysexits.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sysexits.h>
+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;
+ }
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ SYSEXITS_H=
+else
+ SYSEXITS_H=sysexits.h
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ else
+ HAVE_SYSEXITS_H=0
+ SYSEXITS_H=sysexits.h
+ fi
+
+
+ if test -n "$SYSEXITS_H"; then
+ GL_GENERATE_SYSEXITS_H_TRUE=
+ GL_GENERATE_SYSEXITS_H_FALSE='#'
+else
+ GL_GENERATE_SYSEXITS_H_TRUE='#'
+ GL_GENERATE_SYSEXITS_H_FALSE=
+fi
+
+
+
+
+ :
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_localtime_r = no; then
+ HAVE_DECL_LOCALTIME_R=0
+ fi
+
+
+ if test $ac_cv_func_localtime_r = yes; then
+ HAVE_LOCALTIME_R=1
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_time_r_posix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+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);
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_time_r_posix=yes
+else
+ gl_cv_time_r_posix=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_LOCALTIME_R=1
+ fi
+ else
+ HAVE_LOCALTIME_R=0
+ fi
+
+if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS time_r.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_TIME_R=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_TIME_R 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_unistd_h='<'unistd.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <unistd.h>" >&5
+$as_echo_n "checking absolute name of <unistd.h>... " >&6; }
+if ${gl_cv_next_unistd_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_unistd_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'unistd.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_unistd_h='<'unistd.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_unistd_h = yes; then
+ HAVE_UNISTD_H=1
+ else
+ HAVE_UNISTD_H=0
+ fi
+
+
+
+
+
+ for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r unlink unlinkat usleep; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+/* Some systems declare various items in the wrong headers. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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 "$HAVE_LIBUNISTRING" != yes \
+ || {
+
+
+
+ test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+ }
+ }
+ }
+
+
+
+
+ }
+ }; then
+ LIBUNISTRING_UNITYPES_H='unitypes.h'
+ else
+ LIBUNISTRING_UNITYPES_H=
+ fi
+
+
+
+
+ if { test "$HAVE_LIBUNISTRING" != yes \
+ || {
+
+
+
+ test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+ }
+ }
+ }
+
+
+
+
+ }
+ }; then
+ LIBUNISTRING_UNIWIDTH_H='uniwidth.h'
+ else
+ LIBUNISTRING_UNIWIDTH_H=
+ fi
+
+
+
+
+ if { test "$HAVE_LIBUNISTRING" != yes \
+ || {
+
+
+
+ test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+ }
+ }
+ }
+
+
+
+
+ }
+ }; then
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE=
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE='#'
+else
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE='#'
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE=
+fi
+
+
+
+
+
+
+ # The Hurd, the Linux kernel, the FreeBSD kernel version 2.2 and later,
+ # 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_os in
+ gnu[0-9]* | \
+ linux-* | linux | \
+ freebsd2.2* | freebsd[3-9]* | freebsd[1-9][0-9]* | \
+ cygwin | \
+ mingw*)
+
+$as_echo "@%:@define UNLINK_CANNOT_UNLINK_DIR 1" >>confdefs.h
+;;
+ esac
+
+
+
+$as_echo "@%:@define USE_UNLOCKED_IO 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_unsetenv = no; then
+ HAVE_DECL_UNSETENV=0
+ fi
+ for ac_func in unsetenv
+do :
+ ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv"
+if test "x$ac_cv_func_unsetenv" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_UNSETENV 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_unsetenv = no; then
+ HAVE_UNSETENV=0
+ else
+ HAVE_UNSETENV=1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5
+$as_echo_n "checking for unsetenv() return type... " >&6; }
+if ${gt_cv_func_unsetenv_ret+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#undef _BSD
+#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
+#include <stdlib.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int unsetenv (const char *name);
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_func_unsetenv_ret='int'
+else
+ gt_cv_func_unsetenv_ret='void'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "@%:@define VOID_UNSETENV 1" >>confdefs.h
+
+ REPLACE_UNSETENV=1
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5
+$as_echo_n "checking whether unsetenv obeys POSIX... " >&6; }
+if ${gl_cv_func_unsetenv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_unsetenv_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <stdlib.h>
+ #include <errno.h>
+ extern char **environ;
+
+int
+main ()
+{
+
+ char entry1[] = "a=1";
+ char entry2[] = "b=2";
+ char *env[] = { entry1, entry2, NULL };
+ if (putenv ((char *) "a=1")) return 1;
+ if (putenv (entry2)) return 2;
+ entry2[0] = 'a';
+ unsetenv ("a");
+ if (getenv ("a")) return 3;
+ if (!unsetenv ("") || errno != EINVAL) return 4;
+ entry2[0] = 'b';
+ environ = env;
+ if (!getenv ("a")) return 5;
+ entry2[0] = 'a';
+ unsetenv ("a");
+ if (getenv ("a")) return 6;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_unsetenv_works=yes
+else
+ gl_cv_func_unsetenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext"
+
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_UNSETENV=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_UNSETENV 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether futimesat handles NULL file" >&5
+$as_echo_n "checking whether futimesat handles NULL file... " >&6; }
+if ${gl_cv_func_futimesat_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stddef.h>
+#include <sys/times.h>
+#include <fcntl.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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_futimesat_works=yes
+else
+ gl_cv_func_futimesat_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_futimesat_works" >&5
+$as_echo "$gl_cv_func_futimesat_works" >&6; }
+ if test "$gl_cv_func_futimesat_works" != yes; then
+
+$as_echo "@%:@define FUTIMESAT_NULL_BUG 1" >>confdefs.h
+
+ fi
+ fi
+
+
+
+
+
+ if test $ac_cv_func_utimensat = no; then
+ HAVE_UTIMENSAT=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether utimensat works" >&5
+$as_echo_n "checking whether utimensat works... " >&6; }
+if ${gl_cv_func_utimensat_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_utimensat_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ const char *f = "conftest.file";
+ if (close (creat (f, 0600)))
+ return 1;
+ /* Test whether the AT_SYMLINK_NOFOLLOW flag is supported. */
+ {
+ if (utimensat (AT_FDCWD, f, NULL, AT_SYMLINK_NOFOLLOW))
+ result |= 2;
+ }
+ /* Test whether UTIME_NOW and UTIME_OMIT work. */
+ {
+ struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+ if (utimensat (AT_FDCWD, f, ts, 0))
+ result |= 4;
+ }
+ sleep (1);
+ {
+ struct timespec ts[2] = { { 1, UTIME_NOW }, { 1, UTIME_OMIT } };
+ struct stat st;
+ if (utimensat (AT_FDCWD, f, ts, 0))
+ result |= 8;
+ if (stat (f, &st))
+ result |= 16;
+ else if (st.st_ctime < st.st_atime)
+ result |= 32;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __linux__
+/* The Linux kernel added utimensat in 2.6.22, but has bugs with UTIME_OMIT
+ in several file systems as recently as 2.6.32. Always replace utimensat
+ to support older kernels. */
+choke me
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_utimensat_works=yes
+else
+ gl_cv_func_utimensat_works="needs runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ gl_cv_func_utimensat_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_utimensat_works" >&5
+$as_echo "$gl_cv_func_utimensat_works" >&6; }
+ if test "$gl_cv_func_utimensat_works" != yes; then
+ REPLACE_UTIMENSAT=1
+ fi
+ fi
+
+if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS utimensat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_UTIMENSAT=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_UTIMENSAT 1" >>confdefs.h
+
+
+
+
+
+ if test $ac_cv_func_vasnprintf = no; then
+
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext"
+
+ if test $ac_cv_func_vasnprintf = yes; then
+
+$as_echo "@%:@define REPLACE_VASNPRINTF 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
+
+else
+
+$as_echo "@%:@define ptrdiff_t long" >>confdefs.h
+
+
+fi
+
+
+
+
+
+
+
+ fi
+
+
+ for ac_func in vasprintf
+do :
+ ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf"
+if test "x$ac_cv_func_vasprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_VASPRINTF 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_vasprintf = no; then
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_VASPRINTF 1" >>confdefs.h
+
+
+
+
+
+ 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 PACKAGE_PACKAGER "$withval"
+_ACEOF
+ ;;
+ esac
+
+fi
+
+
+
+@%:@ 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_fn_error $? "The --with-packager-{bug-reports,version} options require --with-packager" "$LINENO" 5
+ fi
+
+
+
+ gl_cv_func_vsnprintf_usable=no
+ for ac_func in vsnprintf
+do :
+ ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
+if test "x$ac_cv_func_vsnprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_VSNPRINTF 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_vsnprintf = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5
+$as_echo_n "checking whether snprintf respects a size of 1... " >&6; }
+if ${gl_cv_func_snprintf_size1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_snprintf_size1="guessing yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+int main()
+{
+ static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+ my_snprintf (buf, 1, "%d", 12345);
+ return buf[1] != 'E';
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_snprintf_size1=yes
+else
+ gl_cv_func_snprintf_size1=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5
+$as_echo "$gl_cv_func_snprintf_size1" >&6; }
+
+ case "$gl_cv_func_snprintf_size1" in
+ *yes)
+
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5
+$as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; }
+if ${gl_cv_func_printf_positions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+ gl_cv_func_printf_positions="guessing no";;
+ beos*) gl_cv_func_printf_positions="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+ *) gl_cv_func_printf_positions="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+ dollar expansion (possibly an autoconf bug). */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, "55 33") != 0);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_printf_positions=yes
+else
+ gl_cv_func_printf_positions=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5
+$as_echo "$gl_cv_func_printf_positions" >&6; }
+
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_vsnprintf_usable=yes
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ if test $gl_cv_func_vsnprintf_usable = no; then
+
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS vsnprintf.$ac_objext"
+
+ if test $ac_cv_func_vsnprintf = yes; then
+ REPLACE_VSNPRINTF=1
+ fi
+ :
+
+ fi
+
+ if test $ac_cv_have_decl_vsnprintf = no; then
+ HAVE_DECL_VSNPRINTF=0
+ fi
+
+
+
+
+
+
+ GNULIB_VSNPRINTF=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_VSNPRINTF 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_wchar_h='<'wchar.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wchar.h>" >&5
+$as_echo_n "checking absolute name of <wchar.h>... " >&6; }
+if ${gl_cv_next_wchar_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_wchar_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <wchar.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'wchar.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_wchar_h='<'wchar.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+#endif
+#include <wchar.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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 $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_wcrtomb = no; then
+ HAVE_WCRTOMB=0
+ ac_fn_c_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_wcrtomb" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_WCRTOMB $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_wcrtomb = yes; then
+ REPLACE_WCRTOMB=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_WCRTOMB=1
+ else
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5
+$as_echo_n "checking whether wcrtomb return value is correct... " >&6; }
+if ${gl_cv_func_wcrtomb_retval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # 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 :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 1;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 2;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 4;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 8;
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_wcrtomb_retval=yes
+else
+ gl_cv_func_wcrtomb_retval=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS wcrtomb.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_WCRTOMB=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_WCRTOMB 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_iswcntrl = yes; then
+ HAVE_ISWCNTRL=1
+ else
+ HAVE_ISWCNTRL=0
+ fi
+
+
+
+
+
+ if test $gt_cv_c_wint_t = yes; then
+ HAVE_WINT_T=1
+ else
+ HAVE_WINT_T=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
+$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
+if ${gl_cv_next_wctype_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_wctype_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <wctype.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'wctype.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_wctype_h = yes; then
+ if test $ac_cv_func_iswcntrl = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
+$as_echo_n "checking whether iswcntrl works... " >&6; }
+if ${gl_cv_func_iswcntrl_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+ #if __GNU_LIBRARY__ == 1
+ Linux libc5 i18n is broken.
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ int main () { return iswprint ('x') == 0; }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
+$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
+ fi
+ HAVE_WCTYPE_H=1
+ else
+ HAVE_WCTYPE_H=0
+ fi
+
+
+ if test "$gl_cv_func_iswcntrl_works" = no; then
+ REPLACE_ISWCNTRL=1
+ else
+ REPLACE_ISWCNTRL=0
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+ fi
+
+ if test $REPLACE_ISWCNTRL = 1; then
+ REPLACE_TOWLOWER=1
+ else
+ for ac_func in towlower
+do :
+ ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower"
+if test "x$ac_cv_func_towlower" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_TOWLOWER 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_towlower = yes; then
+ REPLACE_TOWLOWER=0
+ else
+ ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* 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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+
+"
+if test "x$ac_cv_have_decl_towlower" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_TOWLOWER $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_towlower = yes; then
+ REPLACE_TOWLOWER=1
+ else
+ REPLACE_TOWLOWER=0
+ fi
+ fi
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+ :
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
+$as_echo_n "checking for wctype_t... " >&6; }
+if ${gl_cv_type_wctype_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ wctype_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctype_t=yes
+else
+ gl_cv_type_wctype_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5
+$as_echo "$gl_cv_type_wctype_t" >&6; }
+ if test $gl_cv_type_wctype_t = no; then
+ HAVE_WCTYPE_T=0
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
+$as_echo_n "checking for wctrans_t... " >&6; }
+if ${gl_cv_type_wctrans_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ wctrans_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctrans_t=yes
+else
+ gl_cv_type_wctrans_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5
+$as_echo "$gl_cv_type_wctrans_t" >&6; }
+ if test $gl_cv_type_wctrans_t = no; then
+ HAVE_WCTRANS_T=0
+ fi
+
+
+ for gl_func in wctype iswctype wctrans towctrans ; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+
+int
+main ()
+{
+@%:@undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "wcwidth" "ac_cv_have_decl_wcwidth" "
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.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>
+
+"
+if test "x$ac_cv_have_decl_wcwidth" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_WCWIDTH $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_wcwidth != yes; then
+ HAVE_DECL_WCWIDTH=0
+ fi
+
+ if test $ac_cv_func_wcwidth = yes; then
+ HAVE_WCWIDTH=1
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_wcwidth_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess yes on glibc and AIX 7 systems.
+ *-gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
+ *) gl_cv_func_wcwidth_works="guessing no";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.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>
+#if !HAVE_DECL_WCWIDTH
+extern
+# ifdef __cplusplus
+"C"
+# endif
+int wcwidth (int);
+#endif
+int main ()
+{
+ int result = 0;
+ if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
+ {
+ if (wcwidth (0x0301) > 0)
+ result |= 1;
+ if (wcwidth (0x200B) > 0)
+ result |= 2;
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_wcwidth_works=yes
+else
+ gl_cv_func_wcwidth_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ HAVE_WCWIDTH=0
+ fi
+
+if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_WCWIDTH=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_WCWIDTH 1" >>confdefs.h
+
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_WRITE=1
+ fi
+
+
+
+if test $REPLACE_WRITE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS write.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_WRITE=1
+
+
+
+
+
+$as_echo "@%:@define GNULIB_TEST_WRITE 1" >>confdefs.h
+
+
+
+
+
+
+ :
+
+
+ :
+
+
+
+ :
+
+
+
+
+ for ac_header in stdint.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STDINT_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+ :
+
+
+
+ :
+
+
+
+
+
+
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=xasprintf:1:c-format"
+
+ # End of code from modules
+
+
+
+
+
+
+
+
+
+ gltests_libdeps=
+ gltests_ltlibdeps=
+
+
+
+
+
+
+
+
+
+ gl_source_base='tests'
+ gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
+
+ gl_module_indicator_condition=$gltests_WITNESS
+
+
+
+
+
+
+
+
+
+ LIBGNU_LIBDEPS="$gl_libdeps"
+
+ LIBGNU_LTLIBDEPS="$gl_ltlibdeps"
+
+
+# paxutils modules
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_header_time+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+
+int
+main ()
+{
+if ((struct tm *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_time=yes
+else
+ ac_cv_header_time=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
+$as_echo "$ac_cv_header_time" >&6; }
+if test $ac_cv_header_time = yes; then
+
+$as_echo "@%:@define TIME_WITH_SYS_TIME 1" >>confdefs.h
+
+fi
+
+ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+_ACEOF
+
+
+$as_echo "@%:@define HAVE_ST_BLKSIZE 1" >>confdefs.h
+
+fi
+
+
+
+
+
+
+ # Set LIB_SETSOCKOPT to -lnsl -lsocket if necessary.
+ pu_save_LIBS=$LIBS
+ LIB_SETSOCKOPT=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' socket; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' socket; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib -lnsl $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+
+ case "$ac_cv_search_setsockopt" in
+ -l*) LIB_SETSOCKOPT=$ac_cv_search_setsockopt
+ esac
+
+ LIBS=$pu_save_LIBS
+
+ enable_rmt() {
+ if test $ac_cv_header_sys_mtio_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remote tape header files" >&5
+$as_echo_n "checking for remote tape header files... " >&6; }
+if ${pu_cv_header_rmt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if HAVE_SGTTY_H
+# include <sgtty.h>
+#endif
+#include <sys/socket.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ pu_cv_header_rmt=yes
+else
+ pu_cv_header_rmt=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ }
+
+ for ac_header in sys/mtio.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/mtio.h" "ac_cv_header_sys_mtio_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mtio_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_MTIO_H 1
+_ACEOF
+
+fi
+
+done
+
+ { $as_echo "$as_me:${as_lineno-$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 ${pu_cv_header_mtio_check_field+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/mtio.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "mt_model" >/dev/null 2>&1; then :
+ pu_cv_header_mtio_check_field=mt_model
+else
+ pu_cv_header_mtio_check_field=mt_type
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+_ACEOF
+
+
+
+
+ if test "x$DEFAULT_RMT_DIR" != x; then
+ DEFAULT_RMT_COMMAND=$DEFAULT_RMT_DIR/rmt
+ else
+ DEFAULT_RMT_DIR='$(libexecdir)'
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$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) as_fn_error $? "Invalid argument to --with-rmt" "$LINENO" 5;;
+ /*) DEFAULT_RMT_COMMAND=$withval
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, use $withval instead" >&5
+$as_echo "no, use $withval instead" >&6; };;
+ *) as_fn_error $? "Argument to --with-rmt must be an absolute file name" "$LINENO" 5;;
+ esac
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ enable_rmt
+ if test "$PU_RMT_PROG" = ""; then
+ { $as_echo "$as_me:${as_lineno-$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
+
+
+
+ if test "x$DEFAULT_RMT_COMMAND" != x; then
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DEFAULT_RMT_COMMAND "$DEFAULT_RMT_COMMAND"
+_ACEOF
+
+ fi
+
+
+
+
+
+
+
+
+
+ for ac_header in sys/buf.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "sys/buf.h" "ac_cv_header_sys_buf_h" "#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+"
+if test "x$ac_cv_header_sys_buf_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_SYS_BUF_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+_ACEOF
+
+
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5
+$as_echo_n "checking for library containing gethostbyname... " >&6; }
+if ${ac_cv_search_gethostbyname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_gethostbyname=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_gethostbyname+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_gethostbyname+:} false; then :
+
+else
+ ac_cv_search_gethostbyname=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "getgrgid" "ac_cv_have_decl_getgrgid" "#include <grp.h>
+"
+if test "x$ac_cv_have_decl_getgrgid" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETGRGID $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getpwuid" "ac_cv_have_decl_getpwuid" "#include <pwd.h>
+"
+if test "x$ac_cv_have_decl_getpwuid" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_GETPWUID $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "time" "ac_cv_have_decl_time" "#include <time.h>
+"
+if test "x$ac_cv_have_decl_time" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_DECL_TIME $ac_have_decl
+_ACEOF
+
+
+ac_fn_c_check_func "$LINENO" "waitpid" "ac_cv_func_waitpid"
+if test "x$ac_cv_func_waitpid" = xyes; then :
+ $as_echo "@%:@define HAVE_WAITPID 1" >>confdefs.h
+
+else
+ case " $LIB@&t@OBJS " in
+ *" waitpid.$ac_objext "* ) ;;
+ *) LIB@&t@OBJS="$LIB@&t@OBJS waitpid.$ac_objext"
+ ;;
+esac
+
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for remote shell" >&5
+$as_echo_n "checking for remote shell... " >&6; }
+if ${tar_cv_path_RSH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RSH"; then
+ tar_cv_path_RSH=$RSH
+ else
+ tar_cv_path_RSH=no
+ for ac_file in /usr/ucb/rsh /usr/bin/remsh /usr/bin/rsh /usr/bsd/rsh \
+ /usr/bin/nsh /usr/bin/rcmd
+ do
+ # Prefer a non-symlink rsh to a symlink one, so that binaries built
+ # on AIX 4.1.4, where /usr/ucb/rsh is a symlink to /usr/bin/rsh
+ # will run on AIX 4.3.0, which has only /usr/bin/rsh.
+ if test -f $ac_file; then
+ if (test -h $ac_file) 2>/dev/null; then
+ test $tar_cv_path_RSH = no && tar_cv_path_RSH=$ac_file
+ else
+ tar_cv_path_RSH=$ac_file
+ break
+ fi
+ fi
+ done
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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 :
+ ac_fn_c_check_header_mongrel "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default"
+if test "x$ac_cv_header_netdb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_NETDB_H 1
+_ACEOF
+
+fi
+
+done
+
+else
+
+cat >>confdefs.h <<_ACEOF
+@%:@define REMOTE_SHELL "$tar_cv_path_RSH"
+_ACEOF
+
+fi
+
+
+
+
+
+@%:@ 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:${as_lineno-$LINENO}: checking for default archive format" >&5
+$as_echo_n "checking for default archive format... " >&6; }
+
+
+
+if test -z "$DEFAULT_ARCHIVE_FORMAT"; then
+ DEFAULT_ARCHIVE_FORMAT="GNU"
+fi
+case $DEFAULT_ARCHIVE_FORMAT in
+ V7|OLDGNU|USTAR|POSIX|GNU) ;;
+ *) as_fn_error $? "Invalid format name" "$LINENO" 5;;
+esac
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DEFAULT_ARCHIVE_FORMAT ${DEFAULT_ARCHIVE_FORMAT}_FORMAT
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_ARCHIVE_FORMAT" >&5
+$as_echo "$DEFAULT_ARCHIVE_FORMAT" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$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.
+ # FIXME: Rearrange, here.
+ case $DEFAULT_ARCHIVE in
+ *[0-7][lmh])
+
+$as_echo "@%:@define DENSITY_LETTER 1" >>confdefs.h
+
+ device_prefix=`echo $DEFAULT_ARCHIVE | sed 's/0-7lmh$//'`
+ ;;
+ *[0-7])
+ device_prefix=`echo $DEFAULT_ARCHIVE | sed 's/0-7$//'`
+ ;;
+ *)
+ device_prefix=
+ ;;
+ esac
+ case "$device_prefix" in
+ ?*)
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DEVICE_PREFIX "$device_prefix"
+_ACEOF
+
+ ;;
+ esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+@%:@define DEFAULT_ARCHIVE "$DEFAULT_ARCHIVE"
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_ARCHIVE" >&5
+$as_echo "$DEFAULT_ARCHIVE" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$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
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_BLOCKING" >&5
+$as_echo "$DEFAULT_BLOCKING" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default quoting style" >&5
+$as_echo_n "checking for default quoting style... " >&6; }
+
+
+DEFAULT_QUOTING_STYLE="escape"
+
+
+case $DEFAULT_QUOTING_STYLE in
+ literal|shell|shell-always|c|escape|locale|clocale) ;;
+*) as_fn_error $? "Invalid quoting style" "$LINENO" 5;;
+esac
+{ $as_echo "$as_me:${as_lineno-$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
+@%:@define DEFAULT_QUOTING_STYLE $DEFAULT_QUOTING_STYLE
+_ACEOF
+
+
+# Iconv
+
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+
+
+@%:@ Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$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
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # 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%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${acl_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # 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" != yes && break ;;
+ esac
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${acl_cv_prog_gnu_ld+:} false; then :
+ $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
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes ;;
+*)
+ acl_cv_prog_gnu_ld=no ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
+$as_echo "$acl_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$acl_cv_prog_gnu_ld
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
+$as_echo_n "checking for shared library run path origin... " >&6; }
+if ${acl_cv_rpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+ acl_libname_spec="$acl_cv_libname_spec"
+ acl_library_names_spec="$acl_cv_library_names_spec"
+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ acl_hardcode_direct="$acl_cv_hardcode_direct"
+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ @%:@ Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then :
+ enableval=$enable_rpath; :
+else
+ enable_rpath=yes
+fi
+
+
+
+
+ acl_libdirstem=lib
+ acl_libdirstem2=
+ case "$host_os" in
+ solaris*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
+$as_echo_n "checking for 64-bit host... " >&6; }
+if ${gl_cv_solaris_64bit+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef _LP64
+sixtyfour bits
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
+ gl_cv_solaris_64bit=yes
+else
+ gl_cv_solaris_64bit=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ sparc*) acl_libdirstem2=lib/sparcv9 ;;
+ i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
+ esac
+ fi
+ ;;
+ *)
+ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ 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 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ fi
+ ;;
+ esac
+ test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+
+
+
+
+
+
+
+
+
+
+
+
+ use_additional=yes
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+
+@%:@ Check whether --with-libiconv-prefix was given.
+if test "${with_libiconv_prefix+set}" = set; then :
+ withval=$with_libiconv_prefix;
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
+ fi
+ fi
+
+fi
+
+ LIBICONV=
+ LTLIBICONV=
+ INCICONV=
+ LIBICONV_PREFIX=
+ HAVE_LIBICONV=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='iconv '
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
+ else
+ :
+ fi
+ else
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ dir="$additional_libdir"
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ if test "$acl_hardcode_direct" = yes; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
+ fi
+ fi
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = 'iconv'; then
+ LIBICONV_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = 'iconv'; then
+ LIBICONV_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INCICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -n "$found_la"; then
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ else
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ for found_dir in $ltrpathdirs; do
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
+ done
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+ am_save_CPPFLAGS="$CPPFLAGS"
+
+ for element in $INCICONV; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if ${am_cv_func_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$am_save_LIBS"
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
+$as_echo_n "checking for working iconv... " >&6; }
+if ${am_cv_func_iconv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ int result = 0;
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ 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_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ result |= 1;
+ iconv_close (cd_utf8_to_88591);
+ }
+ }
+ /* 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)
+ result |= 2;
+ iconv_close (cd_ascii_to_88591);
+ }
+ }
+ /* Test against AIX 6.1..7.1 bug: Buffer overrun. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304";
+ static char buf[2] = { (char)0xDE, (char)0xAD };
+ const char *inptr = input;
+ size_t inbytesleft = 1;
+ char *outptr = buf;
+ size_t outbytesleft = 1;
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
+ result |= 4;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ result |= 8;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ result |= 16;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ am_cv_func_iconv_works=yes
+else
+ am_cv_func_iconv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ LIBS="$am_save_LIBS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+
+$as_echo "@%:@define HAVE_ICONV 1" >>confdefs.h
+
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+ else
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+
+
+
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
+ if ${am_cv_proto_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ am_cv_proto_iconv_arg1=""
+else
+ am_cv_proto_iconv_arg1="const"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ 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);"
+fi
+
+ am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ { $as_echo "$as_me:${as_lineno-$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
+_ACEOF
+
+
+ fi
+
+for ac_header in iconv.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default"
+if test "x$ac_cv_header_iconv_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+@%:@define HAVE_ICONV_H 1
+_ACEOF
+
+fi
+
+done
+
+ac_fn_c_check_type "$LINENO" "iconv_t" "ac_cv_type_iconv_t" "
+#ifdef HAVE_ICONV_H
+# include <iconv.h>
+#endif
+
+"
+if test "x$ac_cv_type_iconv_t" = xyes; then :
+ :
+else
+
+$as_echo "@%:@define iconv_t int" >>confdefs.h
+
+fi
+
+
+# Gettext.
+
+ { $as_echo "$as_me:${as_lineno-$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
+else
+ USE_NLS=yes
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+
+
+
+
+ GETTEXT_MACRO_VERSION=0.18
+
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGFMT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case "$MSGFMT" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+ ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GMSGFMT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GMSGFMT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ 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_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+ case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+ *) MSGFMT_015=$MSGFMT ;;
+ esac
+
+ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+ *) GMSGFMT_015=$GMSGFMT ;;
+ esac
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XGETTEXT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case "$XGETTEXT" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+ ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ rm -f messages.po
+
+ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+ *) XGETTEXT_015=$XGETTEXT ;;
+ esac
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGMERGE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case "$MSGMERGE" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
+ ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
+ ;;
+esac
+fi
+MSGMERGE="$ac_cv_path_MSGMERGE"
+if test "$MSGMERGE" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
+$as_echo "$MSGMERGE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$localedir" || localedir='${datadir}/locale'
+
+
+ test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+
+
+ ac_config_commands="$ac_config_commands po-directories"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
+$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
+if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <CoreFoundation/CFPreferences.h>
+int
+main ()
+{
+CFPreferencesCopyAppValue(NULL, NULL)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gt_cv_func_CFPreferencesCopyAppValue=yes
+else
+ gt_cv_func_CFPreferencesCopyAppValue=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$gt_save_LIBS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+
+$as_echo "@%:@define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
+$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
+if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <CoreFoundation/CFLocale.h>
+int
+main ()
+{
+CFLocaleCopyCurrent();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gt_cv_func_CFLocaleCopyCurrent=yes
+else
+ gt_cv_func_CFLocaleCopyCurrent=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$gt_save_LIBS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
+ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+
+$as_echo "@%:@define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
+
+ fi
+ INTL_MACOSX_LIBS=
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+ fi
+
+
+
+
+
+
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ case " $gt_needs " in
+ *" need-formatstring-macros "*) gt_api_version=3 ;;
+ *" need-ngettext "*) gt_api_version=2 ;;
+ *) gt_api_version=1 ;;
+ esac
+ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+
+
+ if test $gt_api_version -ge 3; then
+ gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+'
+ else
+ gt_revision_test_code=
+ fi
+ if test $gt_api_version -ge 2; then
+ gt_expression_test_code=' + * ngettext ("", "", 0)'
+ else
+ gt_expression_test_code=
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
+$as_echo_n "checking for GNU gettext in libc... " >&6; }
+if eval \${$gt_func_gnugettext_libc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+
+int
+main ()
+{
+
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$gt_func_gnugettext_libc=yes"
+else
+ eval "$gt_func_gnugettext_libc=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$gt_func_gnugettext_libc
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+
+
+
+
+
+ am_save_CPPFLAGS="$CPPFLAGS"
+
+ for element in $INCICONV; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if ${am_cv_func_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$am_save_LIBS"
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
+$as_echo_n "checking for working iconv... " >&6; }
+if ${am_cv_func_iconv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ int result = 0;
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ 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_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ result |= 1;
+ iconv_close (cd_utf8_to_88591);
+ }
+ }
+ /* 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)
+ result |= 2;
+ iconv_close (cd_ascii_to_88591);
+ }
+ }
+ /* Test against AIX 6.1..7.1 bug: Buffer overrun. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304";
+ static char buf[2] = { (char)0xDE, (char)0xAD };
+ const char *inptr = input;
+ size_t inbytesleft = 1;
+ char *outptr = buf;
+ size_t outbytesleft = 1;
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
+ result |= 4;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ result |= 8;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ result |= 16;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ am_cv_func_iconv_works=yes
+else
+ am_cv_func_iconv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ LIBS="$am_save_LIBS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+
+$as_echo "@%:@define HAVE_ICONV 1" >>confdefs.h
+
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+ else
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ use_additional=yes
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+
+@%:@ Check whether --with-libintl-prefix was given.
+if test "${with_libintl_prefix+set}" = set; then :
+ withval=$with_libintl_prefix;
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
+ fi
+ fi
+
+fi
+
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ LIBINTL_PREFIX=
+ HAVE_LIBINTL=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='intl '
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
+ else
+ :
+ fi
+ else
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ dir="$additional_libdir"
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ if test "$acl_hardcode_direct" = yes; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ haveit=
+ for x in $LDFLAGS $LIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
+ fi
+ fi
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = 'intl'; then
+ LIBINTL_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = 'intl'; then
+ LIBINTL_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INCINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -n "$found_la"; then
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+ else
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ for found_dir in $ltrpathdirs; do
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
+ done
+ fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
+$as_echo_n "checking for GNU gettext in libintl... " >&6; }
+if eval \${$gt_func_gnugettext_libintl+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+
+int
+main ()
+{
+
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$gt_func_gnugettext_libintl=yes"
+else
+ eval "$gt_func_gnugettext_libintl=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+
+int
+main ()
+{
+
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ eval "$gt_func_gnugettext_libintl=yes"
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"
+fi
+eval ac_res=\$$gt_func_gnugettext_libintl
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ fi
+
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
+
+
+
+ if test -n "$INTL_MACOSX_LIBS"; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+ fi
+ fi
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+
+$as_echo "@%:@define ENABLE_NLS 1" >>confdefs.h
+
+ else
+ USE_NLS=no
+ fi
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
+$as_echo_n "checking whether to use NLS... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+ if test "$USE_NLS" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$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"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
+$as_echo_n "checking how to link with libintl... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
+$as_echo "$LIBINTL" >&6; }
+
+ for element in $INCINTL; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+ fi
+
+
+$as_echo "@%:@define HAVE_GETTEXT 1" >>confdefs.h
+
+
+$as_echo "@%:@define HAVE_DCGETTEXT 1" >>confdefs.h
+
+ fi
+
+ POSUB=po
+ fi
+
+
+
+ INTLLIBS="$LIBINTL"
+
+
+
+
+
+
+
+
+# Initialize the test suite.
+ac_config_commands="$ac_config_commands tests/atconfig"
+
+ac_config_files="$ac_config_files tests/Makefile tests/atlocal"
+ # FIXME: tests/preset?
+
+AUTOM4TE=${AUTOM4TE-"${am_missing_run}autom4te"}
+
+
+
+
+@%:@ Check whether --enable-backup-scripts was given.
+if test "${enable_backup_scripts+set}" = set; then :
+ enableval=$enable_backup_scripts; case $enableval in
+ yes) BACKUP_LIBEXEC_SCRIPTS='$(BACKUP_LIBEXEC_SCRIPTS_LIST)'
+ BACKUP_SBIN_SCRIPTS='$(BACKUP_SBIN_SCRIPTS_LIST)'
+ ;;
+ esac
+fi
+
+
+
+if date +%Y-%m-%d 2>/dev/null >&2; then
+ BACKUP_SED_COND='/^\#ELSE_DATE_FORMAT_OK/,/^\#ENDIF_DATE_FORMAT_OK/d;/^\#IF_DATE_FORMAT_OK/d'
+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 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
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$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= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIB@&t@OBJS; 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=`$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.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIB@&t@OBJS=$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
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
+ as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_FLOAT_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_FNMATCH_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDALIGN_H_TRUE}" && test -z "${GL_GENERATE_STDALIGN_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDALIGN_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDARG_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_SYSEXITS_H_TRUE}" && test -z "${GL_GENERATE_SYSEXITS_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_SYSEXITS_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE}"; then
+ as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+
+ gl_libobjs=
+ gl_ltlibobjs=
+ 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 -e "$sed_drop_objext" | sort | uniq`; do
+ gl_libobjs="$gl_libobjs $i.$ac_objext"
+ gl_ltlibobjs="$gl_ltlibobjs $i.lo"
+ done
+ fi
+ gl_LIBOBJS=$gl_libobjs
+
+ gl_LTLIBOBJS=$gl_ltlibobjs
+
+
+
+ gltests_libobjs=
+ gltests_ltlibobjs=
+ 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 -e "$sed_drop_objext" | sort | uniq`; do
+ gltests_libobjs="$gltests_libobjs $i.$ac_objext"
+ gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
+ done
+ fi
+ gltests_LIBOBJS=$gltests_libobjs
+
+ gltests_LTLIBOBJS=$gltests_ltlibobjs
+
+
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # 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
+else
+ case `(set -o) 2>/dev/null` in @%:@(
+ *posix*) :
+ set -o posix ;; @%:@(
+ *) :
+ ;;
+esac
+fi
+
+
+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
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (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
+ 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
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# 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.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in @%:@((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+@%:@ as_fn_error STATUS ERROR [LINENO LOG_FD]
+@%:@ ----------------------------------------
+@%:@ Output "`basename @S|@0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+@%:@ provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+@%:@ script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} @%:@ as_fn_error
+
+
+@%:@ as_fn_set_status STATUS
+@%:@ -----------------------
+@%:@ Set @S|@? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} @%:@ as_fn_set_status
+
+@%:@ as_fn_exit STATUS
+@%:@ -----------------
+@%:@ Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} @%:@ as_fn_exit
+
+@%:@ as_fn_unset VAR
+@%:@ ---------------
+@%:@ Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+@%:@ as_fn_append VAR VALUE
+@%:@ ----------------------
+@%:@ Append the text in VALUE to the end of the definition contained in VAR. Take
+@%:@ advantage of any shell optimizations that allow amortized linear growth over
+@%:@ repeated appends, instead of the typical quadratic growth present in naive
+@%:@ implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+@%:@ as_fn_arith ARG...
+@%:@ ------------------
+@%:@ Perform arithmetic evaluation on the ARGs, and store the result in the
+@%:@ global @S|@as_val. Take advantage of shells that can avoid forks. The arguments
+@%:@ must be portable across @S|@(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in @%:@(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ 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'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+@%:@ as_fn_mkdir_p
+@%:@ -------------
+@%:@ Create "@S|@as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} @%:@ as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in @%:@(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in @%:@((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# 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.26.90, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_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"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -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
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-tar@gnu.org>.
+GNU tar home page: <http://www.gnu.org/software/tar/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+GNU tar config.status 1.26.90
+configured by $0, generated by GNU Autoconf 2.68,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+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
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $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.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ 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 "\$@"
+fi
+
+_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
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+ # from automake < 1.5.
+ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+
+
+
+_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" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
+ "tests/atconfig") CONFIG_COMMANDS="$CONFIG_COMMANDS tests/atconfig" ;;
+ "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
+ "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" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# 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
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+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
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ 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
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ 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 >>"\$ac_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 >>"\$ac_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
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+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 < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+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 >"$ac_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.
+
+# 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_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ 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_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+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*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append 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 '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$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 >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ 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/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_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=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$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 || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_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 || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+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
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+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
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$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 "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# 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
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$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"" || {
+ # 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 ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ 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" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+ "po-directories":C)
+ for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ # Treat a directory as a PO directory if and only if it has a
+ # POTFILES.in file. This allows packages to have multiple PO
+ # directories under different names or in different locations.
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ gt_tab=`printf '\t'`
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ POMAKEFILEDEPS="POTFILES.in"
+ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+ # on $ac_dir but don't depend on user-specified configuration
+ # parameters.
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # The set of available languages was given in configure.in.
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+ fi
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+ fi
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+ if test -f "$f"; then
+ case "$f" in
+ *.orig | *.bak | *~) ;;
+ *) cat "$f" >> "$ac_dir/Makefile" ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done ;;
+ "tests/atconfig":C) cat >tests/atconfig <<ATEOF
+@%:@ Configurable variable values for building test suites.
+@%:@ Generated by $0.
+@%:@ Copyright (C) 2010 Free Software Foundation, Inc.
+
+# The test suite will define top_srcdir=$at_top_srcdir/../.. etc.
+at_testdir='tests'
+abs_builddir='$ac_abs_builddir'
+at_srcdir='$ac_srcdir'
+abs_srcdir='$ac_abs_srcdir'
+at_top_srcdir='$ac_top_srcdir'
+abs_top_srcdir='$ac_abs_top_srcdir'
+at_top_build_prefix='$ac_top_build_prefix'
+abs_top_builddir='$ac_abs_top_builddir'
+
+# Backward compatibility with Autotest <= 2.59b:
+at_top_builddir=\$at_top_build_prefix
+
+AUTOTEST_PATH='tests'
+
+SHELL=\${CONFIG_SHELL-'$SHELL'}
+ATEOF
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/autom4te.cache/requests b/autom4te.cache/requests
new file mode 100644
index 00000000..5c6df0cd
--- /dev/null
+++ b/autom4te.cache/requests
@@ -0,0 +1,866 @@
+# This file was generated by Autom4te Sun May 1 09:53:53 UTC 2011.
+# It contains the lists of macros which have been traced.
+# It can be safely removed.
+
+@request = (
+ bless( [
+ '0',
+ 1,
+ [
+ '/usr/share/autoconf'
+ ],
+ [
+ '/usr/share/autoconf/autoconf/autoconf.m4f',
+ '/usr/share/aclocal/glibc2.m4',
+ '/usr/share/aclocal/intdiv0.m4',
+ '/usr/share/aclocal/lcmessage.m4',
+ '/usr/share/aclocal/lock.m4',
+ '/usr/share/aclocal/printf-posix.m4',
+ '/usr/share/aclocal/uintmax_t.m4',
+ '/usr/share/aclocal/visibility.m4',
+ '/usr/share/aclocal-1.11/amversion.m4',
+ '/usr/share/aclocal-1.11/auxdir.m4',
+ '/usr/share/aclocal-1.11/cond.m4',
+ '/usr/share/aclocal-1.11/depend.m4',
+ '/usr/share/aclocal-1.11/depout.m4',
+ '/usr/share/aclocal-1.11/init.m4',
+ '/usr/share/aclocal-1.11/install-sh.m4',
+ '/usr/share/aclocal-1.11/lead-dot.m4',
+ '/usr/share/aclocal-1.11/make.m4',
+ '/usr/share/aclocal-1.11/minuso.m4',
+ '/usr/share/aclocal-1.11/missing.m4',
+ '/usr/share/aclocal-1.11/mkdirp.m4',
+ '/usr/share/aclocal-1.11/options.m4',
+ '/usr/share/aclocal-1.11/runlog.m4',
+ '/usr/share/aclocal-1.11/sanity.m4',
+ '/usr/share/aclocal-1.11/silent.m4',
+ '/usr/share/aclocal-1.11/strip.m4',
+ '/usr/share/aclocal-1.11/substnot.m4',
+ '/usr/share/aclocal-1.11/tar.m4',
+ 'm4/00gnulib.m4',
+ 'm4/alloca.m4',
+ 'm4/argp.m4',
+ 'm4/backupfile.m4',
+ 'm4/bison.m4',
+ 'm4/btowc.m4',
+ 'm4/canonicalize.m4',
+ 'm4/chdir-long.m4',
+ 'm4/chown.m4',
+ 'm4/clock_time.m4',
+ 'm4/close-stream.m4',
+ 'm4/close.m4',
+ 'm4/closedir.m4',
+ 'm4/closeout.m4',
+ 'm4/codeset.m4',
+ 'm4/configmake.m4',
+ 'm4/d-ino.m4',
+ 'm4/dirent-safer.m4',
+ 'm4/dirent_h.m4',
+ 'm4/dirfd.m4',
+ 'm4/dirname.m4',
+ 'm4/double-slash-root.m4',
+ 'm4/dup.m4',
+ 'm4/dup2.m4',
+ 'm4/eealloc.m4',
+ 'm4/environ.m4',
+ 'm4/errno_h.m4',
+ 'm4/error.m4',
+ 'm4/exponentd.m4',
+ 'm4/extensions.m4',
+ 'm4/fchdir.m4',
+ 'm4/fcntl-o.m4',
+ 'm4/fcntl.m4',
+ 'm4/fcntl_h.m4',
+ 'm4/fdopendir.m4',
+ 'm4/fileblocks.m4',
+ 'm4/filenamecat.m4',
+ 'm4/float_h.m4',
+ 'm4/fnmatch.m4',
+ 'm4/fpending.m4',
+ 'm4/fseek.m4',
+ 'm4/fseeko.m4',
+ 'm4/fstat.m4',
+ 'm4/fstatat.m4',
+ 'm4/futimens.m4',
+ 'm4/getcwd-abort-bug.m4',
+ 'm4/getcwd-path-max.m4',
+ 'm4/getcwd.m4',
+ 'm4/getdelim.m4',
+ 'm4/getdtablesize.m4',
+ 'm4/getline.m4',
+ 'm4/getopt.m4',
+ 'm4/getpagesize.m4',
+ 'm4/gettext.m4',
+ 'm4/gettime.m4',
+ 'm4/gettimeofday.m4',
+ 'm4/glibc21.m4',
+ 'm4/gnulib-common.m4',
+ 'm4/gnulib-comp.m4',
+ 'm4/human.m4',
+ 'm4/iconv.m4',
+ 'm4/include_next.m4',
+ 'm4/inline.m4',
+ 'm4/intl.m4',
+ 'm4/intlmacosx.m4',
+ 'm4/intmax.m4',
+ 'm4/intmax_t.m4',
+ 'm4/inttostr.m4',
+ 'm4/inttypes-pri.m4',
+ 'm4/inttypes.m4',
+ 'm4/inttypes_h.m4',
+ 'm4/iswblank.m4',
+ 'm4/langinfo_h.m4',
+ 'm4/largefile.m4',
+ 'm4/lchown.m4',
+ 'm4/lib-ld.m4',
+ 'm4/lib-link.m4',
+ 'm4/lib-prefix.m4',
+ 'm4/libunistring-base.m4',
+ 'm4/link-follow.m4',
+ 'm4/link.m4',
+ 'm4/linkat.m4',
+ 'm4/localcharset.m4',
+ 'm4/locale-fr.m4',
+ 'm4/locale-ja.m4',
+ 'm4/locale-zh.m4',
+ 'm4/longlong.m4',
+ 'm4/lseek.m4',
+ 'm4/lstat.m4',
+ 'm4/malloc.m4',
+ 'm4/malloca.m4',
+ 'm4/math_h.m4',
+ 'm4/mbchar.m4',
+ 'm4/mbiter.m4',
+ 'm4/mbrtowc.m4',
+ 'm4/mbsinit.m4',
+ 'm4/mbsrtowcs.m4',
+ 'm4/mbstate_t.m4',
+ 'm4/mbtowc.m4',
+ 'm4/memchr.m4',
+ 'm4/mempcpy.m4',
+ 'm4/memrchr.m4',
+ 'm4/mkdtemp.m4',
+ 'm4/mkfifo.m4',
+ 'm4/mkfifoat.m4',
+ 'm4/mknod.m4',
+ 'm4/mktime.m4',
+ 'm4/mmap-anon.m4',
+ 'm4/mode_t.m4',
+ 'm4/modechange.m4',
+ 'm4/msvc-inval.m4',
+ 'm4/msvc-nothrow.m4',
+ 'm4/multiarch.m4',
+ 'm4/nl_langinfo.m4',
+ 'm4/nls.m4',
+ 'm4/nocrash.m4',
+ 'm4/open.m4',
+ 'm4/openat.m4',
+ 'm4/opendir.m4',
+ 'm4/parse-datetime.m4',
+ 'm4/pathmax.m4',
+ 'm4/paxutils.m4',
+ 'm4/po.m4',
+ 'm4/printf.m4',
+ 'm4/priv-set.m4',
+ 'm4/progtest.m4',
+ 'm4/quote.m4',
+ 'm4/quotearg.m4',
+ 'm4/raise.m4',
+ 'm4/rawmemchr.m4',
+ 'm4/read.m4',
+ 'm4/readdir.m4',
+ 'm4/readlink.m4',
+ 'm4/readlinkat.m4',
+ 'm4/realloc.m4',
+ 'm4/regex.m4',
+ 'm4/rename.m4',
+ 'm4/renameat.m4',
+ 'm4/rewinddir.m4',
+ 'm4/rmdir.m4',
+ 'm4/rmt.m4',
+ 'm4/rpmatch.m4',
+ 'm4/rtapelib.m4',
+ 'm4/safe-read.m4',
+ 'm4/safe-write.m4',
+ 'm4/save-cwd.m4',
+ 'm4/savedir.m4',
+ 'm4/setenv.m4',
+ 'm4/signal_h.m4',
+ 'm4/size_max.m4',
+ 'm4/sleep.m4',
+ 'm4/snprintf.m4',
+ 'm4/ssize_t.m4',
+ 'm4/stat-time.m4',
+ 'm4/stat.m4',
+ 'm4/stdalign.m4',
+ 'm4/stdarg.m4',
+ 'm4/stdbool.m4',
+ 'm4/stddef_h.m4',
+ 'm4/stdint.m4',
+ 'm4/stdint_h.m4',
+ 'm4/stdio_h.m4',
+ 'm4/stdlib_h.m4',
+ 'm4/stpcpy.m4',
+ 'm4/strcase.m4',
+ 'm4/strchrnul.m4',
+ 'm4/strdup.m4',
+ 'm4/strerror.m4',
+ 'm4/string_h.m4',
+ 'm4/strings_h.m4',
+ 'm4/strndup.m4',
+ 'm4/strnlen.m4',
+ 'm4/strtol.m4',
+ 'm4/strtoul.m4',
+ 'm4/strtoull.m4',
+ 'm4/strtoumax.m4',
+ 'm4/symlink.m4',
+ 'm4/symlinkat.m4',
+ 'm4/sys_socket_h.m4',
+ 'm4/sys_stat_h.m4',
+ 'm4/sys_time_h.m4',
+ 'm4/sys_types_h.m4',
+ 'm4/sysexits.m4',
+ 'm4/system.m4',
+ 'm4/tempname.m4',
+ 'm4/threadlib.m4',
+ 'm4/time_h.m4',
+ 'm4/time_r.m4',
+ 'm4/timespec.m4',
+ 'm4/tm_gmtoff.m4',
+ 'm4/unistd-safer.m4',
+ 'm4/unistd_h.m4',
+ 'm4/unlinkdir.m4',
+ 'm4/unlocked-io.m4',
+ 'm4/utimbuf.m4',
+ 'm4/utimens.m4',
+ 'm4/utimensat.m4',
+ 'm4/utimes.m4',
+ 'm4/vasnprintf.m4',
+ 'm4/vasprintf.m4',
+ 'm4/version-etc.m4',
+ 'm4/vsnprintf.m4',
+ 'm4/warn-on-use.m4',
+ 'm4/wchar_h.m4',
+ 'm4/wchar_t.m4',
+ 'm4/wcrtomb.m4',
+ 'm4/wctype_h.m4',
+ 'm4/wcwidth.m4',
+ 'm4/wint_t.m4',
+ 'm4/write.m4',
+ 'm4/xalloc.m4',
+ 'm4/xgetcwd.m4',
+ 'm4/xsize.m4',
+ 'm4/xstrndup.m4',
+ 'm4/xstrtol.m4',
+ 'm4/xvasprintf.m4',
+ 'acinclude.m4',
+ 'configure.ac'
+ ],
+ {
+ 'AM_XGETTEXT_OPTION_INIT' => 1,
+ 'gt_TYPE_SSIZE_T' => 1,
+ 'gl_PREREQ_TEMPNAME' => 1,
+ 'gl_PREREQ_STRCASECMP' => 1,
+ 'gl_AC_HEADER_STDINT_H' => 1,
+ 'gl_PREREQ_XALLOC' => 1,
+ 'gl_W' => 1,
+ 'gl_VERSION_ETC' => 1,
+ 'gl_FUNC_MKTIME' => 1,
+ 'gl_INTTYPES_PRI_SCN' => 1,
+ 'gl_PREREQ_TIME_R' => 1,
+ 'gl_GETOPT_SUBSTITUTE_HEADER' => 1,
+ '_m4_warn' => 1,
+ 'gl_TM_GMTOFF' => 1,
+ 'gl_PROMOTED_TYPE_MODE_T' => 1,
+ 'gl_XGETCWD' => 1,
+ 'AC_LIB_ARG_WITH' => 1,
+ 'gl_PREREQ_ASNPRINTF' => 1,
+ 'gl_FUNC_FNMATCH_GNU' => 1,
+ 'gl_FUNC_BTOWC' => 1,
+ 'gl_PREREQ_MBTOWC' => 1,
+ '_AM_AUTOCONF_VERSION' => 1,
+ 'gl_THREADLIB_EARLY_BODY' => 1,
+ 'gl_REPLACE_FCNTL' => 1,
+ 'AC_LIB_PREPARE_MULTILIB' => 1,
+ 'gl_FCNTL_H' => 1,
+ 'gl_FUNC_CLOSEDIR' => 1,
+ 'gltests_LIBSOURCES' => 1,
+ 'gl_FUNC_MKFIFOAT' => 1,
+ 'gt_AC_TYPE_INTMAX_T' => 1,
+ 'gl_PREREQ_MKDTEMP' => 1,
+ 'gl_HEADER_STRING_H_DEFAULTS' => 1,
+ 'gl_SYS_SOCKET_H_DEFAULTS' => 1,
+ 'gl_STAT_TIME' => 1,
+ 'gl_DOUBLE_EXPONENT_LOCATION' => 1,
+ 'gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK' => 1,
+ 'gl_FILE_NAME_CONCAT' => 1,
+ 'gl_FUNC_GETPAGESIZE' => 1,
+ 'gl_PREREQ_GETTIMEOFDAY' => 1,
+ 'gl_STDBOOL_H' => 1,
+ 'gl_FUNC_GETCWD_LGPL' => 1,
+ 'gl_CLOSE_STREAM' => 1,
+ 'gl_PREREQ_VASNPRINTF_DIRECTIVE_LS' => 1,
+ 'gl_PROG_AR_RANLIB' => 1,
+ 'AC_C_RESTRICT' => 1,
+ 'gl_PREREQ_IMAXTOSTR' => 1,
+ 'gl_FUNC_VSNPRINTF' => 1,
+ 'gl_EARLY' => 1,
+ 'gl_FUNC_MKFIFO' => 1,
+ 'gl_FUNC_MKTIME_INTERNAL' => 1,
+ 'AC_' => 1,
+ 'gl_REPLACE_FUNCS' => 1,
+ 'AM_ICONV' => 1,
+ 'gl_STDIO_H_DEFAULTS' => 1,
+ 'gl_FEATURES_H' => 1,
+ 'gl_MSVC_INVAL' => 1,
+ 'AM_GNU_GETTEXT' => 1,
+ 'gl_HEADER_STRINGS_H' => 1,
+ 'gl_PREREQ_SAFE_READ' => 1,
+ 'gl_PREREQ_MEMPCPY' => 1,
+ 'gl_PREREQ_BTOWC' => 1,
+ '_AC_AM_CONFIG_HEADER_HOOK' => 1,
+ 'gl_PREREQ_LOCK' => 1,
+ 'gl_MBITER' => 1,
+ 'gl_INTTOSTR' => 1,
+ 'gl_SIGNAL_MODULE_INDICATOR' => 1,
+ 'AM_MAKE_INCLUDE' => 1,
+ 'gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE' => 1,
+ 'gl_FUNC_ISWBLANK' => 1,
+ 'gl_INTEGER_TYPE_SUFFIX' => 1,
+ 'gt_INTTYPES_PRI' => 1,
+ 'gl_FUNC_FUTIMENS' => 1,
+ 'gl_FUNC_LINK' => 1,
+ 'gl_MODECHANGE' => 1,
+ 'gl_PREREQ_MEMCHR' => 1,
+ 'gl_PREREQ_GETOPT' => 1,
+ 'gl_REPLACE_GETOPT_ALWAYS' => 1,
+ 'gl_FUNC_SYMLINKAT' => 1,
+ 'gl_FUNC_GETDTABLESIZE' => 1,
+ 'gl_FUNC_WCRTOMB' => 1,
+ 'gl_FUNC_UTIMENSAT' => 1,
+ 'gl_UNLINKDIR' => 1,
+ 'gl_INTTYPES_H' => 1,
+ 'gl_FUNC_STAT' => 1,
+ 'gl_PREREQ_CHDIR_LONG' => 1,
+ 'gl_FUNC_STRNCASECMP' => 1,
+ 'gl_FUNC_FDOPENDIR' => 1,
+ 'gl_REPLACE_VSNPRINTF' => 1,
+ 'gl_PREREQ_XMALLOC' => 1,
+ 'gl_MODULE_INDICATOR_FOR_TESTS' => 1,
+ 'AC_FUNC_MBRTOWC' => 1,
+ 'gl_FUNC_CHOWN' => 1,
+ 'gl_DIRENT_H' => 1,
+ 'gl_FUNC_FCNTL' => 1,
+ 'm4_pattern_allow' => 1,
+ 'gl_PREREQ_FNMATCH' => 1,
+ 'gl_HEADER_STRING_H_BODY' => 1,
+ 'gl_WARN_ON_USE_PREPARE' => 1,
+ 'gl_FUNC_STRTOL' => 1,
+ 'gl_PREREQ_STRNLEN' => 1,
+ 'gl_FUNC_SETENV' => 1,
+ 'gl_STDLIB_H' => 1,
+ 'gl_PREREQ_MBRTOWC' => 1,
+ 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1,
+ 'gl_CHECK_TYPE_SIGSET_T' => 1,
+ 'gl_XVASPRINTF' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'gl_AC_TYPE_UINTMAX_T' => 1,
+ 'gl_SNPRINTF_RETVAL_C99' => 1,
+ 'gl_STAT_BIRTHTIME' => 1,
+ 'gl_FUNC_STRERROR_0' => 1,
+ 'gl_FUNC_SLEEP' => 1,
+ 'gl_COMMON' => 1,
+ 'gl_PREREQ_OFFTOSTR' => 1,
+ 'gl_SYS_TYPES_H' => 1,
+ 'gl_FUNC_GETOPT_GNU' => 1,
+ 'gl_PREREQ_STRDUP' => 1,
+ 'gl_LIBSOURCES' => 1,
+ 'PU_SYSTEM' => 1,
+ 'gl_FUNC_SETENV_SEPARATE' => 1,
+ 'gl_GLIBC21' => 1,
+ 'gl_WCHAR_MODULE_INDICATOR' => 1,
+ 'gl_PREREQ_VASPRINTF_H' => 1,
+ '_AM_SET_OPTIONS' => 1,
+ 'gl_FUNC_MBTOWC' => 1,
+ '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'gl_PREREQ_STRCHRNUL' => 1,
+ 'gl_FUNC_RAWMEMCHR' => 1,
+ 'gl_STDINT_INCLUDES' => 1,
+ 'gl_FUNC_LINKAT' => 1,
+ 'gl_STDALIGN_H' => 1,
+ 'AM_SET_DEPDIR' => 1,
+ 'AC_CHECK_HEADER_STDBOOL' => 1,
+ 'gl_PROG_CC_C99' => 1,
+ 'gl_CANONICALIZE_LGPL_SEPARATE' => 1,
+ 'gl_PREREQ_VASNPRINTF_PRECISION' => 1,
+ 'AC_DEFUN' => 1,
+ 'AM_PROG_MKDIR_P' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'gl_FUNC_GLIBC_UNLOCKED_IO' => 1,
+ 'gl_FUNC_GEN_TEMPNAME' => 1,
+ 'AM_MISSING_PROG' => 1,
+ 'gt_PRINTF_POSIX' => 1,
+ 'gl_FUNC_OPEN' => 1,
+ 'gl_INCLUDE_NEXT' => 1,
+ 'gl_FUNC_REALLOC_POSIX' => 1,
+ 'gl_PREREQ_DUP' => 1,
+ 'PU_RMT' => 1,
+ 'gl_STRCASE' => 1,
+ 'gl_PREREQ_SYS_H_WINSOCK2' => 1,
+ 'gl_ERROR' => 1,
+ 'gl_ASSERT_NO_GNULIB_TESTS' => 1,
+ 'gl_UNISTD_SAFER' => 1,
+ 'gl_MATH_MODULE_INDICATOR' => 1,
+ 'AC_USE_SYSTEM_EXTENSIONS' => 1,
+ 'AM_ICONV_LINK' => 1,
+ 'gl_GETTIME' => 1,
+ 'AC_LIB_HAVE_LINKFLAGS' => 1,
+ 'gl_HEADER_STRINGS_H_DEFAULTS' => 1,
+ 'gl_FUNC_STRDUP_POSIX' => 1,
+ '_AM_SET_OPTION' => 1,
+ 'gl_FUNC_READ' => 1,
+ 'gl_PATHMAX_SNIPPET_PREREQ' => 1,
+ 'gl_PREREQ_OPEN' => 1,
+ 'gl_LONG_DOUBLE_VS_DOUBLE' => 1,
+ 'gl_SAVE_CWD' => 1,
+ 'AM_STDBOOL_H' => 1,
+ 'gl_HEADER_STRING_H' => 1,
+ 'gl_BACKUPFILE' => 1,
+ 'gl_PREREQ_OPENAT' => 1,
+ 'gl_FUNC_FSTATAT' => 1,
+ 'gl_EEALLOC' => 1,
+ 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1,
+ 'gl_COMMON_BODY' => 1,
+ 'gl_PREREQ_ERROR' => 1,
+ 'gl_PREREQ_PRINTF_PARSE' => 1,
+ 'gl_STDIN_LARGE_OFFSET' => 1,
+ 'gl_MBRTOWC_NULL_ARG1' => 1,
+ 'gl_FILE_NAME_CONCAT_LGPL' => 1,
+ 'gt_INTDIV0' => 1,
+ 'include' => 1,
+ 'gl_STDIO_H' => 1,
+ 'gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE' => 1,
+ 'AM_POSTPROCESS_PO_MAKEFILE' => 1,
+ 'gl_PREREQ_UMAXTOSTR' => 1,
+ 'gl_AC_HEADER_INTTYPES_H' => 1,
+ 'gl_PATHMAX_SNIPPET' => 1,
+ 'gl_EEMALLOC' => 1,
+ 'AC_LIB_PREPARE_PREFIX' => 1,
+ 'gl_FUNC_READLINK_SEPARATE' => 1,
+ 'gl_FUNC_CHOWN_FOLLOWS_SYMLINK' => 1,
+ 'gl_SNPRINTF_PRESENCE' => 1,
+ 'gl_FUNC_VASNPRINTF' => 1,
+ 'gl_CONFIGMAKE_PREP' => 1,
+ 'gl_PREREQ_STRTOULL' => 1,
+ 'gl_PREREQ_SAFE_WRITE' => 1,
+ 'AM_GNU_GETTEXT_VERSION' => 1,
+ 'gl_FUNC_MEMPCPY' => 1,
+ 'gl_PREREQ_ASPRINTF' => 1,
+ 'gl_THREADLIB' => 1,
+ 'gl_PRINTF_INFINITE_LONG_DOUBLE' => 1,
+ 'gl_FUNC_MALLOC_GNU' => 1,
+ 'gt_CHECK_VAR_DECL' => 1,
+ 'gl_FUNC_OPENDIR' => 1,
+ 'gl_PREREQ_VASNPRINTF_DIRECTIVE_F' => 1,
+ 'gl_MODULE_INDICATOR_SET_VARIABLE' => 1,
+ 'gl_FUNC_FSEEKO' => 1,
+ 'gl_PREREQ_RPMATCH' => 1,
+ 'gl_FUNC_STRTOUL' => 1,
+ 'gl_MODULE_INDICATOR_SET_VARIABLE_AUX' => 1,
+ 'gl_THREADLIB_EARLY' => 1,
+ 'gl_PREREQ_XSTRNDUP' => 1,
+ 'gl_FUNC_FPENDING' => 1,
+ 'gl_SYS_TYPES_H_DEFAULTS' => 1,
+ 'AM_PATH_PROG_WITH_TEST' => 1,
+ 'gl_PREREQ_WCRTOMB' => 1,
+ 'gl_UNISTD_H_DEFAULTS' => 1,
+ 'gl_PREREQ_VSNPRINTF' => 1,
+ 'gl_GETTIMEOFDAY_REPLACE_LOCALTIME' => 1,
+ 'gl_LANGINFO_H_DEFAULTS' => 1,
+ 'gl_REPLACE_VASNPRINTF' => 1,
+ 'gl_PREREQ_VASPRINTF' => 1,
+ 'gl_SIGNAL_H_DEFAULTS' => 1,
+ 'gl_MSVC_NOTHROW' => 1,
+ 'AM_GNU_GETTEXT_NEED' => 1,
+ 'gl_HEADER_TIME_H' => 1,
+ 'gl_FUNC_MEMCHR' => 1,
+ 'gl_PREREQ_REGEX' => 1,
+ 'gl_FUNC_RPMATCH' => 1,
+ 'AC_PROG_MKDIR_P' => 1,
+ 'gl_PRINTF_DIRECTIVE_F' => 1,
+ 'gl_REPLACE_ERRNO_VALUE' => 1,
+ 'gl_VISIBILITY' => 1,
+ 'gt_LOCALE_FR' => 1,
+ 'gl_FUNC_GETCWD_NULL' => 1,
+ 'gl_PREREQ_READLINK' => 1,
+ 'gl_LIBUNISTRING_VERSION_CMP' => 1,
+ 'gl_FUNC_MBSRTOWCS' => 1,
+ 'gl_MBRTOWC_INCOMPLETE_STATE' => 1,
+ 'gl_INTTYPES_INCOMPLETE' => 1,
+ 'gl_MODULE_INDICATOR' => 1,
+ 'gl_DISABLE_THREADS' => 1,
+ 'gl_FUNC_SYMLINK' => 1,
+ 'gl_CHECK_MALLOC_POSIX' => 1,
+ 'gl_FUNC_MKDTEMP' => 1,
+ 'gl_STDLIB_H_DEFAULTS' => 1,
+ 'gl_PREREQ_SETENV' => 1,
+ 'gl_PREREQ_GETLINE' => 1,
+ 'gl_PREREQ_LSTAT' => 1,
+ 'AM_RUN_LOG' => 1,
+ 'gt_LOCALE_FR_UTF8' => 1,
+ 'AC_SYS_LARGEFILE' => 1,
+ 'gl_PREREQ_DIRFD' => 1,
+ 'gl_CLOSEOUT' => 1,
+ 'gl_PREREQ_UNSETENV' => 1,
+ 'gl_PRIV_SET' => 1,
+ 'gl_DIRENT_MODULE_INDICATOR' => 1,
+ 'gl_WCTYPE_MODULE_INDICATOR' => 1,
+ 'AC_LIB_PROG_LD' => 1,
+ 'gl_HEADER_TIME_H_BODY' => 1,
+ 'gl_LOCALCHARSET' => 1,
+ 'gl_SNPRINTF_DIRECTIVE_N' => 1,
+ 'gl_DIRENT_SAFER' => 1,
+ 'gl_FUNC_SNPRINTF' => 1,
+ 'gl_STDDEF_H_DEFAULTS' => 1,
+ 'gl_TIME_R' => 1,
+ 'gl_DOUBLE_SLASH_ROOT' => 1,
+ 'gl_PREREQ_PRINTF_ARGS' => 1,
+ 'gl_UNISTD_MODULE_INDICATOR' => 1,
+ 'gl_CHECK_TYPE_STRUCT_DIRENT_D_INO' => 1,
+ 'gl_SYS_STAT_MODULE_INDICATOR' => 1,
+ 'AM_SUBST_NOTMAKE' => 1,
+ 'gl_FUNC_MBSINIT' => 1,
+ 'gl_FUNC_STRNDUP' => 1,
+ 'AM_SANITY_CHECK' => 1,
+ 'gl_DIRNAME' => 1,
+ 'gl_PREREQ_FSTAT' => 1,
+ 'gl_CANONICALIZE_LGPL' => 1,
+ 'gl_CACHE_VAL_SILENT' => 1,
+ 'gl_FUNC_CHDIR_LONG' => 1,
+ 'gl_LIBOBJ' => 1,
+ 'gl_HEADER_SYS_TIME_H_DEFAULTS' => 1,
+ 'gl_PREREQ_MEMRCHR' => 1,
+ 'gl_WCHAR_H_DEFAULTS' => 1,
+ 'gl_UTIMENS' => 1,
+ 'gl_XALLOC' => 1,
+ 'gl_SYSEXITS' => 1,
+ 'gl_HEADER_SYS_SOCKET' => 1,
+ 'gt_INTL_MACOSX' => 1,
+ 'gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION' => 1,
+ 'gl_PREREQ_FILEBLOCKS' => 1,
+ 'gl_LIBUNISTRING_LIB_PREPARE' => 1,
+ '_AC_TYPE_LONG_LONG_SNIPPET' => 1,
+ 'gl_REGEX' => 1,
+ 'gl_INLINE' => 1,
+ 'gl_PREREQ_STRNCASECMP' => 1,
+ 'gl_FUNC_STRNLEN' => 1,
+ 'gl_ARGP' => 1,
+ 'gl_FUNC_LINK_FOLLOWS_SYMLINK' => 1,
+ 'gl_QUOTE' => 1,
+ 'gl_NEXT_HEADERS' => 1,
+ 'gl_FLOAT_H' => 1,
+ 'gl_REPLACE_VASPRINTF' => 1,
+ 'AC_LIB_PREFIX' => 1,
+ 'gl_FUNC_RAISE' => 1,
+ 'gl_STDLIB_MODULE_INDICATOR' => 1,
+ 'gl_PREREQ_VASNPRINTF_FLAG_GROUPING' => 1,
+ 'AC_DEFUN_ONCE' => 1,
+ 'gl_FUNC_UTIMES' => 1,
+ 'gl_PATHMAX' => 1,
+ 'gl_PRINTF_PRECISION' => 1,
+ 'gl_FUNC_LSEEK' => 1,
+ 'tar_PAXUTILS' => 1,
+ 'gl_SYS_TIME_MODULE_INDICATOR' => 1,
+ 'gl_PREREQ_GETCWD' => 1,
+ 'gl_MBRTOWC_SANITYCHECK' => 1,
+ 'AC_LIB_WITH_FINAL_PREFIX' => 1,
+ 'gl_STRINGS_MODULE_INDICATOR' => 1,
+ 'gt_TYPE_WINT_T' => 1,
+ 'gl_PREREQ_VASNPRINTF' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ 'gl_MBCHAR' => 1,
+ 'gl_PREREQ_DUP2' => 1,
+ 'gl_HEADER_SYS_STAT_H' => 1,
+ 'gl_INIT' => 1,
+ 'gl_MBRTOWC_NUL_RETVAL' => 1,
+ 'gl_FUNC_FSTAT' => 1,
+ 'm4_include' => 1,
+ 'gl_FUNC_READLINK' => 1,
+ 'gl_PREREQ_STPCPY' => 1,
+ 'gl_PRINTF_LONG_DOUBLE' => 1,
+ 'gl_INTTYPES_H_DEFAULTS' => 1,
+ 'gl_FUNC_NL_LANGINFO' => 1,
+ 'gl_FUNC_WCWIDTH' => 1,
+ 'gl_NEXT_HEADERS_INTERNAL' => 1,
+ 'gl_PREREQ_RAISE' => 1,
+ 'gl_PREREQ_VASNPRINTF_WITH_EXTRAS' => 1,
+ 'AM_MISSING_HAS_RUN' => 1,
+ 'AC_TYPE_LONG_LONG_INT' => 1,
+ 'gl_INTTYPES_MODULE_INDICATOR' => 1,
+ 'gl_CHECK_NEXT_HEADERS' => 1,
+ 'AC_LIB_PROG_LD_GNU' => 1,
+ 'gl_STDIO_MODULE_INDICATOR' => 1,
+ 'gl_STDINT_H' => 1,
+ 'gl_FUNC_LCHOWN' => 1,
+ 'gl_SYS_STAT_H_DEFAULTS' => 1,
+ 'gl_PREREQ_ALLOCA' => 1,
+ 'AC_COMPUTE_INT' => 1,
+ '_AM_IF_OPTION' => 1,
+ 'gl_PRINTF_SIZES_C99' => 1,
+ 'gl_CHECK_TYPES_SIGNED' => 1,
+ 'AM_SET_LEADING_DOT' => 1,
+ 'gl_SYS_SOCKET_MODULE_INDICATOR' => 1,
+ 'gl_VSNPRINTF_ZEROSIZE_C99' => 1,
+ 'gt_CHECK_DECL' => 1,
+ 'AC_LIB_LINKFLAGS' => 1,
+ 'gl_MBSTATE_T_BROKEN' => 1,
+ 'gl_EEREALLOC' => 1,
+ 'gl_FUNC_CLOSE' => 1,
+ 'gl_PREREQ_FCHDIR' => 1,
+ 'gl_SAVEDIR' => 1,
+ 'gl_PRINTF_ENOMEM' => 1,
+ 'gl_STDDEF_MODULE_INDICATOR' => 1,
+ 'gl_WCHAR_H_INLINE_OK' => 1,
+ 'gl_FUNC_LSTAT' => 1,
+ 'gl_STRING_MODULE_INDICATOR' => 1,
+ 'gt_GLIBC2' => 1,
+ 'gl_LOCK' => 1,
+ 'gt_TYPE_WCHAR_T' => 1,
+ 'gl_PREREQ_GETDELIM' => 1,
+ 'gl_DIRENT_H_DEFAULTS' => 1,
+ 'gl_PREREQ_MBSRTOWCS' => 1,
+ 'gl_WCHAR_H' => 1,
+ 'gl_FUNC_ALLOCA' => 1,
+ 'gl_WCTYPE_H' => 1,
+ 'gltests_LIBOBJ' => 1,
+ 'gl_FUNC_DIRFD' => 1,
+ 'gl_FILEBLOCKS' => 1,
+ 'AM_AUX_DIR_EXPAND' => 1,
+ 'gl_HEADER_SYS_TIME_H_BODY' => 1,
+ 'gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR' => 1,
+ 'AC_LIB_LINKFLAGS_FROM_LIBS' => 1,
+ 'gl_FUNC_READLINKAT' => 1,
+ 'gl_FUNC_STRCASECMP' => 1,
+ 'AC_LIB_LINKFLAGS_BODY' => 1,
+ 'gl_GETOPT_CHECK_HEADERS' => 1,
+ 'gl_FUNC_FNMATCH_POSIX' => 1,
+ 'gl_PRINTF_DIRECTIVE_LS' => 1,
+ '_AM_MANGLE_OPTION' => 1,
+ 'AC_TYPE_UNSIGNED_LONG_LONG_INT' => 1,
+ 'gl_PRINTF_FLAG_GROUPING' => 1,
+ 'gl_FUNC_STRCHRNUL' => 1,
+ 'gl_PREREQ_STRTOUMAX' => 1,
+ 'gl_HEADER_STRINGS_H_BODY' => 1,
+ 'gl_FUNC_GETTIMEOFDAY' => 1,
+ 'gl_FUNC_FSEEK' => 1,
+ 'gl_FUNC_STRTOULL' => 1,
+ 'gl_SIZE_MAX' => 1,
+ 'AC_LIB_RPATH' => 1,
+ 'gl_PRINTF_DIRECTIVE_A' => 1,
+ 'gl_REPLACE_SNPRINTF' => 1,
+ 'gl_HEADER_SYS_TIME_H' => 1,
+ 'gl_LOCK_EARLY' => 1,
+ 'AM_PROG_INSTALL_STRIP' => 1,
+ 'gl_MULTIARCH' => 1,
+ 'gl_PREREQ_STAT' => 1,
+ '_AM_PROG_TAR' => 1,
+ 'gl_HEADER_ERRNO_H' => 1,
+ 'gl_SNPRINTF_TRUNCATION_C99' => 1,
+ 'gl_XSTRNDUP' => 1,
+ 'gl_FUNC_FCHDIR' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ 'gl_FUNC_MKNOD' => 1,
+ 'gl_00GNULIB' => 1,
+ 'gl_ENVIRON' => 1,
+ 'gl_FUNC_RMDIR' => 1,
+ 'gl_FUNC_MEMRCHR' => 1,
+ 'AU_DEFUN' => 1,
+ 'gl_THREADLIB_BODY' => 1,
+ 'gl_MBRTOWC_RETVAL' => 1,
+ 'gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST' => 1,
+ 'gt_TYPE_INTMAX_T' => 1,
+ 'gl_FCNTL_MODULE_INDICATOR' => 1,
+ 'AM_ICONV_LINKFLAGS_BODY' => 1,
+ 'gltests_REPLACE_FUNCS' => 1,
+ 'gl_FUNC_GETOPT_POSIX' => 1,
+ 'gl_C_COMPOUND_LITERALS' => 1,
+ 'gl_PREREQ_VASNPRINTF_FLAG_ZERO' => 1,
+ 'gl_TIMESPEC' => 1,
+ 'gl_FUNC_OPENAT' => 1,
+ 'gl_FUNC_VASPRINTF' => 1,
+ 'gl_MBRTOWC_NULL_ARG2' => 1,
+ 'gl_FUNC_GETCWD' => 1,
+ 'gl_PARSE_DATETIME' => 1,
+ 'gl_FUNC_GETTIMEOFDAY_CLOBBER' => 1,
+ 'gl_PREREQ_INTTOSTR' => 1,
+ 'gl_FUNC_GETCWD_PATH_MAX' => 1,
+ 'gl_FUNC_MBRTOWC' => 1,
+ 'gl_PRINTF_FLAG_ZERO' => 1,
+ 'gl_FUNC_GETDELIM' => 1,
+ 'gl_STDINT_BITSIZEOF' => 1,
+ 'gl_FUNC_UNSETENV' => 1,
+ 'gl_BIGENDIAN' => 1,
+ 'gl_LIBUNISTRING_MODULE' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'gt_LOCALE_JA' => 1,
+ 'gl_FUNC_RENAME' => 1,
+ 'AC_LIB_APPENDTOVAR' => 1,
+ 'gl_CHECK_TYPE_STRUCT_TIMESPEC' => 1,
+ 'gl_FUNC_DUP2' => 1,
+ 'gl_PREREQ_VASNPRINTF_LONG_DOUBLE' => 1,
+ 'gl_AC_TYPE_INTMAX_T' => 1,
+ 'AC_TYPE_MBSTATE_T' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'AM_LANGINFO_CODESET' => 1,
+ 'gl_PREREQ_MKTIME' => 1,
+ 'gl_FUNC_WRITE' => 1,
+ 'gl_WCTYPE_H_DEFAULTS' => 1,
+ 'AM_PROG_INSTALL_SH' => 1,
+ 'gl_FUNC_REALPATH_WORKS' => 1,
+ 'gl_STDDEF_H' => 1,
+ 'gl_FUNC_MMAP_ANON' => 1,
+ 'GL_NOCRASH' => 1,
+ 'gl_LIBUNISTRING_LIBHEADER' => 1,
+ 'm4_pattern_forbid' => 1,
+ 'gl_FUNC_GETCWD_SIGNATURE' => 1,
+ 'AM_PO_SUBDIRS' => 1,
+ 'gl_TIME_MODULE_INDICATOR' => 1,
+ 'gl_DIRNAME_LGPL' => 1,
+ 'gl_FUNC_READDIR' => 1,
+ 'gl_FUNC_REALLOC_GNU' => 1,
+ 'gl_FUNC_GETLINE' => 1,
+ 'gl_FCNTL_H_DEFAULTS' => 1,
+ 'gl_FUNC_MALLOC_POSIX' => 1,
+ 'gl_FUNC_REWINDDIR' => 1,
+ 'gl_PREREQ_SNPRINTF' => 1,
+ 'gl_BISON' => 1,
+ 'AM_NLS' => 1,
+ 'gl_FUNC_STRERROR' => 1,
+ 'gl_LANGINFO_MODULE_INDICATOR' => 1,
+ 'gl_PREREQ_FPENDING' => 1,
+ 'gl_PREREQ_WRITE' => 1,
+ 'gt_INTL_SUBDIR_CORE' => 1,
+ 'gl_FILE_LIST' => 1,
+ 'gl_MATH_H_DEFAULTS' => 1,
+ 'gl_PREREQ_GETDTABLESIZE' => 1,
+ 'gl_USE_SYSTEM_EXTENSIONS' => 1,
+ 'gl_CHECK_TYPE_STRUCT_UTIMBUF' => 1,
+ 'gl_FUNC_GETCWD_ABORT_BUG' => 1,
+ 'AM_DEP_TRACK' => 1,
+ 'gl_XSTRTOL' => 1,
+ 'gl_FUNC_STPCPY' => 1,
+ 'gl_PRINTF_POSITIONS' => 1,
+ 'gl_STDINT_TYPE_PROPERTIES' => 1,
+ 'gl_FUNC_STRDUP' => 1,
+ 'gl_PREREQ_VASNPRINTF_DIRECTIVE_A' => 1,
+ 'gl_FCNTL_O_FLAGS' => 1,
+ 'gl_MBSRTOWCS_WORKS' => 1,
+ 'gl_PREREQ_UINTTOSTR' => 1,
+ 'gl_PRINTF_DIRECTIVE_N' => 1,
+ '_AM_DEPENDENCIES' => 1,
+ 'gl_PREREQ_MBSINIT' => 1,
+ 'gl_FUNC_DUP' => 1,
+ 'gl_PREREQ_RAWMEMCHR' => 1,
+ 'gl_XSIZE' => 1,
+ 'gl_MALLOCA' => 1,
+ 'AM_INTL_SUBDIR' => 1,
+ 'gl_PREREQ_READ' => 1,
+ 'gl_SIGNAL_H' => 1,
+ 'gl_PRINTF_FLAG_LEFTADJUST' => 1,
+ 'gl_HEADER_TIME_H_DEFAULTS' => 1,
+ 'gl_GETOPT_IFELSE' => 1,
+ 'gl_QUOTEARG' => 1,
+ 'gl_FUNC_CANONICALIZE_FILENAME_MODE' => 1,
+ 'TAR_COMPR_PROGRAM' => 1,
+ 'PU_RTAPELIB' => 1,
+ 'gl_PREREQ_SYS_H_SOCKET' => 1,
+ 'gl_UNISTD_H' => 1,
+ 'gl_SNPRINTF_SIZE1' => 1,
+ 'gl_MATH_H' => 1,
+ 'gl_FUNC_RENAMEAT' => 1,
+ 'gt_LOCALE_ZH_CN' => 1,
+ 'gl_CLOCK_TIME' => 1,
+ 'gl_PREREQ_VASNPRINTF_ENOMEM' => 1,
+ 'gl_TEST_FCHDIR' => 1,
+ 'AC_LIB_FROMPACKAGE' => 1,
+ 'gt_LC_MESSAGES' => 1,
+ 'gl_LANGINFO_H' => 1,
+ 'AM_XGETTEXT_OPTION' => 1,
+ 'gl_ASSERT_NO_GNULIB_POSIXCHECK' => 1,
+ 'gl_FUNC_STRTOUMAX' => 1,
+ 'gl_HUMAN' => 1,
+ 'gl_PRINTF_INFINITE' => 1,
+ 'gl_STDARG_H' => 1
+ }
+ ], 'Autom4te::Request' ),
+ bless( [
+ '1',
+ 1,
+ [
+ '/usr/share/autoconf'
+ ],
+ [
+ '/usr/share/autoconf/autoconf/autoconf.m4f',
+ 'aclocal.m4',
+ 'configure.ac'
+ ],
+ {
+ '_LT_AC_TAGCONFIG' => 1,
+ 'AM_PROG_F77_C_O' => 1,
+ 'AC_INIT' => 1,
+ 'm4_pattern_forbid' => 1,
+ '_AM_COND_IF' => 1,
+ 'AC_CANONICAL_TARGET' => 1,
+ 'AC_SUBST' => 1,
+ 'AC_CONFIG_LIBOBJ_DIR' => 1,
+ 'AC_FC_SRCEXT' => 1,
+ 'AC_CANONICAL_HOST' => 1,
+ 'AC_PROG_LIBTOOL' => 1,
+ 'AM_INIT_AUTOMAKE' => 1,
+ 'AM_PATH_GUILE' => 1,
+ 'AC_CONFIG_SUBDIRS' => 1,
+ 'AM_AUTOMAKE_VERSION' => 1,
+ 'LT_CONFIG_LTDL_DIR' => 1,
+ 'AC_REQUIRE_AUX_FILE' => 1,
+ 'AC_CONFIG_LINKS' => 1,
+ 'm4_sinclude' => 1,
+ 'LT_SUPPORTED_TAG' => 1,
+ 'AM_MAINTAINER_MODE' => 1,
+ 'AM_NLS' => 1,
+ 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1,
+ 'AM_MAKEFILE_INCLUDE' => 1,
+ '_m4_warn' => 1,
+ 'AM_PROG_CXX_C_O' => 1,
+ '_AM_COND_ENDIF' => 1,
+ '_AM_MAKEFILE_INCLUDE' => 1,
+ 'AM_ENABLE_MULTILIB' => 1,
+ 'AM_SILENT_RULES' => 1,
+ 'AM_PROG_MOC' => 1,
+ 'AC_CONFIG_FILES' => 1,
+ 'include' => 1,
+ 'LT_INIT' => 1,
+ 'AM_PROG_AR' => 1,
+ 'AM_GNU_GETTEXT' => 1,
+ 'AC_LIBSOURCE' => 1,
+ 'AM_PROG_FC_C_O' => 1,
+ 'AC_CANONICAL_BUILD' => 1,
+ 'AC_FC_FREEFORM' => 1,
+ 'AH_OUTPUT' => 1,
+ '_AM_SUBST_NOTMAKE' => 1,
+ 'AC_CONFIG_AUX_DIR' => 1,
+ 'sinclude' => 1,
+ 'AM_PROG_CC_C_O' => 1,
+ 'm4_pattern_allow' => 1,
+ 'AM_XGETTEXT_OPTION' => 1,
+ 'AC_CANONICAL_SYSTEM' => 1,
+ 'AM_CONDITIONAL' => 1,
+ 'AC_CONFIG_HEADERS' => 1,
+ 'AC_DEFINE_TRACE_LITERAL' => 1,
+ 'AM_POT_TOOLS' => 1,
+ 'm4_include' => 1,
+ '_AM_COND_ELSE' => 1,
+ 'AC_SUBST_TRACE' => 1
+ }
+ ], 'Autom4te::Request' )
+ );
+
diff --git a/autom4te.cache/traces.0 b/autom4te.cache/traces.0
new file mode 100644
index 00000000..a12f7b2d
--- /dev/null
+++ b/autom4te.cache/traces.0
@@ -0,0 +1,21023 @@
+m4trace:/usr/share/aclocal/glibc2.m4:10: -1- AC_DEFUN([gt_GLIBC2], [
+ AC_CACHE_CHECK([whether we are using the GNU C Library 2 or newer],
+ [ac_cv_gnu_library_2],
+ [AC_EGREP_CPP([Lucky GNU user],
+ [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2)
+ Lucky GNU user
+ #endif
+#endif
+ ],
+ [ac_cv_gnu_library_2=yes],
+ [ac_cv_gnu_library_2=no])
+ ]
+ )
+ AC_SUBST([GLIBC2])
+ GLIBC2="$ac_cv_gnu_library_2"
+
+])
+m4trace:/usr/share/aclocal/intdiv0.m4:9: -1- AC_DEFUN([gt_INTDIV0], [
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+
+ AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
+ gt_cv_int_divbyzero_sigfpe,
+ [
+ gt_cv_int_divbyzero_sigfpe=
+changequote(,)dnl
+ case "$host_os" in
+ macos* | darwin[6-9]* | darwin[1-9][0-9]*)
+ # On MacOS X 10.2 or newer, just assume the same as when cross-
+ # compiling. If we were to perform the real test, 1 Crash Report
+ # dialog window would pop up.
+ case "$host_cpu" in
+ i[34567]86 | x86_64)
+ gt_cv_int_divbyzero_sigfpe="guessing yes" ;;
+ esac
+ ;;
+ esac
+changequote([,])dnl
+ if test -z "$gt_cv_int_divbyzero_sigfpe"; then
+ AC_TRY_RUN([
+#include <stdlib.h>
+#include <signal.h>
+
+static void
+sigfpe_handler (int sig)
+{
+ /* Exit with code 0 if SIGFPE, with code 1 if any other signal. */
+ exit (sig != SIGFPE);
+}
+
+int x = 1;
+int y = 0;
+int z;
+int nan;
+
+int main ()
+{
+ signal (SIGFPE, sigfpe_handler);
+/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP. */
+#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
+ signal (SIGTRAP, sigfpe_handler);
+#endif
+/* Linux/SPARC yields signal SIGILL. */
+#if defined (__sparc__) && defined (__linux__)
+ signal (SIGILL, sigfpe_handler);
+#endif
+
+ z = x / y;
+ nan = y / y;
+ exit (1);
+}
+], [gt_cv_int_divbyzero_sigfpe=yes], [gt_cv_int_divbyzero_sigfpe=no],
+ [
+ # Guess based on the CPU.
+changequote(,)dnl
+ case "$host_cpu" in
+ alpha* | i[34567]86 | x86_64 | m68k | s390*)
+ gt_cv_int_divbyzero_sigfpe="guessing yes";;
+ *)
+ gt_cv_int_divbyzero_sigfpe="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ fi
+ ])
+ case "$gt_cv_int_divbyzero_sigfpe" in
+ *yes) value=1;;
+ *) value=0;;
+ esac
+ AC_DEFINE_UNQUOTED([INTDIV0_RAISES_SIGFPE], [$value],
+ [Define if integer division by zero raises signal SIGFPE.])
+])
+m4trace:/usr/share/aclocal/lcmessage.m4:22: -1- AC_DEFUN([gt_LC_MESSAGES], [
+ AC_CACHE_CHECK([for LC_MESSAGES], [gt_cv_val_LC_MESSAGES],
+ [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
+ [gt_cv_val_LC_MESSAGES=yes], [gt_cv_val_LC_MESSAGES=no])])
+ if test $gt_cv_val_LC_MESSAGES = yes; then
+ AC_DEFINE([HAVE_LC_MESSAGES], [1],
+ [Define if your <locale.h> file defines LC_MESSAGES.])
+ fi
+])
+m4trace:/usr/share/aclocal/lock.m4:9: -1- AC_DEFUN([gl_LOCK], [
+ AC_REQUIRE([gl_THREADLIB])
+ if test "$gl_threads_api" = posix; then
+ # OSF/1 4.0 and MacOS X 10.1 lack the pthread_rwlock_t type and the
+ # pthread_rwlock_* functions.
+ AC_CHECK_TYPE([pthread_rwlock_t],
+ [AC_DEFINE([HAVE_PTHREAD_RWLOCK], [1],
+ [Define if the POSIX multithreading library has read/write locks.])],
+ [],
+ [#include <pthread.h>])
+ # glibc defines PTHREAD_MUTEX_RECURSIVE as enum, not as a macro.
+ AC_TRY_COMPILE([#include <pthread.h>],
+ [#if __FreeBSD__ == 4
+error "No, in FreeBSD 4.0 recursive mutexes actually don't work."
+#else
+int x = (int)PTHREAD_MUTEX_RECURSIVE;
+return !x;
+#endif],
+ [AC_DEFINE([HAVE_PTHREAD_MUTEX_RECURSIVE], [1],
+ [Define if the <pthread.h> defines PTHREAD_MUTEX_RECURSIVE.])])
+ fi
+ gl_PREREQ_LOCK
+])
+m4trace:/usr/share/aclocal/lock.m4:35: -1- AC_DEFUN([gl_PREREQ_LOCK], [
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:/usr/share/aclocal/printf-posix.m4:11: -1- AC_DEFUN([gt_PRINTF_POSIX], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings],
+ gt_cv_func_printf_posix,
+ [
+ AC_TRY_RUN([
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+ dollar expansion (possibly an autoconf bug). */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, "55 33") != 0);
+}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no,
+ [
+ AC_EGREP_CPP([notposix], [
+#if defined __NetBSD__ || defined __BEOS__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
+ notposix
+#endif
+ ],
+ [gt_cv_func_printf_posix="guessing no"],
+ [gt_cv_func_printf_posix="guessing yes"])
+ ])
+ ])
+ case $gt_cv_func_printf_posix in
+ *yes)
+ AC_DEFINE([HAVE_POSIX_PRINTF], [1],
+ [Define if your printf() function supports format strings with positions.])
+ ;;
+ esac
+])
+m4trace:/usr/share/aclocal/uintmax_t.m4:14: -1- AC_DEFUN([gl_AC_TYPE_UINTMAX_T], [
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+ test $ac_cv_type_unsigned_long_long_int = yes \
+ && ac_type='unsigned long long' \
+ || ac_type='unsigned long'
+ AC_DEFINE_UNQUOTED([uintmax_t], [$ac_type],
+ [Define to unsigned long or unsigned long long
+ if <stdint.h> and <inttypes.h> don't define.])
+ else
+ AC_DEFINE([HAVE_UINTMAX_T], [1],
+ [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
+ fi
+])
+m4trace:/usr/share/aclocal/visibility.m4:23: -1- AC_DEFUN([gl_VISIBILITY], [
+ AC_REQUIRE([AC_PROG_CC])
+ CFLAG_VISIBILITY=
+ HAVE_VISIBILITY=0
+ if test -n "$GCC"; then
+ dnl First, check whether -Werror can be added to the command line, or
+ dnl whether it leads to an error because of some other option that the
+ dnl user has put into $CC $CFLAGS $CPPFLAGS.
+ AC_MSG_CHECKING([whether the -Werror option is usable])
+ AC_CACHE_VAL([gl_cv_cc_vis_werror], [
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -Werror"
+ AC_TRY_COMPILE([], [],
+ [gl_cv_cc_vis_werror=yes],
+ [gl_cv_cc_vis_werror=no])
+ CFLAGS="$gl_save_CFLAGS"])
+ AC_MSG_RESULT([$gl_cv_cc_vis_werror])
+ dnl Now check whether visibility declarations are supported.
+ AC_MSG_CHECKING([for simple visibility declarations])
+ AC_CACHE_VAL([gl_cv_cc_visibility], [
+ gl_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -fvisibility=hidden"
+ dnl We use the option -Werror and a function dummyfunc, because on some
+ dnl platforms (Cygwin 1.7) the use of -fvisibility triggers a warning
+ dnl "visibility attribute not supported in this configuration; ignored"
+ dnl at the first function definition in every compilation unit, and we
+ dnl don't want to use the option in this case.
+ if test $gl_cv_cc_vis_werror = yes; then
+ CFLAGS="$CFLAGS -Werror"
+ fi
+ AC_TRY_COMPILE(
+ [extern __attribute__((__visibility__("hidden"))) int hiddenvar;
+ extern __attribute__((__visibility__("default"))) int exportedvar;
+ extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
+ extern __attribute__((__visibility__("default"))) int exportedfunc (void);
+ void dummyfunc (void) {}],
+ [],
+ [gl_cv_cc_visibility=yes],
+ [gl_cv_cc_visibility=no])
+ CFLAGS="$gl_save_CFLAGS"])
+ AC_MSG_RESULT([$gl_cv_cc_visibility])
+ if test $gl_cv_cc_visibility = yes; then
+ CFLAG_VISIBILITY="-fvisibility=hidden"
+ HAVE_VISIBILITY=1
+ fi
+ fi
+ AC_SUBST([CFLAG_VISIBILITY])
+ AC_SUBST([HAVE_VISIBILITY])
+ AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
+ [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
+])
+m4trace:/usr/share/aclocal-1.11/amversion.m4:14: -1- AC_DEFUN([AM_AUTOMAKE_VERSION], [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.11.1], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+m4trace:/usr/share/aclocal-1.11/amversion.m4:33: -1- AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.11.1])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+m4trace:/usr/share/aclocal-1.11/auxdir.m4:47: -1- AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly.
+AC_PREREQ([2.50])dnl
+# expand $ac_aux_dir to an absolute path
+am_aux_dir=`cd $ac_aux_dir && pwd`
+])
+m4trace:/usr/share/aclocal-1.11/cond.m4:15: -1- AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ(2.52)dnl
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+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='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+m4trace:/usr/share/aclocal-1.11/depend.m4:28: -1- AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], UPC, [depcc="$UPC" am_compiler_list=],
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ 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
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ 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
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ 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
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $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 $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
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+m4trace:/usr/share/aclocal-1.11/depend.m4:163: -1- AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+m4trace:/usr/share/aclocal-1.11/depend.m4:171: -1- AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE(dependency-tracking,
+[ --disable-dependency-tracking speeds up one-time build
+ --enable-dependency-tracking do not reject slow dependency extractors])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+])
+m4trace:/usr/share/aclocal-1.11/depout.m4:14: -1- AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{
+ # 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
+}
+])
+m4trace:/usr/share/aclocal-1.11/depout.m4:75: -1- AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+])
+m4trace:/usr/share/aclocal-1.11/init.m4:26: -1- AC_DEFUN([AM_INIT_AUTOMAKE], [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
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+AM_MISSING_PROG(AUTOCONF, autoconf)
+AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+AM_MISSING_PROG(AUTOHEADER, autoheader)
+AM_MISSING_PROG(MAKEINFO, makeinfo)
+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.
+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([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_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
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_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
+])
+m4trace:/usr/share/aclocal-1.11/init.m4:126: -1- AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+m4trace:/usr/share/aclocal-1.11/install-sh.m4:11: -1- AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+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)])
+m4trace:/usr/share/aclocal-1.11/lead-dot.m4:12: -1- AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+m4trace:/usr/share/aclocal-1.11/make.m4:14: -1- AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+AC_MSG_CHECKING([for style of include used by $am_make])
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# 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
+ 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])
+AC_MSG_RESULT([$_am_result])
+rm -f confinc confmf
+])
+m4trace:/usr/share/aclocal-1.11/minuso.m4:14: -1- AC_DEFUN([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC_C_O])dnl
+AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+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.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+dnl Make sure AC_PROG_CC is never called again, or it will override our
+dnl setting of CC.
+m4_define([AC_PROG_CC],
+ [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])])
+])
+m4trace:/usr/share/aclocal-1.11/missing.m4:14: -1- AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+m4trace:/usr/share/aclocal-1.11/missing.m4:24: -1- AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+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=
+ AC_MSG_WARN([`missing' script is too old or missing])
+fi
+])
+m4trace:/usr/share/aclocal-1.11/mkdirp.m4:11: -1- AC_DEFUN([AM_PROG_MKDIR_P], [AC_PREREQ([2.60])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P,
+dnl while keeping a definition of mkdir_p for backward compatibility.
+dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile.
+dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of
+dnl Makefile.ins that do not define MKDIR_P, so we do our own
+dnl adjustment using top_builddir (which is defined more often than
+dnl MKDIR_P).
+AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl
+case $mkdir_p in
+ [[\\/$]]* | ?:[[\\/]]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+])
+m4trace:/usr/share/aclocal-1.11/options.m4:13: -1- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+m4trace:/usr/share/aclocal-1.11/options.m4:19: -1- AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+m4trace:/usr/share/aclocal-1.11/options.m4:25: -1- AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+m4trace:/usr/share/aclocal-1.11/options.m4:31: -1- AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+m4trace:/usr/share/aclocal-1.11/runlog.m4:12: -1- AC_DEFUN([AM_RUN_LOG], [{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+m4trace:/usr/share/aclocal-1.11/sanity.m4:14: -1- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane])
+# 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`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # 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".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+alias in your environment])
+ fi
+
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT(yes)])
+m4trace:/usr/share/aclocal-1.11/silent.m4:14: -1- 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
+])
+m4trace:/usr/share/aclocal-1.11/strip.m4:17: -1- AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# 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.
+dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+m4trace:/usr/share/aclocal-1.11/substnot.m4:14: -1- AC_DEFUN([_AM_SUBST_NOTMAKE])
+m4trace:/usr/share/aclocal-1.11/substnot.m4:19: -1- AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+m4trace:/usr/share/aclocal-1.11/tar.m4:24: -1- AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+])
+m4trace:m4/00gnulib.m4:30: -1- AC_DEFUN([gl_00GNULIB])
+m4trace:m4/alloca.m4:8: -1- AC_DEFUN([gl_FUNC_ALLOCA], [
+ AC_REQUIRE([AC_FUNC_ALLOCA])
+ if test $ac_cv_func_alloca_works = no; then
+ gl_PREREQ_ALLOCA
+ fi
+
+ # Define an additional variable used in the Makefile substitution.
+ if test $ac_cv_working_alloca_h = yes; then
+ AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [
+ AC_EGREP_CPP([Need own alloca], [
+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
+ Need own alloca
+#endif
+ ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no])
+ ])
+ if test $gl_cv_rpl_alloca = yes; then
+ dnl OK, alloca can be implemented through a compiler built-in.
+ AC_DEFINE([HAVE_ALLOCA], [1],
+ [Define to 1 if you have 'alloca' after including <alloca.h>,
+ a header that may be supplied by this distribution.])
+ ALLOCA_H=alloca.h
+ else
+ dnl alloca exists as a library function, i.e. it is slow and probably
+ dnl a memory leak. Don't define HAVE_ALLOCA in this case.
+ ALLOCA_H=
+ fi
+ else
+ ALLOCA_H=alloca.h
+ fi
+ AC_SUBST([ALLOCA_H])
+ AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"])
+])
+m4trace:m4/alloca.m4:44: -1- AC_DEFUN([gl_PREREQ_ALLOCA], [:])
+m4trace:m4/argp.m4:7: -1- AC_DEFUN([gl_ARGP], [
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([AC_C_RESTRICT])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ 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],
+ [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],
+ [Define to 1 to add extern declaration of program_invocation_short_name to argp.h])],
+ [[#include <errno.h>]])
+
+ # Check if program_invocation_name and program_invocation_short_name
+ # 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.
+ AC_MSG_CHECKING([whether program_invocation_name is defined])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <argp.h>]],
+ [[program_invocation_name = "test";]])],
+ [AC_DEFINE([HAVE_PROGRAM_INVOCATION_NAME], [1],
+ [Define if program_invocation_name is defined])
+ AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])])
+
+ AC_MSG_CHECKING([whether program_invocation_short_name is defined])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <argp.h>]],
+ [[program_invocation_short_name = "test";]])],
+ [AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
+ [Define if program_invocation_short_name is defined])
+ AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])])
+
+ AC_CHECK_DECLS_ONCE([clearerr_unlocked])
+ AC_CHECK_DECLS_ONCE([feof_unlocked])
+ AC_CHECK_DECLS_ONCE([ferror_unlocked])
+ AC_CHECK_DECLS_ONCE([fflush_unlocked])
+ AC_CHECK_DECLS_ONCE([fgets_unlocked])
+ AC_CHECK_DECLS_ONCE([fputc_unlocked])
+ AC_CHECK_DECLS_ONCE([fputs_unlocked])
+ AC_CHECK_DECLS_ONCE([fread_unlocked])
+ AC_CHECK_DECLS_ONCE([fwrite_unlocked])
+ AC_CHECK_DECLS_ONCE([getc_unlocked])
+ AC_CHECK_DECLS_ONCE([getchar_unlocked])
+ AC_CHECK_DECLS_ONCE([putc_unlocked])
+ AC_CHECK_DECLS_ONCE([putchar_unlocked])
+ AC_CHECK_FUNCS_ONCE([flockfile funlockfile])
+ AC_CHECK_HEADERS_ONCE([features.h linewrap.h])
+])
+m4trace:m4/argp.m4:65: -1- AC_DEFUN([gl_REPLACE_GETOPT_ALWAYS], [])
+m4trace:m4/backupfile.m4:8: -1- AC_DEFUN([gl_BACKUPFILE], [
+ AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
+ AC_REQUIRE([AC_SYS_LONG_FILE_NAMES])
+ AC_CHECK_FUNCS_ONCE([pathconf])
+])
+m4trace:m4/bison.m4:8: -1- AC_DEFUN([gl_BISON], [
+ # parse-datetime.y works with bison only.
+ : ${YACC='bison -y'}
+dnl
+dnl Declaring YACC & YFLAGS precious will not be necessary after GNULIB
+dnl requires an Autoconf greater than 2.59c, but it will probably still be
+dnl useful to override the description of YACC in the --help output, re
+dnl parse-datetime.y assuming 'bison -y'.
+ AC_ARG_VAR([YACC],
+[The "Yet Another C Compiler" implementation to use. Defaults to 'bison -y'.
+Values other than 'bison -y' will most likely break on most systems.])dnl
+ AC_ARG_VAR([YFLAGS],
+[YFLAGS contains the list arguments that will be passed by default to Bison.
+This script will default YFLAGS to the empty string to avoid a default value of
+'-d' given by some make applications.])dnl
+])
+m4trace:m4/btowc.m4:7: -1- 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
+ else
+
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gt_LOCALE_FR])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl Cygwin 1.7.2 btowc('\0') is WEOF, not 0.
+ AC_CACHE_CHECK([whether btowc(0) is correct],
+ [gl_cv_func_btowc_nul],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <string.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>
+int main ()
+{
+ if (btowc ('\0') != 0)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_btowc_nul=yes],
+ [gl_cv_func_btowc_nul=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess no on Cygwin.
+ cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_nul="guessing yes" ;;
+ esac
+changequote([,])dnl
+ ])
+ ])
+
+ dnl IRIX 6.5 btowc(EOF) is 0xFF, not WEOF.
+ AC_CACHE_CHECK([whether btowc(EOF) is correct],
+ [gl_cv_func_btowc_eof],
+ [
+ dnl Initial guess, used when cross-compiling or when no suitable locale
+ dnl is present.
+changequote(,)dnl
+ case "$host_os" in
+ # Guess no on IRIX.
+ irix*) gl_cv_func_btowc_eof="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_eof="guessing yes" ;;
+ esac
+changequote([,])dnl
+ if test $LOCALE_FR != none; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ if (btowc (EOF) != WEOF)
+ return 1;
+ }
+ return 0;
+}]])],
+ [gl_cv_func_btowc_eof=yes],
+ [gl_cv_func_btowc_eof=no],
+ [:])
+ fi
+ ])
+
+ case "$gl_cv_func_btowc_nul" in
+ *yes) ;;
+ *) REPLACE_BTOWC=1 ;;
+ esac
+ case "$gl_cv_func_btowc_eof" in
+ *yes) ;;
+ *) REPLACE_BTOWC=1 ;;
+ esac
+ fi
+])
+m4trace:m4/btowc.m4:114: -1- AC_DEFUN([gl_PREREQ_BTOWC], [
+ :
+])
+m4trace:m4/canonicalize.m4:11: -1- AC_DEFUN([gl_FUNC_CANONICALIZE_FILENAME_MODE], [
+ 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
+])
+m4trace:m4/canonicalize.m4:25: -1- AC_DEFUN([gl_CANONICALIZE_LGPL], [
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_REQUIRE([gl_CANONICALIZE_LGPL_SEPARATE])
+ if test $ac_cv_func_canonicalize_file_name = no; then
+ HAVE_CANONICALIZE_FILE_NAME=0
+ 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
+ REPLACE_CANONICALIZE_FILE_NAME=1
+ REPLACE_REALPATH=1
+ fi
+])
+m4trace:m4/canonicalize.m4:44: -1- 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])
+])
+m4trace:m4/canonicalize.m4:56: -1- 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
+ mkdir conftest.d
+ AC_RUN_IFELSE([
+ AC_LANG_PROGRAM([[
+ ]GL_NOCRASH[
+ #include <stdlib.h>
+ #include <string.h>
+ ]], [[
+ int result = 0;
+ {
+ char *name = realpath ("conftest.a", NULL);
+ if (!(name && *name == '/'))
+ result |= 1;
+ }
+ {
+ char *name = realpath ("conftest.b/../conftest.a", NULL);
+ if (name != NULL)
+ result |= 2;
+ }
+ {
+ char *name = realpath ("conftest.a/", NULL);
+ if (name != NULL)
+ result |= 4;
+ }
+ {
+ char *name1 = realpath (".", NULL);
+ char *name2 = realpath ("conftest.d//./..", NULL);
+ if (strcmp (name1, name2) != 0)
+ result |= 8;
+ }
+ return result;
+ ]])
+ ], [gl_cv_func_realpath_works=yes], [gl_cv_func_realpath_works=no],
+ [gl_cv_func_realpath_works="guessing no"])
+ rm -rf conftest.a conftest.d
+ ])
+ 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
+])
+m4trace:m4/chdir-long.m4:16: -1- AC_DEFUN([gl_FUNC_CHDIR_LONG], [
+ AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+ AC_CACHE_CHECK([whether this system has an arbitrary file name length limit],
+ gl_cv_have_arbitrary_file_name_length_limit,
+ [AC_EGREP_CPP([have_arbitrary_file_name_length_limit],
+ gl_PATHMAX_SNIPPET[
+#ifdef PATH_MAX
+have_arbitrary_file_name_length_limit
+#endif],
+ gl_cv_have_arbitrary_file_name_length_limit=yes,
+ gl_cv_have_arbitrary_file_name_length_limit=no)])
+])
+m4trace:m4/chdir-long.m4:30: -1- AC_DEFUN([gl_PREREQ_CHDIR_LONG], [
+ AC_REQUIRE([AC_C_INLINE])
+ :
+])
+m4trace:m4/chown.m4:17: -1- 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])
+
+ dnl mingw lacks chown altogether.
+ if test $ac_cv_func_chown = no; then
+ HAVE_CHOWN=0
+ else
+ dnl Some old systems treated chown like lchown.
+ if test $gl_cv_func_chown_follows_symlink = no; then
+ REPLACE_CHOWN=1
+ fi
+
+ dnl Some old systems tried to use uid/gid -1 literally.
+ 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
+ fi
+
+ dnl Solaris 9 ignores trailing slash.
+ dnl FreeBSD 7.2 mishandles trailing slash on symlinks.
+ dnl Likewise for AIX 7.1.
+ AC_CACHE_CHECK([whether chown honors trailing slash],
+ [gl_cv_func_chown_slash_works],
+ [touch conftest.file && rm -f conftest.link
+ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+]], [[ if (symlink ("conftest.file", "conftest.link")) return 1;
+ if (chown ("conftest.link/", getuid (), getgid ()) == 0) return 2;
+ ]])],
+ [gl_cv_func_chown_slash_works=yes],
+ [gl_cv_func_chown_slash_works=no],
+ [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
+ 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
+ fi
+ fi
+])
+m4trace:m4/chown.m4:94: -1- AC_DEFUN_ONCE([gl_FUNC_CHOWN_FOLLOWS_SYMLINK], [
+ AC_CACHE_CHECK(
+ [whether chown dereferences symlinks],
+ [gl_cv_func_chown_follows_symlink],
+ [
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+ int
+ main ()
+ {
+ int result = 0;
+ char const *dangling_symlink = "conftest.dangle";
+
+ unlink (dangling_symlink);
+ if (symlink ("conftest.no-such", dangling_symlink))
+ abort ();
+
+ /* Exit successfully on a conforming system,
+ i.e., where chown must fail with ENOENT. */
+ if (chown (dangling_symlink, getuid (), getgid ()) == 0)
+ result |= 1;
+ if (errno != ENOENT)
+ result |= 2;
+ return result;
+ }
+ ]])],
+ [gl_cv_func_chown_follows_symlink=yes],
+ [gl_cv_func_chown_follows_symlink=no],
+ [gl_cv_func_chown_follows_symlink=yes]
+ )
+ ]
+ )
+
+ if test $gl_cv_func_chown_follows_symlink = no; then
+ AC_DEFINE([CHOWN_MODIFIES_SYMLINK], [1],
+ [Define if chown modifies symlinks.])
+ fi
+])
+m4trace:m4/clock_time.m4:12: -1- AC_DEFUN([gl_CLOCK_TIME], [
+ dnl Persuade glibc and Solaris <time.h> to declare these functions.
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
+ # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
+
+ # 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_CHECK_FUNCS([clock_gettime clock_settime])
+ LIBS=$gl_saved_libs
+])
+m4trace:m4/close-stream.m4:8: -1- AC_DEFUN([gl_CLOSE_STREAM], [
+ :
+])
+m4trace:m4/close.m4:7: -1- AC_DEFUN([gl_FUNC_CLOSE], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_CLOSE=1
+ fi
+ 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.
+ REPLACE_CLOSE=1
+ fi
+ ])
+ dnl Replace close() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ if test $REPLACE_CLOSE = 0; then
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_CLOSE=1
+ fi
+ fi
+ ])
+])
+m4trace:m4/closedir.m4:7: -1- AC_DEFUN([gl_FUNC_CLOSEDIR], [
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_FUNCS([closedir])
+ if test $ac_cv_func_closedir = no; then
+ HAVE_CLOSEDIR=0
+ fi
+ dnl Replace closedir() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_CLOSEDIR = 1; then
+ REPLACE_CLOSEDIR=1
+ fi
+ fi
+ ])
+])
+m4trace:m4/closeout.m4:9: -1- AC_DEFUN([gl_CLOSEOUT], [
+ :
+])
+m4trace:m4/codeset.m4:9: -1- AC_DEFUN([AM_LANGINFO_CODESET], [
+ AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <langinfo.h>]],
+ [[char* cs = nl_langinfo(CODESET); return !cs;]])],
+ [am_cv_langinfo_codeset=yes],
+ [am_cv_langinfo_codeset=no])
+ ])
+ if test $am_cv_langinfo_codeset = yes; then
+ AC_DEFINE([HAVE_LANGINFO_CODESET], [1],
+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+ fi
+])
+m4trace:m4/configmake.m4:12: -1- AC_DEFUN([gl_CONFIGMAKE_PREP], [
+ dnl Technically, datadir should default to datarootdir. But if
+ dnl autoconf is too old to provide datarootdir, then reversing the
+ dnl definition is a reasonable compromise. Only AC_SUBST a variable
+ dnl if it was not already defined earlier by autoconf.
+ if test "x$datarootdir" = x; then
+ AC_SUBST([datarootdir], ['${datadir}'])
+ fi
+ dnl Copy the approach used in autoconf 2.60.
+ if test "x$docdir" = x; then
+ AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
+ ['${datarootdir}/doc/${PACKAGE_TARNAME}'],
+ ['${datarootdir}/doc/${PACKAGE}'])])
+ fi
+ dnl The remaining variables missing from autoconf 2.59 are easier.
+ if test "x$htmldir" = x; then
+ AC_SUBST([htmldir], ['${docdir}'])
+ fi
+ if test "x$dvidir" = x; then
+ AC_SUBST([dvidir], ['${docdir}'])
+ fi
+ if test "x$pdfdir" = x; then
+ AC_SUBST([pdfdir], ['${docdir}'])
+ fi
+ if test "x$psdir" = x; then
+ AC_SUBST([psdir], ['${docdir}'])
+ fi
+ if test "x$lispdir" = x; then
+ AC_SUBST([lispdir], ['${datarootdir}/emacs/site-lisp'])
+ fi
+ if test "x$localedir" = x; then
+ AC_SUBST([localedir], ['${datarootdir}/locale'])
+ fi
+
+ dnl Automake 1.9.6 only lacks pkglibexecdir; and since 1.11 merely
+ dnl provides it without AC_SUBST, this blind use of AC_SUBST is safe.
+ AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}'])
+])
+m4trace:m4/d-ino.m4:15: -1- 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,
+ [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);
+ if (! e)
+ return 2;
+ if (stat (e->d_name, &st) != 0)
+ return 3;
+ if (e->d_ino != st.st_ino)
+ return 4;
+ return 0;
+ ]])],
+ [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.])
+ fi
+
+])
+m4trace:m4/dirent-safer.m4:7: -1- AC_DEFUN([gl_DIRENT_SAFER], [
+ AC_CHECK_FUNCS_ONCE([fdopendir])
+])
+m4trace:m4/dirent_h.m4:9: -1- AC_DEFUN([gl_DIRENT_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_DIRENT_H_DEFAULTS])
+
+ dnl <dirent.h> is always overridden, because of GNULIB_POSIXCHECK.
+ gl_CHECK_NEXT_HEADERS([dirent.h])
+ if test $ac_cv_header_dirent_h = yes; then
+ HAVE_DIRENT_H=1
+ else
+ HAVE_DIRENT_H=0
+ fi
+ AC_SUBST([HAVE_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 closedir dirfd fdopendir opendir readdir rewinddir scandir])
+])
+m4trace:m4/dirent_h.m4:30: -1- 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/dirent_h.m4:39: -1- AC_DEFUN([gl_DIRENT_H_DEFAULTS], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR
+ GNULIB_OPENDIR=0; AC_SUBST([GNULIB_OPENDIR])
+ GNULIB_READDIR=0; AC_SUBST([GNULIB_READDIR])
+ GNULIB_REWINDDIR=0; AC_SUBST([GNULIB_REWINDDIR])
+ GNULIB_CLOSEDIR=0; AC_SUBST([GNULIB_CLOSEDIR])
+ 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_OPENDIR=1; AC_SUBST([HAVE_OPENDIR])
+ HAVE_READDIR=1; AC_SUBST([HAVE_READDIR])
+ HAVE_REWINDDIR=1; AC_SUBST([HAVE_REWINDDIR])
+ HAVE_CLOSEDIR=1; AC_SUBST([HAVE_CLOSEDIR])
+ HAVE_DECL_DIRFD=1; AC_SUBST([HAVE_DECL_DIRFD])
+ HAVE_DECL_FDOPENDIR=1;AC_SUBST([HAVE_DECL_FDOPENDIR])
+ HAVE_FDOPENDIR=1; AC_SUBST([HAVE_FDOPENDIR])
+ HAVE_SCANDIR=1; AC_SUBST([HAVE_SCANDIR])
+ HAVE_ALPHASORT=1; AC_SUBST([HAVE_ALPHASORT])
+ REPLACE_OPENDIR=0; AC_SUBST([REPLACE_OPENDIR])
+ REPLACE_CLOSEDIR=0; AC_SUBST([REPLACE_CLOSEDIR])
+ REPLACE_DIRFD=0; AC_SUBST([REPLACE_DIRFD])
+ REPLACE_FDOPENDIR=0; AC_SUBST([REPLACE_FDOPENDIR])
+])
+m4trace:m4/dirfd.m4:12: -1- AC_DEFUN([gl_FUNC_DIRFD], [
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ dnl Persuade glibc <dirent.h> to declare dirfd().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_FUNCS([dirfd])
+ AC_CHECK_DECLS([dirfd], , ,
+ [[#include <sys/types.h>
+ #include <dirent.h>]])
+ if test $ac_cv_have_decl_dirfd = no; then
+ HAVE_DECL_DIRFD=0
+ fi
+
+ AC_CACHE_CHECK([whether dirfd is a macro],
+ gl_cv_func_dirfd_macro,
+ [AC_EGREP_CPP([dirent_header_defines_dirfd], [
+#include <sys/types.h>
+#include <dirent.h>
+#ifdef dirfd
+ dirent_header_defines_dirfd
+#endif],
+ gl_cv_func_dirfd_macro=yes,
+ gl_cv_func_dirfd_macro=no)])
+
+ # Use the replacement only if we have no function or macro with that name.
+ if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+ if test $ac_cv_have_decl_dirfd = yes; then
+ # If the system declares dirfd already, let's declare rpl_dirfd instead.
+ REPLACE_DIRFD=1
+ fi
+ fi
+])
+m4trace:m4/dirfd.m4:48: -1- AC_DEFUN([gl_PREREQ_DIRFD], [
+ AC_CACHE_CHECK([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
+
+ 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
+ ]
+ )
+ 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])
+ fi
+ AH_VERBATIM([DIR_TO_FD],
+ [#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
+#endif
+])
+])
+m4trace:m4/dirname.m4:7: -1- AC_DEFUN([gl_DIRNAME], [
+ AC_REQUIRE([gl_DIRNAME_LGPL])
+])
+m4trace:m4/dirname.m4:12: -1- AC_DEFUN([gl_DIRNAME_LGPL], [
+ dnl Prerequisites of lib/dirname.h.
+ AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
+
+ dnl No prerequisites of lib/basename-lgpl.c, lib/dirname-lgpl.c,
+ dnl lib/stripslash.c.
+])
+m4trace:m4/double-slash-root.m4:7: -1- 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
+ 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])
+ if test "$gl_cv_double_slash_root" = yes; then
+ AC_DEFINE([DOUBLE_SLASH_IS_DISTINCT_ROOT], [1],
+ [Define to 1 if // is a file system root distinct from /.])
+ fi
+])
+m4trace:m4/dup.m4:7: -1- AC_DEFUN([gl_FUNC_DUP], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_DUP=1
+ fi
+ dnl Replace dup() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_DUP=1
+ fi
+ ])
+])
+m4trace:m4/dup.m4:25: -1- AC_DEFUN([gl_PREREQ_DUP], [
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:m4/dup2.m4:7: -1- AC_DEFUN([gl_FUNC_DUP2], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ m4_ifdef([gl_FUNC_DUP2_OBSOLETE], [
+ AC_CHECK_FUNCS_ONCE([dup2])
+ if test $ac_cv_func_dup2 = no; then
+ HAVE_DUP2=0
+ fi
+ ], [
+ AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.])
+ ])
+ if test $HAVE_DUP2 = 1; then
+ AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works],
+ [AC_RUN_IFELSE([
+ AC_LANG_PROGRAM([[#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>]],
+ [int result = 0;
+#ifdef FD_CLOEXEC
+ if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
+ result |= 1;
+#endif
+ if (dup2 (1, 1) == 0)
+ result |= 2;
+#ifdef FD_CLOEXEC
+ if (fcntl (1, F_GETFD) != FD_CLOEXEC)
+ result |= 4;
+#endif
+ close (0);
+ if (dup2 (0, 0) != -1)
+ result |= 8;
+ /* Many gnulib modules require POSIX conformance of EBADF. */
+ if (dup2 (2, 1000000) == -1 && errno != EBADF)
+ result |= 16;
+ return result;
+ ])
+ ],
+ [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;;
+ haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
+ gl_cv_func_dup2_works=no;;
+ *) gl_cv_func_dup2_works=yes;;
+ esac])
+ ])
+ if test "$gl_cv_func_dup2_works" = no; then
+ REPLACE_DUP2=1
+ fi
+ fi
+ dnl Replace dup2() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_DUP2 = 1; then
+ REPLACE_DUP2=1
+ fi
+ fi
+ ])
+])
+m4trace:m4/dup2.m4:78: -1- AC_DEFUN([gl_PREREQ_DUP2], [])
+m4trace:m4/eealloc.m4:7: -1- AC_DEFUN([gl_EEALLOC], [
+ AC_REQUIRE([gl_EEMALLOC])
+ AC_REQUIRE([gl_EEREALLOC])
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:m4/eealloc.m4:14: -1- AC_DEFUN([gl_EEMALLOC], [
+ _AC_FUNC_MALLOC_IF(
+ [gl_cv_func_malloc_0_nonnull=1],
+ [gl_cv_func_malloc_0_nonnull=0])
+ AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], [$gl_cv_func_malloc_0_nonnull],
+ [If malloc(0) is != NULL, define this to 1. Otherwise define this
+ to 0.])
+])
+m4trace:m4/eealloc.m4:24: -1- AC_DEFUN([gl_EEREALLOC], [
+ _AC_FUNC_REALLOC_IF(
+ [gl_cv_func_realloc_0_nonnull=1],
+ [gl_cv_func_realloc_0_nonnull=0])
+ AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], [$gl_cv_func_realloc_0_nonnull],
+ [If realloc(NULL,0) is != NULL, define this to 1. Otherwise define this
+ to 0.])
+])
+m4trace:m4/environ.m4:7: -1- AC_DEFUN_ONCE([gl_ENVIRON], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ dnl Persuade glibc <unistd.h> to declare environ.
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ gt_CHECK_VAR_DECL(
+ [#if HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+ /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */
+ #include <stdlib.h>
+ ],
+ [environ])
+ if test $gt_cv_var_environ_declaration != yes; then
+ HAVE_DECL_ENVIRON=0
+ fi
+])
+m4trace:m4/environ.m4:29: -1- AC_DEFUN([gt_CHECK_VAR_DECL], [
+ define([gt_cv_var], [gt_cv_var_]$2[_declaration])
+ AC_MSG_CHECKING([if $2 is properly declared])
+ AC_CACHE_VAL([gt_cv_var], [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[$1
+ extern struct { int foo; } $2;]],
+ [[$2.foo = 1;]])],
+ [gt_cv_var=no],
+ [gt_cv_var=yes])])
+ AC_MSG_RESULT([$gt_cv_var])
+ if test $gt_cv_var = yes; then
+ AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1,
+ [Define if you have the declaration of $2.])
+ fi
+ undefine([gt_cv_var])
+])
+m4trace:m4/errno_h.m4:7: -1- AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [
+ AC_EGREP_CPP([booboo],[
+#include <errno.h>
+#if !defined ENOMSG
+booboo
+#endif
+#if !defined EIDRM
+booboo
+#endif
+#if !defined ENOLINK
+booboo
+#endif
+#if !defined EPROTO
+booboo
+#endif
+#if !defined EMULTIHOP
+booboo
+#endif
+#if !defined EBADMSG
+booboo
+#endif
+#if !defined EOVERFLOW
+booboo
+#endif
+#if !defined ENOTSUP
+booboo
+#endif
+#if !defined ENETRESET
+booboo
+#endif
+#if !defined ECONNABORTED
+booboo
+#endif
+#if !defined ESTALE
+booboo
+#endif
+#if !defined EDQUOT
+booboo
+#endif
+#if !defined ECANCELED
+booboo
+#endif
+ ],
+ [gl_cv_header_errno_h_complete=no],
+ [gl_cv_header_errno_h_complete=yes])
+ ])
+ if test $gl_cv_header_errno_h_complete = yes; then
+ ERRNO_H=''
+ else
+ gl_NEXT_HEADERS([errno.h])
+ ERRNO_H='errno.h'
+ fi
+ AC_SUBST([ERRNO_H])
+ AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"])
+ gl_REPLACE_ERRNO_VALUE([EMULTIHOP])
+ gl_REPLACE_ERRNO_VALUE([ENOLINK])
+ gl_REPLACE_ERRNO_VALUE([EOVERFLOW])
+])
+m4trace:m4/errno_h.m4:75: -1- AC_DEFUN([gl_REPLACE_ERRNO_VALUE], [
+ if test -n "$ERRNO_H"; then
+ AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [
+ AC_EGREP_CPP([yes],[
+#include <errno.h>
+#ifdef ]$1[
+yes
+#endif
+ ],
+ [gl_cv_header_errno_h_]$1[=yes],
+ [gl_cv_header_errno_h_]$1[=no])
+ if test $gl_cv_header_errno_h_]$1[ = no; then
+ AC_EGREP_CPP([yes],[
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+#ifdef ]$1[
+yes
+#endif
+ ], [gl_cv_header_errno_h_]$1[=hidden])
+ if test $gl_cv_header_errno_h_]$1[ = hidden; then
+ dnl The macro exists but is hidden.
+ dnl Define it to the same value.
+ AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+])
+ fi
+ fi
+ ])
+ case $gl_cv_header_errno_h_$1 in
+ yes | no)
+ $1_HIDDEN=0; $1_VALUE=
+ ;;
+ *)
+ $1_HIDDEN=1; $1_VALUE="$gl_cv_header_errno_h_$1"
+ ;;
+ esac
+ AC_SUBST($1[_HIDDEN])
+ AC_SUBST($1[_VALUE])
+ fi
+])
+m4trace:m4/error.m4:9: -1- AC_DEFUN([gl_ERROR], [
+ dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer
+ dnl maintained in Autoconf and because it invokes AC_LIBOBJ.
+ AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <error.h>]],
+ [[error_at_line (0, 0, "", 0, "an error occurred");]])],
+ [ac_cv_lib_error_at_line=yes],
+ [ac_cv_lib_error_at_line=no])])
+])
+m4trace:m4/error.m4:23: -1- AC_DEFUN([gl_PREREQ_ERROR], [
+ AC_REQUIRE([AC_FUNC_STRERROR_R])
+ AC_REQUIRE([AC_C_INLINE])
+ :
+])
+m4trace:m4/exponentd.m4:6: -1- AC_DEFUN([gl_DOUBLE_EXPONENT_LOCATION], [
+ AC_CACHE_CHECK([where to find the exponent in a 'double'],
+ [gl_cv_cc_double_expbit0],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
+{
+ memory_double m;
+ size_t i;
+ /* Clear it first, in case sizeof (double) < sizeof (memory_double). */
+ memset (&m, 0, sizeof (memory_double));
+ m.value = x;
+ for (i = 0; i < NWORDS; i++)
+ {
+ ored_words[i] |= m.word[i];
+ anded_words[i] &= m.word[i];
+ }
+}
+int main ()
+{
+ size_t j;
+ FILE *fp = fopen ("conftest.out", "w");
+ if (fp == NULL)
+ return 1;
+ for (j = 0; j < NWORDS; j++)
+ anded_words[j] = ~ (unsigned int) 0;
+ add_to_ored_words (0.25);
+ add_to_ored_words (0.5);
+ add_to_ored_words (1.0);
+ add_to_ored_words (2.0);
+ add_to_ored_words (4.0);
+ /* Remove bits that are common (e.g. if representation of the first mantissa
+ bit is explicit). */
+ for (j = 0; j < NWORDS; j++)
+ ored_words[j] &= ~anded_words[j];
+ /* Now find the nonzero word. */
+ for (j = 0; j < NWORDS; j++)
+ if (ored_words[j] != 0)
+ break;
+ if (j < NWORDS)
+ {
+ size_t i;
+ for (i = j + 1; i < NWORDS; i++)
+ if (ored_words[i] != 0)
+ {
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+ }
+ for (i = 0; ; i++)
+ if ((ored_words[j] >> i) & 1)
+ {
+ fprintf (fp, "word %d bit %d", (int) j, (int) i);
+ return (fclose (fp) != 0);
+ }
+ }
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+}
+ ]])],
+ [gl_cv_cc_double_expbit0=`cat conftest.out`],
+ [gl_cv_cc_double_expbit0="unknown"],
+ [
+ dnl On ARM, there are two 'double' floating-point formats, used by
+ dnl different sets of instructions: The older FPA instructions assume
+ dnl that they are stored in big-endian word order, while the words
+ dnl (like integer types) are stored in little-endian byte order.
+ dnl The newer VFP instructions assume little-endian order consistenly.
+ AC_EGREP_CPP([mixed_endianness], [
+#if defined arm || defined __arm || defined __arm__
+ mixed_endianness
+#endif
+ ],
+ [gl_cv_cc_double_expbit0="unknown"],
+ [
+ pushdef([AC_MSG_CHECKING],[:])dnl
+ pushdef([AC_MSG_RESULT],[:])dnl
+ pushdef([AC_MSG_RESULT_UNQUOTED],[:])dnl
+ AC_C_BIGENDIAN(
+ [gl_cv_cc_double_expbit0="word 0 bit 20"],
+ [gl_cv_cc_double_expbit0="word 1 bit 20"],
+ [gl_cv_cc_double_expbit0="unknown"])
+ popdef([AC_MSG_RESULT_UNQUOTED])dnl
+ popdef([AC_MSG_RESULT])dnl
+ popdef([AC_MSG_CHECKING])dnl
+ ])
+ ])
+ rm -f conftest.out
+ ])
+ case "$gl_cv_cc_double_expbit0" in
+ word*bit*)
+ word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+ bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
+ AC_DEFINE_UNQUOTED([DBL_EXPBIT0_WORD], [$word],
+ [Define as the word index where to find the exponent of 'double'.])
+ AC_DEFINE_UNQUOTED([DBL_EXPBIT0_BIT], [$bit],
+ [Define as the bit index in the word where to find bit 0 of the exponent of 'double'.])
+ ;;
+ esac
+])
+m4trace:m4/extensions.m4:37: -1- AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS], [AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
+AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
+
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
+ if test "$MINIX" = yes; then
+ AC_DEFINE([_POSIX_SOURCE], [1],
+ [Define to 1 if you need to in order for 'stat' and other
+ things to work.])
+ AC_DEFINE([_POSIX_1_SOURCE], [2],
+ [Define to 2 if the system does not provide POSIX.1 features
+ except with this defined.])
+ AC_DEFINE([_MINIX], [1],
+ [Define to 1 if on MINIX.])
+ fi
+
+ dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500,
+ dnl regardless of whether the flags -Ae or _D_HPUX_SOURCE=1 are already
+ dnl provided.
+ case "$host_os" in
+ hpux*)
+ AC_DEFINE([_XOPEN_SOURCE], [500],
+ [Define to 500 only on HP-UX.])
+ ;;
+ esac
+
+ AH_VERBATIM([__EXTENSIONS__],
+[/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable general extensions on MacOS X. */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+])
+ AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
+ [ac_cv_safe_to_define___extensions__],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[
+# 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 &&
+ AC_DEFINE([__EXTENSIONS__])
+ AC_DEFINE([_ALL_SOURCE])
+ AC_DEFINE([_DARWIN_C_SOURCE])
+ AC_DEFINE([_GNU_SOURCE])
+ AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
+ AC_DEFINE([_TANDEM_SOURCE])
+])
+m4trace:m4/extensions.m4:112: -1- AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS], [
+ dnl Require this macro before AC_USE_SYSTEM_EXTENSIONS.
+ dnl gnulib does not need it. But if it gets required by third-party macros
+ dnl after AC_USE_SYSTEM_EXTENSIONS is required, autoconf 2.62..2.63 emit a
+ dnl warning: "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS".
+ dnl Note: We can do this only for one of the macros AC_AIX, AC_GNU_SOURCE,
+ dnl AC_MINIX. If people still use AC_AIX or AC_MINIX, they are out of luck.
+ AC_REQUIRE([AC_GNU_SOURCE])
+
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+])
+m4trace:m4/fchdir.m4:7: -1- AC_DEFUN([gl_FUNC_FCHDIR], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_DECLS_ONCE([fchdir])
+ if test $ac_cv_have_decl_fchdir = no; then
+ HAVE_DECL_FCHDIR=0
+ fi
+
+ AC_REQUIRE([gl_TEST_FCHDIR])
+ if test $HAVE_FCHDIR = 0; then
+ AC_LIBOBJ([fchdir])
+ gl_PREREQ_FCHDIR
+ 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.
+ 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.])
+ fi
+ fi
+])
+m4trace:m4/fchdir.m4:41: -1- AC_DEFUN([gl_TEST_FCHDIR], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([fchdir])
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+])
+m4trace:m4/fchdir.m4:51: -1- AC_DEFUN([gl_PREREQ_FCHDIR], [:])
+m4trace:m4/fcntl-o.m4:12: -1- AC_DEFUN([gl_FCNTL_O_FLAGS], [
+ dnl Persuade glibc <fcntl.h> to define O_NOATIME and O_NOFOLLOW.
+ dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes
+ dnl AC_GNU_SOURCE.
+ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
+ [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
+ [AC_REQUIRE([AC_GNU_SOURCE])])
+
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CHECK_FUNCS_ONCE([symlink])
+ 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>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <io.h>
+ # include <stdlib.h>
+ # defined sleep(n) _sleep ((n) * 1000)
+ #endif
+ #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 result = !constants;
+ #if HAVE_SYMLINK
+ {
+ static char const sym[] = "conftest.sym";
+ if (symlink (".", sym) != 0)
+ result |= 2;
+ else
+ {
+ int fd = open (sym, O_RDONLY | O_NOFOLLOW);
+ if (fd >= 0)
+ {
+ close (fd);
+ result |= 4;
+ }
+ }
+ unlink (sym);
+ }
+ #endif
+ {
+ static char const file[] = "confdefs.h";
+ int fd = open (file, O_RDONLY | O_NOATIME);
+ if (fd < 0)
+ result |= 8;
+ else
+ {
+ struct stat st0;
+ if (fstat (fd, &st0) != 0)
+ result |= 16;
+ else
+ {
+ char c;
+ sleep (1);
+ if (read (fd, &c, 1) != 1)
+ result |= 24;
+ else
+ {
+ if (close (fd) != 0)
+ result |= 32;
+ else
+ {
+ struct stat st1;
+ if (stat (file, &st1) != 0)
+ result |= 40;
+ else
+ if (st0.st_atime != st1.st_atime)
+ result |= 64;
+ }
+ }
+ }
+ }
+ }
+ return result;]])],
+ [gl_cv_header_working_fcntl_h=yes],
+ [case $? in #(
+ 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
+ 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
+ 68) 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.])
+])
+m4trace:m4/fcntl.m4:16: -1- 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
+ dnl haiku alpha 2 F_DUPFD has wrong errno
+ 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>
+#include <errno.h>
+]], [[int result = 0;
+ if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
+ if (errno != EINVAL) result |= 2;
+ return result;
+ ]])],
+ [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
+ dnl Replace fcntl() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ gl_REPLACE_FCNTL
+ fi
+ ])
+])
+m4trace:m4/fcntl.m4:86: -1- 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
+])
+m4trace:m4/fcntl_h.m4:10: -1- AC_DEFUN([gl_FCNTL_H], [
+ AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+ AC_REQUIRE([gl_FCNTL_O_FLAGS])
+ gl_NEXT_HEADERS([fcntl.h])
+
+ dnl Ensure the type pid_t gets defined.
+ AC_REQUIRE([AC_TYPE_PID_T])
+
+ dnl Ensure the type mode_t gets defined.
+ AC_REQUIRE([AC_TYPE_MODE_T])
+
+ 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])
+])
+m4trace:m4/fcntl_h.m4:29: -1- 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/fcntl_h.m4:38: -1- AC_DEFUN([gl_FCNTL_H_DEFAULTS], [
+ GNULIB_FCNTL=0; AC_SUBST([GNULIB_FCNTL])
+ GNULIB_NONBLOCKING=0; AC_SUBST([GNULIB_NONBLOCKING])
+ GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN])
+ GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ 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])
+])
+m4trace:m4/fdopendir.m4:11: -1- AC_DEFUN([gl_FUNC_FDOPENDIR], [
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ dnl FreeBSD 7.3 has the function, but failed to declare it.
+ AC_CHECK_DECLS([fdopendir], [], [HAVE_DECL_FDOPENDIR=0], [[
+#include <dirent.h>
+ ]])
+ AC_CHECK_FUNCS_ONCE([fdopendir])
+ if test $ac_cv_func_fdopendir = no; then
+ 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>
+#include <unistd.h>
+#if !HAVE_DECL_FDOPENDIR
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
+#endif
+]], [int result = 0;
+ int fd = open ("conftest.c", O_RDONLY);
+ if (fd < 0) result |= 1;
+ if (fdopendir (fd)) result |= 2;
+ if (close (fd)) result |= 4;
+ return result;])],
+ [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
+ fi
+ fi
+])
+m4trace:m4/fileblocks.m4:7: -1- AC_DEFUN([gl_FILEBLOCKS], [
+ m4_pushdef([AC_LIBOBJ], [:])
+ dnl Note: AC_STRUCT_ST_BLOCKS does AC_LIBOBJ([fileblocks]).
+ AC_STRUCT_ST_BLOCKS
+ m4_popdef([AC_LIBOBJ])
+ dnl The stat-size module depends on this one and also assumes that
+ dnl HAVE_STRUCT_STAT_ST_BLOCKS is correctly defined. So if you
+ dnl remove the call above, please make sure that this does not
+ dnl introduce a bug into lib/stat-size.h.
+])
+m4trace:m4/fileblocks.m4:20: -1- AC_DEFUN([gl_PREREQ_FILEBLOCKS], [
+ AC_CHECK_HEADERS_ONCE([sys/param.h])
+ :
+])
+m4trace:m4/filenamecat.m4:7: -1- AC_DEFUN([gl_FILE_NAME_CONCAT], [
+ AC_REQUIRE([gl_FILE_NAME_CONCAT_LGPL])
+])
+m4trace:m4/filenamecat.m4:12: -1- AC_DEFUN([gl_FILE_NAME_CONCAT_LGPL], [
+ dnl Prerequisites of lib/filenamecat-lgpl.c.
+ AC_CHECK_FUNCS_ONCE([mempcpy])
+])
+m4trace:m4/float_h.m4:7: -1- AC_DEFUN([gl_FLOAT_H], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ FLOAT_H=
+ REPLACE_FLOAT_LDBL=0
+ case "$host_os" in
+ aix* | beos* | openbsd* | mirbsd* | irix*)
+ FLOAT_H=float.h
+ ;;
+ freebsd*)
+ case "$host_cpu" in
+changequote(,)dnl
+ i[34567]86 )
+changequote([,])dnl
+ FLOAT_H=float.h
+ ;;
+ x86_64 )
+ # On x86_64 systems, the C compiler may still be generating
+ # 32-bit code.
+ AC_EGREP_CPP([yes],
+ [#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+ yes
+ #endif],
+ [],
+ [FLOAT_H=float.h])
+ ;;
+ esac
+ ;;
+ linux*)
+ case "$host_cpu" in
+ powerpc*)
+ FLOAT_H=float.h
+ ;;
+ esac
+ ;;
+ esac
+ case "$host_os" in
+ aix* | freebsd* | linux*)
+ if test -n "$FLOAT_H"; then
+ REPLACE_FLOAT_LDBL=1
+ fi
+ ;;
+ esac
+
+ dnl Test against glibc-2.7 Linux/SPARC64 bug.
+ REPLACE_ITOLD=0
+ AC_CACHE_CHECK([whether conversion from 'int' to 'long double' works],
+ [gl_cv_func_itold_works],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+int i = -1;
+volatile long double ld;
+int main ()
+{
+ ld += i * 1.0L;
+ if (ld > 0)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_itold_works=yes],
+ [gl_cv_func_itold_works=no],
+ [case "$host" in
+ sparc*-*-linux*)
+ AC_EGREP_CPP([yes],
+ [#if defined __LP64__ || defined __arch64__
+ yes
+ #endif],
+ [gl_cv_func_itold_works="guessing no"],
+ [gl_cv_func_itold_works="guessing yes"])
+ ;;
+ *) gl_cv_func_itold_works="guessing yes" ;;
+ esac
+ ])
+ ])
+ case "$gl_cv_func_itold_works" in
+ *no)
+ REPLACE_ITOLD=1
+ dnl We add the workaround to <float.h> but also to <math.h>,
+ dnl to increase the chances that the fix function gets pulled in.
+ FLOAT_H=float.h
+ ;;
+ esac
+
+ if test -n "$FLOAT_H"; then
+ gl_NEXT_HEADERS([float.h])
+ fi
+ AC_SUBST([FLOAT_H])
+ AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"])
+ AC_SUBST([REPLACE_ITOLD])
+])
+m4trace:m4/fnmatch.m4:12: -1- 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=
+ 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 };
+ int result = 0;
+ if (!n ("a*", "", 0))
+ return 1;
+ if (!y ("a*", "abc", 0))
+ return 1;
+ if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
+ return 1;
+ if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
+ return 2;
+ if (!y ("a\\\\bc", "abc", 0))
+ return 3;
+ if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
+ return 3;
+ if (!y ("*x", ".x", 0))
+ return 4;
+ if (!n ("*x", ".x", FNM_PERIOD))
+ return 4;
+ if (!y (Apat, "\\\\", 0))
+ return 5;
+ if (!y (Apat, "A", 0))
+ return 5;
+ if (!y (apat, "\\\\", 0))
+ return 5;
+ if (!y (apat, "a", 0))
+ return 5;
+ if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, a01, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
+ return 5;
+ $gl_fnmatch_gnu_start
+ if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
+ result |= 8;
+ if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
+ result |= 16;
+ if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
+ result |= 32;
+ if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ $gl_fnmatch_gnu_end
+ return result;
+ ]])],
+ [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
+ fi
+ AC_SUBST([FNMATCH_H])
+ AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"])
+])
+m4trace:m4/fnmatch.m4:137: -1- AC_DEFUN([gl_FUNC_FNMATCH_GNU], [
+ m4_divert_text([INIT_PREPARE], [gl_fnmatch_required=GNU])
+
+ AC_REQUIRE([gl_FUNC_FNMATCH_POSIX])
+])
+m4trace:m4/fnmatch.m4:144: -1- AC_DEFUN([gl_PREREQ_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_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])
+])
+m4trace:m4/fpending.m4:16: -1- AC_DEFUN([gl_FUNC_FPENDING], [
+ AC_CHECK_HEADERS_ONCE([stdio_ext.h])
+ AC_CHECK_FUNCS_ONCE([__fpending])
+ fp_headers='
+# include <stdio.h>
+# if HAVE_STDIO_EXT_H
+# include <stdio_ext.h>
+# endif
+'
+ AC_CHECK_DECLS([__fpending], , , $fp_headers)
+])
+m4trace:m4/fpending.m4:29: -1- AC_DEFUN([gl_PREREQ_FPENDING], [
+ AC_CACHE_CHECK(
+ [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' \
+ \
+ '# Minix' \
+ 'fp->_ptr - fp->_buf' \
+ \
+ '# 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
+
+ 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_DEFINE_UNQUOTED([PENDING_OUTPUT_N_BYTES],
+ $ac_cv_sys_pending_output_n_bytes,
+ [the number of pending output bytes on stream 'fp'])
+])
+m4trace:m4/fseek.m4:7: -1- AC_DEFUN([gl_FUNC_FSEEK], [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_FSEEKO])
+ dnl When fseeko needs fixes, fseek needs them too.
+ if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+ REPLACE_FSEEK=1
+ fi
+])
+m4trace:m4/fseeko.m4:7: -1- AC_DEFUN([gl_FUNC_FSEEKO], [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_REQUIRE([gl_STDIN_LARGE_OFFSET])
+ AC_REQUIRE([AC_PROG_CC])
+
+ dnl Persuade glibc <stdio.h> to declare fseeko().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CACHE_CHECK([for fseeko], [gl_cv_func_fseeko],
+ [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
+]], [fseeko (stdin, 0, 0);])],
+ [gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no])
+ ])
+
+ AC_CHECK_DECLS_ONCE([fseeko])
+ if test $ac_cv_have_decl_fseeko = no; then
+ HAVE_DECL_FSEEKO=0
+ fi
+
+ if test $gl_cv_func_fseeko = no; then
+ HAVE_FSEEKO=0
+ else
+ if test $gl_cv_var_stdin_large_offset = no; then
+ REPLACE_FSEEKO=1
+ fi
+ m4_ifdef([gl_FUNC_FFLUSH_STDIN], [
+ gl_FUNC_FFLUSH_STDIN
+ if test $gl_cv_func_fflush_stdin = no; then
+ REPLACE_FSEEKO=1
+ fi
+ ])
+ fi
+])
+m4trace:m4/fseeko.m4:45: -1- AC_DEFUN([gl_STDIN_LARGE_OFFSET], [
+ AC_CACHE_CHECK([whether stdin defaults to large file offsets],
+ [gl_cv_var_stdin_large_offset],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
+[[#if defined __SL64 && defined __SCLE /* cygwin */
+ /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
+ fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and
+ it is easier to do a version check than building a runtime test. */
+# include <cygwin/version.h>
+# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
+ choke me
+# endif
+#endif]])],
+ [gl_cv_var_stdin_large_offset=yes],
+ [gl_cv_var_stdin_large_offset=no])])
+])
+m4trace:m4/fstat.m4:7: -1- AC_DEFUN([gl_FUNC_FSTAT], [
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_FSTAT=1
+ fi
+ dnl Replace fstat() for supporting the gnulib-defined open() on directories.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0 \
+ && test "$gl_cv_func_open_directory_works" != yes; then
+ REPLACE_FSTAT=1
+ fi
+ ])
+])
+m4trace:m4/fstat.m4:25: -1- AC_DEFUN([gl_PREREQ_FSTAT], [
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:m4/fstatat.m4:11: -1- AC_DEFUN([gl_FUNC_FSTATAT], [
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CHECK_FUNCS_ONCE([fstatat])
+
+ if test $ac_cv_func_fstatat = no; then
+ HAVE_FSTATAT=0
+ else
+ dnl Test for an AIX 7.1 bug; see
+ dnl <http://lists.gnu.org/archive/html/bug-tar/2011-09/msg00015.html>.
+ AC_CACHE_CHECK([whether fstatat (..., 0) works],
+ [gl_cv_func_fstatat_zero_flag],
+ [AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ int
+ main (void)
+ {
+ struct stat a;
+ return fstatat (AT_FDCWD, ".", &a, 0) != 0;
+ }
+ ]])],
+ [gl_cv_func_fstatat_zero_flag=yes],
+ [gl_cv_func_fstatat_zero_flag=no],
+ [case "$host_os" in
+ aix*) gl_cv_func_fstatat_zero_flag="guessing no";;
+ *) gl_cv_func_fstatat_zero_flag="guessing yes";;
+ esac
+ ])
+ ])
+
+ case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ *yes+yes) ;;
+ *) REPLACE_FSTATAT=1
+ case $gl_cv_func_fstatat_zero_flag in
+ *yes)
+ AC_DEFINE([HAVE_WORKING_FSTATAT_ZERO_FLAG], [1],
+ [Define to 1 if fstatat (..., 0) works.
+ For example, it does not work in AIX 7.1.])
+ ;;
+ esac
+ ;;
+ esac
+ fi
+])
+m4trace:m4/futimens.m4:11: -1- AC_DEFUN([gl_FUNC_FUTIMENS], [
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([futimens])
+ if test $ac_cv_func_futimens = no; then
+ HAVE_FUTIMENS=0
+ else
+ AC_CACHE_CHECK([whether futimens works],
+ [gl_cv_func_futimens_works],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <errno.h>
+]], [[struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+ int fd = creat ("conftest.file", 0600);
+ struct stat st;
+ if (fd < 0) return 1;
+ errno = 0;
+ if (futimens (AT_FDCWD, NULL) == 0) return 2;
+ if (errno != EBADF) return 3;
+ if (futimens (fd, ts)) return 4;
+ sleep (1);
+ ts[0].tv_nsec = UTIME_NOW;
+ ts[1].tv_nsec = UTIME_OMIT;
+ if (futimens (fd, ts)) return 5;
+ if (fstat (fd, &st)) return 6;
+ if (st.st_ctime < st.st_atime) return 7;
+ ]])],
+dnl FIXME: simplify this in 2012, when file system bugs are no longer common
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#ifdef __linux__
+/* The Linux kernel added futimens in 2.6.22, but has bugs with UTIME_OMIT
+ in several file systems as recently as 2.6.32. Always replace futimens
+ to support older kernels. */
+choke me
+#endif
+ ]])],
+ [gl_cv_func_futimens_works=yes],
+ [gl_cv_func_futimens_works="needs runtime check"])],
+ [gl_cv_func_futimens_works=no],
+ [gl_cv_func_futimens_works="guessing no"])
+ rm -f conftest.file])
+ if test "$gl_cv_func_futimens_works" != yes; then
+ REPLACE_FUTIMENS=1
+ fi
+ fi
+])
+m4trace:m4/getcwd-abort-bug.m4:14: -1- AC_DEFUN([gl_FUNC_GETCWD_ABORT_BUG], [
+ AC_CHECK_DECLS_ONCE([getcwd])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+ AC_CHECK_FUNCS([getpagesize])
+ AC_CACHE_CHECK([whether getcwd aborts when 4k < cwd_length < 16k],
+ gl_cv_func_getcwd_abort_bug,
+ [# Remove any remnants of a previous test.
+ rm -rf confdir-14B---
+ # Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir-14B---"
+ dnl Please keep this in sync with tests/test-getcwd.c.
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <direct.h>
+#endif
+#include <string.h>
+#include <sys/stat.h>
+
+]gl_PATHMAX_SNIPPET[
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir. */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* FIXME: skip the run-test altogether on systems without getpagesize. */
+#if ! HAVE_GETPAGESIZE
+# define getpagesize() 0
+#endif
+
+/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than
+ the 16kB pagesize on ia64 linux. Those conditions make the code below
+ trigger a bug in glibc's getcwd implementation before 2.4.90-10. */
+#define TARGET_LEN (5 * 1024)
+
+int
+main ()
+{
+ char const *dir_name = "confdir-14B---";
+ char *cwd;
+ size_t initial_cwd_len;
+ int fail = 0;
+ size_t desired_depth;
+ size_t d;
+
+ /* The bug is triggered when PATH_MAX < getpagesize (), so skip
+ this relatively expensive and invasive test if that's not true. */
+ if (getpagesize () <= PATH_MAX)
+ return 0;
+
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ return 2;
+
+ initial_cwd_len = strlen (cwd);
+ free (cwd);
+ desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
+ / (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;
+ }
+ }
+
+ /* If libc has the bug in question, this invocation of getcwd
+ results in a failed assertion. */
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ fail = 4; /* getcwd failed: it refuses to return a string longer
+ than PATH_MAX. */
+ free (cwd);
+
+ /* Call rmdir first, in case the above chdir failed. */
+ rmdir (dir_name);
+ while (0 < d--)
+ {
+ if (chdir ("..") < 0)
+ {
+ fail = 5;
+ break;
+ }
+ rmdir (dir_name);
+ }
+
+ return fail;
+}
+ ]])],
+ [gl_cv_func_getcwd_abort_bug=no],
+ [dnl An abort will provoke an exit code of something like 134 (128 + 6).
+ dnl An exit code of 4 can also occur (in OpenBSD 4.9, NetBSD 5.1 for
+ dnl example): getcwd (NULL, 0) fails rather than returning a string
+ dnl longer than PATH_MAX. This may be POSIX compliant (in some
+ dnl interpretations of POSIX). But gnulib's getcwd module wants to
+ dnl provide a non-NULL value in this case.
+ ret=$?
+ if test $ret -ge 128 || test $ret = 4; then
+ gl_cv_func_getcwd_abort_bug=yes
+ else
+ gl_cv_func_getcwd_abort_bug=no
+ fi],
+ [gl_cv_func_getcwd_abort_bug=yes])
+ ])
+ AS_IF([test $gl_cv_func_getcwd_abort_bug = yes], [$1], [$2])
+])
+m4trace:m4/getcwd-path-max.m4:16: -1- AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX], [
+ AC_CHECK_DECLS_ONCE([getcwd])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+ AC_CACHE_CHECK([whether getcwd handles long file names properly],
+ gl_cv_func_getcwd_path_max,
+ [# Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir3"
+ dnl Please keep this in sync with tests/test-getcwd.c.
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else
+# include <direct.h>
+#endif
+#include <string.h>
+#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+]gl_PATHMAX_SNIPPET[
+
+#ifndef AT_FDCWD
+# define AT_FDCWD 0
+#endif
+#ifdef ENAMETOOLONG
+# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG)
+#else
+# define is_ENAMETOOLONG(x) 0
+#endif
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir. */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* The length of this name must be 8. */
+#define DIR_NAME "confdir3"
+#define DIR_NAME_LEN 8
+#define DIR_NAME_SIZE (DIR_NAME_LEN + 1)
+
+/* The length of "../". */
+#define DOTDOTSLASH_LEN 3
+
+/* Leftover bytes in the buffer, to work around library or OS bugs. */
+#define BUF_SLOP 20
+
+int
+main ()
+{
+#ifndef PATH_MAX
+ /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
+ at least not on a local file system. And if we were to start worrying
+ about remote file systems, we'd have to enable the wrapper function
+ all of the time, just to be safe. That's not worth the cost. */
+ exit (0);
+#elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
+ - DIR_NAME_SIZE - BUF_SLOP) \
+ <= PATH_MAX)
+ /* FIXME: Assuming there's a system for which this is true,
+ this should be done in a compile test. */
+ exit (0);
+#else
+ char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1)
+ + DIR_NAME_SIZE + BUF_SLOP];
+ char *cwd = getcwd (buf, PATH_MAX);
+ size_t initial_cwd_len;
+ size_t cwd_len;
+ int fail = 0;
+ size_t n_chdirs = 0;
+
+ if (cwd == NULL)
+ exit (10);
+
+ cwd_len = initial_cwd_len = strlen (cwd);
+
+ while (1)
+ {
+ size_t dotdot_max = PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN);
+ char *c = NULL;
+
+ 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. */
+ if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
+ {
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ fail = 20;
+ break;
+ }
+
+ if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE)
+ {
+ c = getcwd (buf, PATH_MAX);
+ if (!c && errno == ENOENT)
+ {
+ fail = 11;
+ break;
+ }
+ if (c)
+ {
+ fail = 31;
+ break;
+ }
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ {
+ fail = 21;
+ 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 = 22;
+ break;
+ }
+ if (AT_FDCWD || errno == ERANGE || errno == ENOENT)
+ {
+ fail = 12;
+ break;
+ }
+ }
+ }
+
+ if (c && strlen (c) != cwd_len)
+ {
+ fail = 23;
+ break;
+ }
+ ++n_chdirs;
+ }
+
+ /* Leaving behind such a deep directory is not polite.
+ So clean up here, right away, even though the driving
+ shell script would also clean up. */
+ {
+ size_t i;
+
+ /* Try rmdir first, in case the chdir failed. */
+ rmdir (DIR_NAME);
+ for (i = 0; i <= n_chdirs; i++)
+ {
+ if (chdir ("..") < 0)
+ break;
+ if (rmdir (DIR_NAME) != 0)
+ break;
+ }
+ }
+
+ exit (fail);
+#endif
+}
+ ]])],
+ [gl_cv_func_getcwd_path_max=yes],
+ [case $? in
+ 10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
+ 31) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+ *) gl_cv_func_getcwd_path_max=no;;
+ esac],
+ [case "$host_os" in
+ aix*) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+ *) gl_cv_func_getcwd_path_max=no;;
+ esac])
+ ])
+])
+m4trace:m4/getcwd.m4:11: -1- AC_DEFUN([gl_FUNC_GETCWD_NULL], [
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result],
+ [gl_cv_func_getcwd_null],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+# if HAVE_UNISTD_H
+# include <unistd.h>
+# else /* on Windows with MSVC */
+# include <direct.h>
+# endif
+# ifndef getcwd
+ char *getcwd ();
+# endif
+]], [[
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* mingw cwd does not start with '/', but getcwd does allocate.
+ However, mingw fails to honor non-zero size. */
+#else
+ if (chdir ("/") != 0)
+ return 1;
+ else
+ {
+ char *f = getcwd (NULL, 0);
+ if (! f)
+ return 2;
+ if (f[0] != '/')
+ return 3;
+ if (f[1] != '\0')
+ return 4;
+ return 0;
+ }
+#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";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_getcwd_null="guessing no";;
+ esac
+ ]])])
+])
+m4trace:m4/getcwd.m4:60: -1- AC_DEFUN([gl_FUNC_GETCWD_SIGNATURE], [
+ AC_CACHE_CHECK([for getcwd with POSIX signature],
+ [gl_cv_func_getcwd_posix_signature],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>]],
+ [[extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *getcwd (char *, size_t);
+ ]])
+ ],
+ [gl_cv_func_getcwd_posix_signature=yes],
+ [gl_cv_func_getcwd_posix_signature=no])
+ ])
+])
+m4trace:m4/getcwd.m4:86: -1- AC_DEFUN([gl_FUNC_GETCWD_LGPL], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_GETCWD_NULL])
+ AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE])
+
+ case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in
+ *yes,yes) ;;
+ *)
+ dnl Minimal replacement lib/getcwd-lgpl.c.
+ REPLACE_GETCWD=1
+ ;;
+ esac
+])
+m4trace:m4/getcwd.m4:103: -1- AC_DEFUN([gl_FUNC_GETCWD], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_GETCWD_NULL])
+ AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ gl_abort_bug=no
+ case "$host_os" in
+ mingw*)
+ gl_cv_func_getcwd_path_max=yes
+ ;;
+ *)
+ gl_FUNC_GETCWD_PATH_MAX
+ case "$gl_cv_func_getcwd_null" in
+ *yes)
+ gl_FUNC_GETCWD_ABORT_BUG([gl_abort_bug=yes])
+ ;;
+ esac
+ ;;
+ esac
+ dnl Define HAVE_MINIMALLY_WORKING_GETCWD and HAVE_PARTLY_WORKING_GETCWD
+ dnl if appropriate.
+ case "$gl_cv_func_getcwd_path_max" in
+ "no, it has the AIX bug") ;;
+ *)
+ AC_DEFINE([HAVE_MINIMALLY_WORKING_GETCWD], [1],
+ [Define to 1 if getcwd minimally works, that is, its result can be
+ trusted when it succeeds.])
+ ;;
+ esac
+ case "$gl_cv_func_getcwd_path_max" in
+ "no, but it is partly working")
+ AC_DEFINE([HAVE_PARTLY_WORKING_GETCWD], [1],
+ [Define to 1 if getcwd works, except it sometimes fails when it
+ shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT.])
+ ;;
+ esac
+
+ if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \
+ || test $gl_cv_func_getcwd_posix_signature != yes \
+ || test "$gl_cv_func_getcwd_path_max" != yes \
+ || test $gl_abort_bug = yes; then
+ REPLACE_GETCWD=1
+ fi
+])
+m4trace:m4/getcwd.m4:151: -1- AC_DEFUN([gl_PREREQ_GETCWD], [
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
+ :
+])
+m4trace:m4/getdelim.m4:11: -1- AC_DEFUN([gl_FUNC_GETDELIM], [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+
+ dnl Persuade glibc <stdio.h> to declare getdelim().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_DECLS_ONCE([getdelim])
+
+ AC_CHECK_FUNCS_ONCE([getdelim])
+ if test $ac_cv_func_getdelim = yes; then
+ HAVE_GETDELIM=1
+ 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 2;
+ }
+ {
+ /* 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 3;
+ }
+ 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) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+#endif
+ ],
+ [gl_cv_func_working_getdelim=yes],
+ [gl_cv_func_working_getdelim=no])]
+ )])
+ if test $gl_cv_func_working_getdelim = no; then
+ REPLACE_GETDELIM=1
+ fi
+ else
+ HAVE_GETDELIM=0
+ fi
+
+ if test $ac_cv_have_decl_getdelim = no; then
+ HAVE_DECL_GETDELIM=0
+ fi
+])
+m4trace:m4/getdelim.m4:82: -1- AC_DEFUN([gl_PREREQ_GETDELIM], [
+ AC_CHECK_FUNCS([flockfile funlockfile])
+ AC_CHECK_DECLS([getc_unlocked])
+])
+m4trace:m4/getdtablesize.m4:7: -1- 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
+ fi
+])
+m4trace:m4/getdtablesize.m4:17: -1- AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:m4/getline.m4:16: -1- AC_DEFUN([gl_FUNC_GETLINE], [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+
+ dnl Persuade glibc <stdio.h> to declare getline().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_DECLS_ONCE([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])
+ if test $gl_getline_needs_run_time_check = yes; then
+ AC_CACHE_CHECK([for working getline function], [am_cv_func_working_getline],
+ [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 = getline (&line, &siz, in);
+ if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
+ return 2;
+ }
+ {
+ /* 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 3;
+ }
+ 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.
+ , 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) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+#endif
+ ],
+ [am_cv_func_working_getline=yes],
+ [am_cv_func_working_getline=no])]
+ )])
+ fi
+
+ if test $ac_cv_have_decl_getline = no; then
+ HAVE_DECL_GETLINE=0
+ 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
+ fi
+])
+m4trace:m4/getline.m4:91: -1- AC_DEFUN([gl_PREREQ_GETLINE], [
+ :
+])
+m4trace:m4/getopt.m4:8: -1- AC_DEFUN([gl_FUNC_GETOPT_POSIX], [
+ m4_divert_text([DEFAULTS], [gl_getopt_required=POSIX])
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ dnl Other modules can request the gnulib implementation of the getopt
+ dnl functions unconditionally, by defining gl_REPLACE_GETOPT_ALWAYS.
+ dnl argp.m4 does this.
+ m4_ifdef([gl_REPLACE_GETOPT_ALWAYS], [
+ gl_GETOPT_IFELSE([], [])
+ REPLACE_GETOPT=1
+ ], [
+ REPLACE_GETOPT=0
+ gl_GETOPT_IFELSE([
+ REPLACE_GETOPT=1
+ ],
+ [])
+ ])
+ if test $REPLACE_GETOPT = 1; then
+ dnl Arrange for getopt.h to be created.
+ gl_GETOPT_SUBSTITUTE_HEADER
+ fi
+])
+m4trace:m4/getopt.m4:34: -1- AC_DEFUN([gl_FUNC_GETOPT_GNU], [
+ m4_divert_text([INIT_PREPARE], [gl_getopt_required=GNU])
+
+ AC_REQUIRE([gl_FUNC_GETOPT_POSIX])
+])
+m4trace:m4/getopt.m4:42: -1- AC_DEFUN([gl_GETOPT_IFELSE], [
+ AC_REQUIRE([gl_GETOPT_CHECK_HEADERS])
+ AS_IF([test -n "$gl_replace_getopt"], [$1], [$2])
+])
+m4trace:m4/getopt.m4:49: -1- AC_DEFUN([gl_GETOPT_CHECK_HEADERS], [
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([AC_PROG_AWK]) dnl for awk that supports ENVIRON
+
+ dnl Persuade Solaris <unistd.h> to declare optarg, optind, opterr, optopt.
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ gl_CHECK_NEXT_HEADERS([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
+
+ 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.
+ dnl POSIX 2008 does not specify leading '+' behavior, but see
+ dnl http://austingroupbugs.net/view.php?id=191 for a recommendation on
+ dnl the next version of POSIX. For now, we only guarantee leading '+'
+ dnl behavior with getopt-gnu.
+ if test -z "$gl_replace_getopt"; then
+ AC_CACHE_CHECK([whether getopt is POSIX compatible],
+ [gl_cv_func_getopt_posix],
+ [
+ dnl BSD getopt_long uses an incompatible method to reset option
+ dnl processing. Existence of the optreset variable, in and of
+ dnl itself, is not a reason to replace getopt, but knowledge
+ dnl of the variable is needed to determine how to reset and
+ dnl whether a reset reparses the environment. Solaris
+ dnl supports neither optreset nor optind=0, but keeps no state
+ dnl that needs a reset beyond setting optind=1; detect Solaris
+ dnl by getopt_clip.
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>]],
+ [[int *p = &optreset; return optreset;]])],
+ [gl_optind_min=1],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <getopt.h>]],
+ [[return !getopt_clip;]])],
+ [gl_optind_min=1],
+ [gl_optind_min=0])])
+
+ dnl This test fails on mingw and succeeds on many other platforms.
+ gl_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -DOPTIND_MIN=$gl_optind_min"
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main ()
+{
+ {
+ static char program[] = "program";
+ static char a[] = "-a";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, a, foo, bar, NULL };
+ int c;
+
+ optind = OPTIND_MIN;
+ opterr = 0;
+
+ c = getopt (4, argv, "ab");
+ if (!(c == 'a'))
+ return 1;
+ c = getopt (4, argv, "ab");
+ if (!(c == -1))
+ return 2;
+ if (!(optind == 2))
+ return 3;
+ }
+ /* Some internal state exists at this point. */
+ {
+ static char program[] = "program";
+ static char donald[] = "donald";
+ static char p[] = "-p";
+ static char billy[] = "billy";
+ static char duck[] = "duck";
+ static char a[] = "-a";
+ static char bar[] = "bar";
+ char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
+ int c;
+
+ optind = OPTIND_MIN;
+ opterr = 0;
+
+ c = getopt (7, 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;
+ }
+ /* Detect MacOS 10.5, AIX 7.1 bug. */
+ {
+ static char program[] = "program";
+ static char ab[] = "-ab";
+ char *argv[3] = { program, ab, NULL };
+ optind = OPTIND_MIN;
+ opterr = 0;
+ if (getopt (2, argv, "ab:") != 'a')
+ return 13;
+ if (getopt (2, argv, "ab:") != '?')
+ return 14;
+ if (optopt != 'b')
+ return 15;
+ if (optind != 2)
+ return 16;
+ }
+
+ 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";;
+ darwin* | aix*) gl_cv_func_getopt_posix="guessing no";;
+ *) gl_cv_func_getopt_posix="guessing yes";;
+ esac
+ ])
+ CPPFLAGS=$gl_save_CPPFLAGS
+ ])
+ 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
+ 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.
+ # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT;
+ # so take care to revert to the correct (non-)export state.
+dnl GNU Coding Standards currently allow awk but not env; besides, env
+dnl is ambiguous with environment values that contain newlines.
+ gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }'
+ case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in
+ xx) gl_had_POSIXLY_CORRECT=exported ;;
+ x) gl_had_POSIXLY_CORRECT=yes ;;
+ *) gl_had_POSIXLY_CORRECT= ;;
+ esac
+ POSIXLY_CORRECT=1
+ export POSIXLY_CORRECT
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[#include <getopt.h>
+ #include <stddef.h>
+ #include <string.h>
+ ]GL_NOCRASH[
+ ]], [[
+ int result = 0;
+
+ nocrash_init();
+
+ /* 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. */
+ {
+ static char conftest[] = "conftest";
+ static char plus[] = "-+";
+ char *argv[3] = { conftest, plus, NULL };
+ opterr = 0;
+ if (getopt (2, argv, "+a") != '?')
+ result |= 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. */
+ {
+ static char program[] = "program";
+ static char p[] = "-p";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, p, foo, bar, NULL };
+
+ optind = 1;
+ if (getopt (4, argv, "p::") != 'p')
+ result |= 2;
+ else if (optarg != NULL)
+ result |= 4;
+ else if (getopt (4, argv, "p::") != -1)
+ result |= 6;
+ else if (optind != 2)
+ result |= 8;
+ }
+ /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */
+ {
+ static char program[] = "program";
+ static char foo[] = "foo";
+ static char p[] = "-p";
+ char *argv[] = { program, foo, p, NULL };
+ optind = 0;
+ if (getopt (3, argv, "-p") != 1)
+ result |= 16;
+ else if (getopt (3, argv, "-p") != 'p')
+ result |= 32;
+ }
+ /* This code fails on glibc 2.11. */
+ {
+ static char program[] = "program";
+ static char b[] = "-b";
+ static char a[] = "-a";
+ char *argv[] = { program, b, a, NULL };
+ optind = opterr = 0;
+ if (getopt (3, argv, "+:a:b") != 'b')
+ result |= 64;
+ else if (getopt (3, argv, "+:a:b") != ':')
+ result |= 64;
+ }
+ /* This code dumps core on glibc 2.14. */
+ {
+ static char program[] = "program";
+ static char w[] = "-W";
+ static char dummy[] = "dummy";
+ char *argv[] = { program, w, dummy, NULL };
+ optind = opterr = 1;
+ if (getopt (3, argv, "W;") != 'W')
+ result |= 128;
+ }
+ return result;
+ ]])],
+ [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
+ ])
+ case $gl_had_POSIXLY_CORRECT in
+ exported) ;;
+ yes) AS_UNSET([POSIXLY_CORRECT]); POSIXLY_CORRECT=1 ;;
+ *) AS_UNSET([POSIXLY_CORRECT]) ;;
+ esac
+ ])
+ if test "$gl_cv_func_getopt_gnu" = "no"; then
+ gl_replace_getopt=yes
+ fi
+ fi
+])
+m4trace:m4/getopt.m4:327: -1- AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER], [
+ 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])
+])
+m4trace:m4/getopt.m4:338: -1- AC_DEFUN([gl_PREREQ_GETOPT], [
+ AC_CHECK_DECLS_ONCE([getenv])
+])
+m4trace:m4/getpagesize.m4:8: -1- AC_DEFUN([gl_FUNC_GETPAGESIZE], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CHECK_FUNCS([getpagesize])
+ if test $ac_cv_func_getpagesize = no; then
+ HAVE_GETPAGESIZE=0
+ AC_CHECK_HEADERS([OS.h])
+ if test $ac_cv_header_OS_h = yes; then
+ HAVE_OS_H=1
+ fi
+ AC_CHECK_HEADERS([sys/param.h])
+ if test $ac_cv_header_sys_param_h = yes; then
+ HAVE_SYS_PARAM_H=1
+ fi
+ fi
+ case "$host_os" in
+ mingw*)
+ REPLACE_GETPAGESIZE=1
+ ;;
+ esac
+ dnl Also check whether it's declared.
+ dnl mingw has getpagesize() in libgcc.a but doesn't declare it.
+ AC_CHECK_DECL([getpagesize], , [HAVE_DECL_GETPAGESIZE=0])
+])
+m4trace:m4/gettext.m4:57: -1- AC_DEFUN([AM_GNU_GETTEXT], [
+ dnl Argument checking.
+ ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+ [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])])
+ ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old],
+ [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])])
+ ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+ [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+ define([gt_included_intl],
+ ifelse([$1], [external],
+ ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]),
+ [yes]))
+ define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
+ gt_NEEDS_INIT
+ AM_GNU_GETTEXT_NEED([$2])
+
+ AC_REQUIRE([AM_PO_SUBDIRS])dnl
+ ifelse(gt_included_intl, yes, [
+ AC_REQUIRE([AM_INTL_SUBDIR])dnl
+ ])
+
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ dnl Ideally we would do this search only after the
+ dnl if test "$USE_NLS" = "yes"; then
+ dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+ dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+ dnl the configure script would need to contain the same shell code
+ dnl again, outside any 'if'. There are two solutions:
+ dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+ dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+ dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+ dnl documented, we avoid it.
+ ifelse(gt_included_intl, yes, , [
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+ ])
+
+ dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
+ gt_INTL_MACOSX
+
+ dnl Set USE_NLS.
+ AC_REQUIRE([AM_NLS])
+
+ ifelse(gt_included_intl, yes, [
+ BUILD_INCLUDED_LIBINTL=no
+ USE_INCLUDED_LIBINTL=no
+ ])
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ dnl Add a version number to the cache macros.
+ case " $gt_needs " in
+ *" need-formatstring-macros "*) gt_api_version=3 ;;
+ *" need-ngettext "*) gt_api_version=2 ;;
+ *) gt_api_version=1 ;;
+ esac
+ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
+ dnl If we use NLS figure out what method
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+ ifelse(gt_included_intl, yes, [
+ AC_MSG_CHECKING([whether included gettext is requested])
+ AC_ARG_WITH([included-gettext],
+ [ --with-included-gettext use the GNU gettext library included here],
+ nls_cv_force_use_gnu_gettext=$withval,
+ nls_cv_force_use_gnu_gettext=no)
+ AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext])
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ ])
+ dnl User does not insist on using GNU NLS library. Figure out what
+ dnl to use. If GNU gettext is available we use this. Else we have
+ dnl to fall back to GNU NLS library.
+
+ if test $gt_api_version -ge 3; then
+ gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+'
+ else
+ gt_revision_test_code=
+ fi
+ if test $gt_api_version -ge 2; then
+ gt_expression_test_code=' + * ngettext ("", "", 0)'
+ else
+ gt_expression_test_code=
+ fi
+
+ AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+ ]],
+ [[
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+ ]])],
+ [eval "$gt_func_gnugettext_libc=yes"],
+ [eval "$gt_func_gnugettext_libc=no"])])
+
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ ifelse(gt_included_intl, yes, , [
+ AM_ICONV_LINK
+ ])
+ dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+ dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+ dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+ dnl even if libiconv doesn't exist.
+ AC_LIB_LINKFLAGS_BODY([intl])
+ AC_CACHE_CHECK([for GNU gettext in libintl],
+ [$gt_func_gnugettext_libintl],
+ [gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ dnl Now see whether libintl exists and does not depend on libiconv.
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+ ]],
+ [[
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+ ]])],
+ [eval "$gt_func_gnugettext_libintl=yes"],
+ [eval "$gt_func_gnugettext_libintl=no"])
+ dnl Now see whether libintl exists and depends on libiconv.
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+ ]],
+ [[
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+ ]])],
+ [LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ eval "$gt_func_gnugettext_libintl=yes"
+ ])
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"])
+ fi
+
+ dnl If an already present or preinstalled GNU gettext() is found,
+ dnl use it. But if this macro is used in GNU gettext, and GNU
+ dnl gettext is already preinstalled in libintl, we update this
+ dnl libintl. (Cf. the install rule in intl/Makefile.in.)
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ dnl Reset the values set by searching for libintl.
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+ dnl GNU gettext is not found in the C library.
+ dnl Fall back on included GNU gettext library.
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions used to generate GNU NLS library.
+ BUILD_INCLUDED_LIBINTL=yes
+ USE_INCLUDED_LIBINTL=yes
+ LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
+ LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+ fi
+
+ CATOBJEXT=
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions to use GNU gettext tools.
+ CATOBJEXT=.gmo
+ fi
+ ])
+
+ if test -n "$INTL_MACOSX_LIBS"; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Some extra flags are needed during linking.
+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+ fi
+ fi
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ AC_DEFINE([ENABLE_NLS], [1],
+ [Define to 1 if translation of program messages to the user's native language
+ is requested.])
+ else
+ USE_NLS=no
+ fi
+ fi
+
+ AC_MSG_CHECKING([whether to use NLS])
+ AC_MSG_RESULT([$USE_NLS])
+ if test "$USE_NLS" = "yes"; then
+ AC_MSG_CHECKING([where the gettext function comes from])
+ 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"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ AC_MSG_RESULT([$gt_source])
+ 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
+ AC_MSG_CHECKING([how to link with libintl])
+ AC_MSG_RESULT([$LIBINTL])
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+ fi
+
+ dnl For backward compatibility. Some packages may be using this.
+ AC_DEFINE([HAVE_GETTEXT], [1],
+ [Define if the GNU gettext() function is already present or preinstalled.])
+ AC_DEFINE([HAVE_DCGETTEXT], [1],
+ [Define if the GNU dcgettext() function is already present or preinstalled.])
+ fi
+
+ dnl We need to process the po/ directory.
+ POSUB=po
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+ dnl to 'yes' because some of the testsuite requires it.
+ if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
+ BUILD_INCLUDED_LIBINTL=yes
+ fi
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST([BUILD_INCLUDED_LIBINTL])
+ AC_SUBST([USE_INCLUDED_LIBINTL])
+ AC_SUBST([CATOBJEXT])
+
+ dnl For backward compatibility. Some configure.ins may be using this.
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ DATADIRNAME=share
+ AC_SUBST([DATADIRNAME])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INSTOBJEXT=.mo
+ AC_SUBST([INSTOBJEXT])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ GENCAT=gencat
+ AC_SUBST([GENCAT])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INTLOBJS=
+ if test "$USE_INCLUDED_LIBINTL" = yes; then
+ INTLOBJS="\$(GETTOBJS)"
+ fi
+ AC_SUBST([INTLOBJS])
+
+ dnl Enable libtool support if the surrounding package wishes it.
+ INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+ AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX])
+ ])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INTLLIBS="$LIBINTL"
+ AC_SUBST([INTLLIBS])
+
+ dnl Make all documented variables known to autoconf.
+ AC_SUBST([LIBINTL])
+ AC_SUBST([LTLIBINTL])
+ AC_SUBST([POSUB])
+])
+m4trace:m4/gettext.m4:394: -1- AC_DEFUN([AM_GNU_GETTEXT_NEED], [
+ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
+])
+m4trace:m4/gettext.m4:401: -1- AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
+m4trace:m4/gettext.m4:402: -1- AC_DEFUN([gl_LOCK_EARLY], [])
+m4trace:m4/gettime.m4:7: -1- AC_DEFUN([gl_GETTIME], [
+ dnl Prerequisites of lib/gettime.c.
+ AC_REQUIRE([gl_CLOCK_TIME])
+ AC_REQUIRE([gl_TIMESPEC])
+ AC_CHECK_FUNCS_ONCE([gettimeofday nanotime])
+])
+m4trace:m4/gettimeofday.m4:10: -1- 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])
+
+ gl_gettimeofday_timezone=void
+ if test $ac_cv_func_gettimeofday != yes; then
+ HAVE_GETTIMEOFDAY=0
+ 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
+ fi
+ m4_ifdef([gl_FUNC_TZSET_CLOBBER], [
+ gl_FUNC_TZSET_CLOBBER
+ if test $gl_cv_func_tzset_clobber = yes; then
+ REPLACE_GETTIMEOFDAY=1
+ gl_GETTIMEOFDAY_REPLACE_LOCALTIME
+ AC_DEFINE([tzset], [rpl_tzset],
+ [Define to rpl_tzset if the wrapper function should be used.])
+ AC_DEFINE([TZSET_CLOBBERS_LOCALTIME], [1],
+ [Define if tzset clobbers localtime's static buffer.])
+ 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.])
+])
+m4trace:m4/gettimeofday.m4:78: -1- AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER], [
+ AC_REQUIRE([gl_HEADER_SYS_TIME_H])
+
+ AC_CACHE_CHECK([whether gettimeofday clobbers localtime buffer],
+ [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;
+ ]])],
+ [gl_cv_func_gettimeofday_clobber=no],
+ [gl_cv_func_gettimeofday_clobber=yes],
+ dnl When crosscompiling, assume it is broken.
+ [gl_cv_func_gettimeofday_clobber=yes])])
+
+ if test $gl_cv_func_gettimeofday_clobber = yes; then
+ REPLACE_GETTIMEOFDAY=1
+ gl_GETTIMEOFDAY_REPLACE_LOCALTIME
+ AC_DEFINE([GETTIMEOFDAY_CLOBBERS_LOCALTIME], [1],
+ [Define if gettimeofday clobbers the localtime buffer.])
+ fi
+])
+m4trace:m4/gettimeofday.m4:114: -1- AC_DEFUN([gl_GETTIMEOFDAY_REPLACE_LOCALTIME], [
+ AC_DEFINE([gmtime], [rpl_gmtime],
+ [Define to rpl_gmtime if the replacement function should be used.])
+ AC_DEFINE([localtime], [rpl_localtime],
+ [Define to rpl_localtime if the replacement function should be used.])
+])
+m4trace:m4/gettimeofday.m4:122: -1- AC_DEFUN([gl_PREREQ_GETTIMEOFDAY], [
+ AC_CHECK_HEADERS([sys/timeb.h])
+ AC_CHECK_FUNCS([_ftime])
+])
+m4trace:m4/glibc21.m4:11: -1- AC_DEFUN([gl_GLIBC21], [
+ AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc],
+ [ac_cv_gnu_library_2_1],
+ [AC_EGREP_CPP([Lucky],
+ [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+#ifdef __UCLIBC__
+ Lucky user
+#endif
+ ],
+ [ac_cv_gnu_library_2_1=yes],
+ [ac_cv_gnu_library_2_1=no])
+ ]
+ )
+ AC_SUBST([GLIBC21])
+ GLIBC21="$ac_cv_gnu_library_2_1"
+
+])
+m4trace:m4/gnulib-common.m4:9: -1- AC_DEFUN([gl_COMMON], [
+ dnl Use AC_REQUIRE here, so that the code is expanded once only.
+ AC_REQUIRE([gl_00GNULIB])
+ AC_REQUIRE([gl_COMMON_BODY])
+])
+m4trace:m4/gnulib-common.m4:14: -1- AC_DEFUN([gl_COMMON_BODY], [
+ AH_VERBATIM([_Noreturn],
+[/* The _Noreturn keyword of C11. */
+#ifndef _Noreturn
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+ || 0x5110 <= __SUNPRO_C)
+# define _Noreturn __attribute__ ((__noreturn__))
+# elif defined _MSC_VER && 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn
+# endif
+#endif
+])
+ AH_VERBATIM([isoc99_inline],
+[/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
+ the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
+ earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
+ __APPLE__ && __MACH__ test for MacOS X.
+ __APPLE_CC__ tests for the Apple compiler and its version.
+ __STDC_VERSION__ tests for the C99 mode. */
+#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
+# define __GNUC_STDC_INLINE__ 1
+#endif])
+ AH_VERBATIM([unused_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 _GL_UNUSED __attribute__ ((__unused__))
+#else
+# 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
+
+/* The __pure__ attribute was added in gcc 2.96. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
+])
+ dnl Preparation for running test programs:
+ dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not
+ dnl to /dev/tty, so they can be redirected to log files. Such diagnostics
+ dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N.
+ LIBC_FATAL_STDERR_=1
+ export LIBC_FATAL_STDERR_
+])
+m4trace:m4/gnulib-common.m4:82: -1- AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE], [
+ gl_MODULE_INDICATOR_SET_VARIABLE_AUX(
+ [GNULIB_[]m4_translit([[$1]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])],
+ [gl_MODULE_INDICATOR_CONDITION])
+])
+m4trace:m4/gnulib-common.m4:95: -1- AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX], [
+ m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1],
+ [
+ dnl Simplify the expression VALUE || 1 to 1.
+ $1=1
+ ],
+ [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1],
+ [gl_MODULE_INDICATOR_CONDITION])])
+])
+m4trace:m4/gnulib-common.m4:109: -1- AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR], [
+ dnl Simplify the expression 1 || CONDITION to 1.
+ if test "$[]$1" != 1; then
+ dnl Simplify the expression 0 || CONDITION to CONDITION.
+ if test "$[]$1" = 0; then
+ $1=$2
+ else
+ $1="($[]$1 || $2)"
+ fi
+ fi
+])
+m4trace:m4/gnulib-common.m4:134: -1- AC_DEFUN([gl_MODULE_INDICATOR], [
+ AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]),
+ [gl_MODULE_INDICATOR_CONDITION],
+ [Define to a C preprocessor expression that evaluates to 1 or 0,
+ depending whether the gnulib module $1 shall be considered present.])
+])
+m4trace:m4/gnulib-common.m4:157: -1- AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [
+ AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1],
+ [Define to 1 when the gnulib module $1 should be tested.])
+])
+m4trace:m4/gnulib-common.m4:169: -1- AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK], [
+ dnl Override gl_WARN_ON_USE_PREPARE.
+ dnl But hide this definition from 'aclocal'.
+ AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], [])
+])
+m4trace:m4/gnulib-common.m4:180: -1- AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS], [
+ dnl Override gl_MODULE_INDICATOR_FOR_TESTS.
+ AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [])
+])
+m4trace:m4/gnulib-common.m4:188: -1- AC_DEFUN([gl_FEATURES_H], [
+ AC_CHECK_HEADERS_ONCE([features.h])
+ if test $ac_cv_header_features_h = yes; then
+ HAVE_FEATURES_H=1
+ else
+ HAVE_FEATURES_H=0
+ fi
+ AC_SUBST([HAVE_FEATURES_H])
+])
+m4trace:m4/gnulib-common.m4:228: -1- AC_DEFUN([gl_PROG_CC_C99], [
+ dnl Change that version number to the minimum Autoconf version that supports
+ dnl mixing AC_PROG_CC_C99 calls with AC_PROG_CC_STDC calls.
+ m4_version_prereq([9.0],
+ [AC_REQUIRE([AC_PROG_CC_C99])],
+ [AC_REQUIRE([AC_PROG_CC_STDC])])
+])
+m4trace:m4/gnulib-common.m4:241: -1- AC_DEFUN([gl_PROG_AR_RANLIB], [
+ dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler
+ dnl as "cc", and GCC as "gcc". They have different object file formats and
+ dnl library formats. In particular, the GNU binutils programs ar, ranlib
+ dnl produce libraries that work only with gcc, not with cc.
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler],
+ [
+ AC_EGREP_CPP([Amsterdam],
+ [
+#ifdef __ACK__
+Amsterdam
+#endif
+ ],
+ [gl_cv_c_amsterdam_compiler=yes],
+ [gl_cv_c_amsterdam_compiler=no])
+ ])
+ if test -z "$AR"; then
+ if test $gl_cv_c_amsterdam_compiler = yes; then
+ AR='cc -c.a'
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='-o'
+ fi
+ else
+ dnl Use the Automake-documented default values for AR and ARFLAGS,
+ dnl but prefer ${host}-ar over ar (useful for cross-compiling).
+ AC_CHECK_TOOL([AR], [ar], [ar])
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='cru'
+ fi
+ fi
+ else
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='cru'
+ fi
+ fi
+ AC_SUBST([AR])
+ AC_SUBST([ARFLAGS])
+ if test -z "$RANLIB"; then
+ if test $gl_cv_c_amsterdam_compiler = yes; then
+ RANLIB=':'
+ else
+ dnl Use the ranlib program if it is available.
+ AC_PROG_RANLIB
+ fi
+ fi
+ AC_SUBST([RANLIB])
+])
+m4trace:m4/gnulib-common.m4:356: -1- AC_DEFUN([gl_BIGENDIAN], [
+ AC_C_BIGENDIAN
+])
+m4trace:m4/gnulib-common.m4:366: -1- 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"
+])
+m4trace:m4/gnulib-comp.m4:36: -1- AC_DEFUN([gl_EARLY], [
+ m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace
+ m4_pattern_allow([^gl_ES$])dnl a valid locale name
+ m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
+ m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
+ AC_REQUIRE([gl_PROG_AR_RANLIB])
+ AC_REQUIRE([AM_PROG_CC_C_O])
+ # Code from module alloca:
+ # Code from module alloca-opt:
+ # Code from module allocator:
+ # Code from module areadlink:
+ # Code from module areadlinkat:
+ # Code from module argmatch:
+ # Code from module argp:
+ # Code from module argp-version-etc:
+ # Code from module at-internal:
+ # Code from module backupfile:
+ # Code from module bitrotate:
+ # Code from module btowc:
+ # Code from module c-ctype:
+ # Code from module c-strcase:
+ # Code from module c-strcaseeq:
+ # Code from module canonicalize-lgpl:
+ # Code from module careadlinkat:
+ # Code from module chdir:
+ # Code from module chdir-long:
+ # Code from module chown:
+ # Code from module clock-time:
+ # Code from module cloexec:
+ # Code from module close:
+ # Code from module close-stream:
+ # Code from module closedir:
+ # Code from module closeout:
+ # Code from module configmake:
+ # Code from module d-ino:
+ # Code from module dirent:
+ # Code from module dirent-safer:
+ # Code from module dirfd:
+ # Code from module dirname:
+ # Code from module dirname-lgpl:
+ # Code from module dosname:
+ # Code from module double-slash-root:
+ # Code from module dup:
+ # Code from module dup2:
+ # Code from module environ:
+ # Code from module errno:
+ # Code from module error:
+ # Code from module exclude:
+ # Code from module exitfail:
+ # Code from module extensions:
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ # Code from module fchdir:
+ # Code from module fcntl:
+ # Code from module fcntl-h:
+ # Code from module fd-hook:
+ # Code from module fdopendir:
+ # Code from module fdutimensat:
+ # Code from module fileblocks:
+ # Code from module filename:
+ # Code from module filenamecat-lgpl:
+ # Code from module float:
+ # Code from module fnmatch:
+ # Code from module fnmatch-gnu:
+ # Code from module fpending:
+ # Code from module fseek:
+ # Code from module fseeko:
+ AC_REQUIRE([AC_FUNC_FSEEKO])
+ # Code from module fstat:
+ # Code from module fstatat:
+ # Code from module full-write:
+ # Code from module futimens:
+ # Code from module getcwd:
+ # Code from module getcwd-lgpl:
+ # Code from module getdelim:
+ # Code from module getdtablesize:
+ # Code from module getline:
+ # Code from module getopt-gnu:
+ # Code from module getopt-posix:
+ # Code from module getpagesize:
+ # Code from module gettext:
+ # Code from module gettext-h:
+ # Code from module gettime:
+ # Code from module gettimeofday:
+ # Code from module gitlog-to-changelog:
+ # Code from module hash:
+ # Code from module havelib:
+ # Code from module human:
+ # Code from module include_next:
+ # Code from module inline:
+ # Code from module intprops:
+ # Code from module inttostr:
+ # Code from module inttypes:
+ # Code from module inttypes-incomplete:
+ # Code from module iswblank:
+ # Code from module langinfo:
+ # Code from module largefile:
+ AC_REQUIRE([AC_SYS_LARGEFILE])
+ # Code from module lchown:
+ # Code from module link:
+ # Code from module link-follow:
+ # Code from module linkat:
+ # Code from module localcharset:
+ # Code from module lseek:
+ # Code from module lstat:
+ # Code from module malloc-gnu:
+ # Code from module malloc-posix:
+ # Code from module malloca:
+ # Code from module mbchar:
+ # Code from module mbrtowc:
+ # Code from module mbscasecmp:
+ # Code from module mbsinit:
+ # Code from module mbsrtowcs:
+ # Code from module mbtowc:
+ # Code from module mbuiter:
+ # Code from module memchr:
+ # Code from module mempcpy:
+ # Code from module memrchr:
+ # Code from module mkdtemp:
+ # Code from module mkfifo:
+ # Code from module mkfifoat:
+ # Code from module mknod:
+ # Code from module mktime:
+ # Code from module modechange:
+ # Code from module msvc-inval:
+ # Code from module msvc-nothrow:
+ # Code from module multiarch:
+ # Code from module nl_langinfo:
+ # Code from module nocrash:
+ # Code from module obstack:
+ # Code from module open:
+ # Code from module openat:
+ # Code from module openat-die:
+ # Code from module openat-h:
+ # Code from module opendir:
+ # Code from module parse-datetime:
+ # Code from module pathmax:
+ # Code from module priv-set:
+ # Code from module progname:
+ # Code from module quote:
+ # Code from module quotearg:
+ # Code from module quotearg-simple:
+ # Code from module raise:
+ # Code from module rawmemchr:
+ # Code from module read:
+ # Code from module readdir:
+ # Code from module readlink:
+ # Code from module readlinkat:
+ # Code from module realloc-posix:
+ # Code from module regex:
+ # Code from module rename:
+ # Code from module renameat:
+ # Code from module rewinddir:
+ # Code from module rmdir:
+ # Code from module rpmatch:
+ # Code from module safe-read:
+ # Code from module safe-write:
+ # Code from module same-inode:
+ # Code from module save-cwd:
+ # Code from module savedir:
+ # Code from module setenv:
+ # Code from module signal-h:
+ # Code from module size_max:
+ # Code from module sleep:
+ # Code from module snippet/_Noreturn:
+ # Code from module snippet/arg-nonnull:
+ # Code from module snippet/c++defs:
+ # Code from module snippet/warn-on-use:
+ # Code from module snprintf:
+ # Code from module ssize_t:
+ # Code from module stat:
+ # Code from module stat-macros:
+ # Code from module stat-time:
+ # Code from module stdalign:
+ # Code from module stdarg:
+ dnl Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode
+ dnl for the builtin va_copy to work. With Autoconf 2.60 or later,
+ dnl gl_PROG_CC_C99 arranges for this. With older Autoconf gl_PROG_CC_C99
+ dnl shouldn't hurt, though installers are on their own to set c99 mode.
+ gl_PROG_CC_C99
+ # Code from module stdbool:
+ # Code from module stddef:
+ # Code from module stdint:
+ # Code from module stdio:
+ # Code from module stdlib:
+ # Code from module stpcpy:
+ # Code from module strcase:
+ # Code from module strchrnul:
+ # Code from module strdup-posix:
+ # Code from module streq:
+ # Code from module strerror:
+ # Code from module strerror-override:
+ # Code from module string:
+ # Code from module strings:
+ # Code from module strndup:
+ # Code from module strnlen:
+ # Code from module strnlen1:
+ # Code from module strtol:
+ # Code from module strtoul:
+ # Code from module strtoull:
+ # Code from module strtoumax:
+ # Code from module symlink:
+ # Code from module symlinkat:
+ # Code from module sys_stat:
+ # Code from module sys_time:
+ # Code from module sys_types:
+ # Code from module sysexits:
+ # Code from module tempname:
+ # Code from module time:
+ # Code from module time_r:
+ # Code from module timespec:
+ # Code from module unistd:
+ # Code from module unistd-safer:
+ # Code from module unitypes:
+ # Code from module uniwidth/base:
+ # Code from module uniwidth/width:
+ # Code from module unlinkdir:
+ # Code from module unlocked-io:
+ # Code from module unsetenv:
+ # Code from module utimens:
+ # Code from module utimensat:
+ # Code from module vasnprintf:
+ # Code from module vasprintf:
+ # Code from module verify:
+ # Code from module version-etc:
+ # Code from module version-etc-fsf:
+ # Code from module vsnprintf:
+ # Code from module wchar:
+ # Code from module wcrtomb:
+ # Code from module wctype-h:
+ # Code from module wcwidth:
+ # Code from module write:
+ # Code from module xalloc:
+ # Code from module xalloc-die:
+ # Code from module xalloc-oversized:
+ # Code from module xgetcwd:
+ # Code from module xsize:
+ # Code from module xstrndup:
+ # Code from module xstrtol:
+ # Code from module xstrtoumax:
+ # Code from module xvasprintf:
+])
+m4trace:m4/gnulib-comp.m4:281: -1- AC_DEFUN([gl_INIT], [
+ AM_CONDITIONAL([GL_COND_LIBTOOL], [false])
+ gl_cond_libtool=false
+ gl_libdeps=
+ gl_ltlibdeps=
+ gl_m4_base='m4'
+ m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ]))
+ m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS]))
+ m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES]))
+ m4_pushdef([gl_LIBSOURCES_LIST], [])
+ m4_pushdef([gl_LIBSOURCES_DIR], [])
+ gl_COMMON
+ gl_source_base='gnu'
+gl_FUNC_ALLOCA
+gl_MODULE_INDICATOR([areadlinkat])
+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])])
+AC_LIBOBJ([openat-proc])
+gl_BACKUPFILE
+AC_REQUIRE([AC_C_INLINE])
+gl_FUNC_BTOWC
+if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
+ AC_LIBOBJ([btowc])
+ gl_PREREQ_BTOWC
+fi
+gl_WCHAR_MODULE_INDICATOR([btowc])
+gl_CANONICALIZE_LGPL
+if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then
+ AC_LIBOBJ([canonicalize-lgpl])
+fi
+gl_MODULE_INDICATOR([canonicalize-lgpl])
+gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name])
+gl_STDLIB_MODULE_INDICATOR([realpath])
+AC_CHECK_FUNCS_ONCE([readlinkat])
+gl_UNISTD_MODULE_INDICATOR([chdir])
+gl_FUNC_CHDIR_LONG
+if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then
+ AC_LIBOBJ([chdir-long])
+ gl_PREREQ_CHDIR_LONG
+fi
+gl_FUNC_CHOWN
+if test $HAVE_CHOWN = 0 || test $REPLACE_CHOWN = 1; then
+ AC_LIBOBJ([chown])
+fi
+if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
+ AC_LIBOBJ([fchown-stub])
+fi
+gl_UNISTD_MODULE_INDICATOR([chown])
+gl_CLOCK_TIME
+gl_MODULE_INDICATOR_FOR_TESTS([cloexec])
+gl_FUNC_CLOSE
+if test $REPLACE_CLOSE = 1; then
+ AC_LIBOBJ([close])
+fi
+gl_UNISTD_MODULE_INDICATOR([close])
+gl_CLOSE_STREAM
+gl_MODULE_INDICATOR([close-stream])
+gl_FUNC_CLOSEDIR
+if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
+ AC_LIBOBJ([closedir])
+fi
+gl_DIRENT_MODULE_INDICATOR([closedir])
+gl_CLOSEOUT
+gl_CONFIGMAKE_PREP
+gl_CHECK_TYPE_STRUCT_DIRENT_D_INO
+gl_DIRENT_H
+gl_DIRENT_SAFER
+gl_MODULE_INDICATOR([dirent-safer])
+gl_FUNC_DIRFD
+if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+ AC_LIBOBJ([dirfd])
+ gl_PREREQ_DIRFD
+fi
+gl_DIRENT_MODULE_INDICATOR([dirfd])
+gl_DIRNAME
+gl_MODULE_INDICATOR([dirname])
+gl_DIRNAME_LGPL
+gl_DOUBLE_SLASH_ROOT
+gl_FUNC_DUP
+if test $REPLACE_DUP = 1; then
+ AC_LIBOBJ([dup])
+ gl_PREREQ_DUP
+fi
+gl_UNISTD_MODULE_INDICATOR([dup])
+gl_FUNC_DUP2
+if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
+ AC_LIBOBJ([dup2])
+ gl_PREREQ_DUP2
+fi
+gl_UNISTD_MODULE_INDICATOR([dup2])
+gl_ENVIRON
+gl_UNISTD_MODULE_INDICATOR([environ])
+gl_HEADER_ERRNO_H
+gl_ERROR
+if test $ac_cv_lib_error_at_line = no; then
+ AC_LIBOBJ([error])
+ gl_PREREQ_ERROR
+fi
+m4_ifdef([AM_XGETTEXT_OPTION],
+ [AM_][XGETTEXT_OPTION([--flag=error:3:c-format])
+ AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
+gl_FUNC_FCHDIR
+gl_UNISTD_MODULE_INDICATOR([fchdir])
+gl_FUNC_FCNTL
+if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
+ AC_LIBOBJ([fcntl])
+fi
+gl_FCNTL_MODULE_INDICATOR([fcntl])
+gl_FCNTL_H
+gl_FUNC_FDOPENDIR
+if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then
+ AC_LIBOBJ([fdopendir])
+fi
+gl_DIRENT_MODULE_INDICATOR([fdopendir])
+gl_MODULE_INDICATOR([fdopendir])
+AC_REQUIRE([AC_C_INLINE]) dnl because 'inline' is used in lib/utimens.h
+gl_MODULE_INDICATOR([fdutimensat])
+gl_FILEBLOCKS
+if test $ac_cv_member_struct_stat_st_blocks = no; then
+ AC_LIBOBJ([fileblocks])
+ gl_PREREQ_FILEBLOCKS
+fi
+gl_FILE_NAME_CONCAT_LGPL
+gl_FLOAT_H
+if test $REPLACE_FLOAT_LDBL = 1; then
+ AC_LIBOBJ([float])
+fi
+if test $REPLACE_ITOLD = 1; then
+ AC_LIBOBJ([itold])
+fi
+gl_FUNC_FNMATCH_POSIX
+if test -n "$FNMATCH_H"; then
+ AC_LIBOBJ([fnmatch])
+ gl_PREREQ_FNMATCH
+fi
+gl_FUNC_FNMATCH_GNU
+if test -n "$FNMATCH_H"; then
+ AC_LIBOBJ([fnmatch])
+ gl_PREREQ_FNMATCH
+fi
+gl_FUNC_FPENDING
+if test $ac_cv_func___fpending = no; then
+ AC_LIBOBJ([fpending])
+ gl_PREREQ_FPENDING
+fi
+gl_FUNC_FSEEK
+if test $REPLACE_FSEEK = 1; then
+ AC_LIBOBJ([fseek])
+fi
+gl_STDIO_MODULE_INDICATOR([fseek])
+gl_FUNC_FSEEKO
+if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+ AC_LIBOBJ([fseeko])
+fi
+gl_STDIO_MODULE_INDICATOR([fseeko])
+gl_FUNC_FSTAT
+if test $REPLACE_FSTAT = 1; then
+ AC_LIBOBJ([fstat])
+ gl_PREREQ_FSTAT
+fi
+gl_SYS_STAT_MODULE_INDICATOR([fstat])
+gl_FUNC_FSTATAT
+if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then
+ AC_LIBOBJ([fstatat])
+fi
+AC_REQUIRE([AC_C_INLINE]) dnl because 'inline' is used in lib/openat.h
+gl_MODULE_INDICATOR([fstatat]) dnl for lib/openat.h
+gl_SYS_STAT_MODULE_INDICATOR([fstatat])
+gl_FUNC_FUTIMENS
+if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
+ AC_LIBOBJ([futimens])
+fi
+gl_SYS_STAT_MODULE_INDICATOR([futimens])
+gl_FUNC_GETCWD
+if test $REPLACE_GETCWD = 1; then
+ AC_LIBOBJ([getcwd])
+ gl_PREREQ_GETCWD
+fi
+gl_MODULE_INDICATOR([getcwd])
+gl_UNISTD_MODULE_INDICATOR([getcwd])
+gl_FUNC_GETCWD_LGPL
+if test $REPLACE_GETCWD = 1; then
+ AC_LIBOBJ([getcwd-lgpl])
+fi
+gl_UNISTD_MODULE_INDICATOR([getcwd])
+gl_FUNC_GETDELIM
+if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
+ AC_LIBOBJ([getdelim])
+ gl_PREREQ_GETDELIM
+fi
+gl_STDIO_MODULE_INDICATOR([getdelim])
+gl_FUNC_GETDTABLESIZE
+if test $HAVE_GETDTABLESIZE = 0; then
+ AC_LIBOBJ([getdtablesize])
+ gl_PREREQ_GETDTABLESIZE
+fi
+gl_UNISTD_MODULE_INDICATOR([getdtablesize])
+gl_FUNC_GETLINE
+if test $REPLACE_GETLINE = 1; then
+ AC_LIBOBJ([getline])
+ gl_PREREQ_GETLINE
+fi
+gl_STDIO_MODULE_INDICATOR([getline])
+gl_FUNC_GETOPT_GNU
+if test $REPLACE_GETOPT = 1; then
+ AC_LIBOBJ([getopt])
+ AC_LIBOBJ([getopt1])
+ gl_PREREQ_GETOPT
+ dnl Arrange for unistd.h to include getopt.h.
+ GNULIB_GL_UNISTD_H_GETOPT=1
+fi
+AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
+gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu])
+gl_FUNC_GETOPT_POSIX
+if test $REPLACE_GETOPT = 1; then
+ AC_LIBOBJ([getopt])
+ AC_LIBOBJ([getopt1])
+ gl_PREREQ_GETOPT
+ dnl Arrange for unistd.h to include getopt.h.
+ GNULIB_GL_UNISTD_H_GETOPT=1
+fi
+AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
+gl_FUNC_GETPAGESIZE
+if test $REPLACE_GETPAGESIZE = 1; then
+ AC_LIBOBJ([getpagesize])
+fi
+gl_UNISTD_MODULE_INDICATOR([getpagesize])
+dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac.
+AM_GNU_GETTEXT_VERSION([0.18.1])
+AC_SUBST([LIBINTL])
+AC_SUBST([LTLIBINTL])
+gl_GETTIME
+gl_FUNC_GETTIMEOFDAY
+if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
+ AC_LIBOBJ([gettimeofday])
+ gl_PREREQ_GETTIMEOFDAY
+fi
+gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
+gl_HUMAN
+gl_INLINE
+gl_INTTOSTR
+gl_INTTYPES_H
+gl_INTTYPES_INCOMPLETE
+gl_FUNC_ISWBLANK
+if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+else
+ if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+ AC_LIBOBJ([iswblank])
+ fi
+fi
+gl_WCTYPE_MODULE_INDICATOR([iswblank])
+gl_LANGINFO_H
+gl_FUNC_LCHOWN
+if test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1; then
+ AC_LIBOBJ([lchown])
+fi
+gl_UNISTD_MODULE_INDICATOR([lchown])
+gl_FUNC_LINK
+if test $HAVE_LINK = 0 || test $REPLACE_LINK = 1; then
+ AC_LIBOBJ([link])
+fi
+gl_UNISTD_MODULE_INDICATOR([link])
+gl_FUNC_LINK_FOLLOWS_SYMLINK
+gl_FUNC_LINKAT
+if test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1; then
+ AC_LIBOBJ([linkat])
+fi
+if test $HAVE_LINKAT = 0; then
+ AC_LIBOBJ([at-func2])
+fi
+gl_UNISTD_MODULE_INDICATOR([linkat])
+gl_LOCALCHARSET
+LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
+AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
+gl_FUNC_LSEEK
+if test $REPLACE_LSEEK = 1; then
+ AC_LIBOBJ([lseek])
+fi
+gl_UNISTD_MODULE_INDICATOR([lseek])
+gl_FUNC_LSTAT
+if test $REPLACE_LSTAT = 1; then
+ AC_LIBOBJ([lstat])
+ gl_PREREQ_LSTAT
+fi
+gl_SYS_STAT_MODULE_INDICATOR([lstat])
+gl_FUNC_MALLOC_GNU
+if test $REPLACE_MALLOC = 1; then
+ AC_LIBOBJ([malloc])
+fi
+gl_MODULE_INDICATOR([malloc-gnu])
+gl_FUNC_MALLOC_POSIX
+if test $REPLACE_MALLOC = 1; then
+ AC_LIBOBJ([malloc])
+fi
+gl_STDLIB_MODULE_INDICATOR([malloc-posix])
+gl_MALLOCA
+gl_MBCHAR
+gl_FUNC_MBRTOWC
+if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
+ AC_LIBOBJ([mbrtowc])
+ gl_PREREQ_MBRTOWC
+fi
+gl_WCHAR_MODULE_INDICATOR([mbrtowc])
+gl_STRING_MODULE_INDICATOR([mbscasecmp])
+gl_FUNC_MBSINIT
+if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
+ AC_LIBOBJ([mbsinit])
+ gl_PREREQ_MBSINIT
+fi
+gl_WCHAR_MODULE_INDICATOR([mbsinit])
+gl_FUNC_MBSRTOWCS
+if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
+ AC_LIBOBJ([mbsrtowcs])
+ AC_LIBOBJ([mbsrtowcs-state])
+ gl_PREREQ_MBSRTOWCS
+fi
+gl_WCHAR_MODULE_INDICATOR([mbsrtowcs])
+gl_FUNC_MBTOWC
+if test $REPLACE_MBTOWC = 1; then
+ AC_LIBOBJ([mbtowc])
+ gl_PREREQ_MBTOWC
+fi
+gl_STDLIB_MODULE_INDICATOR([mbtowc])
+gl_MBITER
+gl_FUNC_MEMCHR
+if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
+ AC_LIBOBJ([memchr])
+ gl_PREREQ_MEMCHR
+fi
+gl_STRING_MODULE_INDICATOR([memchr])
+gl_FUNC_MEMPCPY
+if test $HAVE_MEMPCPY = 0; then
+ AC_LIBOBJ([mempcpy])
+ gl_PREREQ_MEMPCPY
+fi
+gl_STRING_MODULE_INDICATOR([mempcpy])
+gl_FUNC_MEMRCHR
+if test $ac_cv_func_memrchr = no; then
+ AC_LIBOBJ([memrchr])
+ gl_PREREQ_MEMRCHR
+fi
+gl_STRING_MODULE_INDICATOR([memrchr])
+gl_FUNC_MKDTEMP
+if test $HAVE_MKDTEMP = 0; then
+ AC_LIBOBJ([mkdtemp])
+ gl_PREREQ_MKDTEMP
+fi
+gl_STDLIB_MODULE_INDICATOR([mkdtemp])
+gl_FUNC_MKFIFO
+if test $HAVE_MKFIFO = 0 || test $REPLACE_MKFIFO = 1; then
+ AC_LIBOBJ([mkfifo])
+fi
+gl_UNISTD_MODULE_INDICATOR([mkfifo])
+gl_FUNC_MKFIFOAT
+if test $HAVE_MKFIFOAT = 0; then
+ AC_LIBOBJ([mkfifoat])
+fi
+if test $HAVE_MKNODAT = 0; then
+ AC_LIBOBJ([mknodat])
+fi
+gl_SYS_STAT_MODULE_INDICATOR([mkfifoat])
+gl_SYS_STAT_MODULE_INDICATOR([mknodat])
+gl_FUNC_MKNOD
+if test $HAVE_MKNOD = 0 || test $REPLACE_MKNOD = 1; then
+ AC_LIBOBJ([mknod])
+fi
+gl_UNISTD_MODULE_INDICATOR([mknod])
+gl_FUNC_MKTIME
+if test $REPLACE_MKTIME = 1; then
+ AC_LIBOBJ([mktime])
+ gl_PREREQ_MKTIME
+fi
+gl_TIME_MODULE_INDICATOR([mktime])
+gl_MODECHANGE
+gl_MSVC_INVAL
+if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ AC_LIBOBJ([msvc-inval])
+fi
+gl_MSVC_NOTHROW
+if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ AC_LIBOBJ([msvc-nothrow])
+fi
+gl_MULTIARCH
+gl_FUNC_NL_LANGINFO
+if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
+ AC_LIBOBJ([nl_langinfo])
+fi
+gl_LANGINFO_MODULE_INDICATOR([nl_langinfo])
+AC_FUNC_OBSTACK
+dnl Note: AC_FUNC_OBSTACK does AC_LIBSOURCES([obstack.h, obstack.c]).
+gl_FUNC_OPEN
+if test $REPLACE_OPEN = 1; then
+ AC_LIBOBJ([open])
+ gl_PREREQ_OPEN
+fi
+gl_FCNTL_MODULE_INDICATOR([open])
+gl_FUNC_OPENAT
+if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then
+ AC_LIBOBJ([openat])
+ gl_PREREQ_OPENAT
+fi
+gl_MODULE_INDICATOR([openat]) dnl for lib/getcwd.c
+gl_FCNTL_MODULE_INDICATOR([openat])
+gl_FUNC_OPENDIR
+if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
+ AC_LIBOBJ([opendir])
+fi
+gl_DIRENT_MODULE_INDICATOR([opendir])
+gl_PARSE_DATETIME
+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_RAISE
+if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then
+ AC_LIBOBJ([raise])
+ gl_PREREQ_RAISE
+fi
+gl_SIGNAL_MODULE_INDICATOR([raise])
+gl_FUNC_RAWMEMCHR
+if test $HAVE_RAWMEMCHR = 0; then
+ AC_LIBOBJ([rawmemchr])
+ gl_PREREQ_RAWMEMCHR
+fi
+gl_STRING_MODULE_INDICATOR([rawmemchr])
+gl_FUNC_READ
+if test $REPLACE_READ = 1; then
+ AC_LIBOBJ([read])
+ gl_PREREQ_READ
+fi
+gl_UNISTD_MODULE_INDICATOR([read])
+gl_FUNC_READDIR
+if test $HAVE_READDIR = 0; then
+ AC_LIBOBJ([readdir])
+fi
+gl_DIRENT_MODULE_INDICATOR([readdir])
+gl_FUNC_READLINK
+if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
+ AC_LIBOBJ([readlink])
+ gl_PREREQ_READLINK
+fi
+gl_UNISTD_MODULE_INDICATOR([readlink])
+gl_FUNC_READLINKAT
+if test $HAVE_READLINKAT = 0; then
+ AC_LIBOBJ([readlinkat])
+fi
+gl_UNISTD_MODULE_INDICATOR([readlinkat])
+gl_FUNC_REALLOC_POSIX
+if test $REPLACE_REALLOC = 1; then
+ AC_LIBOBJ([realloc])
+fi
+gl_STDLIB_MODULE_INDICATOR([realloc-posix])
+gl_REGEX
+if test $ac_use_included_regex = yes; then
+ AC_LIBOBJ([regex])
+ gl_PREREQ_REGEX
+fi
+gl_FUNC_RENAME
+if test $REPLACE_RENAME = 1; then
+ AC_LIBOBJ([rename])
+fi
+gl_STDIO_MODULE_INDICATOR([rename])
+gl_FUNC_RENAMEAT
+if test $HAVE_RENAMEAT = 0 || test $REPLACE_RENAMEAT = 1; then
+ AC_LIBOBJ([renameat])
+fi
+if test $HAVE_RENAMEAT = 0; then
+ AC_LIBOBJ([at-func2])
+fi
+gl_STDIO_MODULE_INDICATOR([renameat])
+gl_FUNC_REWINDDIR
+if test $HAVE_REWINDDIR = 0; then
+ AC_LIBOBJ([rewinddir])
+fi
+gl_DIRENT_MODULE_INDICATOR([rewinddir])
+gl_FUNC_RMDIR
+if test $REPLACE_RMDIR = 1; then
+ AC_LIBOBJ([rmdir])
+fi
+gl_UNISTD_MODULE_INDICATOR([rmdir])
+gl_FUNC_RPMATCH
+if test $HAVE_RPMATCH = 0; then
+ AC_LIBOBJ([rpmatch])
+ gl_PREREQ_RPMATCH
+fi
+gl_STDLIB_MODULE_INDICATOR([rpmatch])
+gl_PREREQ_SAFE_READ
+gl_PREREQ_SAFE_WRITE
+gl_SAVE_CWD
+gl_SAVEDIR
+gl_FUNC_SETENV
+if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+ AC_LIBOBJ([setenv])
+fi
+gl_STDLIB_MODULE_INDICATOR([setenv])
+gl_SIGNAL_H
+gl_SIZE_MAX
+gl_FUNC_SLEEP
+if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
+ AC_LIBOBJ([sleep])
+fi
+gl_UNISTD_MODULE_INDICATOR([sleep])
+gl_FUNC_SNPRINTF
+gl_STDIO_MODULE_INDICATOR([snprintf])
+gl_MODULE_INDICATOR([snprintf])
+gt_TYPE_SSIZE_T
+gl_FUNC_STAT
+if test $REPLACE_STAT = 1; then
+ AC_LIBOBJ([stat])
+ gl_PREREQ_STAT
+fi
+gl_SYS_STAT_MODULE_INDICATOR([stat])
+gl_STAT_TIME
+gl_STAT_BIRTHTIME
+gl_STDALIGN_H
+gl_STDARG_H
+AM_STDBOOL_H
+gl_STDDEF_H
+gl_STDINT_H
+gl_STDIO_H
+gl_STDLIB_H
+gl_FUNC_STPCPY
+if test $HAVE_STPCPY = 0; then
+ AC_LIBOBJ([stpcpy])
+ gl_PREREQ_STPCPY
+fi
+gl_STRING_MODULE_INDICATOR([stpcpy])
+gl_STRCASE
+if test $HAVE_STRCASECMP = 0; then
+ AC_LIBOBJ([strcasecmp])
+ gl_PREREQ_STRCASECMP
+fi
+if test $HAVE_STRNCASECMP = 0; then
+ AC_LIBOBJ([strncasecmp])
+ gl_PREREQ_STRNCASECMP
+fi
+gl_FUNC_STRCHRNUL
+if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
+ AC_LIBOBJ([strchrnul])
+ gl_PREREQ_STRCHRNUL
+fi
+gl_STRING_MODULE_INDICATOR([strchrnul])
+gl_FUNC_STRDUP_POSIX
+if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
+ AC_LIBOBJ([strdup])
+ gl_PREREQ_STRDUP
+fi
+gl_STRING_MODULE_INDICATOR([strdup])
+gl_FUNC_STRERROR
+if test $REPLACE_STRERROR = 1; then
+ AC_LIBOBJ([strerror])
+fi
+gl_MODULE_INDICATOR([strerror])
+gl_STRING_MODULE_INDICATOR([strerror])
+AC_REQUIRE([gl_HEADER_ERRNO_H])
+AC_REQUIRE([gl_FUNC_STRERROR_0])
+if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+ AC_LIBOBJ([strerror-override])
+ gl_PREREQ_SYS_H_WINSOCK2
+fi
+gl_HEADER_STRING_H
+gl_HEADER_STRINGS_H
+gl_FUNC_STRNDUP
+if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
+ AC_LIBOBJ([strndup])
+fi
+gl_STRING_MODULE_INDICATOR([strndup])
+gl_FUNC_STRNLEN
+if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+ AC_LIBOBJ([strnlen])
+ gl_PREREQ_STRNLEN
+fi
+gl_STRING_MODULE_INDICATOR([strnlen])
+gl_FUNC_STRTOL
+if test $ac_cv_func_strtol = no; then
+ AC_LIBOBJ([strtol])
+fi
+gl_FUNC_STRTOUL
+if test $ac_cv_func_strtoul = no; then
+ AC_LIBOBJ([strtoul])
+fi
+gl_FUNC_STRTOULL
+if test $HAVE_STRTOULL = 0; then
+ AC_LIBOBJ([strtoull])
+ gl_PREREQ_STRTOULL
+fi
+gl_STDLIB_MODULE_INDICATOR([strtoull])
+gl_FUNC_STRTOUMAX
+if test $ac_cv_func_strtoumax = no; then
+ AC_LIBOBJ([strtoumax])
+ gl_PREREQ_STRTOUMAX
+fi
+gl_INTTYPES_MODULE_INDICATOR([strtoumax])
+gl_FUNC_SYMLINK
+if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
+ AC_LIBOBJ([symlink])
+fi
+gl_UNISTD_MODULE_INDICATOR([symlink])
+gl_FUNC_SYMLINKAT
+if test $HAVE_SYMLINKAT = 0; then
+ AC_LIBOBJ([symlinkat])
+fi
+gl_UNISTD_MODULE_INDICATOR([symlinkat])
+gl_HEADER_SYS_STAT_H
+AC_PROG_MKDIR_P
+gl_HEADER_SYS_TIME_H
+AC_PROG_MKDIR_P
+gl_SYS_TYPES_H
+AC_PROG_MKDIR_P
+gl_SYSEXITS
+gl_FUNC_GEN_TEMPNAME
+gl_HEADER_TIME_H
+gl_TIME_R
+if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
+ AC_LIBOBJ([time_r])
+ gl_PREREQ_TIME_R
+fi
+gl_TIME_MODULE_INDICATOR([time_r])
+gl_TIMESPEC
+gl_UNISTD_H
+gl_UNISTD_SAFER
+gl_LIBUNISTRING_LIBHEADER([0.9], [unitypes.h])
+gl_LIBUNISTRING_LIBHEADER([0.9], [uniwidth.h])
+gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/width])
+gl_UNLINKDIR
+gl_FUNC_GLIBC_UNLOCKED_IO
+gl_FUNC_UNSETENV
+if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+ AC_LIBOBJ([unsetenv])
+ gl_PREREQ_UNSETENV
+fi
+gl_STDLIB_MODULE_INDICATOR([unsetenv])
+gl_UTIMENS
+gl_FUNC_UTIMENSAT
+if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
+ AC_LIBOBJ([utimensat])
+fi
+gl_SYS_STAT_MODULE_INDICATOR([utimensat])
+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
+gl_FUNC_WCRTOMB
+if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
+ AC_LIBOBJ([wcrtomb])
+ gl_PREREQ_WCRTOMB
+fi
+gl_WCHAR_MODULE_INDICATOR([wcrtomb])
+gl_WCTYPE_H
+gl_FUNC_WCWIDTH
+if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
+ AC_LIBOBJ([wcwidth])
+fi
+gl_WCHAR_MODULE_INDICATOR([wcwidth])
+gl_FUNC_WRITE
+if test $REPLACE_WRITE = 1; then
+ AC_LIBOBJ([write])
+ gl_PREREQ_WRITE
+fi
+gl_UNISTD_MODULE_INDICATOR([write])
+gl_XALLOC
+gl_XGETCWD
+gl_XSIZE
+gl_XSTRNDUP
+gl_XSTRTOL
+gl_XVASPRINTF
+m4_ifdef([AM_XGETTEXT_OPTION],
+ [AM_][XGETTEXT_OPTION([--flag=xasprintf:1:c-format])])
+ # End of code from modules
+ m4_ifval(gl_LIBSOURCES_LIST, [
+ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ ||
+ for gl_file in ]gl_LIBSOURCES_LIST[ ; do
+ if test ! -r ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file ; then
+ echo "missing file ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file" >&2
+ exit 1
+ fi
+ done])dnl
+ m4_if(m4_sysval, [0], [],
+ [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])])
+ ])
+ m4_popdef([gl_LIBSOURCES_DIR])
+ m4_popdef([gl_LIBSOURCES_LIST])
+ m4_popdef([AC_LIBSOURCES])
+ m4_popdef([AC_REPLACE_FUNCS])
+ m4_popdef([AC_LIBOBJ])
+ AC_CONFIG_COMMANDS_PRE([
+ gl_libobjs=
+ gl_ltlibobjs=
+ 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 -e "$sed_drop_objext" | sort | uniq`; do
+ gl_libobjs="$gl_libobjs $i.$ac_objext"
+ gl_ltlibobjs="$gl_ltlibobjs $i.lo"
+ done
+ fi
+ AC_SUBST([gl_LIBOBJS], [$gl_libobjs])
+ AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs])
+ ])
+ gltests_libdeps=
+ gltests_ltlibdeps=
+ m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ]))
+ m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS]))
+ m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES]))
+ m4_pushdef([gltests_LIBSOURCES_LIST], [])
+ m4_pushdef([gltests_LIBSOURCES_DIR], [])
+ gl_COMMON
+ gl_source_base='tests'
+changequote(,)dnl
+ gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
+changequote([, ])dnl
+ AC_SUBST([gltests_WITNESS])
+ gl_module_indicator_condition=$gltests_WITNESS
+ m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition])
+ m4_popdef([gl_MODULE_INDICATOR_CONDITION])
+ m4_ifval(gltests_LIBSOURCES_LIST, [
+ m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ ||
+ for gl_file in ]gltests_LIBSOURCES_LIST[ ; do
+ if test ! -r ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file ; then
+ echo "missing file ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file" >&2
+ exit 1
+ fi
+ done])dnl
+ m4_if(m4_sysval, [0], [],
+ [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])])
+ ])
+ m4_popdef([gltests_LIBSOURCES_DIR])
+ m4_popdef([gltests_LIBSOURCES_LIST])
+ m4_popdef([AC_LIBSOURCES])
+ m4_popdef([AC_REPLACE_FUNCS])
+ m4_popdef([AC_LIBOBJ])
+ AC_CONFIG_COMMANDS_PRE([
+ gltests_libobjs=
+ gltests_ltlibobjs=
+ 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 -e "$sed_drop_objext" | sort | uniq`; do
+ gltests_libobjs="$gltests_libobjs $i.$ac_objext"
+ gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
+ done
+ fi
+ AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs])
+ AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs])
+ ])
+ LIBGNU_LIBDEPS="$gl_libdeps"
+ AC_SUBST([LIBGNU_LIBDEPS])
+ LIBGNU_LTLIBDEPS="$gl_ltlibdeps"
+ AC_SUBST([LIBGNU_LTLIBDEPS])
+])
+m4trace:m4/gnulib-comp.m4:1046: -1- AC_DEFUN([gl_LIBOBJ], [
+ AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl
+ gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext"
+])
+m4trace:m4/gnulib-comp.m4:1053: -1- AC_DEFUN([gl_REPLACE_FUNCS], [
+ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl
+ AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)])
+])
+m4trace:m4/gnulib-comp.m4:1062: -1- AC_DEFUN([gl_LIBSOURCES], [
+ m4_foreach([_gl_NAME], [$1], [
+ m4_if(_gl_NAME, [alloca.c], [], [
+ m4_define([gl_LIBSOURCES_DIR], [gnu])
+ m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ])
+ ])
+ ])
+])
+m4trace:m4/gnulib-comp.m4:1073: -1- AC_DEFUN([gltests_LIBOBJ], [
+ AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl
+ gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext"
+])
+m4trace:m4/gnulib-comp.m4:1080: -1- AC_DEFUN([gltests_REPLACE_FUNCS], [
+ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl
+ AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)])
+])
+m4trace:m4/gnulib-comp.m4:1089: -1- AC_DEFUN([gltests_LIBSOURCES], [
+ m4_foreach([_gl_NAME], [$1], [
+ m4_if(_gl_NAME, [alloca.c], [], [
+ m4_define([gltests_LIBSOURCES_DIR], [tests])
+ m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ])
+ ])
+ ])
+])
+m4trace:m4/gnulib-comp.m4:1100: -1- AC_DEFUN([gl_FILE_LIST], [
+ build-aux/config.rpath
+ build-aux/gitlog-to-changelog
+ build-aux/snippet/_Noreturn.h
+ build-aux/snippet/arg-nonnull.h
+ build-aux/snippet/c++defs.h
+ build-aux/snippet/warn-on-use.h
+ doc/parse-datetime.texi
+ lib/alloca.c
+ lib/alloca.in.h
+ lib/allocator.c
+ lib/allocator.h
+ lib/anytostr.c
+ lib/areadlink.c
+ lib/areadlink.h
+ lib/areadlinkat.c
+ lib/argmatch.c
+ lib/argmatch.h
+ lib/argp-ba.c
+ lib/argp-eexst.c
+ lib/argp-fmtstream.c
+ lib/argp-fmtstream.h
+ lib/argp-fs-xinl.c
+ lib/argp-help.c
+ lib/argp-namefrob.h
+ lib/argp-parse.c
+ 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/at-func2.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/c-strcase.h
+ lib/c-strcasecmp.c
+ lib/c-strcaseeq.h
+ lib/c-strncasecmp.c
+ lib/canonicalize-lgpl.c
+ lib/careadlinkat.c
+ lib/careadlinkat.h
+ lib/chdir-long.c
+ lib/chdir-long.h
+ lib/chown.c
+ lib/cloexec.c
+ lib/cloexec.h
+ lib/close-stream.c
+ lib/close-stream.h
+ lib/close.c
+ lib/closedir.c
+ lib/closeout.c
+ lib/closeout.h
+ lib/config.charset
+ lib/dirent--.h
+ lib/dirent-private.h
+ lib/dirent-safer.h
+ lib/dirent.in.h
+ lib/dirfd.c
+ lib/dirname-lgpl.c
+ lib/dirname.c
+ lib/dirname.h
+ lib/dosname.h
+ lib/dup-safer.c
+ lib/dup.c
+ lib/dup2.c
+ lib/errno.in.h
+ lib/error.c
+ lib/error.h
+ lib/exclude.c
+ lib/exclude.h
+ lib/exitfail.c
+ lib/exitfail.h
+ lib/fchdir.c
+ lib/fchown-stub.c
+ lib/fcntl.c
+ lib/fcntl.in.h
+ lib/fd-hook.c
+ lib/fd-hook.h
+ lib/fd-safer.c
+ lib/fdopendir.c
+ lib/fdutimensat.c
+ lib/fileblocks.c
+ lib/filename.h
+ lib/filenamecat-lgpl.c
+ lib/filenamecat.h
+ lib/float+.h
+ lib/float.c
+ lib/float.in.h
+ lib/fnmatch.c
+ lib/fnmatch.in.h
+ lib/fnmatch_loop.c
+ lib/fpending.c
+ lib/fpending.h
+ lib/fseek.c
+ lib/fseeko.c
+ lib/fstat.c
+ lib/fstatat.c
+ lib/full-write.c
+ lib/full-write.h
+ lib/futimens.c
+ lib/getcwd-lgpl.c
+ lib/getcwd.c
+ lib/getdelim.c
+ lib/getdtablesize.c
+ lib/getline.c
+ lib/getopt.c
+ lib/getopt.in.h
+ lib/getopt1.c
+ lib/getopt_int.h
+ lib/getpagesize.c
+ lib/gettext.h
+ lib/gettime.c
+ lib/gettimeofday.c
+ lib/hash.c
+ lib/hash.h
+ lib/human.c
+ lib/human.h
+ lib/imaxtostr.c
+ lib/intprops.h
+ lib/inttostr.c
+ lib/inttostr.h
+ lib/inttypes.in.h
+ lib/iswblank.c
+ lib/itold.c
+ lib/langinfo.in.h
+ lib/lchown.c
+ lib/link.c
+ lib/linkat.c
+ lib/localcharset.c
+ lib/localcharset.h
+ lib/lseek.c
+ lib/lstat.c
+ lib/malloc.c
+ lib/malloca.c
+ lib/malloca.h
+ lib/malloca.valgrind
+ lib/mbchar.c
+ lib/mbchar.h
+ lib/mbrtowc.c
+ lib/mbscasecmp.c
+ lib/mbsinit.c
+ lib/mbsrtowcs-impl.h
+ lib/mbsrtowcs-state.c
+ lib/mbsrtowcs.c
+ lib/mbtowc-impl.h
+ lib/mbtowc.c
+ lib/mbuiter.h
+ lib/memchr.c
+ lib/memchr.valgrind
+ lib/mempcpy.c
+ lib/memrchr.c
+ lib/mkdtemp.c
+ lib/mkfifo.c
+ lib/mkfifoat.c
+ lib/mknod.c
+ lib/mknodat.c
+ lib/mktime-internal.h
+ lib/mktime.c
+ lib/modechange.c
+ lib/modechange.h
+ lib/msvc-inval.c
+ lib/msvc-inval.h
+ lib/msvc-nothrow.c
+ lib/msvc-nothrow.h
+ lib/nl_langinfo.c
+ lib/obstack.c
+ lib/obstack.h
+ lib/offtostr.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/opendir.c
+ lib/parse-datetime.h
+ lib/parse-datetime.y
+ 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
+ lib/quotearg.h
+ lib/raise.c
+ lib/rawmemchr.c
+ lib/rawmemchr.valgrind
+ lib/read.c
+ lib/readdir.c
+ lib/readlink.c
+ lib/readlinkat.c
+ lib/realloc.c
+ lib/ref-add.sin
+ lib/ref-del.sin
+ lib/regcomp.c
+ lib/regex.c
+ lib/regex.h
+ lib/regex_internal.c
+ lib/regex_internal.h
+ lib/regexec.c
+ lib/rename.c
+ lib/renameat.c
+ lib/rewinddir.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/save-cwd.c
+ lib/save-cwd.h
+ lib/savedir.c
+ lib/savedir.h
+ lib/setenv.c
+ lib/signal.in.h
+ lib/size_max.h
+ lib/sleep.c
+ lib/snprintf.c
+ lib/stat-macros.h
+ lib/stat-time.h
+ lib/stat.c
+ lib/stdalign.in.h
+ lib/stdarg.in.h
+ lib/stdbool.in.h
+ lib/stddef.in.h
+ lib/stdint.in.h
+ lib/stdio-impl.h
+ lib/stdio.in.h
+ lib/stdlib.in.h
+ lib/stpcpy.c
+ lib/strcasecmp.c
+ lib/strchrnul.c
+ lib/strchrnul.valgrind
+ lib/strdup.c
+ lib/streq.h
+ lib/strerror-override.c
+ lib/strerror-override.h
+ lib/strerror.c
+ lib/string.in.h
+ lib/strings.in.h
+ lib/stripslash.c
+ lib/strncasecmp.c
+ lib/strndup.c
+ lib/strnlen.c
+ lib/strnlen1.c
+ lib/strnlen1.h
+ lib/strtoimax.c
+ lib/strtol.c
+ lib/strtoul.c
+ lib/strtoull.c
+ lib/strtoumax.c
+ lib/symlink.c
+ lib/symlinkat.c
+ lib/sys_stat.in.h
+ lib/sys_time.in.h
+ lib/sys_types.in.h
+ lib/sysexits.in.h
+ lib/tempname.c
+ lib/tempname.h
+ lib/time.in.h
+ lib/time_r.c
+ lib/timespec.h
+ lib/uinttostr.c
+ lib/umaxtostr.c
+ lib/unistd--.h
+ lib/unistd-safer.h
+ lib/unistd.in.h
+ lib/unitypes.in.h
+ lib/uniwidth.in.h
+ lib/uniwidth/cjk.h
+ lib/uniwidth/width.c
+ lib/unlinkdir.c
+ lib/unlinkdir.h
+ lib/unlocked-io.h
+ lib/unsetenv.c
+ lib/utimens.c
+ lib/utimens.h
+ lib/utimensat.c
+ 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/wchar.in.h
+ lib/wcrtomb.c
+ lib/wctype.in.h
+ lib/wcwidth.c
+ lib/write.c
+ lib/xalloc-die.c
+ lib/xalloc-oversized.h
+ lib/xalloc.h
+ lib/xasprintf.c
+ lib/xgetcwd.c
+ lib/xgetcwd.h
+ lib/xmalloc.c
+ lib/xsize.h
+ lib/xstrndup.c
+ lib/xstrndup.h
+ lib/xstrtol-error.c
+ lib/xstrtol.c
+ lib/xstrtol.h
+ lib/xstrtoul.c
+ lib/xstrtoumax.c
+ lib/xvasprintf.c
+ lib/xvasprintf.h
+ m4/00gnulib.m4
+ m4/alloca.m4
+ m4/argp.m4
+ m4/backupfile.m4
+ m4/bison.m4
+ m4/btowc.m4
+ m4/canonicalize.m4
+ m4/chdir-long.m4
+ m4/chown.m4
+ m4/clock_time.m4
+ m4/close-stream.m4
+ m4/close.m4
+ m4/closedir.m4
+ m4/closeout.m4
+ m4/codeset.m4
+ m4/configmake.m4
+ m4/d-ino.m4
+ m4/dirent-safer.m4
+ m4/dirent_h.m4
+ m4/dirfd.m4
+ m4/dirname.m4
+ m4/double-slash-root.m4
+ m4/dup.m4
+ m4/dup2.m4
+ m4/eealloc.m4
+ m4/environ.m4
+ m4/errno_h.m4
+ m4/error.m4
+ m4/exponentd.m4
+ m4/extensions.m4
+ m4/fchdir.m4
+ m4/fcntl-o.m4
+ m4/fcntl.m4
+ m4/fcntl_h.m4
+ m4/fdopendir.m4
+ m4/fileblocks.m4
+ m4/filenamecat.m4
+ m4/float_h.m4
+ m4/fnmatch.m4
+ m4/fpending.m4
+ m4/fseek.m4
+ m4/fseeko.m4
+ m4/fstat.m4
+ m4/fstatat.m4
+ m4/futimens.m4
+ m4/getcwd-abort-bug.m4
+ m4/getcwd-path-max.m4
+ m4/getcwd.m4
+ m4/getdelim.m4
+ m4/getdtablesize.m4
+ m4/getline.m4
+ m4/getopt.m4
+ m4/getpagesize.m4
+ m4/gettext.m4
+ m4/gettime.m4
+ m4/gettimeofday.m4
+ m4/glibc2.m4
+ m4/glibc21.m4
+ m4/gnulib-common.m4
+ m4/human.m4
+ m4/iconv.m4
+ m4/include_next.m4
+ m4/inline.m4
+ m4/intdiv0.m4
+ m4/intl.m4
+ m4/intldir.m4
+ m4/intlmacosx.m4
+ m4/intmax.m4
+ m4/intmax_t.m4
+ m4/inttostr.m4
+ m4/inttypes-pri.m4
+ m4/inttypes.m4
+ m4/inttypes_h.m4
+ m4/iswblank.m4
+ m4/langinfo_h.m4
+ m4/largefile.m4
+ m4/lchown.m4
+ m4/lcmessage.m4
+ m4/lib-ld.m4
+ m4/lib-link.m4
+ m4/lib-prefix.m4
+ m4/libunistring-base.m4
+ m4/link-follow.m4
+ m4/link.m4
+ m4/linkat.m4
+ m4/localcharset.m4
+ m4/locale-fr.m4
+ m4/locale-ja.m4
+ m4/locale-zh.m4
+ m4/lock.m4
+ m4/longlong.m4
+ m4/lseek.m4
+ m4/lstat.m4
+ m4/malloc.m4
+ m4/malloca.m4
+ m4/math_h.m4
+ m4/mbchar.m4
+ m4/mbiter.m4
+ m4/mbrtowc.m4
+ m4/mbsinit.m4
+ m4/mbsrtowcs.m4
+ m4/mbstate_t.m4
+ m4/mbtowc.m4
+ m4/memchr.m4
+ m4/mempcpy.m4
+ m4/memrchr.m4
+ m4/mkdtemp.m4
+ m4/mkfifo.m4
+ m4/mkfifoat.m4
+ m4/mknod.m4
+ m4/mktime.m4
+ m4/mmap-anon.m4
+ m4/mode_t.m4
+ m4/modechange.m4
+ m4/msvc-inval.m4
+ m4/msvc-nothrow.m4
+ m4/multiarch.m4
+ m4/nl_langinfo.m4
+ m4/nls.m4
+ m4/nocrash.m4
+ m4/open.m4
+ m4/openat.m4
+ m4/opendir.m4
+ m4/parse-datetime.m4
+ m4/pathmax.m4
+ m4/po.m4
+ m4/printf-posix.m4
+ m4/printf.m4
+ m4/priv-set.m4
+ m4/progtest.m4
+ m4/quote.m4
+ m4/quotearg.m4
+ m4/raise.m4
+ m4/rawmemchr.m4
+ m4/read.m4
+ m4/readdir.m4
+ m4/readlink.m4
+ m4/readlinkat.m4
+ m4/realloc.m4
+ m4/regex.m4
+ m4/rename.m4
+ m4/renameat.m4
+ m4/rewinddir.m4
+ m4/rmdir.m4
+ m4/rpmatch.m4
+ m4/safe-read.m4
+ m4/safe-write.m4
+ m4/save-cwd.m4
+ m4/savedir.m4
+ m4/setenv.m4
+ m4/signal_h.m4
+ m4/size_max.m4
+ m4/sleep.m4
+ m4/snprintf.m4
+ m4/ssize_t.m4
+ m4/stat-time.m4
+ m4/stat.m4
+ m4/stdalign.m4
+ m4/stdarg.m4
+ m4/stdbool.m4
+ m4/stddef_h.m4
+ m4/stdint.m4
+ m4/stdint_h.m4
+ m4/stdio_h.m4
+ m4/stdlib_h.m4
+ m4/stpcpy.m4
+ m4/strcase.m4
+ m4/strchrnul.m4
+ m4/strdup.m4
+ m4/strerror.m4
+ m4/string_h.m4
+ m4/strings_h.m4
+ m4/strndup.m4
+ m4/strnlen.m4
+ m4/strtol.m4
+ m4/strtoul.m4
+ m4/strtoull.m4
+ m4/strtoumax.m4
+ m4/symlink.m4
+ m4/symlinkat.m4
+ m4/sys_socket_h.m4
+ m4/sys_stat_h.m4
+ m4/sys_time_h.m4
+ m4/sys_types_h.m4
+ m4/sysexits.m4
+ m4/tempname.m4
+ m4/threadlib.m4
+ m4/time_h.m4
+ m4/time_r.m4
+ m4/timespec.m4
+ m4/tm_gmtoff.m4
+ m4/uintmax_t.m4
+ m4/unistd-safer.m4
+ m4/unistd_h.m4
+ m4/unlinkdir.m4
+ m4/unlocked-io.m4
+ m4/utimbuf.m4
+ m4/utimens.m4
+ m4/utimensat.m4
+ m4/utimes.m4
+ m4/vasnprintf.m4
+ m4/vasprintf.m4
+ m4/version-etc.m4
+ m4/visibility.m4
+ m4/vsnprintf.m4
+ m4/warn-on-use.m4
+ m4/wchar_h.m4
+ m4/wchar_t.m4
+ m4/wcrtomb.m4
+ m4/wctype_h.m4
+ m4/wcwidth.m4
+ m4/wint_t.m4
+ m4/write.m4
+ m4/xalloc.m4
+ m4/xgetcwd.m4
+ m4/xsize.m4
+ m4/xstrndup.m4
+ m4/xstrtol.m4
+ m4/xvasprintf.m4
+])
+m4trace:m4/human.m4:8: -1- AC_DEFUN([gl_HUMAN], [
+ :
+])
+m4trace:m4/iconv.m4:9: -1- AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], [
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([iconv])
+])
+m4trace:m4/iconv.m4:20: -1- AC_DEFUN([AM_ICONV_LINK], [
+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+ dnl those with the standalone portable GNU libiconv installed).
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+
+ dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed libiconv and not disabled its use
+ dnl via --without-libiconv-prefix, he wants to use it. The first
+ dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed.
+ am_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+
+ AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stdlib.h>
+#include <iconv.h>
+ ]],
+ [[iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);]])],
+ [am_cv_func_iconv=yes])
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stdlib.h>
+#include <iconv.h>
+ ]],
+ [[iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);]])],
+ [am_cv_lib_iconv=yes]
+ [am_cv_func_iconv=yes])
+ LIBS="$am_save_LIBS"
+ fi
+ ])
+ 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, AIX 6.1..7.1, HP-UX 11.11,
+ dnl Solaris 10.
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ int result = 0;
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ 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_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ result |= 1;
+ iconv_close (cd_utf8_to_88591);
+ }
+ }
+ /* 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)
+ result |= 2;
+ iconv_close (cd_ascii_to_88591);
+ }
+ }
+ /* Test against AIX 6.1..7.1 bug: Buffer overrun. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304";
+ static char buf[2] = { (char)0xDE, (char)0xAD };
+ const char *inptr = input;
+ size_t inbytesleft = 1;
+ char *outptr = buf;
+ size_t outbytesleft = 1;
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
+ result |= 4;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ result |= 8;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ result |= 16;
+ return result;
+}]])],
+ [am_cv_func_iconv_works=yes],
+ [am_cv_func_iconv_works=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac
+changequote([,])dnl
+ ])
+ LIBS="$am_save_LIBS"
+ ])
+ case "$am_cv_func_iconv_works" in
+ *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+ *) am_func_iconv=yes ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+ AC_DEFINE([HAVE_ICONV], [1],
+ [Define if you have the iconv() function and it works.])
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ AC_MSG_CHECKING([how to link with libiconv])
+ AC_MSG_RESULT([$LIBICONV])
+ else
+ dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+ dnl either.
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+ AC_SUBST([LIBICONV])
+ AC_SUBST([LTLIBICONV])
+])
+m4trace:m4/iconv.m4:230: -1- AC_DEFUN_ONCE([AM_ICONV], [
+ AM_ICONV_LINK
+ if test "$am_cv_func_iconv" = yes; then
+ AC_MSG_CHECKING([for iconv declaration])
+ AC_CACHE_VAL([am_cv_proto_iconv], [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+ ]],
+ [[]])],
+ [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([
+ $am_cv_proto_iconv])
+ AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
+ [Define as const if the declaration of iconv() needs const.])
+ dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
+ m4_ifdef([gl_ICONV_H_DEFAULTS],
+ [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
+ if test -n "$am_cv_proto_iconv_arg1"; then
+ ICONV_CONST="const"
+ fi
+ ])
+ fi
+])
+m4trace:m4/include_next.m4:35: -1- AC_DEFUN([gl_INCLUDE_NEXT], [
+ AC_LANG_PREPROC_REQUIRE()
+ AC_CACHE_CHECK([whether the preprocessor supports include_next],
+ [gl_cv_have_include_next],
+ [rm -rf conftestd1a conftestd1b conftestd2
+ mkdir conftestd1a conftestd1b conftestd2
+ 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>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+ cat <<EOF > conftestd1b/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include <stdio.h>
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+ cat <<EOF > conftestd2/conftest.h
+#ifndef DEFINED_IN_CONFTESTD1
+#error "include_next test doesn't work"
+#endif
+#define DEFINED_IN_CONFTESTD2
+EOF
+ gl_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
+dnl We intentionally avoid using AC_LANG_SOURCE here.
+ AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]],
+ [gl_cv_have_include_next=yes],
+ [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
+ AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]],
+ [gl_cv_have_include_next=buggy],
+ [gl_cv_have_include_next=no])
+ ])
+ CPPFLAGS="$gl_save_CPPFLAGS"
+ rm -rf conftestd1a conftestd1b conftestd2
+ ])
+ PRAGMA_SYSTEM_HEADER=
+ if test $gl_cv_have_include_next = yes; then
+ INCLUDE_NEXT=include_next
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+ if test -n "$GCC"; then
+ PRAGMA_SYSTEM_HEADER='#pragma GCC system_header'
+ fi
+ else
+ if test $gl_cv_have_include_next = buggy; then
+ INCLUDE_NEXT=include
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+ else
+ INCLUDE_NEXT=include
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include
+ fi
+ fi
+ AC_SUBST([INCLUDE_NEXT])
+ AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE])
+ AC_SUBST([PRAGMA_SYSTEM_HEADER])
+ AC_CACHE_CHECK([whether system header files limit the line length],
+ [gl_cv_pragma_columns],
+ [dnl HP NonStop systems, which define __TANDEM, have this misfeature.
+ AC_EGREP_CPP([choke me],
+ [
+#ifdef __TANDEM
+choke me
+#endif
+ ],
+ [gl_cv_pragma_columns=yes],
+ [gl_cv_pragma_columns=no])
+ ])
+ if test $gl_cv_pragma_columns = yes; then
+ PRAGMA_COLUMNS="#pragma COLUMNS 10000"
+ else
+ PRAGMA_COLUMNS=
+ fi
+ AC_SUBST([PRAGMA_COLUMNS])
+])
+m4trace:m4/include_next.m4:153: -1- AC_DEFUN([gl_CHECK_NEXT_HEADERS], [
+ gl_NEXT_HEADERS_INTERNAL([$1], [check])
+])
+m4trace:m4/include_next.m4:163: -1- AC_DEFUN([gl_NEXT_HEADERS], [
+ gl_NEXT_HEADERS_INTERNAL([$1], [assume])
+])
+m4trace:m4/include_next.m4:169: -1- AC_DEFUN([gl_NEXT_HEADERS_INTERNAL], [
+ AC_REQUIRE([gl_INCLUDE_NEXT])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ m4_if([$2], [check],
+ [AC_CHECK_HEADERS_ONCE([$1])
+ ])
+
+dnl FIXME: gl_next_header and gl_header_exists must be used unquoted
+dnl until we can assume autoconf 2.64 or newer.
+ m4_foreach_w([gl_HEADER_NAME], [$1],
+ [AS_VAR_PUSHDEF([gl_next_header],
+ [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_defn([gl_HEADER_NAME])[>],
+ m4_defn([gl_next_header]),
+ [m4_if([$2], [check],
+ [AS_VAR_PUSHDEF([gl_header_exists],
+ [ac_cv_header_]m4_defn([gl_HEADER_NAME]))
+ if test AS_VAR_GET(gl_header_exists) = yes; then
+ AS_VAR_POPDEF([gl_header_exists])
+ ])
+ 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
+ dnl files that contain only a #include of other header files and
+ dnl no non-comment tokens of their own. This leads to a failure
+ dnl to detect the absolute name of <dirent.h>, <signal.h>,
+ dnl <poll.h> and others. The workaround is to force preservation
+ dnl of comments through option -C. This ensures all necessary
+ dnl #line directives 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
+changequote(,)
+ case "$host_os" in
+ mingw*)
+ dnl For the sake of native Windows compilers (excluding gcc),
+ dnl treat backslash as a directory separator, like /.
+ dnl Actually, these compilers use a double-backslash as
+ dnl directory separator, inside the
+ dnl # line "filename"
+ dnl directives.
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ dnl A sed expression that turns a string into a basic regular
+ dnl expression, for use within "/.../".
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+changequote([,])
+ gl_header_literal_regex=`echo ']m4_defn([gl_HEADER_NAME])[' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+changequote(,)dnl
+ s|^/[^/]|//&|
+changequote([,])dnl
+ p
+ q
+ }'
+ 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 "$gl_absolute_header_sed"`'"'])
+ m4_if([$2], [check],
+ [else
+ AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>'])
+ fi
+ ])
+ ])
+ fi
+ AC_SUBST(
+ 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])])
+])
+m4trace:m4/inline.m4:12: -1- AC_DEFUN([gl_INLINE], [
+ AC_REQUIRE([AC_C_INLINE])
+ AC_CACHE_CHECK([whether the compiler generally respects inline],
+ [gl_cv_c_inline_effective],
+ [if test $ac_cv_c_inline = no; then
+ gl_cv_c_inline_effective=no
+ else
+ dnl GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is
+ dnl specified.
+ dnl Use AC_COMPILE_IFELSE here, not AC_EGREP_CPP, because the result
+ dnl depends on optimization flags, which can be in CFLAGS.
+ dnl (AC_EGREP_CPP looks only at the CPPFLAGS.)
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[]],
+ [[#ifdef __NO_INLINE__
+ #error "inline is not effective"
+ #endif]])],
+ [gl_cv_c_inline_effective=yes],
+ [gl_cv_c_inline_effective=no])
+ fi
+ ])
+ if test $gl_cv_c_inline_effective = yes; then
+ AC_DEFINE([HAVE_INLINE], [1],
+ [Define to 1 if the compiler supports one of the keywords
+ 'inline', '__inline__', '__inline' and effectively inlines
+ functions marked as such.])
+ fi
+])
+m4trace:m4/intl.m4:25: -1- AC_DEFUN([AM_INTL_SUBDIR], [
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ AC_REQUIRE([gt_GLIBC2])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([gl_VISIBILITY])dnl
+ AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl
+ AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
+ AC_REQUIRE([gt_TYPE_WINT_T])dnl
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gt_TYPE_INTMAX_T])
+ AC_REQUIRE([gt_PRINTF_POSIX])
+ AC_REQUIRE([gl_GLIBC21])dnl
+ AC_REQUIRE([gl_XSIZE])dnl
+ AC_REQUIRE([gl_FCNTL_O_FLAGS])dnl
+ AC_REQUIRE([gt_INTL_MACOSX])dnl
+
+ dnl Support for automake's --enable-silent-rules.
+ case "$enable_silent_rules" in
+ yes) INTL_DEFAULT_VERBOSITY=0;;
+ no) INTL_DEFAULT_VERBOSITY=1;;
+ *) INTL_DEFAULT_VERBOSITY=1;;
+ esac
+ AC_SUBST([INTL_DEFAULT_VERBOSITY])
+
+ AC_CHECK_TYPE([ptrdiff_t], ,
+ [AC_DEFINE([ptrdiff_t], [long],
+ [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+ ])
+ AC_CHECK_HEADERS([stddef.h stdlib.h string.h])
+ AC_CHECK_FUNCS([asprintf fwprintf newlocale putenv setenv setlocale \
+ 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).
+ gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
+ gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
+
+ dnl Use the *_unlocked functions only if they are declared.
+ dnl (because some of them were defined without being declared in Solaris
+ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+ dnl on Solaris 2.5.1 to run on Solaris 2.6).
+ dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
+ gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
+
+ case $gt_cv_func_printf_posix in
+ *yes) HAVE_POSIX_PRINTF=1 ;;
+ *) HAVE_POSIX_PRINTF=0 ;;
+ esac
+ AC_SUBST([HAVE_POSIX_PRINTF])
+ if test "$ac_cv_func_asprintf" = yes; then
+ HAVE_ASPRINTF=1
+ else
+ HAVE_ASPRINTF=0
+ fi
+ AC_SUBST([HAVE_ASPRINTF])
+ if test "$ac_cv_func_snprintf" = yes; then
+ HAVE_SNPRINTF=1
+ else
+ HAVE_SNPRINTF=0
+ fi
+ AC_SUBST([HAVE_SNPRINTF])
+ if test "$ac_cv_func_newlocale" = yes; then
+ HAVE_NEWLOCALE=1
+ else
+ HAVE_NEWLOCALE=0
+ fi
+ AC_SUBST([HAVE_NEWLOCALE])
+ if test "$ac_cv_func_wprintf" = yes; then
+ HAVE_WPRINTF=1
+ else
+ HAVE_WPRINTF=0
+ fi
+ AC_SUBST([HAVE_WPRINTF])
+
+ AM_LANGINFO_CODESET
+ gt_LC_MESSAGES
+
+ dnl Compilation on mingw and Cygwin needs special Makefile rules, because
+ dnl 1. when we install a shared library, we must arrange to export
+ dnl auxiliary pointer variables for every exported variable,
+ dnl 2. when we install a shared library and a static library simultaneously,
+ dnl the include file specifies __declspec(dllimport) and therefore we
+ dnl must arrange to define the auxiliary pointer variables for the
+ dnl exported variables _also_ in the static library.
+ if test "$enable_shared" = yes; then
+ case "$host_os" in
+ mingw* | cygwin*) is_woe32dll=yes ;;
+ *) is_woe32dll=no ;;
+ esac
+ else
+ is_woe32dll=no
+ fi
+ WOE32DLL=$is_woe32dll
+ AC_SUBST([WOE32DLL])
+
+ dnl On mingw and Cygwin, we can activate special Makefile rules which add
+ dnl version information to the shared libraries and executables.
+ case "$host_os" in
+ mingw* | cygwin*) is_woe32=yes ;;
+ *) is_woe32=no ;;
+ esac
+ WOE32=$is_woe32
+ AC_SUBST([WOE32])
+ if test $WOE32 = yes; then
+ dnl Check for a program that compiles Windows resource files.
+ AC_CHECK_TOOL([WINDRES], [windres])
+ fi
+
+ dnl Determine whether when creating a library, "-lc" should be passed to
+ dnl libtool or not. On many platforms, it is required for the libtool option
+ dnl -no-undefined to work. On HP-UX, however, the -lc - stored by libtool
+ dnl in the *.la files - makes it impossible to create multithreaded programs,
+ dnl because libtool also reorders the -lc to come before the -pthread, and
+ dnl this disables pthread_create() <http://docs.hp.com/en/1896/pthreads.html>.
+ case "$host_os" in
+ hpux*) LTLIBC="" ;;
+ *) LTLIBC="-lc" ;;
+ esac
+ AC_SUBST([LTLIBC])
+
+ dnl Rename some macros and functions used for locking.
+ AH_BOTTOM([
+#define __libc_lock_t gl_lock_t
+#define __libc_lock_define gl_lock_define
+#define __libc_lock_define_initialized gl_lock_define_initialized
+#define __libc_lock_init gl_lock_init
+#define __libc_lock_lock gl_lock_lock
+#define __libc_lock_unlock gl_lock_unlock
+#define __libc_lock_recursive_t gl_recursive_lock_t
+#define __libc_lock_define_recursive gl_recursive_lock_define
+#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized
+#define __libc_lock_init_recursive gl_recursive_lock_init
+#define __libc_lock_lock_recursive gl_recursive_lock_lock
+#define __libc_lock_unlock_recursive gl_recursive_lock_unlock
+#define glthread_in_use libintl_thread_in_use
+#define glthread_lock_init_func libintl_lock_init_func
+#define glthread_lock_lock_func libintl_lock_lock_func
+#define glthread_lock_unlock_func libintl_lock_unlock_func
+#define glthread_lock_destroy_func libintl_lock_destroy_func
+#define glthread_rwlock_init_multithreaded libintl_rwlock_init_multithreaded
+#define glthread_rwlock_init_func libintl_rwlock_init_func
+#define glthread_rwlock_rdlock_multithreaded libintl_rwlock_rdlock_multithreaded
+#define glthread_rwlock_rdlock_func libintl_rwlock_rdlock_func
+#define glthread_rwlock_wrlock_multithreaded libintl_rwlock_wrlock_multithreaded
+#define glthread_rwlock_wrlock_func libintl_rwlock_wrlock_func
+#define glthread_rwlock_unlock_multithreaded libintl_rwlock_unlock_multithreaded
+#define glthread_rwlock_unlock_func libintl_rwlock_unlock_func
+#define glthread_rwlock_destroy_multithreaded libintl_rwlock_destroy_multithreaded
+#define glthread_rwlock_destroy_func libintl_rwlock_destroy_func
+#define glthread_recursive_lock_init_multithreaded libintl_recursive_lock_init_multithreaded
+#define glthread_recursive_lock_init_func libintl_recursive_lock_init_func
+#define glthread_recursive_lock_lock_multithreaded libintl_recursive_lock_lock_multithreaded
+#define glthread_recursive_lock_lock_func libintl_recursive_lock_lock_func
+#define glthread_recursive_lock_unlock_multithreaded libintl_recursive_lock_unlock_multithreaded
+#define glthread_recursive_lock_unlock_func libintl_recursive_lock_unlock_func
+#define glthread_recursive_lock_destroy_multithreaded libintl_recursive_lock_destroy_multithreaded
+#define glthread_recursive_lock_destroy_func libintl_recursive_lock_destroy_func
+#define glthread_once_func libintl_once_func
+#define glthread_once_singlethreaded libintl_once_singlethreaded
+#define glthread_once_multithreaded libintl_once_multithreaded
+])
+])
+m4trace:m4/intl.m4:211: -1- AC_DEFUN([gt_INTL_SUBDIR_CORE], [
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+ AC_REQUIRE([gt_INTDIV0])dnl
+ AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
+ AC_REQUIRE([gt_INTTYPES_PRI])dnl
+ AC_REQUIRE([gl_LOCK])dnl
+
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }]],
+ [[]])],
+ [AC_DEFINE([HAVE_BUILTIN_EXPECT], [1],
+ [Define to 1 if the compiler understands __builtin_expect.])])
+
+ AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h])
+ AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
+ stpcpy strcasecmp strdup strtoul tsearch uselocale argz_count \
+ argz_stringify argz_next __fsetlocking])
+
+ dnl Use the *_unlocked functions only if they are declared.
+ dnl (because some of them were defined without being declared in Solaris
+ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+ dnl on Solaris 2.5.1 to run on Solaris 2.6).
+ dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
+ gt_CHECK_DECL([feof_unlocked], [#include <stdio.h>])
+ gt_CHECK_DECL([fgets_unlocked], [#include <stdio.h>])
+
+ AM_ICONV
+
+ dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+ dnl because plural.y uses bison specific features. It requires at least
+ dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+ dnl compile.
+ dnl bison is only needed for the maintainer (who touches plural.y). But in
+ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+ dnl the rule in general Makefile. Now, some people carelessly touch the
+ dnl files or have a broken "make" program, hence the plural.c rule will
+ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+ dnl present or too old.
+ AC_CHECK_PROGS([INTLBISON], [bison])
+ if test -z "$INTLBISON"; then
+ ac_verc_fail=yes
+ else
+ dnl Found it, now check the version.
+ AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+changequote([,])dnl
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ esac
+ AC_MSG_RESULT([$ac_prog_version])
+ fi
+ if test $ac_verc_fail = yes; then
+ INTLBISON=:
+ fi
+])
+m4trace:m4/intl.m4:280: -1- AC_DEFUN([gt_CHECK_DECL], [
+ AC_CACHE_CHECK([whether $1 is declared], [ac_cv_have_decl_$1],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[$2]],
+ [[
+#ifndef $1
+ char *p = (char *) $1;
+#endif
+ ]])],
+ [ac_cv_have_decl_$1=yes],
+ [ac_cv_have_decl_$1=no])])
+ if test $ac_cv_have_decl_$1 = yes; then
+ gt_value=1
+ else
+ gt_value=0
+ fi
+ AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
+ [Define to 1 if you have the declaration of '$1', and to 0 if you don't.])
+])
+m4trace:m4/intlmacosx.m4:18: -1- AC_DEFUN([gt_INTL_MACOSX], [
+ dnl Check for API introduced in MacOS X 10.2.
+ AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+ [gt_cv_func_CFPreferencesCopyAppValue],
+ [gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <CoreFoundation/CFPreferences.h>]],
+ [[CFPreferencesCopyAppValue(NULL, NULL)]])],
+ [gt_cv_func_CFPreferencesCopyAppValue=yes],
+ [gt_cv_func_CFPreferencesCopyAppValue=no])
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+ AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
+ [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+ fi
+ dnl Check for API introduced in MacOS X 10.3.
+ AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
+ [gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <CoreFoundation/CFLocale.h>]],
+ [[CFLocaleCopyCurrent();]])],
+ [gt_cv_func_CFLocaleCopyCurrent=yes],
+ [gt_cv_func_CFLocaleCopyCurrent=no])
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
+ [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
+ fi
+ INTL_MACOSX_LIBS=
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+ fi
+ AC_SUBST([INTL_MACOSX_LIBS])
+])
+m4trace:m4/intmax.m4:11: -1- AC_DEFUN([gt_TYPE_INTMAX_T], [
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_CACHE_CHECK([for intmax_t], [gt_cv_c_intmax_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+ ]],
+ [[intmax_t x = -1;
+ return !x;]])],
+ [gt_cv_c_intmax_t=yes],
+ [gt_cv_c_intmax_t=no])])
+ if test $gt_cv_c_intmax_t = yes; then
+ AC_DEFINE([HAVE_INTMAX_T], [1],
+ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
+ fi
+])
+m4trace:m4/intmax_t.m4:15: -1- AC_DEFUN([gl_AC_TYPE_INTMAX_T], [
+ dnl For simplicity, we assume that a header file defines 'intmax_t' if and
+ dnl only if it defines 'uintmax_t'.
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ test $ac_cv_type_long_long_int = yes \
+ && ac_type='long long' \
+ || ac_type='long'
+ AC_DEFINE_UNQUOTED([intmax_t], [$ac_type],
+ [Define to long or long long if <inttypes.h> and <stdint.h> don't define.])
+ else
+ AC_DEFINE([HAVE_INTMAX_T], [1],
+ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
+ fi
+])
+m4trace:m4/intmax_t.m4:36: -1- AC_DEFUN([gt_AC_TYPE_INTMAX_T], [
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_CACHE_CHECK([for intmax_t], [gt_cv_c_intmax_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+ ]],
+ [[intmax_t x = -1; return !x;]])],
+ [gt_cv_c_intmax_t=yes],
+ [gt_cv_c_intmax_t=no])])
+ if test $gt_cv_c_intmax_t = yes; then
+ AC_DEFINE([HAVE_INTMAX_T], [1],
+ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
+ else
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ test $ac_cv_type_long_long_int = yes \
+ && ac_type='long long' \
+ || ac_type='long'
+ AC_DEFINE_UNQUOTED([intmax_t], [$ac_type],
+ [Define to long or long long if <stdint.h> and <inttypes.h> don't define.])
+ fi
+])
+m4trace:m4/inttostr.m4:7: -1- AC_DEFUN([gl_INTTOSTR], [
+ gl_PREREQ_INTTOSTR
+ gl_PREREQ_IMAXTOSTR
+ gl_PREREQ_OFFTOSTR
+ gl_PREREQ_UMAXTOSTR
+ gl_PREREQ_UINTTOSTR
+])
+m4trace:m4/inttostr.m4:17: -1- AC_DEFUN([gl_PREREQ_INTTOSTR], [
+ AC_REQUIRE([AC_TYPE_OFF_T])
+ :
+])
+m4trace:m4/inttostr.m4:23: -1- AC_DEFUN([gl_PREREQ_IMAXTOSTR], [:])
+m4trace:m4/inttostr.m4:26: -1- AC_DEFUN([gl_PREREQ_OFFTOSTR], [:])
+m4trace:m4/inttostr.m4:29: -1- AC_DEFUN([gl_PREREQ_UMAXTOSTR], [:])
+m4trace:m4/inttostr.m4:32: -1- AC_DEFUN([gl_PREREQ_UINTTOSTR], [:])
+m4trace:m4/inttypes-pri.m4:14: -1- AC_DEFUN([gt_INTTYPES_PRI], [
+ AC_CHECK_HEADERS([inttypes.h])
+ if test $ac_cv_header_inttypes_h = yes; then
+ AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
+ [gt_cv_inttypes_pri_broken],
+ [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+ ]],
+ [[]])],
+ [gt_cv_inttypes_pri_broken=no],
+ [gt_cv_inttypes_pri_broken=yes])
+ ])
+ fi
+ if test "$gt_cv_inttypes_pri_broken" = yes; then
+ AC_DEFINE_UNQUOTED([PRI_MACROS_BROKEN], [1],
+ [Define if <inttypes.h> exists and defines unusable PRI* macros.])
+ PRI_MACROS_BROKEN=1
+ else
+ PRI_MACROS_BROKEN=0
+ fi
+ AC_SUBST([PRI_MACROS_BROKEN])
+])
+m4trace:m4/inttypes.m4:10: -1- AC_DEFUN([gl_INTTYPES_H], [
+ AC_REQUIRE([gl_INTTYPES_INCOMPLETE])
+ gl_INTTYPES_PRI_SCN
+])
+m4trace:m4/inttypes.m4:16: -1- AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE], [
+ AC_REQUIRE([gl_STDINT_H])
+ AC_CHECK_HEADERS_ONCE([inttypes.h])
+
+ dnl Override <inttypes.h> always, so that the portability warnings work.
+ AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
+ gl_CHECK_NEXT_HEADERS([inttypes.h])
+
+ AC_REQUIRE([gl_MULTIARCH])
+
+ 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])
+])
+m4trace:m4/inttypes.m4:34: -1- AC_DEFUN([gl_INTTYPES_PRI_SCN], [
+ AC_REQUIRE([gt_INTTYPES_PRI])
+
+ 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])
+
+ 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
+ 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
+])
+m4trace:m4/inttypes.m4:97: -1- AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION], [
+ AC_CACHE_CHECK([whether $3],
+ [gl_cv_test_$1],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[/* 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 $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
+ $1=1;
+ else
+ $1=0;
+ fi
+ AC_SUBST([$1])
+])
+m4trace:m4/inttypes.m4:132: -1- AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR], [
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+])
+m4trace:m4/inttypes.m4:139: -1- AC_DEFUN([gl_INTTYPES_H_DEFAULTS], [
+ GNULIB_IMAXABS=0; AC_SUBST([GNULIB_IMAXABS])
+ GNULIB_IMAXDIV=0; AC_SUBST([GNULIB_IMAXDIV])
+ GNULIB_STRTOIMAX=0; AC_SUBST([GNULIB_STRTOIMAX])
+ GNULIB_STRTOUMAX=0; AC_SUBST([GNULIB_STRTOUMAX])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_DECL_IMAXABS=1; AC_SUBST([HAVE_DECL_IMAXABS])
+ HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV])
+ HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
+ HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
+ REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX])
+ INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
+ INT64_MAX_EQ_LONG_MAX='defined _LP64'; AC_SUBST([INT64_MAX_EQ_LONG_MAX])
+ PRI_MACROS_BROKEN=0; AC_SUBST([PRI_MACROS_BROKEN])
+ PRIPTR_PREFIX=__PRIPTR_PREFIX; AC_SUBST([PRIPTR_PREFIX])
+ UINT32_MAX_LT_UINTMAX_MAX=1; AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX])
+ UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; AC_SUBST([UINT64_MAX_EQ_ULONG_MAX])
+])
+m4trace:m4/inttypes_h.m4:12: -1- AC_DEFUN([gl_AC_HEADER_INTTYPES_H], [
+ AC_CACHE_CHECK([for inttypes.h], [gl_cv_header_inttypes_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <sys/types.h>
+#include <inttypes.h>
+ ]],
+ [[uintmax_t i = (uintmax_t) -1; return !i;]])],
+ [gl_cv_header_inttypes_h=yes],
+ [gl_cv_header_inttypes_h=no])])
+ if test $gl_cv_header_inttypes_h = yes; then
+ AC_DEFINE_UNQUOTED([HAVE_INTTYPES_H_WITH_UINTMAX], [1],
+ [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
+ and declares uintmax_t. ])
+ fi
+])
+m4trace:m4/iswblank.m4:7: -1- AC_DEFUN([gl_FUNC_ISWBLANK], [
+ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
+ AC_REQUIRE([gl_WCTYPE_H])
+ dnl Persuade glibc <wctype.h> to declare iswblank().
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([iswblank])
+ AC_CHECK_DECLS([iswblank], , , [[
+/* 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 <wctype.h>
+]])
+ if test $ac_cv_func_iswblank = no; then
+ HAVE_ISWBLANK=0
+ if test $ac_cv_have_decl_iswblank = yes; then
+ REPLACE_ISWBLANK=1
+ fi
+ fi
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ dnl Redefine all of iswcntrl, ..., towupper in <wctype.h>.
+ :
+ else
+ if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+ dnl Redefine only iswblank.
+ :
+ fi
+ fi
+
+])
+m4trace:m4/langinfo_h.m4:7: -1- 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])
+
+ dnl <langinfo.h> is always overridden, because of GNULIB_POSIXCHECK.
+ 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_T_FMT_AMPM=0
+ HAVE_LANGINFO_ERA=0
+ HAVE_LANGINFO_YESEXPR=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. T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3.
+ 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 T_FMT_AMPM],
+ [gl_cv_header_langinfo_t_fmt_ampm],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <langinfo.h>
+int a = T_FMT_AMPM;
+]])],
+ [gl_cv_header_langinfo_t_fmt_ampm=yes],
+ [gl_cv_header_langinfo_t_fmt_ampm=no])
+ ])
+ if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
+ HAVE_LANGINFO_T_FMT_AMPM=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
+ AC_CACHE_CHECK([whether langinfo.h defines YESEXPR],
+ [gl_cv_header_langinfo_yesexpr],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <langinfo.h>
+int a = YESEXPR;
+]])],
+ [gl_cv_header_langinfo_yesexpr=yes],
+ [gl_cv_header_langinfo_yesexpr=no])
+ ])
+ if test $gl_cv_header_langinfo_yesexpr = yes; then
+ HAVE_LANGINFO_YESEXPR=1
+ fi
+ else
+ HAVE_LANGINFO_H=0
+ fi
+ AC_SUBST([HAVE_LANGINFO_H])
+ AC_SUBST([HAVE_LANGINFO_CODESET])
+ AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM])
+ AC_SUBST([HAVE_LANGINFO_ERA])
+ AC_SUBST([HAVE_LANGINFO_YESEXPR])
+
+ 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])
+])
+m4trace:m4/langinfo_h.m4:90: -1- 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/langinfo_h.m4:99: -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])
+])
+m4trace:m4/largefile.m4:10: -1- AC_DEFUN([AC_SYS_LARGEFILE], [AC_ARG_ENABLE(largefile,
+ [ --disable-largefile omit support for large files])
+if test "$enable_largefile" != no; then
+
+ AC_CACHE_CHECK([for special C compiler options needed for large files],
+ ac_cv_sys_largefile_CC,
+ [ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
+ AC_COMPILE_IFELSE([], [break])
+ CC="$CC -n32"
+ AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi])
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+ _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
+ ac_cv_sys_file_offset_bits,
+ [Number of bits in a file offset, on hosts where this is settable.],
+ [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1,
+ ac_cv_sys_large_files,
+ [Define for large files, on AIX-style hosts.],
+ [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+ fi
+
+ AH_VERBATIM([_DARWIN_USE_64_BIT_INODE],
+[/* Enable large inode numbers on Mac OS X. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif])
+fi
+])
+m4trace:m4/lchown.m4:15: -1- AC_DEFUN([gl_FUNC_LCHOWN], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_CHOWN])
+ AC_CHECK_FUNCS_ONCE([lchmod])
+ AC_CHECK_FUNCS([lchown])
+ if test $ac_cv_func_lchown = no; then
+ HAVE_LCHOWN=0
+ 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.
+ REPLACE_LCHOWN=1
+ fi
+])
+m4trace:m4/lib-ld.m4:12: -1- AC_DEFUN([AC_LIB_PROG_LD_GNU], [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes ;;
+*)
+ acl_cv_prog_gnu_ld=no ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+m4trace:m4/lib-ld.m4:25: -1- AC_DEFUN([AC_LIB_PROG_LD], [AC_ARG_WITH([gnu-ld],
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]* | [A-Za-z]:[\\/]*)]
+ [re_direlt='/[^/][^/]*/\.\./']
+ # 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%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL([acl_cv_path_LD],
+[if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # 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" != yes && break ;;
+ esac
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT([$LD])
+else
+ AC_MSG_RESULT([no])
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
+m4trace:m4/lib-link.m4:17: -1- AC_DEFUN([AC_LIB_LINKFLAGS], [
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ pushdef([Name],[m4_translit([$1],[./+-], [____])])
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+ ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
+ ])
+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+ LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ AC_SUBST([LIB]NAME[_PREFIX])
+ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+ dnl results of this search when this library appears as a dependency.
+ HAVE_LIB[]NAME=yes
+ popdef([NAME])
+ popdef([Name])
+])
+m4trace:m4/lib-link.m4:57: -1- AC_DEFUN([AC_LIB_HAVE_LINKFLAGS], [
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ pushdef([Name],[m4_translit([$1],[./+-], [____])])
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+
+ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed lib[]Name and not disabled its use
+ dnl via --without-lib[]Name-prefix, he wants to use it.
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+ ac_save_LIBS="$LIBS"
+ dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS,
+ dnl because these -l options might require -L options that are present in
+ dnl LIBS. -l options benefit only from the -L options listed before it.
+ dnl Otherwise, add it to the front of LIBS, because it may be a static
+ dnl library that depends on another static library that is present in LIBS.
+ dnl Static libraries benefit only from the static libraries listed after
+ dnl it.
+ case " $LIB[]NAME" in
+ *" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
+ *) LIBS="$LIB[]NAME $LIBS" ;;
+ esac
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[$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 lib][$1 library.])
+ AC_MSG_CHECKING([how to link with lib[]$1])
+ AC_MSG_RESULT([$LIB[]NAME])
+ else
+ HAVE_LIB[]NAME=no
+ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+ dnl $INC[]NAME either.
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ LIB[]NAME=
+ LTLIB[]NAME=
+ LIB[]NAME[]_PREFIX=
+ fi
+ AC_SUBST([HAVE_LIB]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ AC_SUBST([LIB]NAME[_PREFIX])
+ popdef([NAME])
+ popdef([Name])
+])
+m4trace:m4/lib-link.m4:125: -1- AC_DEFUN([AC_LIB_RPATH], [
+ dnl Tell automake >= 1.10 to complain if config.rpath is missing.
+ m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
+ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
+ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
+ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+ AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+ ])
+ wl="$acl_cv_wl"
+ acl_libext="$acl_cv_libext"
+ acl_shlibext="$acl_cv_shlibext"
+ acl_libname_spec="$acl_cv_libname_spec"
+ acl_library_names_spec="$acl_cv_library_names_spec"
+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ acl_hardcode_direct="$acl_cv_hardcode_direct"
+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ dnl Determine whether the user wants rpath handling at all.
+ AC_ARG_ENABLE([rpath],
+ [ --disable-rpath do not hardcode runtime library paths],
+ :, enable_rpath=yes)
+])
+m4trace:m4/lib-link.m4:161: -1- AC_DEFUN([AC_LIB_FROMPACKAGE], [
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ define([acl_frompackage_]NAME, [$2])
+ popdef([NAME])
+ pushdef([PACK],[$2])
+ pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ define([acl_libsinpackage_]PACKUP,
+ m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1])
+ popdef([PACKUP])
+ popdef([PACK])
+])
+m4trace:m4/lib-link.m4:181: -1- AC_DEFUN([AC_LIB_LINKFLAGS_BODY], [
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
+ pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
+ dnl Autoconf >= 2.61 supports dots in --with options.
+ pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_ARG_WITH(P_A_C_K[-prefix],
+[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
+ --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
+ fi
+ fi
+])
+ dnl Search the library and its dependencies in $additional_libdir and
+ dnl $LDFLAGS. Using breadth-first-seach.
+ LIB[]NAME=
+ 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=
+ names_next_round='$1 $2'
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+ dnl or AC_LIB_HAVE_LINKFLAGS call.
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+ else
+ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+ dnl that this library doesn't exist. So just drop it.
+ :
+ fi
+ else
+ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+ dnl and the already constructed $LIBNAME/$LTLIBNAME.
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ dir="$additional_libdir"
+ dnl The same code as in the loop below:
+ dnl First look for a shared library.
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ dnl Then look for a static library.
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ dnl First look for a shared library.
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ dnl Then look for a static library.
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ dnl Found the library.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ dnl Linking with a shared library. We attempt to hardcode its
+ dnl directory into the executable's runpath, unless it's the
+ dnl standard /usr/lib.
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+ dnl No hardcoding is needed.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ dnl The hardcoding into $LIBNAME is system dependent.
+ if test "$acl_hardcode_direct" = yes; then
+ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+ dnl resulting binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ dnl Rely on "-L$found_dir".
+ dnl But don't add it if it's already contained in the LDFLAGS
+ dnl or the already constructed $LIBNAME
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
+ dnl here, because this doesn't fit in flags passed to the
+ dnl compiler. So give up. No hardcoding. This affects only
+ dnl very old systems.
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ dnl Linking with a static library.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+ else
+ dnl We shouldn't come here, but anyway it's good to have a
+ dnl fallback.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+ fi
+ fi
+ dnl Assume the include files are nearby.
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = '$1'; then
+ LIB[]NAME[]_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = '$1'; then
+ LIB[]NAME[]_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ dnl Potentially add $additional_includedir to $INCNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 3. if it's already present in $CPPFLAGS or the already
+ dnl constructed $INCNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INC[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $INCNAME.
+ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ dnl Look for dependencies.
+ if test -n "$found_la"; then
+ dnl Read the .la file. It defines the variables
+ dnl dlname, library_names, old_library, dependency_libs, current,
+ dnl age, revision, installed, dlopen, dlpreopen, libdir.
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ dnl We use only dependency_libs.
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 3. if it's already present in $LDFLAGS or the already
+ dnl constructed $LIBNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LIBNAME.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LTLIBNAME.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ dnl Handle this in the next round.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ dnl Handle this in the next round. Throw away the .la's
+ dnl directory; it is already contained in a preceding -L
+ dnl option.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ dnl Most likely an immediate library name.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ dnl Didn't find the library; assume it is in the system directories
+ dnl known to the linker and runtime loader. (All the system
+ dnl directories known to the linker should also be known to the
+ dnl runtime loader, otherwise the system is severely misconfigured.)
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user must
+ dnl pass all path elements in one option. We can arrange that for a
+ dnl single library, but not when more than one $LIBNAMEs are used.
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ dnl When using libtool, the option that works for both libraries and
+ dnl executables is -R. The -R options are cumulative.
+ for found_dir in $ltrpathdirs; do
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+ done
+ fi
+ popdef([P_A_C_K])
+ popdef([PACKLIBS])
+ popdef([PACKUP])
+ popdef([PACK])
+ popdef([NAME])
+])
+m4trace:m4/lib-link.m4:684: -1- AC_DEFUN([AC_LIB_APPENDTOVAR], [
+ for element in [$2]; do
+ haveit=
+ for x in $[$1]; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ [$1]="${[$1]}${[$1]:+ }$element"
+ fi
+ done
+])
+m4trace:m4/lib-link.m4:708: -1- AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], [
+ AC_REQUIRE([AC_LIB_RPATH])
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ $1=
+ if test "$enable_rpath" != no; then
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode directories into the resulting
+ dnl binary.
+ rpathdirs=
+ next=
+ for opt in $2; do
+ if test -n "$next"; then
+ dir="$next"
+ dnl No need to hardcode the standard /usr/lib.
+ if test "X$dir" != "X/usr/$acl_libdirstem" \
+ && test "X$dir" != "X/usr/$acl_libdirstem2"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ next=
+ else
+ case $opt in
+ -L) next=yes ;;
+ -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
+ dnl No need to hardcode the standard /usr/lib.
+ if test "X$dir" != "X/usr/$acl_libdirstem" \
+ && test "X$dir" != "X/usr/$acl_libdirstem2"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ next= ;;
+ *) next= ;;
+ esac
+ fi
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n ""$3""; then
+ dnl libtool is used for linking. Use -R options.
+ for dir in $rpathdirs; do
+ $1="${$1}${$1:+ }-R$dir"
+ done
+ else
+ dnl The linker is used for linking directly.
+ if test -n "$acl_hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user
+ dnl must pass all path elements in one option.
+ alldirs=
+ for dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ $1="$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ $1="${$1}${$1:+ }$flag"
+ done
+ fi
+ fi
+ fi
+ fi
+ fi
+ AC_SUBST([$1])
+])
+m4trace:m4/lib-prefix.m4:12: -1- AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])
+m4trace:m4/lib-prefix.m4:22: -1- AC_DEFUN([AC_LIB_PREFIX], [
+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_LIB_ARG_WITH([lib-prefix],
+[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+ --without-lib-prefix don't search for libraries in includedir and libdir],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ fi
+ fi
+])
+ if test $use_additional = yes; then
+ dnl Potentially add $additional_includedir to $CPPFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's already present in $CPPFLAGS,
+ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ for x in $CPPFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $CPPFLAGS.
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ dnl Potentially add $additional_libdir to $LDFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's already present in $LDFLAGS,
+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+ haveit=
+ for x in $LDFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LDFLAGS.
+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ fi
+])
+m4trace:m4/lib-prefix.m4:122: -1- AC_DEFUN([AC_LIB_PREPARE_PREFIX], [
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+])
+m4trace:m4/lib-prefix.m4:145: -1- AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], [
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ $1
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+])
+m4trace:m4/lib-prefix.m4:162: -1- AC_DEFUN([AC_LIB_PREPARE_MULTILIB], [
+ dnl There is no formal standard regarding lib and lib64.
+ dnl On glibc systems, the current practice is that on a system supporting
+ dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
+ dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
+ dnl the compiler's default mode by looking at the compiler's library search
+ dnl path. If at least one of its elements ends in /lib64 or points to a
+ dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
+ dnl Otherwise we use the default, namely "lib".
+ dnl On Solaris systems, the current practice is that on a system supporting
+ dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
+ dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
+ dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ acl_libdirstem=lib
+ acl_libdirstem2=
+ case "$host_os" in
+ solaris*)
+ dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
+ dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>.
+ dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
+ dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
+ dnl symlink is missing, so we set acl_libdirstem2 too.
+ AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
+ [AC_EGREP_CPP([sixtyfour bits], [
+#ifdef _LP64
+sixtyfour bits
+#endif
+ ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
+ ])
+ if test $gl_cv_solaris_64bit = yes; then
+ acl_libdirstem=lib/64
+ case "$host_cpu" in
+ sparc*) acl_libdirstem2=lib/sparcv9 ;;
+ i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
+ esac
+ fi
+ ;;
+ *)
+ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ 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 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ fi
+ ;;
+ esac
+ test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+])
+m4trace:m4/libunistring-base.m4:22: -1- AC_DEFUN([gl_LIBUNISTRING_MODULE], [
+ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE])
+ dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from
+ dnl gl_LIBUNISTRING_CORE if that macro has been run.
+ AM_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_COMPILE_$2]),
+ [gl_LIBUNISTRING_VERSION_CMP([$1])])
+])
+m4trace:m4/libunistring-base.m4:48: -1- AC_DEFUN([gl_LIBUNISTRING_LIBHEADER], [
+ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE])
+ dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from
+ dnl gl_LIBUNISTRING_CORE if that macro has been run.
+ if gl_LIBUNISTRING_VERSION_CMP([$1]); then
+ LIBUNISTRING_[]AS_TR_CPP([$2])='$2'
+ else
+ LIBUNISTRING_[]AS_TR_CPP([$2])=
+ fi
+ AC_SUBST([LIBUNISTRING_]AS_TR_CPP([$2]))
+])
+m4trace:m4/libunistring-base.m4:63: -1- AC_DEFUN([gl_LIBUNISTRING_LIB_PREPARE], [
+ dnl Ensure that HAVE_LIBUNISTRING is fully determined at this point.
+ m4_ifdef([gl_LIBUNISTRING], [AC_REQUIRE([gl_LIBUNISTRING])])
+
+ AC_REQUIRE([AC_PROG_AWK])
+
+dnl Sed expressions to extract the parts of a version number.
+changequote(,)
+gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+changequote([,])
+
+ if test "$HAVE_LIBUNISTRING" = yes; then
+ LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"`
+ LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"`
+ LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
+ fi
+])
+m4trace:m4/libunistring-base.m4:99: -1- AC_DEFUN([gl_LIBUNISTRING_VERSION_CMP], [ { test "$HAVE_LIBUNISTRING" != yes \
+ || {
+ dnl AS_LITERAL_IF exists and works fine since autoconf-2.59 at least.
+ AS_LITERAL_IF([$1],
+ [dnl This is the optimized variant, that assumes the argument is a literal:
+ m4_pushdef([requested_version_major],
+ [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^\([0-9]*\).*], [\1]), [])])
+ m4_pushdef([requested_version_minor],
+ [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.]\([0-9]*\).*], [\1]), [$1])])
+ m4_pushdef([requested_version_subminor],
+ [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.][0-9]*[.]\([0-9]*\).*], [\1]), [$1])])
+ test $LIBUNISTRING_VERSION_MAJOR -lt requested_version_major \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq requested_version_major \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt requested_version_minor \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq requested_version_minor \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt requested_version_subminor
+ }
+ }
+ }
+ m4_popdef([requested_version_subminor])
+ m4_popdef([requested_version_minor])
+ m4_popdef([requested_version_major])
+ ],
+ [dnl This is the unoptimized variant:
+ requested_version_major=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_major"`
+ requested_version_minor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_minor"`
+ requested_version_subminor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_subminor"`
+ test $LIBUNISTRING_VERSION_MAJOR -lt $requested_version_major \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq $requested_version_major \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt $requested_version_minor \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq $requested_version_minor \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt $requested_version_subminor
+ }
+ }
+ }
+ ])
+ }
+ }])
+m4trace:m4/link-follow.m4:17: -1- AC_DEFUN([gl_FUNC_LINK_FOLLOWS_SYMLINK], [dnl
+ AC_CHECK_FUNCS_ONCE([readlink])
+ dnl Mingw lacks link, although gnulib provides a good replacement.
+ dnl However, it also lacks symlink, so there's nothing to test in
+ dnl the first place, and no reason to need to distinguish between
+ dnl linkat variants. So, we set LINK_FOLLOWS_SYMLINKS to 0.
+ gl_link_follows_symlinks=0 # assume GNU behavior
+ if test $ac_cv_func_readlink = yes; then
+ dnl Solaris has an __xpg4 variable in libc, and it determines the
+ dnl behaviour of link(): It dereferences a symlink if and only if
+ dnl __xpg4 != 0.
+ AC_CACHE_CHECK([for __xpg4], [gl_cv_have___xpg4],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[extern int __xpg4;]],
+ [[return __xpg4;]])],
+ [gl_cv_have___xpg4=yes],
+ [gl_cv_have___xpg4=no])
+ ])
+ if test $gl_cv_have___xpg4 = yes; then
+ gl_link_follows_symlinks=-1
+ else
+ AC_CACHE_CHECK([whether link(2) dereferences a symlink],
+ [gl_cv_func_link_follows_symlink],
+ [
+ # Create a regular file.
+ echo > conftest.file
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+# include <sys/types.h>
+# include <sys/stat.h>
+# include <unistd.h>
+# include <stdlib.h>
+
+# define SAME_INODE(Stat_buf_1, Stat_buf_2) \
+ ((Stat_buf_1).st_ino == (Stat_buf_2).st_ino \
+ && (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)
+
+ int
+ main ()
+ {
+ const char *file = "conftest.file";
+ const char *sym = "conftest.sym";
+ const char *hard = "conftest.hard";
+ struct stat sb_file, sb_hard;
+
+ /* Create a symlink to the regular file. */
+ if (symlink (file, sym))
+ return 2;
+
+ /* Create a hard link to that symlink. */
+ if (link (sym, hard))
+ return 3;
+
+ if (lstat (hard, &sb_hard))
+ return 4;
+ if (lstat (file, &sb_file))
+ return 5;
+
+ /* If the dev/inode of hard and file are the same, then
+ the link call followed the symlink. */
+ return SAME_INODE (sb_hard, sb_file) ? 1 : 0;
+ }
+ ]])],
+ [gl_cv_func_link_follows_symlink=no], dnl GNU behavior
+ [gl_cv_func_link_follows_symlink=yes], dnl Followed link/compile failed
+ [gl_cv_func_link_follows_symlink=unknown] dnl We're cross compiling.
+ )
+ rm -f conftest.file conftest.sym conftest.hard
+ ])
+ case $gl_cv_func_link_follows_symlink in
+ yes) gl_link_follows_symlinks=1 ;;
+ no) ;; # already defaulted to 0
+ *) gl_link_follows_symlinks=-2 ;;
+ esac
+ fi
+ fi
+ AC_DEFINE_UNQUOTED([LINK_FOLLOWS_SYMLINKS], [$gl_link_follows_symlinks],
+ [Define to 1 if 'link(2)' dereferences symbolic links, 0 if it
+ creates hard links to symlinks, -1 if it depends on the variable __xpg4,
+ and -2 if unknown.])
+])
+m4trace:m4/link.m4:7: -1- AC_DEFUN([gl_FUNC_LINK], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([link])
+ if test $ac_cv_func_link = no; then
+ HAVE_LINK=0
+ else
+ AC_CACHE_CHECK([whether link obeys POSIX],
+ [gl_cv_func_link_works],
+ [touch conftest.a
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.a conftest.lnk
+ fi
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>
+ ]],
+ [[int result = 0;
+ if (!link ("conftest.a", "conftest.b/"))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!link ("conftest.lnk/", "conftest.b"))
+ result |= 2;
+ if (rename ("conftest.a", "conftest.b"))
+ result |= 4;
+ if (!link ("conftest.b", "conftest.lnk"))
+ result |= 8;
+#endif
+ return result;
+ ]])],
+ [gl_cv_func_link_works=yes], [gl_cv_func_link_works=no],
+ [gl_cv_func_link_works="guessing no"])
+ rm -f conftest.a conftest.b conftest.lnk])
+ if test "$gl_cv_func_link_works" != yes; then
+ REPLACE_LINK=1
+ fi
+ fi
+])
+m4trace:m4/linkat.m4:11: -1- AC_DEFUN([gl_FUNC_LINKAT], [
+ AC_REQUIRE([gl_FUNC_OPENAT])
+ AC_REQUIRE([gl_FUNC_LINK_FOLLOWS_SYMLINK])
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CHECK_FUNCS_ONCE([linkat symlink])
+ AC_CHECK_HEADERS_ONCE([sys/param.h])
+ if test $ac_cv_func_linkat = no; then
+ HAVE_LINKAT=0
+ else
+ AC_CACHE_CHECK([whether linkat(,AT_SYMLINK_FOLLOW) works],
+ [gl_cv_func_linkat_follow],
+ [rm -rf conftest.f1 conftest.f2
+ touch conftest.f1
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <fcntl.h>
+#include <unistd.h>
+#ifdef __linux__
+/* Linux added linkat in 2.6.16, but did not add AT_SYMLINK_FOLLOW
+ until 2.6.18. Always replace linkat to support older kernels. */
+choke me
+#endif
+]], [return linkat (AT_FDCWD, "conftest.f1", AT_FDCWD, "conftest.f2",
+ AT_SYMLINK_FOLLOW);])],
+ [gl_cv_func_linkat_follow=yes],
+ [gl_cv_func_linkat_follow="need runtime check"])
+ rm -rf conftest.f1 conftest.f2])
+ AC_CACHE_CHECK([whether linkat handles trailing slash correctly],
+ [gl_cv_func_linkat_slash],
+ [rm -rf conftest.a conftest.b conftest.c conftest.d
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <stdio.h>
+ ]],
+ [[int result;
+ int fd;
+ /* Create a regular file. */
+ fd = open ("conftest.a", O_CREAT | O_EXCL | O_WRONLY, 0600);
+ if (fd < 0)
+ return 1;
+ if (write (fd, "hello", 5) < 5)
+ return 2;
+ if (close (fd) < 0)
+ return 3;
+ /* Test whether hard links are supported on the current
+ device. */
+ if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.b",
+ AT_SYMLINK_FOLLOW) < 0)
+ return 0;
+ result = 0;
+ /* Test whether a trailing "/" is treated like "/.". */
+ if (linkat (AT_FDCWD, "conftest.a/", AT_FDCWD, "conftest.c",
+ AT_SYMLINK_FOLLOW) == 0)
+ result |= 4;
+ if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.d/",
+ AT_SYMLINK_FOLLOW) == 0)
+ result |= 8;
+ return result;
+ ]])],
+ [gl_cv_func_linkat_slash=yes],
+ [gl_cv_func_linkat_slash=no],
+ [# Guess yes on glibc systems, no otherwise.
+ case "$host_os" in
+ *-gnu*) gl_cv_func_linkat_slash="guessing yes";;
+ *) gl_cv_func_linkat_slash="guessing no";;
+ esac
+ ])
+ rm -rf conftest.a conftest.b conftest.c conftest.d])
+ case "$gl_cv_func_linkat_slash" in
+ *yes) gl_linkat_slash_bug=0 ;;
+ *) gl_linkat_slash_bug=1 ;;
+ esac
+ if test "$gl_cv_func_linkat_follow" != yes \
+ || test $gl_linkat_slash_bug = 1; then
+ REPLACE_LINKAT=1
+ AC_DEFINE_UNQUOTED([LINKAT_TRAILING_SLASH_BUG], [$gl_linkat_slash_bug],
+ [Define to 1 if linkat fails to recognize a trailing slash.])
+ fi
+ fi
+])
+m4trace:m4/localcharset.m4:7: -1- 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.
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_GLIBC21])
+])
+m4trace:m4/locale-fr.m4:10: -1- AC_DEFUN([gt_LOCALE_FR], [
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AM_LANGINFO_CODESET])
+ AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
+changequote(,)dnl
+#include <locale.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 () {
+ /* Check whether the given locale name is recognized by the system. */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 the abbreviation of the second month, the second
+ character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+ one byte long. 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) < 3 || buf[2] != 'v') return 1;
+ /* Check whether the decimal separator is a comma.
+ On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+ are nl_langinfo(RADIXCHAR) are both ".". */
+ if (localeconv () ->decimal_point[0] != ',') return 1;
+ return 0;
+}
+changequote([,])dnl
+ ])])
+ if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the native Windows locale name.
+ if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=French_France.1252
+ else
+ # None found.
+ gt_cv_locale_fr=none
+ fi
+ ;;
+ *)
+ # 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 usual locale name.
+ if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.ISO-8859-1
+ else
+ # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+ if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.ISO8859-1
+ else
+ # Test for the HP-UX locale name.
+ if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.iso88591
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr
+ else
+ # None found.
+ gt_cv_locale_fr=none
+ fi
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+ ])
+ LOCALE_FR=$gt_cv_locale_fr
+ AC_SUBST([LOCALE_FR])
+])
+m4trace:m4/locale-fr.m4:133: -1- AC_DEFUN([gt_LOCALE_FR_UTF8], [
+ AC_REQUIRE([AM_LANGINFO_CODESET])
+ AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
+changequote(,)dnl
+#include <locale.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 () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if !(defined __BEOS__ || defined __HAIKU__)
+ /* Check whether the given locale name is recognized by the system. */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+# else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+ /* 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 the abbreviation of the second month, the second
+ character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+ two bytes long, with UTF-8 encoding. */
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%b", &t) < 4
+ || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+ return 1;
+#endif
+ /* Check whether the decimal separator is a comma.
+ On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+ are nl_langinfo(RADIXCHAR) are both ".". */
+ if (localeconv () ->decimal_point[0] != ',') return 1;
+ return 0;
+}
+changequote([,])dnl
+ ])])
+ if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the hypothetical native Windows locale name.
+ if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=French_France.65001
+ else
+ # None found.
+ gt_cv_locale_fr_utf8=none
+ fi
+ ;;
+ *)
+ # 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 usual locale name.
+ if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr_FR
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr_FR.UTF-8
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr.UTF-8
+ else
+ # None found.
+ gt_cv_locale_fr_utf8=none
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+ ])
+ LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+ AC_SUBST([LOCALE_FR_UTF8])
+])
+m4trace:m4/locale-ja.m4:10: -1- AC_DEFUN([gt_LOCALE_JA], [
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AM_LANGINFO_CODESET])
+ AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
+changequote(,)dnl
+#include <locale.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 (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 MB_CUR_MAX is > 1. This excludes the dysfunctional locales
+ on Cygwin 1.5.x. */
+ if (MB_CUR_MAX == 1)
+ return 1;
+ /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+ This excludes the UTF-8 encoding (except on MirBSD). */
+ 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;
+ return 0;
+}
+changequote([,])dnl
+ ])])
+ if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Note that on native Windows, the Japanese locale is
+ # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+ # cannot use it here.
+ gt_cv_locale_ja=none
+ ;;
+ *)
+ # 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 AIX locale name.
+ if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.EUC-JP
+ else
+ # Test for the HP-UX, OSF/1, NetBSD locale name.
+ if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.eucJP
+ else
+ # Test for the IRIX, FreeBSD locale name.
+ if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.EUC
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja
+ else
+ # Special test for NetBSD 1.6.
+ if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+ gt_cv_locale_ja=ja_JP.eucJP
+ else
+ # None found.
+ gt_cv_locale_ja=none
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+ ])
+ LOCALE_JA=$gt_cv_locale_ja
+ AC_SUBST([LOCALE_JA])
+])
+m4trace:m4/locale-zh.m4:10: -1- AC_DEFUN([gt_LOCALE_ZH_CN], [
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AM_LANGINFO_CODESET])
+ AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
+changequote(,)dnl
+#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 (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 (except on MirBSD). */
+ 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;
+}
+changequote([,])dnl
+ ])])
+ if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the hypothetical native Windows locale name.
+ if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_zh_CN=Chinese_China.54936
+ else
+ # None found.
+ gt_cv_locale_zh_CN=none
+ fi
+ ;;
+ solaris2.8)
+ # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+ # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+ # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+ gt_cv_locale_zh_CN=none
+ ;;
+ *)
+ # 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
+ ;;
+ esac
+ 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*
+ ])
+ LOCALE_ZH_CN=$gt_cv_locale_zh_CN
+ AC_SUBST([LOCALE_ZH_CN])
+])
+m4trace:m4/longlong.m4:17: -1- AC_DEFUN([AC_TYPE_LONG_LONG_INT], [
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+ AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
+ [ac_cv_type_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
+ if test $ac_cv_type_long_long_int = yes; then
+ dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
+ dnl If cross compiling, assume the bug is not 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=no],
+ [:])
+ fi
+ fi])
+ if test $ac_cv_type_long_long_int = yes; then
+ AC_DEFINE([HAVE_LONG_LONG_INT], [1],
+ [Define to 1 if the system has the type 'long long int'.])
+ fi
+])
+m4trace:m4/longlong.m4:67: -1- AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT], [
+ AC_CACHE_CHECK([for unsigned long long int],
+ [ac_cv_type_unsigned_long_long_int],
+ [ac_cv_type_unsigned_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ AC_LINK_IFELSE(
+ [_AC_TYPE_LONG_LONG_SNIPPET],
+ [],
+ [ac_cv_type_unsigned_long_long_int=no])
+ fi])
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+ AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
+ [Define to 1 if the system has the type 'unsigned long long int'.])
+ fi
+])
+m4trace:m4/longlong.m4:89: -1- 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. */
+ /* 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)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -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));]])
+])
+m4trace:m4/lseek.m4:7: -1- AC_DEFUN([gl_FUNC_LSEEK], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CACHE_CHECK([whether lseek detects pipes], [gl_cv_func_lseek_pipe],
+ [if test $cross_compiling = no; then
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/types.h> /* for off_t */
+#include <stdio.h> /* for SEEK_CUR */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <io.h>
+#endif
+]], [[
+ /* 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 \
+ && 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([AC_LANG_SOURCE([[
+#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])
+ fi])
+ if test $gl_cv_func_lseek_pipe = no; then
+ REPLACE_LSEEK=1
+ AC_DEFINE([LSEEK_PIPE_BROKEN], [1],
+ [Define to 1 if lseek does not detect pipes.])
+ fi
+])
+m4trace:m4/lstat.m4:11: -1- 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 is a no-op.
+ AC_CHECK_FUNCS_ONCE([lstat])
+ if test $ac_cv_func_lstat = yes; then
+ AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then
+ REPLACE_LSTAT=1
+ fi
+ else
+ HAVE_LSTAT=0
+ fi
+])
+m4trace:m4/lstat.m4:28: -1- AC_DEFUN([gl_PREREQ_LSTAT], [
+ AC_REQUIRE([AC_C_INLINE])
+ :
+])
+m4trace:m4/lstat.m4:34: -1- AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK], [
+ dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it
+ dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ.
+ AC_CACHE_CHECK([whether lstat correctly handles trailing slash],
+ [gl_cv_func_lstat_dereferences_slashed_symlink],
+ [rm -f conftest.sym conftest.file
+ echo >conftest.file
+ if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [AC_INCLUDES_DEFAULT],
+ [[struct stat sbuf;
+ /* Linux will dereference the symlink and fail, as required by
+ POSIX. 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;
+ ]])],
+ [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
+ [gl_cv_func_lstat_dereferences_slashed_symlink=no],
+ [# When cross-compiling, be pessimistic so we will end up using the
+ # replacement version of lstat that checks for trailing slashes and
+ # calls lstat a second time when necessary.
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+ ])
+ else
+ # If the 'ln -s' command failed, then we probably don't even
+ # have an lstat function.
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+ fi
+ rm -f conftest.sym conftest.file
+ ])
+ test $gl_cv_func_lstat_dereferences_slashed_symlink = yes &&
+ AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
+ [Define to 1 if 'lstat' dereferences a symlink specified
+ with a trailing slash.])
+])
+m4trace:m4/malloc.m4:11: -1- AC_DEFUN([gl_FUNC_MALLOC_GNU], [
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ dnl _AC_FUNC_MALLOC_IF is defined in Autoconf.
+ _AC_FUNC_MALLOC_IF(
+ [AC_DEFINE([HAVE_MALLOC_GNU], [1],
+ [Define to 1 if your system has a GNU libc compatible 'malloc'
+ function, and to 0 otherwise.])],
+ [AC_DEFINE([HAVE_MALLOC_GNU], [0])
+ REPLACE_MALLOC=1
+ ])
+])
+m4trace:m4/malloc.m4:28: -1- AC_DEFUN([gl_FUNC_MALLOC_POSIX], [
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+ if test $gl_cv_func_malloc_posix = yes; then
+ AC_DEFINE([HAVE_MALLOC_POSIX], [1],
+ [Define if the 'malloc' function is POSIX compliant.])
+ else
+ REPLACE_MALLOC=1
+ fi
+])
+m4trace:m4/malloc.m4:42: -1- AC_DEFUN([gl_CHECK_MALLOC_POSIX], [
+ AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant],
+ [gl_cv_func_malloc_posix],
+ [
+ dnl It is too dangerous to try to allocate a large amount of memory:
+ dnl some systems go to their knees when you do that. So assume that
+ dnl all Unix implementations of the function are POSIX compliant.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[]],
+ [[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ choke me
+ #endif
+ ]])],
+ [gl_cv_func_malloc_posix=yes],
+ [gl_cv_func_malloc_posix=no])
+ ])
+])
+m4trace:m4/malloca.m4:8: -1- AC_DEFUN([gl_MALLOCA], [
+ dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables
+ dnl @ALLOCA@ and @LTALLOCA@.
+ dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies.
+ AC_REQUIRE([gl_EEMALLOC])
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+])
+m4trace:m4/math_h.m4:7: -1- AC_DEFUN([gl_MATH_H], [
+ AC_REQUIRE([gl_MATH_H_DEFAULTS])
+ gl_CHECK_NEXT_HEADERS([math.h])
+ AC_REQUIRE([AC_C_INLINE])
+
+ AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
+ [[/* Solaris 10 has a broken definition of NAN. Other platforms
+ fail to provide NAN, or provide it only in C99 mode; this
+ test only needs to fail when NAN is provided but wrong. */
+ float f = 1.0f;
+#ifdef NAN
+ f = NAN;
+#endif
+ return f == 0;]])],
+ [gl_cv_header_math_nan_works=yes],
+ [gl_cv_header_math_nan_works=no])])
+ if test $gl_cv_header_math_nan_works = no; then
+ REPLACE_NAN=1
+ fi
+ AC_CACHE_CHECK([whether HUGE_VAL works], [gl_cv_header_math_huge_val_works],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
+ [[/* Solaris 10 has a broken definition of HUGE_VAL. */
+ double d = HUGE_VAL;
+ return d == 0;]])],
+ [gl_cv_header_math_huge_val_works=yes],
+ [gl_cv_header_math_huge_val_works=no])])
+ if test $gl_cv_header_math_huge_val_works = no; then
+ REPLACE_HUGE_VAL=1
+ fi
+
+ 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 <math.h>]],
+ [acosf acosl asinf asinl atanf atanl
+ ceilf ceill copysign copysignf copysignl cosf cosl coshf
+ expf expl fabsf floorf floorl fma fmaf fmal fmodf frexpf frexpl
+ ldexpf ldexpl logb logf logl log10f modff powf
+ rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl
+ tanf tanl tanhf trunc truncf truncl])
+])
+m4trace:m4/math_h.m4:50: -1- AC_DEFUN([gl_MATH_MODULE_INDICATOR], [
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_MATH_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/math_h.m4:59: -1- AC_DEFUN([gl_MATH_H_DEFAULTS], [
+ GNULIB_ACOSF=0; AC_SUBST([GNULIB_ACOSF])
+ GNULIB_ACOSL=0; AC_SUBST([GNULIB_ACOSL])
+ GNULIB_ASINF=0; AC_SUBST([GNULIB_ASINF])
+ GNULIB_ASINL=0; AC_SUBST([GNULIB_ASINL])
+ GNULIB_ATANF=0; AC_SUBST([GNULIB_ATANF])
+ GNULIB_ATANL=0; AC_SUBST([GNULIB_ATANL])
+ GNULIB_ATAN2F=0; AC_SUBST([GNULIB_ATAN2F])
+ GNULIB_CEIL=0; AC_SUBST([GNULIB_CEIL])
+ GNULIB_CEILF=0; AC_SUBST([GNULIB_CEILF])
+ GNULIB_CEILL=0; AC_SUBST([GNULIB_CEILL])
+ GNULIB_COPYSIGN=0; AC_SUBST([GNULIB_COPYSIGN])
+ GNULIB_COPYSIGNF=0; AC_SUBST([GNULIB_COPYSIGNF])
+ GNULIB_COPYSIGNL=0; AC_SUBST([GNULIB_COPYSIGNL])
+ GNULIB_COSF=0; AC_SUBST([GNULIB_COSF])
+ GNULIB_COSL=0; AC_SUBST([GNULIB_COSL])
+ GNULIB_COSHF=0; AC_SUBST([GNULIB_COSHF])
+ GNULIB_EXPF=0; AC_SUBST([GNULIB_EXPF])
+ GNULIB_EXPL=0; AC_SUBST([GNULIB_EXPL])
+ GNULIB_FABSF=0; AC_SUBST([GNULIB_FABSF])
+ GNULIB_FLOOR=0; AC_SUBST([GNULIB_FLOOR])
+ GNULIB_FLOORF=0; AC_SUBST([GNULIB_FLOORF])
+ GNULIB_FLOORL=0; AC_SUBST([GNULIB_FLOORL])
+ GNULIB_FMA=0; AC_SUBST([GNULIB_FMA])
+ GNULIB_FMAF=0; AC_SUBST([GNULIB_FMAF])
+ GNULIB_FMAL=0; AC_SUBST([GNULIB_FMAL])
+ GNULIB_FMODF=0; AC_SUBST([GNULIB_FMODF])
+ GNULIB_FREXPF=0; AC_SUBST([GNULIB_FREXPF])
+ GNULIB_FREXP=0; AC_SUBST([GNULIB_FREXP])
+ GNULIB_FREXPL=0; AC_SUBST([GNULIB_FREXPL])
+ GNULIB_ISFINITE=0; AC_SUBST([GNULIB_ISFINITE])
+ GNULIB_ISINF=0; AC_SUBST([GNULIB_ISINF])
+ GNULIB_ISNAN=0; AC_SUBST([GNULIB_ISNAN])
+ GNULIB_ISNANF=0; AC_SUBST([GNULIB_ISNANF])
+ GNULIB_ISNAND=0; AC_SUBST([GNULIB_ISNAND])
+ GNULIB_ISNANL=0; AC_SUBST([GNULIB_ISNANL])
+ GNULIB_LDEXPF=0; AC_SUBST([GNULIB_LDEXPF])
+ GNULIB_LDEXPL=0; AC_SUBST([GNULIB_LDEXPL])
+ GNULIB_LOGB=0; AC_SUBST([GNULIB_LOGB])
+ GNULIB_LOGF=0; AC_SUBST([GNULIB_LOGF])
+ GNULIB_LOGL=0; AC_SUBST([GNULIB_LOGL])
+ GNULIB_LOG10F=0; AC_SUBST([GNULIB_LOG10F])
+ GNULIB_MODFF=0; AC_SUBST([GNULIB_MODFF])
+ GNULIB_POWF=0; AC_SUBST([GNULIB_POWF])
+ GNULIB_RINT=0; AC_SUBST([GNULIB_RINT])
+ GNULIB_RINTF=0; AC_SUBST([GNULIB_RINTF])
+ GNULIB_RINTL=0; AC_SUBST([GNULIB_RINTL])
+ GNULIB_ROUND=0; AC_SUBST([GNULIB_ROUND])
+ GNULIB_ROUNDF=0; AC_SUBST([GNULIB_ROUNDF])
+ GNULIB_ROUNDL=0; AC_SUBST([GNULIB_ROUNDL])
+ GNULIB_SIGNBIT=0; AC_SUBST([GNULIB_SIGNBIT])
+ GNULIB_SINF=0; AC_SUBST([GNULIB_SINF])
+ GNULIB_SINL=0; AC_SUBST([GNULIB_SINL])
+ GNULIB_SINHF=0; AC_SUBST([GNULIB_SINHF])
+ GNULIB_SQRTF=0; AC_SUBST([GNULIB_SQRTF])
+ GNULIB_SQRTL=0; AC_SUBST([GNULIB_SQRTL])
+ GNULIB_TANF=0; AC_SUBST([GNULIB_TANF])
+ GNULIB_TANL=0; AC_SUBST([GNULIB_TANL])
+ GNULIB_TANHF=0; AC_SUBST([GNULIB_TANHF])
+ GNULIB_TRUNC=0; AC_SUBST([GNULIB_TRUNC])
+ GNULIB_TRUNCF=0; AC_SUBST([GNULIB_TRUNCF])
+ GNULIB_TRUNCL=0; AC_SUBST([GNULIB_TRUNCL])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_ACOSF=1; AC_SUBST([HAVE_ACOSF])
+ HAVE_ACOSL=1; AC_SUBST([HAVE_ACOSL])
+ HAVE_ASINF=1; AC_SUBST([HAVE_ASINF])
+ HAVE_ASINL=1; AC_SUBST([HAVE_ASINL])
+ HAVE_ATANF=1; AC_SUBST([HAVE_ATANF])
+ HAVE_ATANL=1; AC_SUBST([HAVE_ATANL])
+ HAVE_ATAN2F=1; AC_SUBST([HAVE_ATAN2F])
+ HAVE_COPYSIGN=1; AC_SUBST([HAVE_COPYSIGN])
+ HAVE_COPYSIGNF=1; AC_SUBST([HAVE_COPYSIGNF])
+ HAVE_COPYSIGNL=1; AC_SUBST([HAVE_COPYSIGNL])
+ HAVE_COSF=1; AC_SUBST([HAVE_COSF])
+ HAVE_COSL=1; AC_SUBST([HAVE_COSL])
+ HAVE_COSHF=1; AC_SUBST([HAVE_COSHF])
+ HAVE_EXPF=1; AC_SUBST([HAVE_EXPF])
+ HAVE_EXPL=1; AC_SUBST([HAVE_EXPL])
+ HAVE_FABSF=1; AC_SUBST([HAVE_FABSF])
+ HAVE_FMA=1; AC_SUBST([HAVE_FMA])
+ HAVE_FMAF=1; AC_SUBST([HAVE_FMAF])
+ HAVE_FMAL=1; AC_SUBST([HAVE_FMAL])
+ HAVE_FMODF=1; AC_SUBST([HAVE_FMODF])
+ HAVE_FREXPF=1; AC_SUBST([HAVE_FREXPF])
+ HAVE_ISNANF=1; AC_SUBST([HAVE_ISNANF])
+ HAVE_ISNAND=1; AC_SUBST([HAVE_ISNAND])
+ HAVE_ISNANL=1; AC_SUBST([HAVE_ISNANL])
+ HAVE_LDEXPF=1; AC_SUBST([HAVE_LDEXPF])
+ HAVE_LOGF=1; AC_SUBST([HAVE_LOGF])
+ HAVE_LOGL=1; AC_SUBST([HAVE_LOGL])
+ HAVE_LOG10F=1; AC_SUBST([HAVE_LOG10F])
+ HAVE_MODFF=1; AC_SUBST([HAVE_MODFF])
+ HAVE_POWF=1; AC_SUBST([HAVE_POWF])
+ HAVE_RINT=1; AC_SUBST([HAVE_RINT])
+ HAVE_RINTF=1; AC_SUBST([HAVE_RINTF])
+ HAVE_RINTL=1; AC_SUBST([HAVE_RINTL])
+ HAVE_SINF=1; AC_SUBST([HAVE_SINF])
+ HAVE_SINL=1; AC_SUBST([HAVE_SINL])
+ HAVE_SINHF=1; AC_SUBST([HAVE_SINHF])
+ HAVE_SQRTF=1; AC_SUBST([HAVE_SQRTF])
+ HAVE_SQRTL=1; AC_SUBST([HAVE_SQRTL])
+ HAVE_TANF=1; AC_SUBST([HAVE_TANF])
+ HAVE_TANL=1; AC_SUBST([HAVE_TANL])
+ HAVE_TANHF=1; AC_SUBST([HAVE_TANHF])
+ HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL])
+ HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL])
+ HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL])
+ HAVE_DECL_CEILF=1; AC_SUBST([HAVE_DECL_CEILF])
+ HAVE_DECL_CEILL=1; AC_SUBST([HAVE_DECL_CEILL])
+ HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL])
+ HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL])
+ HAVE_DECL_FLOORF=1; AC_SUBST([HAVE_DECL_FLOORF])
+ HAVE_DECL_FLOORL=1; AC_SUBST([HAVE_DECL_FLOORL])
+ HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL])
+ HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL])
+ HAVE_DECL_LOGB=1; AC_SUBST([HAVE_DECL_LOGB])
+ HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL])
+ HAVE_DECL_ROUND=1; AC_SUBST([HAVE_DECL_ROUND])
+ HAVE_DECL_ROUNDF=1; AC_SUBST([HAVE_DECL_ROUNDF])
+ HAVE_DECL_ROUNDL=1; AC_SUBST([HAVE_DECL_ROUNDL])
+ HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL])
+ HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL])
+ HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL])
+ HAVE_DECL_TRUNC=1; AC_SUBST([HAVE_DECL_TRUNC])
+ HAVE_DECL_TRUNCF=1; AC_SUBST([HAVE_DECL_TRUNCF])
+ HAVE_DECL_TRUNCL=1; AC_SUBST([HAVE_DECL_TRUNCL])
+ REPLACE_CEIL=0; AC_SUBST([REPLACE_CEIL])
+ REPLACE_CEILF=0; AC_SUBST([REPLACE_CEILF])
+ REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL])
+ REPLACE_FLOOR=0; AC_SUBST([REPLACE_FLOOR])
+ REPLACE_FLOORF=0; AC_SUBST([REPLACE_FLOORF])
+ REPLACE_FLOORL=0; AC_SUBST([REPLACE_FLOORL])
+ REPLACE_FMA=0; AC_SUBST([REPLACE_FMA])
+ REPLACE_FMAF=0; AC_SUBST([REPLACE_FMAF])
+ REPLACE_FMAL=0; AC_SUBST([REPLACE_FMAL])
+ REPLACE_FREXPF=0; AC_SUBST([REPLACE_FREXPF])
+ REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP])
+ REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL])
+ REPLACE_HUGE_VAL=0; AC_SUBST([REPLACE_HUGE_VAL])
+ REPLACE_ISFINITE=0; AC_SUBST([REPLACE_ISFINITE])
+ REPLACE_ISINF=0; AC_SUBST([REPLACE_ISINF])
+ REPLACE_ISNAN=0; AC_SUBST([REPLACE_ISNAN])
+ REPLACE_LDEXPL=0; AC_SUBST([REPLACE_LDEXPL])
+ REPLACE_NAN=0; AC_SUBST([REPLACE_NAN])
+ REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND])
+ REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF])
+ REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL])
+ REPLACE_SIGNBIT=0; AC_SUBST([REPLACE_SIGNBIT])
+ REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC])
+ REPLACE_TRUNC=0; AC_SUBST([REPLACE_TRUNC])
+ REPLACE_TRUNCF=0; AC_SUBST([REPLACE_TRUNCF])
+ REPLACE_TRUNCL=0; AC_SUBST([REPLACE_TRUNCL])
+])
+m4trace:m4/math_h.m4:220: -1- AC_DEFUN([gl_LONG_DOUBLE_VS_DOUBLE], [
+ AC_CACHE_CHECK([whether long double and double are the same],
+ [gl_cv_long_double_equals_double],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <float.h>]],
+ [[typedef int check[sizeof (long double) == sizeof (double)
+ && LDBL_MANT_DIG == DBL_MANT_DIG
+ && LDBL_MAX_EXP == DBL_MAX_EXP
+ && LDBL_MIN_EXP == DBL_MIN_EXP
+ ? 1 : -1];
+ ]])],
+ [gl_cv_long_double_equals_double=yes],
+ [gl_cv_long_double_equals_double=no])
+ ])
+ if test $gl_cv_long_double_equals_double = yes; then
+ AC_DEFINE([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE], [1],
+ [Define to 1 if 'long double' and 'double' have the same representation.])
+ HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=1
+ else
+ HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=0
+ fi
+ AC_SUBST([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE])
+])
+m4trace:m4/mbchar.m4:10: -1- AC_DEFUN([gl_MBCHAR], [
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:m4/mbiter.m4:10: -1- AC_DEFUN([gl_MBITER], [
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ :
+])
+m4trace:m4/mbrtowc.m4:8: -1- AC_DEFUN([gl_FUNC_MBRTOWC], [
+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ gl_MBSTATE_T_BROKEN
+
+ AC_CHECK_FUNCS_ONCE([mbrtowc])
+ if test $ac_cv_func_mbrtowc = no; then
+ HAVE_MBRTOWC=0
+ AC_CHECK_DECLS([mbrtowc],,, [[
+/* 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>
+]])
+ if test $ac_cv_have_decl_mbrtowc = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares mbrtowc() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_MBRTOWC=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBRTOWC=1
+ else
+ gl_MBRTOWC_NULL_ARG1
+ gl_MBRTOWC_NULL_ARG2
+ gl_MBRTOWC_RETVAL
+ gl_MBRTOWC_NUL_RETVAL
+ case "$gl_cv_func_mbrtowc_null_arg1" in
+ *yes) ;;
+ *) AC_DEFINE([MBRTOWC_NULL_ARG1_BUG], [1],
+ [Define if the mbrtowc function has the NULL pwc argument bug.])
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_null_arg2" in
+ *yes) ;;
+ *) AC_DEFINE([MBRTOWC_NULL_ARG2_BUG], [1],
+ [Define if the mbrtowc function has the NULL string argument bug.])
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_retval" in
+ *yes) ;;
+ *) AC_DEFINE([MBRTOWC_RETVAL_BUG], [1],
+ [Define if the mbrtowc function returns a wrong return value.])
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_nul_retval" in
+ *yes) ;;
+ *) AC_DEFINE([MBRTOWC_NUL_RETVAL_BUG], [1],
+ [Define if the mbrtowc function does not return 0 for a NUL character.])
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ fi
+ fi
+])
+m4trace:m4/mbrtowc.m4:80: -1- AC_DEFUN([gl_MBSTATE_T_BROKEN], [
+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ AC_CHECK_FUNCS_ONCE([mbsinit])
+ 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=1 ;;
+ esac
+ case "$gl_cv_func_mbrtowc_sanitycheck" in
+ *yes) ;;
+ *) REPLACE_MBSTATE_T=1 ;;
+ esac
+ else
+ REPLACE_MBSTATE_T=1
+ fi
+])
+m4trace:m4/mbrtowc.m4:108: -1- AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gt_LOCALE_JA])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether mbrtowc handles incomplete characters],
+ [gl_cv_func_mbrtowc_incomplete_state],
+ [
+ dnl Initial guess, used when cross-compiling or when no suitable locale
+ dnl is present.
+changequote(,)dnl
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+ esac
+changequote([,])dnl
+ if test $LOCALE_JA != none; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+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;
+}]])],
+ [gl_cv_func_mbrtowc_incomplete_state=yes],
+ [gl_cv_func_mbrtowc_incomplete_state=no],
+ [:])
+ fi
+ ])
+])
+m4trace:m4/mbrtowc.m4:164: -1- 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_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+ ])
+])
+m4trace:m4/mbrtowc.m4:224: -1- AC_DEFUN([gl_MBRTOWC_NULL_ARG1], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether mbrtowc handles a NULL pwc argument],
+ [gl_cv_func_mbrtowc_null_arg1],
+ [
+ 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.
+ solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
+ esac
+changequote([,])dnl
+ if test $LOCALE_FR_UTF8 != none; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+
+ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ {
+ char input[] = "\303\237er";
+ mbstate_t state;
+ wchar_t wc;
+ size_t ret;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input, 5, &state);
+ if (ret != 2)
+ result |= 1;
+ if (!mbsinit (&state))
+ result |= 2;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ ret = mbrtowc (NULL, input, 5, &state);
+ if (ret != 2) /* Solaris 7 fails here: ret is -1. */
+ result |= 4;
+ if (!mbsinit (&state))
+ result |= 8;
+ }
+ return result;
+}]])],
+ [gl_cv_func_mbrtowc_null_arg1=yes],
+ [gl_cv_func_mbrtowc_null_arg1=no],
+ [:])
+ fi
+ ])
+])
+m4trace:m4/mbrtowc.m4:294: -1- AC_DEFUN([gl_MBRTOWC_NULL_ARG2], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether mbrtowc handles a NULL string argument],
+ [gl_cv_func_mbrtowc_null_arg2],
+ [
+ dnl Initial guess, used when cross-compiling or when no suitable locale
+ dnl is present.
+changequote(,)dnl
+ case "$host_os" in
+ # Guess no on OSF/1.
+ osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
+ esac
+changequote([,])dnl
+ if test $LOCALE_FR_UTF8 != none; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+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;
+}]])],
+ [gl_cv_func_mbrtowc_null_arg2=yes],
+ [gl_cv_func_mbrtowc_null_arg2=no],
+ [:])
+ fi
+ ])
+])
+m4trace:m4/mbrtowc.m4:354: -1- AC_DEFUN([gl_MBRTOWC_RETVAL], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([gt_LOCALE_JA])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CACHE_CHECK([whether mbrtowc has a correct return value],
+ [gl_cv_func_mbrtowc_retval],
+ [
+ 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, Solaris, native Windows.
+ hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_retval="guessing yes" ;;
+ esac
+changequote([,])dnl
+ if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \
+ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ int found_some_locale = 0;
+ /* 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)
+ result |= 1;
+ }
+ found_some_locale = 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)
+ result |= 2;
+ }
+ found_some_locale = 1;
+ }
+ /* This fails on native Windows. */
+ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
+ {
+ char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 4;
+ }
+ found_some_locale = 1;
+ }
+ if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
+ {
+ char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 8;
+ }
+ found_some_locale = 1;
+ }
+ if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
+ {
+ char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 16;
+ }
+ found_some_locale = 1;
+ }
+ return (found_some_locale ? result : 77);
+}]])],
+ [gl_cv_func_mbrtowc_retval=yes],
+ [if test $? != 77; then
+ gl_cv_func_mbrtowc_retval=no
+ fi
+ ],
+ [:])
+ fi
+ ])
+])
+m4trace:m4/mbrtowc.m4:484: -1- AC_DEFUN([gl_MBRTOWC_NUL_RETVAL], [
+ 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 returns 0 when parsing a NUL character],
+ [gl_cv_func_mbrtowc_nul_retval],
+ [
+ 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 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
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ /* 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;
+}]])],
+ [gl_cv_func_mbrtowc_nul_retval=yes],
+ [gl_cv_func_mbrtowc_nul_retval=no],
+ [:])
+ fi
+ ])
+])
+m4trace:m4/mbrtowc.m4:537: -1- AC_DEFUN([gl_PREREQ_MBRTOWC], [
+ :
+])
+m4trace:m4/mbrtowc.m4:546: -1- AC_DEFUN([AC_FUNC_MBRTOWC], [
+ dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60.
+ AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
+ gl_cv_func_mbrtowc,
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[/* 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>]],
+ [[wchar_t wc;
+ char const s[] = "";
+ size_t n = 1;
+ mbstate_t state;
+ return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])],
+ gl_cv_func_mbrtowc=yes,
+ gl_cv_func_mbrtowc=no)])
+ if test $gl_cv_func_mbrtowc = yes; then
+ AC_DEFINE([HAVE_MBRTOWC], [1],
+ [Define to 1 if mbrtowc and mbstate_t are properly declared.])
+ fi
+])
+m4trace:m4/mbsinit.m4:7: -1- AC_DEFUN([gl_FUNC_MBSINIT], [
+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ gl_MBSTATE_T_BROKEN
+
+ AC_CHECK_FUNCS_ONCE([mbsinit])
+ if test $ac_cv_func_mbsinit = no; then
+ HAVE_MBSINIT=0
+ AC_CHECK_DECLS([mbsinit],,, [[
+/* 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>
+]])
+ if test $ac_cv_have_decl_mbsinit = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares mbsinit() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_MBSINIT=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBSINIT=1
+ else
+ dnl On mingw, mbsinit() always returns 1, which is inappropriate for
+ dnl states produced by mbrtowc() for an incomplete multibyte character
+ dnl in multibyte locales.
+ case "$host_os" in
+ mingw*) REPLACE_MBSINIT=1 ;;
+ esac
+ fi
+ fi
+])
+m4trace:m4/mbsinit.m4:49: -1- AC_DEFUN([gl_PREREQ_MBSINIT], [
+ :
+])
+m4trace:m4/mbsrtowcs.m4:7: -1- AC_DEFUN([gl_FUNC_MBSRTOWCS], [
+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ gl_MBSTATE_T_BROKEN
+
+ AC_CHECK_FUNCS_ONCE([mbsrtowcs])
+ if test $ac_cv_func_mbsrtowcs = no; then
+ HAVE_MBSRTOWCS=0
+ AC_CHECK_DECLS([mbsrtowcs],,, [[
+/* 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>
+]])
+ if test $ac_cv_have_decl_mbsrtowcs = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares mbsrtowcs() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_MBSRTOWCS=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBSRTOWCS=1
+ else
+ gl_MBSRTOWCS_WORKS
+ case "$gl_cv_func_mbsrtowcs_works" in
+ *yes) ;;
+ *) REPLACE_MBSRTOWCS=1 ;;
+ esac
+ fi
+ fi
+])
+m4trace:m4/mbsrtowcs.m4:49: -1- AC_DEFUN([gl_MBSRTOWCS_WORKS], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gt_LOCALE_FR])
+ 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, Solaris, mingw.
+ hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbsrtowcs_works="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
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ /* Test whether the function supports a NULL destination argument.
+ This fails on native Windows. */
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ const char input[] = "\337er";
+ const char *src = input;
+ mbstate_t state;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbsrtowcs (NULL, &src, 1, &state) != 3
+ || src != input)
+ result |= 1;
+ }
+ /* 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)
+ result |= 2;
+ }
+ }
+ 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)
+ result |= 4;
+ }
+ }
+ 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)
+ result |= 8;
+ }
+ }
+ return result;
+}]])],
+ [gl_cv_func_mbsrtowcs_works=yes],
+ [gl_cv_func_mbsrtowcs_works=no],
+ [:])
+ fi
+ ])
+])
+m4trace:m4/mbsrtowcs.m4:153: -1- AC_DEFUN([gl_PREREQ_MBSRTOWCS], [
+ :
+])
+m4trace:m4/mbstate_t.m4:15: -1- AC_DEFUN([AC_TYPE_MBSTATE_T], [
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl for HP-UX 11.11
+
+ AC_CACHE_CHECK([for mbstate_t], [ac_cv_type_mbstate_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [AC_INCLUDES_DEFAULT[
+/* 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>]],
+ [[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.])
+ else
+ AC_DEFINE([mbstate_t], [int],
+ [Define to a type if <wchar.h> does not define.])
+ fi
+])
+m4trace:m4/mbtowc.m4:7: -1- AC_DEFUN([gl_FUNC_MBTOWC], [
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+
+ if false; then
+ REPLACE_MBTOWC=1
+ fi
+])
+m4trace:m4/mbtowc.m4:17: -1- AC_DEFUN([gl_PREREQ_MBTOWC], [
+ :
+])
+m4trace:m4/memchr.m4:7: -1- 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])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ m4_ifdef([gl_FUNC_MEMCHR_OBSOLETE], [
+ dnl These days, we assume memchr is present. But if support for old
+ dnl platforms is desired:
+ AC_CHECK_FUNCS_ONCE([memchr])
+ if test $ac_cv_func_memchr = no; then
+ HAVE_MEMCHR=0
+ fi
+ ])
+ if test $HAVE_MEMCHR = 1; 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
+]], [[
+ int result = 0;
+ 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))
+ result |= 1;
+ strcpy (fence - 9, "12345678");
+ if (memchr (fence - 9, 0, 79) != fence - 1)
+ result |= 2;
+ if (memchr (fence - 1, 0, 3) != fence - 1)
+ result |= 4;
+ }
+ return result;
+]])], [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
+ REPLACE_MEMCHR=1
+ fi
+ fi
+])
+m4trace:m4/memchr.m4:86: -1- AC_DEFUN([gl_PREREQ_MEMCHR], [
+ AC_CHECK_HEADERS([bp-sym.h])
+])
+m4trace:m4/mempcpy.m4:8: -1- AC_DEFUN([gl_FUNC_MEMPCPY], [
+ dnl Persuade glibc <string.h> to declare mempcpy().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ dnl The mempcpy() declaration in lib/string.in.h uses 'restrict'.
+ AC_REQUIRE([AC_C_RESTRICT])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_FUNCS([mempcpy])
+ if test $ac_cv_func_mempcpy = no; then
+ HAVE_MEMPCPY=0
+ fi
+])
+m4trace:m4/mempcpy.m4:24: -1- AC_DEFUN([gl_PREREQ_MEMPCPY], [
+ :
+])
+m4trace:m4/memrchr.m4:8: -1- AC_DEFUN([gl_FUNC_MEMRCHR], [
+ dnl Persuade glibc <string.h> to declare memrchr().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_DECLS_ONCE([memrchr])
+ if test $ac_cv_have_decl_memrchr = no; then
+ HAVE_DECL_MEMRCHR=0
+ fi
+
+ AC_CHECK_FUNCS([memrchr])
+])
+m4trace:m4/memrchr.m4:23: -1- AC_DEFUN([gl_PREREQ_MEMRCHR], [:])
+m4trace:m4/mkdtemp.m4:8: -1- AC_DEFUN([gl_FUNC_MKDTEMP], [
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_CHECK_FUNCS([mkdtemp])
+ if test $ac_cv_func_mkdtemp = no; then
+ HAVE_MKDTEMP=0
+ fi
+])
+m4trace:m4/mkdtemp.m4:18: -1- AC_DEFUN([gl_PREREQ_MKDTEMP], [:
+])
+m4trace:m4/mkfifo.m4:11: -1- AC_DEFUN([gl_FUNC_MKFIFO], [
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([mkfifo])
+ if test $ac_cv_func_mkfifo = no; then
+ HAVE_MKFIFO=0
+ else
+ dnl Check for Solaris 9 and FreeBSD bug with trailing slash.
+ AC_CHECK_FUNCS_ONCE([lstat])
+ AC_CACHE_CHECK([whether mkfifo rejects trailing slashes],
+ [gl_cv_func_mkfifo_works],
+ [# 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>
+ ]],
+ [[int result = 0;
+ if (!mkfifo ("conftest.tmp/", 0600))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!mkfifo ("conftest.lnk/", 0600))
+ result |= 2;
+#endif
+ return result;
+ ]])],
+ [gl_cv_func_mkfifo_works=yes], [gl_cv_func_mkfifo_works=no],
+ [gl_cv_func_mkfifo_works="guessing no"])
+ rm -f conftest.tmp conftest.lnk])
+ if test "$gl_cv_func_mkfifo_works" != yes; then
+ AC_DEFINE([MKFIFO_TRAILING_SLASH_BUG], [1], [Define to 1 if mkfifo
+ does not reject trailing slash])
+ REPLACE_MKFIFO=1
+ fi
+ fi
+])
+m4trace:m4/mkfifoat.m4:11: -1- AC_DEFUN([gl_FUNC_MKFIFOAT], [
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_OPENAT])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([mkfifoat mknodat])
+ if test $ac_cv_func_mkfifoat = no; then
+ # No known system has mkfifoat but not mknodat
+ HAVE_MKFIFOAT=0
+ HAVE_MKNODAT=0
+ fi
+])
+m4trace:m4/mknod.m4:11: -1- AC_DEFUN([gl_FUNC_MKNOD], [
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_MKFIFO])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([mknod])
+ if test $ac_cv_func_mknod = no; then
+ HAVE_MKNOD=0
+ else
+ dnl Detect BSD bug, where mknod requires root privileges to create fifo.
+ AC_CACHE_CHECK([whether mknod can create fifo without root privileges],
+ [gl_cv_func_mknod_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/stat.h>
+ #include <unistd.h>
+]], [[/* Indeterminate for super-user, assume no. Why are you running
+ configure as root, anyway? */
+ if (!geteuid ()) return 99;
+ if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2;]])],
+ [gl_cv_func_mknod_works=yes],
+ [if test $? = 99 && test x"$FORCE_UNSAFE_CONFIGURE" = x; then
+ AC_MSG_FAILURE([you should not run configure as root ]dnl
+[(set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)])
+ fi
+ gl_cv_func_mknod_works=no],
+ [gl_cv_func_mknod_works="guessing no"])
+ rm -f conftest.fifo])
+ if test "$gl_cv_func_mknod_works" != yes; then
+ AC_DEFINE([MKNOD_FIFO_BUG], [1], [Define to 1 if mknod cannot create
+ a fifo without super-user privileges])
+ fi
+ dnl Systems that mishandle trailing slash on mkfifo also goof on mknod.
+ if test $REPLACE_MKFIFO = 1 || test "$gl_cv_func_mknod_works" != yes; then
+ REPLACE_MKNOD=1
+ fi
+ fi
+])
+m4trace:m4/mktime.m4:10: -1- AC_DEFUN([gl_FUNC_MKTIME], [
+ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+
+ dnl We don't use AC_FUNC_MKTIME any more, because it is no longer maintained
+ dnl in Autoconf and because it invokes AC_LIBOBJ.
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CHECK_FUNCS_ONCE([alarm])
+ AC_REQUIRE([gl_MULTIARCH])
+ if test $APPLE_UNIVERSAL_BUILD = 1; then
+ # A universal build on Apple MacOS X platforms.
+ # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
+ # But we need a configuration result that is valid in both modes.
+ gl_cv_func_working_mktime=no
+ fi
+ AC_CACHE_CHECK([for working mktime], [gl_cv_func_working_mktime],
+ [AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+[[/* Test program from Paul Eggert and Tony Leneis. */
+#include <limits.h>
+#include <stdlib.h>
+#include <time.h>
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#ifndef HAVE_ALARM
+# define alarm(X) /* empty */
+#endif
+
+/* Work around redefinition to rpl_putenv by other config tests. */
+#undef putenv
+
+static time_t time_t_max;
+static time_t time_t_min;
+
+/* Values we'll use to set the TZ environment variable. */
+static char *tz_strings[] = {
+ (char *) 0, "TZ=GMT0", "TZ=JST-9",
+ "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
+};
+#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
+
+/* Return 0 if mktime fails to convert a date in the spring-forward gap.
+ Based on a problem report from Andreas Jaeger. */
+static int
+spring_forward_gap ()
+{
+ /* glibc (up to about 1998-10-07) failed this test. */
+ struct tm tm;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ tm.tm_year = 98;
+ tm.tm_mon = 3;
+ tm.tm_mday = 5;
+ tm.tm_hour = 2;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+ return mktime (&tm) != (time_t) -1;
+}
+
+static int
+mktime_test1 (time_t now)
+{
+ struct tm *lt;
+ return ! (lt = localtime (&now)) || mktime (lt) == now;
+}
+
+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)));
+}
+
+static int
+irix_6_4_bug ()
+{
+ /* Based on code from Ariel Faigon. */
+ struct tm tm;
+ tm.tm_year = 96;
+ tm.tm_mon = 3;
+ tm.tm_mday = 0;
+ tm.tm_hour = 0;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+ mktime (&tm);
+ return tm.tm_mon == 2 && tm.tm_mday == 31;
+}
+
+static int
+bigtime_test (int j)
+{
+ struct tm tm;
+ time_t now;
+ tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
+ now = mktime (&tm);
+ if (now != (time_t) -1)
+ {
+ 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;
+ }
+ return 1;
+}
+
+static int
+year_2050_test ()
+{
+ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
+ ignoring leap seconds. */
+ unsigned long int answer = 2527315200UL;
+
+ struct tm tm;
+ time_t t;
+ tm.tm_year = 2050 - 1900;
+ tm.tm_mon = 2 - 1;
+ tm.tm_mday = 1;
+ tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ t = mktime (&tm);
+
+ /* Check that the result is either a failure, or close enough
+ 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));
+}
+
+int
+main ()
+{
+ int result = 0;
+ time_t t, delta;
+ int i, j;
+ int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1;
+ int time_t_signed = ! ((time_t) 0 < (time_t) -1);
+
+ /* This test makes some buggy mktime implementations loop.
+ Give up after 60 seconds; a mktime slower than that
+ isn't worth using anyway. */
+ alarm (60);
+
+ time_t_max = (! time_t_signed
+ ? (time_t) -1
+ : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
+ * 2 + 1));
+ time_t_min = (! time_t_signed
+ ? (time_t) 0
+ : time_t_signed_magnitude
+ ? ~ (time_t) 0
+ : ~ time_t_max);
+
+ delta = time_t_max / 997; /* a suitable prime number */
+ for (i = 0; i < N_STRINGS; i++)
+ {
+ if (tz_strings[i])
+ putenv (tz_strings[i]);
+
+ for (t = 0; t <= time_t_max - delta; t += delta)
+ if (! mktime_test (t))
+ result |= 1;
+ if (! (mktime_test ((time_t) 1)
+ && mktime_test ((time_t) (60 * 60))
+ && mktime_test ((time_t) (60 * 60 * 24))))
+ result |= 2;
+
+ for (j = 1; ; j <<= 1)
+ if (! bigtime_test (j))
+ result |= 4;
+ else if (INT_MAX / 2 < j)
+ break;
+ if (! bigtime_test (INT_MAX))
+ result |= 8;
+ }
+ if (! irix_6_4_bug ())
+ result |= 16;
+ if (! spring_forward_gap ())
+ result |= 32;
+ if (! year_2050_test ())
+ result |= 64;
+ return result;
+}]])],
+ [gl_cv_func_working_mktime=yes],
+ [gl_cv_func_working_mktime=no],
+ [gl_cv_func_working_mktime=no])
+ ])
+
+ if test $gl_cv_func_working_mktime = no; then
+ REPLACE_MKTIME=1
+ else
+ REPLACE_MKTIME=0
+ fi
+])
+m4trace:m4/mktime.m4:231: -1- AC_DEFUN([gl_FUNC_MKTIME_INTERNAL], [
+ AC_REQUIRE([gl_FUNC_MKTIME])
+ if test $REPLACE_MKTIME = 0; then
+ dnl BeOS has __mktime_internal in libc, but other platforms don't.
+ AC_CHECK_FUNC([__mktime_internal],
+ [AC_DEFINE([mktime_internal], [__mktime_internal],
+ [Define to the real name of the mktime_internal function.])
+ ],
+ [dnl mktime works but it doesn't export __mktime_internal,
+ dnl so we need to substitute our own mktime implementation.
+ REPLACE_MKTIME=1
+ ])
+ fi
+])
+m4trace:m4/mktime.m4:247: -1- AC_DEFUN([gl_PREREQ_MKTIME], [
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:m4/mmap-anon.m4:16: -1- AC_DEFUN([gl_FUNC_MMAP_ANON], [
+ 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
+])
+m4trace:m4/mode_t.m4:12: -1- 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.])
+])
+m4trace:m4/modechange.m4:8: -1- AC_DEFUN([gl_MODECHANGE], [
+ :
+])
+m4trace:m4/msvc-inval.m4:7: -1- AC_DEFUN([gl_MSVC_INVAL], [
+ AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler])
+ if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+ AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1],
+ [Define to 1 on MSVC platforms that have the "invalid parameter handler"
+ concept.])
+ else
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+ fi
+ AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+])
+m4trace:m4/msvc-nothrow.m4:7: -1- AC_DEFUN([gl_MSVC_NOTHROW], [
+ AC_REQUIRE([gl_MSVC_INVAL])
+])
+m4trace:m4/multiarch.m4:21: -1- AC_DEFUN_ONCE([gl_MULTIARCH], [
+ dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN.
+ gl_cv_c_multiarch=no
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+ ]])],
+ [
+ dnl Check for potential -arch flags. It is not universal unless
+ dnl there are at least two -arch flags with different values.
+ arch=
+ prev=
+ for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
+ if test -n "$prev"; then
+ case $word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$arch" || test "$arch" = "$word"; then
+ arch="$word"
+ else
+ gl_cv_c_multiarch=yes
+ fi
+ ;;
+ esac
+ prev=
+ else
+ if test "x$word" = "x-arch"; then
+ prev=arch
+ fi
+ fi
+ done
+ ])
+ if test $gl_cv_c_multiarch = yes; then
+ APPLE_UNIVERSAL_BUILD=1
+ else
+ APPLE_UNIVERSAL_BUILD=0
+ fi
+ AC_SUBST([APPLE_UNIVERSAL_BUILD])
+])
+m4trace:m4/nl_langinfo.m4:7: -1- AC_DEFUN([gl_FUNC_NL_LANGINFO], [
+ AC_REQUIRE([gl_LANGINFO_H_DEFAULTS])
+ AC_REQUIRE([gl_LANGINFO_H])
+ AC_CHECK_FUNCS_ONCE([nl_langinfo])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ if test $ac_cv_func_nl_langinfo = yes; then
+ # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken.
+ AC_CACHE_CHECK([whether YESEXPR works],
+ [gl_cv_func_nl_langinfo_yesexpr_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[#include <langinfo.h>
+]], [[return !*nl_langinfo(YESEXPR);
+]])],
+ [gl_cv_func_nl_langinfo_yesexpr_works=yes],
+ [gl_cv_func_nl_langinfo_yesexpr_works=no],
+ [
+ case "$host_os" in
+ # Guess no on irix systems.
+ irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";;
+ # Guess yes elsewhere.
+ *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";;
+ esac
+ ])
+ ])
+ case $gl_cv_func_nl_langinfo_yesexpr_works in
+ *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;;
+ *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;;
+ esac
+ AC_DEFINE_UNQUOTED([FUNC_NL_LANGINFO_YESEXPR_WORKS],
+ [$FUNC_NL_LANGINFO_YESEXPR_WORKS],
+ [Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string.])
+ if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \
+ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
+ :
+ else
+ REPLACE_NL_LANGINFO=1
+ AC_DEFINE([REPLACE_NL_LANGINFO], [1],
+ [Define if nl_langinfo exists but is overridden by gnulib.])
+ fi
+ else
+ HAVE_NL_LANGINFO=0
+ fi
+])
+m4trace:m4/nls.m4:23: -1- AC_DEFUN([AM_NLS], [
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE([nls],
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT([$USE_NLS])
+ AC_SUBST([USE_NLS])
+])
+m4trace:m4/nocrash.m4:18: -1- AC_DEFUN([GL_NOCRASH], [[
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on MacOS X. */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens. */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+ EXC_BAD_ACCESS. */
+static void *
+mach_exception_thread (void *arg)
+{
+ /* Buffer for a message to be received. */
+ struct {
+ mach_msg_header_t head;
+ mach_msg_body_t msgh_body;
+ char data[1024];
+ } msg;
+ mach_msg_return_t retval;
+ /* Wait for a message on the exception port. */
+ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+ our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+ if (retval != MACH_MSG_SUCCESS)
+ abort ();
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+ mach_port_t self = mach_task_self ();
+ /* Allocate a port on which the thread shall listen for exceptions. */
+ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+ == KERN_SUCCESS) {
+ /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */
+ if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+ MACH_MSG_TYPE_MAKE_SEND)
+ == KERN_SUCCESS) {
+ /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting
+ for us. */
+ exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+ /* Create the thread listening on the exception port. */
+ pthread_attr_t attr;
+ pthread_t thread;
+ if (pthread_attr_init (&attr) == 0
+ && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+ && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+ pthread_attr_destroy (&attr);
+ /* Replace the exception port info for these exceptions with our own.
+ Note that we replace the exception port for the entire task, not only
+ for a particular thread. This has the effect that when our exception
+ port gets the message, the thread specific exception port has already
+ been asked, and we don't need to bother about it.
+ See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */
+ task_set_exception_ports (self, mask, our_exception_port,
+ EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+ }
+ }
+ }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows. */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+ switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+ {
+ case EXCEPTION_ACCESS_VIOLATION:
+ case EXCEPTION_IN_PAGE_ERROR:
+ case EXCEPTION_STACK_OVERFLOW:
+ case EXCEPTION_GUARD_PAGE:
+ case EXCEPTION_PRIV_INSTRUCTION:
+ case EXCEPTION_ILLEGAL_INSTRUCTION:
+ case EXCEPTION_DATATYPE_MISALIGNMENT:
+ case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+ case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+ exit (1);
+ }
+ return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+ SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems. */
+#include <signal.h>
+/* A POSIX signal handler. */
+static void
+exception_handler (int sig)
+{
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+ signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+ signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
+]])
+m4trace:m4/open.m4:7: -1- AC_DEFUN([gl_FUNC_OPEN], [
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ case "$host_os" in
+ mingw* | pw*)
+ REPLACE_OPEN=1
+ ;;
+ *)
+ dnl open("foo/") should not create a file when the file name has a
+ 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_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <fcntl.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+int main ()
+{
+ int result = 0;
+#if HAVE_LSTAT
+ if (open ("conftest.lnk/", O_RDONLY) != -1)
+ result |= 1;
+#endif
+ if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
+ result |= 2;
+ return result;
+}]])],
+ [gl_cv_func_open_slash=yes],
+ [gl_cv_func_open_slash=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
+ gl_cv_func_open_slash="guessing no" ;;
+ *)
+ gl_cv_func_open_slash="guessing yes" ;;
+ esac
+changequote([,])dnl
+ ])
+ rm -f conftest.sl conftest.tmp conftest.lnk
+ ])
+ case "$gl_cv_func_open_slash" in
+ *no)
+ AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1],
+ [Define to 1 if open() fails to recognize a trailing slash.])
+ REPLACE_OPEN=1
+ ;;
+ esac
+ ;;
+ esac
+ dnl Replace open() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ if test $REPLACE_OPEN = 0; then
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_OPEN=1
+ fi
+ fi
+ ])
+ dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag.
+ m4_ifdef([gl_NONBLOCKING_IO], [
+ if test $REPLACE_OPEN = 0; then
+ gl_NONBLOCKING_IO
+ if test $gl_cv_have_open_O_NONBLOCK != yes; then
+ REPLACE_OPEN=1
+ fi
+ fi
+ ])
+])
+m4trace:m4/open.m4:87: -1- AC_DEFUN([gl_PREREQ_OPEN], [
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
+ :
+])
+m4trace:m4/openat.m4:11: -1- AC_DEFUN([gl_FUNC_OPENAT], [
+ AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([openat])
+ AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ yes+yes)
+ ;;
+ yes+*)
+ # Solaris 9 has *at functions, but uniformly mishandles trailing
+ # slash in all of them.
+ REPLACE_OPENAT=1
+ ;;
+ *)
+ HAVE_OPENAT=0
+ ;;
+ esac
+])
+m4trace:m4/openat.m4:32: -1- AC_DEFUN([gl_PREREQ_OPENAT], [
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
+ :
+])
+m4trace:m4/opendir.m4:7: -1- AC_DEFUN([gl_FUNC_OPENDIR], [
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_FUNCS([opendir])
+ if test $ac_cv_func_opendir = no; then
+ HAVE_OPENDIR=0
+ fi
+ dnl Replace opendir() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_OPENDIR = 1; then
+ REPLACE_OPENDIR=1
+ fi
+ fi
+ ])
+])
+m4trace:m4/parse-datetime.m4:13: -1- AC_DEFUN([gl_C_COMPOUND_LITERALS], [
+ AC_CACHE_CHECK([for compound literals], [gl_cv_compound_literals],
+ [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
+ AC_DEFINE([HAVE_COMPOUND_LITERALS], [1],
+ [Define if you have compound literals.])
+ fi
+])
+m4trace:m4/parse-datetime.m4:27: -1- AC_DEFUN([gl_PARSE_DATETIME], [
+ dnl Prerequisites of lib/parse-datetime.h.
+ AC_REQUIRE([AM_STDBOOL_H])
+ AC_REQUIRE([gl_TIMESPEC])
+
+ dnl Prerequisites of lib/parse-datetime.y.
+ AC_REQUIRE([gl_BISON])
+ AC_REQUIRE([gl_C_COMPOUND_LITERALS])
+ 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 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) ((t) 0 < (t) -1 \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 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'.])
+ ])
+])
+m4trace:m4/pathmax.m4:8: -1- AC_DEFUN([gl_PATHMAX], [
+ dnl Prerequisites of lib/pathmax.h.
+ AC_CHECK_HEADERS_ONCE([sys/param.h])
+])
+m4trace:m4/pathmax.m4:16: -1- AC_DEFUN([gl_PATHMAX_SNIPPET], [[
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+]])
+m4trace:m4/pathmax.m4:39: -1- AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ], [
+ AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h])
+])
+m4trace:m4/paxutils.m4:3: -1- AC_DEFUN([tar_PAXUTILS], [
+PU_RMT
+PU_RTAPELIB
+PU_SYSTEM
+])
+m4trace:m4/po.m4:23: -1- AC_DEFUN([AM_PO_SUBDIRS], [
+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+ AC_REQUIRE([AM_NLS])dnl
+
+ dnl Release version of the gettext macros. This is used to ensure that
+ dnl the gettext macros and po/Makefile.in.in are in sync.
+ AC_SUBST([GETTEXT_MACRO_VERSION], [0.18])
+
+ dnl Perform the following tests also if --disable-nls has been given,
+ dnl because they are needed for "make dist" to work.
+
+ dnl Search for GNU msgfmt in the PATH.
+ dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+ dnl The second test excludes FreeBSD msgfmt.
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT])
+
+ dnl Test whether it is GNU msgfmt >= 0.15.
+changequote(,)dnl
+ case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+ *) MSGFMT_015=$MSGFMT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([MSGFMT_015])
+changequote(,)dnl
+ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+ *) GMSGFMT_015=$GMSGFMT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([GMSGFMT_015])
+
+ dnl Search for GNU xgettext 0.12 or newer in the PATH.
+ dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+ dnl The second test excludes FreeBSD xgettext.
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ dnl Remove leftover from FreeBSD xgettext call.
+ rm -f messages.po
+
+ dnl Test whether it is GNU xgettext >= 0.15.
+changequote(,)dnl
+ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+ *) XGETTEXT_015=$XGETTEXT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([XGETTEXT_015])
+
+ dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+ AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+ [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
+
+ dnl Installation directories.
+ dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we
+ dnl have to define it here, so that it can be used in po/Makefile.
+ test -n "$localedir" || localedir='${datadir}/locale'
+ AC_SUBST([localedir])
+
+ dnl Support for AM_XGETTEXT_OPTION.
+ test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+ AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
+
+ AC_CONFIG_COMMANDS([po-directories], [[
+ for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ # Treat a directory as a PO directory if and only if it has a
+ # POTFILES.in file. This allows packages to have multiple PO
+ # directories under different names or in different locations.
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ gt_tab=`printf '\t'`
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ POMAKEFILEDEPS="POTFILES.in"
+ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+ # on $ac_dir but don't depend on user-specified configuration
+ # parameters.
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # The set of available languages was given in configure.in.
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+ fi
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+ fi
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+ if test -f "$f"; then
+ case "$f" in
+ *.orig | *.bak | *~) ;;
+ *) cat "$f" >> "$ac_dir/Makefile" ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done]],
+ [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+ # from automake < 1.5.
+ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+ ])
+])
+m4trace:m4/po.m4:219: -1- AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], [
+ # When this code is run, in config.status, two variables have already been
+ # set:
+ # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
+ # - LINGUAS is the value of the environment variable LINGUAS at configure
+ # time.
+
+changequote(,)dnl
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ # Find a way to echo strings without interpreting backslash.
+ if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='echo'
+ else
+ if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='printf %s\n'
+ else
+ echo_func () {
+ cat <<EOT
+$*
+EOT
+ }
+ gt_echo='echo_func'
+ fi
+ fi
+
+ # A sed script that extracts the value of VARIABLE from a Makefile.
+ tab=`printf '\t'`
+ sed_x_variable='
+# Test if the hold space is empty.
+x
+s/P/P/
+x
+ta
+# Yes it was empty. Look if we have the expected variable definition.
+/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{
+ # Seen the first line of the variable definition.
+ s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=//
+ ba
+}
+bd
+:a
+# Here we are processing a line from the variable definition.
+# Remove comment, more precisely replace it with a space.
+s/#.*$/ /
+# See if the line ends in a backslash.
+tb
+:b
+s/\\$//
+# Print the line, without the trailing backslash.
+p
+tc
+# There was no trailing backslash. The end of the variable definition is
+# reached. Clear the hold space.
+s/^.*$//
+x
+bd
+:c
+# A trailing backslash means that the variable definition continues in the
+# next line. Put a nonempty string into the hold space to indicate this.
+s/^.*$/P/
+x
+:d
+'
+changequote([,])dnl
+
+ # Set POTFILES to the value of the Makefile variable POTFILES.
+ sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`
+ POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
+ # Compute POTFILES_DEPS as
+ # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
+ POTFILES_DEPS=
+ for file in $POTFILES; do
+ POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
+ done
+ POMAKEFILEDEPS=""
+
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
+ sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
+ ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+ fi
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ # Compute PROPERTIESFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
+ # Compute CLASSFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
+ # Compute QMFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
+ # Compute MSGFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
+ # Compute RESOURCESDLLFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ PROPERTIESFILES=
+ CLASSFILES=
+ QMFILES=
+ MSGFILES=
+ RESOURCESDLLFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
+ CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
+ QMFILES="$QMFILES $srcdirpre$lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ JAVACATALOGS=
+ QTCATALOGS=
+ TCLCATALOGS=
+ CSHARPCATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
+ QTCATALOGS="$QTCATALOGS $lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ fi
+
+ sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+ tab=`printf '\t'`
+ if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang.msg: $lang.po
+${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
+${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if test -n "$POMAKEFILEDEPS"; then
+ cat >> "$ac_file.tmp" <<EOF
+Makefile: $POMAKEFILEDEPS
+EOF
+ fi
+ mv "$ac_file.tmp" "$ac_file"
+])
+m4trace:m4/po.m4:442: -1- AC_DEFUN([AM_XGETTEXT_OPTION_INIT], [
+ XGETTEXT_EXTRA_OPTIONS=
+])
+m4trace:m4/po.m4:448: -1- AC_DEFUN([AM_XGETTEXT_OPTION], [
+ AC_REQUIRE([AM_XGETTEXT_OPTION_INIT])
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
+])
+m4trace:m4/printf.m4:11: -1- AC_DEFUN([gl_PRINTF_SIZES_C99], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports size specifiers as in C99],
+ [gl_cv_func_printf_sizes_c99],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+# include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+# include <inttypes.h>
+#endif
+static char buf[100];
+int main ()
+{
+ int result = 0;
+#if HAVE_STDINT_H_WITH_UINTMAX || HAVE_INTTYPES_H_WITH_UINTMAX
+ buf[0] = '\0';
+ if (sprintf (buf, "%ju %d", (uintmax_t) 12345671, 33, 44, 55) < 0
+ || strcmp (buf, "12345671 33") != 0)
+ result |= 1;
+#endif
+ buf[0] = '\0';
+ if (sprintf (buf, "%zu %d", (size_t) 12345672, 33, 44, 55) < 0
+ || strcmp (buf, "12345672 33") != 0)
+ result |= 2;
+ buf[0] = '\0';
+ if (sprintf (buf, "%tu %d", (ptrdiff_t) 12345673, 33, 44, 55) < 0
+ || strcmp (buf, "12345673 33") != 0)
+ result |= 4;
+ buf[0] = '\0';
+ if (sprintf (buf, "%Lg %d", (long double) 1.5, 33, 44, 55) < 0
+ || strcmp (buf, "1.5 33") != 0)
+ result |= 8;
+ return result;
+}]])],
+ [gl_cv_func_printf_sizes_c99=yes],
+ [gl_cv_func_printf_sizes_c99=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_printf_sizes_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_printf_sizes_c99="guessing no";;
+ darwin*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # Guess yes on OpenBSD >= 3.9.
+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+ gl_cv_func_printf_sizes_c99="guessing no";;
+ openbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # Guess yes on Solaris >= 2.10.
+ solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ solaris*) gl_cv_func_printf_sizes_c99="guessing no";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_printf_sizes_c99="guessing no";;
+ netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_sizes_c99="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:92: -1- AC_DEFUN([gl_PRINTF_LONG_DOUBLE], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports 'long double' arguments],
+ [gl_cv_func_printf_long_double],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[10000];
+int main ()
+{
+ int result = 0;
+ buf[0] = '\0';
+ if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0
+ || strcmp (buf, "1.750000 33") != 0)
+ result |= 1;
+ buf[0] = '\0';
+ if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0
+ || strcmp (buf, "1.750000e+00 33") != 0)
+ result |= 2;
+ buf[0] = '\0';
+ if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0
+ || strcmp (buf, "1.75 33") != 0)
+ result |= 4;
+ return result;
+}]])],
+ [gl_cv_func_printf_long_double=yes],
+ [gl_cv_func_printf_long_double=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ beos*) gl_cv_func_printf_long_double="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_long_double="guessing no";;
+ *) gl_cv_func_printf_long_double="guessing yes";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:140: -1- AC_DEFUN([gl_PRINTF_INFINITE], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports infinite 'double' arguments],
+ [gl_cv_func_printf_infinite],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static int
+strisnan (const char *string, size_t start_index, size_t end_index)
+{
+ if (start_index < end_index)
+ {
+ if (string[start_index] == '-')
+ start_index++;
+ if (start_index + 3 <= end_index
+ && memcmp (string + start_index, "nan", 3) == 0)
+ {
+ start_index += 3;
+ if (start_index == end_index
+ || (string[start_index] == '(' && string[end_index - 1] == ')'))
+ return 1;
+ }
+ }
+ 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 ()
+{
+ int result = 0;
+ if (sprintf (buf, "%f", 1.0 / zero) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%f", -1.0 / zero) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%f", zero / zero) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ if (sprintf (buf, "%e", 1.0 / zero) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 4;
+ if (sprintf (buf, "%e", -1.0 / zero) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 4;
+ if (sprintf (buf, "%e", zero / zero) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 8;
+ if (sprintf (buf, "%g", 1.0 / zero) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 16;
+ if (sprintf (buf, "%g", -1.0 / zero) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 16;
+ if (sprintf (buf, "%g", zero / zero) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 32;
+ /* This test fails on HP-UX 10.20. */
+ if (have_minus_zero ())
+ if (sprintf (buf, "%g", - zero) < 0
+ || strcmp (buf, "-0") != 0)
+ result |= 64;
+ return result;
+}]])],
+ [gl_cv_func_printf_infinite=yes],
+ [gl_cv_func_printf_infinite=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess yes on FreeBSD >= 6.
+ freebsd[1-5]*) gl_cv_func_printf_infinite="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_printf_infinite="guessing no";;
+ darwin*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess yes on HP-UX >= 11.
+ hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";;
+ hpux*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_printf_infinite="guessing no";;
+ netbsd*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_printf_infinite="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_infinite="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:249: -1- AC_DEFUN([gl_PRINTF_INFINITE_LONG_DOUBLE], [
+ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gl_BIGENDIAN])
+ AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ dnl The user can set or unset the variable gl_printf_safe to indicate
+ dnl that he wishes a safe handling of non-IEEE-754 'long double' values.
+ if test -n "$gl_printf_safe"; then
+ AC_DEFINE([CHECK_PRINTF_SAFE], [1],
+ [Define if you wish *printf() functions that have a safe handling of
+ non-IEEE-754 'long double' values.])
+ fi
+ case "$gl_cv_func_printf_long_double" in
+ *yes)
+ AC_CACHE_CHECK([whether printf supports infinite 'long double' arguments],
+ [gl_cv_func_printf_infinite_long_double],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+]GL_NOCRASH[
+#include <float.h>
+#include <stdio.h>
+#include <string.h>
+static int
+strisnan (const char *string, size_t start_index, size_t end_index)
+{
+ if (start_index < end_index)
+ {
+ if (string[start_index] == '-')
+ start_index++;
+ if (start_index + 3 <= end_index
+ && memcmp (string + start_index, "nan", 3) == 0)
+ {
+ start_index += 3;
+ if (start_index == end_index
+ || (string[start_index] == '(' && string[end_index - 1] == ')'))
+ return 1;
+ }
+ }
+ return 0;
+}
+static char buf[10000];
+static long double zeroL = 0.0L;
+int main ()
+{
+ int result = 0;
+ nocrash_init();
+ if (sprintf (buf, "%Lf", 1.0L / zeroL) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Lf", -1.0L / zeroL) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Lf", zeroL / zeroL) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 1;
+ if (sprintf (buf, "%Le", 1.0L / zeroL) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Le", -1.0L / zeroL) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Le", zeroL / zeroL) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 1;
+ if (sprintf (buf, "%Lg", 1.0L / zeroL) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Lg", -1.0L / zeroL) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Lg", zeroL / zeroL) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 1;
+#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
+/* Representation of an 80-bit 'long double' as an initializer for a sequence
+ of 'unsigned int' words. */
+# ifdef WORDS_BIGENDIAN
+# define LDBL80_WORDS(exponent,manthi,mantlo) \
+ { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \
+ ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16), \
+ (unsigned int) (mantlo) << 16 \
+ }
+# else
+# define LDBL80_WORDS(exponent,manthi,mantlo) \
+ { mantlo, manthi, exponent }
+# endif
+ { /* Quiet NaN. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ }
+ {
+ /* Signalling NaN. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ }
+ { /* Pseudo-NaN. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 4;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 4;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 4;
+ }
+ { /* Pseudo-Infinity. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 8;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 8;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 8;
+ }
+ { /* Pseudo-Zero. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 16;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 16;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 16;
+ }
+ { /* Unnormalized number. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 32;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 32;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 32;
+ }
+ { /* Pseudo-Denormal. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 64;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 64;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 64;
+ }
+#endif
+ return result;
+}]])],
+ [gl_cv_func_printf_infinite_long_double=yes],
+ [gl_cv_func_printf_infinite_long_double=no],
+ [
+changequote(,)dnl
+ case "$host_cpu" in
+ # Guess no on ia64, x86_64, i386.
+ ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";;
+ *)
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+ # Guess yes on FreeBSD >= 6.
+ freebsd[1-5]*) gl_cv_func_printf_infinite_long_double="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+ # Guess yes on HP-UX >= 11.
+ hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
+ hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_infinite_long_double="guessing no";;
+ esac
+ ;;
+ esac
+changequote([,])dnl
+ ])
+ ])
+ ;;
+ *)
+ gl_cv_func_printf_infinite_long_double="irrelevant"
+ ;;
+ esac
+])
+m4trace:m4/printf.m4:470: -1- AC_DEFUN([gl_PRINTF_DIRECTIVE_A], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the 'a' and 'A' directives],
+ [gl_cv_func_printf_directive_a],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+static double zero = 0.0;
+int main ()
+{
+ int result = 0;
+ if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0
+ || (strcmp (buf, "0x1.922p+1 33") != 0
+ && strcmp (buf, "0x3.244p+0 33") != 0
+ && strcmp (buf, "0x6.488p-1 33") != 0
+ && strcmp (buf, "0xc.91p-2 33") != 0))
+ result |= 1;
+ if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0
+ || (strcmp (buf, "-0X1.922P+1 33") != 0
+ && strcmp (buf, "-0X3.244P+0 33") != 0
+ && strcmp (buf, "-0X6.488P-1 33") != 0
+ && strcmp (buf, "-0XC.91P-2 33") != 0))
+ result |= 2;
+ /* This catches a FreeBSD 6.1 bug: it doesn't round. */
+ if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0
+ || (strcmp (buf, "0x1.83p+0 33") != 0
+ && strcmp (buf, "0x3.05p-1 33") != 0
+ && strcmp (buf, "0x6.0ap-2 33") != 0
+ && strcmp (buf, "0xc.14p-3 33") != 0))
+ result |= 4;
+ /* This catches a FreeBSD 6.1 bug. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
+ if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0
+ || buf[0] == '0')
+ result |= 8;
+ /* This catches a MacOS X 10.3.9 (Darwin 7.9) bug. */
+ if (sprintf (buf, "%.1a", 1.999) < 0
+ || (strcmp (buf, "0x1.0p+1") != 0
+ && strcmp (buf, "0x2.0p+0") != 0
+ && strcmp (buf, "0x4.0p-1") != 0
+ && strcmp (buf, "0x8.0p-2") != 0))
+ result |= 16;
+ /* This catches the same MacOS X 10.3.9 (Darwin 7.9) bug and also a
+ glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>. */
+ if (sprintf (buf, "%.1La", 1.999L) < 0
+ || (strcmp (buf, "0x1.0p+1") != 0
+ && strcmp (buf, "0x2.0p+0") != 0
+ && strcmp (buf, "0x4.0p-1") != 0
+ && strcmp (buf, "0x8.0p-2") != 0))
+ result |= 32;
+ return result;
+}]])],
+ [gl_cv_func_printf_directive_a=yes],
+ [gl_cv_func_printf_directive_a=no],
+ [
+ case "$host_os" in
+ # Guess yes on glibc >= 2.5 systems.
+ *-gnu*)
+ AC_EGREP_CPP([BZ2908], [
+ #include <features.h>
+ #ifdef __GNU_LIBRARY__
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)) && !defined __UCLIBC__
+ BZ2908
+ #endif
+ #endif
+ ],
+ [gl_cv_func_printf_directive_a="guessing yes"],
+ [gl_cv_func_printf_directive_a="guessing no"])
+ ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_directive_a="guessing no";;
+ esac
+ ])
+ ])
+])
+m4trace:m4/printf.m4:555: -1- AC_DEFUN([gl_PRINTF_DIRECTIVE_F], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the 'F' directive],
+ [gl_cv_func_printf_directive_f],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+static double zero = 0.0;
+int main ()
+{
+ int result = 0;
+ if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0
+ || strcmp (buf, "1234567.000000 33") != 0)
+ result |= 1;
+ if (sprintf (buf, "%F", 1.0 / zero) < 0
+ || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0))
+ result |= 2;
+ /* This catches a Cygwin 1.5.x bug. */
+ if (sprintf (buf, "%.F", 1234.0) < 0
+ || strcmp (buf, "1234") != 0)
+ result |= 4;
+ return result;
+}]])],
+ [gl_cv_func_printf_directive_f=yes],
+ [gl_cv_func_printf_directive_f=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_directive_f="guessing yes";;
+ # Guess yes on FreeBSD >= 6.
+ freebsd[1-5]*) gl_cv_func_printf_directive_f="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_printf_directive_f="guessing no";;
+ darwin*) gl_cv_func_printf_directive_f="guessing yes";;
+ # Guess yes on Solaris >= 2.10.
+ solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ solaris*) gl_cv_func_printf_sizes_c99="guessing no";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_directive_f="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:611: -1- AC_DEFUN([gl_PRINTF_DIRECTIVE_N], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the 'n' directive],
+ [gl_cv_func_printf_directive_n],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef _MSC_VER
+/* See page about "Parameter Validation" on msdn.microsoft.com. */
+static void cdecl
+invalid_parameter_handler (const wchar_t *expression,
+ const wchar_t *function,
+ const wchar_t *file, unsigned int line,
+ uintptr_t dummy)
+{
+ exit (1);
+}
+#endif
+static char fmtstring[10];
+static char buf[100];
+int main ()
+{
+ int count = -1;
+#ifdef _MSC_VER
+ _set_invalid_parameter_handler (invalid_parameter_handler);
+#endif
+ /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2)
+ support %n in format strings in read-only memory but not in writable
+ memory. */
+ strcpy (fmtstring, "%d %n");
+ if (sprintf (buf, fmtstring, 123, &count, 33, 44, 55) < 0
+ || strcmp (buf, "123 ") != 0
+ || count != 4)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_printf_directive_n=yes],
+ [gl_cv_func_printf_directive_n=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ mingw*) gl_cv_func_printf_directive_n="guessing no";;
+ *) gl_cv_func_printf_directive_n="guessing yes";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:672: -1- 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_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+/* 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 ()
+{
+ int result = 0;
+ 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)
+ result |= 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)
+ result |= 2;
+ }
+ /* 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)
+ result |= 8;
+ }
+ return result;
+}]])],
+ [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
+ ])
+ ])
+])
+m4trace:m4/printf.m4:751: -1- AC_DEFUN([gl_PRINTF_POSITIONS], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports POSIX/XSI format strings with positions],
+ [gl_cv_func_printf_positions],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+ dollar expansion (possibly an autoconf bug). */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, "55 33") != 0);
+}]])],
+ [gl_cv_func_printf_positions=yes],
+ [gl_cv_func_printf_positions=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+ gl_cv_func_printf_positions="guessing no";;
+ beos*) gl_cv_func_printf_positions="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+ *) gl_cv_func_printf_positions="guessing yes";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:791: -1- AC_DEFUN([gl_PRINTF_FLAG_GROUPING], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the grouping flag],
+ [gl_cv_func_printf_flag_grouping],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+int main ()
+{
+ if (sprintf (buf, "%'d %d", 1234567, 99) < 0
+ || buf[strlen (buf) - 1] != '9')
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_printf_flag_grouping=yes],
+ [gl_cv_func_printf_flag_grouping=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
+ netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
+ *) gl_cv_func_printf_flag_grouping="guessing yes";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:830: -1- AC_DEFUN([gl_PRINTF_FLAG_LEFTADJUST], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the left-adjust flag correctly],
+ [gl_cv_func_printf_flag_leftadjust],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+int main ()
+{
+ /* Check that a '-' flag is not annihilated by a negative width. */
+ if (sprintf (buf, "a%-*sc", -3, "b") < 0
+ || strcmp (buf, "ab c") != 0)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_printf_flag_leftadjust=yes],
+ [gl_cv_func_printf_flag_leftadjust=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on HP-UX 11.
+ hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
+ # Guess no on HP-UX 10 and older.
+ hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
+ # Guess yes otherwise.
+ *) gl_cv_func_printf_flag_leftadjust="guessing yes";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:872: -1- AC_DEFUN([gl_PRINTF_FLAG_ZERO], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the zero flag correctly],
+ [gl_cv_func_printf_flag_zero],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+static double zero = 0.0;
+int main ()
+{
+ if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0
+ || (strcmp (buf, " inf") != 0
+ && strcmp (buf, " infinity") != 0))
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_printf_flag_zero=yes],
+ [gl_cv_func_printf_flag_zero=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_printf_flag_zero="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_flag_zero="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:919: -1- AC_DEFUN([gl_PRINTF_PRECISION], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports large precisions],
+ [gl_cv_func_printf_precision],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[5000];
+int main ()
+{
+ int result = 0;
+#ifdef __BEOS__
+ /* On BeOS, this would crash and show a dialog box. Avoid the crash. */
+ return 1;
+#endif
+ if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3)
+ result |= 1;
+ if (sprintf (buf, "%.4000f %d", 1.0, 33, 44) < 4000 + 5)
+ result |= 2;
+ if (sprintf (buf, "%.511f %d", 1.0, 33, 44) < 511 + 5
+ || buf[0] != '1')
+ result |= 4;
+ if (sprintf (buf, "%.999f %d", 1.0, 33, 44) < 999 + 5
+ || buf[0] != '1')
+ result |= 4;
+ return result;
+}]])],
+ [gl_cv_func_printf_precision=yes],
+ [gl_cv_func_printf_precision=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess no only on Solaris, native Windows, and BeOS systems.
+ solaris*) gl_cv_func_printf_precision="guessing no" ;;
+ mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
+ beos*) gl_cv_func_printf_precision="guessing no" ;;
+ *) gl_cv_func_printf_precision="guessing yes" ;;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:970: -1- AC_DEFUN([gl_PRINTF_ENOMEM], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gl_MULTIARCH])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf survives out-of-memory conditions],
+ [gl_cv_func_printf_enomem],
+ [
+ gl_cv_func_printf_enomem="guessing no"
+ if test "$cross_compiling" = no; then
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
+]GL_NOCRASH[
+changequote(,)dnl
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <errno.h>
+int main()
+{
+ struct rlimit limit;
+ int ret;
+ nocrash_init ();
+ /* Some printf implementations allocate temporary space with malloc. */
+ /* On BSD systems, malloc() is limited by RLIMIT_DATA. */
+#ifdef RLIMIT_DATA
+ if (getrlimit (RLIMIT_DATA, &limit) < 0)
+ return 77;
+ if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
+ limit.rlim_max = 5000000;
+ limit.rlim_cur = limit.rlim_max;
+ if (setrlimit (RLIMIT_DATA, &limit) < 0)
+ return 77;
+#endif
+ /* On Linux systems, malloc() is limited by RLIMIT_AS. */
+#ifdef RLIMIT_AS
+ if (getrlimit (RLIMIT_AS, &limit) < 0)
+ return 77;
+ if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
+ limit.rlim_max = 5000000;
+ limit.rlim_cur = limit.rlim_max;
+ if (setrlimit (RLIMIT_AS, &limit) < 0)
+ return 77;
+#endif
+ /* Some printf implementations allocate temporary space on the stack. */
+#ifdef RLIMIT_STACK
+ if (getrlimit (RLIMIT_STACK, &limit) < 0)
+ return 77;
+ if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
+ limit.rlim_max = 5000000;
+ limit.rlim_cur = limit.rlim_max;
+ if (setrlimit (RLIMIT_STACK, &limit) < 0)
+ return 77;
+#endif
+ ret = printf ("%.5000000f", 1.0);
+ return !(ret == 5000002 || (ret < 0 && errno == ENOMEM));
+}
+changequote([,])dnl
+ ])])
+ if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
+ (./conftest
+ result=$?
+ if test $result != 0 && test $result != 77; then result=1; fi
+ exit $result
+ ) >/dev/null 2>/dev/null
+ case $? in
+ 0) gl_cv_func_printf_enomem="yes" ;;
+ 77) gl_cv_func_printf_enomem="guessing no" ;;
+ *) gl_cv_func_printf_enomem="no" ;;
+ esac
+ else
+ gl_cv_func_printf_enomem="guessing no"
+ fi
+ rm -fr conftest*
+ else
+ dnl A universal build on Apple MacOS X platforms.
+ dnl The result would be 'no' in 32-bit mode and 'yes' in 64-bit mode.
+ dnl But we need a configuration result that is valid in both modes.
+ gl_cv_func_printf_enomem="guessing no"
+ fi
+ fi
+ if test "$gl_cv_func_printf_enomem" = "guessing no"; then
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on Solaris.
+ solaris*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on AIX.
+ aix*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on HP-UX/hppa.
+ hpux*) case "$host_cpu" in
+ hppa*) gl_cv_func_printf_enomem="guessing yes";;
+ *) gl_cv_func_printf_enomem="guessing no";;
+ esac
+ ;;
+ # Guess yes on IRIX.
+ irix*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on OSF/1.
+ osf*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on Haiku.
+ haiku*) gl_cv_func_printf_enomem="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_enomem="guessing no";;
+ esac
+changequote([,])dnl
+ fi
+ ])
+])
+m4trace:m4/printf.m4:1086: -1- AC_DEFUN([gl_SNPRINTF_PRESENCE], [
+ AC_CHECK_FUNCS_ONCE([snprintf])
+])
+m4trace:m4/printf.m4:1095: -1- AC_DEFUN([gl_SNPRINTF_TRUNCATION_C99], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_SNPRINTF_PRESENCE])
+ AC_CACHE_CHECK([whether snprintf truncates the result as in C99],
+ [gl_cv_func_snprintf_truncation_c99],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+static char buf[100];
+int main ()
+{
+ strcpy (buf, "ABCDEF");
+ my_snprintf (buf, 3, "%d %d", 4567, 89);
+ if (memcmp (buf, "45\0DEF", 6) != 0)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_snprintf_truncation_c99=yes],
+ [gl_cv_func_snprintf_truncation_c99=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on OpenBSD >= 3.9.
+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+ gl_cv_func_snprintf_truncation_c99="guessing no";;
+ openbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on Solaris >= 2.6.
+ solaris2.[0-5] | solaris2.[0-5].*)
+ gl_cv_func_snprintf_truncation_c99="guessing no";;
+ solaris*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on AIX >= 4.
+ aix[1-3]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ aix*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on HP-UX >= 11.
+ hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on IRIX >= 6.5.
+ irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on OSF/1 >= 5.
+ osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_snprintf_truncation_c99="guessing no";;
+ netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:1191: -1- AC_DEFUN_ONCE([gl_SNPRINTF_RETVAL_C99], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_SNPRINTF_PRESENCE])
+ AC_CACHE_CHECK([whether snprintf returns a byte count as in C99],
+ [gl_cv_func_snprintf_retval_c99],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+static char buf[100];
+int main ()
+{
+ strcpy (buf, "ABCDEF");
+ if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7)
+ return 1;
+ if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7)
+ return 2;
+ if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
+ return 3;
+ return 0;
+}]])],
+ [gl_cv_func_snprintf_retval_c99=yes],
+ [gl_cv_func_snprintf_retval_c99=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on OpenBSD >= 3.9.
+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+ gl_cv_func_snprintf_retval_c99="guessing no";;
+ openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on Solaris >= 2.10.
+ solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ solaris*) gl_cv_func_printf_sizes_c99="guessing no";;
+ # Guess yes on AIX >= 4.
+ aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ aix*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_snprintf_retval_c99="guessing no";;
+ netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_snprintf_retval_c99="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:1270: -1- AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_SNPRINTF_PRESENCE])
+ AC_CACHE_CHECK([whether snprintf fully supports the 'n' directive],
+ [gl_cv_func_snprintf_directive_n],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+static char fmtstring[10];
+static char buf[100];
+int main ()
+{
+ int count = -1;
+ /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2)
+ support %n in format strings in read-only memory but not in writable
+ memory. */
+ strcpy (fmtstring, "%d %n");
+ my_snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55);
+ if (count != 6)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_snprintf_directive_n=yes],
+ [gl_cv_func_snprintf_directive_n=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_snprintf_directive_n="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_snprintf_directive_n="guessing no";;
+ darwin*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on Solaris >= 2.6.
+ solaris2.[0-5] | solaris2.[0-5].*)
+ gl_cv_func_snprintf_directive_n="guessing no";;
+ solaris*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on AIX >= 4.
+ aix[1-3]*) gl_cv_func_snprintf_directive_n="guessing no";;
+ aix*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on IRIX >= 6.5.
+ irix6.5) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on OSF/1 >= 5.
+ osf[3-4]*) gl_cv_func_snprintf_directive_n="guessing no";;
+ osf*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_snprintf_directive_n="guessing no";;
+ netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_snprintf_directive_n="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/printf.m4:1354: -1- AC_DEFUN([gl_SNPRINTF_SIZE1], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gl_SNPRINTF_PRESENCE])
+ AC_CACHE_CHECK([whether snprintf respects a size of 1],
+ [gl_cv_func_snprintf_size1],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+int main()
+{
+ static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+ my_snprintf (buf, 1, "%d", 12345);
+ return buf[1] != 'E';
+}]])],
+ [gl_cv_func_snprintf_size1=yes],
+ [gl_cv_func_snprintf_size1=no],
+ [gl_cv_func_snprintf_size1="guessing yes"])
+ ])
+])
+m4trace:m4/printf.m4:1426: -1- AC_DEFUN([gl_VSNPRINTF_ZEROSIZE_C99], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether vsnprintf respects a zero size as in C99],
+ [gl_cv_func_vsnprintf_zerosize_c99],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdarg.h>
+#include <stdio.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+int main()
+{
+ static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+ my_snprintf (buf, 0, "%d", 12345);
+ return buf[0] != 'D';
+}]])],
+ [gl_cv_func_vsnprintf_zerosize_c99=yes],
+ [gl_cv_func_vsnprintf_zerosize_c99=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ darwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on Cygwin.
+ cygwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on Solaris >= 2.6.
+ solaris2.[0-5] | solaris2.[0-5].*)
+ gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ solaris*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on AIX >= 4.
+ aix[1-3]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ aix*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on IRIX >= 6.5.
+ irix6.5) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on mingw.
+ mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+m4trace:m4/priv-set.m4:11: -1- AC_DEFUN([gl_PRIV_SET], [
+ AC_REQUIRE([AC_C_INLINE])
+ AC_CHECK_FUNCS([getppriv])
+ AC_CHECK_HEADERS_ONCE([priv.h])
+])
+m4trace:m4/progtest.m4:25: -1- AC_DEFUN([AM_PATH_PROG_WITH_TEST], [
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL([ac_cv_path_$1],
+[case "[$]$1" in
+ [[\\/]]* | ?:[[\\/]]*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+ AC_MSG_RESULT([$][$1])
+else
+ AC_MSG_RESULT([no])
+fi
+AC_SUBST([$1])dnl
+])
+m4trace:m4/quote.m4:8: -1- AC_DEFUN([gl_QUOTE], [
+ dnl Prerequisites of lib/quote.c.
+ dnl (none)
+ :
+])
+m4trace:m4/quotearg.m4:7: -1- AC_DEFUN([gl_QUOTEARG], [
+ :
+])
+m4trace:m4/raise.m4:7: -1- AC_DEFUN([gl_FUNC_RAISE], [
+ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ AC_CHECK_FUNCS([raise])
+ if test $ac_cv_func_raise = no; then
+ HAVE_RAISE=0
+ else
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_RAISE=1
+ fi
+ m4_ifdef([gl_SIGNALBLOCKING], [
+ gl_SIGNALBLOCKING
+ if test $HAVE_POSIX_SIGNALBLOCKING = 0; then
+ m4_ifdef([gl_SIGNAL_SIGPIPE], [
+ gl_SIGNAL_SIGPIPE
+ if test $gl_cv_header_signal_h_SIGPIPE != yes; then
+ REPLACE_RAISE=1
+ fi
+ ], [:])
+ fi
+ ])
+ fi
+])
+m4trace:m4/raise.m4:34: -1- AC_DEFUN([gl_PREREQ_RAISE], [
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:m4/rawmemchr.m4:7: -1- AC_DEFUN([gl_FUNC_RAWMEMCHR], [
+ dnl Persuade glibc <string.h> to declare rawmemchr().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_FUNCS([rawmemchr])
+ if test $ac_cv_func_rawmemchr = no; then
+ HAVE_RAWMEMCHR=0
+ fi
+])
+m4trace:m4/rawmemchr.m4:20: -1- AC_DEFUN([gl_PREREQ_RAWMEMCHR], [:])
+m4trace:m4/read.m4:7: -1- AC_DEFUN([gl_FUNC_READ], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_READ=1
+ fi
+ dnl This ifdef is just an optimization, to avoid performing a configure
+ dnl check whose result is not used. It does not make the test of
+ dnl GNULIB_UNISTD_H_NONBLOCKING or GNULIB_NONBLOCKING redundant.
+ m4_ifdef([gl_NONBLOCKING_IO], [
+ gl_NONBLOCKING_IO
+ if test $gl_cv_have_nonblocking != yes; then
+ REPLACE_READ=1
+ fi
+ ])
+])
+m4trace:m4/read.m4:26: -1- AC_DEFUN([gl_PREREQ_READ], [
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:m4/readdir.m4:7: -1- AC_DEFUN([gl_FUNC_READDIR], [
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_FUNCS([readdir])
+ if test $ac_cv_func_readdir = no; then
+ HAVE_READDIR=0
+ fi
+])
+m4trace:m4/readlink.m4:7: -1- AC_DEFUN([gl_FUNC_READLINK], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([readlink])
+ if test $ac_cv_func_readlink = no; then
+ HAVE_READLINK=0
+ 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
+ elif test "$gl_cv_decl_readlink_works" != yes; then
+ REPLACE_READLINK=1
+ fi
+ fi
+])
+m4trace:m4/readlink.m4:49: -1- AC_DEFUN([gl_FUNC_READLINK_SEPARATE], [
+ AC_CHECK_FUNCS_ONCE([readlink])
+ gl_PREREQ_READLINK
+])
+m4trace:m4/readlink.m4:56: -1- AC_DEFUN([gl_PREREQ_READLINK], [
+ :
+])
+m4trace:m4/readlinkat.m4:11: -1- AC_DEFUN([gl_FUNC_READLINKAT], [
+ AC_REQUIRE([gl_FUNC_OPENAT])
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([readlinkat])
+ if test $ac_cv_func_readlinkat = no; then
+ HAVE_READLINKAT=0
+ fi
+])
+m4trace:m4/realloc.m4:11: -1- AC_DEFUN([gl_FUNC_REALLOC_GNU], [
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ dnl _AC_FUNC_REALLOC_IF is defined in Autoconf.
+ _AC_FUNC_REALLOC_IF(
+ [AC_DEFINE([HAVE_REALLOC_GNU], [1],
+ [Define to 1 if your system has a GNU libc compatible 'realloc'
+ function, and to 0 otherwise.])],
+ [AC_DEFINE([HAVE_REALLOC_GNU], [0])
+ REPLACE_REALLOC=1
+ ])
+])
+m4trace:m4/realloc.m4:28: -1- AC_DEFUN([gl_FUNC_REALLOC_POSIX], [
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+ if test $gl_cv_func_malloc_posix = yes; then
+ AC_DEFINE([HAVE_REALLOC_POSIX], [1],
+ [Define if the 'realloc' function is POSIX compliant.])
+ else
+ REPLACE_REALLOC=1
+ fi
+])
+m4trace:m4/regex.m4:14: -1- AC_DEFUN([gl_REGEX], [
+ AC_ARG_WITH([included-regex],
+ [AS_HELP_STRING([--without-included-regex],
+ [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],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [AC_INCLUDES_DEFAULT[
+ #include <locale.h>
+ #include <limits.h>
+ #include <regex.h>
+ ]],
+ [[int result = 0;
+ static struct re_pattern_buffer regex;
+ unsigned char folded_chars[UCHAR_MAX + 1];
+ int i;
+ const char *s;
+ struct re_registers regs;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern (pat, sizeof pat - 1, &regex);
+ if (s)
+ result |= 1;
+ else if (re_search (&regex, data, sizeof data - 1,
+ 0, sizeof data - 1, &regs)
+ != -1)
+ result |= 1;
+ if (! setlocale (LC_ALL, "C"))
+ return 1;
+ }
+
+ /* This test is from glibc bug 3957, reported by Andrew Mackey. */
+ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("a[^x]b", 6, &regex);
+ if (s)
+ result |= 2;
+ /* This should fail, but succeeds for glibc-2.5. */
+ else if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
+ result |= 2;
+
+ /* This regular expression is from Spencer ere test number 75
+ in grep-2.3. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+ memset (&regex, 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, &regex);
+ /* This should fail with _Invalid character class name_ error. */
+ if (!s)
+ result |= 4;
+
+ /* Ensure that [b-a] is diagnosed as invalid, when
+ using RE_NO_EMPTY_RANGES. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES);
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("a[b-a]", 6, &regex);
+ if (s == 0)
+ result |= 8;
+
+ /* This should succeed, but does not for glibc-2.1.3. */
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("{1", 2, &regex);
+ if (s)
+ result |= 8;
+
+ /* The following example is derived from a problem report
+ against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("[an\371]*n", 7, &regex);
+ if (s)
+ result |= 8;
+ /* This should match, but does not for glibc-2.2.1. */
+ else if (re_match (&regex, "an", 2, 0, &regs) != 2)
+ result |= 8;
+
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("x", 1, &regex);
+ if (s)
+ result |= 8;
+ /* glibc-2.2.93 does not work with a negative RANGE argument. */
+ else if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
+ result |= 8;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("x", 1, &regex);
+ if (s)
+ result |= 16;
+ else if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
+ result |= 16;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
+ if (s)
+ result |= 32;
+
+ /* REG_STARTEND was added to glibc on 2004-01-15.
+ Reject older versions. */
+ if (! REG_STARTEND)
+ result |= 64;
+
+#if 0
+ /* It would be nice to reject hosts whose regoff_t values are too
+ narrow (including glibc on hosts with 64-bit ptrdiff_t and
+ 32-bit int), but we should wait until glibc implements this
+ feature. Otherwise, support for equivalence classes and
+ multibyte collation symbols would always be broken except
+ when compiling --without-included-regex. */
+ if (sizeof (regoff_t) < sizeof (ptrdiff_t)
+ || sizeof (regoff_t) < sizeof (ssize_t))
+ result |= 64;
+#endif
+
+ return result;
+ ]])],
+ [gl_cv_func_re_compile_pattern_working=yes],
+ [gl_cv_func_re_compile_pattern_working=no],
+ dnl When crosscompiling, assume it is not working.
+ [gl_cv_func_re_compile_pattern_working=no])])
+ case $gl_cv_func_re_compile_pattern_working in #(
+ yes) ac_use_included_regex=no;; #(
+ no) ac_use_included_regex=yes;;
+ esac
+ ;;
+ *) AC_MSG_ERROR([Invalid value for --with-included-regex: $with_included_regex])
+ ;;
+ esac
+
+ if test $ac_use_included_regex = yes; then
+ AC_DEFINE([_REGEX_LARGE_OFFSETS], [1],
+ [Define if you want regoff_t to be at least as wide POSIX requires.])
+ AC_DEFINE([re_syntax_options], [rpl_re_syntax_options],
+ [Define to rpl_re_syntax_options if the replacement should be used.])
+ AC_DEFINE([re_set_syntax], [rpl_re_set_syntax],
+ [Define to rpl_re_set_syntax if the replacement should be used.])
+ AC_DEFINE([re_compile_pattern], [rpl_re_compile_pattern],
+ [Define to rpl_re_compile_pattern if the replacement should be used.])
+ AC_DEFINE([re_compile_fastmap], [rpl_re_compile_fastmap],
+ [Define to rpl_re_compile_fastmap if the replacement should be used.])
+ AC_DEFINE([re_search], [rpl_re_search],
+ [Define to rpl_re_search if the replacement should be used.])
+ AC_DEFINE([re_search_2], [rpl_re_search_2],
+ [Define to rpl_re_search_2 if the replacement should be used.])
+ AC_DEFINE([re_match], [rpl_re_match],
+ [Define to rpl_re_match if the replacement should be used.])
+ AC_DEFINE([re_match_2], [rpl_re_match_2],
+ [Define to rpl_re_match_2 if the replacement should be used.])
+ AC_DEFINE([re_set_registers], [rpl_re_set_registers],
+ [Define to rpl_re_set_registers if the replacement should be used.])
+ AC_DEFINE([re_comp], [rpl_re_comp],
+ [Define to rpl_re_comp if the replacement should be used.])
+ AC_DEFINE([re_exec], [rpl_re_exec],
+ [Define to rpl_re_exec if the replacement should be used.])
+ AC_DEFINE([regcomp], [rpl_regcomp],
+ [Define to rpl_regcomp if the replacement should be used.])
+ AC_DEFINE([regexec], [rpl_regexec],
+ [Define to rpl_regexec if the replacement should be used.])
+ AC_DEFINE([regerror], [rpl_regerror],
+ [Define to rpl_regerror if the replacement should be used.])
+ AC_DEFINE([regfree], [rpl_regfree],
+ [Define to rpl_regfree if the replacement should be used.])
+ fi
+])
+m4trace:m4/regex.m4:214: -1- 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])
+ AC_CHECK_FUNCS_ONCE([isblank iswctype wcscoll])
+ AC_CHECK_DECLS([isblank], [], [], [[#include <ctype.h>]])
+])
+m4trace:m4/rename.m4:16: -1- AC_DEFUN([gl_FUNC_RENAME], [
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([lstat])
+
+ dnl Solaris 10, AIX 7.1 mistakenly allow rename("file","name/").
+ dnl NetBSD 1.6 mistakenly forbids rename("dir","name/").
+ dnl FreeBSD 7.2 mistakenly allows rename("file","link-to-file/").
+ dnl The Solaris bug can be worked around without stripping
+ dnl trailing slash, while the NetBSD bug requires stripping;
+ dnl the two conditions can be distinguished by whether hard
+ dnl links are also broken.
+ AC_CACHE_CHECK([whether rename honors trailing slash on destination],
+ [gl_cv_func_rename_slash_dst_works],
+ [rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+ touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+ AC_MSG_ERROR([cannot create temporary files])
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.f conftest.lnk
+ fi
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[
+# include <stdio.h>
+# include <stdlib.h>
+ ]],
+ [[int result = 0;
+ if (rename ("conftest.f1", "conftest.f2/") == 0)
+ result |= 1;
+ if (rename ("conftest.d1", "conftest.d2/") != 0)
+ result |= 2;
+#if HAVE_LSTAT
+ if (rename ("conftest.f", "conftest.lnk/") == 0)
+ result |= 4;
+#endif
+ return result;
+ ]])],
+ [gl_cv_func_rename_slash_dst_works=yes],
+ [gl_cv_func_rename_slash_dst_works=no],
+ dnl When crosscompiling, assume rename is broken.
+ [gl_cv_func_rename_slash_dst_works="guessing no"])
+ rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+ ])
+ if test "x$gl_cv_func_rename_slash_dst_works" != xyes; then
+ REPLACE_RENAME=1
+ AC_DEFINE([RENAME_TRAILING_SLASH_DEST_BUG], [1],
+ [Define if rename does not correctly handle slashes on the destination
+ argument, such as on Solaris 10 or NetBSD 1.6.])
+ fi
+
+ dnl SunOS 4.1.1_U1 mistakenly forbids rename("dir/","name").
+ dnl Solaris 9 mistakenly allows rename("file/","name").
+ dnl FreeBSD 7.2 mistakenly allows rename("link-to-file/","name").
+ dnl These bugs require stripping trailing slash to avoid corrupting
+ dnl symlinks with a trailing slash.
+ AC_CACHE_CHECK([whether rename honors trailing slash on source],
+ [gl_cv_func_rename_slash_src_works],
+ [rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+ touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+ AC_MSG_ERROR([cannot create temporary files])
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.f conftest.lnk
+ fi
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[
+# include <stdio.h>
+# include <stdlib.h>
+ ]],
+ [[int result = 0;
+ if (rename ("conftest.f1/", "conftest.d3") == 0)
+ result |= 1;
+ if (rename ("conftest.d1/", "conftest.d2") != 0)
+ result |= 2;
+#if HAVE_LSTAT
+ if (rename ("conftest.lnk/", "conftest.f") == 0)
+ result |= 4;
+#endif
+ return result;
+ ]])],
+ [gl_cv_func_rename_slash_src_works=yes],
+ [gl_cv_func_rename_slash_src_works=no],
+ dnl When crosscompiling, assume rename is broken.
+ [gl_cv_func_rename_slash_src_works="guessing no"])
+ rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+ ])
+ if test "x$gl_cv_func_rename_slash_src_works" != xyes; then
+ REPLACE_RENAME=1
+ AC_DEFINE([RENAME_TRAILING_SLASH_SOURCE_BUG], [1],
+ [Define if rename does not correctly handle slashes on the source
+ argument, such as on Solaris 9 or cygwin 1.5.])
+ fi
+
+ dnl NetBSD 1.6 and cygwin 1.5.x mistakenly reduce hard link count
+ dnl on rename("h1","h2").
+ dnl This bug requires stat'ting targets prior to attempting rename.
+ AC_CHECK_FUNCS_ONCE([link])
+ AC_CACHE_CHECK([whether rename manages hard links correctly],
+ [gl_cv_func_rename_link_works],
+ [if test $ac_cv_func_link = yes; then
+ rm -rf conftest.f conftest.f1
+ if touch conftest.f && ln conftest.f conftest.f1 &&
+ set x `ls -i conftest.f conftest.f1` && test "$2" = "$4"; then
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[
+# include <stdio.h>
+# include <stdlib.h>
+# include <unistd.h>
+ ]],
+ [[int result = 0;
+ if (rename ("conftest.f", "conftest.f1"))
+ result |= 1;
+ if (unlink ("conftest.f1"))
+ result |= 2;
+ if (rename ("conftest.f", "conftest.f"))
+ result |= 4;
+ if (rename ("conftest.f1", "conftest.f1") == 0)
+ result |= 8;
+ return result;
+ ]])],
+ [gl_cv_func_rename_link_works=yes],
+ [gl_cv_func_rename_link_works=no],
+ dnl When crosscompiling, assume rename is broken.
+ [gl_cv_func_rename_link_works="guessing no"])
+ else
+ gl_cv_func_rename_link_works="guessing no"
+ fi
+ rm -rf conftest.f conftest.f1
+ else
+ gl_cv_func_rename_link_works=yes
+ fi
+ ])
+ if test "x$gl_cv_func_rename_link_works" != xyes; then
+ REPLACE_RENAME=1
+ AC_DEFINE([RENAME_HARD_LINK_BUG], [1],
+ [Define if rename fails to leave hard links alone, as on NetBSD 1.6
+ or Cygwin 1.5.])
+ fi
+
+ dnl Cygwin 1.5.x mistakenly allows rename("dir","file").
+ dnl mingw mistakenly forbids rename("dir1","dir2").
+ dnl These bugs require stripping trailing slash to avoid corrupting
+ dnl symlinks with a trailing slash.
+ AC_CACHE_CHECK([whether rename manages existing destinations correctly],
+ [gl_cv_func_rename_dest_works],
+ [rm -rf conftest.f conftest.d1 conftest.d2
+ touch conftest.f && mkdir conftest.d1 conftest.d2 ||
+ AC_MSG_ERROR([cannot create temporary files])
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[
+# include <stdio.h>
+# include <stdlib.h>
+ ]],
+ [[int result = 0;
+ if (rename ("conftest.d1", "conftest.d2") != 0)
+ result |= 1;
+ if (rename ("conftest.d2", "conftest.f") == 0)
+ result |= 2;
+ return result;
+ ]])],
+ [gl_cv_func_rename_dest_works=yes],
+ [gl_cv_func_rename_dest_works=no],
+ dnl When crosscompiling, assume rename is broken.
+ [gl_cv_func_rename_dest_works="guessing no"])
+ rm -rf conftest.f conftest.d1 conftest.d2
+ ])
+ if test "x$gl_cv_func_rename_dest_works" != xyes; then
+ REPLACE_RENAME=1
+ AC_DEFINE([RENAME_DEST_EXISTS_BUG], [1],
+ [Define if rename does not work when the destination file exists,
+ as on Cygwin 1.5 or Windows.])
+ fi
+])
+m4trace:m4/renameat.m4:11: -1- AC_DEFUN([gl_FUNC_RENAMEAT], [
+ AC_REQUIRE([gl_FUNC_OPENAT])
+ AC_REQUIRE([gl_FUNC_RENAME])
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([renameat])
+ if test $ac_cv_func_renameat = no; then
+ HAVE_RENAMEAT=0
+ elif test $REPLACE_RENAME = 1; then
+ dnl Solaris 9 and 10 have the same bugs in renameat as in rename.
+ REPLACE_RENAMEAT=1
+ fi
+])
+m4trace:m4/rewinddir.m4:7: -1- AC_DEFUN([gl_FUNC_REWINDDIR], [
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_FUNCS([rewinddir])
+ if test $ac_cv_func_rewinddir = no; then
+ HAVE_REWINDDIR=0
+ fi
+])
+m4trace:m4/rmdir.m4:7: -1- AC_DEFUN([gl_FUNC_RMDIR], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ dnl Detect cygwin 1.5.x bug.
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ 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>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <direct.h>
+ #endif
+]], [[int result = 0;
+ if (!rmdir ("conftest.file/"))
+ result |= 1;
+ else if (errno != ENOTDIR)
+ result |= 2;
+ if (!rmdir ("conftest.dir/./"))
+ result |= 4;
+ return result;
+ ]])],
+ [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
+ fi
+])
+m4trace:m4/rmt.m4:2: -1- AC_DEFUN([PU_RMT], [
+ # Set LIB_SETSOCKOPT to -lnsl -lsocket if necessary.
+ pu_save_LIBS=$LIBS
+ LIB_SETSOCKOPT=
+ AC_SEARCH_LIBS(setsockopt, [socket], ,
+ [AC_SEARCH_LIBS(setsockopt, [socket], , , [-lnsl])])
+ AC_SEARCH_LIBS(setsockopt, [nsl])
+
+ case "$ac_cv_search_setsockopt" in
+ -l*) LIB_SETSOCKOPT=$ac_cv_search_setsockopt
+ esac
+ AC_SUBST(LIB_SETSOCKOPT)
+ LIBS=$pu_save_LIBS
+
+ enable_rmt() {
+ if test $ac_cv_header_sys_mtio_h = yes; then
+ AC_CACHE_CHECK(for remote tape header files, pu_cv_header_rmt,
+ [AC_TRY_CPP([
+#if HAVE_SGTTY_H
+# include <sgtty.h>
+#endif
+#include <sys/socket.h>],
+ pu_cv_header_rmt=yes,
+ pu_cv_header_rmt=no)])
+ test $pu_cv_header_rmt = yes && PU_RMT_PROG='rmt$(EXEEXT)'
+ AC_SUBST(PU_RMT_PROG)
+ fi
+ }
+
+ AC_CHECK_HEADERS([sys/mtio.h])
+ AC_CACHE_CHECK(which ioctl field to test for reversed bytes,
+ pu_cv_header_mtio_check_field,
+ [AC_EGREP_HEADER(mt_model, sys/mtio.h,
+ pu_cv_header_mtio_check_field=mt_model,
+ pu_cv_header_mtio_check_field=mt_type)])
+ AC_DEFINE_UNQUOTED(MTIO_CHECK_FIELD,
+ $pu_cv_header_mtio_check_field,
+ [Define to mt_model (v.g., for DG/UX), else to mt_type.])
+
+
+ AC_ARG_VAR([DEFAULT_RMT_DIR],
+ [Define full file name of the directory where to install `rmt'. (default: $(libexecdir))])
+ if test "x$DEFAULT_RMT_DIR" != x; then
+ DEFAULT_RMT_COMMAND=$DEFAULT_RMT_DIR/rmt
+ else
+ DEFAULT_RMT_DIR='$(libexecdir)'
+ fi
+
+ AC_MSG_CHECKING([whether to build rmt])
+ AC_ARG_WITH([rmt],
+ AC_HELP_STRING([--with-rmt=FILE],
+ [Use FILE as the default `rmt' program. Do not build included copy of `rmt'.]),
+ [case $withval in
+ yes|no) AC_MSG_ERROR([Invalid argument to --with-rmt]);;
+ /*) DEFAULT_RMT_COMMAND=$withval
+ AC_MSG_RESULT([no, use $withval instead]);;
+ *) AC_MSG_ERROR([Argument to --with-rmt must be an absolute file name]);;
+ esac],
+ [AC_MSG_RESULT([yes])
+ enable_rmt
+ if test "$PU_RMT_PROG" = ""; then
+ AC_MSG_WARN([not building rmt, required header files are missing])
+ fi])
+
+ AC_SUBST(DEFAULT_RMT_COMMAND)
+ if test "x$DEFAULT_RMT_COMMAND" != x; then
+ AC_DEFINE_UNQUOTED(DEFAULT_RMT_COMMAND, "$DEFAULT_RMT_COMMAND",
+ [Define full file name of rmt program.])
+ fi
+])
+m4trace:m4/rpmatch.m4:7: -1- AC_DEFUN([gl_FUNC_RPMATCH], [
+ dnl Persuade glibc <stdlib.h> to declare rpmatch().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_CHECK_FUNCS([rpmatch])
+ if test $ac_cv_func_rpmatch = no; then
+ HAVE_RPMATCH=0
+ fi
+])
+m4trace:m4/rpmatch.m4:20: -1- AC_DEFUN([gl_PREREQ_RPMATCH], [
+ AC_CACHE_CHECK([for nl_langinfo and YESEXPR], [gl_cv_langinfo_yesexpr],
+ [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])
+ ])
+ if test $gl_cv_langinfo_yesexpr = yes; then
+ AC_DEFINE([HAVE_LANGINFO_YESEXPR], [1],
+ [Define if you have <langinfo.h> and nl_langinfo(YESEXPR).])
+ fi
+])
+m4trace:m4/rtapelib.m4:1: -1- AC_DEFUN([PU_RTAPELIB], [
+ AC_CHECK_HEADERS_ONCE([net/errno.h sys/inet.h netdb.h])
+])
+m4trace:m4/safe-read.m4:9: -1- AC_DEFUN([gl_PREREQ_SAFE_READ], [
+ AC_REQUIRE([gt_TYPE_SSIZE_T])
+])
+m4trace:m4/safe-write.m4:8: -1- AC_DEFUN([gl_PREREQ_SAFE_WRITE], [
+ gl_PREREQ_SAFE_READ
+])
+m4trace:m4/save-cwd.m4:8: -1- AC_DEFUN([gl_SAVE_CWD], [
+ AC_CHECK_FUNCS_ONCE([fchdir])
+])
+m4trace:m4/savedir.m4:8: -1- AC_DEFUN([gl_SAVEDIR], [
+ :
+])
+m4trace:m4/setenv.m4:7: -1- AC_DEFUN([gl_FUNC_SETENV], [
+ AC_REQUIRE([gl_FUNC_SETENV_SEPARATE])
+ 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>
+ #include <string.h>
+ ]], [[
+ int result = 0;
+ {
+ if (setenv ("", "", 0) != -1)
+ result |= 1;
+ else if (errno != EINVAL)
+ result |= 2;
+ }
+ {
+ if (setenv ("a", "=", 1) != 0)
+ result |= 4;
+ else if (strcmp (getenv ("a"), "=") != 0)
+ result |= 8;
+ }
+ return result;
+ ]])],
+ [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
+ fi
+ fi
+])
+m4trace:m4/setenv.m4:45: -1- AC_DEFUN([gl_FUNC_SETENV_SEPARATE], [
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_CHECK_DECLS_ONCE([setenv])
+ if test $ac_cv_have_decl_setenv = no; then
+ HAVE_DECL_SETENV=0
+ fi
+ AC_CHECK_FUNCS_ONCE([setenv])
+ gl_PREREQ_SETENV
+])
+m4trace:m4/setenv.m4:56: -1- AC_DEFUN([gl_FUNC_UNSETENV], [
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_CHECK_DECLS_ONCE([unsetenv])
+ if test $ac_cv_have_decl_unsetenv = no; then
+ HAVE_DECL_UNSETENV=0
+ fi
+ AC_CHECK_FUNCS([unsetenv])
+ if test $ac_cv_func_unsetenv = no; then
+ HAVE_UNSETENV=0
+ else
+ HAVE_UNSETENV=1
+ dnl Some BSDs return void, failing to do error checking.
+ AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#undef _BSD
+#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
+#include <stdlib.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int unsetenv (const char *name);
+ ]],
+ [[]])],
+ [gt_cv_func_unsetenv_ret='int'],
+ [gt_cv_func_unsetenv_ret='void'])])
+ if test $gt_cv_func_unsetenv_ret = 'void'; then
+ AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void
+ instead of int.])
+ REPLACE_UNSETENV=1
+ fi
+
+ dnl Solaris 10 unsetenv does not remove all copies of a name.
+ dnl Haiku alpha 2 unsetenv gets confused by assignment to environ.
+ dnl OpenBSD 4.7 unsetenv("") does not fail.
+ AC_CACHE_CHECK([whether unsetenv obeys POSIX],
+ [gl_cv_func_unsetenv_works],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+ #include <stdlib.h>
+ #include <errno.h>
+ extern char **environ;
+ ]], [[
+ char entry1[] = "a=1";
+ char entry2[] = "b=2";
+ char *env[] = { entry1, entry2, NULL };
+ if (putenv ((char *) "a=1")) return 1;
+ if (putenv (entry2)) return 2;
+ entry2[0] = 'a';
+ unsetenv ("a");
+ if (getenv ("a")) return 3;
+ if (!unsetenv ("") || errno != EINVAL) return 4;
+ entry2[0] = 'b';
+ environ = env;
+ if (!getenv ("a")) return 5;
+ entry2[0] = 'a';
+ unsetenv ("a");
+ if (getenv ("a")) return 6;
+ ]])],
+ [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
+ fi
+ fi
+])
+m4trace:m4/setenv.m4:126: -1- AC_DEFUN([gl_PREREQ_SETENV], [
+ AC_REQUIRE([AC_FUNC_ALLOCA])
+ AC_REQUIRE([gl_ENVIRON])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CHECK_HEADERS([search.h])
+ AC_CHECK_FUNCS([tsearch])
+])
+m4trace:m4/setenv.m4:136: -1- AC_DEFUN([gl_PREREQ_UNSETENV], [
+ AC_REQUIRE([gl_ENVIRON])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+])
+m4trace:m4/signal_h.m4:7: -1- AC_DEFUN([gl_SIGNAL_H], [
+ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
+ AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T])
+ gl_NEXT_HEADERS([signal.h])
+
+# AIX declares sig_atomic_t to already include volatile, and C89 compilers
+# then choke on 'volatile sig_atomic_t'. C99 requires that it compile.
+ AC_CHECK_TYPE([volatile sig_atomic_t], [],
+ [HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0], [[
+#include <signal.h>
+ ]])
+
+ dnl Ensure the type pid_t gets defined.
+ AC_REQUIRE([AC_TYPE_PID_T])
+
+ AC_REQUIRE([AC_TYPE_UID_T])
+
+ dnl Persuade glibc <signal.h> to define sighandler_t.
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_TYPE([sighandler_t], [], [HAVE_SIGHANDLER_T=0], [[
+#include <signal.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 <signal.h>
+ ]], [pthread_sigmask sigaction
+ sigaddset sigdelset sigemptyset sigfillset sigismember
+ sigpending sigprocmask])
+])
+m4trace:m4/signal_h.m4:39: -1- AC_DEFUN([gl_CHECK_TYPE_SIGSET_T], [
+ AC_CHECK_TYPES([sigset_t],
+ [gl_cv_type_sigset_t=yes], [gl_cv_type_sigset_t=no],
+ [[
+ #include <signal.h>
+ /* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>. */
+ #include <sys/types.h>
+ ]])
+ if test $gl_cv_type_sigset_t != yes; then
+ HAVE_SIGSET_T=0
+ fi
+])
+m4trace:m4/signal_h.m4:53: -1- AC_DEFUN([gl_SIGNAL_MODULE_INDICATOR], [
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/signal_h.m4:62: -1- AC_DEFUN([gl_SIGNAL_H_DEFAULTS], [
+ GNULIB_PTHREAD_SIGMASK=0; AC_SUBST([GNULIB_PTHREAD_SIGMASK])
+ GNULIB_RAISE=0; AC_SUBST([GNULIB_RAISE])
+ GNULIB_SIGNAL_H_SIGPIPE=0; AC_SUBST([GNULIB_SIGNAL_H_SIGPIPE])
+ GNULIB_SIGPROCMASK=0; AC_SUBST([GNULIB_SIGPROCMASK])
+ GNULIB_SIGACTION=0; AC_SUBST([GNULIB_SIGACTION])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_POSIX_SIGNALBLOCKING=1; AC_SUBST([HAVE_POSIX_SIGNALBLOCKING])
+ HAVE_PTHREAD_SIGMASK=1; AC_SUBST([HAVE_PTHREAD_SIGMASK])
+ HAVE_RAISE=1; AC_SUBST([HAVE_RAISE])
+ HAVE_SIGSET_T=1; AC_SUBST([HAVE_SIGSET_T])
+ HAVE_SIGINFO_T=1; AC_SUBST([HAVE_SIGINFO_T])
+ HAVE_SIGACTION=1; AC_SUBST([HAVE_SIGACTION])
+ HAVE_STRUCT_SIGACTION_SA_SIGACTION=1;
+ AC_SUBST([HAVE_STRUCT_SIGACTION_SA_SIGACTION])
+ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1;
+ AC_SUBST([HAVE_TYPE_VOLATILE_SIG_ATOMIC_T])
+ HAVE_SIGHANDLER_T=1; AC_SUBST([HAVE_SIGHANDLER_T])
+ REPLACE_PTHREAD_SIGMASK=0; AC_SUBST([REPLACE_PTHREAD_SIGMASK])
+ REPLACE_RAISE=0; AC_SUBST([REPLACE_RAISE])
+])
+m4trace:m4/size_max.m4:9: -1- AC_DEFUN([gl_SIZE_MAX], [
+ AC_CHECK_HEADERS([stdint.h])
+ dnl First test whether the system already has SIZE_MAX.
+ AC_CACHE_CHECK([for SIZE_MAX], [gl_cv_size_max], [
+ gl_cv_size_max=
+ AC_EGREP_CPP([Found it], [
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
+], [gl_cv_size_max=yes])
+ if test -z "$gl_cv_size_max"; then
+ dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
+ dnl than the type 'unsigned long'. Try hard to find a definition that can
+ dnl be used in a preprocessor #if, i.e. doesn't contain a cast.
+ AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1],
+ [#include <stddef.h>
+#include <limits.h>], [size_t_bits_minus_1=])
+ AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)],
+ [#include <stddef.h>], [fits_in_uint=])
+ if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
+ if test $fits_in_uint = 1; then
+ dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
+ dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stddef.h>
+ extern size_t foo;
+ extern unsigned long foo;
+ ]],
+ [[]])],
+ [fits_in_uint=0])
+ fi
+ dnl We cannot use 'expr' to simplify this expression, because 'expr'
+ dnl works only with 'long' integers in the host environment, while we
+ dnl might be cross-compiling from a 32-bit platform to a 64-bit platform.
+ if test $fits_in_uint = 1; then
+ gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ else
+ gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ fi
+ else
+ dnl Shouldn't happen, but who knows...
+ gl_cv_size_max='((size_t)~(size_t)0)'
+ fi
+ fi
+ ])
+ 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])
+])
+m4trace:m4/sleep.m4:7: -1- AC_DEFUN([gl_FUNC_SLEEP], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ dnl We expect to see the declaration of sleep() in a header file.
+ dnl Older versions of mingw have a sleep() function that is an alias to
+ dnl _sleep() in MSVCRT. It has a different signature than POSIX 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
+ 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);
+ if (remaining > pentecost)
+ return 3;
+ if (remaining <= pentecost - 10)
+ return 4;
+ return 0;
+ ]])],
+ [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
+ fi
+ fi
+])
+m4trace:m4/snprintf.m4:11: -1- AC_DEFUN([gl_FUNC_SNPRINTF], [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ gl_cv_func_snprintf_usable=no
+ AC_CHECK_FUNCS([snprintf])
+ if test $ac_cv_func_snprintf = yes; then
+ gl_SNPRINTF_SIZE1
+ case "$gl_cv_func_snprintf_size1" in
+ *yes)
+ gl_SNPRINTF_RETVAL_C99
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+ gl_PRINTF_POSITIONS
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_snprintf_usable=yes
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ if test $gl_cv_func_snprintf_usable = no; then
+ gl_REPLACE_SNPRINTF
+ fi
+ AC_CHECK_DECLS_ONCE([snprintf])
+ if test $ac_cv_have_decl_snprintf = no; then
+ HAVE_DECL_SNPRINTF=0
+ fi
+])
+m4trace:m4/snprintf.m4:43: -1- AC_DEFUN([gl_REPLACE_SNPRINTF], [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_LIBOBJ([snprintf])
+ if test $ac_cv_func_snprintf = yes; then
+ REPLACE_SNPRINTF=1
+ fi
+ gl_PREREQ_SNPRINTF
+])
+m4trace:m4/snprintf.m4:54: -1- AC_DEFUN([gl_PREREQ_SNPRINTF], [:])
+m4trace:m4/ssize_t.m4:10: -1- AC_DEFUN([gt_TYPE_SSIZE_T], [
+ AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/types.h>]],
+ [[int x = sizeof (ssize_t *) + sizeof (ssize_t);
+ return !x;]])],
+ [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])])
+ if test $gt_cv_ssize_t = no; then
+ AC_DEFINE([ssize_t], [int],
+ [Define as a signed type of the same size as size_t.])
+ fi
+])
+m4trace:m4/stat-time.m4:20: -1- AC_DEFUN([gl_STAT_TIME], [
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_HEADERS_ONCE([sys/time.h])
+
+ 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_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.])
+ 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>])],
+ [#include <sys/types.h>
+ #include <sys/stat.h>])],
+ [#include <sys/types.h>
+ #include <sys/stat.h>])
+])
+m4trace:m4/stat-time.m4:71: -1- AC_DEFUN([gl_STAT_BIRTHTIME], [
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_HEADERS_ONCE([sys/time.h])
+ 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>])
+])
+m4trace:m4/stat.m4:9: -1- AC_DEFUN([gl_FUNC_STAT], [
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ 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 AIX 7.1, Solaris 9 mistakenly succeed 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>
+]], [[int result = 0;
+ struct stat st;
+ if (!stat ("conftest.tmp/", &st))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!stat ("conftest.lnk/", &st))
+ result |= 2;
+#endif
+ return result;
+ ]])],
+ [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
+])
+m4trace:m4/stat.m4:64: -1- AC_DEFUN([gl_PREREQ_STAT], [
+ AC_REQUIRE([AC_C_INLINE])
+ :
+])
+m4trace:m4/stdalign.m4:10: -1- AC_DEFUN([gl_STDALIGN_H], [
+ AC_CACHE_CHECK([for working stdalign.h],
+ [gl_cv_header_working_stdalign_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdalign.h>
+ int align_int = alignof (int) + _Alignof (double);
+
+ /* Test _Alignas only on platforms where gnulib can help. */
+ #if \
+ (__GNUC__ || __IBMC__ || __IBMCPP__ \
+ || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER)
+ int alignas (8) alignas_int = 1;
+ #endif
+ ]])],
+ [gl_cv_header_working_stdalign_h=yes],
+ [gl_cv_header_working_stdalign_h=no])])
+
+ if test $gl_cv_header_working_stdalign_h = yes; then
+ STDALIGN_H=''
+ else
+ STDALIGN_H='stdalign.h'
+ fi
+
+ AC_SUBST([STDALIGN_H])
+ AM_CONDITIONAL([GL_GENERATE_STDALIGN_H], [test -n "$STDALIGN_H"])
+])
+m4trace:m4/stdarg.m4:10: -1- AC_DEFUN([gl_STDARG_H], [
+ STDARG_H=''
+ NEXT_STDARG_H='<stdarg.h>'
+ AC_MSG_CHECKING([for va_copy])
+ AC_CACHE_VAL([gl_cv_func_va_copy], [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdarg.h>]],
+ [[
+#ifndef va_copy
+void (*func) (va_list, va_list) = va_copy;
+#endif
+ ]])],
+ [gl_cv_func_va_copy=yes],
+ [gl_cv_func_va_copy=no])])
+ AC_MSG_RESULT([$gl_cv_func_va_copy])
+ if test $gl_cv_func_va_copy = no; then
+ dnl Provide a substitute.
+ dnl Usually a simple definition in <config.h> is enough. Not so on AIX 5
+ dnl with some versions of the /usr/vac/bin/cc compiler. It has an <stdarg.h>
+ dnl which does '#undef va_copy', leading to a missing va_copy symbol. For
+ dnl this platform, we use an <stdarg.h> substitute. But we cannot use this
+ dnl approach on other platforms, because <stdarg.h> often defines only
+ dnl preprocessor macros and gl_ABSOLUTE_HEADER, gl_CHECK_NEXT_HEADERS do
+ dnl not work in this situation.
+ AC_EGREP_CPP([vaccine],
+ [#if defined _AIX && !defined __GNUC__
+ AIX vaccine
+ #endif
+ ], [gl_aixcc=yes], [gl_aixcc=no])
+ if test $gl_aixcc = yes; then
+ dnl Provide a substitute <stdarg.h> file.
+ STDARG_H=stdarg.h
+ gl_NEXT_HEADERS([stdarg.h])
+ dnl Fallback for the case when <stdarg.h> contains only macro definitions.
+ if test "$gl_cv_next_stdarg_h" = '""'; then
+ gl_cv_next_stdarg_h='"///usr/include/stdarg.h"'
+ NEXT_STDARG_H="$gl_cv_next_stdarg_h"
+ fi
+ else
+ dnl Provide a substitute in <config.h>, either __va_copy or as a simple
+ dnl assignment.
+ gl_CACHE_VAL_SILENT([gl_cv_func___va_copy], [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdarg.h>]],
+ [[
+#ifndef __va_copy
+error, bail out
+#endif
+ ]])],
+ [gl_cv_func___va_copy=yes],
+ [gl_cv_func___va_copy=no])])
+ if test $gl_cv_func___va_copy = yes; then
+ AC_DEFINE([va_copy], [__va_copy],
+ [Define as a macro for copying va_list variables.])
+ else
+ AH_VERBATIM([gl_VA_COPY], [/* A replacement for va_copy, if needed. */
+#define gl_va_copy(a,b) ((a) = (b))])
+ AC_DEFINE([va_copy], [gl_va_copy],
+ [Define as a macro for copying va_list variables.])
+ fi
+ fi
+ fi
+ AC_SUBST([STDARG_H])
+ AM_CONDITIONAL([GL_GENERATE_STDARG_H], [test -n "$STDARG_H"])
+ AC_SUBST([NEXT_STDARG_H])
+])
+m4trace:m4/stdbool.m4:12: -1- AC_DEFUN([AM_STDBOOL_H], [
+ AC_REQUIRE([AC_CHECK_HEADER_STDBOOL])
+
+ # 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
+ AC_SUBST([STDBOOL_H])
+ AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"])
+
+ if test "$ac_cv_type__Bool" = yes; then
+ HAVE__BOOL=1
+ else
+ HAVE__BOOL=0
+ fi
+ AC_SUBST([HAVE__BOOL])
+])
+m4trace:m4/stdbool.m4:35: -1- AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H])
+m4trace:m4/stdbool.m4:39: -1- AC_DEFUN([AC_CHECK_HEADER_STDBOOL], [AC_CACHE_CHECK([for stdbool.h that conforms to C99],
+ [ac_cv_header_stdbool_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+ #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];
+ /* See body of main program for 'e'. */
+ 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 };
+ /* The following fails for
+ HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+ _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];
+ /* 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;
+ ]],
+ [[
+ bool e = &s;
+ *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])
+])
+m4trace:m4/stddef_h.m4:8: -1- AC_DEFUN([gl_STDDEF_H], [
+ AC_REQUIRE([gl_STDDEF_H_DEFAULTS])
+ AC_REQUIRE([gt_TYPE_WCHAR_T])
+ STDDEF_H=
+ 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
+ AC_SUBST([STDDEF_H])
+ AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"])
+ if test -n "$STDDEF_H"; then
+ gl_NEXT_HEADERS([stddef.h])
+ fi
+])
+m4trace:m4/stddef_h.m4:35: -1- 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+])
+m4trace:m4/stddef_h.m4:42: -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])
+])
+m4trace:m4/stdint.m4:10: -1- AC_DEFUN_ONCE([gl_STDINT_H], [
+ AC_PREREQ([2.59])dnl
+
+ dnl Check for long long int and unsigned long long int.
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ if test $ac_cv_type_long_long_int = yes; then
+ HAVE_LONG_LONG_INT=1
+ else
+ HAVE_LONG_LONG_INT=0
+ fi
+ AC_SUBST([HAVE_LONG_LONG_INT])
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+ HAVE_UNSIGNED_LONG_LONG_INT=1
+ else
+ HAVE_UNSIGNED_LONG_LONG_INT=0
+ fi
+ AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT])
+
+ dnl Check for <wchar.h>, in the same way as gl_WCHAR_H does.
+ 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])
+
+ dnl Check for <inttypes.h>.
+ dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h.
+ if test $ac_cv_header_inttypes_h = yes; then
+ HAVE_INTTYPES_H=1
+ else
+ HAVE_INTTYPES_H=0
+ fi
+ AC_SUBST([HAVE_INTTYPES_H])
+
+ dnl Check for <sys/types.h>.
+ dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h.
+ if test $ac_cv_header_sys_types_h = yes; then
+ HAVE_SYS_TYPES_H=1
+ else
+ HAVE_SYS_TYPES_H=0
+ fi
+ AC_SUBST([HAVE_SYS_TYPES_H])
+
+ gl_CHECK_NEXT_HEADERS([stdint.h])
+ if test $ac_cv_header_stdint_h = yes; then
+ HAVE_STDINT_H=1
+ else
+ HAVE_STDINT_H=0
+ fi
+ AC_SUBST([HAVE_STDINT_H])
+
+ dnl Now see whether we need a substitute <stdint.h>.
+ if test $ac_cv_header_stdint_h = yes; then
+ AC_CACHE_CHECK([whether stdint.h conforms to C99],
+ [gl_cv_header_working_stdint_h],
+ [gl_cv_header_working_stdint_h=no
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */
+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+#endif
+]
+gl_STDINT_INCLUDES
+[
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
+#else
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+#endif
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
+#endif
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
+#endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
+
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) ((t) 0 < (t) -1 \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+struct s {
+ int check_PTRDIFF:
+ PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+ && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+ ? 1 : -1;
+ /* Detect bug in FreeBSD 6.0 / ia64. */
+ int check_SIG_ATOMIC:
+ SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+ && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+ ? 1 : -1;
+ int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+ int check_WCHAR:
+ WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+ && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+ ? 1 : -1;
+ /* Detect bug in mingw. */
+ int check_WINT:
+ WINT_MIN == TYPE_MINIMUM (wint_t)
+ && WINT_MAX == TYPE_MAXIMUM (wint_t)
+ ? 1 : -1;
+
+ /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */
+ int check_UINT8_C:
+ (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+ int check_UINT16_C:
+ (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
+
+ /* Detect bugs in OpenBSD 3.9 stdint.h. */
+#ifdef UINT8_MAX
+ int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+ int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+ int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+ int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+ int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+ int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+ int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+ int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+ int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+ int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+ int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+ int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+ int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+ int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+ int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
+ ]])],
+ [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 _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 mv - macro_values + 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=
+ else
+ dnl Check for <sys/inttypes.h>, and for
+ dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5).
+ AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h])
+ if test $ac_cv_header_sys_inttypes_h = yes; then
+ HAVE_SYS_INTTYPES_H=1
+ else
+ HAVE_SYS_INTTYPES_H=0
+ fi
+ AC_SUBST([HAVE_SYS_INTTYPES_H])
+ if test $ac_cv_header_sys_bitypes_h = yes; then
+ HAVE_SYS_BITYPES_H=1
+ else
+ HAVE_SYS_BITYPES_H=0
+ fi
+ AC_SUBST([HAVE_SYS_BITYPES_H])
+
+ gl_STDINT_TYPE_PROPERTIES
+ STDINT_H=stdint.h
+ fi
+ AC_SUBST([STDINT_H])
+ AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"])
+])
+m4trace:m4/stdint.m4:309: -1- AC_DEFUN([gl_STDINT_BITSIZEOF], [
+ dnl Use a shell loop, to avoid bloating configure, and
+ dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+ dnl config.h.in,
+ dnl - extra AC_SUBST calls, so that the right substitutions are made.
+ m4_foreach_w([gltype], [$1],
+ [AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+ [Define to the number of bits in type ']gltype['.])])
+ for gltype in $1 ; do
+ AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}],
+ [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT],
+ [$2
+#include <limits.h>], [result=unknown])
+ eval gl_cv_bitsizeof_${gltype}=\$result
+ ])
+ eval result=\$gl_cv_bitsizeof_${gltype}
+ if test $result = unknown; then
+ dnl Use a nonempty default, because some compilers, such as IRIX 5 cc,
+ dnl do a syntax check even on unused #if conditions and give an error
+ dnl on valid C code like this:
+ dnl #if 0
+ dnl # if > 32
+ dnl # endif
+ dnl #endif
+ result=0
+ fi
+ GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result])
+ eval BITSIZEOF_${GLTYPE}=\$result
+ done
+ m4_foreach_w([gltype], [$1],
+ [AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+])
+m4trace:m4/stdint.m4:347: -1- AC_DEFUN([gl_CHECK_TYPES_SIGNED], [
+ dnl Use a shell loop, to avoid bloating configure, and
+ dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+ dnl config.h.in,
+ dnl - extra AC_SUBST calls, so that the right substitutions are made.
+ m4_foreach_w([gltype], [$1],
+ [AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+ [Define to 1 if ']gltype[' is a signed integer type.])])
+ for gltype in $1 ; do
+ AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([$2[
+ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])],
+ result=yes, result=no)
+ eval gl_cv_type_${gltype}_signed=\$result
+ ])
+ eval result=\$gl_cv_type_${gltype}_signed
+ GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ if test "$result" = yes; then
+ AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1])
+ eval HAVE_SIGNED_${GLTYPE}=1
+ else
+ eval HAVE_SIGNED_${GLTYPE}=0
+ fi
+ done
+ m4_foreach_w([gltype], [$1],
+ [AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+])
+m4trace:m4/stdint.m4:380: -1- AC_DEFUN([gl_INTEGER_TYPE_SUFFIX], [
+ dnl Use a shell loop, to avoid bloating configure, and
+ dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+ dnl config.h.in,
+ dnl - extra AC_SUBST calls, so that the right substitutions are made.
+ m4_foreach_w([gltype], [$1],
+ [AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX],
+ [Define to l, ll, u, ul, ull, etc., as suitable for
+ constants of type ']gltype['.])])
+ for gltype in $1 ; do
+ AC_CACHE_CHECK([for $gltype integer literal suffix],
+ [gl_cv_type_${gltype}_suffix],
+ [eval gl_cv_type_${gltype}_suffix=no
+ eval result=\$gl_cv_type_${gltype}_signed
+ if test "$result" = yes; then
+ glsufu=
+ else
+ glsufu=u
+ fi
+ 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';;
+ ui64)gltype1='unsigned __int64';;
+ esac
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([$2[
+ extern $gltype foo;
+ extern $gltype1 foo;]])],
+ [eval gl_cv_type_${gltype}_suffix=\$glsuf])
+ eval result=\$gl_cv_type_${gltype}_suffix
+ test "$result" != no && break
+ done])
+ GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ eval result=\$gl_cv_type_${gltype}_suffix
+ test "$result" = no && result=
+ eval ${GLTYPE}_SUFFIX=\$result
+ AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result])
+ done
+ m4_foreach_w([gltype], [$1],
+ [AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])])
+])
+m4trace:m4/stdint.m4:430: -1- AC_DEFUN([gl_STDINT_INCLUDES], [[
+ /* 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
+]])
+m4trace:m4/stdint.m4:446: -1- AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], [
+ AC_REQUIRE([gl_MULTIARCH])
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+ gl_STDINT_BITSIZEOF([ptrdiff_t size_t],
+ [gl_STDINT_INCLUDES])
+ fi
+ gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t],
+ [gl_STDINT_INCLUDES])
+ gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t],
+ [gl_STDINT_INCLUDES])
+ gl_cv_type_ptrdiff_t_signed=yes
+ gl_cv_type_size_t_signed=no
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+ gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t],
+ [gl_STDINT_INCLUDES])
+ fi
+ gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t],
+ [gl_STDINT_INCLUDES])
+
+ dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99
+ dnl requirement that wint_t is "unchanged by default argument promotions".
+ dnl In this case gnulib's <wchar.h> and <wctype.h> override wint_t.
+ dnl Set the variable BITSIZEOF_WINT_T accordingly.
+ if test $BITSIZEOF_WINT_T -lt 32; then
+ BITSIZEOF_WINT_T=32
+ fi
+])
+m4trace:m4/stdint_h.m4:12: -1- AC_DEFUN([gl_AC_HEADER_STDINT_H], [
+ AC_CACHE_CHECK([for stdint.h], [gl_cv_header_stdint_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/types.h>
+ #include <stdint.h>]],
+ [[uintmax_t i = (uintmax_t) -1; return !i;]])],
+ [gl_cv_header_stdint_h=yes],
+ [gl_cv_header_stdint_h=no])])
+ if test $gl_cv_header_stdint_h = yes; then
+ AC_DEFINE_UNQUOTED([HAVE_STDINT_H_WITH_UINTMAX], [1],
+ [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
+ and declares uintmax_t. ])
+ fi
+])
+m4trace:m4/stdio_h.m4:7: -1- AC_DEFUN([gl_STDIO_H], [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_REQUIRE([AC_C_INLINE])
+ gl_NEXT_HEADERS([stdio.h])
+
+ dnl No need to create extra modules for these functions. Everyone who uses
+ dnl <stdio.h> likely needs them.
+ GNULIB_FSCANF=1
+ GNULIB_SCANF=1
+ GNULIB_FGETC=1
+ GNULIB_GETC=1
+ GNULIB_GETCHAR=1
+ GNULIB_FGETS=1
+ GNULIB_GETS=1
+ GNULIB_FREAD=1
+ dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
+ dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+ dnl also an optimization, to avoid performing a configure check whose result
+ dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
+ dnl or GNULIB_NONBLOCKING redundant.
+ m4_ifdef([gl_NONBLOCKING_IO], [
+ gl_NONBLOCKING_IO
+ if test $gl_cv_have_nonblocking != yes; then
+ REPLACE_STDIO_READ_FUNCS=1
+ AC_LIBOBJ([stdio-read])
+ fi
+ ])
+
+ dnl No need to create extra modules for these functions. Everyone who uses
+ dnl <stdio.h> likely needs them.
+ GNULIB_FPRINTF=1
+ GNULIB_PRINTF=1
+ GNULIB_VFPRINTF=1
+ GNULIB_VPRINTF=1
+ GNULIB_FPUTC=1
+ GNULIB_PUTC=1
+ GNULIB_PUTCHAR=1
+ GNULIB_FPUTS=1
+ GNULIB_PUTS=1
+ GNULIB_FWRITE=1
+ dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
+ dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+ dnl also an optimization, to avoid performing a configure check whose result
+ dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or
+ dnl GNULIB_SIGPIPE redundant.
+ m4_ifdef([gl_SIGNAL_SIGPIPE], [
+ gl_SIGNAL_SIGPIPE
+ if test $gl_cv_header_signal_h_SIGPIPE != yes; then
+ REPLACE_STDIO_WRITE_FUNCS=1
+ AC_LIBOBJ([stdio-write])
+ fi
+ ])
+ dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
+ dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+ dnl also an optimization, to avoid performing a configure check whose result
+ dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
+ dnl or GNULIB_NONBLOCKING redundant.
+ m4_ifdef([gl_NONBLOCKING_IO], [
+ gl_NONBLOCKING_IO
+ if test $gl_cv_have_nonblocking != yes; then
+ REPLACE_STDIO_WRITE_FUNCS=1
+ 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 pclose popen renameat
+ snprintf tmpfile vdprintf vsnprintf])
+])
+m4trace:m4/stdio_h.m4:81: -1- 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/stdio_h.m4:90: -1- AC_DEFUN([gl_STDIO_H_DEFAULTS], [
+ GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF])
+ GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE])
+ GNULIB_FDOPEN=0; AC_SUBST([GNULIB_FDOPEN])
+ GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH])
+ GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC])
+ GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS])
+ 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_FREAD=0; AC_SUBST([GNULIB_FREAD])
+ GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN])
+ GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF])
+ 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_FWRITE=0; AC_SUBST([GNULIB_FWRITE])
+ GNULIB_GETC=0; AC_SUBST([GNULIB_GETC])
+ GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR])
+ GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
+ GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
+ GNULIB_GETS=0; AC_SUBST([GNULIB_GETS])
+ GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
+ GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
+ GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE])
+ 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_SCANF=0; AC_SUBST([GNULIB_SCANF])
+ GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF])
+ GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX])
+ GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
+ GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
+ GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE])
+ GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF])
+ GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF])
+ GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF])
+ 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.
+ HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE])
+ HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO])
+ HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO])
+ 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])
+ HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF])
+ HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF])
+ HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO])
+ HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO])
+ HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE])
+ HAVE_POPEN=1; AC_SUBST([HAVE_POPEN])
+ HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT])
+ HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF])
+ HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF])
+ REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF])
+ REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE])
+ REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN])
+ 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])
+ REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
+ REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO])
+ REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
+ 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_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS])
+ REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
+ REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE])
+ 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])
+])
+m4trace:m4/stdlib_h.m4:7: -1- AC_DEFUN([gl_STDLIB_H], [
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ gl_NEXT_HEADERS([stdlib.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 <stdlib.h>
+#if HAVE_SYS_LOADAVG_H
+# include <sys/loadavg.h>
+#endif
+#if HAVE_RANDOM_H
+# include <random.h>
+#endif
+ ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt
+ initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps
+ posix_openpt ptsname ptsname_r random random_r realpath rpmatch
+ setenv setstate setstate_r srandom srandom_r
+ strtod strtoll strtoull unlockpt unsetenv])
+])
+m4trace:m4/stdlib_h.m4:29: -1- 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/stdlib_h.m4:38: -1- AC_DEFUN([gl_STDLIB_H_DEFAULTS], [
+ GNULIB__EXIT=0; AC_SUBST([GNULIB__EXIT])
+ 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_GRANTPT=0; AC_SUBST([GNULIB_GRANTPT])
+ GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX])
+ GNULIB_MBTOWC=0; AC_SUBST([GNULIB_MBTOWC])
+ 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_POSIX_OPENPT=0; AC_SUBST([GNULIB_POSIX_OPENPT])
+ GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME])
+ GNULIB_PTSNAME_R=0; AC_SUBST([GNULIB_PTSNAME_R])
+ GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV])
+ GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM])
+ 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])
+ GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL])
+ GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL])
+ GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX])
+ GNULIB_UNLOCKPT=0; AC_SUBST([GNULIB_UNLOCKPT])
+ GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV])
+ GNULIB_WCTOMB=0; AC_SUBST([GNULIB_WCTOMB])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE__EXIT=1; AC_SUBST([HAVE__EXIT])
+ HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL])
+ 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_GRANTPT=1; AC_SUBST([HAVE_GRANTPT])
+ HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP])
+ HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP])
+ HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS])
+ HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP])
+ HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS])
+ HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT])
+ HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME])
+ HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R])
+ HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM])
+ HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H])
+ HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R])
+ HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH])
+ HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH])
+ HAVE_SETENV=1; AC_SUBST([HAVE_SETENV])
+ HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV])
+ HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD])
+ HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL])
+ HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL])
+ HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
+ HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H])
+ HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT])
+ HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV])
+ REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC])
+ REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
+ REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC])
+ REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC])
+ REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP])
+ REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R])
+ REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV])
+ REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R])
+ REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC])
+ REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH])
+ REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV])
+ REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD])
+ REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV])
+ REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB])
+])
+m4trace:m4/stpcpy.m4:7: -1- AC_DEFUN([gl_FUNC_STPCPY], [
+ dnl Persuade glibc <string.h> to declare stpcpy().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ dnl The stpcpy() declaration in lib/string.in.h uses 'restrict'.
+ AC_REQUIRE([AC_C_RESTRICT])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_FUNCS([stpcpy])
+ if test $ac_cv_func_stpcpy = no; then
+ HAVE_STPCPY=0
+ fi
+])
+m4trace:m4/stpcpy.m4:23: -1- AC_DEFUN([gl_PREREQ_STPCPY], [
+ :
+])
+m4trace:m4/strcase.m4:7: -1- AC_DEFUN([gl_STRCASE], [
+ gl_FUNC_STRCASECMP
+ gl_FUNC_STRNCASECMP
+])
+m4trace:m4/strcase.m4:13: -1- AC_DEFUN([gl_FUNC_STRCASECMP], [
+ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+ AC_CHECK_FUNCS([strcasecmp])
+ if test $ac_cv_func_strcasecmp = no; then
+ HAVE_STRCASECMP=0
+ fi
+])
+m4trace:m4/strcase.m4:22: -1- AC_DEFUN([gl_FUNC_STRNCASECMP], [
+ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+ AC_CHECK_FUNCS([strncasecmp])
+ if test $ac_cv_func_strncasecmp = yes; then
+ HAVE_STRNCASECMP=1
+ else
+ HAVE_STRNCASECMP=0
+ fi
+ AC_CHECK_DECLS([strncasecmp])
+ if test $ac_cv_have_decl_strncasecmp = no; then
+ HAVE_DECL_STRNCASECMP=0
+ fi
+])
+m4trace:m4/strcase.m4:38: -1- AC_DEFUN([gl_PREREQ_STRCASECMP], [
+ :
+])
+m4trace:m4/strcase.m4:43: -1- AC_DEFUN([gl_PREREQ_STRNCASECMP], [
+ :
+])
+m4trace:m4/strchrnul.m4:7: -1- AC_DEFUN([gl_FUNC_STRCHRNUL], [
+ dnl Persuade glibc <string.h> to declare strchrnul().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_FUNCS([strchrnul])
+ if test $ac_cv_func_strchrnul = no; then
+ HAVE_STRCHRNUL=0
+ else
+ AC_CACHE_CHECK([whether strchrnul works],
+ [gl_cv_func_strchrnul_works],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <string.h> /* for strchrnul */
+]], [[const char *buf = "a";
+ return strchrnul (buf, 'b') != buf + 1;
+ ]])],
+ [gl_cv_func_strchrnul_works=yes],
+ [gl_cv_func_strchrnul_works=no],
+ [dnl Cygwin 1.7.9 introduced strchrnul, but it was broken until 1.7.10
+ AC_EGREP_CPP([Lucky user],
+ [
+#if defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9)
+ Lucky user
+ #endif
+#else
+ Lucky user
+#endif
+ ],
+ [gl_cv_func_strchrnul_works="guessing yes"],
+ [gl_cv_func_strchrnul_works="guessing no"])
+ ])
+ ])
+ case "$gl_cv_func_strchrnul_works" in
+ *yes) ;;
+ *) REPLACE_STRCHRNUL=1 ;;
+ esac
+ fi
+])
+m4trace:m4/strchrnul.m4:50: -1- AC_DEFUN([gl_PREREQ_STRCHRNUL], [:])
+m4trace:m4/strdup.m4:9: -1- AC_DEFUN([gl_FUNC_STRDUP], [
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([strdup])
+ AC_CHECK_DECLS_ONCE([strdup])
+ if test $ac_cv_have_decl_strdup = no; then
+ HAVE_DECL_STRDUP=0
+ fi
+])
+m4trace:m4/strdup.m4:19: -1- AC_DEFUN([gl_FUNC_STRDUP_POSIX], [
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+ AC_CHECK_FUNCS_ONCE([strdup])
+ if test $ac_cv_func_strdup = yes; then
+ if test $gl_cv_func_malloc_posix != yes; then
+ REPLACE_STRDUP=1
+ fi
+ fi
+ AC_CHECK_DECLS_ONCE([strdup])
+ if test $ac_cv_have_decl_strdup = no; then
+ HAVE_DECL_STRDUP=0
+ fi
+])
+m4trace:m4/strdup.m4:36: -1- AC_DEFUN([gl_PREREQ_STRDUP], [:])
+m4trace:m4/strerror.m4:7: -1- AC_DEFUN([gl_FUNC_STRERROR], [
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_REQUIRE([gl_HEADER_ERRNO_H])
+ AC_REQUIRE([gl_FUNC_STRERROR_0])
+ m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+ AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
+ ])
+ if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+ AC_CACHE_CHECK([for working strerror function],
+ [gl_cv_func_working_strerror],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <string.h>
+ ]],
+ [[if (!*strerror (-2)) return 1;]])],
+ [gl_cv_func_working_strerror=yes],
+ [gl_cv_func_working_strerror=no],
+ [dnl Be pessimistic on cross-compiles for now.
+ gl_cv_func_working_strerror="guessing no"])
+ ])
+ if test "$gl_cv_func_working_strerror" != yes; then
+ dnl The system's strerror() fails to return a string for out-of-range
+ dnl integers. Replace it.
+ REPLACE_STRERROR=1
+ fi
+ m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+ dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's
+ dnl buffer, we must replace strerror.
+ case "$gl_cv_func_strerror_r_works" in
+ *no) REPLACE_STRERROR=1 ;;
+ esac
+ ])
+ else
+ dnl The system's strerror() cannot know about the new errno values we add
+ dnl to <errno.h>, or any fix for strerror(0). Replace it.
+ REPLACE_STRERROR=1
+ fi
+])
+m4trace:m4/strerror.m4:49: -1- AC_DEFUN([gl_FUNC_STRERROR_0], [
+ REPLACE_STRERROR_0=0
+ AC_CACHE_CHECK([whether strerror(0) succeeds],
+ [gl_cv_func_strerror_0_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <string.h>
+ #include <errno.h>
+ ]],
+ [[int result = 0;
+ char *str;
+ errno = 0;
+ str = strerror (0);
+ if (!*str) result |= 1;
+ if (errno) result |= 2;
+ if (strstr (str, "nknown") || strstr (str, "ndefined"))
+ result |= 4;
+ return result;]])],
+ [gl_cv_func_strerror_0_works=yes],
+ [gl_cv_func_strerror_0_works=no],
+ [dnl Be pessimistic on cross-compiles for now.
+ gl_cv_func_strerror_0_works="guessing no"])
+ ])
+ if test "$gl_cv_func_strerror_0_works" != yes; then
+ REPLACE_STRERROR_0=1
+ AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0)
+ does not return a message implying success.])
+ fi
+])
+m4trace:m4/string_h.m4:12: -1- AC_DEFUN([gl_HEADER_STRING_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_HEADER_STRING_H_BODY])
+])
+m4trace:m4/string_h.m4:19: -1- AC_DEFUN([gl_HEADER_STRING_H_BODY], [
+ AC_REQUIRE([AC_C_RESTRICT])
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ gl_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>
+ ]],
+ [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul
+ strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
+ strerror_r strsignal strverscmp])
+])
+m4trace:m4/string_h.m4:35: -1- 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/string_h.m4:44: -1- AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS], [
+ GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL])
+ GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL])
+ 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])
+ GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR])
+ GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY])
+ GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY])
+ GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL])
+ GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP])
+ GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT])
+ GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP])
+ GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN])
+ GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK])
+ GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP])
+ GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR])
+ GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR])
+ GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R])
+ GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN])
+ GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN])
+ GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR])
+ GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR])
+ GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR])
+ GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP])
+ GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP])
+ GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP])
+ GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR])
+ GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN])
+ GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK])
+ GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN])
+ GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP])
+ GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R])
+ GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR])
+ GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R])
+ GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL])
+ 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_FFSL=1; AC_SUBST([HAVE_FFSL])
+ HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL])
+ HAVE_MEMCHR=1; AC_SUBST([HAVE_MEMCHR])
+ 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_R=1; AC_SUBST([HAVE_DECL_STRERROR_R])
+ 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_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY])
+ REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP])
+ REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR])
+ REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR])
+ REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL])
+ REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR])
+ REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R])
+ REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT])
+ REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP])
+ REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN])
+ 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])
+])
+m4trace:m4/strings_h.m4:9: -1- AC_DEFUN([gl_HEADER_STRINGS_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_HEADER_STRINGS_H_BODY])
+])
+m4trace:m4/strings_h.m4:16: -1- AC_DEFUN([gl_HEADER_STRINGS_H_BODY], [
+ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+
+ gl_CHECK_NEXT_HEADERS([strings.h])
+ if test $ac_cv_header_strings_h = yes; then
+ HAVE_STRINGS_H=1
+ else
+ HAVE_STRINGS_H=0
+ fi
+ AC_SUBST([HAVE_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([[
+ /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
+ <strings.h>. */
+ #include <sys/types.h>
+ #include <strings.h>
+ ]], [ffs strcasecmp strncasecmp])
+])
+m4trace:m4/strings_h.m4:38: -1- AC_DEFUN([gl_STRINGS_MODULE_INDICATOR], [
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+])
+m4trace:m4/strings_h.m4:45: -1- AC_DEFUN([gl_HEADER_STRINGS_H_DEFAULTS], [
+ GNULIB_FFS=0; AC_SUBST([GNULIB_FFS])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_FFS=1; AC_SUBST([HAVE_FFS])
+ HAVE_STRCASECMP=1; AC_SUBST([HAVE_STRCASECMP])
+ HAVE_DECL_STRNCASECMP=1; AC_SUBST([HAVE_DECL_STRNCASECMP])
+])
+m4trace:m4/strndup.m4:7: -1- 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
+
+ if test $ac_cv_func_strndup = yes; then
+ HAVE_STRNDUP=1
+ # 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
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *strndup (const char *, size_t);
+#endif
+ char *s;
+ s = strndup ("some longer string", 15);
+ free (s);
+ s = strndup ("shorter string", 13);
+ return s[13] != '\0';]])],
+ [gl_cv_func_strndup_works=yes],
+ [gl_cv_func_strndup_works=no],
+ [
+changequote(,)dnl
+ case $host_os in
+ aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";;
+ *) gl_cv_func_strndup_works="guessing yes";;
+ esac
+changequote([,])dnl
+ ])])
+ case $gl_cv_func_strndup_works in
+ *no) REPLACE_STRNDUP=1 ;;
+ esac
+ else
+ HAVE_STRNDUP=0
+ fi
+])
+m4trace:m4/strnlen.m4:8: -1- AC_DEFUN([gl_FUNC_STRNLEN], [
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+
+ dnl Persuade glibc <string.h> to declare strnlen().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_DECLS_ONCE([strnlen])
+ if test $ac_cv_have_decl_strnlen = no; then
+ HAVE_DECL_STRNLEN=0
+ else
+ m4_pushdef([AC_LIBOBJ], [:])
+ dnl Note: AC_FUNC_STRNLEN does AC_LIBOBJ([strnlen]).
+ AC_FUNC_STRNLEN
+ m4_popdef([AC_LIBOBJ])
+ if test $ac_cv_func_strnlen_working = no; then
+ REPLACE_STRNLEN=1
+ fi
+ fi
+])
+m4trace:m4/strnlen.m4:30: -1- AC_DEFUN([gl_PREREQ_STRNLEN], [:])
+m4trace:m4/strtol.m4:7: -1- AC_DEFUN([gl_FUNC_STRTOL], [
+ AC_CHECK_FUNCS([strtol])
+])
+m4trace:m4/strtoul.m4:7: -1- AC_DEFUN([gl_FUNC_STRTOUL], [
+ AC_CHECK_FUNCS([strtoul])
+])
+m4trace:m4/strtoull.m4:7: -1- AC_DEFUN([gl_FUNC_STRTOULL], [
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ dnl We don't need (and can't compile) the replacement strtoull
+ dnl unless the type 'unsigned long long int' exists.
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+ if test "$ac_cv_type_unsigned_long_long_int" = yes; then
+ AC_CHECK_FUNCS([strtoull])
+ if test $ac_cv_func_strtoull = no; then
+ HAVE_STRTOULL=0
+ fi
+ fi
+])
+m4trace:m4/strtoull.m4:22: -1- AC_DEFUN([gl_PREREQ_STRTOULL], [
+ :
+])
+m4trace:m4/strtoumax.m4:7: -1- AC_DEFUN([gl_FUNC_STRTOUMAX], [
+ AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
+
+ dnl On OSF/1 5.1 with cc, this function is declared but not defined.
+ AC_CHECK_FUNCS_ONCE([strtoumax])
+ AC_CHECK_DECLS_ONCE([strtoumax])
+ if test "$ac_cv_have_decl_strtoumax" != yes; then
+ HAVE_DECL_STRTOUMAX=0
+ fi
+])
+m4trace:m4/strtoumax.m4:20: -1- AC_DEFUN([gl_PREREQ_STRTOUMAX], [
+ AC_CHECK_DECLS([strtoull])
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+])
+m4trace:m4/symlink.m4:11: -1- AC_DEFUN([gl_FUNC_SYMLINK], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([symlink])
+ dnl The best we can do on mingw is provide a dummy that always fails, so
+ dnl that compilation can proceed with fewer ifdefs. On FreeBSD 7.2, AIX 7.1,
+ dnl and Solaris 9, we want to fix a bug with trailing slash handling.
+ if test $ac_cv_func_symlink = no; then
+ HAVE_SYMLINK=0
+ else
+ AC_CACHE_CHECK([whether symlink handles trailing slash correctly],
+ [gl_cv_func_symlink_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>
+ ]],
+ [[int result = 0;
+ if (!symlink ("a", "conftest.link/"))
+ result |= 1;
+ if (symlink ("conftest.f", "conftest.lnk2"))
+ result |= 2;
+ else if (!symlink ("a", "conftest.lnk2/"))
+ result |= 4;
+ return result;
+ ]])],
+ [gl_cv_func_symlink_works=yes], [gl_cv_func_symlink_works=no],
+ [gl_cv_func_symlink_works="guessing no"])
+ rm -f conftest.f conftest.link conftest.lnk2])
+ if test "$gl_cv_func_symlink_works" != yes; then
+ REPLACE_SYMLINK=1
+ fi
+ fi
+])
+m4trace:m4/symlinkat.m4:11: -1- AC_DEFUN([gl_FUNC_SYMLINKAT], [
+ AC_REQUIRE([gl_FUNC_OPENAT])
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([symlinkat])
+ if test $ac_cv_func_symlinkat = no; then
+ HAVE_SYMLINKAT=0
+ fi
+])
+m4trace:m4/sys_socket_h.m4:9: -1- AC_DEFUN([gl_HEADER_SYS_SOCKET], [
+ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AC_C_INLINE])
+
+ dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have
+ dnl old-style declarations (with return type 'int' instead of 'ssize_t')
+ dnl unless _POSIX_PII_SOCKET is defined.
+ case "$host_os" in
+ osf*)
+ AC_DEFINE([_POSIX_PII_SOCKET], [1],
+ [Define to 1 in order to get the POSIX compatible declarations
+ of socket functions.])
+ ;;
+ esac
+
+ AC_CACHE_CHECK([whether <sys/socket.h> is self-contained],
+ [gl_cv_header_sys_socket_h_selfcontained],
+ [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[]])],
+ [gl_cv_header_sys_socket_h_selfcontained=yes],
+ [gl_cv_header_sys_socket_h_selfcontained=no])
+ ])
+ if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
+ dnl If the shutdown function exists, <sys/socket.h> should define
+ dnl SHUT_RD, SHUT_WR, SHUT_RDWR.
+ AC_CHECK_FUNCS([shutdown])
+ if test $ac_cv_func_shutdown = yes; then
+ AC_CACHE_CHECK([whether <sys/socket.h> defines the SHUT_* macros],
+ [gl_cv_header_sys_socket_h_shut],
+ [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <sys/socket.h>]],
+ [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])],
+ [gl_cv_header_sys_socket_h_shut=yes],
+ [gl_cv_header_sys_socket_h_shut=no])
+ ])
+ if test $gl_cv_header_sys_socket_h_shut = no; then
+ SYS_SOCKET_H='sys/socket.h'
+ fi
+ fi
+ fi
+ # We need to check for ws2tcpip.h now.
+ gl_PREREQ_SYS_H_SOCKET
+ AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[
+ /* sys/types.h is not needed according to POSIX, but the
+ sys/socket.h in i386-unknown-freebsd4.10 and
+ powerpc-apple-darwin5.5 required it. */
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
+])
+ if test $ac_cv_type_struct_sockaddr_storage = no; then
+ HAVE_STRUCT_SOCKADDR_STORAGE=0
+ fi
+ if test $ac_cv_type_sa_family_t = no; then
+ HAVE_SA_FAMILY_T=0
+ fi
+ if test $ac_cv_type_struct_sockaddr_storage != no; then
+ AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family],
+ [],
+ [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0],
+ [#include <sys/types.h>
+ #ifdef HAVE_SYS_SOCKET_H
+ #include <sys/socket.h>
+ #endif
+ #ifdef HAVE_WS2TCPIP_H
+ #include <ws2tcpip.h>
+ #endif
+ ])
+ fi
+ if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \
+ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then
+ SYS_SOCKET_H='sys/socket.h'
+ fi
+ gl_PREREQ_SYS_H_WINSOCK2
+
+ 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 prerequisite headers. */
+#include <sys/types.h>
+#include <sys/socket.h>
+ ]], [socket connect accept bind getpeername getsockname getsockopt
+ listen recv send recvfrom sendto setsockopt shutdown accept4])
+])
+m4trace:m4/sys_socket_h.m4:101: -1- AC_DEFUN([gl_PREREQ_SYS_H_SOCKET], [
+ dnl Check prerequisites of the <sys/socket.h> replacement.
+ AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])
+ gl_CHECK_NEXT_HEADERS([sys/socket.h])
+ if test $ac_cv_header_sys_socket_h = yes; then
+ HAVE_SYS_SOCKET_H=1
+ HAVE_WS2TCPIP_H=0
+ else
+ HAVE_SYS_SOCKET_H=0
+ if test $ac_cv_header_ws2tcpip_h = yes; then
+ HAVE_WS2TCPIP_H=1
+ else
+ HAVE_WS2TCPIP_H=0
+ fi
+ fi
+ AC_SUBST([HAVE_SYS_SOCKET_H])
+ AC_SUBST([HAVE_WS2TCPIP_H])
+])
+m4trace:m4/sys_socket_h.m4:124: -1- AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2], [
+ m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])])
+ m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])])
+ AC_CHECK_HEADERS_ONCE([sys/socket.h])
+ if test $ac_cv_header_sys_socket_h != yes; then
+ dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
+ dnl the check for those headers unconditional; yet cygwin reports
+ dnl that the headers are present but cannot be compiled (since on
+ dnl cygwin, all socket information should come from sys/socket.h).
+ AC_CHECK_HEADERS([winsock2.h])
+ fi
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ HAVE_WINSOCK2_H=1
+ UNISTD_H_HAVE_WINSOCK2_H=1
+ SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+ else
+ HAVE_WINSOCK2_H=0
+ fi
+ AC_SUBST([HAVE_WINSOCK2_H])
+])
+m4trace:m4/sys_socket_h.m4:146: -1- AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR], [
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/sys_socket_h.m4:155: -1- AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS], [
+ GNULIB_SOCKET=0; AC_SUBST([GNULIB_SOCKET])
+ GNULIB_CONNECT=0; AC_SUBST([GNULIB_CONNECT])
+ GNULIB_ACCEPT=0; AC_SUBST([GNULIB_ACCEPT])
+ GNULIB_BIND=0; AC_SUBST([GNULIB_BIND])
+ GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME])
+ GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME])
+ GNULIB_GETSOCKOPT=0; AC_SUBST([GNULIB_GETSOCKOPT])
+ GNULIB_LISTEN=0; AC_SUBST([GNULIB_LISTEN])
+ GNULIB_RECV=0; AC_SUBST([GNULIB_RECV])
+ GNULIB_SEND=0; AC_SUBST([GNULIB_SEND])
+ GNULIB_RECVFROM=0; AC_SUBST([GNULIB_RECVFROM])
+ GNULIB_SENDTO=0; AC_SUBST([GNULIB_SENDTO])
+ GNULIB_SETSOCKOPT=0; AC_SUBST([GNULIB_SETSOCKOPT])
+ GNULIB_SHUTDOWN=0; AC_SUBST([GNULIB_SHUTDOWN])
+ GNULIB_ACCEPT4=0; AC_SUBST([GNULIB_ACCEPT4])
+ HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE])
+ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1;
+ AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY])
+ HAVE_SA_FAMILY_T=1; AC_SUBST([HAVE_SA_FAMILY_T])
+ HAVE_ACCEPT4=1; AC_SUBST([HAVE_ACCEPT4])
+])
+m4trace:m4/sys_stat_h.m4:10: -1- AC_DEFUN([gl_HEADER_SYS_STAT_H], [
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+
+ dnl For the mkdir substitute.
+ AC_REQUIRE([AC_C_INLINE])
+
+ dnl Check for broken stat macros.
+ AC_REQUIRE([AC_HEADER_STAT])
+
+ gl_CHECK_NEXT_HEADERS([sys/stat.h])
+
+ dnl Ensure the type mode_t gets defined.
+ AC_REQUIRE([AC_TYPE_MODE_T])
+
+ dnl Define types that are supposed to be defined in <sys/types.h> or
+ dnl <sys/stat.h>.
+ AC_CHECK_TYPE([nlink_t], [],
+ [AC_DEFINE([nlink_t], [int],
+ [Define to the type of st_nlink in struct stat, or a supertype.])],
+ [#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 fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat
+ mknod mknodat stat utimensat])
+])
+m4trace:m4/sys_stat_h.m4:40: -1- 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/sys_stat_h.m4:49: -1- AC_DEFUN([gl_SYS_STAT_H_DEFAULTS], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR
+ GNULIB_FCHMODAT=0; AC_SUBST([GNULIB_FCHMODAT])
+ GNULIB_FSTAT=0; AC_SUBST([GNULIB_FSTAT])
+ 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_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])
+])
+m4trace:m4/sys_time_h.m4:11: -1- AC_DEFUN([gl_HEADER_SYS_TIME_H], [
+ dnl Use AC_REQUIRE here, so that the REPLACE_GETTIMEOFDAY=0 statement
+ dnl below is expanded once only, before all REPLACE_GETTIMEOFDAY=1
+ dnl statements that occur in other macros.
+ AC_REQUIRE([gl_HEADER_SYS_TIME_H_BODY])
+])
+m4trace:m4/sys_time_h.m4:19: -1- 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=0
+ fi
+
+ dnl On native Windows with MSVC, 'struct timeval' is defined in <winsock2.h>
+ dnl only. So include that header in the list.
+ gl_PREREQ_SYS_H_WINSOCK2
+ 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>
+ #if HAVE_WINSOCK2_H
+ # include <winsock2.h>
+ #endif
+ ]],
+ [[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=0
+ fi
+
+ 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])
+])
+m4trace:m4/sys_time_h.m4:61: -1- 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/sys_time_h.m4:70: -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.
+ 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])
+])
+m4trace:m4/sys_types_h.m4:7: -1- AC_DEFUN([gl_SYS_TYPES_H], [
+ AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS])
+ gl_NEXT_HEADERS([sys/types.h])
+
+ dnl Ensure the type pid_t gets defined.
+ AC_REQUIRE([AC_TYPE_PID_T])
+
+ dnl Ensure the type mode_t gets defined.
+ AC_REQUIRE([AC_TYPE_MODE_T])
+])
+m4trace:m4/sys_types_h.m4:19: -1- AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS], [
+])
+m4trace:m4/sysexits.m4:7: -1- AC_DEFUN([gl_SYSEXITS], [
+ AC_CHECK_HEADERS_ONCE([sysexits.h])
+ if test $ac_cv_header_sysexits_h = yes; then
+ HAVE_SYSEXITS_H=1
+ gl_CHECK_NEXT_HEADERS([sysexits.h])
+ 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
+ HAVE_SYSEXITS_H=0
+ SYSEXITS_H=sysexits.h
+ fi
+ AC_SUBST([HAVE_SYSEXITS_H])
+ AC_SUBST([SYSEXITS_H])
+ AM_CONDITIONAL([GL_GENERATE_SYSEXITS_H], [test -n "$SYSEXITS_H"])
+])
+m4trace:m4/system.m4:8: -1- AC_DEFUN([PU_SYSTEM], [
+ AC_REQUIRE([AC_HEADER_STDC])
+
+ AC_CHECK_HEADERS_ONCE([string.h memory.h fcntl.h sys/wait.h \
+ sys/gentape.h sys/tape.h sys/device.h sys/param.h sys/tprintf.h sys/mtio.h \
+ sgtty.h sys/io/trioctl.h locale.h pwd.h grp.h])
+
+ AC_CHECK_HEADERS([sys/buf.h], [], [],
+ [#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif])
+
+ AC_REQUIRE([AC_HEADER_TIME])
+
+ AC_CHECK_MEMBERS([struct stat.st_blksize]) dnl instead of AC_STRUCT_ST_BLKSIZE
+ AC_REQUIRE([AC_STRUCT_ST_BLOCKS])
+ AC_REQUIRE([AC_STRUCT_ST_BLKSIZE])
+
+ AC_CHECK_FUNCS_ONCE(lstat mkfifo setlocale)
+ AC_REQUIRE([gl_INTTOSTR])
+ AC_REQUIRE([gl_STDINT_H])
+
+ AC_SEARCH_LIBS(gethostbyname, nsl)
+])
+m4trace:m4/tempname.m4:10: -1- AC_DEFUN([gl_FUNC_GEN_TEMPNAME], [
+ gl_PREREQ_TEMPNAME
+])
+m4trace:m4/tempname.m4:16: -1- AC_DEFUN([gl_PREREQ_TEMPNAME], [
+ :
+])
+m4trace:m4/threadlib.m4:29: -1- AC_DEFUN([gl_THREADLIB_EARLY], [
+ AC_REQUIRE([gl_THREADLIB_EARLY_BODY])
+])
+m4trace:m4/threadlib.m4:36: -1- AC_DEFUN([gl_THREADLIB_EARLY_BODY], [
+ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that
+ dnl influences the result of the autoconf tests that test for *_unlocked
+ dnl declarations, on AIX 5 at least. Therefore it must come early.
+ AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl
+ AC_BEFORE([$0], [gl_ARGP])dnl
+
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems.
+ dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes
+ dnl AC_GNU_SOURCE.
+ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
+ [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
+ [AC_REQUIRE([AC_GNU_SOURCE])])
+ dnl Check for multithreading.
+ m4_ifdef([gl_THREADLIB_DEFAULT_NO],
+ [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])],
+ [m4_divert_text([DEFAULTS], [gl_use_threads_default=])])
+ AC_ARG_ENABLE([threads],
+AC_HELP_STRING([--enable-threads={posix|solaris|pth|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [
+AC_HELP_STRING([--disable-threads], [build without multithread safety])]),
+ [gl_use_threads=$enableval],
+ [if test -n "$gl_use_threads_default"; then
+ gl_use_threads="$gl_use_threads_default"
+ else
+changequote(,)dnl
+ case "$host_os" in
+ dnl Disable multithreading by default on OSF/1, because it interferes
+ dnl with fork()/exec(): When msgexec is linked with -lpthread, its
+ dnl child process gets an endless segmentation fault inside execvp().
+ dnl Disable multithreading by default on Cygwin 1.5.x, because it has
+ dnl bugs that lead to endless loops or crashes. See
+ dnl <http://cygwin.com/ml/cygwin/2009-08/msg00283.html>.
+ osf*) gl_use_threads=no ;;
+ cygwin*)
+ case `uname -r` in
+ 1.[0-5].*) gl_use_threads=no ;;
+ *) gl_use_threads=yes ;;
+ esac
+ ;;
+ *) gl_use_threads=yes ;;
+ esac
+changequote([,])dnl
+ fi
+ ])
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
+ # For using <pthread.h>:
+ case "$host_os" in
+ osf*)
+ # On OSF/1, the compiler needs the flag -D_REENTRANT so that it
+ # groks <pthread.h>. cc also understands the flag -pthread, but
+ # we don't use it because 1. gcc-2.95 doesn't understand -pthread,
+ # 2. putting a flag into CPPFLAGS that has an effect on the linker
+ # causes the AC_LINK_IFELSE test below to succeed unexpectedly,
+ # leading to wrong values of LIBTHREAD and LTLIBTHREAD.
+ CPPFLAGS="$CPPFLAGS -D_REENTRANT"
+ ;;
+ esac
+ # Some systems optimize for single-threaded programs by default, and
+ # need special flags to disable these optimizations. For example, the
+ # definition of 'errno' in <errno.h>.
+ case "$host_os" in
+ aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;;
+ solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;;
+ esac
+ fi
+])
+m4trace:m4/threadlib.m4:107: -1- AC_DEFUN([gl_THREADLIB_BODY], [
+ AC_REQUIRE([gl_THREADLIB_EARLY_BODY])
+ gl_threads_api=none
+ LIBTHREAD=
+ LTLIBTHREAD=
+ LIBMULTITHREAD=
+ LTLIBMULTITHREAD=
+ if test "$gl_use_threads" != no; then
+ dnl Check whether the compiler and linker support weak declarations.
+ AC_CACHE_CHECK([whether imported symbols can be declared weak],
+ [gl_cv_have_weak],
+ [gl_cv_have_weak=no
+ dnl First, test whether the compiler accepts it syntactically.
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[extern void xyzzy ();
+#pragma weak xyzzy]],
+ [[xyzzy();]])],
+ [gl_cv_have_weak=maybe])
+ if test $gl_cv_have_weak = maybe; then
+ dnl Second, test whether it actually works. On Cygwin 1.7.2, with
+ dnl gcc 4.3, symbols declared weak always evaluate to the address 0.
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#pragma weak fputs
+int main ()
+{
+ return (fputs == NULL);
+}]])],
+ [gl_cv_have_weak=yes],
+ [gl_cv_have_weak=no],
+ [dnl When cross-compiling, assume that only ELF platforms support
+ dnl weak symbols.
+ AC_EGREP_CPP([Extensible Linking Format],
+ [#ifdef __ELF__
+ Extensible Linking Format
+ #endif
+ ],
+ [gl_cv_have_weak="guessing yes"],
+ [gl_cv_have_weak="guessing no"])
+ ])
+ fi
+ ])
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
+ # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
+ # it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY.
+ AC_CHECK_HEADER([pthread.h],
+ [gl_have_pthread_h=yes], [gl_have_pthread_h=no])
+ if test "$gl_have_pthread_h" = yes; then
+ # Other possible tests:
+ # -lpthreads (FSU threads, PCthreads)
+ # -lgthreads
+ gl_have_pthread=
+ # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist
+ # in libc. IRIX 6.5 has the first one in both libc and libpthread, but
+ # the second one only in libpthread, and lock.c needs it.
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>]],
+ [[pthread_mutex_lock((pthread_mutex_t*)0);
+ pthread_mutexattr_init((pthread_mutexattr_t*)0);]])],
+ [gl_have_pthread=yes])
+ # Test for libpthread by looking for pthread_kill. (Not pthread_self,
+ # since it is defined as a macro on OSF/1.)
+ if test -n "$gl_have_pthread"; then
+ # The program links fine without libpthread. But it may actually
+ # need to link with libpthread in order to create multiple threads.
+ AC_CHECK_LIB([pthread], [pthread_kill],
+ [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread
+ # On Solaris and HP-UX, most pthread functions exist also in libc.
+ # Therefore pthread_in_use() needs to actually try to create a
+ # thread: pthread_create from libc will fail, whereas
+ # pthread_create will actually create a thread.
+ case "$host_os" in
+ solaris* | hpux*)
+ AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1],
+ [Define if the pthread_in_use() detection is hard.])
+ esac
+ ])
+ else
+ # Some library is needed. Try libpthread and libc_r.
+ AC_CHECK_LIB([pthread], [pthread_kill],
+ [gl_have_pthread=yes
+ LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread
+ LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread])
+ if test -z "$gl_have_pthread"; then
+ # For FreeBSD 4.
+ AC_CHECK_LIB([c_r], [pthread_kill],
+ [gl_have_pthread=yes
+ LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r
+ LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r])
+ fi
+ fi
+ if test -n "$gl_have_pthread"; then
+ gl_threads_api=posix
+ AC_DEFINE([USE_POSIX_THREADS], [1],
+ [Define if the POSIX multithreading library can be used.])
+ if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
+ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
+ AC_DEFINE([USE_POSIX_THREADS_WEAK], [1],
+ [Define if references to the POSIX multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -z "$gl_have_pthread"; then
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then
+ gl_have_solaristhread=
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS -lthread"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <thread.h>
+#include <synch.h>
+ ]],
+ [[thr_self();]])],
+ [gl_have_solaristhread=yes])
+ LIBS="$gl_save_LIBS"
+ if test -n "$gl_have_solaristhread"; then
+ gl_threads_api=solaris
+ LIBTHREAD=-lthread
+ LTLIBTHREAD=-lthread
+ LIBMULTITHREAD="$LIBTHREAD"
+ LTLIBMULTITHREAD="$LTLIBTHREAD"
+ AC_DEFINE([USE_SOLARIS_THREADS], [1],
+ [Define if the old Solaris multithreading library can be used.])
+ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
+ AC_DEFINE([USE_SOLARIS_THREADS_WEAK], [1],
+ [Define if references to the old Solaris multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ fi
+ fi
+ if test "$gl_use_threads" = pth; then
+ gl_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_LINKFLAGS([pth])
+ gl_have_pth=
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBPTH"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[#include <pth.h>]], [[pth_self();]])],
+ [gl_have_pth=yes])
+ LIBS="$gl_save_LIBS"
+ if test -n "$gl_have_pth"; then
+ gl_threads_api=pth
+ LIBTHREAD="$LIBPTH"
+ LTLIBTHREAD="$LTLIBPTH"
+ LIBMULTITHREAD="$LIBTHREAD"
+ LTLIBMULTITHREAD="$LTLIBTHREAD"
+ AC_DEFINE([USE_PTH_THREADS], [1],
+ [Define if the GNU Pth multithreading library can be used.])
+ if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
+ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
+ AC_DEFINE([USE_PTH_THREADS_WEAK], [1],
+ [Define if references to the GNU Pth multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ else
+ CPPFLAGS="$gl_save_CPPFLAGS"
+ fi
+ fi
+ if test -z "$gl_have_pthread"; then
+ case "$gl_use_threads" in
+ yes | windows | win32) # The 'win32' is for backward compatibility.
+ if { case "$host_os" in
+ mingw*) true;;
+ *) false;;
+ esac
+ }; then
+ gl_threads_api=windows
+ AC_DEFINE([USE_WINDOWS_THREADS], [1],
+ [Define if the native Windows multithreading API can be used.])
+ fi
+ ;;
+ esac
+ fi
+ fi
+ AC_MSG_CHECKING([for multithread API to use])
+ AC_MSG_RESULT([$gl_threads_api])
+ AC_SUBST([LIBTHREAD])
+ AC_SUBST([LTLIBTHREAD])
+ AC_SUBST([LIBMULTITHREAD])
+ AC_SUBST([LTLIBMULTITHREAD])
+])
+m4trace:m4/threadlib.m4:302: -1- AC_DEFUN([gl_THREADLIB], [
+ AC_REQUIRE([gl_THREADLIB_EARLY])
+ AC_REQUIRE([gl_THREADLIB_BODY])
+])
+m4trace:m4/threadlib.m4:315: -1- AC_DEFUN([gl_DISABLE_THREADS], [
+ m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no])
+])
+m4trace:m4/time_h.m4:13: -1- AC_DEFUN([gl_HEADER_TIME_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_HEADER_TIME_H_BODY])
+])
+m4trace:m4/time_h.m4:20: -1- AC_DEFUN([gl_HEADER_TIME_H_BODY], [
+ AC_REQUIRE([AC_C_RESTRICT])
+ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+ gl_NEXT_HEADERS([time.h])
+ AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
+])
+m4trace:m4/time_h.m4:31: -1- AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC], [
+ AC_CHECK_HEADERS_ONCE([sys/time.h])
+ AC_CACHE_CHECK([for struct timespec in <time.h>],
+ [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;]])],
+ [gl_cv_sys_struct_timespec_in_time_h=yes],
+ [gl_cv_sys_struct_timespec_in_time_h=no])])
+
+ TIME_H_DEFINES_STRUCT_TIMESPEC=0
+ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
+ if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
+ TIME_H_DEFINES_STRUCT_TIMESPEC=1
+ else
+ 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])])
+ if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then
+ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1
+ else
+ AC_CACHE_CHECK([for struct timespec in <pthread.h>],
+ [gl_cv_sys_struct_timespec_in_pthread_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>
+ ]],
+ [[static struct timespec x; x.tv_sec = x.tv_nsec;]])],
+ [gl_cv_sys_struct_timespec_in_pthread_h=yes],
+ [gl_cv_sys_struct_timespec_in_pthread_h=no])])
+ if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
+ fi
+ fi
+ fi
+ AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC])
+ AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC])
+ AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC])
+])
+m4trace:m4/time_h.m4:81: -1- AC_DEFUN([gl_TIME_MODULE_INDICATOR], [
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/time_h.m4:90: -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])
+ GNULIB_TIME_R=0; AC_SUBST([GNULIB_TIME_R])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R])
+ HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP])
+ HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME])
+ HAVE_TIMEGM=1; AC_SUBST([HAVE_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_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM])
+])
+m4trace:m4/time_r.m4:10: -1- AC_DEFUN([gl_TIME_R], [
+ dnl Persuade glibc and Solaris <time.h> to declare localtime_r.
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+ AC_REQUIRE([AC_C_RESTRICT])
+
+ dnl Some systems don't declare localtime_r() and gmtime_r() if _REENTRANT is
+ dnl not defined.
+ AC_CHECK_DECLS_ONCE([localtime_r])
+ if test $ac_cv_have_decl_localtime_r = no; then
+ HAVE_DECL_LOCALTIME_R=0
+ fi
+
+ AC_CHECK_FUNCS_ONCE([localtime_r])
+ if test $ac_cv_func_localtime_r = yes; then
+ HAVE_LOCALTIME_R=1
+ AC_CACHE_CHECK([whether localtime_r is compatible with its POSIX signature],
+ [gl_cv_time_r_posix],
+ [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
+ REPLACE_LOCALTIME_R=0
+ else
+ REPLACE_LOCALTIME_R=1
+ fi
+ else
+ HAVE_LOCALTIME_R=0
+ fi
+])
+m4trace:m4/time_r.m4:56: -1- AC_DEFUN([gl_PREREQ_TIME_R], [
+ :
+])
+m4trace:m4/timespec.m4:11: -1- AC_DEFUN([gl_TIMESPEC], [
+ dnl Prerequisites of lib/timespec.h.
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:m4/tm_gmtoff.m4:7: -1- AC_DEFUN([gl_TM_GMTOFF], [
+ AC_CHECK_MEMBER([struct tm.tm_gmtoff],
+ [AC_DEFINE([HAVE_TM_GMTOFF], [1],
+ [Define if struct tm has the tm_gmtoff member.])],
+ ,
+ [#include <time.h>])
+])
+m4trace:m4/unistd-safer.m4:7: -1- AC_DEFUN([gl_UNISTD_SAFER], [
+ AC_CHECK_FUNCS_ONCE([pipe])
+])
+m4trace:m4/unistd_h.m4:9: -1- 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])
+ if test $ac_cv_header_unistd_h = yes; then
+ HAVE_UNISTD_H=1
+ else
+ HAVE_UNISTD_H=0
+ fi
+ AC_SUBST([HAVE_UNISTD_H])
+
+ dnl Ensure the type pid_t gets defined.
+ AC_REQUIRE([AC_TYPE_PID_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([[
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+/* Some systems declare various items in the wrong headers. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <fcntl.h>
+# include <stdio.h>
+# include <stdlib.h>
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# include <io.h>
+# endif
+#endif
+ ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat
+ fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups
+ gethostname getlogin getlogin_r getpagesize
+ getusershell setusershell endusershell
+ group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite
+ readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r
+ unlink unlinkat usleep])
+])
+m4trace:m4/unistd_h.m4:51: -1- 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/unistd_h.m4:60: -1- AC_DEFUN([gl_UNISTD_H_DEFAULTS], [
+ GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR])
+ GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN])
+ GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE])
+ GNULIB_DUP=0; AC_SUBST([GNULIB_DUP])
+ 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_FDATASYNC=0; AC_SUBST([GNULIB_FDATASYNC])
+ 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_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER])
+ GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY])
+ 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_PIPE=0; AC_SUBST([GNULIB_PIPE])
+ GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2])
+ GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD])
+ GNULIB_PWRITE=0; AC_SUBST([GNULIB_PWRITE])
+ GNULIB_READ=0; AC_SUBST([GNULIB_READ])
+ GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK])
+ GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT])
+ GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR])
+ GNULIB_SETHOSTNAME=0; AC_SUBST([GNULIB_SETHOSTNAME])
+ GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP])
+ GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK])
+ GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT])
+ GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R])
+ GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING])
+ 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_FCHDIR=1; AC_SUBST([HAVE_FCHDIR])
+ HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT])
+ HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC])
+ HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC])
+ HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE])
+ 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_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER])
+ HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN])
+ HAVE_LINK=1; AC_SUBST([HAVE_LINK])
+ HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT])
+ HAVE_PIPE=1; AC_SUBST([HAVE_PIPE])
+ HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2])
+ HAVE_PREAD=1; AC_SUBST([HAVE_PREAD])
+ HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE])
+ HAVE_READLINK=1; AC_SUBST([HAVE_READLINK])
+ HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT])
+ HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME])
+ HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP])
+ HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK])
+ HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT])
+ HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT])
+ HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP])
+ HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON])
+ HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR])
+ HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC])
+ HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME])
+ HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
+ HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE])
+ HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL])
+ HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME])
+ HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R])
+ HAVE_OS_H=0; AC_SUBST([HAVE_OS_H])
+ HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H])
+ 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_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT])
+ REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD])
+ REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME])
+ REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R])
+ REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS])
+ REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE])
+ REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY])
+ 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_PWRITE=0; AC_SUBST([REPLACE_PWRITE])
+ REPLACE_READ=0; AC_SUBST([REPLACE_READ])
+ 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_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R])
+ 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])
+])
+m4trace:m4/unlinkdir.m4:11: -1- AC_DEFUN([gl_UNLINKDIR], [
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CHECK_HEADERS_ONCE([priv.h])
+
+ # The Hurd, the Linux kernel, the FreeBSD kernel version 2.2 and later,
+ # 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_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
+])
+m4trace:m4/unlocked-io.m4:17: -1- AC_DEFUN([gl_FUNC_GLIBC_UNLOCKED_IO], [
+ AC_DEFINE([USE_UNLOCKED_IO], [1],
+ [Define to 1 if you want getc etc. to use unlocked I/O if available.
+ Unlocked I/O can improve performance in unithreaded apps,
+ but it is not safe for multithreaded apps.])
+
+ dnl Persuade glibc and Solaris <stdio.h> to declare
+ dnl fgets_unlocked(), fputs_unlocked() etc.
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_DECLS_ONCE([clearerr_unlocked])
+ AC_CHECK_DECLS_ONCE([feof_unlocked])
+ AC_CHECK_DECLS_ONCE([ferror_unlocked])
+ AC_CHECK_DECLS_ONCE([fflush_unlocked])
+ AC_CHECK_DECLS_ONCE([fgets_unlocked])
+ AC_CHECK_DECLS_ONCE([fputc_unlocked])
+ AC_CHECK_DECLS_ONCE([fputs_unlocked])
+ AC_CHECK_DECLS_ONCE([fread_unlocked])
+ AC_CHECK_DECLS_ONCE([fwrite_unlocked])
+ AC_CHECK_DECLS_ONCE([getc_unlocked])
+ AC_CHECK_DECLS_ONCE([getchar_unlocked])
+ AC_CHECK_DECLS_ONCE([putc_unlocked])
+ AC_CHECK_DECLS_ONCE([putchar_unlocked])
+])
+m4trace:m4/utimbuf.m4:16: -1- AC_DEFUN([gl_CHECK_TYPE_STRUCT_UTIMBUF], [
+ AC_CHECK_HEADERS_ONCE([sys/time.h utime.h])
+ 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;]])],
+ [gl_cv_sys_struct_utimbuf=yes],
+ [gl_cv_sys_struct_utimbuf=no])])
+
+ if test $gl_cv_sys_struct_utimbuf = yes; then
+ AC_DEFINE([HAVE_STRUCT_UTIMBUF], [1],
+ [Define if struct utimbuf is declared -- usually in <utime.h>.
+ Some systems have utime.h but don't declare the struct anywhere. ])
+ fi
+])
+m4trace:m4/utimens.m4:8: -1- AC_DEFUN([gl_UTIMENS], [
+ dnl Prerequisites of lib/utimens.c.
+ 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 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>
+#include <fcntl.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
+])
+m4trace:m4/utimensat.m4:11: -1- AC_DEFUN([gl_FUNC_UTIMENSAT], [
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([utimensat])
+ if test $ac_cv_func_utimensat = no; then
+ HAVE_UTIMENSAT=0
+ else
+ AC_CACHE_CHECK([whether utimensat works],
+ [gl_cv_func_utimensat_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+]], [[int result = 0;
+ const char *f = "conftest.file";
+ if (close (creat (f, 0600)))
+ return 1;
+ /* Test whether the AT_SYMLINK_NOFOLLOW flag is supported. */
+ {
+ if (utimensat (AT_FDCWD, f, NULL, AT_SYMLINK_NOFOLLOW))
+ result |= 2;
+ }
+ /* Test whether UTIME_NOW and UTIME_OMIT work. */
+ {
+ struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+ if (utimensat (AT_FDCWD, f, ts, 0))
+ result |= 4;
+ }
+ sleep (1);
+ {
+ struct timespec ts[2] = { { 1, UTIME_NOW }, { 1, UTIME_OMIT } };
+ struct stat st;
+ if (utimensat (AT_FDCWD, f, ts, 0))
+ result |= 8;
+ if (stat (f, &st))
+ result |= 16;
+ else if (st.st_ctime < st.st_atime)
+ result |= 32;
+ }
+ return result;
+ ]])],
+dnl FIXME: simplify this in 2012, when file system bugs are no longer common
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#ifdef __linux__
+/* The Linux kernel added utimensat in 2.6.22, but has bugs with UTIME_OMIT
+ in several file systems as recently as 2.6.32. Always replace utimensat
+ to support older kernels. */
+choke me
+#endif
+ ]])],
+ [gl_cv_func_utimensat_works=yes],
+ [gl_cv_func_utimensat_works="needs runtime check"])],
+ [gl_cv_func_utimensat_works=no],
+ [gl_cv_func_utimensat_works="guessing no"])])
+ if test "$gl_cv_func_utimensat_works" != yes; then
+ REPLACE_UTIMENSAT=1
+ fi
+ fi
+])
+m4trace:m4/utimes.m4:21: -1- AC_DEFUN([gl_FUNC_UTIMES], [
+ AC_CACHE_CHECK([whether the utimes function works],
+ [gl_cv_func_working_utimes],
+ [
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/time.h>
+#include <time.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <utime.h>
+
+static int
+inorder (time_t a, time_t b, time_t c)
+{
+ return a <= b && b <= c;
+}
+
+int
+main ()
+{
+ int result = 0;
+ char const *file = "conftest.utimes";
+ static struct timeval timeval[2] = {{9, 10}, {999999, 999999}};
+
+ /* Test whether utimes() essentially works. */
+ {
+ struct stat sbuf;
+ FILE *f = fopen (file, "w");
+ if (f == NULL)
+ result |= 1;
+ else if (fclose (f) != 0)
+ result |= 1;
+ else if (utimes (file, timeval) != 0)
+ result |= 2;
+ else if (lstat (file, &sbuf) != 0)
+ result |= 1;
+ else if (!(sbuf.st_atime == timeval[0].tv_sec
+ && sbuf.st_mtime == timeval[1].tv_sec))
+ result |= 4;
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ /* Test whether utimes() with a NULL argument sets the file's timestamp
+ to the current time. Use 'fstat' as well as 'time' to
+ determine the "current" time, to accommodate NFS file systems
+ if there is a time skew between the host and the NFS server. */
+ {
+ int fd = open (file, O_WRONLY|O_CREAT, 0644);
+ if (fd < 0)
+ result |= 1;
+ else
+ {
+ time_t t0, t2;
+ struct stat st0, st1, st2;
+ if (time (&t0) == (time_t) -1)
+ result |= 1;
+ else if (fstat (fd, &st0) != 0)
+ result |= 1;
+ else if (utimes (file, timeval) != 0)
+ result |= 2;
+ else if (utimes (file, NULL) != 0)
+ result |= 8;
+ else if (fstat (fd, &st1) != 0)
+ result |= 1;
+ else if (write (fd, "\n", 1) != 1)
+ result |= 1;
+ else if (fstat (fd, &st2) != 0)
+ result |= 1;
+ else if (time (&t2) == (time_t) -1)
+ result |= 1;
+ else
+ {
+ int m_ok_POSIX = inorder (t0, st1.st_mtime, t2);
+ int m_ok_NFS = inorder (st0.st_mtime, st1.st_mtime, st2.st_mtime);
+ if (! (st1.st_atime == st1.st_mtime))
+ result |= 16;
+ if (! (m_ok_POSIX || m_ok_NFS))
+ result |= 32;
+ }
+ if (close (fd) != 0)
+ result |= 1;
+ }
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ /* Test whether utimes() with a NULL argument works on read-only files. */
+ {
+ int fd = open (file, O_WRONLY|O_CREAT, 0444);
+ if (fd < 0)
+ result |= 1;
+ else if (close (fd) != 0)
+ result |= 1;
+ else if (utimes (file, NULL) != 0)
+ result |= 64;
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ return result;
+}
+ ]])],
+ [gl_cv_func_working_utimes=yes],
+ [gl_cv_func_working_utimes=no],
+ [gl_cv_func_working_utimes=no])])
+
+ if test $gl_cv_func_working_utimes = yes; then
+ AC_DEFINE([HAVE_WORKING_UTIMES], [1], [Define if utimes works properly. ])
+ fi
+])
+m4trace:m4/vasnprintf.m4:7: -1- AC_DEFUN([gl_FUNC_VASNPRINTF], [
+ AC_CHECK_FUNCS_ONCE([vasnprintf])
+ if test $ac_cv_func_vasnprintf = no; then
+ gl_REPLACE_VASNPRINTF
+ fi
+])
+m4trace:m4/vasnprintf.m4:15: -1- AC_DEFUN([gl_REPLACE_VASNPRINTF], [
+ AC_CHECK_FUNCS_ONCE([vasnprintf])
+ AC_LIBOBJ([vasnprintf])
+ AC_LIBOBJ([printf-args])
+ AC_LIBOBJ([printf-parse])
+ AC_LIBOBJ([asnprintf])
+ if test $ac_cv_func_vasnprintf = yes; then
+ AC_DEFINE([REPLACE_VASNPRINTF], [1],
+ [Define if vasnprintf exists but is overridden by gnulib.])
+ fi
+ gl_PREREQ_PRINTF_ARGS
+ gl_PREREQ_PRINTF_PARSE
+ gl_PREREQ_VASNPRINTF
+ gl_PREREQ_ASNPRINTF
+])
+m4trace:m4/vasnprintf.m4:33: -1- AC_DEFUN([gl_PREREQ_PRINTF_ARGS], [
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ AC_REQUIRE([gt_TYPE_WCHAR_T])
+ AC_REQUIRE([gt_TYPE_WINT_T])
+])
+m4trace:m4/vasnprintf.m4:41: -1- AC_DEFUN([gl_PREREQ_PRINTF_PARSE], [
+ AC_REQUIRE([gl_FEATURES_H])
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ AC_REQUIRE([gt_TYPE_WCHAR_T])
+ AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([AC_TYPE_SIZE_T])
+ AC_CHECK_TYPE([ptrdiff_t], ,
+ [AC_DEFINE([ptrdiff_t], [long],
+ [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+ ])
+ AC_REQUIRE([gt_AC_TYPE_INTMAX_T])
+])
+m4trace:m4/vasnprintf.m4:56: -1- AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF], [
+ AC_REQUIRE([AC_C_INLINE])
+ 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 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>]])
+ dnl Knowing DBL_EXPBIT0_WORD and DBL_EXPBIT0_BIT enables an optimization
+ dnl in the code for NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE.
+ AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION])
+ dnl We can avoid a lot of code by assuming that snprintf's return value
+ dnl conforms to ISO C99. So check that.
+ AC_REQUIRE([gl_SNPRINTF_RETVAL_C99])
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+ AC_DEFINE([HAVE_SNPRINTF_RETVAL_C99], [1],
+ [Define if the return value of the snprintf function is the number of
+ of bytes (excluding the terminating NUL) that would have been produced
+ if the buffer had been large enough.])
+ ;;
+ esac
+])
+m4trace:m4/vasnprintf.m4:85: -1- AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE], [
+ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
+ case "$gl_cv_func_printf_long_double" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ 'long double' arguments.])
+ ;;
+ esac
+])
+m4trace:m4/vasnprintf.m4:101: -1- AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE], [
+ AC_REQUIRE([gl_PRINTF_INFINITE])
+ case "$gl_cv_func_printf_infinite" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_INFINITE_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ infinite 'double' arguments.])
+ ;;
+ esac
+])
+m4trace:m4/vasnprintf.m4:117: -1- AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE], [
+ AC_REQUIRE([gl_PRINTF_INFINITE_LONG_DOUBLE])
+ dnl There is no need to set NEED_PRINTF_INFINITE_LONG_DOUBLE if
+ dnl NEED_PRINTF_LONG_DOUBLE is already set.
+ AC_REQUIRE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE])
+ case "$gl_cv_func_printf_long_double" in
+ *yes)
+ case "$gl_cv_func_printf_infinite_long_double" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_INFINITE_LONG_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ infinite 'long double' arguments.])
+ ;;
+ esac
+ ;;
+ esac
+])
+m4trace:m4/vasnprintf.m4:139: -1- AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_A], [
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
+ case "$gl_cv_func_printf_directive_a" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_DIRECTIVE_A], [1],
+ [Define if the vasnprintf implementation needs special code for
+ the 'a' and 'A' directives.])
+ AC_CHECK_FUNCS([nl_langinfo])
+ ;;
+ esac
+])
+m4trace:m4/vasnprintf.m4:155: -1- AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F], [
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
+ case "$gl_cv_func_printf_directive_f" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_DIRECTIVE_F], [1],
+ [Define if the vasnprintf implementation needs special code for
+ the 'F' directive.])
+ ;;
+ esac
+])
+m4trace:m4/vasnprintf.m4:170: -1- 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
+])
+m4trace:m4/vasnprintf.m4:185: -1- AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_GROUPING], [
+ AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
+ case "$gl_cv_func_printf_flag_grouping" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], [1],
+ [Define if the vasnprintf implementation needs special code for the
+ ' flag.])
+ ;;
+ esac
+])
+m4trace:m4/vasnprintf.m4:200: -1- AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST], [
+ AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST])
+ case "$gl_cv_func_printf_flag_leftadjust" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_FLAG_LEFTADJUST], [1],
+ [Define if the vasnprintf implementation needs special code for the
+ '-' flag.])
+ ;;
+ esac
+])
+m4trace:m4/vasnprintf.m4:215: -1- AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_ZERO], [
+ AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
+ case "$gl_cv_func_printf_flag_zero" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_FLAG_ZERO], [1],
+ [Define if the vasnprintf implementation needs special code for the
+ 0 flag.])
+ ;;
+ esac
+])
+m4trace:m4/vasnprintf.m4:230: -1- AC_DEFUN([gl_PREREQ_VASNPRINTF_PRECISION], [
+ AC_REQUIRE([gl_PRINTF_PRECISION])
+ case "$gl_cv_func_printf_precision" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_UNBOUNDED_PRECISION], [1],
+ [Define if the vasnprintf implementation needs special code for
+ supporting large precisions without arbitrary bounds.])
+ AC_DEFINE([NEED_PRINTF_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ 'double' arguments.])
+ AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ 'long double' arguments.])
+ ;;
+ esac
+])
+m4trace:m4/vasnprintf.m4:252: -1- AC_DEFUN([gl_PREREQ_VASNPRINTF_ENOMEM], [
+ AC_REQUIRE([gl_PRINTF_ENOMEM])
+ case "$gl_cv_func_printf_enomem" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_ENOMEM], [1],
+ [Define if the vasnprintf implementation needs special code for
+ surviving out-of-memory conditions.])
+ AC_DEFINE([NEED_PRINTF_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ 'double' arguments.])
+ AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ 'long double' arguments.])
+ ;;
+ esac
+])
+m4trace:m4/vasnprintf.m4:273: -1- AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS], [
+ AC_REQUIRE([gl_PREREQ_VASNPRINTF])
+ gl_PREREQ_VASNPRINTF_LONG_DOUBLE
+ gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE
+ 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
+ gl_PREREQ_VASNPRINTF_PRECISION
+ gl_PREREQ_VASNPRINTF_ENOMEM
+])
+m4trace:m4/vasnprintf.m4:290: -1- AC_DEFUN([gl_PREREQ_ASNPRINTF], [
+])
+m4trace:m4/vasprintf.m4:8: -1- AC_DEFUN([gl_FUNC_VASPRINTF], [
+ AC_CHECK_FUNCS([vasprintf])
+ if test $ac_cv_func_vasprintf = no; then
+ gl_REPLACE_VASPRINTF
+ fi
+])
+m4trace:m4/vasprintf.m4:16: -1- 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
+])
+m4trace:m4/vasprintf.m4:32: -1- AC_DEFUN([gl_PREREQ_VASPRINTF_H], [
+ dnl Persuade glibc <stdio.h> to declare asprintf() and vasprintf().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+])
+m4trace:m4/vasprintf.m4:39: -1- AC_DEFUN([gl_PREREQ_VASPRINTF], [
+])
+m4trace:m4/vasprintf.m4:44: -1- AC_DEFUN([gl_PREREQ_ASPRINTF], [
+])
+m4trace:m4/version-etc.m4:20: -1- 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
+])
+m4trace:m4/vsnprintf.m4:11: -1- AC_DEFUN([gl_FUNC_VSNPRINTF], [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ gl_cv_func_vsnprintf_usable=no
+ AC_CHECK_FUNCS([vsnprintf])
+ if test $ac_cv_func_vsnprintf = yes; then
+ gl_SNPRINTF_SIZE1
+ case "$gl_cv_func_snprintf_size1" in
+ *yes)
+ gl_SNPRINTF_RETVAL_C99
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+ gl_PRINTF_POSITIONS
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_vsnprintf_usable=yes
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ if test $gl_cv_func_vsnprintf_usable = no; then
+ gl_REPLACE_VSNPRINTF
+ fi
+ AC_CHECK_DECLS_ONCE([vsnprintf])
+ if test $ac_cv_have_decl_vsnprintf = no; then
+ HAVE_DECL_VSNPRINTF=0
+ fi
+])
+m4trace:m4/vsnprintf.m4:43: -1- AC_DEFUN([gl_REPLACE_VSNPRINTF], [
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_LIBOBJ([vsnprintf])
+ if test $ac_cv_func_vsnprintf = yes; then
+ REPLACE_VSNPRINTF=1
+ fi
+ gl_PREREQ_VSNPRINTF
+])
+m4trace:m4/vsnprintf.m4:54: -1- AC_DEFUN([gl_PREREQ_VSNPRINTF], [:])
+m4trace:m4/warn-on-use.m4:24: -1- 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
+dnl FIXME: gl_Symbol must be used unquoted until we can assume
+dnl autoconf 2.64 or newer.
+ 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
+])
+m4trace:m4/wchar_h.m4:12: -1- 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.
+ 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([gl_FEATURES_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([[
+/* 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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+#endif
+#include <wchar.h>
+ ]],
+ [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb
+ wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset
+ wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp
+ wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr
+ wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth
+ ])
+])
+m4trace:m4/wchar_h.m4:61: -1- 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
+/* 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>
+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
+/* 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>
+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
+])
+m4trace:m4/wchar_h.m4:122: -1- 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/wchar_h.m4:131: -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])
+ GNULIB_WMEMCHR=0; AC_SUBST([GNULIB_WMEMCHR])
+ GNULIB_WMEMCMP=0; AC_SUBST([GNULIB_WMEMCMP])
+ GNULIB_WMEMCPY=0; AC_SUBST([GNULIB_WMEMCPY])
+ GNULIB_WMEMMOVE=0; AC_SUBST([GNULIB_WMEMMOVE])
+ GNULIB_WMEMSET=0; AC_SUBST([GNULIB_WMEMSET])
+ GNULIB_WCSLEN=0; AC_SUBST([GNULIB_WCSLEN])
+ GNULIB_WCSNLEN=0; AC_SUBST([GNULIB_WCSNLEN])
+ GNULIB_WCSCPY=0; AC_SUBST([GNULIB_WCSCPY])
+ GNULIB_WCPCPY=0; AC_SUBST([GNULIB_WCPCPY])
+ GNULIB_WCSNCPY=0; AC_SUBST([GNULIB_WCSNCPY])
+ GNULIB_WCPNCPY=0; AC_SUBST([GNULIB_WCPNCPY])
+ GNULIB_WCSCAT=0; AC_SUBST([GNULIB_WCSCAT])
+ GNULIB_WCSNCAT=0; AC_SUBST([GNULIB_WCSNCAT])
+ GNULIB_WCSCMP=0; AC_SUBST([GNULIB_WCSCMP])
+ GNULIB_WCSNCMP=0; AC_SUBST([GNULIB_WCSNCMP])
+ GNULIB_WCSCASECMP=0; AC_SUBST([GNULIB_WCSCASECMP])
+ GNULIB_WCSNCASECMP=0; AC_SUBST([GNULIB_WCSNCASECMP])
+ GNULIB_WCSCOLL=0; AC_SUBST([GNULIB_WCSCOLL])
+ GNULIB_WCSXFRM=0; AC_SUBST([GNULIB_WCSXFRM])
+ GNULIB_WCSDUP=0; AC_SUBST([GNULIB_WCSDUP])
+ GNULIB_WCSCHR=0; AC_SUBST([GNULIB_WCSCHR])
+ GNULIB_WCSRCHR=0; AC_SUBST([GNULIB_WCSRCHR])
+ GNULIB_WCSCSPN=0; AC_SUBST([GNULIB_WCSCSPN])
+ GNULIB_WCSSPN=0; AC_SUBST([GNULIB_WCSSPN])
+ GNULIB_WCSPBRK=0; AC_SUBST([GNULIB_WCSPBRK])
+ GNULIB_WCSSTR=0; AC_SUBST([GNULIB_WCSSTR])
+ GNULIB_WCSTOK=0; AC_SUBST([GNULIB_WCSTOK])
+ GNULIB_WCSWIDTH=0; AC_SUBST([GNULIB_WCSWIDTH])
+ 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_WMEMCHR=1; AC_SUBST([HAVE_WMEMCHR])
+ HAVE_WMEMCMP=1; AC_SUBST([HAVE_WMEMCMP])
+ HAVE_WMEMCPY=1; AC_SUBST([HAVE_WMEMCPY])
+ HAVE_WMEMMOVE=1; AC_SUBST([HAVE_WMEMMOVE])
+ HAVE_WMEMSET=1; AC_SUBST([HAVE_WMEMSET])
+ HAVE_WCSLEN=1; AC_SUBST([HAVE_WCSLEN])
+ HAVE_WCSNLEN=1; AC_SUBST([HAVE_WCSNLEN])
+ HAVE_WCSCPY=1; AC_SUBST([HAVE_WCSCPY])
+ HAVE_WCPCPY=1; AC_SUBST([HAVE_WCPCPY])
+ HAVE_WCSNCPY=1; AC_SUBST([HAVE_WCSNCPY])
+ HAVE_WCPNCPY=1; AC_SUBST([HAVE_WCPNCPY])
+ HAVE_WCSCAT=1; AC_SUBST([HAVE_WCSCAT])
+ HAVE_WCSNCAT=1; AC_SUBST([HAVE_WCSNCAT])
+ HAVE_WCSCMP=1; AC_SUBST([HAVE_WCSCMP])
+ HAVE_WCSNCMP=1; AC_SUBST([HAVE_WCSNCMP])
+ HAVE_WCSCASECMP=1; AC_SUBST([HAVE_WCSCASECMP])
+ HAVE_WCSNCASECMP=1; AC_SUBST([HAVE_WCSNCASECMP])
+ HAVE_WCSCOLL=1; AC_SUBST([HAVE_WCSCOLL])
+ HAVE_WCSXFRM=1; AC_SUBST([HAVE_WCSXFRM])
+ HAVE_WCSDUP=1; AC_SUBST([HAVE_WCSDUP])
+ HAVE_WCSCHR=1; AC_SUBST([HAVE_WCSCHR])
+ HAVE_WCSRCHR=1; AC_SUBST([HAVE_WCSRCHR])
+ HAVE_WCSCSPN=1; AC_SUBST([HAVE_WCSCSPN])
+ HAVE_WCSSPN=1; AC_SUBST([HAVE_WCSSPN])
+ HAVE_WCSPBRK=1; AC_SUBST([HAVE_WCSPBRK])
+ HAVE_WCSSTR=1; AC_SUBST([HAVE_WCSSTR])
+ HAVE_WCSTOK=1; AC_SUBST([HAVE_WCSTOK])
+ HAVE_WCSWIDTH=1; AC_SUBST([HAVE_WCSWIDTH])
+ 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])
+ REPLACE_WCSWIDTH=0; AC_SUBST([REPLACE_WCSWIDTH])
+])
+m4trace:m4/wchar_t.m4:11: -1- AC_DEFUN([gt_TYPE_WCHAR_T], [
+ AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stddef.h>
+ wchar_t foo = (wchar_t)'\0';]],
+ [[]])],
+ [gt_cv_c_wchar_t=yes],
+ [gt_cv_c_wchar_t=no])])
+ if test $gt_cv_c_wchar_t = yes; then
+ AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.])
+ fi
+])
+m4trace:m4/wcrtomb.m4:7: -1- AC_DEFUN([gl_FUNC_WCRTOMB], [
+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ gl_MBSTATE_T_BROKEN
+
+ AC_CHECK_FUNCS_ONCE([wcrtomb])
+ if test $ac_cv_func_wcrtomb = no; then
+ HAVE_WCRTOMB=0
+ AC_CHECK_DECLS([wcrtomb],,, [[
+/* 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>
+]])
+ if test $ac_cv_have_decl_wcrtomb = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares wcrtomb() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_WCRTOMB=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_WCRTOMB=1
+ else
+ 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])
+ 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 wcrtomb return value is correct],
+ [gl_cv_func_wcrtomb_retval],
+ [
+ dnl Initial guess, used when cross-compiling or when no suitable locale
+ dnl is present.
+changequote(,)dnl
+ case "$host_os" in
+ # 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
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 1;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 2;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 4;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 8;
+ }
+ return result;
+}]])],
+ [gl_cv_func_wcrtomb_retval=yes],
+ [gl_cv_func_wcrtomb_retval=no],
+ [:])
+ fi
+ ])
+ case "$gl_cv_func_wcrtomb_retval" in
+ *yes) ;;
+ *) REPLACE_WCRTOMB=1 ;;
+ esac
+ fi
+ fi
+])
+m4trace:m4/wcrtomb.m4:110: -1- AC_DEFUN([gl_PREREQ_WCRTOMB], [
+ :
+])
+m4trace:m4/wctype_h.m4:12: -1- AC_DEFUN([gl_WCTYPE_H], [
+ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
+ 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
+ else
+ HAVE_ISWCNTRL=0
+ fi
+ AC_SUBST([HAVE_ISWCNTRL])
+
+ AC_REQUIRE([AC_C_INLINE])
+
+ 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])
+
+ gl_CHECK_NEXT_HEADERS([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_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ /* 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 <wctype.h>
+ int main () { return iswprint ('x') == 0; }
+ ]])],
+ [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
+ #if __GNU_LIBRARY__ == 1
+ Linux libc5 i18n is broken.
+ #endif]], [])],
+ [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no])
+ ])
+ ])
+ fi
+ HAVE_WCTYPE_H=1
+ else
+ HAVE_WCTYPE_H=0
+ fi
+ AC_SUBST([HAVE_WCTYPE_H])
+
+ if test "$gl_cv_func_iswcntrl_works" = no; then
+ REPLACE_ISWCNTRL=1
+ else
+ REPLACE_ISWCNTRL=0
+ fi
+ AC_SUBST([REPLACE_ISWCNTRL])
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ dnl Redefine all of iswcntrl, ..., iswxdigit in <wctype.h>.
+ :
+ fi
+
+ if test $REPLACE_ISWCNTRL = 1; then
+ REPLACE_TOWLOWER=1
+ else
+ AC_CHECK_FUNCS([towlower])
+ if test $ac_cv_func_towlower = yes; then
+ REPLACE_TOWLOWER=0
+ else
+ AC_CHECK_DECLS([towlower],,,
+ [[/* 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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ ]])
+ if test $ac_cv_have_decl_towlower = yes; then
+ dnl On Minix 3.1.8, the system's <wctype.h> declares towlower() and
+ dnl towupper() although it does not have the functions. Avoid a
+ dnl collision with gnulib's replacement.
+ REPLACE_TOWLOWER=1
+ else
+ REPLACE_TOWLOWER=0
+ fi
+ fi
+ fi
+ AC_SUBST([REPLACE_TOWLOWER])
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+ dnl Redefine towlower, towupper in <wctype.h>.
+ :
+ fi
+
+ dnl We assume that the wctype() and iswctype() functions exist if and only
+ dnl if the type wctype_t is defined in <wchar.h> or in <wctype.h> if that
+ dnl exists.
+ dnl HP-UX 11.00 declares all these in <wchar.h> and lacks <wctype.h>.
+ AC_CACHE_CHECK([for wctype_t], [gl_cv_type_wctype_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[/* 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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ wctype_t a;
+ ]],
+ [[]])],
+ [gl_cv_type_wctype_t=yes],
+ [gl_cv_type_wctype_t=no])
+ ])
+ if test $gl_cv_type_wctype_t = no; then
+ HAVE_WCTYPE_T=0
+ fi
+
+ dnl We assume that the wctrans() and towctrans() functions exist if and only
+ dnl if the type wctrans_t is defined in <wctype.h>.
+ AC_CACHE_CHECK([for wctrans_t], [gl_cv_type_wctrans_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[/* 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 <wctype.h>
+ wctrans_t a;
+ ]],
+ [[]])],
+ [gl_cv_type_wctrans_t=yes],
+ [gl_cv_type_wctrans_t=no])
+ ])
+ if test $gl_cv_type_wctrans_t = no; then
+ HAVE_WCTRANS_T=0
+ fi
+
+ 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([[
+/* 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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+ ]],
+ [wctype iswctype wctrans towctrans
+ ])
+])
+m4trace:m4/wctype_h.m4:190: -1- AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR], [
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+m4trace:m4/wctype_h.m4:199: -1- AC_DEFUN([gl_WCTYPE_H_DEFAULTS], [
+ GNULIB_ISWBLANK=0; AC_SUBST([GNULIB_ISWBLANK])
+ GNULIB_WCTYPE=0; AC_SUBST([GNULIB_WCTYPE])
+ GNULIB_ISWCTYPE=0; AC_SUBST([GNULIB_ISWCTYPE])
+ GNULIB_WCTRANS=0; AC_SUBST([GNULIB_WCTRANS])
+ GNULIB_TOWCTRANS=0; AC_SUBST([GNULIB_TOWCTRANS])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_ISWBLANK=1; AC_SUBST([HAVE_ISWBLANK])
+ HAVE_WCTYPE_T=1; AC_SUBST([HAVE_WCTYPE_T])
+ HAVE_WCTRANS_T=1; AC_SUBST([HAVE_WCTRANS_T])
+ REPLACE_ISWBLANK=0; AC_SUBST([REPLACE_ISWBLANK])
+])
+m4trace:m4/wcwidth.m4:7: -1- 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])
+
+ AC_REQUIRE([gt_TYPE_WCHAR_T])
+ AC_REQUIRE([gt_TYPE_WINT_T])
+
+ AC_CHECK_HEADERS_ONCE([wchar.h])
+ AC_CHECK_FUNCS_ONCE([wcwidth])
+
+ AC_CHECK_DECLS([wcwidth], [], [], [[
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.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>
+]])
+ if test $ac_cv_have_decl_wcwidth != yes; then
+ HAVE_DECL_WCWIDTH=0
+ fi
+
+ if test $ac_cv_func_wcwidth = yes; then
+ HAVE_WCWIDTH=1
+ dnl On MacOS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
+ dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
+ dnl This leads to bugs in 'ls' (coreutils).
+ AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales],
+ [gl_cv_func_wcwidth_works],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.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>
+#if !HAVE_DECL_WCWIDTH
+extern
+# ifdef __cplusplus
+"C"
+# endif
+int wcwidth (int);
+#endif
+int main ()
+{
+ int result = 0;
+ if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
+ {
+ if (wcwidth (0x0301) > 0)
+ result |= 1;
+ if (wcwidth (0x200B) > 0)
+ result |= 2;
+ }
+ return result;
+}]])],
+ [gl_cv_func_wcwidth_works=yes],
+ [gl_cv_func_wcwidth_works=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc and AIX 7 systems.
+ *-gnu* | aix[7-9]*) 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) ;;
+ *no) REPLACE_WCWIDTH=1 ;;
+ esac
+ else
+ HAVE_WCWIDTH=0
+ fi
+ dnl We don't substitute HAVE_WCWIDTH. We assume that if the system does not
+ dnl have the wcwidth function, then it does not declare it.
+])
+m4trace:m4/wint_t.m4:11: -1- AC_DEFUN([gt_TYPE_WINT_T], [
+ AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+/* 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>
+ wint_t foo = (wchar_t)'\0';]],
+ [[]])],
+ [gt_cv_c_wint_t=yes],
+ [gt_cv_c_wint_t=no])])
+ if test $gt_cv_c_wint_t = yes; then
+ AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.])
+ fi
+])
+m4trace:m4/write.m4:7: -1- AC_DEFUN([gl_FUNC_WRITE], [
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_WRITE=1
+ fi
+ dnl This ifdef is just an optimization, to avoid performing a configure
+ dnl check whose result is not used. It does not make the test of
+ dnl GNULIB_UNISTD_H_SIGPIPE or GNULIB_SIGPIPE redundant.
+ m4_ifdef([gl_SIGNAL_SIGPIPE], [
+ gl_SIGNAL_SIGPIPE
+ if test $gl_cv_header_signal_h_SIGPIPE != yes; then
+ REPLACE_WRITE=1
+ fi
+ ])
+ m4_ifdef([gl_NONBLOCKING_IO], [
+ gl_NONBLOCKING_IO
+ if test $gl_cv_have_nonblocking != yes; then
+ REPLACE_WRITE=1
+ fi
+ ])
+])
+m4trace:m4/write.m4:32: -1- AC_DEFUN([gl_PREREQ_WRITE], [
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:m4/xalloc.m4:7: -1- AC_DEFUN([gl_XALLOC], [
+ gl_PREREQ_XALLOC
+ gl_PREREQ_XMALLOC
+])
+m4trace:m4/xalloc.m4:14: -1- AC_DEFUN([gl_PREREQ_XALLOC], [
+ AC_REQUIRE([gl_INLINE])
+ :
+])
+m4trace:m4/xalloc.m4:20: -1- AC_DEFUN([gl_PREREQ_XMALLOC], [
+ :
+])
+m4trace:m4/xgetcwd.m4:7: -1- AC_DEFUN([gl_XGETCWD], [
+ :
+])
+m4trace:m4/xsize.m4:7: -1- AC_DEFUN([gl_XSIZE], [
+ dnl Prerequisites of lib/xsize.h.
+ AC_REQUIRE([gl_SIZE_MAX])
+ AC_REQUIRE([AC_C_INLINE])
+ AC_CHECK_HEADERS([stdint.h])
+])
+m4trace:m4/xstrndup.m4:7: -1- AC_DEFUN([gl_XSTRNDUP], [
+ gl_PREREQ_XSTRNDUP
+])
+m4trace:m4/xstrndup.m4:13: -1- AC_DEFUN([gl_PREREQ_XSTRNDUP], [
+ :
+])
+m4trace:m4/xstrtol.m4:7: -1- AC_DEFUN([gl_XSTRTOL], [
+ :
+])
+m4trace:m4/xvasprintf.m4:7: -1- AC_DEFUN([gl_XVASPRINTF], [
+ dnl Prerequisites of lib/xvasprintf.c.
+ AC_REQUIRE([AC_C_INLINE])
+])
+m4trace:acinclude.m4:17: -1- 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])])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([^_?A[CHUM]_])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([_AC_])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^AS_FLAGS$])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([^_?m4_])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([^dnl$])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([^_?AS_])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^SHELL$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PATH_SEPARATOR$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^exec_prefix$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^prefix$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^program_transform_name$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^bindir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^sbindir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^libexecdir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^datarootdir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^datadir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^sysconfdir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^sharedstatedir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^localstatedir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^includedir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^oldincludedir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^docdir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^infodir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^htmldir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^dvidir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^pdfdir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^psdir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^libdir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^mandir$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^DEFS$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^ECHO_C$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^ECHO_N$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^ECHO_T$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^build_alias$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^host_alias$])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^target_alias$])
+m4trace:configure.ac:27: -1- AM_INIT_AUTOMAKE([1.11 gnits tar-ustar dist-bzip2 dist-xz dist-shar std-options silent-rules])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
+m4trace:configure.ac:27: -1- AM_SET_CURRENT_AUTOMAKE_VERSION
+m4trace:configure.ac:27: -1- AM_AUTOMAKE_VERSION([1.11.1])
+m4trace:configure.ac:27: -1- _AM_AUTOCONF_VERSION([2.68])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^INSTALL_DATA$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^am__isrc$])
+m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([am__isrc])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^CYGPATH_W$])
+m4trace:configure.ac:27: -1- _AM_SET_OPTIONS([1.11 gnits tar-ustar dist-bzip2 dist-xz dist-shar std-options silent-rules])
+m4trace:configure.ac:27: -1- _AM_SET_OPTION([1.11])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([1.11])
+m4trace:configure.ac:27: -1- _AM_SET_OPTION([gnits])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([gnits])
+m4trace:configure.ac:27: -1- _AM_SET_OPTION([tar-ustar])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([tar-ustar])
+m4trace:configure.ac:27: -1- _AM_SET_OPTION([dist-bzip2])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([dist-bzip2])
+m4trace:configure.ac:27: -1- _AM_SET_OPTION([dist-xz])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([dist-xz])
+m4trace:configure.ac:27: -1- _AM_SET_OPTION([dist-shar])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([dist-shar])
+m4trace:configure.ac:27: -1- _AM_SET_OPTION([std-options])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([std-options])
+m4trace:configure.ac:27: -1- _AM_SET_OPTION([silent-rules])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([silent-rules])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:27: -1- _AM_IF_OPTION([no-define], [], [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([no-define])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:27: -1- AM_SANITY_CHECK
+m4trace:configure.ac:27: -1- AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+m4trace:configure.ac:27: -1- AM_MISSING_HAS_RUN
+m4trace:configure.ac:27: -1- AM_AUX_DIR_EXPAND
+m4trace:configure.ac:27: -1- m4_pattern_allow([^ACLOCAL$])
+m4trace:configure.ac:27: -1- AM_MISSING_PROG([AUTOCONF], [autoconf])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AUTOCONF$])
+m4trace:configure.ac:27: -1- AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AUTOMAKE$])
+m4trace:configure.ac:27: -1- AM_MISSING_PROG([AUTOHEADER], [autoheader])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AUTOHEADER$])
+m4trace:configure.ac:27: -1- AM_MISSING_PROG([MAKEINFO], [makeinfo])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^MAKEINFO$])
+m4trace:configure.ac:27: -1- AM_PROG_INSTALL_SH
+m4trace:configure.ac:27: -1- m4_pattern_allow([^install_sh$])
+m4trace:configure.ac:27: -1- AM_PROG_INSTALL_STRIP
+m4trace:configure.ac:27: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
+m4trace:configure.ac:27: -1- AM_PROG_MKDIR_P
+m4trace:configure.ac:27: -1- AC_PROG_MKDIR_P
+m4trace:configure.ac:27: -1- m4_pattern_allow([^MKDIR_P$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^MKDIR_P$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^mkdir_p$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AWK$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^SET_MAKE$])
+m4trace:configure.ac:27: -1- AM_SET_LEADING_DOT
+m4trace:configure.ac:27: -1- m4_pattern_allow([^am__leading_dot$])
+m4trace:configure.ac:27: -1- _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([tar-ustar])
+m4trace:configure.ac:27: -1- _AM_PROG_TAR([ustar])
+m4trace:configure.ac:27: -1- AM_MISSING_PROG([AMTAR], [tar])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AMTAR$])
+m4trace:configure.ac:27: -1- AM_RUN_LOG([$_am_tar --version])
+m4trace:configure.ac:27: -1- AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+m4trace:configure.ac:27: -1- AM_RUN_LOG([$am__untar <conftest.tar])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^am__tar$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^am__untar$])
+m4trace:configure.ac:27: -1- _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
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_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
+])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([no-dependencies])
+m4trace:configure.ac:27: -1- _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])
+m4trace:configure.ac:27: -2- _AM_MANGLE_OPTION([silent-rules])
+m4trace:configure.ac:27: -1- AM_SILENT_RULES
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AM_BACKSLASH$])
+m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
+m4trace:configure.ac:30: -1- AM_SILENT_RULES([yes])
+m4trace:configure.ac:30: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
+m4trace:configure.ac:30: -1- m4_pattern_allow([^AM_BACKSLASH$])
+m4trace:configure.ac:30: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CFLAGS$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^ac_ct_CC$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^OBJEXT$])
+m4trace:configure.ac:32: -1- _AM_DEPENDENCIES([CC])
+m4trace:configure.ac:32: -1- AM_SET_DEPDIR
+m4trace:configure.ac:32: -1- m4_pattern_allow([^DEPDIR$])
+m4trace:configure.ac:32: -1- AM_OUTPUT_DEPENDENCY_COMMANDS
+m4trace:configure.ac:32: -1- AM_MAKE_INCLUDE
+m4trace:configure.ac:32: -1- m4_pattern_allow([^am__include$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^am__quote$])
+m4trace:configure.ac:32: -1- AM_DEP_TRACK
+m4trace:configure.ac:32: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEP_TRUE$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEP_FALSE$])
+m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
+m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
+m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CCDEPMODE$])
+m4trace:configure.ac:32: -1- AM_CONDITIONAL([am__fastdepCC], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
+m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
+m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
+m4trace:configure.ac:34: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:35: -1- m4_pattern_allow([^YACC$])
+m4trace:configure.ac:35: -1- m4_pattern_allow([^YACC$])
+m4trace:configure.ac:35: -1- m4_pattern_allow([^YFLAGS$])
+m4trace:configure.ac:36: -1- gl_EARLY
+m4trace:configure.ac:36: -1- m4_pattern_forbid([^gl_[A-Z]])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^gl_ES$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^gl_LIBOBJS$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^gl_LTLIBOBJS$])
+m4trace:configure.ac:36: -1- gl_PROG_AR_RANLIB
+m4trace:configure.ac:36: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^EGREP$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^ARFLAGS$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:36: -1- AM_PROG_CC_C_O
+m4trace:configure.ac:36: -1- m4_pattern_allow([^NO_MINUS_C_MINUS_O$])
+m4trace:configure.ac:36: -1- gl_USE_SYSTEM_EXTENSIONS
+m4trace:configure.ac:36: -1- _m4_warn([obsolete], [The macro `AC_GNU_SOURCE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/specific.m4:310: AC_GNU_SOURCE is expanded from...
+m4/gnulib-comp.m4:36: gl_EARLY is expanded from...
+configure.ac:36: the top level])
+m4trace:configure.ac:36: -1- AC_USE_SYSTEM_EXTENSIONS
+m4trace:configure.ac:36: -1- m4_pattern_allow([^build$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^build_cpu$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^build_vendor$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^build_os$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^host$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^host_cpu$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^host_vendor$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^host_os$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_POSIX_SOURCE$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_POSIX_1_SOURCE$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_MINIX$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_XOPEN_SOURCE$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^__EXTENSIONS__$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_ALL_SOURCE$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_DARWIN_C_SOURCE$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_GNU_SOURCE$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_TANDEM_SOURCE$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_LARGEFILE_SOURCE$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^HAVE_FSEEKO$])
+m4trace:configure.ac:36: -1- AC_SYS_LARGEFILE
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_FILE_OFFSET_BITS$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_LARGE_FILES$])
+m4trace:configure.ac:36: -1- gl_PROG_CC_C99
+m4trace:configure.ac:38: -1- AC_SYS_LARGEFILE
+m4trace:configure.ac:38: -1- m4_pattern_allow([^_FILE_OFFSET_BITS$])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^_LARGE_FILES$])
+m4trace:configure.ac:39: -1- _m4_warn([obsolete], [The macro `AC_ISC_POSIX' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/specific.m4:442: AC_ISC_POSIX is expanded from...
+configure.ac:39: the top level])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_fcntl_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" fcntl.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_linux_fd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" linux/fd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_memory_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" memory.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_net_errno_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" net/errno.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_sgtty_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sgtty.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_string_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" string.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_sys_param_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/param.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_sys_device_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/device.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_sys_gentape_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/gentape.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_sys_inet_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/inet.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_sys_io_trioctl_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/io/trioctl.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_sys_mtio_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/mtio.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_sys_time_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/time.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_sys_tprintf_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/tprintf.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_sys_tape_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/tape.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:42: -1- AC_DEFUN([_AC_Header_locale_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" locale.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:49: -1- m4_pattern_allow([^HAVE_SYS_BUF_H$])
+m4trace:configure.ac:54: -1- m4_pattern_allow([^HAVE_SYS_WAIT_H$])
+m4trace:configure.ac:57: -1- m4_pattern_allow([^MAJOR_IN_MKDEV$])
+m4trace:configure.ac:57: -1- m4_pattern_allow([^MAJOR_IN_SYSMACROS$])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^STAT_MACROS_BROKEN$])
+m4trace:configure.ac:59: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:62: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
+../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
+../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from...
+configure.ac:62: the top level])
+m4trace:configure.ac:69: -1- m4_pattern_allow([^HAVE_ST_FSTYPE_STRING$])
+m4trace:configure.ac:73: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/types.m4:738: AC_TYPE_SIGNAL is expanded from...
+configure.ac:73: the top level])
+m4trace:configure.ac:73: -1- m4_pattern_allow([^RETSIGTYPE$])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^mode_t$])
+m4trace:configure.ac:75: -1- m4_pattern_allow([^pid_t$])
+m4trace:configure.ac:76: -1- m4_pattern_allow([^off_t$])
+m4trace:configure.ac:77: -1- m4_pattern_allow([^size_t$])
+m4trace:configure.ac:78: -1- m4_pattern_allow([^uid_t$])
+m4trace:configure.ac:78: -1- m4_pattern_allow([^gid_t$])
+m4trace:configure.ac:79: -2- m4_pattern_allow([^major_t$])
+m4trace:configure.ac:81: -2- m4_pattern_allow([^minor_t$])
+m4trace:configure.ac:83: -1- m4_pattern_allow([^dev_t$])
+m4trace:configure.ac:84: -1- m4_pattern_allow([^ino_t$])
+m4trace:configure.ac:86: -1- gt_TYPE_SSIZE_T
+m4trace:configure.ac:86: -1- m4_pattern_allow([^ssize_t$])
+m4trace:configure.ac:89: -1- gl_INIT
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_COND_LIBTOOL], [false])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_COND_LIBTOOL_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_COND_LIBTOOL_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_COND_LIBTOOL_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_COND_LIBTOOL_FALSE])
+m4trace:configure.ac:89: -1- gl_COMMON
+m4trace:configure.ac:89: -1- gl_00GNULIB
+m4trace:configure.ac:89: -1- gl_COMMON_BODY
+m4trace:configure.ac:89: -1- gl_FUNC_ALLOCA
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ALLOCA_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ALLOCA$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ALLOCA$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^C_ALLOCA$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^CRAY_STACKSEG_END$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STACK_DIRECTION$])
+m4trace:configure.ac:89: -1- gl_PREREQ_ALLOCA
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ALLOCA$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ALLOCA_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_ALLOCA_H_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_ALLOCA_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_ALLOCA_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_ALLOCA_H_FALSE])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([areadlinkat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_AREADLINKAT$])
+m4trace:configure.ac:89: -1- gl_ARGP
+m4trace:configure.ac:89: -1- AC_C_RESTRICT
+m4trace:configure.ac:89: -1- m4_pattern_allow([^restrict$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^restrict$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PROGRAM_INVOCATION_NAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PROGRAM_INVOCATION_NAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PROGRAM_INVOCATION_SHORT_NAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PROGRAM_INVOCATION_NAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PROGRAM_INVOCATION_SHORT_NAME$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_clearerr_unlocked], [_AC_CHECK_DECLS([clearerr_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_CLEARERR_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_feof_unlocked], [_AC_CHECK_DECLS([feof_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FEOF_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_ferror_unlocked], [_AC_CHECK_DECLS([ferror_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FERROR_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fflush_unlocked], [_AC_CHECK_DECLS([fflush_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FFLUSH_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fgets_unlocked], [_AC_CHECK_DECLS([fgets_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FGETS_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fputc_unlocked], [_AC_CHECK_DECLS([fputc_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FPUTC_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fputs_unlocked], [_AC_CHECK_DECLS([fputs_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FPUTS_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fread_unlocked], [_AC_CHECK_DECLS([fread_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FREAD_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fwrite_unlocked], [_AC_CHECK_DECLS([fwrite_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FWRITE_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_getc_unlocked], [_AC_CHECK_DECLS([getc_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETC_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_getchar_unlocked], [_AC_CHECK_DECLS([getchar_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETCHAR_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_putc_unlocked], [_AC_CHECK_DECLS([putc_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PUTC_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_putchar_unlocked], [_AC_CHECK_DECLS([putchar_unlocked])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PUTCHAR_UNLOCKED$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_flockfile], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" flockfile"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_funlockfile], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" funlockfile"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_features_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" features.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_linewrap_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" linewrap.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=argp_error:2:c-format])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION_INIT
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=argp_failure:4:c-format])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([openat-proc.c])
+m4trace:configure.ac:89: -1- gl_BACKUPFILE
+m4trace:configure.ac:89: -1- gl_CHECK_TYPE_STRUCT_DIRENT_D_INO
+m4trace:configure.ac:89: -1- m4_pattern_allow([^D_INO_IN_DIRENT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LONG_FILE_NAMES$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_pathconf], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" pathconf"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_FUNC_BTOWC
+m4trace:configure.ac:89: -1- gl_WCHAR_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_BTOWC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCTOB$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSINIT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBRTOWC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBRLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSRTOWCS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSNRTOWCS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCRTOMB$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSRTOMBS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNRTOMBS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCWIDTH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WMEMCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WMEMCMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WMEMCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WMEMMOVE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WMEMSET$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCPCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCPNCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNCAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNCMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCASECMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNCASECMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCOLL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSXFRM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSDUP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSRCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCSPN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSSPN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSPBRK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSSTR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSTOK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSWIDTH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_BTOWC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBSINIT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBRTOWC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBRLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBSRTOWCS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBSNRTOWCS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCRTOMB$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSRTOMBS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNRTOMBS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WMEMCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WMEMCMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WMEMCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WMEMMOVE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WMEMSET$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCPCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCPNCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNCAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNCMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCASECMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNCASECMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCOLL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSXFRM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSDUP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSRCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCSPN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSSPN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSPBRK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSSTR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSTOK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSWIDTH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_WCTOB$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_WCWIDTH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBSTATE_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_BTOWC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCTOB$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBSINIT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBRTOWC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBRLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBSRTOWCS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBSNRTOWCS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCRTOMB$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCSRTOMBS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCSNRTOMBS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCWIDTH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCSWIDTH$])
+m4trace:configure.ac:89: -1- gl_WCHAR_H_INLINE_OK
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_btowc], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" btowc"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gt_LOCALE_FR
+m4trace:configure.ac:89: -1- AM_LANGINFO_CODESET
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LOCALE_FR$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([btowc.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_BTOWC
+m4trace:configure.ac:89: -1- gl_WCHAR_MODULE_INDICATOR([btowc])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([btowc])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[btowc]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([btowc])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_BTOWC$])
+m4trace:configure.ac:89: -1- gl_CANONICALIZE_LGPL
+m4trace:configure.ac:89: -1- gl_STDLIB_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB__EXIT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ATOLL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CALLOC_POSIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CANONICALIZE_FILE_NAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETLOADAVG$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETSUBOPT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GRANTPT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MALLOC_POSIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBTOWC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKDTEMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKOSTEMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKOSTEMPS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKSTEMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKSTEMPS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_POSIX_OPENPT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PTSNAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PTSNAME_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PUTENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RANDOM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RANDOM_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_REALLOC_POSIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_REALPATH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RPMATCH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SETENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOLL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOULL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SYSTEM_POSIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNLOCKPT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNSETENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCTOMB$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE__EXIT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ATOLL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_CANONICALIZE_FILE_NAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETLOADAVG$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETSUBOPT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GRANTPT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKDTEMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKOSTEMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKOSTEMPS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKSTEMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKSTEMPS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_POSIX_OPENPT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PTSNAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PTSNAME_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RANDOM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RANDOM_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RANDOM_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_REALPATH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RPMATCH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SETENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SETENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOLL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOULL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_RANDOM_DATA$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_LOADAVG_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNLOCKPT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_UNSETENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_CALLOC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_CANONICALIZE_FILE_NAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MALLOC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBTOWC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MKSTEMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PTSNAME_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PUTENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_RANDOM_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_REALLOC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_REALPATH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_SETENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRTOD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_UNSETENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCTOMB$])
+m4trace:configure.ac:89: -1- gl_CANONICALIZE_LGPL_SEPARATE
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_canonicalize_file_name], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" canonicalize_file_name"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_getcwd], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" getcwd"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_readlink], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" readlink"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_DOUBLE_SLASH_ROOT
+m4trace:configure.ac:89: -1- m4_pattern_allow([^DOUBLE_SLASH_IS_DISTINCT_ROOT$])
+m4trace:configure.ac:89: -1- gl_FUNC_REALPATH_WORKS
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_realpath], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" realpath"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- GL_NOCRASH
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FUNC_REALPATH_WORKS$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_param_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/param.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([canonicalize-lgpl.c])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([canonicalize-lgpl])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CANONICALIZE_LGPL$])
+m4trace:configure.ac:89: -1- gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([canonicalize_file_name])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[canonicalize_file_name]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([canonicalize_file_name])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CANONICALIZE_FILE_NAME$])
+m4trace:configure.ac:89: -1- gl_STDLIB_MODULE_INDICATOR([realpath])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([realpath])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[realpath]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([realpath])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_REALPATH$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_readlinkat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" readlinkat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([chdir])
+m4trace:configure.ac:89: -1- gl_UNISTD_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CHDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CHOWN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CLOSE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DUP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DUP2$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DUP3$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ENVIRON$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_EUIDACCESS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FACCESSAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FCHDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FCHOWNAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FDATASYNC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSYNC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FTRUNCATE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETCWD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETDOMAINNAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETDTABLESIZE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETGROUPS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETHOSTNAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETLOGIN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETLOGIN_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETUSERSHELL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GROUP_MEMBER$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ISATTY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LCHOWN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LINK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LINKAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LSEEK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PIPE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PIPE2$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PREAD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PWRITE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_READ$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_READLINK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_READLINKAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RMDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SETHOSTNAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SLEEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SYMLINK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SYMLINKAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TTYNAME_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNISTD_H_NONBLOCKING$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNISTD_H_SIGPIPE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNLINK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNLINKAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_USLEEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WRITE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_CHOWN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DUP2$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DUP3$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_EUIDACCESS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FACCESSAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FCHDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FCHOWNAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FDATASYNC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FSYNC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FTRUNCATE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETDTABLESIZE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETGROUPS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETHOSTNAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETLOGIN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GROUP_MEMBER$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LCHOWN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LINK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LINKAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PIPE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PIPE2$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PREAD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PWRITE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_READLINK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_READLINKAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SETHOSTNAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SLEEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYMLINK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYMLINKAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNLINKAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_USLEEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_ENVIRON$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FCHDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FDATASYNC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETDOMAINNAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETLOGIN_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETUSERSHELL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SETHOSTNAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_TTYNAME_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OS_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_PARAM_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_CHOWN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_CLOSE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_DUP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_DUP2$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FCHOWNAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETCWD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETDOMAINNAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETLOGIN_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETGROUPS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_ISATTY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LCHOWN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LINK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LINKAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LSEEK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PREAD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PWRITE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_READ$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_READLINK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_RMDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_SLEEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_SYMLINK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_TTYNAME_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_UNLINK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_UNLINKAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_USLEEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WRITE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UNISTD_H_HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS$])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([chdir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[chdir]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([chdir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CHDIR$])
+m4trace:configure.ac:89: -1- gl_FUNC_CHDIR_LONG
+m4trace:configure.ac:89: -1- gl_PATHMAX_SNIPPET_PREREQ
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_param_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/param.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -2- gl_PATHMAX_SNIPPET
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([chdir-long.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_CHDIR_LONG
+m4trace:configure.ac:89: -1- gl_FUNC_CHOWN
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNISTD_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_CHOWN$])
+m4trace:configure.ac:89: -1- gl_FUNC_CHOWN_FOLLOWS_SYMLINK
+m4trace:configure.ac:89: -1- m4_pattern_allow([^CHOWN_MODIFIES_SYMLINK$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_chown], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" chown"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fchown], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchown"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^CHOWN_TRAILING_SLASH_BUG$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^CHOWN_CHANGE_TIME_BUG$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([chown.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fchown-stub.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([chown])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([chown])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[chown]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([chown])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CHOWN$])
+m4trace:configure.ac:89: -1- gl_CLOCK_TIME
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIB_CLOCK_GETTIME$])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([cloexec])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CLOEXEC$])
+m4trace:configure.ac:89: -1- gl_FUNC_CLOSE
+m4trace:configure.ac:89: -1- gl_MSVC_INVAL
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func__set_invalid_parameter_handler], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" _set_invalid_parameter_handler"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MSVC_INVALID_PARAMETER_HANDLER$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MSVC_INVALID_PARAMETER_HANDLER$])
+m4trace:configure.ac:89: -1- gl_PREREQ_SYS_H_WINSOCK2
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_socket_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/socket.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- gl_TEST_FCHDIR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fchdir], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchdir"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([close.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([close])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([close])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[close]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([close])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CLOSE$])
+m4trace:configure.ac:89: -1- gl_CLOSE_STREAM
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([close-stream])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CLOSE_STREAM$])
+m4trace:configure.ac:89: -1- gl_FUNC_CLOSEDIR
+m4trace:configure.ac:89: -1- gl_DIRENT_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OPENDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_READDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_REWINDDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CLOSEDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DIRFD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FDOPENDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SCANDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ALPHASORT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OPENDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_READDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_REWINDDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_CLOSEDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_DIRFD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FDOPENDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FDOPENDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SCANDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ALPHASORT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_OPENDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_CLOSEDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_DIRFD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FDOPENDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_CLOSEDIR$])
+m4trace:configure.ac:89: -1- gl_TEST_FCHDIR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fchdir], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchdir"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([closedir.c])
+m4trace:configure.ac:89: -1- gl_DIRENT_MODULE_INDICATOR([closedir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([closedir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[closedir]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([closedir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CLOSEDIR$])
+m4trace:configure.ac:89: -1- gl_CLOSEOUT
+m4trace:configure.ac:89: -1- gl_CONFIGMAKE_PREP
+m4trace:configure.ac:89: -1- m4_pattern_allow([^datarootdir$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^docdir$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^htmldir$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^dvidir$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^pdfdir$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^psdir$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^lispdir$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^pkglibexecdir$])
+m4trace:configure.ac:89: -1- gl_CHECK_TYPE_STRUCT_DIRENT_D_INO
+m4trace:configure.ac:89: -1- m4_pattern_allow([^D_INO_IN_DIRENT$])
+m4trace:configure.ac:89: -1- gl_DIRENT_H
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([dirent.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([dirent.h], [check])
+m4trace:configure.ac:89: -1- gl_INCLUDE_NEXT
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INCLUDE_NEXT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INCLUDE_NEXT_AS_FIRST_DIRECTIVE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRAGMA_SYSTEM_HEADER$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRAGMA_COLUMNS$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_dirent_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" dirent.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_DIRENT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_DIRENT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DIRENT_H$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[#include <dirent.h>
+ ]], [alphasort closedir dirfd fdopendir opendir readdir rewinddir scandir])
+m4trace:configure.ac:89: -1- gl_DIRENT_SAFER
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fdopendir], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fdopendir"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([dirent-safer])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DIRENT_SAFER$])
+m4trace:configure.ac:89: -1- gl_FUNC_DIRFD
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DIRFD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_DIRFD$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([dirfd.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_DIRFD
+m4trace:configure.ac:89: -1- m4_pattern_allow([^DIR_FD_MEMBER_NAME$])
+m4trace:configure.ac:89: -1- gl_DIRENT_MODULE_INDICATOR([dirfd])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([dirfd])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[dirfd]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([dirfd])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_DIRFD$])
+m4trace:configure.ac:89: -1- gl_DIRNAME
+m4trace:configure.ac:89: -1- gl_DIRNAME_LGPL
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([dirname])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DIRNAME$])
+m4trace:configure.ac:89: -1- gl_DIRNAME_LGPL
+m4trace:configure.ac:89: -1- gl_DOUBLE_SLASH_ROOT
+m4trace:configure.ac:89: -1- m4_pattern_allow([^DOUBLE_SLASH_IS_DISTINCT_ROOT$])
+m4trace:configure.ac:89: -1- gl_FUNC_DUP
+m4trace:configure.ac:89: -1- gl_TEST_FCHDIR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fchdir], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchdir"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([dup.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_DUP
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([dup])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([dup])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[dup]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([dup])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_DUP$])
+m4trace:configure.ac:89: -1- gl_FUNC_DUP2
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DUP2$])
+m4trace:configure.ac:89: -1- gl_TEST_FCHDIR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fchdir], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchdir"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([dup2.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_DUP2
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([dup2])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([dup2])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[dup2]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([dup2])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_DUP2$])
+m4trace:configure.ac:89: -1- gl_ENVIRON
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gt_CHECK_VAR_DECL([#if HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+ /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */
+ #include <stdlib.h>
+ ], [environ])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ENVIRON_DECL$])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([environ])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([environ])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[environ]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([environ])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_ENVIRON$])
+m4trace:configure.ac:89: -1- gl_HEADER_ERRNO_H
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS([errno.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([errno.h], [assume])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_ERRNO_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_ERRNO_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ERRNO_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_ERRNO_H_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_ERRNO_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_ERRNO_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_ERRNO_H_FALSE])
+m4trace:configure.ac:89: -1- gl_REPLACE_ERRNO_VALUE([EMULTIHOP])
+m4trace:configure.ac:89: -1- AC_COMPUTE_INT([gl_cv_header_errno_h_EMULTIHOP], [EMULTIHOP], [
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^EMULTIHOP_HIDDEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^EMULTIHOP_VALUE$])
+m4trace:configure.ac:89: -1- gl_REPLACE_ERRNO_VALUE([ENOLINK])
+m4trace:configure.ac:89: -1- AC_COMPUTE_INT([gl_cv_header_errno_h_ENOLINK], [ENOLINK], [
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ENOLINK_HIDDEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ENOLINK_VALUE$])
+m4trace:configure.ac:89: -1- gl_REPLACE_ERRNO_VALUE([EOVERFLOW])
+m4trace:configure.ac:89: -1- AC_COMPUTE_INT([gl_cv_header_errno_h_EOVERFLOW], [EOVERFLOW], [
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^EOVERFLOW_HIDDEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^EOVERFLOW_VALUE$])
+m4trace:configure.ac:89: -1- gl_ERROR
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([error.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_ERROR
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRERROR_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRERROR_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STRERROR_R_CHAR_P$])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=error:3:c-format])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=error_at_line:5:c-format])
+m4trace:configure.ac:89: -1- gl_FUNC_FCHDIR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fchdir], [_AC_CHECK_DECLS([fchdir])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FCHDIR$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fchdir.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_FCHDIR
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FCHDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_OPEN_DIRECTORY$])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([fchdir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([fchdir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[fchdir]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([fchdir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FCHDIR$])
+m4trace:configure.ac:89: -1- gl_FUNC_FCNTL
+m4trace:configure.ac:89: -1- gl_FCNTL_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FCNTL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_NONBLOCKING$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OPEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OPENAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FCNTL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OPENAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FCNTL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_OPEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_OPENAT$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fcntl], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fcntl"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_REPLACE_FCNTL
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fcntl], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fcntl"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_REPLACE_FCNTL
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fcntl], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fcntl"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FCNTL_DUPFD_BUGGY$])
+m4trace:configure.ac:89: -1- gl_REPLACE_FCNTL
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fcntl], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fcntl"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_TEST_FCHDIR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fchdir], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchdir"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_REPLACE_FCNTL
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fcntl], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fcntl"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fcntl.c])
+m4trace:configure.ac:89: -1- gl_FCNTL_MODULE_INDICATOR([fcntl])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([fcntl])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[fcntl]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([fcntl])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FCNTL$])
+m4trace:configure.ac:89: -1- gl_FCNTL_H
+m4trace:configure.ac:89: -1- gl_FCNTL_O_FLAGS
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_symlink], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" symlink"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WORKING_O_NOATIME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WORKING_O_NOFOLLOW$])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS([fcntl.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([fcntl.h], [assume])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_FCNTL_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_FCNTL_H$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[#include <fcntl.h>
+ ]], [fcntl openat])
+m4trace:configure.ac:89: -1- gl_FUNC_FDOPENDIR
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FDOPENDIR$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fdopendir], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fdopendir"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fdopendir.c])
+m4trace:configure.ac:89: -1- gl_DIRENT_MODULE_INDICATOR([fdopendir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([fdopendir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[fdopendir]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([fdopendir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FDOPENDIR$])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([fdopendir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FDOPENDIR$])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([fdutimensat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FDUTIMENSAT$])
+m4trace:configure.ac:89: -1- gl_FILEBLOCKS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BLOCKS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ST_BLOCKS$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fileblocks.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_FILEBLOCKS
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_param_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/param.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_FILE_NAME_CONCAT_LGPL
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mempcpy], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mempcpy"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_FLOAT_H
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS([float.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([float.h], [assume])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_FLOAT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_FLOAT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FLOAT_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_FLOAT_H_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_FLOAT_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_FLOAT_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_FLOAT_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_ITOLD$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([float.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([itold.c])
+m4trace:configure.ac:89: -1- gl_FUNC_FNMATCH_POSIX
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FNMATCH_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_FNMATCH_H_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_FNMATCH_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_FNMATCH_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_FNMATCH_H_FALSE])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fnmatch.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_FNMATCH
+m4trace:configure.ac:89: -1- m4_pattern_allow([^fnmatch$])
+m4trace:configure.ac:89: -1- AC_TYPE_MBSTATE_T
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBSTATE_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^mbstate_t$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_ISBLANK$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_btowc], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" btowc"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_isblank], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" isblank"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_iswctype], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" iswctype"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbsrtowcs], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbsrtowcs"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mempcpy], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mempcpy"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_wmemchr], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" wmemchr"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_wmemcpy], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" wmemcpy"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_wmempcpy], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" wmempcpy"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_wctype_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" wctype.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_FUNC_FNMATCH_GNU
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fnmatch.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_FNMATCH
+m4trace:configure.ac:89: -1- m4_pattern_allow([^fnmatch$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_ISBLANK$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_btowc], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" btowc"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_isblank], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" isblank"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_iswctype], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" iswctype"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbsrtowcs], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbsrtowcs"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mempcpy], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mempcpy"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_wmemchr], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" wmemchr"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_wmemcpy], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" wmemcpy"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_wmempcpy], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" wmempcpy"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_wctype_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" wctype.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_FUNC_FPENDING
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_stdio_ext_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" stdio_ext.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func___fpending], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" __fpending"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL___FPENDING$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fpending.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_FPENDING
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PENDING_OUTPUT_N_BYTES$])
+m4trace:configure.ac:89: -1- gl_FUNC_FSEEK
+m4trace:configure.ac:89: -1- gl_STDIO_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FCLOSE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FDOPEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FFLUSH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FGETC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FGETS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FOPEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FPRINTF_POSIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FPURGE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FPUTC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FPUTS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FREAD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FREOPEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSCANF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSEEK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSEEKO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FTELL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FTELLO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FWRITE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETCHAR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETDELIM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETLINE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OBSTACK_PRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OBSTACK_PRINTF_POSIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PCLOSE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PERROR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_POPEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PRINTF_POSIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PUTC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PUTCHAR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PUTS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_REMOVE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RENAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RENAMEAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SCANF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SNPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SPRINTF_POSIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STDIO_H_NONBLOCKING$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STDIO_H_SIGPIPE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TMPFILE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VASPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VFSCANF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VSCANF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VDPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VFPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VFPRINTF_POSIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VPRINTF_POSIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VSNPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VSPRINTF_POSIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FPURGE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FSEEKO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FTELLO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETDELIM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETLINE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_OBSTACK_PRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SNPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_VSNPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FSEEKO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FTELLO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PCLOSE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_POPEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RENAMEAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_VASPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_VDPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_DPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FCLOSE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FDOPEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FFLUSH$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FOPEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FPURGE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FREOPEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FSEEK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FSEEKO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FTELL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FTELLO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETDELIM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETLINE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_OBSTACK_PRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PERROR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_POPEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_REMOVE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_RENAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_RENAMEAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_SNPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_SPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STDIO_READ_FUNCS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STDIO_WRITE_FUNCS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_TMPFILE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VASPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VDPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VFPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VSNPRINTF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VSPRINTF$])
+m4trace:configure.ac:89: -1- gl_FUNC_FSEEKO
+m4trace:configure.ac:89: -1- gl_STDIN_LARGE_OFFSET
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fseeko], [_AC_CHECK_DECLS([fseeko])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FSEEKO$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fseek.c])
+m4trace:configure.ac:89: -1- gl_STDIO_MODULE_INDICATOR([fseek])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([fseek])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[fseek]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([fseek])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FSEEK$])
+m4trace:configure.ac:89: -1- gl_FUNC_FSEEKO
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fseeko], [_AC_CHECK_DECLS([fseeko])])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fseeko.c])
+m4trace:configure.ac:89: -1- gl_STDIO_MODULE_INDICATOR([fseeko])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([fseeko])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[fseeko]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([fseeko])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FSEEKO$])
+m4trace:configure.ac:89: -1- gl_FUNC_FSTAT
+m4trace:configure.ac:89: -1- gl_SYS_STAT_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FCHMODAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSTAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSTATAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FUTIMENS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LCHMOD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LSTAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKDIRAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKFIFO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKFIFOAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKNOD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKNODAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UTIMENSAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FCHMODAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FSTATAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FUTIMENS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LCHMOD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LSTAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKDIRAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKFIFO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKFIFOAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKNOD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKNODAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UTIMENSAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FSTAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FSTATAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FUTIMENS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LSTAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MKDIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MKFIFO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MKNOD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_UTIMENSAT$])
+m4trace:configure.ac:89: -1- gl_TEST_FCHDIR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fchdir], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchdir"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fstat.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_FSTAT
+m4trace:configure.ac:89: -1- gl_SYS_STAT_MODULE_INDICATOR([fstat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([fstat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[fstat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([fstat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FSTAT$])
+m4trace:configure.ac:89: -1- gl_FUNC_FSTATAT
+m4trace:configure.ac:89: -1- gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LSTAT_FOLLOWS_SLASHED_SYMLINK$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fstatat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fstatat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WORKING_FSTATAT_ZERO_FLAG$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([fstatat.c])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([fstatat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSTATAT$])
+m4trace:configure.ac:89: -1- gl_SYS_STAT_MODULE_INDICATOR([fstatat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([fstatat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[fstatat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([fstatat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FSTATAT$])
+m4trace:configure.ac:89: -1- gl_FUNC_FUTIMENS
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_futimens], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" futimens"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([futimens.c])
+m4trace:configure.ac:89: -1- gl_SYS_STAT_MODULE_INDICATOR([futimens])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([futimens])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[futimens]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([futimens])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FUTIMENS$])
+m4trace:configure.ac:89: -1- gl_FUNC_GETCWD
+m4trace:configure.ac:89: -1- gl_FUNC_GETCWD_NULL
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_FUNC_GETCWD_SIGNATURE
+m4trace:configure.ac:89: -1- gl_FUNC_GETCWD_PATH_MAX
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_getcwd], [_AC_CHECK_DECLS([getcwd])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETCWD$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_PATHMAX_SNIPPET
+m4trace:configure.ac:89: -1- gl_FUNC_GETCWD_ABORT_BUG([gl_abort_bug=yes])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_getcwd], [_AC_CHECK_DECLS([getcwd])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- gl_PATHMAX_SNIPPET
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MINIMALLY_WORKING_GETCWD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PARTLY_WORKING_GETCWD$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([getcwd.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_GETCWD
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([getcwd])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETCWD$])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([getcwd])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([getcwd])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[getcwd]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([getcwd])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETCWD$])
+m4trace:configure.ac:89: -1- gl_FUNC_GETCWD_LGPL
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([getcwd-lgpl.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([getcwd])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([getcwd])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[getcwd]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([getcwd])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETCWD$])
+m4trace:configure.ac:89: -1- gl_FUNC_GETDELIM
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_getdelim], [_AC_CHECK_DECLS([getdelim])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETDELIM$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_getdelim], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" getdelim"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([getdelim.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_GETDELIM
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETC_UNLOCKED$])
+m4trace:configure.ac:89: -1- gl_STDIO_MODULE_INDICATOR([getdelim])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([getdelim])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[getdelim]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([getdelim])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETDELIM$])
+m4trace:configure.ac:89: -1- gl_FUNC_GETDTABLESIZE
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_getdtablesize], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" getdtablesize"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([getdtablesize.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_GETDTABLESIZE
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([getdtablesize])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([getdtablesize])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[getdtablesize]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([getdtablesize])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETDTABLESIZE$])
+m4trace:configure.ac:89: -1- gl_FUNC_GETLINE
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_getline], [_AC_CHECK_DECLS([getline])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETLINE$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([getline.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_GETLINE
+m4trace:configure.ac:89: -1- gl_STDIO_MODULE_INDICATOR([getline])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([getline])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[getline]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([getline])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETLINE$])
+m4trace:configure.ac:89: -1- gl_FUNC_GETOPT_GNU
+m4trace:configure.ac:89: -1- gl_FUNC_GETOPT_POSIX
+m4trace:configure.ac:89: -1- gl_GETOPT_IFELSE([], [])
+m4trace:configure.ac:89: -1- gl_GETOPT_CHECK_HEADERS
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([getopt.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([getopt.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_getopt_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" getopt.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_GETOPT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_GETOPT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETOPT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETOPT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETOPT_LONG_ONLY$])
+m4trace:configure.ac:89: -1- GL_NOCRASH
+m4trace:configure.ac:89: -1- gl_GETOPT_SUBSTITUTE_HEADER
+m4trace:configure.ac:89: -1- m4_pattern_allow([^__GETOPT_PREFIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GETOPT_H$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([getopt.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([getopt1.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_GETOPT
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_getenv], [_AC_CHECK_DECLS([getenv])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GL_UNISTD_H_GETOPT$])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETOPT_GNU$])
+m4trace:configure.ac:89: -1- gl_FUNC_GETOPT_POSIX
+m4trace:configure.ac:89: -1- gl_GETOPT_IFELSE([], [])
+m4trace:configure.ac:89: -1- gl_GETOPT_SUBSTITUTE_HEADER
+m4trace:configure.ac:89: -1- m4_pattern_allow([^__GETOPT_PREFIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GETOPT_H$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([getopt.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([getopt1.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_GETOPT
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_getenv], [_AC_CHECK_DECLS([getenv])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GL_UNISTD_H_GETOPT$])
+m4trace:configure.ac:89: -1- gl_FUNC_GETPAGESIZE
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OS_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_PARAM_H$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([getpagesize.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([getpagesize])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([getpagesize])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[getpagesize]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([getpagesize])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- AM_GNU_GETTEXT_VERSION([0.18.1])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBINTL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LTLIBINTL$])
+m4trace:configure.ac:89: -1- gl_GETTIME
+m4trace:configure.ac:89: -1- gl_TIMESPEC
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_gettimeofday], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" gettimeofday"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_nanotime], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" nanotime"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_FUNC_GETTIMEOFDAY
+m4trace:configure.ac:89: -1- gl_HEADER_SYS_TIME_H
+m4trace:configure.ac:89: -1- gl_HEADER_SYS_TIME_H_BODY
+m4trace:configure.ac:89: -1- gl_HEADER_SYS_TIME_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETTIMEOFDAY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETTIMEOFDAY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_TIMEVAL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_TIME_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETTIMEOFDAY$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_time_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/time.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([sys/time.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([sys/time.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_time_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/time.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_SYS_TIME_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H$])
+m4trace:configure.ac:89: -1- gl_PREREQ_SYS_H_WINSOCK2
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_socket_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/socket.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[
+#if HAVE_SYS_TIME_H
+# include <sys/time.h>
+#endif
+#include <time.h>
+ ]], [gettimeofday])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_gettimeofday], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" gettimeofday"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_FUNC_GETTIMEOFDAY_CLOBBER
+m4trace:configure.ac:89: -1- gl_GETTIMEOFDAY_REPLACE_LOCALTIME
+m4trace:configure.ac:89: -1- m4_pattern_allow([^gmtime$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^localtime$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GETTIMEOFDAY_CLOBBERS_LOCALTIME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GETTIMEOFDAY_TIMEZONE$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([gettimeofday.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_GETTIMEOFDAY
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_TIMEB_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE__FTIME$])
+m4trace:configure.ac:89: -1- gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([gettimeofday])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[gettimeofday]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([gettimeofday])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETTIMEOFDAY$])
+m4trace:configure.ac:89: -1- gl_HUMAN
+m4trace:configure.ac:89: -1- gl_INLINE
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_INLINE$])
+m4trace:configure.ac:89: -1- gl_INTTOSTR
+m4trace:configure.ac:89: -1- gl_PREREQ_INTTOSTR
+m4trace:configure.ac:89: -1- gl_PREREQ_IMAXTOSTR
+m4trace:configure.ac:89: -1- gl_PREREQ_OFFTOSTR
+m4trace:configure.ac:89: -1- gl_PREREQ_UMAXTOSTR
+m4trace:configure.ac:89: -1- gl_PREREQ_UINTTOSTR
+m4trace:configure.ac:89: -1- gl_INTTYPES_H
+m4trace:configure.ac:89: -1- gl_INTTYPES_INCOMPLETE
+m4trace:configure.ac:89: -1- gl_STDINT_H
+m4trace:configure.ac:89: -1- AC_TYPE_LONG_LONG_INT
+m4trace:configure.ac:89: -1- AC_TYPE_UNSIGNED_LONG_LONG_INT
+m4trace:configure.ac:89: -1- _AC_TYPE_LONG_LONG_SNIPPET
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNSIGNED_LONG_LONG_INT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LONG_LONG_INT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LONG_LONG_INT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNSIGNED_LONG_LONG_INT$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_wchar_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" wchar.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCHAR_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_INTTYPES_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_TYPES_H$])
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([stdint.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([stdint.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_stdint_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" stdint.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDINT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STDINT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDINT_H$])
+m4trace:configure.ac:89: -1- gl_STDINT_INCLUDES
+m4trace:configure.ac:89: -1- gl_STDINT_INCLUDES
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_INTTYPES_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_BITYPES_H$])
+m4trace:configure.ac:89: -1- gl_STDINT_TYPE_PROPERTIES
+m4trace:configure.ac:89: -1- gl_MULTIARCH
+m4trace:configure.ac:89: -1- m4_pattern_allow([^APPLE_UNIVERSAL_BUILD$])
+m4trace:configure.ac:89: -1- gl_STDINT_BITSIZEOF([ptrdiff_t size_t], [gl_STDINT_INCLUDES])
+m4trace:configure.ac:89: -1- AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT], [gl_STDINT_INCLUDES
+#include <limits.h>], [result=unknown])
+m4trace:configure.ac:89: -1- gl_STDINT_INCLUDES
+m4trace:configure.ac:89: -1- m4_pattern_allow([^BITSIZEOF_PTRDIFF_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^BITSIZEOF_SIZE_T$])
+m4trace:configure.ac:89: -1- gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES])
+m4trace:configure.ac:89: -1- AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT], [gl_STDINT_INCLUDES
+#include <limits.h>], [result=unknown])
+m4trace:configure.ac:89: -1- gl_STDINT_INCLUDES
+m4trace:configure.ac:89: -1- m4_pattern_allow([^BITSIZEOF_SIG_ATOMIC_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^BITSIZEOF_WCHAR_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^BITSIZEOF_WINT_T$])
+m4trace:configure.ac:89: -1- gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES])
+m4trace:configure.ac:89: -1- gl_STDINT_INCLUDES
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGNED_SIG_ATOMIC_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGNED_WCHAR_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGNED_WINT_T$])
+m4trace:configure.ac:89: -1- gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t], [gl_STDINT_INCLUDES])
+m4trace:configure.ac:89: -1- gl_STDINT_INCLUDES
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PTRDIFF_T_SUFFIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^SIZE_T_SUFFIX$])
+m4trace:configure.ac:89: -1- gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t], [gl_STDINT_INCLUDES])
+m4trace:configure.ac:89: -1- gl_STDINT_INCLUDES
+m4trace:configure.ac:89: -1- m4_pattern_allow([^SIG_ATOMIC_T_SUFFIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^WCHAR_T_SUFFIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^WINT_T_SUFFIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDINT_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDINT_H_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDINT_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDINT_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDINT_H_FALSE])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_inttypes_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" inttypes.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_INTTYPES_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_IMAXABS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_IMAXDIV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOIMAX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOUMAX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_IMAXABS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_IMAXDIV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRTOIMAX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRTOUMAX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRTOIMAX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INT32_MAX_LT_INTMAX_MAX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INT64_MAX_EQ_LONG_MAX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRI_MACROS_BROKEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRIPTR_PREFIX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UINT32_MAX_LT_UINTMAX_MAX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UINT64_MAX_EQ_ULONG_MAX$])
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([inttypes.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([inttypes.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_inttypes_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" inttypes.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_INTTYPES_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[#include <inttypes.h>
+ ]], [imaxabs imaxdiv strtoimax strtoumax])
+m4trace:configure.ac:89: -1- gl_INTTYPES_PRI_SCN
+m4trace:configure.ac:89: -1- gt_INTTYPES_PRI
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_INTTYPES_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRI_MACROS_BROKEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRI_MACROS_BROKEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRIPTR_PREFIX$])
+m4trace:configure.ac:89: -1- 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)])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INT32_MAX_LT_INTMAX_MAX$])
+m4trace:configure.ac:89: -1- 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)])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INT64_MAX_EQ_LONG_MAX$])
+m4trace:configure.ac:89: -1- 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)])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UINT32_MAX_LT_UINTMAX_MAX$])
+m4trace:configure.ac:89: -1- 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)])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UINT64_MAX_EQ_ULONG_MAX$])
+m4trace:configure.ac:89: -1- gl_INTTYPES_INCOMPLETE
+m4trace:configure.ac:89: -1- gl_FUNC_ISWBLANK
+m4trace:configure.ac:89: -1- gl_WCTYPE_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ISWBLANK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCTYPE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ISWCTYPE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCTRANS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TOWCTRANS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ISWBLANK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCTYPE_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCTRANS_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_ISWBLANK$])
+m4trace:configure.ac:89: -1- gl_WCTYPE_H
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_iswcntrl], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" iswcntrl"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ISWCNTRL$])
+m4trace:configure.ac:89: -1- gt_TYPE_WINT_T
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINT_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINT_T$])
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([wctype.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([wctype.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_wctype_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" wctype.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_WCTYPE_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCTYPE_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_ISWCNTRL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TOWLOWER$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_TOWLOWER$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_TOWLOWER$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[
+/* 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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+ ]], [wctype iswctype wctrans towctrans
+ ])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_iswblank], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" iswblank"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_ISWBLANK$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([iswblank.c])
+m4trace:configure.ac:89: -1- gl_WCTYPE_MODULE_INDICATOR([iswblank])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([iswblank])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[iswblank]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([iswblank])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_ISWBLANK$])
+m4trace:configure.ac:89: -1- gl_LANGINFO_H
+m4trace:configure.ac:89: -1- gl_LANGINFO_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_NL_LANGINFO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_NL_LANGINFO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_NL_LANGINFO$])
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([langinfo.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([langinfo.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_langinfo_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" langinfo.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_LANGINFO_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_langinfo_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" langinfo.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_T_FMT_AMPM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_ERA$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_YESEXPR$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[#include <langinfo.h>
+ ]], [nl_langinfo])
+m4trace:configure.ac:89: -1- gl_FUNC_LCHOWN
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_lchmod], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" lchmod"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LCHOWN$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([lchown.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([lchown])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([lchown])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[lchown]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([lchown])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_LCHOWN$])
+m4trace:configure.ac:89: -1- gl_FUNC_LINK
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_link], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" link"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([link.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([link])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([link])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[link]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([link])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_LINK$])
+m4trace:configure.ac:89: -1- gl_FUNC_LINK_FOLLOWS_SYMLINK
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_readlink], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" readlink"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LINK_FOLLOWS_SYMLINKS$])
+m4trace:configure.ac:89: -1- gl_FUNC_LINKAT
+m4trace:configure.ac:89: -1- gl_FUNC_OPENAT
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_openat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" openat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_linkat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" linkat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_symlink], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" symlink"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_param_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/param.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LINKAT_TRAILING_SLASH_BUG$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([linkat.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([at-func2.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([linkat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([linkat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[linkat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([linkat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_LINKAT$])
+m4trace:configure.ac:89: -1- gl_LOCALCHARSET
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_getc_unlocked], [_AC_CHECK_DECLS([getc_unlocked])])
+m4trace:configure.ac:89: -1- gl_GLIBC21
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GLIBC21$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LOCALCHARSET_TESTS_ENVIRONMENT$])
+m4trace:configure.ac:89: -1- gl_FUNC_LSEEK
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LSEEK_PIPE_BROKEN$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([lseek.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([lseek])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([lseek])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[lseek]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([lseek])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_LSEEK$])
+m4trace:configure.ac:89: -1- gl_FUNC_LSTAT
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_lstat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" lstat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([lstat.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_LSTAT
+m4trace:configure.ac:89: -1- gl_SYS_STAT_MODULE_INDICATOR([lstat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([lstat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[lstat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([lstat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_LSTAT$])
+m4trace:configure.ac:89: -1- gl_FUNC_MALLOC_GNU
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MALLOC_GNU$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MALLOC_GNU$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([malloc.c])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([malloc-gnu])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MALLOC_GNU$])
+m4trace:configure.ac:89: -1- gl_FUNC_MALLOC_POSIX
+m4trace:configure.ac:89: -1- gl_CHECK_MALLOC_POSIX
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MALLOC_POSIX$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([malloc.c])
+m4trace:configure.ac:89: -1- gl_STDLIB_MODULE_INDICATOR([malloc-posix])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([malloc-posix])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[malloc-posix]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([malloc-posix])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MALLOC_POSIX$])
+m4trace:configure.ac:89: -1- gl_MALLOCA
+m4trace:configure.ac:89: -1- gl_EEMALLOC
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MALLOC_0_IS_NONNULL$])
+m4trace:configure.ac:89: -1- gl_MBCHAR
+m4trace:configure.ac:89: -1- gl_FUNC_MBRTOWC
+m4trace:configure.ac:89: -1- gl_MBSTATE_T_BROKEN
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbsinit], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbsinit"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbrtowc], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbrtowc"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_MBRTOWC_INCOMPLETE_STATE
+m4trace:configure.ac:89: -1- gt_LOCALE_JA
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LOCALE_JA$])
+m4trace:configure.ac:89: -1- gl_MBRTOWC_SANITYCHECK
+m4trace:configure.ac:89: -1- gt_LOCALE_ZH_CN
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LOCALE_ZH_CN$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbrtowc], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbrtowc"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MBRTOWC$])
+m4trace:configure.ac:89: -1- gl_MBRTOWC_NULL_ARG1
+m4trace:configure.ac:89: -1- gt_LOCALE_FR_UTF8
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LOCALE_FR_UTF8$])
+m4trace:configure.ac:89: -1- gl_MBRTOWC_NULL_ARG2
+m4trace:configure.ac:89: -1- gl_MBRTOWC_RETVAL
+m4trace:configure.ac:89: -1- gl_MBRTOWC_NUL_RETVAL
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MBRTOWC_NULL_ARG1_BUG$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MBRTOWC_NULL_ARG2_BUG$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MBRTOWC_RETVAL_BUG$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MBRTOWC_NUL_RETVAL_BUG$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mbrtowc.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_MBRTOWC
+m4trace:configure.ac:89: -1- gl_WCHAR_MODULE_INDICATOR([mbrtowc])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mbrtowc])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mbrtowc]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mbrtowc])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MBRTOWC$])
+m4trace:configure.ac:89: -1- gl_STRING_MODULE_INDICATOR([mbscasecmp])
+m4trace:configure.ac:89: -1- gl_HEADER_STRING_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FFSL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FFSLL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MEMCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MEMMEM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MEMPCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MEMRCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RAWMEMCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STPCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STPNCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRCHRNUL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRDUP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRNCAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRNDUP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRNLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRPBRK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRSEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRSTR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRCASESTR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOK_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSNLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSRCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSSTR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSCASECMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSNCASECMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSPCASECMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSCASESTR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSCSPN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSPBRK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSSPN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSSEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSTOK_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRERROR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRERROR_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRSIGNAL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRVERSCMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBSLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FFSL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FFSLL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MEMCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MEMMEM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MEMPCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MEMRCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RAWMEMCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STPCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STPNCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRCHRNUL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRDUP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNDUP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRPBRK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRSEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRCASESTR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRTOK_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRERROR_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRSIGNAL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRVERSCMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MEMCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MEMMEM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STPNCPY$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRDUP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRSTR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRCASESTR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRCHRNUL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRERROR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRERROR_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRNCAT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRNDUP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRNLEN$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRSIGNAL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRTOK_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UNDEFINE_STRTOK_R$])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mbscasecmp])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mbscasecmp]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mbscasecmp])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MBSCASECMP$])
+m4trace:configure.ac:89: -1- gl_FUNC_MBSINIT
+m4trace:configure.ac:89: -1- gl_MBSTATE_T_BROKEN
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbsinit], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbsinit"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbrtowc], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbrtowc"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_MBRTOWC_INCOMPLETE_STATE
+m4trace:configure.ac:89: -1- gl_MBRTOWC_SANITYCHECK
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbsinit], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbsinit"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MBSINIT$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mbsinit.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_MBSINIT
+m4trace:configure.ac:89: -1- gl_WCHAR_MODULE_INDICATOR([mbsinit])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mbsinit])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mbsinit]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mbsinit])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MBSINIT$])
+m4trace:configure.ac:89: -1- gl_FUNC_MBSRTOWCS
+m4trace:configure.ac:89: -1- gl_MBSTATE_T_BROKEN
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbsinit], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbsinit"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbrtowc], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbrtowc"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_MBRTOWC_INCOMPLETE_STATE
+m4trace:configure.ac:89: -1- gl_MBRTOWC_SANITYCHECK
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbsrtowcs], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbsrtowcs"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MBSRTOWCS$])
+m4trace:configure.ac:89: -1- gl_MBSRTOWCS_WORKS
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mbsrtowcs.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mbsrtowcs-state.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_MBSRTOWCS
+m4trace:configure.ac:89: -1- gl_WCHAR_MODULE_INDICATOR([mbsrtowcs])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mbsrtowcs])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mbsrtowcs]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mbsrtowcs])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MBSRTOWCS$])
+m4trace:configure.ac:89: -1- gl_FUNC_MBTOWC
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mbtowc.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_MBTOWC
+m4trace:configure.ac:89: -1- gl_STDLIB_MODULE_INDICATOR([mbtowc])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mbtowc])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mbtowc]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mbtowc])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MBTOWC$])
+m4trace:configure.ac:89: -1- gl_MBITER
+m4trace:configure.ac:89: -1- gl_FUNC_MEMCHR
+m4trace:configure.ac:89: -1- gl_FUNC_MMAP_ANON
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MAP_ANONYMOUS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MAP_ANONYMOUS$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_mman_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/mman.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mprotect], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mprotect"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([memchr.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_MEMCHR
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_BP_SYM_H$])
+m4trace:configure.ac:89: -1- gl_STRING_MODULE_INDICATOR([memchr])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([memchr])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[memchr]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([memchr])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MEMCHR$])
+m4trace:configure.ac:89: -1- gl_FUNC_MEMPCPY
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MEMPCPY$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mempcpy.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_MEMPCPY
+m4trace:configure.ac:89: -1- gl_STRING_MODULE_INDICATOR([mempcpy])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mempcpy])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mempcpy]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mempcpy])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MEMPCPY$])
+m4trace:configure.ac:89: -1- gl_FUNC_MEMRCHR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_memrchr], [_AC_CHECK_DECLS([memrchr])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MEMRCHR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MEMRCHR$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([memrchr.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_MEMRCHR
+m4trace:configure.ac:89: -1- gl_STRING_MODULE_INDICATOR([memrchr])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([memrchr])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[memrchr]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([memrchr])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MEMRCHR$])
+m4trace:configure.ac:89: -1- gl_FUNC_MKDTEMP
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKDTEMP$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mkdtemp.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_MKDTEMP
+m4trace:configure.ac:89: -1- gl_STDLIB_MODULE_INDICATOR([mkdtemp])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mkdtemp])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mkdtemp]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mkdtemp])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKDTEMP$])
+m4trace:configure.ac:89: -1- gl_FUNC_MKFIFO
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mkfifo], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mkfifo"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_lstat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" lstat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MKFIFO_TRAILING_SLASH_BUG$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mkfifo.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([mkfifo])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mkfifo])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mkfifo]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mkfifo])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKFIFO$])
+m4trace:configure.ac:89: -1- gl_FUNC_MKFIFOAT
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mkfifoat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mkfifoat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mknodat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mknodat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mkfifoat.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mknodat.c])
+m4trace:configure.ac:89: -1- gl_SYS_STAT_MODULE_INDICATOR([mkfifoat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mkfifoat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mkfifoat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mkfifoat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKFIFOAT$])
+m4trace:configure.ac:89: -1- gl_SYS_STAT_MODULE_INDICATOR([mknodat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mknodat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mknodat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mknodat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKNODAT$])
+m4trace:configure.ac:89: -1- gl_FUNC_MKNOD
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mknod], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mknod"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MKNOD_FIFO_BUG$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mknod.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([mknod])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mknod])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mknod]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mknod])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKNOD$])
+m4trace:configure.ac:89: -1- gl_FUNC_MKTIME
+m4trace:configure.ac:89: -1- gl_HEADER_TIME_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKTIME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_NANOSLEEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRPTIME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TIMEGM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TIME_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_LOCALTIME_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_NANOSLEEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRPTIME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TIMEGM$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LOCALTIME_R$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MKTIME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_NANOSLEEP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_TIMEGM$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_alarm], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" alarm"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([mktime.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_MKTIME
+m4trace:configure.ac:89: -1- gl_TIME_MODULE_INDICATOR([mktime])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([mktime])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[mktime]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([mktime])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKTIME$])
+m4trace:configure.ac:89: -1- gl_MODECHANGE
+m4trace:configure.ac:89: -1- gl_MSVC_INVAL
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func__set_invalid_parameter_handler], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" _set_invalid_parameter_handler"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MSVC_INVALID_PARAMETER_HANDLER$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MSVC_INVALID_PARAMETER_HANDLER$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([msvc-inval.c])
+m4trace:configure.ac:89: -1- gl_MSVC_NOTHROW
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([msvc-nothrow.c])
+m4trace:configure.ac:89: -1- gl_MULTIARCH
+m4trace:configure.ac:89: -1- gl_FUNC_NL_LANGINFO
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_nl_langinfo], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" nl_langinfo"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FUNC_NL_LANGINFO_YESEXPR_WORKS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_NL_LANGINFO$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([nl_langinfo.c])
+m4trace:configure.ac:89: -1- gl_LANGINFO_MODULE_INDICATOR([nl_langinfo])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([nl_langinfo])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[nl_langinfo]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([nl_langinfo])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_NL_LANGINFO$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OBSTACK$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([obstack.c])
+m4trace:configure.ac:89: -1- gl_FUNC_OPEN
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_lstat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" lstat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^OPEN_TRAILING_SLASH_BUG$])
+m4trace:configure.ac:89: -1- gl_TEST_FCHDIR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fchdir], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchdir"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([open.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_OPEN
+m4trace:configure.ac:89: -1- gl_PROMOTED_TYPE_MODE_T
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PROMOTED_MODE_T$])
+m4trace:configure.ac:89: -1- gl_FCNTL_MODULE_INDICATOR([open])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([open])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[open]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([open])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_OPEN$])
+m4trace:configure.ac:89: -1- gl_FUNC_OPENAT
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_openat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" openat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([openat.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_OPENAT
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([openat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OPENAT$])
+m4trace:configure.ac:89: -1- gl_FCNTL_MODULE_INDICATOR([openat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([openat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[openat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([openat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_OPENAT$])
+m4trace:configure.ac:89: -1- gl_FUNC_OPENDIR
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OPENDIR$])
+m4trace:configure.ac:89: -1- gl_TEST_FCHDIR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fchdir], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchdir"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([opendir.c])
+m4trace:configure.ac:89: -1- gl_DIRENT_MODULE_INDICATOR([opendir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([opendir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[opendir]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([opendir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_OPENDIR$])
+m4trace:configure.ac:89: -1- gl_PARSE_DATETIME
+m4trace:configure.ac:89: -1- AM_STDBOOL_H
+m4trace:configure.ac:89: -1- AC_CHECK_HEADER_STDBOOL
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE__BOOL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDBOOL_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDBOOL_H_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDBOOL_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDBOOL_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDBOOL_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE__BOOL$])
+m4trace:configure.ac:89: -1- gl_BISON
+m4trace:configure.ac:89: -1- m4_pattern_allow([^YACC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^YFLAGS$])
+m4trace:configure.ac:89: -1- gl_C_COMPOUND_LITERALS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_COMPOUND_LITERALS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^TM_IN_SYS_TIME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_TM_TM_ZONE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TM_ZONE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_TZNAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TZNAME$])
+m4trace:configure.ac:89: -1- gl_TM_GMTOFF
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TM_GMTOFF$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^TIME_T_FITS_IN_LONG_INT$])
+m4trace:configure.ac:89: -1- gl_PATHMAX
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_param_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/param.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_PRIV_SET
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETPPRIV$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_priv_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" priv.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PROGRAM_INVOCATION_NAME$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME$])
+m4trace:configure.ac:89: -1- gl_QUOTE
+m4trace:configure.ac:89: -1- gl_QUOTEARG
+m4trace:configure.ac:89: -1- gl_FUNC_RAISE
+m4trace:configure.ac:89: -1- gl_SIGNAL_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PTHREAD_SIGMASK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RAISE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SIGNAL_H_SIGPIPE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SIGPROCMASK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SIGACTION$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_POSIX_SIGNALBLOCKING$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PTHREAD_SIGMASK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RAISE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGSET_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGINFO_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGACTION$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_SIGACTION_SA_SIGACTION$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TYPE_VOLATILE_SIG_ATOMIC_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGHANDLER_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PTHREAD_SIGMASK$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_RAISE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RAISE$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([raise.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_RAISE
+m4trace:configure.ac:89: -1- gl_SIGNAL_MODULE_INDICATOR([raise])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([raise])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[raise]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([raise])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RAISE$])
+m4trace:configure.ac:89: -1- gl_FUNC_RAWMEMCHR
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RAWMEMCHR$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([rawmemchr.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_RAWMEMCHR
+m4trace:configure.ac:89: -1- gl_STRING_MODULE_INDICATOR([rawmemchr])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([rawmemchr])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[rawmemchr]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([rawmemchr])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RAWMEMCHR$])
+m4trace:configure.ac:89: -1- gl_FUNC_READ
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([read.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_READ
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([read])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([read])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[read]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([read])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_READ$])
+m4trace:configure.ac:89: -1- gl_FUNC_READDIR
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_READDIR$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([readdir.c])
+m4trace:configure.ac:89: -1- gl_DIRENT_MODULE_INDICATOR([readdir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([readdir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[readdir]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([readdir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_READDIR$])
+m4trace:configure.ac:89: -1- gl_FUNC_READLINK
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_readlink], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" readlink"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^READLINK_TRAILING_SLASH_BUG$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([readlink.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_READLINK
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([readlink])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([readlink])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[readlink]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([readlink])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_READLINK$])
+m4trace:configure.ac:89: -1- gl_FUNC_READLINKAT
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_readlinkat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" readlinkat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([readlinkat.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([readlinkat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([readlinkat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[readlinkat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([readlinkat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_READLINKAT$])
+m4trace:configure.ac:89: -1- gl_FUNC_REALLOC_POSIX
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_REALLOC_POSIX$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([realloc.c])
+m4trace:configure.ac:89: -1- gl_STDLIB_MODULE_INDICATOR([realloc-posix])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([realloc-posix])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[realloc-posix]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([realloc-posix])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_REALLOC_POSIX$])
+m4trace:configure.ac:89: -1- gl_REGEX
+m4trace:configure.ac:89: -1- m4_pattern_allow([^_REGEX_LARGE_OFFSETS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_syntax_options$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_set_syntax$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_compile_pattern$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_compile_fastmap$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_search$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_search_2$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_match$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_match_2$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_set_registers$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_comp$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_exec$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^regcomp$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^regexec$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^regerror$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^regfree$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([regex.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_REGEX
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LIBINTL_H$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_isblank], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" isblank"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_iswctype], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" iswctype"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_wcscoll], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" wcscoll"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_ISBLANK$])
+m4trace:configure.ac:89: -1- gl_FUNC_RENAME
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_lstat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" lstat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^RENAME_TRAILING_SLASH_DEST_BUG$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^RENAME_TRAILING_SLASH_SOURCE_BUG$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_link], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" link"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^RENAME_HARD_LINK_BUG$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^RENAME_DEST_EXISTS_BUG$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([rename.c])
+m4trace:configure.ac:89: -1- gl_STDIO_MODULE_INDICATOR([rename])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([rename])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[rename]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([rename])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RENAME$])
+m4trace:configure.ac:89: -1- gl_FUNC_RENAMEAT
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_renameat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" renameat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([renameat.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([at-func2.c])
+m4trace:configure.ac:89: -1- gl_STDIO_MODULE_INDICATOR([renameat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([renameat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[renameat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([renameat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RENAMEAT$])
+m4trace:configure.ac:89: -1- gl_FUNC_REWINDDIR
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_REWINDDIR$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([rewinddir.c])
+m4trace:configure.ac:89: -1- gl_DIRENT_MODULE_INDICATOR([rewinddir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([rewinddir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[rewinddir]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([rewinddir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_REWINDDIR$])
+m4trace:configure.ac:89: -1- gl_FUNC_RMDIR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([rmdir.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([rmdir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([rmdir])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[rmdir]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([rmdir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RMDIR$])
+m4trace:configure.ac:89: -1- gl_FUNC_RPMATCH
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RPMATCH$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([rpmatch.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_RPMATCH
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_YESEXPR$])
+m4trace:configure.ac:89: -1- gl_STDLIB_MODULE_INDICATOR([rpmatch])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([rpmatch])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[rpmatch]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([rpmatch])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RPMATCH$])
+m4trace:configure.ac:89: -1- gl_PREREQ_SAFE_READ
+m4trace:configure.ac:89: -1- gl_PREREQ_SAFE_WRITE
+m4trace:configure.ac:89: -1- gl_PREREQ_SAFE_READ
+m4trace:configure.ac:89: -1- gl_SAVE_CWD
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_fchdir], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchdir"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_SAVEDIR
+m4trace:configure.ac:89: -1- gl_FUNC_SETENV
+m4trace:configure.ac:89: -1- gl_FUNC_SETENV_SEPARATE
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_setenv], [_AC_CHECK_DECLS([setenv])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SETENV$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_setenv], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" setenv"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_PREREQ_SETENV
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SEARCH_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TSEARCH$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([setenv.c])
+m4trace:configure.ac:89: -1- gl_STDLIB_MODULE_INDICATOR([setenv])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([setenv])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[setenv]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([setenv])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_SETENV$])
+m4trace:configure.ac:89: -1- gl_SIGNAL_H
+m4trace:configure.ac:89: -1- gl_CHECK_TYPE_SIGSET_T
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGSET_T$])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS([signal.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([signal.h], [assume])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_SIGNAL_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[#include <signal.h>
+ ]], [pthread_sigmask sigaction
+ sigaddset sigdelset sigemptyset sigfillset sigismember
+ sigpending sigprocmask])
+m4trace:configure.ac:89: -1- gl_SIZE_MAX
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDINT_H$])
+m4trace:configure.ac:89: -1- AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1], [#include <stddef.h>
+#include <limits.h>], [size_t_bits_minus_1=])
+m4trace:configure.ac:89: -1- AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)], [#include <stddef.h>], [fits_in_uint=])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^SIZE_MAX$])
+m4trace:configure.ac:89: -1- gl_FUNC_SLEEP
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SLEEP$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_sleep], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" sleep"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([sleep.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([sleep])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([sleep])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[sleep]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([sleep])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_SLEEP$])
+m4trace:configure.ac:89: -1- gl_FUNC_SNPRINTF
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SNPRINTF$])
+m4trace:configure.ac:89: -1- gl_SNPRINTF_SIZE1
+m4trace:configure.ac:89: -1- gl_SNPRINTF_PRESENCE
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_snprintf], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" snprintf"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_SNPRINTF_RETVAL_C99
+m4trace:configure.ac:89: -1- gl_PRINTF_POSITIONS
+m4trace:configure.ac:89: -1- gl_REPLACE_SNPRINTF
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([snprintf.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_SNPRINTF
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_snprintf], [_AC_CHECK_DECLS([snprintf])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SNPRINTF$])
+m4trace:configure.ac:89: -1- gl_STDIO_MODULE_INDICATOR([snprintf])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([snprintf])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[snprintf]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([snprintf])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_SNPRINTF$])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([snprintf])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SNPRINTF$])
+m4trace:configure.ac:89: -1- gt_TYPE_SSIZE_T
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ssize_t$])
+m4trace:configure.ac:89: -1- gl_FUNC_STAT
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_lstat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" lstat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FUNC_STAT_DIR$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FUNC_STAT_FILE$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([stat.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_STAT
+m4trace:configure.ac:89: -1- gl_SYS_STAT_MODULE_INDICATOR([stat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([stat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[stat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([stat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STAT$])
+m4trace:configure.ac:89: -1- gl_STAT_TIME
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_time_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/time.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIMENSEC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC$])
+m4trace:configure.ac:89: -1- gl_STAT_BIRTHTIME
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_time_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/time.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC$])
+m4trace:configure.ac:89: -1- gl_STDALIGN_H
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDALIGN_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDALIGN_H], [test -n "$STDALIGN_H"])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDALIGN_H_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDALIGN_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDALIGN_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDALIGN_H_FALSE])
+m4trace:configure.ac:89: -1- gl_STDARG_H
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS([stdarg.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([stdarg.h], [assume])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDARG_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STDARG_H$])
+m4trace:configure.ac:89: -1- gl_CACHE_VAL_SILENT([gl_cv_func___va_copy], [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdarg.h>]],
+ [[
+#ifndef __va_copy
+error, bail out
+#endif
+ ]])],
+ [gl_cv_func___va_copy=yes],
+ [gl_cv_func___va_copy=no])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^va_copy$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^va_copy$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDARG_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDARG_H], [test -n "$STDARG_H"])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDARG_H_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDARG_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDARG_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDARG_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDARG_H$])
+m4trace:configure.ac:89: -1- AM_STDBOOL_H
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDBOOL_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDBOOL_H_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDBOOL_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDBOOL_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDBOOL_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE__BOOL$])
+m4trace:configure.ac:89: -1- gl_STDDEF_H
+m4trace:configure.ac:89: -1- gl_STDDEF_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_NULL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCHAR_T$])
+m4trace:configure.ac:89: -1- gt_TYPE_WCHAR_T
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCHAR_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDDEF_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDDEF_H_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDDEF_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDDEF_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDDEF_H_FALSE])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS([stddef.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([stddef.h], [assume])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDDEF_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STDDEF_H$])
+m4trace:configure.ac:89: -1- gl_STDINT_H
+m4trace:configure.ac:89: -1- gl_STDIO_H
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS([stdio.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([stdio.h], [assume])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDIO_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STDIO_H$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[#include <stdio.h>
+ ]], [dprintf fpurge fseeko ftello getdelim getline pclose popen renameat
+ snprintf tmpfile vdprintf vsnprintf])
+m4trace:configure.ac:89: -1- gl_STDLIB_H
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS([stdlib.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([stdlib.h], [assume])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDLIB_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STDLIB_H$])
+m4trace:configure.ac:89: -1- 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
+ ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt
+ initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps
+ posix_openpt ptsname ptsname_r random random_r realpath rpmatch
+ setenv setstate setstate_r srandom srandom_r
+ strtod strtoll strtoull unlockpt unsetenv])
+m4trace:configure.ac:89: -1- gl_FUNC_STPCPY
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STPCPY$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([stpcpy.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_STPCPY
+m4trace:configure.ac:89: -1- gl_STRING_MODULE_INDICATOR([stpcpy])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([stpcpy])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[stpcpy]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([stpcpy])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STPCPY$])
+m4trace:configure.ac:89: -1- gl_STRCASE
+m4trace:configure.ac:89: -1- gl_FUNC_STRCASECMP
+m4trace:configure.ac:89: -1- gl_HEADER_STRINGS_H_DEFAULTS
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FFS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FFS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRCASECMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNCASECMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRCASECMP$])
+m4trace:configure.ac:89: -1- gl_FUNC_STRNCASECMP
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRNCASECMP$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNCASECMP$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strcasecmp.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_STRCASECMP
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strncasecmp.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_STRNCASECMP
+m4trace:configure.ac:89: -1- gl_FUNC_STRCHRNUL
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRCHRNUL$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strchrnul.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_STRCHRNUL
+m4trace:configure.ac:89: -1- gl_STRING_MODULE_INDICATOR([strchrnul])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([strchrnul])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[strchrnul]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([strchrnul])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRCHRNUL$])
+m4trace:configure.ac:89: -1- gl_FUNC_STRDUP_POSIX
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_strdup], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" strdup"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_strdup], [_AC_CHECK_DECLS([strdup])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRDUP$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strdup.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_STRDUP
+m4trace:configure.ac:89: -1- gl_STRING_MODULE_INDICATOR([strdup])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([strdup])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[strdup]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([strdup])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRDUP$])
+m4trace:configure.ac:89: -1- gl_FUNC_STRERROR
+m4trace:configure.ac:89: -1- gl_FUNC_STRERROR_0
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRERROR_0$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strerror.c])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR([strerror])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRERROR$])
+m4trace:configure.ac:89: -1- gl_STRING_MODULE_INDICATOR([strerror])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([strerror])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[strerror]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([strerror])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRERROR$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strerror-override.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_SYS_H_WINSOCK2
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_socket_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/socket.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- gl_HEADER_STRING_H
+m4trace:configure.ac:89: -1- gl_HEADER_STRING_H_BODY
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS([string.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([string.h], [assume])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STRING_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STRING_H$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[#include <string.h>
+ ]], [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul
+ strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
+ strerror_r strsignal strverscmp])
+m4trace:configure.ac:89: -1- gl_HEADER_STRINGS_H
+m4trace:configure.ac:89: -1- gl_HEADER_STRINGS_H_BODY
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([strings.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([strings.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_strings_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" strings.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STRINGS_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STRINGS_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRINGS_H$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[
+ /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
+ <strings.h>. */
+ #include <sys/types.h>
+ #include <strings.h>
+ ]], [ffs strcasecmp strncasecmp])
+m4trace:configure.ac:89: -1- gl_FUNC_STRNDUP
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_strndup], [_AC_CHECK_DECLS([strndup])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNDUP$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_strndup], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" strndup"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strndup.c])
+m4trace:configure.ac:89: -1- gl_STRING_MODULE_INDICATOR([strndup])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([strndup])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[strndup]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([strndup])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRNDUP$])
+m4trace:configure.ac:89: -1- gl_FUNC_STRNLEN
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_strnlen], [_AC_CHECK_DECLS([strnlen])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNLEN$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strnlen.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_STRNLEN
+m4trace:configure.ac:89: -1- gl_STRING_MODULE_INDICATOR([strnlen])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([strnlen])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[strnlen]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([strnlen])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRNLEN$])
+m4trace:configure.ac:89: -1- gl_FUNC_STRTOL
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOL$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strtol.c])
+m4trace:configure.ac:89: -1- gl_FUNC_STRTOUL
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOUL$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strtoul.c])
+m4trace:configure.ac:89: -1- gl_FUNC_STRTOULL
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOULL$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strtoull.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_STRTOULL
+m4trace:configure.ac:89: -1- gl_STDLIB_MODULE_INDICATOR([strtoull])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([strtoull])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[strtoull]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([strtoull])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRTOULL$])
+m4trace:configure.ac:89: -1- gl_FUNC_STRTOUMAX
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_strtoumax], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" strtoumax"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_strtoumax], [_AC_CHECK_DECLS([strtoumax])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRTOUMAX$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([strtoumax.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_STRTOUMAX
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRTOULL$])
+m4trace:configure.ac:89: -1- gl_INTTYPES_MODULE_INDICATOR([strtoumax])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([strtoumax])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[strtoumax]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_FUNC_SYMLINK
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_symlink], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" symlink"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([symlink.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([symlink])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([symlink])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[symlink]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([symlink])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_SYMLINK$])
+m4trace:configure.ac:89: -1- gl_FUNC_SYMLINKAT
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_symlinkat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" symlinkat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([symlinkat.c])
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([symlinkat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([symlinkat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[symlinkat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([symlinkat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_SYMLINKAT$])
+m4trace:configure.ac:89: -1- gl_HEADER_SYS_STAT_H
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([sys/stat.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([sys/stat.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_stat_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/stat.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_SYS_STAT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^nlink_t$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[#include <sys/stat.h>
+ ]], [fchmodat fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat
+ mknod mknodat stat utimensat])
+m4trace:configure.ac:89: -1- AC_PROG_MKDIR_P
+m4trace:configure.ac:89: -1- gl_HEADER_SYS_TIME_H
+m4trace:configure.ac:89: -1- AC_PROG_MKDIR_P
+m4trace:configure.ac:89: -1- gl_SYS_TYPES_H
+m4trace:configure.ac:89: -1- gl_SYS_TYPES_H_DEFAULTS
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS([sys/types.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([sys/types.h], [assume])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_SYS_TYPES_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H$])
+m4trace:configure.ac:89: -1- AC_PROG_MKDIR_P
+m4trace:configure.ac:89: -1- gl_SYSEXITS
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sysexits_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sysexits.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([sysexits.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([sysexits.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sysexits_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sysexits.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_SYSEXITS_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYSEXITS_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^SYSEXITS_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_SYSEXITS_H], [test -n "$SYSEXITS_H"])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_SYSEXITS_H_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_SYSEXITS_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_SYSEXITS_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_SYSEXITS_H_FALSE])
+m4trace:configure.ac:89: -1- gl_FUNC_GEN_TEMPNAME
+m4trace:configure.ac:89: -1- gl_PREREQ_TEMPNAME
+m4trace:configure.ac:89: -1- gl_HEADER_TIME_H
+m4trace:configure.ac:89: -1- gl_HEADER_TIME_H_BODY
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS([time.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([time.h], [assume])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_TIME_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_TIME_H$])
+m4trace:configure.ac:89: -1- gl_CHECK_TYPE_STRUCT_TIMESPEC
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_time_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/time.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^TIME_H_DEFINES_STRUCT_TIMESPEC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PTHREAD_H_DEFINES_STRUCT_TIMESPEC$])
+m4trace:configure.ac:89: -1- gl_TIME_R
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_localtime_r], [_AC_CHECK_DECLS([localtime_r])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_LOCALTIME_R$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_localtime_r], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" localtime_r"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([time_r.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_TIME_R
+m4trace:configure.ac:89: -1- gl_TIME_MODULE_INDICATOR([time_r])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([time_r])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[time_r]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([time_r])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_TIME_R$])
+m4trace:configure.ac:89: -1- gl_TIMESPEC
+m4trace:configure.ac:89: -1- gl_UNISTD_H
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([unistd.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([unistd.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_UNISTD_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_UNISTD_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNISTD_H$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+/* Some systems declare various items in the wrong headers. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <fcntl.h>
+# include <stdio.h>
+# include <stdlib.h>
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# include <io.h>
+# endif
+#endif
+ ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat
+ fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups
+ gethostname getlogin getlogin_r getpagesize
+ getusershell setusershell endusershell
+ group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite
+ readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r
+ unlink unlinkat usleep])
+m4trace:configure.ac:89: -1- gl_UNISTD_SAFER
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_pipe], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" pipe"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBUNISTRING_LIBHEADER([0.9], [unitypes.h])
+m4trace:configure.ac:89: -1- gl_LIBUNISTRING_LIB_PREPARE
+m4trace:configure.ac:89: -1- gl_LIBUNISTRING_VERSION_CMP([0.9])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBUNISTRING_UNITYPES_H$])
+m4trace:configure.ac:89: -1- gl_LIBUNISTRING_LIBHEADER([0.9], [uniwidth.h])
+m4trace:configure.ac:89: -1- gl_LIBUNISTRING_VERSION_CMP([0.9])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBUNISTRING_UNIWIDTH_H$])
+m4trace:configure.ac:89: -1- gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/width])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH], [gl_LIBUNISTRING_VERSION_CMP([0.9.4])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE])
+m4trace:configure.ac:89: -1- gl_LIBUNISTRING_VERSION_CMP([0.9.4])
+m4trace:configure.ac:89: -1- gl_UNLINKDIR
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_priv_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" priv.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UNLINK_CANNOT_UNLINK_DIR$])
+m4trace:configure.ac:89: -1- gl_FUNC_GLIBC_UNLOCKED_IO
+m4trace:configure.ac:89: -1- m4_pattern_allow([^USE_UNLOCKED_IO$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_clearerr_unlocked], [_AC_CHECK_DECLS([clearerr_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_feof_unlocked], [_AC_CHECK_DECLS([feof_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_ferror_unlocked], [_AC_CHECK_DECLS([ferror_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fflush_unlocked], [_AC_CHECK_DECLS([fflush_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fgets_unlocked], [_AC_CHECK_DECLS([fgets_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fputc_unlocked], [_AC_CHECK_DECLS([fputc_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fputs_unlocked], [_AC_CHECK_DECLS([fputs_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fread_unlocked], [_AC_CHECK_DECLS([fread_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_fwrite_unlocked], [_AC_CHECK_DECLS([fwrite_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_getc_unlocked], [_AC_CHECK_DECLS([getc_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_getchar_unlocked], [_AC_CHECK_DECLS([getchar_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_putc_unlocked], [_AC_CHECK_DECLS([putc_unlocked])])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_putchar_unlocked], [_AC_CHECK_DECLS([putchar_unlocked])])
+m4trace:configure.ac:89: -1- gl_FUNC_UNSETENV
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_unsetenv], [_AC_CHECK_DECLS([unsetenv])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_UNSETENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNSETENV$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^VOID_UNSETENV$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([unsetenv.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_UNSETENV
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_unistd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" unistd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_STDLIB_MODULE_INDICATOR([unsetenv])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([unsetenv])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[unsetenv]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([unsetenv])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_UNSETENV$])
+m4trace:configure.ac:89: -1- gl_UTIMENS
+m4trace:configure.ac:89: -1- gl_FUNC_UTIMES
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WORKING_UTIMES$])
+m4trace:configure.ac:89: -1- gl_CHECK_TYPE_STRUCT_UTIMBUF
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_sys_time_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/time.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_utime_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" utime.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_UTIMBUF$])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_futimes], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" futimes"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_futimesat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" futimesat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_futimens], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" futimens"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_utimensat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" utimensat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_lutimes], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" lutimes"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FUTIMESAT_NULL_BUG$])
+m4trace:configure.ac:89: -1- gl_FUNC_UTIMENSAT
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_utimensat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" utimensat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([utimensat.c])
+m4trace:configure.ac:89: -1- gl_SYS_STAT_MODULE_INDICATOR([utimensat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([utimensat])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[utimensat]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([utimensat])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_UTIMENSAT$])
+m4trace:configure.ac:89: -1- gl_FUNC_VASNPRINTF
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_vasnprintf], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" vasnprintf"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_REPLACE_VASNPRINTF
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_vasnprintf], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" vasnprintf"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([vasnprintf.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([printf-args.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([printf-parse.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([asnprintf.c])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VASNPRINTF$])
+m4trace:configure.ac:89: -1- gl_PREREQ_PRINTF_ARGS
+m4trace:configure.ac:89: -1- gl_PREREQ_PRINTF_PARSE
+m4trace:configure.ac:89: -1- gl_FEATURES_H
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_features_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" features.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FEATURES_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ptrdiff_t$])
+m4trace:configure.ac:89: -1- gt_AC_TYPE_INTMAX_T
+m4trace:configure.ac:89: -1- gl_AC_HEADER_INTTYPES_H
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_INTTYPES_H_WITH_UINTMAX$])
+m4trace:configure.ac:89: -1- gl_AC_HEADER_STDINT_H
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDINT_H_WITH_UINTMAX$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_INTMAX_T$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^intmax_t$])
+m4trace:configure.ac:89: -1- gl_PREREQ_VASNPRINTF
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL__SNPRINTF$])
+m4trace:configure.ac:89: -1- gl_DOUBLE_EXPONENT_LOCATION
+m4trace:configure.ac:89: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^DBL_EXPBIT0_WORD$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^DBL_EXPBIT0_BIT$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SNPRINTF_RETVAL_C99$])
+m4trace:configure.ac:89: -1- gl_PREREQ_ASNPRINTF
+m4trace:configure.ac:89: -1- gl_FUNC_VASPRINTF
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_VASPRINTF$])
+m4trace:configure.ac:89: -1- gl_REPLACE_VASPRINTF
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([vasprintf.c])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([asprintf.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_VASPRINTF_H
+m4trace:configure.ac:89: -1- gl_PREREQ_VASPRINTF
+m4trace:configure.ac:89: -1- gl_PREREQ_ASPRINTF
+m4trace:configure.ac:89: -1- gl_STDIO_MODULE_INDICATOR([vasprintf])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([vasprintf])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[vasprintf]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([vasprintf])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_VASPRINTF$])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=asprintf:2:c-format])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=vasprintf:2:c-format])
+m4trace:configure.ac:89: -1- gl_VERSION_ETC
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PACKAGE_PACKAGER$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PACKAGE_PACKAGER_VERSION$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PACKAGE_PACKAGER_BUG_REPORTS$])
+m4trace:configure.ac:89: -1- gl_FUNC_VSNPRINTF
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_VSNPRINTF$])
+m4trace:configure.ac:89: -1- gl_SNPRINTF_SIZE1
+m4trace:configure.ac:89: -1- gl_SNPRINTF_RETVAL_C99
+m4trace:configure.ac:89: -1- gl_PRINTF_POSITIONS
+m4trace:configure.ac:89: -1- gl_REPLACE_VSNPRINTF
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([vsnprintf.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_VSNPRINTF
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Check_Decl_vsnprintf], [_AC_CHECK_DECLS([vsnprintf])])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_VSNPRINTF$])
+m4trace:configure.ac:89: -1- gl_STDIO_MODULE_INDICATOR([vsnprintf])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([vsnprintf])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[vsnprintf]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([vsnprintf])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_VSNPRINTF$])
+m4trace:configure.ac:89: -1- gl_WCHAR_H
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([wchar.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([wchar.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_wchar_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" wchar.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_WCHAR_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_WCHAR_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCHAR_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINT_T$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[
+/* 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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+#endif
+#include <wchar.h>
+ ]], [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb
+ wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset
+ wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp
+ wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr
+ wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth
+ ])
+m4trace:configure.ac:89: -1- gl_FUNC_WCRTOMB
+m4trace:configure.ac:89: -1- gl_MBSTATE_T_BROKEN
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbsinit], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbsinit"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_mbrtowc], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mbrtowc"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- gl_MBRTOWC_INCOMPLETE_STATE
+m4trace:configure.ac:89: -1- gl_MBRTOWC_SANITYCHECK
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_wcrtomb], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" wcrtomb"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_WCRTOMB$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([wcrtomb.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_WCRTOMB
+m4trace:configure.ac:89: -1- gl_WCHAR_MODULE_INDICATOR([wcrtomb])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([wcrtomb])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[wcrtomb]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([wcrtomb])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_WCRTOMB$])
+m4trace:configure.ac:89: -1- gl_WCTYPE_H
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_iswcntrl], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" iswcntrl"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ISWCNTRL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINT_T$])
+m4trace:configure.ac:89: -1- gl_CHECK_NEXT_HEADERS([wctype.h])
+m4trace:configure.ac:89: -1- gl_NEXT_HEADERS_INTERNAL([wctype.h], [check])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_wctype_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" wctype.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_WCTYPE_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCTYPE_H$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_ISWCNTRL$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TOWLOWER$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_TOWLOWER$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_TOWLOWER$])
+m4trace:configure.ac:89: -1- gl_WARN_ON_USE_PREPARE([[
+/* 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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+ ]], [wctype iswctype wctrans towctrans
+ ])
+m4trace:configure.ac:89: -1- gl_FUNC_WCWIDTH
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Header_wchar_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" wchar.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:89: -1- AC_DEFUN([_AC_Func_wcwidth], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" wcwidth"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_WCWIDTH$])
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([wcwidth.c])
+m4trace:configure.ac:89: -1- gl_WCHAR_MODULE_INDICATOR([wcwidth])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([wcwidth])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[wcwidth]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([wcwidth])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_WCWIDTH$])
+m4trace:configure.ac:89: -1- gl_FUNC_WRITE
+m4trace:configure.ac:89: -1- gl_LIBSOURCES([write.c])
+m4trace:configure.ac:89: -1- gl_PREREQ_WRITE
+m4trace:configure.ac:89: -1- gl_UNISTD_MODULE_INDICATOR([write])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE([write])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_SET_VARIABLE_AUX([GNULIB_[]m4_translit([[write]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])], [gl_MODULE_INDICATOR_CONDITION])
+m4trace:configure.ac:89: -1- gl_MODULE_INDICATOR_FOR_TESTS([write])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_WRITE$])
+m4trace:configure.ac:89: -1- gl_XALLOC
+m4trace:configure.ac:89: -1- gl_PREREQ_XALLOC
+m4trace:configure.ac:89: -1- gl_PREREQ_XMALLOC
+m4trace:configure.ac:89: -1- gl_XGETCWD
+m4trace:configure.ac:89: -1- gl_XSIZE
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDINT_H$])
+m4trace:configure.ac:89: -1- gl_XSTRNDUP
+m4trace:configure.ac:89: -1- gl_PREREQ_XSTRNDUP
+m4trace:configure.ac:89: -1- gl_XSTRTOL
+m4trace:configure.ac:89: -1- gl_XVASPRINTF
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=xasprintf:1:c-format])
+m4trace:configure.ac:89: -1- gl_COMMON
+m4trace:configure.ac:89: -1- m4_pattern_allow([^gltests_WITNESS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBGNU_LIBDEPS$])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBGNU_LTLIBDEPS$])
+m4trace:configure.ac:91: -1- tar_PAXUTILS
+m4trace:configure.ac:91: -1- PU_RMT
+m4trace:configure.ac:91: -1- m4_pattern_allow([^LIB_SETSOCKOPT$])
+m4trace:configure.ac:91: -1- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from...
+../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
+../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from...
+m4/rmt.m4:2: PU_RMT is expanded from...
+m4/paxutils.m4:3: tar_PAXUTILS is expanded from...
+configure.ac:91: the top level])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^PU_RMT_PROG$])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^HAVE_SYS_MTIO_H$])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^MTIO_CHECK_FIELD$])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^DEFAULT_RMT_DIR$])
+m4trace:configure.ac:91: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+m4/rmt.m4:2: PU_RMT is expanded from...
+m4/paxutils.m4:3: tar_PAXUTILS is expanded from...
+configure.ac:91: the top level])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^DEFAULT_RMT_COMMAND$])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^DEFAULT_RMT_COMMAND$])
+m4trace:configure.ac:91: -1- PU_RTAPELIB
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_net_errno_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" net/errno.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_sys_inet_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/inet.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_netdb_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" netdb.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- PU_SYSTEM
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_string_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" string.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_memory_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" memory.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_fcntl_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" fcntl.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_sys_wait_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/wait.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_sys_gentape_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/gentape.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_sys_tape_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/tape.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_sys_device_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/device.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_sys_param_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/param.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_sys_tprintf_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/tprintf.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_sys_mtio_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/mtio.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_sgtty_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sgtty.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_sys_io_trioctl_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" sys/io/trioctl.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_locale_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" locale.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_pwd_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" pwd.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Header_grp_h], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_header_list], [" grp.h"])])
+_AC_HEADERS_EXPANSION])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^HAVE_SYS_BUF_H$])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^TIME_WITH_SYS_TIME$])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BLKSIZE$])
+m4trace:configure.ac:91: -1- _m4_warn([obsolete], [The macro `AC_STRUCT_ST_BLKSIZE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/types.m4:965: AC_STRUCT_ST_BLKSIZE is expanded from...
+m4/system.m4:8: PU_SYSTEM is expanded from...
+m4/paxutils.m4:3: tar_PAXUTILS is expanded from...
+configure.ac:91: the top level])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BLKSIZE$])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^HAVE_ST_BLKSIZE$])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Func_lstat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" lstat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Func_mkfifo], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mkfifo"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:91: -1- AC_DEFUN([_AC_Func_setlocale], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" setlocale"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:93: -1- AC_DEFUN([_AC_Func_fchmod], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchmod"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:93: -1- AC_DEFUN([_AC_Func_fchown], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fchown"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:93: -1- AC_DEFUN([_AC_Func_fsync], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" fsync"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:93: -1- AC_DEFUN([_AC_Func_lstat], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" lstat"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:93: -1- AC_DEFUN([_AC_Func_mkfifo], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" mkfifo"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:93: -1- AC_DEFUN([_AC_Func_readlink], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" readlink"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:93: -1- AC_DEFUN([_AC_Func_symlink], [m4_divert_text([INIT_PREPARE], [AS_VAR_APPEND([ac_func_list], [" symlink"])])
+_AC_FUNCS_EXPANSION])
+m4trace:configure.ac:94: -1- m4_pattern_allow([^HAVE_DECL_GETGRGID$])
+m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_DECL_GETPWUID$])
+m4trace:configure.ac:96: -1- m4_pattern_allow([^HAVE_DECL_TIME$])
+m4trace:configure.ac:98: -1- m4_pattern_allow([^HAVE_WAITPID$])
+m4trace:configure.ac:98: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.ac:122: -1- m4_pattern_allow([^HAVE_NETDB_H$])
+m4trace:configure.ac:124: -1- m4_pattern_allow([^REMOTE_SHELL$])
+m4trace:configure.ac:128: -1- TAR_COMPR_PROGRAM([compress])
+m4trace:configure.ac:128: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:128: the top level])
+m4trace:configure.ac:128: -1- m4_pattern_allow([^COMPRESS_PROGRAM$])
+m4trace:configure.ac:129: -1- TAR_COMPR_PROGRAM([gzip])
+m4trace:configure.ac:129: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:129: the top level])
+m4trace:configure.ac:129: -1- m4_pattern_allow([^GZIP_PROGRAM$])
+m4trace:configure.ac:130: -1- TAR_COMPR_PROGRAM([bzip2])
+m4trace:configure.ac:130: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:130: the top level])
+m4trace:configure.ac:130: -1- m4_pattern_allow([^BZIP2_PROGRAM$])
+m4trace:configure.ac:131: -1- TAR_COMPR_PROGRAM([lzip])
+m4trace:configure.ac:131: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:131: the top level])
+m4trace:configure.ac:131: -1- m4_pattern_allow([^LZIP_PROGRAM$])
+m4trace:configure.ac:132: -1- TAR_COMPR_PROGRAM([lzma])
+m4trace:configure.ac:132: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:132: the top level])
+m4trace:configure.ac:132: -1- m4_pattern_allow([^LZMA_PROGRAM$])
+m4trace:configure.ac:133: -1- TAR_COMPR_PROGRAM([lzop])
+m4trace:configure.ac:133: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:133: the top level])
+m4trace:configure.ac:133: -1- m4_pattern_allow([^LZOP_PROGRAM$])
+m4trace:configure.ac:134: -1- TAR_COMPR_PROGRAM([xz])
+m4trace:configure.ac:134: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:134: the top level])
+m4trace:configure.ac:134: -1- m4_pattern_allow([^XZ_PROGRAM$])
+m4trace:configure.ac:138: -1- m4_pattern_allow([^DEFAULT_ARCHIVE_FORMAT$])
+m4trace:configure.ac:148: -1- m4_pattern_allow([^DEFAULT_ARCHIVE_FORMAT$])
+m4trace:configure.ac:154: -1- m4_pattern_allow([^DEFAULT_ARCHIVE$])
+m4trace:configure.ac:160: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me:${as_lineno-$LINENO}: WARNING: DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this system], [])
+m4trace:configure.ac:160: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me: WARNING: DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this system], [])
+m4trace:configure.ac:167: -1- m4_pattern_allow([^DENSITY_LETTER$])
+m4trace:configure.ac:180: -1- m4_pattern_allow([^DEVICE_PREFIX$])
+m4trace:configure.ac:185: -1- m4_pattern_allow([^DEFAULT_ARCHIVE$])
+m4trace:configure.ac:189: -1- m4_pattern_allow([^DEFAULT_BLOCKING$])
+m4trace:configure.ac:193: -1- m4_pattern_allow([^DEFAULT_BLOCKING$])
+m4trace:configure.ac:202: -1- m4_pattern_allow([^DEFAULT_QUOTING_STYLE$])
+m4trace:configure.ac:211: -1- m4_pattern_allow([^DEFAULT_QUOTING_STYLE$])
+m4trace:configure.ac:215: -1- AM_ICONV
+m4trace:configure.ac:215: -1- AM_ICONV_LINK
+m4trace:configure.ac:215: -1- AM_ICONV_LINKFLAGS_BODY
+m4trace:configure.ac:215: -1- AC_LIB_PREPARE_PREFIX
+m4trace:configure.ac:215: -1- AC_LIB_RPATH
+m4trace:configure.ac:215: -1- AC_LIB_PROG_LD
+m4trace:configure.ac:215: -1- AC_LIB_PROG_LD_GNU
+m4trace:configure.ac:215: -1- AC_LIB_LINKFLAGS_BODY([iconv])
+m4trace:configure.ac:215: -1- AC_LIB_PREPARE_MULTILIB
+m4trace:configure.ac:215: -1- AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+m4trace:configure.ac:215: -1- AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+m4trace:configure.ac:215: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:215: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:215: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:215: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:215: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:215: -1- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+m4trace:configure.ac:215: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:215: -1- m4_pattern_allow([^HAVE_ICONV$])
+m4trace:configure.ac:215: -1- m4_pattern_allow([^LIBICONV$])
+m4trace:configure.ac:215: -1- m4_pattern_allow([^LTLIBICONV$])
+m4trace:configure.ac:215: -1- m4_pattern_allow([^ICONV_CONST$])
+m4trace:configure.ac:216: -1- m4_pattern_allow([^HAVE_ICONV_H$])
+m4trace:configure.ac:218: -2- m4_pattern_allow([^iconv_t$])
+m4trace:configure.ac:227: -1- AM_GNU_GETTEXT([external], [need-formatstring-macros])
+m4trace:configure.ac:227: -1- AM_GNU_GETTEXT_NEED([need-formatstring-macros])
+m4trace:configure.ac:227: -1- AM_PO_SUBDIRS
+m4trace:configure.ac:227: -1- AM_NLS
+m4trace:configure.ac:227: -1- m4_pattern_allow([^USE_NLS$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^GETTEXT_MACRO_VERSION$])
+m4trace:configure.ac:227: -1- AM_PATH_PROG_WITH_TEST([MSGFMT], [msgfmt], [$ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], [:])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^MSGFMT$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^GMSGFMT$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^MSGFMT_015$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^GMSGFMT_015$])
+m4trace:configure.ac:227: -1- AM_PATH_PROG_WITH_TEST([XGETTEXT], [xgettext], [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], [:])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^XGETTEXT$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^XGETTEXT_015$])
+m4trace:configure.ac:227: -1- AM_PATH_PROG_WITH_TEST([MSGMERGE], [msgmerge], [$ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1], [:])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^MSGMERGE$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^XGETTEXT_EXTRA_OPTIONS$])
+m4trace:configure.ac:227: -1- gt_INTL_MACOSX
+m4trace:configure.ac:227: -1- m4_pattern_allow([^HAVE_CFPREFERENCESCOPYAPPVALUE$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^HAVE_CFLOCALECOPYCURRENT$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^INTL_MACOSX_LIBS$])
+m4trace:configure.ac:227: -1- AM_ICONV_LINK
+m4trace:configure.ac:227: -1- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+m4trace:configure.ac:227: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^HAVE_ICONV$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^LIBICONV$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^LTLIBICONV$])
+m4trace:configure.ac:227: -1- AC_LIB_LINKFLAGS_BODY([intl])
+m4trace:configure.ac:227: -1- AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+m4trace:configure.ac:227: -1- AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+m4trace:configure.ac:227: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:227: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:227: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:227: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:227: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^ENABLE_NLS$])
+m4trace:configure.ac:227: -1- AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+m4trace:configure.ac:227: -1- AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^HAVE_GETTEXT$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^HAVE_DCGETTEXT$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^INTLLIBS$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^LIBINTL$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^LTLIBINTL$])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^POSUB$])
+m4trace:configure.ac:228: -1- AM_GNU_GETTEXT_VERSION([0.16])
+m4trace:configure.ac:233: -1- AM_MISSING_PROG([AUTOM4TE], [autom4te])
+m4trace:configure.ac:233: -1- m4_pattern_allow([^AUTOM4TE$])
+m4trace:configure.ac:235: -1- m4_pattern_allow([^BACKUP_LIBEXEC_SCRIPTS$])
+m4trace:configure.ac:236: -1- m4_pattern_allow([^BACKUP_SBIN_SCRIPTS$])
+m4trace:configure.ac:238: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+configure.ac:238: the top level])
+m4trace:configure.ac:246: -1- m4_pattern_allow([^BACKUP_SED_COND$])
+m4trace:configure.ac:253: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments.
+You should run autoupdate.], [])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^LTLIBOBJS$])
+m4trace:configure.ac:253: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
+m4trace:configure.ac:253: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
+m4trace:configure.ac:253: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^gl_LIBOBJS$])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^gl_LTLIBOBJS$])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^gltests_LIBOBJS$])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^gltests_LTLIBOBJS$])
+m4trace:configure.ac:253: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"])
+m4trace:configure.ac:253: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS
diff --git a/autom4te.cache/traces.1 b/autom4te.cache/traces.1
new file mode 100644
index 00000000..4b0e7f91
--- /dev/null
+++ b/autom4te.cache/traces.1
@@ -0,0 +1,6021 @@
+m4trace:aclocal.m4:1031: -1- m4_include([m4/00gnulib.m4])
+m4trace:aclocal.m4:1032: -1- m4_include([m4/alloca.m4])
+m4trace:aclocal.m4:1033: -1- m4_include([m4/argp.m4])
+m4trace:aclocal.m4:1034: -1- m4_include([m4/backupfile.m4])
+m4trace:aclocal.m4:1035: -1- m4_include([m4/bison.m4])
+m4trace:aclocal.m4:1036: -1- m4_include([m4/btowc.m4])
+m4trace:aclocal.m4:1037: -1- m4_include([m4/canonicalize.m4])
+m4trace:aclocal.m4:1038: -1- m4_include([m4/chdir-long.m4])
+m4trace:aclocal.m4:1039: -1- m4_include([m4/chown.m4])
+m4trace:aclocal.m4:1040: -1- m4_include([m4/clock_time.m4])
+m4trace:aclocal.m4:1041: -1- m4_include([m4/close-stream.m4])
+m4trace:aclocal.m4:1042: -1- m4_include([m4/close.m4])
+m4trace:aclocal.m4:1043: -1- m4_include([m4/closedir.m4])
+m4trace:aclocal.m4:1044: -1- m4_include([m4/closeout.m4])
+m4trace:aclocal.m4:1045: -1- m4_include([m4/codeset.m4])
+m4trace:aclocal.m4:1046: -1- m4_include([m4/configmake.m4])
+m4trace:aclocal.m4:1047: -1- m4_include([m4/d-ino.m4])
+m4trace:aclocal.m4:1048: -1- m4_include([m4/dirent-safer.m4])
+m4trace:aclocal.m4:1049: -1- m4_include([m4/dirent_h.m4])
+m4trace:aclocal.m4:1050: -1- m4_include([m4/dirfd.m4])
+m4trace:aclocal.m4:1051: -1- m4_include([m4/dirname.m4])
+m4trace:aclocal.m4:1052: -1- m4_include([m4/double-slash-root.m4])
+m4trace:aclocal.m4:1053: -1- m4_include([m4/dup.m4])
+m4trace:aclocal.m4:1054: -1- m4_include([m4/dup2.m4])
+m4trace:aclocal.m4:1055: -1- m4_include([m4/eealloc.m4])
+m4trace:aclocal.m4:1056: -1- m4_include([m4/environ.m4])
+m4trace:aclocal.m4:1057: -1- m4_include([m4/errno_h.m4])
+m4trace:aclocal.m4:1058: -1- m4_include([m4/error.m4])
+m4trace:aclocal.m4:1059: -1- m4_include([m4/exponentd.m4])
+m4trace:aclocal.m4:1060: -1- m4_include([m4/extensions.m4])
+m4trace:aclocal.m4:1061: -1- m4_include([m4/fchdir.m4])
+m4trace:aclocal.m4:1062: -1- m4_include([m4/fcntl-o.m4])
+m4trace:aclocal.m4:1063: -1- m4_include([m4/fcntl.m4])
+m4trace:aclocal.m4:1064: -1- m4_include([m4/fcntl_h.m4])
+m4trace:aclocal.m4:1065: -1- m4_include([m4/fdopendir.m4])
+m4trace:aclocal.m4:1066: -1- m4_include([m4/fileblocks.m4])
+m4trace:aclocal.m4:1067: -1- m4_include([m4/filenamecat.m4])
+m4trace:aclocal.m4:1068: -1- m4_include([m4/float_h.m4])
+m4trace:aclocal.m4:1069: -1- m4_include([m4/fnmatch.m4])
+m4trace:aclocal.m4:1070: -1- m4_include([m4/fpending.m4])
+m4trace:aclocal.m4:1071: -1- m4_include([m4/fseek.m4])
+m4trace:aclocal.m4:1072: -1- m4_include([m4/fseeko.m4])
+m4trace:aclocal.m4:1073: -1- m4_include([m4/fstat.m4])
+m4trace:aclocal.m4:1074: -1- m4_include([m4/fstatat.m4])
+m4trace:aclocal.m4:1075: -1- m4_include([m4/futimens.m4])
+m4trace:aclocal.m4:1076: -1- m4_include([m4/getcwd-abort-bug.m4])
+m4trace:aclocal.m4:1077: -1- m4_include([m4/getcwd-path-max.m4])
+m4trace:aclocal.m4:1078: -1- m4_include([m4/getcwd.m4])
+m4trace:aclocal.m4:1079: -1- m4_include([m4/getdelim.m4])
+m4trace:aclocal.m4:1080: -1- m4_include([m4/getdtablesize.m4])
+m4trace:aclocal.m4:1081: -1- m4_include([m4/getline.m4])
+m4trace:aclocal.m4:1082: -1- m4_include([m4/getopt.m4])
+m4trace:aclocal.m4:1083: -1- m4_include([m4/getpagesize.m4])
+m4trace:aclocal.m4:1084: -1- m4_include([m4/gettext.m4])
+m4trace:aclocal.m4:1085: -1- m4_include([m4/gettime.m4])
+m4trace:aclocal.m4:1086: -1- m4_include([m4/gettimeofday.m4])
+m4trace:aclocal.m4:1087: -1- m4_include([m4/glibc21.m4])
+m4trace:aclocal.m4:1088: -1- m4_include([m4/gnulib-common.m4])
+m4trace:aclocal.m4:1089: -1- m4_include([m4/gnulib-comp.m4])
+m4trace:aclocal.m4:1090: -1- m4_include([m4/human.m4])
+m4trace:aclocal.m4:1091: -1- m4_include([m4/iconv.m4])
+m4trace:aclocal.m4:1092: -1- m4_include([m4/include_next.m4])
+m4trace:aclocal.m4:1093: -1- m4_include([m4/inline.m4])
+m4trace:aclocal.m4:1094: -1- m4_include([m4/intlmacosx.m4])
+m4trace:aclocal.m4:1095: -1- m4_include([m4/intmax_t.m4])
+m4trace:aclocal.m4:1096: -1- m4_include([m4/inttostr.m4])
+m4trace:aclocal.m4:1097: -1- m4_include([m4/inttypes-pri.m4])
+m4trace:aclocal.m4:1098: -1- m4_include([m4/inttypes.m4])
+m4trace:aclocal.m4:1099: -1- m4_include([m4/inttypes_h.m4])
+m4trace:aclocal.m4:1100: -1- m4_include([m4/iswblank.m4])
+m4trace:aclocal.m4:1101: -1- m4_include([m4/langinfo_h.m4])
+m4trace:aclocal.m4:1102: -1- m4_include([m4/largefile.m4])
+m4trace:aclocal.m4:1103: -1- m4_include([m4/lchown.m4])
+m4trace:aclocal.m4:1104: -1- m4_include([m4/lib-ld.m4])
+m4trace:aclocal.m4:1105: -1- m4_include([m4/lib-link.m4])
+m4trace:aclocal.m4:1106: -1- m4_include([m4/lib-prefix.m4])
+m4trace:aclocal.m4:1107: -1- m4_include([m4/libunistring-base.m4])
+m4trace:aclocal.m4:1108: -1- m4_include([m4/link-follow.m4])
+m4trace:aclocal.m4:1109: -1- m4_include([m4/link.m4])
+m4trace:aclocal.m4:1110: -1- m4_include([m4/linkat.m4])
+m4trace:aclocal.m4:1111: -1- m4_include([m4/localcharset.m4])
+m4trace:aclocal.m4:1112: -1- m4_include([m4/locale-fr.m4])
+m4trace:aclocal.m4:1113: -1- m4_include([m4/locale-ja.m4])
+m4trace:aclocal.m4:1114: -1- m4_include([m4/locale-zh.m4])
+m4trace:aclocal.m4:1115: -1- m4_include([m4/longlong.m4])
+m4trace:aclocal.m4:1116: -1- m4_include([m4/lseek.m4])
+m4trace:aclocal.m4:1117: -1- m4_include([m4/lstat.m4])
+m4trace:aclocal.m4:1118: -1- m4_include([m4/malloc.m4])
+m4trace:aclocal.m4:1119: -1- m4_include([m4/malloca.m4])
+m4trace:aclocal.m4:1120: -1- m4_include([m4/mbchar.m4])
+m4trace:aclocal.m4:1121: -1- m4_include([m4/mbiter.m4])
+m4trace:aclocal.m4:1122: -1- m4_include([m4/mbrtowc.m4])
+m4trace:aclocal.m4:1123: -1- m4_include([m4/mbsinit.m4])
+m4trace:aclocal.m4:1124: -1- m4_include([m4/mbsrtowcs.m4])
+m4trace:aclocal.m4:1125: -1- m4_include([m4/mbstate_t.m4])
+m4trace:aclocal.m4:1126: -1- m4_include([m4/mbtowc.m4])
+m4trace:aclocal.m4:1127: -1- m4_include([m4/memchr.m4])
+m4trace:aclocal.m4:1128: -1- m4_include([m4/mempcpy.m4])
+m4trace:aclocal.m4:1129: -1- m4_include([m4/memrchr.m4])
+m4trace:aclocal.m4:1130: -1- m4_include([m4/mkdtemp.m4])
+m4trace:aclocal.m4:1131: -1- m4_include([m4/mkfifo.m4])
+m4trace:aclocal.m4:1132: -1- m4_include([m4/mkfifoat.m4])
+m4trace:aclocal.m4:1133: -1- m4_include([m4/mknod.m4])
+m4trace:aclocal.m4:1134: -1- m4_include([m4/mktime.m4])
+m4trace:aclocal.m4:1135: -1- m4_include([m4/mmap-anon.m4])
+m4trace:aclocal.m4:1136: -1- m4_include([m4/mode_t.m4])
+m4trace:aclocal.m4:1137: -1- m4_include([m4/modechange.m4])
+m4trace:aclocal.m4:1138: -1- m4_include([m4/msvc-inval.m4])
+m4trace:aclocal.m4:1139: -1- m4_include([m4/msvc-nothrow.m4])
+m4trace:aclocal.m4:1140: -1- m4_include([m4/multiarch.m4])
+m4trace:aclocal.m4:1141: -1- m4_include([m4/nl_langinfo.m4])
+m4trace:aclocal.m4:1142: -1- m4_include([m4/nls.m4])
+m4trace:aclocal.m4:1143: -1- m4_include([m4/nocrash.m4])
+m4trace:aclocal.m4:1144: -1- m4_include([m4/open.m4])
+m4trace:aclocal.m4:1145: -1- m4_include([m4/openat.m4])
+m4trace:aclocal.m4:1146: -1- m4_include([m4/opendir.m4])
+m4trace:aclocal.m4:1147: -1- m4_include([m4/parse-datetime.m4])
+m4trace:aclocal.m4:1148: -1- m4_include([m4/pathmax.m4])
+m4trace:aclocal.m4:1149: -1- m4_include([m4/paxutils.m4])
+m4trace:aclocal.m4:1150: -1- m4_include([m4/po.m4])
+m4trace:aclocal.m4:1151: -1- m4_include([m4/printf.m4])
+m4trace:aclocal.m4:1152: -1- m4_include([m4/priv-set.m4])
+m4trace:aclocal.m4:1153: -1- m4_include([m4/progtest.m4])
+m4trace:aclocal.m4:1154: -1- m4_include([m4/quote.m4])
+m4trace:aclocal.m4:1155: -1- m4_include([m4/quotearg.m4])
+m4trace:aclocal.m4:1156: -1- m4_include([m4/raise.m4])
+m4trace:aclocal.m4:1157: -1- m4_include([m4/rawmemchr.m4])
+m4trace:aclocal.m4:1158: -1- m4_include([m4/read.m4])
+m4trace:aclocal.m4:1159: -1- m4_include([m4/readdir.m4])
+m4trace:aclocal.m4:1160: -1- m4_include([m4/readlink.m4])
+m4trace:aclocal.m4:1161: -1- m4_include([m4/readlinkat.m4])
+m4trace:aclocal.m4:1162: -1- m4_include([m4/realloc.m4])
+m4trace:aclocal.m4:1163: -1- m4_include([m4/regex.m4])
+m4trace:aclocal.m4:1164: -1- m4_include([m4/rename.m4])
+m4trace:aclocal.m4:1165: -1- m4_include([m4/renameat.m4])
+m4trace:aclocal.m4:1166: -1- m4_include([m4/rewinddir.m4])
+m4trace:aclocal.m4:1167: -1- m4_include([m4/rmdir.m4])
+m4trace:aclocal.m4:1168: -1- m4_include([m4/rmt.m4])
+m4trace:aclocal.m4:1169: -1- m4_include([m4/rpmatch.m4])
+m4trace:aclocal.m4:1170: -1- m4_include([m4/rtapelib.m4])
+m4trace:aclocal.m4:1171: -1- m4_include([m4/safe-read.m4])
+m4trace:aclocal.m4:1172: -1- m4_include([m4/safe-write.m4])
+m4trace:aclocal.m4:1173: -1- m4_include([m4/save-cwd.m4])
+m4trace:aclocal.m4:1174: -1- m4_include([m4/savedir.m4])
+m4trace:aclocal.m4:1175: -1- m4_include([m4/setenv.m4])
+m4trace:aclocal.m4:1176: -1- m4_include([m4/signal_h.m4])
+m4trace:aclocal.m4:1177: -1- m4_include([m4/size_max.m4])
+m4trace:aclocal.m4:1178: -1- m4_include([m4/sleep.m4])
+m4trace:aclocal.m4:1179: -1- m4_include([m4/snprintf.m4])
+m4trace:aclocal.m4:1180: -1- m4_include([m4/ssize_t.m4])
+m4trace:aclocal.m4:1181: -1- m4_include([m4/stat-time.m4])
+m4trace:aclocal.m4:1182: -1- m4_include([m4/stat.m4])
+m4trace:aclocal.m4:1183: -1- m4_include([m4/stdalign.m4])
+m4trace:aclocal.m4:1184: -1- m4_include([m4/stdarg.m4])
+m4trace:aclocal.m4:1185: -1- m4_include([m4/stdbool.m4])
+m4trace:aclocal.m4:1186: -1- m4_include([m4/stddef_h.m4])
+m4trace:aclocal.m4:1187: -1- m4_include([m4/stdint.m4])
+m4trace:aclocal.m4:1188: -1- m4_include([m4/stdint_h.m4])
+m4trace:aclocal.m4:1189: -1- m4_include([m4/stdio_h.m4])
+m4trace:aclocal.m4:1190: -1- m4_include([m4/stdlib_h.m4])
+m4trace:aclocal.m4:1191: -1- m4_include([m4/stpcpy.m4])
+m4trace:aclocal.m4:1192: -1- m4_include([m4/strcase.m4])
+m4trace:aclocal.m4:1193: -1- m4_include([m4/strchrnul.m4])
+m4trace:aclocal.m4:1194: -1- m4_include([m4/strdup.m4])
+m4trace:aclocal.m4:1195: -1- m4_include([m4/strerror.m4])
+m4trace:aclocal.m4:1196: -1- m4_include([m4/string_h.m4])
+m4trace:aclocal.m4:1197: -1- m4_include([m4/strings_h.m4])
+m4trace:aclocal.m4:1198: -1- m4_include([m4/strndup.m4])
+m4trace:aclocal.m4:1199: -1- m4_include([m4/strnlen.m4])
+m4trace:aclocal.m4:1200: -1- m4_include([m4/strtol.m4])
+m4trace:aclocal.m4:1201: -1- m4_include([m4/strtoul.m4])
+m4trace:aclocal.m4:1202: -1- m4_include([m4/strtoull.m4])
+m4trace:aclocal.m4:1203: -1- m4_include([m4/strtoumax.m4])
+m4trace:aclocal.m4:1204: -1- m4_include([m4/symlink.m4])
+m4trace:aclocal.m4:1205: -1- m4_include([m4/symlinkat.m4])
+m4trace:aclocal.m4:1206: -1- m4_include([m4/sys_socket_h.m4])
+m4trace:aclocal.m4:1207: -1- m4_include([m4/sys_stat_h.m4])
+m4trace:aclocal.m4:1208: -1- m4_include([m4/sys_time_h.m4])
+m4trace:aclocal.m4:1209: -1- m4_include([m4/sys_types_h.m4])
+m4trace:aclocal.m4:1210: -1- m4_include([m4/sysexits.m4])
+m4trace:aclocal.m4:1211: -1- m4_include([m4/system.m4])
+m4trace:aclocal.m4:1212: -1- m4_include([m4/tempname.m4])
+m4trace:aclocal.m4:1213: -1- m4_include([m4/time_h.m4])
+m4trace:aclocal.m4:1214: -1- m4_include([m4/time_r.m4])
+m4trace:aclocal.m4:1215: -1- m4_include([m4/timespec.m4])
+m4trace:aclocal.m4:1216: -1- m4_include([m4/tm_gmtoff.m4])
+m4trace:aclocal.m4:1217: -1- m4_include([m4/unistd-safer.m4])
+m4trace:aclocal.m4:1218: -1- m4_include([m4/unistd_h.m4])
+m4trace:aclocal.m4:1219: -1- m4_include([m4/unlinkdir.m4])
+m4trace:aclocal.m4:1220: -1- m4_include([m4/unlocked-io.m4])
+m4trace:aclocal.m4:1221: -1- m4_include([m4/utimbuf.m4])
+m4trace:aclocal.m4:1222: -1- m4_include([m4/utimens.m4])
+m4trace:aclocal.m4:1223: -1- m4_include([m4/utimensat.m4])
+m4trace:aclocal.m4:1224: -1- m4_include([m4/utimes.m4])
+m4trace:aclocal.m4:1225: -1- m4_include([m4/vasnprintf.m4])
+m4trace:aclocal.m4:1226: -1- m4_include([m4/vasprintf.m4])
+m4trace:aclocal.m4:1227: -1- m4_include([m4/version-etc.m4])
+m4trace:aclocal.m4:1228: -1- m4_include([m4/vsnprintf.m4])
+m4trace:aclocal.m4:1229: -1- m4_include([m4/warn-on-use.m4])
+m4trace:aclocal.m4:1230: -1- m4_include([m4/wchar_h.m4])
+m4trace:aclocal.m4:1231: -1- m4_include([m4/wchar_t.m4])
+m4trace:aclocal.m4:1232: -1- m4_include([m4/wcrtomb.m4])
+m4trace:aclocal.m4:1233: -1- m4_include([m4/wctype_h.m4])
+m4trace:aclocal.m4:1234: -1- m4_include([m4/wcwidth.m4])
+m4trace:aclocal.m4:1235: -1- m4_include([m4/wint_t.m4])
+m4trace:aclocal.m4:1236: -1- m4_include([m4/write.m4])
+m4trace:aclocal.m4:1237: -1- m4_include([m4/xalloc.m4])
+m4trace:aclocal.m4:1238: -1- m4_include([m4/xgetcwd.m4])
+m4trace:aclocal.m4:1239: -1- m4_include([m4/xsize.m4])
+m4trace:aclocal.m4:1240: -1- m4_include([m4/xstrndup.m4])
+m4trace:aclocal.m4:1241: -1- m4_include([m4/xstrtol.m4])
+m4trace:aclocal.m4:1242: -1- m4_include([m4/xvasprintf.m4])
+m4trace:aclocal.m4:1243: -1- m4_include([acinclude.m4])
+m4trace:configure.ac:22: -1- AC_INIT([GNU tar], [1.26.90], [bug-tar@gnu.org])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([^_?A[CHUM]_])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([_AC_])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS'])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^AS_FLAGS$])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([^_?m4_])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([^dnl$])
+m4trace:configure.ac:22: -1- m4_pattern_forbid([^_?AS_])
+m4trace:configure.ac:22: -1- AC_SUBST([SHELL])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([SHELL])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^SHELL$])
+m4trace:configure.ac:22: -1- AC_SUBST([PATH_SEPARATOR])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PATH_SEPARATOR])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PATH_SEPARATOR$])
+m4trace:configure.ac:22: -1- AC_SUBST([PACKAGE_NAME], [m4_ifdef([AC_PACKAGE_NAME], ['AC_PACKAGE_NAME'])])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PACKAGE_NAME])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:22: -1- AC_SUBST([PACKAGE_TARNAME], [m4_ifdef([AC_PACKAGE_TARNAME], ['AC_PACKAGE_TARNAME'])])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PACKAGE_TARNAME])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:22: -1- AC_SUBST([PACKAGE_VERSION], [m4_ifdef([AC_PACKAGE_VERSION], ['AC_PACKAGE_VERSION'])])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PACKAGE_VERSION])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:22: -1- AC_SUBST([PACKAGE_STRING], [m4_ifdef([AC_PACKAGE_STRING], ['AC_PACKAGE_STRING'])])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PACKAGE_STRING])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:22: -1- AC_SUBST([PACKAGE_BUGREPORT], [m4_ifdef([AC_PACKAGE_BUGREPORT], ['AC_PACKAGE_BUGREPORT'])])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PACKAGE_BUGREPORT])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:22: -1- AC_SUBST([PACKAGE_URL], [m4_ifdef([AC_PACKAGE_URL], ['AC_PACKAGE_URL'])])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([PACKAGE_URL])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:22: -1- AC_SUBST([exec_prefix], [NONE])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([exec_prefix])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^exec_prefix$])
+m4trace:configure.ac:22: -1- AC_SUBST([prefix], [NONE])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([prefix])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^prefix$])
+m4trace:configure.ac:22: -1- AC_SUBST([program_transform_name], [s,x,x,])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([program_transform_name])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^program_transform_name$])
+m4trace:configure.ac:22: -1- AC_SUBST([bindir], ['${exec_prefix}/bin'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([bindir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^bindir$])
+m4trace:configure.ac:22: -1- AC_SUBST([sbindir], ['${exec_prefix}/sbin'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([sbindir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^sbindir$])
+m4trace:configure.ac:22: -1- AC_SUBST([libexecdir], ['${exec_prefix}/libexec'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([libexecdir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^libexecdir$])
+m4trace:configure.ac:22: -1- AC_SUBST([datarootdir], ['${prefix}/share'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([datarootdir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^datarootdir$])
+m4trace:configure.ac:22: -1- AC_SUBST([datadir], ['${datarootdir}'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([datadir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^datadir$])
+m4trace:configure.ac:22: -1- AC_SUBST([sysconfdir], ['${prefix}/etc'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([sysconfdir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^sysconfdir$])
+m4trace:configure.ac:22: -1- AC_SUBST([sharedstatedir], ['${prefix}/com'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([sharedstatedir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^sharedstatedir$])
+m4trace:configure.ac:22: -1- AC_SUBST([localstatedir], ['${prefix}/var'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([localstatedir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^localstatedir$])
+m4trace:configure.ac:22: -1- AC_SUBST([includedir], ['${prefix}/include'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([includedir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^includedir$])
+m4trace:configure.ac:22: -1- AC_SUBST([oldincludedir], ['/usr/include'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([oldincludedir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^oldincludedir$])
+m4trace:configure.ac:22: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
+ ['${datarootdir}/doc/${PACKAGE_TARNAME}'],
+ ['${datarootdir}/doc/${PACKAGE}'])])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([docdir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^docdir$])
+m4trace:configure.ac:22: -1- AC_SUBST([infodir], ['${datarootdir}/info'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([infodir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^infodir$])
+m4trace:configure.ac:22: -1- AC_SUBST([htmldir], ['${docdir}'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([htmldir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^htmldir$])
+m4trace:configure.ac:22: -1- AC_SUBST([dvidir], ['${docdir}'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([dvidir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^dvidir$])
+m4trace:configure.ac:22: -1- AC_SUBST([pdfdir], ['${docdir}'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([pdfdir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^pdfdir$])
+m4trace:configure.ac:22: -1- AC_SUBST([psdir], ['${docdir}'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([psdir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^psdir$])
+m4trace:configure.ac:22: -1- AC_SUBST([libdir], ['${exec_prefix}/lib'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([libdir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^libdir$])
+m4trace:configure.ac:22: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([localedir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:22: -1- AC_SUBST([mandir], ['${datarootdir}/man'])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([mandir])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^mandir$])
+m4trace:configure.ac:22: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_NAME])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_NAME$])
+m4trace:configure.ac:22: -1- AH_OUTPUT([PACKAGE_NAME], [/* Define to the full name of this package. */
+@%:@undef PACKAGE_NAME])
+m4trace:configure.ac:22: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_TARNAME])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_TARNAME$])
+m4trace:configure.ac:22: -1- AH_OUTPUT([PACKAGE_TARNAME], [/* Define to the one symbol short name of this package. */
+@%:@undef PACKAGE_TARNAME])
+m4trace:configure.ac:22: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_VERSION])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_VERSION$])
+m4trace:configure.ac:22: -1- AH_OUTPUT([PACKAGE_VERSION], [/* Define to the version of this package. */
+@%:@undef PACKAGE_VERSION])
+m4trace:configure.ac:22: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_STRING])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_STRING$])
+m4trace:configure.ac:22: -1- AH_OUTPUT([PACKAGE_STRING], [/* Define to the full name and version of this package. */
+@%:@undef PACKAGE_STRING])
+m4trace:configure.ac:22: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_BUGREPORT])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_BUGREPORT$])
+m4trace:configure.ac:22: -1- AH_OUTPUT([PACKAGE_BUGREPORT], [/* Define to the address where bug reports for this package should be sent. */
+@%:@undef PACKAGE_BUGREPORT])
+m4trace:configure.ac:22: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_URL])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^PACKAGE_URL$])
+m4trace:configure.ac:22: -1- AH_OUTPUT([PACKAGE_URL], [/* Define to the home page for this package. */
+@%:@undef PACKAGE_URL])
+m4trace:configure.ac:22: -1- AC_SUBST([DEFS])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([DEFS])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^DEFS$])
+m4trace:configure.ac:22: -1- AC_SUBST([ECHO_C])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([ECHO_C])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^ECHO_C$])
+m4trace:configure.ac:22: -1- AC_SUBST([ECHO_N])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([ECHO_N])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^ECHO_N$])
+m4trace:configure.ac:22: -1- AC_SUBST([ECHO_T])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([ECHO_T])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^ECHO_T$])
+m4trace:configure.ac:22: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:22: -1- AC_SUBST([build_alias])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([build_alias])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^build_alias$])
+m4trace:configure.ac:22: -1- AC_SUBST([host_alias])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([host_alias])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^host_alias$])
+m4trace:configure.ac:22: -1- AC_SUBST([target_alias])
+m4trace:configure.ac:22: -1- AC_SUBST_TRACE([target_alias])
+m4trace:configure.ac:22: -1- m4_pattern_allow([^target_alias$])
+m4trace:configure.ac:24: -1- AC_CONFIG_AUX_DIR([build-aux])
+m4trace:configure.ac:25: -1- AC_CONFIG_HEADERS([config.h])
+m4trace:configure.ac:27: -1- AM_INIT_AUTOMAKE([1.11 gnits tar-ustar dist-bzip2 dist-xz dist-shar std-options silent-rules])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AM_[A-Z]+FLAGS$])
+m4trace:configure.ac:27: -1- AM_AUTOMAKE_VERSION([1.11.1])
+m4trace:configure.ac:27: -1- AC_REQUIRE_AUX_FILE([install-sh])
+m4trace:configure.ac:27: -1- AC_SUBST([INSTALL_PROGRAM])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([INSTALL_PROGRAM])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^INSTALL_PROGRAM$])
+m4trace:configure.ac:27: -1- AC_SUBST([INSTALL_SCRIPT])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([INSTALL_SCRIPT])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^INSTALL_SCRIPT$])
+m4trace:configure.ac:27: -1- AC_SUBST([INSTALL_DATA])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([INSTALL_DATA])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^INSTALL_DATA$])
+m4trace:configure.ac:27: -1- AC_SUBST([am__isrc], [' -I$(srcdir)'])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([am__isrc])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^am__isrc$])
+m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([am__isrc])
+m4trace:configure.ac:27: -1- AC_SUBST([CYGPATH_W])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([CYGPATH_W])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^CYGPATH_W$])
+m4trace:configure.ac:27: -1- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([PACKAGE])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:27: -1- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([VERSION])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:27: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^PACKAGE$])
+m4trace:configure.ac:27: -1- AH_OUTPUT([PACKAGE], [/* Name of package */
+@%:@undef PACKAGE])
+m4trace:configure.ac:27: -1- AC_DEFINE_TRACE_LITERAL([VERSION])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^VERSION$])
+m4trace:configure.ac:27: -1- AH_OUTPUT([VERSION], [/* Version number of package */
+@%:@undef VERSION])
+m4trace:configure.ac:27: -1- AC_REQUIRE_AUX_FILE([missing])
+m4trace:configure.ac:27: -1- AC_SUBST([ACLOCAL])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([ACLOCAL])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^ACLOCAL$])
+m4trace:configure.ac:27: -1- AC_SUBST([AUTOCONF])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([AUTOCONF])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AUTOCONF$])
+m4trace:configure.ac:27: -1- AC_SUBST([AUTOMAKE])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([AUTOMAKE])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AUTOMAKE$])
+m4trace:configure.ac:27: -1- AC_SUBST([AUTOHEADER])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([AUTOHEADER])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AUTOHEADER$])
+m4trace:configure.ac:27: -1- AC_SUBST([MAKEINFO])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([MAKEINFO])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^MAKEINFO$])
+m4trace:configure.ac:27: -1- AC_SUBST([install_sh])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([install_sh])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^install_sh$])
+m4trace:configure.ac:27: -1- AC_SUBST([STRIP])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([STRIP])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^STRIP$])
+m4trace:configure.ac:27: -1- AC_SUBST([INSTALL_STRIP_PROGRAM])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([INSTALL_STRIP_PROGRAM])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^INSTALL_STRIP_PROGRAM$])
+m4trace:configure.ac:27: -1- AC_REQUIRE_AUX_FILE([install-sh])
+m4trace:configure.ac:27: -1- AC_SUBST([MKDIR_P])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([MKDIR_P])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^MKDIR_P$])
+m4trace:configure.ac:27: -1- AC_SUBST([MKDIR_P])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([MKDIR_P])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^MKDIR_P$])
+m4trace:configure.ac:27: -1- AC_SUBST([mkdir_p], ["$MKDIR_P"])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([mkdir_p])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^mkdir_p$])
+m4trace:configure.ac:27: -1- AC_SUBST([AWK])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([AWK])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AWK$])
+m4trace:configure.ac:27: -1- AC_SUBST([SET_MAKE])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([SET_MAKE])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^SET_MAKE$])
+m4trace:configure.ac:27: -1- AC_SUBST([am__leading_dot])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([am__leading_dot])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^am__leading_dot$])
+m4trace:configure.ac:27: -1- AC_SUBST([AMTAR])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([AMTAR])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AMTAR$])
+m4trace:configure.ac:27: -1- AC_SUBST([am__tar])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([am__tar])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^am__tar$])
+m4trace:configure.ac:27: -1- AC_SUBST([am__untar])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([am__untar])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^am__untar$])
+m4trace:configure.ac:27: -1- AM_SILENT_RULES
+m4trace:configure.ac:27: -1- AC_SUBST([AM_DEFAULT_VERBOSITY])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
+m4trace:configure.ac:27: -1- AC_SUBST([AM_BACKSLASH])
+m4trace:configure.ac:27: -1- AC_SUBST_TRACE([AM_BACKSLASH])
+m4trace:configure.ac:27: -1- m4_pattern_allow([^AM_BACKSLASH$])
+m4trace:configure.ac:27: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
+m4trace:configure.ac:30: -1- AM_SILENT_RULES([yes])
+m4trace:configure.ac:30: -1- AC_SUBST([AM_DEFAULT_VERBOSITY])
+m4trace:configure.ac:30: -1- AC_SUBST_TRACE([AM_DEFAULT_VERBOSITY])
+m4trace:configure.ac:30: -1- m4_pattern_allow([^AM_DEFAULT_VERBOSITY$])
+m4trace:configure.ac:30: -1- AC_SUBST([AM_BACKSLASH])
+m4trace:configure.ac:30: -1- AC_SUBST_TRACE([AM_BACKSLASH])
+m4trace:configure.ac:30: -1- m4_pattern_allow([^AM_BACKSLASH$])
+m4trace:configure.ac:30: -1- _AM_SUBST_NOTMAKE([AM_BACKSLASH])
+m4trace:configure.ac:32: -1- AC_SUBST([CC])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:32: -1- AC_SUBST([CFLAGS])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CFLAGS])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CFLAGS$])
+m4trace:configure.ac:32: -1- AC_SUBST([LDFLAGS])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([LDFLAGS])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^LDFLAGS$])
+m4trace:configure.ac:32: -1- AC_SUBST([LIBS])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([LIBS])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^LIBS$])
+m4trace:configure.ac:32: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:32: -1- AC_SUBST([CC])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:32: -1- AC_SUBST([CC])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:32: -1- AC_SUBST([CC])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:32: -1- AC_SUBST([CC])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CC])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CC$])
+m4trace:configure.ac:32: -1- AC_SUBST([ac_ct_CC])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([ac_ct_CC])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^ac_ct_CC$])
+m4trace:configure.ac:32: -1- AC_SUBST([EXEEXT], [$ac_cv_exeext])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([EXEEXT])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^EXEEXT$])
+m4trace:configure.ac:32: -1- AC_SUBST([OBJEXT], [$ac_cv_objext])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([OBJEXT])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^OBJEXT$])
+m4trace:configure.ac:32: -1- AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([DEPDIR])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^DEPDIR$])
+m4trace:configure.ac:32: -1- AC_SUBST([am__include])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([am__include])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^am__include$])
+m4trace:configure.ac:32: -1- AC_SUBST([am__quote])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([am__quote])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^am__quote$])
+m4trace:configure.ac:32: -1- AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+m4trace:configure.ac:32: -1- AC_SUBST([AMDEP_TRUE])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([AMDEP_TRUE])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEP_TRUE$])
+m4trace:configure.ac:32: -1- AC_SUBST([AMDEP_FALSE])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([AMDEP_FALSE])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEP_FALSE$])
+m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEP_TRUE])
+m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEP_FALSE])
+m4trace:configure.ac:32: -1- AC_SUBST([AMDEPBACKSLASH])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([AMDEPBACKSLASH])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^AMDEPBACKSLASH$])
+m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])
+m4trace:configure.ac:32: -1- AC_SUBST([CCDEPMODE], [depmode=$am_cv_CC_dependencies_compiler_type])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([CCDEPMODE])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^CCDEPMODE$])
+m4trace:configure.ac:32: -1- AM_CONDITIONAL([am__fastdepCC], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3])
+m4trace:configure.ac:32: -1- AC_SUBST([am__fastdepCC_TRUE])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([am__fastdepCC_TRUE])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^am__fastdepCC_TRUE$])
+m4trace:configure.ac:32: -1- AC_SUBST([am__fastdepCC_FALSE])
+m4trace:configure.ac:32: -1- AC_SUBST_TRACE([am__fastdepCC_FALSE])
+m4trace:configure.ac:32: -1- m4_pattern_allow([^am__fastdepCC_FALSE$])
+m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_TRUE])
+m4trace:configure.ac:32: -1- _AM_SUBST_NOTMAKE([am__fastdepCC_FALSE])
+m4trace:configure.ac:34: -1- AC_SUBST([RANLIB])
+m4trace:configure.ac:34: -1- AC_SUBST_TRACE([RANLIB])
+m4trace:configure.ac:34: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:35: -1- AC_SUBST([YACC])
+m4trace:configure.ac:35: -1- AC_SUBST_TRACE([YACC])
+m4trace:configure.ac:35: -1- m4_pattern_allow([^YACC$])
+m4trace:configure.ac:35: -1- AC_SUBST([YACC])
+m4trace:configure.ac:35: -1- AC_SUBST_TRACE([YACC])
+m4trace:configure.ac:35: -1- m4_pattern_allow([^YACC$])
+m4trace:configure.ac:35: -1- AC_SUBST([YFLAGS])
+m4trace:configure.ac:35: -1- AC_SUBST_TRACE([YFLAGS])
+m4trace:configure.ac:35: -1- m4_pattern_allow([^YFLAGS$])
+m4trace:configure.ac:36: -1- m4_pattern_forbid([^gl_[A-Z]])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^gl_ES$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^gl_LIBOBJS$])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^gl_LTLIBOBJS$])
+m4trace:configure.ac:36: -1- AC_SUBST([CPP])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CPP])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:36: -1- AC_SUBST([CPPFLAGS])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CPPFLAGS])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^CPPFLAGS$])
+m4trace:configure.ac:36: -1- AC_SUBST([CPP])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([CPP])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^CPP$])
+m4trace:configure.ac:36: -1- AC_SUBST([GREP])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([GREP])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^GREP$])
+m4trace:configure.ac:36: -1- AC_SUBST([EGREP])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([EGREP])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^EGREP$])
+m4trace:configure.ac:36: -1- AC_SUBST([AR])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([AR])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:36: -1- AC_SUBST([AR])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([AR])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^AR$])
+m4trace:configure.ac:36: -1- AC_SUBST([ARFLAGS])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([ARFLAGS])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^ARFLAGS$])
+m4trace:configure.ac:36: -1- AC_SUBST([RANLIB])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([RANLIB])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:36: -1- AC_SUBST([RANLIB])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([RANLIB])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^RANLIB$])
+m4trace:configure.ac:36: -1- AM_PROG_CC_C_O
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([NO_MINUS_C_MINUS_O])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^NO_MINUS_C_MINUS_O$])
+m4trace:configure.ac:36: -1- AH_OUTPUT([NO_MINUS_C_MINUS_O], [/* Define to 1 if your C compiler doesn\'t accept -c and -o together. */
+@%:@undef NO_MINUS_C_MINUS_O])
+m4trace:configure.ac:36: -1- AC_REQUIRE_AUX_FILE([compile])
+m4trace:configure.ac:36: -1- _m4_warn([obsolete], [The macro `AC_GNU_SOURCE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/specific.m4:310: AC_GNU_SOURCE is expanded from...
+m4/gnulib-comp.m4:36: gl_EARLY is expanded from...
+configure.ac:36: the top level])
+m4trace:configure.ac:36: -1- AC_CANONICAL_HOST
+m4trace:configure.ac:36: -1- AC_CANONICAL_BUILD
+m4trace:configure.ac:36: -1- AC_REQUIRE_AUX_FILE([config.sub])
+m4trace:configure.ac:36: -1- AC_REQUIRE_AUX_FILE([config.guess])
+m4trace:configure.ac:36: -1- AC_SUBST([build], [$ac_cv_build])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([build])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^build$])
+m4trace:configure.ac:36: -1- AC_SUBST([build_cpu], [$[1]])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([build_cpu])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^build_cpu$])
+m4trace:configure.ac:36: -1- AC_SUBST([build_vendor], [$[2]])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([build_vendor])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^build_vendor$])
+m4trace:configure.ac:36: -1- AC_SUBST([build_os])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([build_os])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^build_os$])
+m4trace:configure.ac:36: -1- AC_SUBST([host], [$ac_cv_host])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([host])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^host$])
+m4trace:configure.ac:36: -1- AC_SUBST([host_cpu], [$[1]])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([host_cpu])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^host_cpu$])
+m4trace:configure.ac:36: -1- AC_SUBST([host_vendor], [$[2]])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([host_vendor])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^host_vendor$])
+m4trace:configure.ac:36: -1- AC_SUBST([host_os])
+m4trace:configure.ac:36: -1- AC_SUBST_TRACE([host_os])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^host_os$])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:36: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
+@%:@undef STDC_HEADERS])
+m4trace:configure.ac:36: -1- AH_OUTPUT([HAVE_SYS_TYPES_H], [/* Define to 1 if you have the <sys/types.h> header file. */
+@%:@undef HAVE_SYS_TYPES_H])
+m4trace:configure.ac:36: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
+@%:@undef HAVE_SYS_STAT_H])
+m4trace:configure.ac:36: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
+@%:@undef HAVE_STDLIB_H])
+m4trace:configure.ac:36: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
+@%:@undef HAVE_STRING_H])
+m4trace:configure.ac:36: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
+@%:@undef HAVE_MEMORY_H])
+m4trace:configure.ac:36: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
+@%:@undef HAVE_STRINGS_H])
+m4trace:configure.ac:36: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
+@%:@undef HAVE_INTTYPES_H])
+m4trace:configure.ac:36: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
+@%:@undef HAVE_STDINT_H])
+m4trace:configure.ac:36: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_SOURCE])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_POSIX_SOURCE$])
+m4trace:configure.ac:36: -1- AH_OUTPUT([_POSIX_SOURCE], [/* Define to 1 if you need to in order for \'stat\' and other things to work. */
+@%:@undef _POSIX_SOURCE])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_1_SOURCE])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_POSIX_1_SOURCE$])
+m4trace:configure.ac:36: -1- AH_OUTPUT([_POSIX_1_SOURCE], [/* Define to 2 if the system does not provide POSIX.1 features except with
+ this defined. */
+@%:@undef _POSIX_1_SOURCE])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_MINIX])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_MINIX$])
+m4trace:configure.ac:36: -1- AH_OUTPUT([_MINIX], [/* Define to 1 if on MINIX. */
+@%:@undef _MINIX])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_XOPEN_SOURCE])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_XOPEN_SOURCE$])
+m4trace:configure.ac:36: -1- AH_OUTPUT([_XOPEN_SOURCE], [/* Define to 500 only on HP-UX. */
+@%:@undef _XOPEN_SOURCE])
+m4trace:configure.ac:36: -1- AH_OUTPUT([__EXTENSIONS__], [/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable general extensions on MacOS X. */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([__EXTENSIONS__])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^__EXTENSIONS__$])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_ALL_SOURCE])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_ALL_SOURCE$])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_DARWIN_C_SOURCE])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_DARWIN_C_SOURCE$])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_GNU_SOURCE])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_GNU_SOURCE$])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_POSIX_PTHREAD_SEMANTICS])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_POSIX_PTHREAD_SEMANTICS$])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_TANDEM_SOURCE])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_TANDEM_SOURCE$])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_LARGEFILE_SOURCE])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_LARGEFILE_SOURCE$])
+m4trace:configure.ac:36: -1- AH_OUTPUT([_LARGEFILE_SOURCE], [/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
+@%:@undef _LARGEFILE_SOURCE])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([HAVE_FSEEKO])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^HAVE_FSEEKO$])
+m4trace:configure.ac:36: -1- AH_OUTPUT([HAVE_FSEEKO], [/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
+@%:@undef HAVE_FSEEKO])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_FILE_OFFSET_BITS])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_FILE_OFFSET_BITS$])
+m4trace:configure.ac:36: -1- AH_OUTPUT([_FILE_OFFSET_BITS], [/* Number of bits in a file offset, on hosts where this is settable. */
+@%:@undef _FILE_OFFSET_BITS])
+m4trace:configure.ac:36: -1- AC_DEFINE_TRACE_LITERAL([_LARGE_FILES])
+m4trace:configure.ac:36: -1- m4_pattern_allow([^_LARGE_FILES$])
+m4trace:configure.ac:36: -1- AH_OUTPUT([_LARGE_FILES], [/* Define for large files, on AIX-style hosts. */
+@%:@undef _LARGE_FILES])
+m4trace:configure.ac:36: -1- AH_OUTPUT([_DARWIN_USE_64_BIT_INODE], [/* Enable large inode numbers on Mac OS X. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif])
+m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([_FILE_OFFSET_BITS])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^_FILE_OFFSET_BITS$])
+m4trace:configure.ac:38: -1- AH_OUTPUT([_FILE_OFFSET_BITS], [/* Number of bits in a file offset, on hosts where this is settable. */
+@%:@undef _FILE_OFFSET_BITS])
+m4trace:configure.ac:38: -1- AC_DEFINE_TRACE_LITERAL([_LARGE_FILES])
+m4trace:configure.ac:38: -1- m4_pattern_allow([^_LARGE_FILES$])
+m4trace:configure.ac:38: -1- AH_OUTPUT([_LARGE_FILES], [/* Define for large files, on AIX-style hosts. */
+@%:@undef _LARGE_FILES])
+m4trace:configure.ac:38: -1- AH_OUTPUT([_DARWIN_USE_64_BIT_INODE], [/* Enable large inode numbers on Mac OS X. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif])
+m4trace:configure.ac:39: -1- _m4_warn([obsolete], [The macro `AC_ISC_POSIX' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/specific.m4:442: AC_ISC_POSIX is expanded from...
+configure.ac:39: the top level])
+m4trace:configure.ac:40: -1- AH_OUTPUT([inline], [/* Define to `__inline__\' or `__inline\' if that\'s what the C compiler
+ calls it, or to nothing if \'inline\' is not supported under any name. */
+#ifndef __cplusplus
+#undef inline
+#endif])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */
+@%:@undef HAVE_FCNTL_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_LINUX_FD_H], [/* Define to 1 if you have the <linux/fd.h> header file. */
+@%:@undef HAVE_LINUX_FD_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
+@%:@undef HAVE_MEMORY_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_NET_ERRNO_H], [/* Define to 1 if you have the <net/errno.h> header file. */
+@%:@undef HAVE_NET_ERRNO_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SGTTY_H], [/* Define to 1 if you have the <sgtty.h> header file. */
+@%:@undef HAVE_SGTTY_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
+@%:@undef HAVE_STRING_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */
+@%:@undef HAVE_SYS_PARAM_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SYS_DEVICE_H], [/* Define to 1 if you have the <sys/device.h> header file. */
+@%:@undef HAVE_SYS_DEVICE_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SYS_GENTAPE_H], [/* Define to 1 if you have the <sys/gentape.h> header file. */
+@%:@undef HAVE_SYS_GENTAPE_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SYS_INET_H], [/* Define to 1 if you have the <sys/inet.h> header file. */
+@%:@undef HAVE_SYS_INET_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SYS_IO_TRIOCTL_H], [/* Define to 1 if you have the <sys/io/trioctl.h> header file. */
+@%:@undef HAVE_SYS_IO_TRIOCTL_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SYS_MTIO_H], [/* Define to 1 if you have the <sys/mtio.h> header file. */
+@%:@undef HAVE_SYS_MTIO_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
+@%:@undef HAVE_SYS_TIME_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SYS_TPRINTF_H], [/* Define to 1 if you have the <sys/tprintf.h> header file. */
+@%:@undef HAVE_SYS_TPRINTF_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_SYS_TAPE_H], [/* Define to 1 if you have the <sys/tape.h> header file. */
+@%:@undef HAVE_SYS_TAPE_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:42: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the <locale.h> header file. */
+@%:@undef HAVE_LOCALE_H])
+m4trace:configure.ac:49: -1- AH_OUTPUT([HAVE_SYS_BUF_H], [/* Define to 1 if you have the <sys/buf.h> header file. */
+@%:@undef HAVE_SYS_BUF_H])
+m4trace:configure.ac:49: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_BUF_H])
+m4trace:configure.ac:49: -1- m4_pattern_allow([^HAVE_SYS_BUF_H$])
+m4trace:configure.ac:54: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_WAIT_H])
+m4trace:configure.ac:54: -1- m4_pattern_allow([^HAVE_SYS_WAIT_H$])
+m4trace:configure.ac:54: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
+@%:@undef HAVE_SYS_WAIT_H])
+m4trace:configure.ac:56: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR\'.
+ */
+@%:@undef HAVE_DIRENT_H])
+m4trace:configure.ac:56: -1- AH_OUTPUT([HAVE_SYS_NDIR_H], [/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR\'.
+ */
+@%:@undef HAVE_SYS_NDIR_H])
+m4trace:configure.ac:56: -1- AH_OUTPUT([HAVE_SYS_DIR_H], [/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR\'.
+ */
+@%:@undef HAVE_SYS_DIR_H])
+m4trace:configure.ac:56: -1- AH_OUTPUT([HAVE_NDIR_H], [/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR\'. */
+@%:@undef HAVE_NDIR_H])
+m4trace:configure.ac:57: -1- AC_DEFINE_TRACE_LITERAL([MAJOR_IN_MKDEV])
+m4trace:configure.ac:57: -1- m4_pattern_allow([^MAJOR_IN_MKDEV$])
+m4trace:configure.ac:57: -1- AH_OUTPUT([MAJOR_IN_MKDEV], [/* Define to 1 if `major\', `minor\', and `makedev\' are declared in <mkdev.h>.
+ */
+@%:@undef MAJOR_IN_MKDEV])
+m4trace:configure.ac:57: -1- AC_DEFINE_TRACE_LITERAL([MAJOR_IN_SYSMACROS])
+m4trace:configure.ac:57: -1- m4_pattern_allow([^MAJOR_IN_SYSMACROS$])
+m4trace:configure.ac:57: -1- AH_OUTPUT([MAJOR_IN_SYSMACROS], [/* Define to 1 if `major\', `minor\', and `makedev\' are declared in
+ <sysmacros.h>. */
+@%:@undef MAJOR_IN_SYSMACROS])
+m4trace:configure.ac:58: -1- AC_DEFINE_TRACE_LITERAL([STAT_MACROS_BROKEN])
+m4trace:configure.ac:58: -1- m4_pattern_allow([^STAT_MACROS_BROKEN$])
+m4trace:configure.ac:58: -1- AH_OUTPUT([STAT_MACROS_BROKEN], [/* Define to 1 if the `S_IS*\' macros in <sys/stat.h> do not work properly. */
+@%:@undef STAT_MACROS_BROKEN])
+m4trace:configure.ac:59: -1- AC_DEFINE_TRACE_LITERAL([STDC_HEADERS])
+m4trace:configure.ac:59: -1- m4_pattern_allow([^STDC_HEADERS$])
+m4trace:configure.ac:59: -1- AH_OUTPUT([STDC_HEADERS], [/* Define to 1 if you have the ANSI C header files. */
+@%:@undef STDC_HEADERS])
+m4trace:configure.ac:62: -1- _m4_warn([obsolete], [The macro `AC_TRY_COMPILE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2615: AC_TRY_COMPILE is expanded from...
+../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
+../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from...
+configure.ac:62: the top level])
+m4trace:configure.ac:69: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ST_FSTYPE_STRING])
+m4trace:configure.ac:69: -1- m4_pattern_allow([^HAVE_ST_FSTYPE_STRING$])
+m4trace:configure.ac:69: -1- AH_OUTPUT([HAVE_ST_FSTYPE_STRING], [/* Define if struct stat has a char st_fstype@<:@@:>@ member. */
+@%:@undef HAVE_ST_FSTYPE_STRING])
+m4trace:configure.ac:73: -1- _m4_warn([obsolete], [The macro `AC_TYPE_SIGNAL' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/types.m4:738: AC_TYPE_SIGNAL is expanded from...
+configure.ac:73: the top level])
+m4trace:configure.ac:73: -1- AC_DEFINE_TRACE_LITERAL([RETSIGTYPE])
+m4trace:configure.ac:73: -1- m4_pattern_allow([^RETSIGTYPE$])
+m4trace:configure.ac:73: -1- AH_OUTPUT([RETSIGTYPE], [/* Define as the return type of signal handlers (`int\' or `void\'). */
+@%:@undef RETSIGTYPE])
+m4trace:configure.ac:74: -1- AC_DEFINE_TRACE_LITERAL([mode_t])
+m4trace:configure.ac:74: -1- m4_pattern_allow([^mode_t$])
+m4trace:configure.ac:74: -1- AH_OUTPUT([mode_t], [/* Define to `int\' if <sys/types.h> does not define. */
+@%:@undef mode_t])
+m4trace:configure.ac:75: -1- AC_DEFINE_TRACE_LITERAL([pid_t])
+m4trace:configure.ac:75: -1- m4_pattern_allow([^pid_t$])
+m4trace:configure.ac:75: -1- AH_OUTPUT([pid_t], [/* Define to `int\' if <sys/types.h> does not define. */
+@%:@undef pid_t])
+m4trace:configure.ac:76: -1- AC_DEFINE_TRACE_LITERAL([off_t])
+m4trace:configure.ac:76: -1- m4_pattern_allow([^off_t$])
+m4trace:configure.ac:76: -1- AH_OUTPUT([off_t], [/* Define to `long int\' if <sys/types.h> does not define. */
+@%:@undef off_t])
+m4trace:configure.ac:77: -1- AC_DEFINE_TRACE_LITERAL([size_t])
+m4trace:configure.ac:77: -1- m4_pattern_allow([^size_t$])
+m4trace:configure.ac:77: -1- AH_OUTPUT([size_t], [/* Define to `unsigned int\' if <sys/types.h> does not define. */
+@%:@undef size_t])
+m4trace:configure.ac:78: -1- AC_DEFINE_TRACE_LITERAL([uid_t])
+m4trace:configure.ac:78: -1- m4_pattern_allow([^uid_t$])
+m4trace:configure.ac:78: -1- AH_OUTPUT([uid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
+@%:@undef uid_t])
+m4trace:configure.ac:78: -1- AC_DEFINE_TRACE_LITERAL([gid_t])
+m4trace:configure.ac:78: -1- m4_pattern_allow([^gid_t$])
+m4trace:configure.ac:78: -1- AH_OUTPUT([gid_t], [/* Define to `int\' if <sys/types.h> doesn\'t define. */
+@%:@undef gid_t])
+m4trace:configure.ac:79: -2- AC_DEFINE_TRACE_LITERAL([major_t])
+m4trace:configure.ac:79: -2- m4_pattern_allow([^major_t$])
+m4trace:configure.ac:79: -2- AH_OUTPUT([major_t], [/* Type of major device numbers. */
+@%:@undef major_t])
+m4trace:configure.ac:81: -2- AC_DEFINE_TRACE_LITERAL([minor_t])
+m4trace:configure.ac:81: -2- m4_pattern_allow([^minor_t$])
+m4trace:configure.ac:81: -2- AH_OUTPUT([minor_t], [/* Type of minor device numbers. */
+@%:@undef minor_t])
+m4trace:configure.ac:83: -1- AC_DEFINE_TRACE_LITERAL([dev_t])
+m4trace:configure.ac:83: -1- m4_pattern_allow([^dev_t$])
+m4trace:configure.ac:83: -1- AH_OUTPUT([dev_t], [/* Define to `unsigned\' if <sys/types.h> does not define. */
+@%:@undef dev_t])
+m4trace:configure.ac:84: -1- AC_DEFINE_TRACE_LITERAL([ino_t])
+m4trace:configure.ac:84: -1- m4_pattern_allow([^ino_t$])
+m4trace:configure.ac:84: -1- AH_OUTPUT([ino_t], [/* Define to `unsigned\' if <sys/types.h> does not define. */
+@%:@undef ino_t])
+m4trace:configure.ac:86: -1- AC_DEFINE_TRACE_LITERAL([ssize_t])
+m4trace:configure.ac:86: -1- m4_pattern_allow([^ssize_t$])
+m4trace:configure.ac:86: -1- AH_OUTPUT([ssize_t], [/* Define as a signed type of the same size as size_t. */
+@%:@undef ssize_t])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_COND_LIBTOOL], [false])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_COND_LIBTOOL_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_COND_LIBTOOL_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_COND_LIBTOOL_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_COND_LIBTOOL_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_COND_LIBTOOL_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_COND_LIBTOOL_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_COND_LIBTOOL_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_COND_LIBTOOL_FALSE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([_Noreturn], [/* The _Noreturn keyword of C11. */
+#ifndef _Noreturn
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \\
+ || 0x5110 <= __SUNPRO_C)
+# define _Noreturn __attribute__ ((__noreturn__))
+# elif defined _MSC_VER && 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn
+# endif
+#endif
+])
+m4trace:configure.ac:89: -1- AH_OUTPUT([isoc99_inline], [/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
+ the ISO C 99 semantics of \'extern inline\' (unlike the GNU C semantics of
+ earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
+ __APPLE__ && __MACH__ test for MacOS X.
+ __APPLE_CC__ tests for the Apple compiler and its version.
+ __STDC_VERSION__ tests for the C99 mode. */
+#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
+# define __GNUC_STDC_INLINE__ 1
+#endif])
+m4trace:configure.ac:89: -1- AH_OUTPUT([unused_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 _GL_UNUSED __attribute__ ((__unused__))
+#else
+# 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
+
+/* The __pure__ attribute was added in gcc 2.96. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
+])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ALLOCA_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ALLOCA_H], [/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+ */
+@%:@undef HAVE_ALLOCA_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ALLOCA$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have `alloca\', as a function or macro. */
+@%:@undef HAVE_ALLOCA])
+m4trace:configure.ac:89: -1- AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([ALLOCA])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ALLOCA$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([C_ALLOCA])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^C_ALLOCA$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([C_ALLOCA], [/* Define to 1 if using \'alloca.c\'. */
+@%:@undef C_ALLOCA])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([CRAY_STACKSEG_END])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^CRAY_STACKSEG_END$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([CRAY_STACKSEG_END], [/* 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.
+ */
+@%:@undef CRAY_STACKSEG_END])
+m4trace:configure.ac:89: -1- AH_OUTPUT([STACK_DIRECTION], [/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at runtime.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
+@%:@undef STACK_DIRECTION])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([STACK_DIRECTION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STACK_DIRECTION$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ALLOCA])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ALLOCA$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ALLOCA], [/* Define to 1 if you have \'alloca\' after including <alloca.h>, a header that
+ may be supplied by this distribution. */
+@%:@undef HAVE_ALLOCA])
+m4trace:configure.ac:89: -1- AC_SUBST([ALLOCA_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([ALLOCA_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ALLOCA_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_ALLOCA_H_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_ALLOCA_H_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_ALLOCA_H_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_ALLOCA_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_ALLOCA_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_ALLOCA_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_ALLOCA_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_ALLOCA_H_FALSE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_AREADLINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_AREADLINKAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_AREADLINKAT], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module areadlinkat shall be considered present. */
+@%:@undef GNULIB_AREADLINKAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([restrict], [/* Define to the equivalent of the C99 \'restrict\' keyword, or to
+ nothing if this is not supported. Do not define if restrict is
+ supported directly. */
+#undef restrict
+/* Work around a bug in Sun C++: it does not support _Restrict or
+ __restrict__, even though the corresponding Sun C compiler ends up with
+ "#define restrict _Restrict" or "#define restrict __restrict__" in the
+ previous line. Perhaps some future version of Sun C++ will work with
+ restrict; if so, hopefully it defines __RESTRICT like Sun C does. */
+#if defined __SUNPRO_CC && !defined __RESTRICT
+# define _Restrict
+# define __restrict__
+#endif])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([restrict])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^restrict$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([restrict])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^restrict$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PROGRAM_INVOCATION_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PROGRAM_INVOCATION_NAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_PROGRAM_INVOCATION_NAME], [/* Define if program_invocation_name is declared */
+@%:@undef HAVE_DECL_PROGRAM_INVOCATION_NAME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_PROGRAM_INVOCATION_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PROGRAM_INVOCATION_NAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_PROGRAM_INVOCATION_NAME], [/* Define to 1 to add extern declaration of program_invocation_name to argp.h
+ */
+@%:@undef GNULIB_PROGRAM_INVOCATION_NAME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME], [/* Define if program_invocation_short_name is declared */
+@%:@undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_PROGRAM_INVOCATION_SHORT_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PROGRAM_INVOCATION_SHORT_NAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_PROGRAM_INVOCATION_SHORT_NAME], [/* Define to 1 to add extern declaration of program_invocation_short_name to
+ argp.h */
+@%:@undef GNULIB_PROGRAM_INVOCATION_SHORT_NAME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PROGRAM_INVOCATION_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PROGRAM_INVOCATION_NAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_PROGRAM_INVOCATION_NAME], [/* Define if program_invocation_name is defined */
+@%:@undef HAVE_PROGRAM_INVOCATION_NAME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PROGRAM_INVOCATION_SHORT_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PROGRAM_INVOCATION_SHORT_NAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [/* Define if program_invocation_short_name is defined */
+@%:@undef HAVE_PROGRAM_INVOCATION_SHORT_NAME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CLEARERR_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_CLEARERR_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_CLEARERR_UNLOCKED], [/* Define to 1 if you have the declaration of `clearerr_unlocked\', and to 0 if
+ you don\'t. */
+@%:@undef HAVE_DECL_CLEARERR_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FEOF_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FEOF_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_FEOF_UNLOCKED], [/* Define to 1 if you have the declaration of `feof_unlocked\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_FEOF_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FERROR_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FERROR_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_FERROR_UNLOCKED], [/* Define to 1 if you have the declaration of `ferror_unlocked\', and to 0 if
+ you don\'t. */
+@%:@undef HAVE_DECL_FERROR_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FFLUSH_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FFLUSH_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_FFLUSH_UNLOCKED], [/* Define to 1 if you have the declaration of `fflush_unlocked\', and to 0 if
+ you don\'t. */
+@%:@undef HAVE_DECL_FFLUSH_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FGETS_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FGETS_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_FGETS_UNLOCKED], [/* Define to 1 if you have the declaration of `fgets_unlocked\', and to 0 if
+ you don\'t. */
+@%:@undef HAVE_DECL_FGETS_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FPUTC_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FPUTC_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_FPUTC_UNLOCKED], [/* Define to 1 if you have the declaration of `fputc_unlocked\', and to 0 if
+ you don\'t. */
+@%:@undef HAVE_DECL_FPUTC_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FPUTS_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FPUTS_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_FPUTS_UNLOCKED], [/* Define to 1 if you have the declaration of `fputs_unlocked\', and to 0 if
+ you don\'t. */
+@%:@undef HAVE_DECL_FPUTS_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FREAD_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FREAD_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_FREAD_UNLOCKED], [/* Define to 1 if you have the declaration of `fread_unlocked\', and to 0 if
+ you don\'t. */
+@%:@undef HAVE_DECL_FREAD_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FWRITE_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FWRITE_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_FWRITE_UNLOCKED], [/* Define to 1 if you have the declaration of `fwrite_unlocked\', and to 0 if
+ you don\'t. */
+@%:@undef HAVE_DECL_FWRITE_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_GETC_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETC_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_GETC_UNLOCKED], [/* Define to 1 if you have the declaration of `getc_unlocked\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_GETC_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_GETCHAR_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETCHAR_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_GETCHAR_UNLOCKED], [/* Define to 1 if you have the declaration of `getchar_unlocked\', and to 0 if
+ you don\'t. */
+@%:@undef HAVE_DECL_GETCHAR_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PUTC_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PUTC_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_PUTC_UNLOCKED], [/* Define to 1 if you have the declaration of `putc_unlocked\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_PUTC_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PUTCHAR_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PUTCHAR_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_PUTCHAR_UNLOCKED], [/* Define to 1 if you have the declaration of `putchar_unlocked\', and to 0 if
+ you don\'t. */
+@%:@undef HAVE_DECL_PUTCHAR_UNLOCKED])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FLOCKFILE], [/* Define to 1 if you have the `flockfile\' function. */
+@%:@undef HAVE_FLOCKFILE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FUNLOCKFILE], [/* Define to 1 if you have the `funlockfile\' function. */
+@%:@undef HAVE_FUNLOCKFILE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FEATURES_H], [/* Define to 1 if you have the <features.h> header file. */
+@%:@undef HAVE_FEATURES_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LINEWRAP_H], [/* Define to 1 if you have the <linewrap.h> header file. */
+@%:@undef HAVE_LINEWRAP_H])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=argp_error:2:c-format])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=argp_failure:4:c-format])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([D_INO_IN_DIRENT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^D_INO_IN_DIRENT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([D_INO_IN_DIRENT], [/* Define if struct dirent has a member d_ino that actually works. */
+@%:@undef D_INO_IN_DIRENT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_FILE_NAMES])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LONG_FILE_NAMES$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LONG_FILE_NAMES], [/* Define to 1 if you support file names longer than 14 characters. */
+@%:@undef HAVE_LONG_FILE_NAMES])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_PATHCONF], [/* Define to 1 if you have the `pathconf\' function. */
+@%:@undef HAVE_PATHCONF])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_BTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_BTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_BTOWC$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCTOB])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCTOB])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCTOB$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSINIT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSINIT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSINIT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBRTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBRTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBRTOWC$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBRLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBRLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBRLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSRTOWCS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSRTOWCS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSRTOWCS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSNRTOWCS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSNRTOWCS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSNRTOWCS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCRTOMB])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCRTOMB])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCRTOMB$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSRTOMBS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSRTOMBS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSRTOMBS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSNRTOMBS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSNRTOMBS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNRTOMBS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCWIDTH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCWIDTH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCWIDTH$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WMEMCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WMEMCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WMEMCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WMEMCMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WMEMCMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WMEMCMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WMEMCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WMEMCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WMEMCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WMEMMOVE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WMEMMOVE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WMEMMOVE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WMEMSET])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WMEMSET])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WMEMSET$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSNLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSNLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCPCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCPCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCPCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSNCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSNCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCPNCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCPNCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCPNCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSCAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSCAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSNCAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSNCAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNCAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSCMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSCMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSNCMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSNCMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNCMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSCASECMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCASECMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSNCASECMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSNCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSNCASECMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSCOLL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSCOLL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCOLL$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSXFRM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSXFRM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSXFRM$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSDUP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSDUP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSRCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSRCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSRCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSCSPN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSCSPN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSCSPN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSSPN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSSPN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSSPN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSPBRK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSPBRK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSPBRK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSSTR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSSTR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSSTR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSTOK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSTOK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSTOK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCSWIDTH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCSWIDTH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCSWIDTH$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_BTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_BTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_BTOWC$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MBSINIT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MBSINIT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBSINIT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MBRTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MBRTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBRTOWC$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MBRLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MBRLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBRLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MBSRTOWCS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MBSRTOWCS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBSRTOWCS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MBSNRTOWCS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MBSNRTOWCS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBSNRTOWCS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCRTOMB])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCRTOMB])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCRTOMB$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSRTOMBS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSRTOMBS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSRTOMBS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSNRTOMBS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSNRTOMBS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNRTOMBS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WMEMCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WMEMCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WMEMCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WMEMCMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WMEMCMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WMEMCMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WMEMCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WMEMCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WMEMCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WMEMMOVE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WMEMMOVE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WMEMMOVE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WMEMSET])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WMEMSET])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WMEMSET$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSNLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSNLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCPCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCPCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCPCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSNCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSNCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCPNCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCPNCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCPNCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSCAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSCAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSNCAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSNCAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNCAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSCMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSCMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSNCMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSNCMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNCMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSCASECMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCASECMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSNCASECMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSNCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSNCASECMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSCOLL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSCOLL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCOLL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSXFRM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSXFRM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSXFRM$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSDUP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSDUP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSRCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSRCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSRCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSCSPN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSCSPN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSCSPN$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSSPN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSSPN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSSPN$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSPBRK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSPBRK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSPBRK$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSSTR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSSTR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSSTR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSTOK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSTOK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSTOK$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCSWIDTH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCSWIDTH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCSWIDTH$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_WCTOB])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_WCTOB])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_WCTOB$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_WCWIDTH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_WCWIDTH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_WCWIDTH$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MBSTATE_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MBSTATE_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBSTATE_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_BTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_BTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_BTOWC$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_WCTOB])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_WCTOB])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCTOB$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MBSINIT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MBSINIT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBSINIT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MBRTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MBRTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBRTOWC$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MBRLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MBRLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBRLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MBSRTOWCS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MBSRTOWCS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBSRTOWCS$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MBSNRTOWCS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MBSNRTOWCS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBSNRTOWCS$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_WCRTOMB])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_WCRTOMB])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCRTOMB$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_WCSRTOMBS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_WCSRTOMBS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCSRTOMBS$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_WCSNRTOMBS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_WCSNRTOMBS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCSNRTOMBS$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_WCWIDTH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_WCWIDTH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCWIDTH$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_WCSWIDTH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_WCSWIDTH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCSWIDTH$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_BTOWC], [/* Define to 1 if you have the `btowc\' function. */
+@%:@undef HAVE_BTOWC])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_CODESET])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LANGINFO_CODESET], [/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+@%:@undef HAVE_LANGINFO_CODESET])
+m4trace:configure.ac:89: -1- AC_SUBST([LOCALE_FR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LOCALE_FR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LOCALE_FR$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_BTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_BTOWC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_BTOWC], [/* Define to 1 when the gnulib module btowc should be tested. */
+@%:@undef GNULIB_TEST_BTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB__EXIT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB__EXIT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB__EXIT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_ATOLL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_ATOLL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ATOLL$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_CALLOC_POSIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_CALLOC_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CALLOC_POSIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_CANONICALIZE_FILE_NAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_CANONICALIZE_FILE_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CANONICALIZE_FILE_NAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETLOADAVG])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETLOADAVG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETLOADAVG$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETSUBOPT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETSUBOPT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETSUBOPT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GRANTPT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GRANTPT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GRANTPT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MALLOC_POSIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MALLOC_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MALLOC_POSIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBTOWC$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MKDTEMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MKDTEMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKDTEMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MKOSTEMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MKOSTEMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKOSTEMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MKOSTEMPS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MKOSTEMPS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKOSTEMPS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MKSTEMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MKSTEMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKSTEMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MKSTEMPS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MKSTEMPS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKSTEMPS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_POSIX_OPENPT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_POSIX_OPENPT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_POSIX_OPENPT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PTSNAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PTSNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PTSNAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PTSNAME_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PTSNAME_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PTSNAME_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PUTENV])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PUTENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PUTENV$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_RANDOM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_RANDOM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RANDOM$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_RANDOM_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_RANDOM_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RANDOM_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_REALLOC_POSIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_REALLOC_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_REALLOC_POSIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_REALPATH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_REALPATH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_REALPATH$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_RPMATCH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_RPMATCH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RPMATCH$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SETENV])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SETENV$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRTOD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRTOD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOD$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRTOLL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRTOLL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOLL$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRTOULL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRTOULL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOULL$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SYSTEM_POSIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SYSTEM_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SYSTEM_POSIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_UNLOCKPT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_UNLOCKPT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNLOCKPT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_UNSETENV])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_UNSETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNSETENV$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCTOMB])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCTOMB])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCTOMB$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE__EXIT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE__EXIT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE__EXIT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_ATOLL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_ATOLL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ATOLL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_CANONICALIZE_FILE_NAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_CANONICALIZE_FILE_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_CANONICALIZE_FILE_NAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_GETLOADAVG])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_GETLOADAVG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETLOADAVG$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_GETSUBOPT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_GETSUBOPT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETSUBOPT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_GRANTPT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_GRANTPT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GRANTPT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MKDTEMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MKDTEMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKDTEMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MKOSTEMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MKOSTEMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKOSTEMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MKOSTEMPS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MKOSTEMPS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKOSTEMPS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MKSTEMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MKSTEMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKSTEMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MKSTEMPS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MKSTEMPS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKSTEMPS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_POSIX_OPENPT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_POSIX_OPENPT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_POSIX_OPENPT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_PTSNAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_PTSNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PTSNAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_PTSNAME_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_PTSNAME_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PTSNAME_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_RANDOM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_RANDOM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RANDOM$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_RANDOM_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_RANDOM_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RANDOM_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_RANDOM_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_RANDOM_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RANDOM_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_REALPATH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_REALPATH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_REALPATH$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_RPMATCH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_RPMATCH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RPMATCH$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SETENV])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SETENV$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_SETENV])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_SETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SETENV$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRTOD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRTOD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOD$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRTOLL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRTOLL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOLL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRTOULL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRTOULL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOULL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRUCT_RANDOM_DATA])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_RANDOM_DATA$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SYS_LOADAVG_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SYS_LOADAVG_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_LOADAVG_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_UNLOCKPT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_UNLOCKPT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNLOCKPT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_UNSETENV])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_UNSETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_UNSETENV$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_CALLOC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_CALLOC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_CALLOC$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_CANONICALIZE_FILE_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_CANONICALIZE_FILE_NAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MALLOC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MALLOC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MALLOC$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MBTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MBTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MBTOWC$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MKSTEMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MKSTEMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MKSTEMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_PTSNAME_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_PTSNAME_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PTSNAME_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_PUTENV])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_PUTENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PUTENV$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_RANDOM_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_RANDOM_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_RANDOM_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_REALLOC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_REALLOC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_REALLOC$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_REALPATH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_REALPATH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_REALPATH$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_SETENV])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_SETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_SETENV$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRTOD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRTOD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRTOD$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_UNSETENV])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_UNSETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_UNSETENV$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_WCTOMB])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_WCTOMB])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WCTOMB$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_CANONICALIZE_FILE_NAME], [/* Define to 1 if you have the `canonicalize_file_name\' function. */
+@%:@undef HAVE_CANONICALIZE_FILE_NAME])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_GETCWD], [/* Define to 1 if you have the `getcwd\' function. */
+@%:@undef HAVE_GETCWD])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_READLINK], [/* Define to 1 if you have the `readlink\' function. */
+@%:@undef HAVE_READLINK])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([DOUBLE_SLASH_IS_DISTINCT_ROOT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^DOUBLE_SLASH_IS_DISTINCT_ROOT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([DOUBLE_SLASH_IS_DISTINCT_ROOT], [/* Define to 1 if // is a file system root distinct from /. */
+@%:@undef DOUBLE_SLASH_IS_DISTINCT_ROOT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_REALPATH], [/* Define to 1 if you have the `realpath\' function. */
+@%:@undef HAVE_REALPATH])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([FUNC_REALPATH_WORKS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FUNC_REALPATH_WORKS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([FUNC_REALPATH_WORKS], [/* Define to 1 if realpath() can malloc memory, always gives an absolute path,
+ and handles trailing slash correctly. */
+@%:@undef FUNC_REALPATH_WORKS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */
+@%:@undef HAVE_SYS_PARAM_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_CANONICALIZE_LGPL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CANONICALIZE_LGPL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_CANONICALIZE_LGPL], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module canonicalize-lgpl shall be considered present. */
+@%:@undef GNULIB_CANONICALIZE_LGPL])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_CANONICALIZE_FILE_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CANONICALIZE_FILE_NAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_CANONICALIZE_FILE_NAME], [/* Define to 1 when the gnulib module canonicalize_file_name should be tested.
+ */
+@%:@undef GNULIB_TEST_CANONICALIZE_FILE_NAME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_REALPATH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_REALPATH$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_REALPATH], [/* Define to 1 when the gnulib module realpath should be tested. */
+@%:@undef GNULIB_TEST_REALPATH])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_READLINKAT], [/* Define to 1 if you have the `readlinkat\' function. */
+@%:@undef HAVE_READLINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_CHDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_CHDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CHDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_CHOWN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_CHOWN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CHOWN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_CLOSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_CLOSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CLOSE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_DUP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_DUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DUP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_DUP2])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_DUP2])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DUP2$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_DUP3])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_DUP3])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DUP3$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_ENVIRON])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_ENVIRON])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ENVIRON$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_EUIDACCESS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_EUIDACCESS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_EUIDACCESS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FACCESSAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FACCESSAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FACCESSAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FCHDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FCHDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FCHDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FCHOWNAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FCHOWNAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FCHOWNAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FDATASYNC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FDATASYNC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FDATASYNC$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FSYNC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FSYNC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSYNC$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FTRUNCATE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FTRUNCATE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FTRUNCATE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETCWD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETCWD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETCWD$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETDOMAINNAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETDOMAINNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETDOMAINNAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETDTABLESIZE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETDTABLESIZE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETDTABLESIZE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETGROUPS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETGROUPS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETGROUPS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETHOSTNAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETHOSTNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETHOSTNAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETLOGIN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETLOGIN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETLOGIN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETLOGIN_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETLOGIN_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETLOGIN_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETPAGESIZE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETPAGESIZE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETUSERSHELL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETUSERSHELL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETUSERSHELL$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GROUP_MEMBER])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GROUP_MEMBER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GROUP_MEMBER$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_ISATTY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_ISATTY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ISATTY$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_LCHOWN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_LCHOWN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LCHOWN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_LINK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_LINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LINK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_LINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_LINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LINKAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_LSEEK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_LSEEK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LSEEK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PIPE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PIPE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PIPE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PIPE2])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PIPE2])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PIPE2$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PREAD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PREAD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PREAD$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PWRITE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PWRITE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PWRITE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_READ])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_READ])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_READ$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_READLINK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_READLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_READLINK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_READLINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_READLINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_READLINKAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_RMDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_RMDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RMDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SETHOSTNAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SETHOSTNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SETHOSTNAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SLEEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SLEEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SLEEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SYMLINK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SYMLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SYMLINK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SYMLINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SYMLINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SYMLINKAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_TTYNAME_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_TTYNAME_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TTYNAME_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_UNISTD_H_NONBLOCKING])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNISTD_H_NONBLOCKING$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_UNISTD_H_SIGPIPE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_UNISTD_H_SIGPIPE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNISTD_H_SIGPIPE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_UNLINK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_UNLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNLINK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_UNLINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_UNLINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UNLINKAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_USLEEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_USLEEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_USLEEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WRITE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WRITE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WRITE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_CHOWN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_CHOWN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_CHOWN$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DUP2])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DUP2])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DUP2$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DUP3])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DUP3])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DUP3$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_EUIDACCESS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_EUIDACCESS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_EUIDACCESS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FACCESSAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FACCESSAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FACCESSAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FCHDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FCHDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FCHDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FCHOWNAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FCHOWNAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FCHOWNAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FDATASYNC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FDATASYNC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FDATASYNC$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FSYNC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FSYNC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FSYNC$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FTRUNCATE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FTRUNCATE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FTRUNCATE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_GETDTABLESIZE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_GETDTABLESIZE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETDTABLESIZE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_GETGROUPS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_GETGROUPS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETGROUPS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_GETHOSTNAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_GETHOSTNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETHOSTNAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_GETLOGIN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_GETLOGIN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETLOGIN$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_GETPAGESIZE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_GETPAGESIZE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_GROUP_MEMBER])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_GROUP_MEMBER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GROUP_MEMBER$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_LCHOWN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_LCHOWN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LCHOWN$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_LINK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_LINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LINK$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_LINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_LINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LINKAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_PIPE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_PIPE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PIPE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_PIPE2])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_PIPE2])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PIPE2$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_PREAD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_PREAD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PREAD$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_PWRITE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_PWRITE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PWRITE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_READLINK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_READLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_READLINK$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_READLINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_READLINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_READLINKAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SETHOSTNAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SETHOSTNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SETHOSTNAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SLEEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SLEEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SLEEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SYMLINK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SYMLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYMLINK$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SYMLINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SYMLINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYMLINKAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_UNLINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_UNLINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNLINKAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_USLEEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_USLEEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_USLEEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_ENVIRON])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_ENVIRON])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_ENVIRON$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_FCHDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_FCHDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FCHDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_FDATASYNC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_FDATASYNC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FDATASYNC$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_GETDOMAINNAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_GETDOMAINNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETDOMAINNAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_GETLOGIN_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_GETLOGIN_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETLOGIN_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_GETPAGESIZE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_GETPAGESIZE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_GETUSERSHELL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_GETUSERSHELL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETUSERSHELL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_SETHOSTNAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_SETHOSTNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SETHOSTNAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_TTYNAME_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_TTYNAME_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_TTYNAME_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_OS_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_OS_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OS_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SYS_PARAM_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SYS_PARAM_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_PARAM_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_CHOWN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_CHOWN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_CHOWN$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_CLOSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_CLOSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_CLOSE$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_DUP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_DUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_DUP$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_DUP2])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_DUP2])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_DUP2$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FCHOWNAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FCHOWNAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FCHOWNAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_GETCWD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_GETCWD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETCWD$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_GETDOMAINNAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_GETDOMAINNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETDOMAINNAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_GETLOGIN_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_GETLOGIN_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETLOGIN_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_GETGROUPS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_GETGROUPS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETGROUPS$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_GETPAGESIZE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_GETPAGESIZE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_ISATTY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_ISATTY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_ISATTY$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_LCHOWN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_LCHOWN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LCHOWN$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_LINK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_LINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LINK$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_LINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_LINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LINKAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_LSEEK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_LSEEK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LSEEK$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_PREAD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_PREAD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PREAD$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_PWRITE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_PWRITE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PWRITE$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_READ])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_READ])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_READ$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_READLINK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_READLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_READLINK$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_RMDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_RMDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_RMDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_SLEEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_SLEEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_SLEEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_SYMLINK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_SYMLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_SYMLINK$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_TTYNAME_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_TTYNAME_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_TTYNAME_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_UNLINK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_UNLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_UNLINK$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_UNLINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_UNLINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_UNLINKAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_USLEEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_USLEEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_USLEEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_WRITE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_WRITE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_WRITE$])
+m4trace:configure.ac:89: -1- AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([UNISTD_H_HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UNISTD_H_HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UNISTD_H_HAVE_WINSOCK2_H_AND_USE_SOCKETS$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_CHDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CHDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_CHDIR], [/* Define to 1 when the gnulib module chdir should be tested. */
+@%:@undef GNULIB_TEST_CHDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */
+@%:@undef HAVE_SYS_PARAM_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNISTD_H$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CHOWN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_CHOWN$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_CHOWN], [/* Define to 1 if your system has a working `chown\' function. */
+@%:@undef HAVE_CHOWN])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([CHOWN_MODIFIES_SYMLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^CHOWN_MODIFIES_SYMLINK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([CHOWN_MODIFIES_SYMLINK], [/* Define if chown modifies symlinks. */
+@%:@undef CHOWN_MODIFIES_SYMLINK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_CHOWN], [/* Define to 1 if you have the `chown\' function. */
+@%:@undef HAVE_CHOWN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCHOWN], [/* Define to 1 if you have the `fchown\' function. */
+@%:@undef HAVE_FCHOWN])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE], [/* Define if chown is not POSIX compliant regarding IDs of -1. */
+@%:@undef CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([CHOWN_TRAILING_SLASH_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^CHOWN_TRAILING_SLASH_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([CHOWN_TRAILING_SLASH_BUG], [/* Define to 1 if chown mishandles trailing slash. */
+@%:@undef CHOWN_TRAILING_SLASH_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([CHOWN_CHANGE_TIME_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^CHOWN_CHANGE_TIME_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([CHOWN_CHANGE_TIME_BUG], [/* Define to 1 if chown fails to change ctime when at least one argument was
+ not -1. */
+@%:@undef CHOWN_CHANGE_TIME_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_CHOWN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CHOWN$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_CHOWN], [/* Define to 1 when the gnulib module chown should be tested. */
+@%:@undef GNULIB_TEST_CHOWN])
+m4trace:configure.ac:89: -1- AC_SUBST([LIB_CLOCK_GETTIME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LIB_CLOCK_GETTIME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIB_CLOCK_GETTIME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_CLOCK_GETTIME], [/* Define to 1 if you have the `clock_gettime\' function. */
+@%:@undef HAVE_CLOCK_GETTIME])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_CLOCK_SETTIME], [/* Define to 1 if you have the `clock_settime\' function. */
+@%:@undef HAVE_CLOCK_SETTIME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_CLOEXEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CLOEXEC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_CLOEXEC], [/* Define to 1 when the gnulib module cloexec should be tested. */
+@%:@undef GNULIB_TEST_CLOEXEC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE__SET_INVALID_PARAMETER_HANDLER], [/* Define to 1 if you have the `_set_invalid_parameter_handler\' function. */
+@%:@undef HAVE__SET_INVALID_PARAMETER_HANDLER])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MSVC_INVALID_PARAMETER_HANDLER$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [/* Define to 1 on MSVC platforms that have the "invalid parameter handler"
+ concept. */
+@%:@undef HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MSVC_INVALID_PARAMETER_HANDLER$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
+@%:@undef HAVE_SYS_SOCKET_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WINSOCK2_H], [/* Define to 1 if you have the <winsock2.h> header file. */
+@%:@undef HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCHDIR], [/* Define to 1 if you have the `fchdir\' function. */
+@%:@undef HAVE_FCHDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_CLOSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CLOSE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_CLOSE], [/* Define to 1 when the gnulib module close should be tested. */
+@%:@undef GNULIB_TEST_CLOSE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_CLOSE_STREAM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CLOSE_STREAM$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_CLOSE_STREAM], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module close-stream shall be considered present. */
+@%:@undef GNULIB_CLOSE_STREAM])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_OPENDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_OPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OPENDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_READDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_READDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_READDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_REWINDDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_REWINDDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_REWINDDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_CLOSEDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_CLOSEDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_CLOSEDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_DIRFD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_DIRFD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DIRFD$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FDOPENDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FDOPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FDOPENDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SCANDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SCANDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SCANDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_ALPHASORT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_ALPHASORT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ALPHASORT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_OPENDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_OPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OPENDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_READDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_READDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_READDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_REWINDDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_REWINDDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_REWINDDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_CLOSEDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_CLOSEDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_CLOSEDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_DIRFD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_DIRFD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_DIRFD$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_FDOPENDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_FDOPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FDOPENDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FDOPENDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FDOPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FDOPENDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SCANDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SCANDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SCANDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_ALPHASORT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_ALPHASORT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ALPHASORT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_OPENDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_OPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_OPENDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_CLOSEDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_CLOSEDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_CLOSEDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_DIRFD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_DIRFD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_DIRFD$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FDOPENDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FDOPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FDOPENDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_CLOSEDIR], [/* Define to 1 if you have the `closedir\' function. */
+@%:@undef HAVE_CLOSEDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CLOSEDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_CLOSEDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCHDIR], [/* Define to 1 if you have the `fchdir\' function. */
+@%:@undef HAVE_FCHDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_CLOSEDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_CLOSEDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_CLOSEDIR], [/* Define to 1 when the gnulib module closedir should be tested. */
+@%:@undef GNULIB_TEST_CLOSEDIR])
+m4trace:configure.ac:89: -1- AC_SUBST([datarootdir], ['${datadir}'])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([datarootdir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^datarootdir$])
+m4trace:configure.ac:89: -1- AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
+ ['${datarootdir}/doc/${PACKAGE_TARNAME}'],
+ ['${datarootdir}/doc/${PACKAGE}'])])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([docdir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^docdir$])
+m4trace:configure.ac:89: -1- AC_SUBST([htmldir], ['${docdir}'])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([htmldir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^htmldir$])
+m4trace:configure.ac:89: -1- AC_SUBST([dvidir], ['${docdir}'])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([dvidir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^dvidir$])
+m4trace:configure.ac:89: -1- AC_SUBST([pdfdir], ['${docdir}'])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([pdfdir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^pdfdir$])
+m4trace:configure.ac:89: -1- AC_SUBST([psdir], ['${docdir}'])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([psdir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^psdir$])
+m4trace:configure.ac:89: -1- AC_SUBST([lispdir], ['${datarootdir}/emacs/site-lisp'])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([lispdir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^lispdir$])
+m4trace:configure.ac:89: -1- AC_SUBST([localedir], ['${datarootdir}/locale'])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([localedir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:89: -1- AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}'])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([pkglibexecdir])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^pkglibexecdir$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([D_INO_IN_DIRENT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^D_INO_IN_DIRENT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([D_INO_IN_DIRENT], [/* Define if struct dirent has a member d_ino that actually works. */
+@%:@undef D_INO_IN_DIRENT])
+m4trace:configure.ac:89: -1- AC_SUBST([INCLUDE_NEXT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INCLUDE_NEXT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INCLUDE_NEXT$])
+m4trace:configure.ac:89: -1- AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INCLUDE_NEXT_AS_FIRST_DIRECTIVE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INCLUDE_NEXT_AS_FIRST_DIRECTIVE$])
+m4trace:configure.ac:89: -1- AC_SUBST([PRAGMA_SYSTEM_HEADER])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([PRAGMA_SYSTEM_HEADER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRAGMA_SYSTEM_HEADER$])
+m4trace:configure.ac:89: -1- AC_SUBST([PRAGMA_COLUMNS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([PRAGMA_COLUMNS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRAGMA_COLUMNS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the <dirent.h> header file. */
+@%:@undef HAVE_DIRENT_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_DIRENT_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_DIRENT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_DIRENT_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_DIRENT_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_DIRENT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_DIRENT_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DIRENT_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DIRENT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DIRENT_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_ALPHASORT], [/* Define to 1 if alphasort is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_ALPHASORT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_CLOSEDIR], [/* Define to 1 if closedir is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_CLOSEDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_DIRFD], [/* Define to 1 if dirfd is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_DIRFD])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FDOPENDIR], [/* Define to 1 if fdopendir is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FDOPENDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_OPENDIR], [/* Define to 1 if opendir is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_OPENDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_READDIR], [/* Define to 1 if readdir is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_READDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_REWINDDIR], [/* Define to 1 if rewinddir is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_REWINDDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SCANDIR], [/* Define to 1 if scandir is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SCANDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FDOPENDIR], [/* Define to 1 if you have the `fdopendir\' function. */
+@%:@undef HAVE_FDOPENDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_DIRENT_SAFER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DIRENT_SAFER$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_DIRENT_SAFER], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module dirent-safer shall be considered present. */
+@%:@undef GNULIB_DIRENT_SAFER])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DIRFD], [/* Define to 1 if you have the `dirfd\' function. */
+@%:@undef HAVE_DIRFD])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DIRFD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DIRFD$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_DIRFD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_DIRFD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_DIRFD], [/* Define to 1 if you have the declaration of `dirfd\', and to 0 if you don\'t.
+ */
+@%:@undef HAVE_DECL_DIRFD])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([DIR_FD_MEMBER_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^DIR_FD_MEMBER_NAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([DIR_FD_MEMBER_NAME], [/* the name of the file descriptor member of DIR */
+@%:@undef DIR_FD_MEMBER_NAME])
+m4trace:configure.ac:89: -1- AH_OUTPUT([DIR_TO_FD], [#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
+#endif
+])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_DIRFD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_DIRFD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_DIRFD], [/* Define to 1 when the gnulib module dirfd should be tested. */
+@%:@undef GNULIB_TEST_DIRFD])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_DIRNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DIRNAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_DIRNAME], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module dirname shall be considered present. */
+@%:@undef GNULIB_DIRNAME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([DOUBLE_SLASH_IS_DISTINCT_ROOT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^DOUBLE_SLASH_IS_DISTINCT_ROOT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([DOUBLE_SLASH_IS_DISTINCT_ROOT], [/* Define to 1 if // is a file system root distinct from /. */
+@%:@undef DOUBLE_SLASH_IS_DISTINCT_ROOT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCHDIR], [/* Define to 1 if you have the `fchdir\' function. */
+@%:@undef HAVE_FCHDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_DUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_DUP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_DUP], [/* Define to 1 when the gnulib module dup should be tested. */
+@%:@undef GNULIB_TEST_DUP])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DUP2])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DUP2$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DUP2], [/* Define to 1 if you have the \'dup2\' function. */
+@%:@undef HAVE_DUP2])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCHDIR], [/* Define to 1 if you have the `fchdir\' function. */
+@%:@undef HAVE_FCHDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_DUP2])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_DUP2$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_DUP2], [/* Define to 1 when the gnulib module dup2 should be tested. */
+@%:@undef GNULIB_TEST_DUP2])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ENVIRON_DECL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ENVIRON_DECL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ENVIRON_DECL], [/* Define if you have the declaration of environ. */
+@%:@undef HAVE_ENVIRON_DECL])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_ENVIRON])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_ENVIRON$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_ENVIRON], [/* Define to 1 when the gnulib module environ should be tested. */
+@%:@undef GNULIB_TEST_ENVIRON])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_ERRNO_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_ERRNO_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_ERRNO_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_ERRNO_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_ERRNO_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_ERRNO_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([ERRNO_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([ERRNO_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ERRNO_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_ERRNO_H_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_ERRNO_H_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_ERRNO_H_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_ERRNO_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_ERRNO_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_ERRNO_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_ERRNO_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_ERRNO_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST([EMULTIHOP_HIDDEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([EMULTIHOP_HIDDEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^EMULTIHOP_HIDDEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([EMULTIHOP_VALUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([EMULTIHOP_VALUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^EMULTIHOP_VALUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([ENOLINK_HIDDEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([ENOLINK_HIDDEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ENOLINK_HIDDEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([ENOLINK_VALUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([ENOLINK_VALUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ENOLINK_VALUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([EOVERFLOW_HIDDEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([EOVERFLOW_HIDDEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^EOVERFLOW_HIDDEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([EOVERFLOW_VALUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([EOVERFLOW_VALUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^EOVERFLOW_VALUE$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRERROR_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRERROR_R$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_STRERROR_R], [/* Define to 1 if you have the declaration of `strerror_r\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_STRERROR_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRERROR_R], [/* Define to 1 if you have the `strerror_r\' function. */
+@%:@undef HAVE_STRERROR_R])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRERROR_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRERROR_R$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([STRERROR_R_CHAR_P])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STRERROR_R_CHAR_P$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([STRERROR_R_CHAR_P], [/* Define to 1 if strerror_r returns char *. */
+@%:@undef STRERROR_R_CHAR_P])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=error:3:c-format])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=error_at_line:5:c-format])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FCHDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FCHDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_FCHDIR], [/* Define to 1 if you have the declaration of `fchdir\', and to 0 if you don\'t.
+ */
+@%:@undef HAVE_DECL_FCHDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([REPLACE_FCHDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FCHDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([REPLACE_FCHDIR], [/* Define to 1 if gnulib\'s fchdir() replacement is used. */
+@%:@undef REPLACE_FCHDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([REPLACE_OPEN_DIRECTORY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_OPEN_DIRECTORY$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([REPLACE_OPEN_DIRECTORY], [/* Define to 1 if open() should work around the inability to open a directory.
+ */
+@%:@undef REPLACE_OPEN_DIRECTORY])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_FCHDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FCHDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_FCHDIR], [/* Define to 1 when the gnulib module fchdir should be tested. */
+@%:@undef GNULIB_TEST_FCHDIR])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FCNTL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FCNTL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FCNTL$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_NONBLOCKING])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_NONBLOCKING])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_NONBLOCKING$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_OPEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_OPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OPEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_OPENAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_OPENAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OPENAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FCNTL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FCNTL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FCNTL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_OPENAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_OPENAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OPENAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FCNTL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FCNTL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FCNTL$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_OPEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_OPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_OPEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_OPENAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_OPENAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_OPENAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */
+@%:@undef HAVE_FCNTL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */
+@%:@undef HAVE_FCNTL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */
+@%:@undef HAVE_FCNTL])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([FCNTL_DUPFD_BUGGY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FCNTL_DUPFD_BUGGY$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([FCNTL_DUPFD_BUGGY], [/* Define this to 1 if F_DUPFD behavior does not match POSIX */
+@%:@undef FCNTL_DUPFD_BUGGY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */
+@%:@undef HAVE_FCNTL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCHDIR], [/* Define to 1 if you have the `fchdir\' function. */
+@%:@undef HAVE_FCHDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCNTL], [/* Define to 1 if you have the `fcntl\' function. */
+@%:@undef HAVE_FCNTL])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_FCNTL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FCNTL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_FCNTL], [/* Define to 1 when the gnulib module fcntl should be tested. */
+@%:@undef GNULIB_TEST_FCNTL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYMLINK], [/* Define to 1 if you have the `symlink\' function. */
+@%:@undef HAVE_SYMLINK])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_O_NOATIME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WORKING_O_NOATIME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WORKING_O_NOATIME], [/* Define to 1 if O_NOATIME works. */
+@%:@undef HAVE_WORKING_O_NOATIME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_O_NOFOLLOW])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WORKING_O_NOFOLLOW$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WORKING_O_NOFOLLOW], [/* Define to 1 if O_NOFOLLOW works. */
+@%:@undef HAVE_WORKING_O_NOFOLLOW])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_FCNTL_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_FCNTL_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_FCNTL_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_FCNTL_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_FCNTL_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_FCNTL_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FCNTL], [/* Define to 1 if fcntl is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FCNTL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_OPENAT], [/* Define to 1 if openat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_OPENAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FDOPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FDOPENDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_FDOPENDIR], [/* Define to 1 if you have the declaration of `fdopendir\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_FDOPENDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FDOPENDIR], [/* Define to 1 if you have the `fdopendir\' function. */
+@%:@undef HAVE_FDOPENDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_FDOPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FDOPENDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_FDOPENDIR], [/* Define to 1 when the gnulib module fdopendir should be tested. */
+@%:@undef GNULIB_TEST_FDOPENDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_FDOPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FDOPENDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_FDOPENDIR], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module fdopendir shall be considered present. */
+@%:@undef GNULIB_FDOPENDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_FDUTIMENSAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FDUTIMENSAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_FDUTIMENSAT], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module fdutimensat shall be considered present. */
+@%:@undef GNULIB_FDUTIMENSAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLOCKS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BLOCKS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLOCKS], [/* Define to 1 if `st_blocks\' is a member of `struct stat\'. */
+@%:@undef HAVE_STRUCT_STAT_ST_BLOCKS])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ST_BLOCKS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ST_BLOCKS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ST_BLOCKS], [/* Define to 1 if your `struct stat\' has `st_blocks\'. Deprecated, use
+ `HAVE_STRUCT_STAT_ST_BLOCKS\' instead. */
+@%:@undef HAVE_ST_BLOCKS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */
+@%:@undef HAVE_SYS_PARAM_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */
+@%:@undef HAVE_MEMPCPY])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_FLOAT_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_FLOAT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_FLOAT_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_FLOAT_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_FLOAT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_FLOAT_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([FLOAT_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([FLOAT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FLOAT_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_FLOAT_H_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_FLOAT_H_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_FLOAT_H_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_FLOAT_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_FLOAT_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_FLOAT_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_FLOAT_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_FLOAT_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_ITOLD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_ITOLD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_ITOLD$])
+m4trace:configure.ac:89: -1- AC_SUBST([FNMATCH_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([FNMATCH_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FNMATCH_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_FNMATCH_H_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_FNMATCH_H_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_FNMATCH_H_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_FNMATCH_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_FNMATCH_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_FNMATCH_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_FNMATCH_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_FNMATCH_H_FALSE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([fnmatch])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^fnmatch$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([fnmatch], [/* Define to a replacement function name for fnmatch(). */
+@%:@undef fnmatch])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MBSTATE_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBSTATE_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBSTATE_T], [/* Define to 1 if <wchar.h> declares mbstate_t. */
+@%:@undef HAVE_MBSTATE_T])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([mbstate_t])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^mbstate_t$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([mbstate_t], [/* Define to a type if <wchar.h> does not define. */
+@%:@undef mbstate_t])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_ISBLANK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_ISBLANK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_ISBLANK], [/* Define to 1 if you have the declaration of `isblank\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_ISBLANK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_BTOWC], [/* Define to 1 if you have the `btowc\' function. */
+@%:@undef HAVE_BTOWC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ISBLANK], [/* Define to 1 if you have the `isblank\' function. */
+@%:@undef HAVE_ISBLANK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ISWCTYPE], [/* Define to 1 if you have the `iswctype\' function. */
+@%:@undef HAVE_ISWCTYPE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBSRTOWCS], [/* Define to 1 if you have the `mbsrtowcs\' function. */
+@%:@undef HAVE_MBSRTOWCS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */
+@%:@undef HAVE_MEMPCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WMEMCHR], [/* Define to 1 if you have the `wmemchr\' function. */
+@%:@undef HAVE_WMEMCHR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WMEMCPY], [/* Define to 1 if you have the `wmemcpy\' function. */
+@%:@undef HAVE_WMEMCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WMEMPCPY], [/* Define to 1 if you have the `wmempcpy\' function. */
+@%:@undef HAVE_WMEMPCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the <wctype.h> header file. */
+@%:@undef HAVE_WCTYPE_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([fnmatch])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^fnmatch$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([fnmatch], [/* Define to a replacement function name for fnmatch(). */
+@%:@undef fnmatch])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_ISBLANK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_ISBLANK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_ISBLANK], [/* Define to 1 if you have the declaration of `isblank\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_ISBLANK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_BTOWC], [/* Define to 1 if you have the `btowc\' function. */
+@%:@undef HAVE_BTOWC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ISBLANK], [/* Define to 1 if you have the `isblank\' function. */
+@%:@undef HAVE_ISBLANK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ISWCTYPE], [/* Define to 1 if you have the `iswctype\' function. */
+@%:@undef HAVE_ISWCTYPE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBSRTOWCS], [/* Define to 1 if you have the `mbsrtowcs\' function. */
+@%:@undef HAVE_MBSRTOWCS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */
+@%:@undef HAVE_MEMPCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WMEMCHR], [/* Define to 1 if you have the `wmemchr\' function. */
+@%:@undef HAVE_WMEMCHR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WMEMCPY], [/* Define to 1 if you have the `wmemcpy\' function. */
+@%:@undef HAVE_WMEMCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WMEMPCPY], [/* Define to 1 if you have the `wmempcpy\' function. */
+@%:@undef HAVE_WMEMPCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the <wctype.h> header file. */
+@%:@undef HAVE_WCTYPE_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STDIO_EXT_H], [/* Define to 1 if you have the <stdio_ext.h> header file. */
+@%:@undef HAVE_STDIO_EXT_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE___FPENDING], [/* Define to 1 if you have the `__fpending\' function. */
+@%:@undef HAVE___FPENDING])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL___FPENDING])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL___FPENDING$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL___FPENDING], [/* Define to 1 if you have the declaration of `__fpending\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL___FPENDING])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([PENDING_OUTPUT_N_BYTES])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PENDING_OUTPUT_N_BYTES$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([PENDING_OUTPUT_N_BYTES], [/* the number of pending output bytes on stream \'fp\' */
+@%:@undef PENDING_OUTPUT_N_BYTES])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_DPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_DPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_DPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FCLOSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FCLOSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FCLOSE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FDOPEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FDOPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FDOPEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FFLUSH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FFLUSH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FFLUSH$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FGETC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FGETC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FGETC$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FGETS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FGETS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FGETS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FOPEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FOPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FOPEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FPRINTF_POSIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FPRINTF_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FPRINTF_POSIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FPURGE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FPURGE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FPURGE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FPUTC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FPUTC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FPUTC$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FPUTS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FPUTS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FPUTS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FREAD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FREAD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FREAD$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FREOPEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FREOPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FREOPEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FSCANF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FSCANF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSCANF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FSEEK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FSEEK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSEEK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FSEEKO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FSEEKO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSEEKO$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FTELL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FTELL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FTELL$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FTELLO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FTELLO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FTELLO$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FWRITE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FWRITE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FWRITE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETC$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETCHAR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETCHAR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETCHAR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETDELIM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETDELIM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETDELIM$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETLINE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETLINE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETLINE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_OBSTACK_PRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_OBSTACK_PRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OBSTACK_PRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_OBSTACK_PRINTF_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OBSTACK_PRINTF_POSIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PCLOSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PCLOSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PCLOSE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PERROR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PERROR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PERROR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_POPEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_POPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_POPEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PRINTF_POSIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PRINTF_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PRINTF_POSIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PUTC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PUTC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PUTC$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PUTCHAR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PUTCHAR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PUTCHAR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PUTS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PUTS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PUTS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_REMOVE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_REMOVE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_REMOVE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_RENAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_RENAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RENAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_RENAMEAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_RENAMEAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RENAMEAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SCANF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SCANF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SCANF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SNPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SNPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SPRINTF_POSIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SPRINTF_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SPRINTF_POSIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STDIO_H_NONBLOCKING])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STDIO_H_NONBLOCKING$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STDIO_H_SIGPIPE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STDIO_H_SIGPIPE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_TMPFILE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_TMPFILE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TMPFILE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_VASPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_VASPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VASPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_VFSCANF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_VFSCANF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VFSCANF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_VSCANF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_VSCANF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VSCANF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_VDPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_VDPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VDPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_VFPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_VFPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VFPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_VFPRINTF_POSIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_VFPRINTF_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VFPRINTF_POSIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_VPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_VPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_VPRINTF_POSIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_VPRINTF_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VPRINTF_POSIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_VSNPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_VSNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VSNPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_VSPRINTF_POSIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_VSPRINTF_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_VSPRINTF_POSIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_FPURGE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_FPURGE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FPURGE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_FSEEKO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_FSEEKO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FSEEKO$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_FTELLO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_FTELLO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FTELLO$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_GETDELIM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_GETDELIM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETDELIM$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_GETLINE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_GETLINE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETLINE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_OBSTACK_PRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_OBSTACK_PRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_OBSTACK_PRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_SNPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_SNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SNPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_VSNPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_VSNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_VSNPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FSEEKO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FSEEKO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FSEEKO$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FTELLO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FTELLO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FTELLO$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_PCLOSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_PCLOSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PCLOSE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_POPEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_POPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_POPEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_RENAMEAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_RENAMEAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RENAMEAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_VASPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_VASPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_VASPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_VDPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_VDPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_VDPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_DPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_DPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_DPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FCLOSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FCLOSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FCLOSE$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FDOPEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FDOPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FDOPEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FFLUSH])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FFLUSH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FFLUSH$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FOPEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FOPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FOPEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FPURGE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FPURGE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FPURGE$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FREOPEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FREOPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FREOPEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FSEEK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FSEEK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FSEEK$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FSEEKO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FSEEKO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FSEEKO$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FTELL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FTELL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FTELL$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FTELLO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FTELLO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FTELLO$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_GETDELIM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_GETDELIM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETDELIM$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_GETLINE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_GETLINE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETLINE$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_OBSTACK_PRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_OBSTACK_PRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_OBSTACK_PRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_PERROR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_PERROR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PERROR$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_POPEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_POPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_POPEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_PRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_PRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_REMOVE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_REMOVE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_REMOVE$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_RENAME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_RENAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_RENAME$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_RENAMEAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_RENAMEAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_RENAMEAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_SNPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_SNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_SNPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_SPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_SPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_SPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STDIO_READ_FUNCS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STDIO_READ_FUNCS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STDIO_READ_FUNCS$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STDIO_WRITE_FUNCS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STDIO_WRITE_FUNCS$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_TMPFILE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_TMPFILE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_TMPFILE$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_VASPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_VASPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VASPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_VDPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_VDPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VDPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_VFPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_VFPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VFPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_VPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_VPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_VSNPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_VSNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VSNPRINTF$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_VSPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_VSPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VSPRINTF$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_FSEEKO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_FSEEKO$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_FSEEKO], [/* Define to 1 if you have the declaration of `fseeko\', and to 0 if you don\'t.
+ */
+@%:@undef HAVE_DECL_FSEEKO])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_FSEEK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FSEEK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_FSEEK], [/* Define to 1 when the gnulib module fseek should be tested. */
+@%:@undef GNULIB_TEST_FSEEK])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_FSEEKO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FSEEKO$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_FSEEKO], [/* Define to 1 when the gnulib module fseeko should be tested. */
+@%:@undef GNULIB_TEST_FSEEKO])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FCHMODAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FCHMODAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FCHMODAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FSTAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FSTAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSTAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FSTATAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FSTATAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSTATAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FUTIMENS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FUTIMENS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FUTIMENS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_LCHMOD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_LCHMOD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LCHMOD$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_LSTAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_LSTAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_LSTAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MKDIRAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MKDIRAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKDIRAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MKFIFO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MKFIFO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKFIFO$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MKFIFOAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MKFIFOAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKFIFOAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MKNOD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MKNOD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKNOD$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MKNODAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MKNODAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKNODAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_UTIMENSAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_UTIMENSAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_UTIMENSAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FCHMODAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FCHMODAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FCHMODAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FSTATAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FSTATAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FSTATAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FUTIMENS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FUTIMENS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FUTIMENS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_LCHMOD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_LCHMOD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LCHMOD$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_LSTAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_LSTAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LSTAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MKDIRAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MKDIRAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKDIRAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MKFIFO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MKFIFO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKFIFO$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MKFIFOAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MKFIFOAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKFIFOAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MKNOD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MKNOD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKNOD$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MKNODAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MKNODAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKNODAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_UTIMENSAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_UTIMENSAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UTIMENSAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FSTAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FSTAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FSTAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FSTATAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FSTATAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FSTATAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_FUTIMENS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_FUTIMENS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FUTIMENS$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_LSTAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_LSTAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LSTAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MKDIR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MKDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MKDIR$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MKFIFO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MKFIFO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MKFIFO$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MKNOD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MKNOD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MKNOD$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_UTIMENSAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_UTIMENSAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_UTIMENSAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCHDIR], [/* Define to 1 if you have the `fchdir\' function. */
+@%:@undef HAVE_FCHDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_FSTAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FSTAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_FSTAT], [/* Define to 1 when the gnulib module fstat should be tested. */
+@%:@undef GNULIB_TEST_FSTAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([LSTAT_FOLLOWS_SLASHED_SYMLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LSTAT_FOLLOWS_SLASHED_SYMLINK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([LSTAT_FOLLOWS_SLASHED_SYMLINK], [/* Define to 1 if \'lstat\' dereferences a symlink specified with a trailing
+ slash. */
+@%:@undef LSTAT_FOLLOWS_SLASHED_SYMLINK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FSTATAT], [/* Define to 1 if you have the `fstatat\' function. */
+@%:@undef HAVE_FSTATAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_FSTATAT_ZERO_FLAG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WORKING_FSTATAT_ZERO_FLAG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WORKING_FSTATAT_ZERO_FLAG], [/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX
+ 7.1. */
+@%:@undef HAVE_WORKING_FSTATAT_ZERO_FLAG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_FSTATAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FSTATAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_FSTATAT], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module fstatat shall be considered present. */
+@%:@undef GNULIB_FSTATAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_FSTATAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FSTATAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_FSTATAT], [/* Define to 1 when the gnulib module fstatat should be tested. */
+@%:@undef GNULIB_TEST_FSTATAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FUTIMENS], [/* Define to 1 if you have the `futimens\' function. */
+@%:@undef HAVE_FUTIMENS])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_FUTIMENS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_FUTIMENS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_FUTIMENS], [/* Define to 1 when the gnulib module futimens should be tested. */
+@%:@undef GNULIB_TEST_FUTIMENS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_GETCWD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETCWD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_GETCWD], [/* Define to 1 if you have the declaration of `getcwd\', and to 0 if you don\'t.
+ */
+@%:@undef HAVE_DECL_GETCWD])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */
+@%:@undef HAVE_GETPAGESIZE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MINIMALLY_WORKING_GETCWD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MINIMALLY_WORKING_GETCWD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MINIMALLY_WORKING_GETCWD], [/* Define to 1 if getcwd minimally works, that is, its result can be trusted
+ when it succeeds. */
+@%:@undef HAVE_MINIMALLY_WORKING_GETCWD])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PARTLY_WORKING_GETCWD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PARTLY_WORKING_GETCWD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_PARTLY_WORKING_GETCWD], [/* Define to 1 if getcwd works, except it sometimes fails when it shouldn\'t,
+ setting errno to ERANGE, ENAMETOOLONG, or ENOENT. */
+@%:@undef HAVE_PARTLY_WORKING_GETCWD])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_GETCWD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETCWD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_GETCWD], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module getcwd shall be considered present. */
+@%:@undef GNULIB_GETCWD])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_GETCWD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETCWD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_GETCWD], [/* Define to 1 when the gnulib module getcwd should be tested. */
+@%:@undef GNULIB_TEST_GETCWD])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_GETCWD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETCWD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_GETCWD], [/* Define to 1 when the gnulib module getcwd should be tested. */
+@%:@undef GNULIB_TEST_GETCWD])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_GETDELIM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETDELIM$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_GETDELIM], [/* Define to 1 if you have the declaration of `getdelim\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_GETDELIM])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_GETDELIM], [/* Define to 1 if you have the `getdelim\' function. */
+@%:@undef HAVE_GETDELIM])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FLOCKFILE], [/* Define to 1 if you have the `flockfile\' function. */
+@%:@undef HAVE_FLOCKFILE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FUNLOCKFILE], [/* Define to 1 if you have the `funlockfile\' function. */
+@%:@undef HAVE_FUNLOCKFILE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_GETC_UNLOCKED])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETC_UNLOCKED$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_GETC_UNLOCKED], [/* Define to 1 if you have the declaration of `getc_unlocked\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_GETC_UNLOCKED])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_GETDELIM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETDELIM$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_GETDELIM], [/* Define to 1 when the gnulib module getdelim should be tested. */
+@%:@undef GNULIB_TEST_GETDELIM])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_GETDTABLESIZE], [/* Define to 1 if you have the `getdtablesize\' function. */
+@%:@undef HAVE_GETDTABLESIZE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_GETDTABLESIZE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETDTABLESIZE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_GETDTABLESIZE], [/* Define to 1 when the gnulib module getdtablesize should be tested. */
+@%:@undef GNULIB_TEST_GETDTABLESIZE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_GETLINE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETLINE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_GETLINE], [/* Define to 1 if you have the declaration of `getline\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_GETLINE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_GETLINE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETLINE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_GETLINE], [/* Define to 1 when the gnulib module getline should be tested. */
+@%:@undef GNULIB_TEST_GETLINE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_GETOPT_H], [/* Define to 1 if you have the <getopt.h> header file. */
+@%:@undef HAVE_GETOPT_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_GETOPT_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_GETOPT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_GETOPT_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_GETOPT_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_GETOPT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_GETOPT_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_GETOPT_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_GETOPT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETOPT_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_GETOPT_H], [/* Define to 1 if you have the <getopt.h> header file. */
+@%:@undef HAVE_GETOPT_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETOPT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETOPT_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_GETOPT_LONG_ONLY], [/* Define to 1 if you have the `getopt_long_only\' function. */
+@%:@undef HAVE_GETOPT_LONG_ONLY])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETOPT_LONG_ONLY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETOPT_LONG_ONLY$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([__GETOPT_PREFIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^__GETOPT_PREFIX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([__GETOPT_PREFIX], [/* Define to rpl_ if the getopt replacement functions and variables should be
+ used. */
+@%:@undef __GETOPT_PREFIX])
+m4trace:configure.ac:89: -1- AC_SUBST([GETOPT_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GETOPT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GETOPT_H$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_GETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_GETENV$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_GETENV], [/* Define to 1 if you have the declaration of `getenv\', and to 0 if you don\'t.
+ */
+@%:@undef HAVE_DECL_GETENV])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GL_UNISTD_H_GETOPT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GL_UNISTD_H_GETOPT$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_GETOPT_GNU])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETOPT_GNU$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_GETOPT_GNU], [/* Define to 1 when the gnulib module getopt-gnu should be tested. */
+@%:@undef GNULIB_TEST_GETOPT_GNU])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([__GETOPT_PREFIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^__GETOPT_PREFIX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([__GETOPT_PREFIX], [/* Define to rpl_ if the getopt replacement functions and variables should be
+ used. */
+@%:@undef __GETOPT_PREFIX])
+m4trace:configure.ac:89: -1- AC_SUBST([GETOPT_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GETOPT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GETOPT_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GL_UNISTD_H_GETOPT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GL_UNISTD_H_GETOPT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_GETPAGESIZE], [/* Define to 1 if you have the `getpagesize\' function. */
+@%:@undef HAVE_GETPAGESIZE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPAGESIZE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_OS_H], [/* Define to 1 if you have the <OS.h> header file. */
+@%:@undef HAVE_OS_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_OS_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OS_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */
+@%:@undef HAVE_SYS_PARAM_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_PARAM_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_PARAM_H$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_GETPAGESIZE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETPAGESIZE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_GETPAGESIZE], [/* Define to 1 when the gnulib module getpagesize should be tested. */
+@%:@undef GNULIB_TEST_GETPAGESIZE])
+m4trace:configure.ac:89: -1- AC_SUBST([LIBINTL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LIBINTL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBINTL$])
+m4trace:configure.ac:89: -1- AC_SUBST([LTLIBINTL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LTLIBINTL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LTLIBINTL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */
+@%:@undef HAVE_GETTIMEOFDAY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_NANOTIME], [/* Define to 1 if you have the `nanotime\' function. */
+@%:@undef HAVE_NANOTIME])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_GETTIMEOFDAY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_GETTIMEOFDAY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_GETTIMEOFDAY$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_GETTIMEOFDAY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_GETTIMEOFDAY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETTIMEOFDAY$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRUCT_TIMEVAL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRUCT_TIMEVAL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_TIMEVAL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SYS_TIME_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SYS_TIME_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_TIME_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_GETTIMEOFDAY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_GETTIMEOFDAY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_GETTIMEOFDAY$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
+@%:@undef HAVE_SYS_TIME_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
+@%:@undef HAVE_SYS_TIME_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_SYS_TIME_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_SYS_TIME_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_SYS_TIME_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_SYS_TIME_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
+@%:@undef HAVE_SYS_SOCKET_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WINSOCK2_H], [/* Define to 1 if you have the <winsock2.h> header file. */
+@%:@undef HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETTIMEOFDAY], [/* Define to 1 if gettimeofday is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETTIMEOFDAY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_GETTIMEOFDAY], [/* Define to 1 if you have the `gettimeofday\' function. */
+@%:@undef HAVE_GETTIMEOFDAY])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([gmtime])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^gmtime$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([gmtime], [/* Define to rpl_gmtime if the replacement function should be used. */
+@%:@undef gmtime])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([localtime])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^localtime$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([localtime], [/* Define to rpl_localtime if the replacement function should be used. */
+@%:@undef localtime])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GETTIMEOFDAY_CLOBBERS_LOCALTIME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GETTIMEOFDAY_CLOBBERS_LOCALTIME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GETTIMEOFDAY_CLOBBERS_LOCALTIME], [/* Define if gettimeofday clobbers the localtime buffer. */
+@%:@undef GETTIMEOFDAY_CLOBBERS_LOCALTIME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GETTIMEOFDAY_TIMEZONE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GETTIMEOFDAY_TIMEZONE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GETTIMEOFDAY_TIMEZONE], [/* Define this to \'void\' or \'struct timezone\' to match the system\'s
+ declaration of the second argument to gettimeofday. */
+@%:@undef GETTIMEOFDAY_TIMEZONE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_TIMEB_H], [/* Define to 1 if you have the <sys/timeb.h> header file. */
+@%:@undef HAVE_SYS_TIMEB_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_TIMEB_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_TIMEB_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE__FTIME], [/* Define to 1 if you have the `_ftime\' function. */
+@%:@undef HAVE__FTIME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE__FTIME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE__FTIME$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_GETTIMEOFDAY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_GETTIMEOFDAY$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_GETTIMEOFDAY], [/* Define to 1 when the gnulib module gettimeofday should be tested. */
+@%:@undef GNULIB_TEST_GETTIMEOFDAY])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INLINE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_INLINE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_INLINE], [/* Define to 1 if the compiler supports one of the keywords \'inline\',
+ \'__inline__\', \'__inline\' and effectively inlines functions marked as such.
+ */
+@%:@undef HAVE_INLINE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSIGNED_LONG_LONG_INT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNSIGNED_LONG_LONG_INT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNSIGNED_LONG_LONG_INT], [/* Define to 1 if the system has the type \'unsigned long long int\'. */
+@%:@undef HAVE_UNSIGNED_LONG_LONG_INT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LONG_LONG_INT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LONG_LONG_INT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LONG_LONG_INT], [/* Define to 1 if the system has the type \'long long int\'. */
+@%:@undef HAVE_LONG_LONG_INT])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_LONG_LONG_INT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_LONG_LONG_INT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LONG_LONG_INT$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_UNSIGNED_LONG_LONG_INT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNSIGNED_LONG_LONG_INT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the <wchar.h> header file. */
+@%:@undef HAVE_WCHAR_H])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCHAR_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCHAR_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCHAR_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_INTTYPES_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_INTTYPES_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_INTTYPES_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SYS_TYPES_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SYS_TYPES_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_TYPES_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
+@%:@undef HAVE_STDINT_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_STDINT_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_STDINT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDINT_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_STDINT_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_STDINT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STDINT_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STDINT_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STDINT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDINT_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_INTTYPES_H], [/* Define to 1 if you have the <sys/inttypes.h> header file. */
+@%:@undef HAVE_SYS_INTTYPES_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_BITYPES_H], [/* Define to 1 if you have the <sys/bitypes.h> header file. */
+@%:@undef HAVE_SYS_BITYPES_H])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SYS_INTTYPES_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SYS_INTTYPES_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_INTTYPES_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SYS_BITYPES_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SYS_BITYPES_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYS_BITYPES_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([APPLE_UNIVERSAL_BUILD])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([APPLE_UNIVERSAL_BUILD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^APPLE_UNIVERSAL_BUILD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([BITSIZEOF_PTRDIFF_T], [/* Define to the number of bits in type \'ptrdiff_t\'. */
+@%:@undef BITSIZEOF_PTRDIFF_T])
+m4trace:configure.ac:89: -1- AH_OUTPUT([BITSIZEOF_SIZE_T], [/* Define to the number of bits in type \'size_t\'. */
+@%:@undef BITSIZEOF_SIZE_T])
+m4trace:configure.ac:89: -1- AC_SUBST([BITSIZEOF_PTRDIFF_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([BITSIZEOF_PTRDIFF_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^BITSIZEOF_PTRDIFF_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([BITSIZEOF_SIZE_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([BITSIZEOF_SIZE_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^BITSIZEOF_SIZE_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([BITSIZEOF_SIG_ATOMIC_T], [/* Define to the number of bits in type \'sig_atomic_t\'. */
+@%:@undef BITSIZEOF_SIG_ATOMIC_T])
+m4trace:configure.ac:89: -1- AH_OUTPUT([BITSIZEOF_WCHAR_T], [/* Define to the number of bits in type \'wchar_t\'. */
+@%:@undef BITSIZEOF_WCHAR_T])
+m4trace:configure.ac:89: -1- AH_OUTPUT([BITSIZEOF_WINT_T], [/* Define to the number of bits in type \'wint_t\'. */
+@%:@undef BITSIZEOF_WINT_T])
+m4trace:configure.ac:89: -1- AC_SUBST([BITSIZEOF_SIG_ATOMIC_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([BITSIZEOF_SIG_ATOMIC_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^BITSIZEOF_SIG_ATOMIC_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([BITSIZEOF_WCHAR_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([BITSIZEOF_WCHAR_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^BITSIZEOF_WCHAR_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([BITSIZEOF_WINT_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([BITSIZEOF_WINT_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^BITSIZEOF_WINT_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SIGNED_SIG_ATOMIC_T], [/* Define to 1 if \'sig_atomic_t\' is a signed integer type. */
+@%:@undef HAVE_SIGNED_SIG_ATOMIC_T])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SIGNED_WCHAR_T], [/* Define to 1 if \'wchar_t\' is a signed integer type. */
+@%:@undef HAVE_SIGNED_WCHAR_T])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SIGNED_WINT_T], [/* Define to 1 if \'wint_t\' is a signed integer type. */
+@%:@undef HAVE_SIGNED_WINT_T])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SIGNED_SIG_ATOMIC_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SIGNED_SIG_ATOMIC_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGNED_SIG_ATOMIC_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SIGNED_WCHAR_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SIGNED_WCHAR_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGNED_WCHAR_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SIGNED_WINT_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SIGNED_WINT_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGNED_WINT_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([PTRDIFF_T_SUFFIX], [/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ \'ptrdiff_t\'. */
+@%:@undef PTRDIFF_T_SUFFIX])
+m4trace:configure.ac:89: -1- AH_OUTPUT([SIZE_T_SUFFIX], [/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ \'size_t\'. */
+@%:@undef SIZE_T_SUFFIX])
+m4trace:configure.ac:89: -1- AC_SUBST([PTRDIFF_T_SUFFIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([PTRDIFF_T_SUFFIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PTRDIFF_T_SUFFIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([SIZE_T_SUFFIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([SIZE_T_SUFFIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^SIZE_T_SUFFIX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([SIG_ATOMIC_T_SUFFIX], [/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ \'sig_atomic_t\'. */
+@%:@undef SIG_ATOMIC_T_SUFFIX])
+m4trace:configure.ac:89: -1- AH_OUTPUT([WCHAR_T_SUFFIX], [/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ \'wchar_t\'. */
+@%:@undef WCHAR_T_SUFFIX])
+m4trace:configure.ac:89: -1- AH_OUTPUT([WINT_T_SUFFIX], [/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ \'wint_t\'. */
+@%:@undef WINT_T_SUFFIX])
+m4trace:configure.ac:89: -1- AC_SUBST([SIG_ATOMIC_T_SUFFIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([SIG_ATOMIC_T_SUFFIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^SIG_ATOMIC_T_SUFFIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([WCHAR_T_SUFFIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([WCHAR_T_SUFFIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^WCHAR_T_SUFFIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([WINT_T_SUFFIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([WINT_T_SUFFIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^WINT_T_SUFFIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([STDINT_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([STDINT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDINT_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDINT_H_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDINT_H_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDINT_H_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDINT_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDINT_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDINT_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDINT_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDINT_H_FALSE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
+@%:@undef HAVE_INTTYPES_H])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_IMAXABS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_IMAXABS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_IMAXABS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_IMAXDIV])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_IMAXDIV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_IMAXDIV$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRTOIMAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRTOIMAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOIMAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRTOUMAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRTOUMAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOUMAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_IMAXABS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_IMAXABS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_IMAXABS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_IMAXDIV])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_IMAXDIV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_IMAXDIV$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_STRTOIMAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_STRTOIMAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRTOIMAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_STRTOUMAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_STRTOUMAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRTOUMAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRTOIMAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRTOIMAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRTOIMAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INT32_MAX_LT_INTMAX_MAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INT32_MAX_LT_INTMAX_MAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([INT64_MAX_EQ_LONG_MAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INT64_MAX_EQ_LONG_MAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INT64_MAX_EQ_LONG_MAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([PRI_MACROS_BROKEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([PRI_MACROS_BROKEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRI_MACROS_BROKEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([PRIPTR_PREFIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([PRIPTR_PREFIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRIPTR_PREFIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([UINT32_MAX_LT_UINTMAX_MAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UINT32_MAX_LT_UINTMAX_MAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([UINT64_MAX_EQ_ULONG_MAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([UINT64_MAX_EQ_ULONG_MAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UINT64_MAX_EQ_ULONG_MAX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
+@%:@undef HAVE_INTTYPES_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_INTTYPES_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_INTTYPES_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_INTTYPES_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_IMAXABS], [/* Define to 1 if imaxabs is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_IMAXABS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_IMAXDIV], [/* Define to 1 if imaxdiv is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_IMAXDIV])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRTOIMAX], [/* Define to 1 if strtoimax is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRTOIMAX])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRTOUMAX], [/* Define to 1 if strtoumax is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRTOUMAX])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_INTTYPES_H], [/* Define to 1 if you have the <inttypes.h> header file. */
+@%:@undef HAVE_INTTYPES_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_INTTYPES_H$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([PRI_MACROS_BROKEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRI_MACROS_BROKEN$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([PRI_MACROS_BROKEN], [/* Define if <inttypes.h> exists and defines unusable PRI* macros. */
+@%:@undef PRI_MACROS_BROKEN])
+m4trace:configure.ac:89: -1- AC_SUBST([PRI_MACROS_BROKEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([PRI_MACROS_BROKEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRI_MACROS_BROKEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([PRIPTR_PREFIX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([PRIPTR_PREFIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PRIPTR_PREFIX$])
+m4trace:configure.ac:89: -1- AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INT32_MAX_LT_INTMAX_MAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INT32_MAX_LT_INTMAX_MAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([INT64_MAX_EQ_LONG_MAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([INT64_MAX_EQ_LONG_MAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^INT64_MAX_EQ_LONG_MAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([UINT32_MAX_LT_UINTMAX_MAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UINT32_MAX_LT_UINTMAX_MAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([UINT64_MAX_EQ_ULONG_MAX])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([UINT64_MAX_EQ_ULONG_MAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UINT64_MAX_EQ_ULONG_MAX$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_ISWBLANK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_ISWBLANK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ISWBLANK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCTYPE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCTYPE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCTYPE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_ISWCTYPE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_ISWCTYPE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_ISWCTYPE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_WCTRANS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_WCTRANS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_WCTRANS$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_TOWCTRANS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_TOWCTRANS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TOWCTRANS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_ISWBLANK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_ISWBLANK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ISWBLANK$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCTYPE_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCTYPE_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCTYPE_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCTRANS_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCTRANS_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCTRANS_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_ISWBLANK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_ISWBLANK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_ISWBLANK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ISWCNTRL], [/* Define to 1 if you have the `iswcntrl\' function. */
+@%:@undef HAVE_ISWCNTRL])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_ISWCNTRL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_ISWCNTRL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ISWCNTRL$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WINT_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINT_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WINT_T], [/* Define if you have the \'wint_t\' type. */
+@%:@undef HAVE_WINT_T])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WINT_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WINT_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINT_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the <wctype.h> header file. */
+@%:@undef HAVE_WCTYPE_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_WCTYPE_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_WCTYPE_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_WCTYPE_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCTYPE_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCTYPE_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCTYPE_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_ISWCNTRL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_ISWCNTRL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_ISWCNTRL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_TOWLOWER], [/* Define to 1 if you have the `towlower\' function. */
+@%:@undef HAVE_TOWLOWER])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TOWLOWER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TOWLOWER$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_TOWLOWER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_TOWLOWER$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_TOWLOWER], [/* Define to 1 if you have the declaration of `towlower\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_TOWLOWER])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_TOWLOWER])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_TOWLOWER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_TOWLOWER$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCTYPE], [/* Define to 1 if wctype is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCTYPE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_ISWCTYPE], [/* Define to 1 if iswctype is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_ISWCTYPE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCTRANS], [/* Define to 1 if wctrans is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCTRANS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_TOWCTRANS], [/* Define to 1 if towctrans is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_TOWCTRANS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ISWBLANK], [/* Define to 1 if you have the `iswblank\' function. */
+@%:@undef HAVE_ISWBLANK])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_ISWBLANK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_ISWBLANK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_ISWBLANK], [/* Define to 1 if you have the declaration of `iswblank\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_ISWBLANK])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_ISWBLANK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_ISWBLANK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_ISWBLANK], [/* Define to 1 when the gnulib module iswblank should be tested. */
+@%:@undef GNULIB_TEST_ISWBLANK])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_NL_LANGINFO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_NL_LANGINFO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_NL_LANGINFO$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_NL_LANGINFO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_NL_LANGINFO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_NL_LANGINFO$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_NL_LANGINFO])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_NL_LANGINFO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_NL_LANGINFO$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LANGINFO_H], [/* Define to 1 if you have the <langinfo.h> header file. */
+@%:@undef HAVE_LANGINFO_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_LANGINFO_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_LANGINFO_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_LANGINFO_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LANGINFO_H], [/* Define to 1 if you have the <langinfo.h> header file. */
+@%:@undef HAVE_LANGINFO_H])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_LANGINFO_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_LANGINFO_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_LANGINFO_CODESET])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_LANGINFO_CODESET])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_CODESET$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_LANGINFO_T_FMT_AMPM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_T_FMT_AMPM$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_LANGINFO_ERA])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_LANGINFO_ERA])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_ERA$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_LANGINFO_YESEXPR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_LANGINFO_YESEXPR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_YESEXPR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_NL_LANGINFO], [/* Define to 1 if nl_langinfo is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_NL_LANGINFO])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LCHMOD], [/* Define to 1 if you have the `lchmod\' function. */
+@%:@undef HAVE_LCHMOD])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LCHOWN], [/* Define to 1 if you have the `lchown\' function. */
+@%:@undef HAVE_LCHOWN])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LCHOWN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LCHOWN$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_LCHOWN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_LCHOWN$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_LCHOWN], [/* Define to 1 when the gnulib module lchown should be tested. */
+@%:@undef GNULIB_TEST_LCHOWN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LINK], [/* Define to 1 if you have the `link\' function. */
+@%:@undef HAVE_LINK])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_LINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_LINK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_LINK], [/* Define to 1 when the gnulib module link should be tested. */
+@%:@undef GNULIB_TEST_LINK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_READLINK], [/* Define to 1 if you have the `readlink\' function. */
+@%:@undef HAVE_READLINK])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([LINK_FOLLOWS_SYMLINKS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LINK_FOLLOWS_SYMLINKS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([LINK_FOLLOWS_SYMLINKS], [/* Define to 1 if \'link(2)\' dereferences symbolic links, 0 if it creates hard
+ links to symlinks, -1 if it depends on the variable __xpg4, and -2 if
+ unknown. */
+@%:@undef LINK_FOLLOWS_SYMLINKS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_OPENAT], [/* Define to 1 if you have the `openat\' function. */
+@%:@undef HAVE_OPENAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LINKAT], [/* Define to 1 if you have the `linkat\' function. */
+@%:@undef HAVE_LINKAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYMLINK], [/* Define to 1 if you have the `symlink\' function. */
+@%:@undef HAVE_SYMLINK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */
+@%:@undef HAVE_SYS_PARAM_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([LINKAT_TRAILING_SLASH_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LINKAT_TRAILING_SLASH_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([LINKAT_TRAILING_SLASH_BUG], [/* Define to 1 if linkat fails to recognize a trailing slash. */
+@%:@undef LINKAT_TRAILING_SLASH_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_LINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_LINKAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_LINKAT], [/* Define to 1 when the gnulib module linkat should be tested. */
+@%:@undef GNULIB_TEST_LINKAT])
+m4trace:configure.ac:89: -1- AC_SUBST([GLIBC21])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GLIBC21])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GLIBC21$])
+m4trace:configure.ac:89: -1- AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LOCALCHARSET_TESTS_ENVIRONMENT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LOCALCHARSET_TESTS_ENVIRONMENT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([LSEEK_PIPE_BROKEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LSEEK_PIPE_BROKEN$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([LSEEK_PIPE_BROKEN], [/* Define to 1 if lseek does not detect pipes. */
+@%:@undef LSEEK_PIPE_BROKEN])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_LSEEK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_LSEEK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_LSEEK], [/* Define to 1 when the gnulib module lseek should be tested. */
+@%:@undef GNULIB_TEST_LSEEK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */
+@%:@undef HAVE_LSTAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_LSTAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_LSTAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_LSTAT], [/* Define to 1 when the gnulib module lstat should be tested. */
+@%:@undef GNULIB_TEST_LSTAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
+@%:@undef HAVE_STDLIB_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDLIB_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC_GNU])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MALLOC_GNU$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MALLOC_GNU], [/* Define to 1 if your system has a GNU libc compatible \'malloc\' function, and
+ to 0 otherwise. */
+@%:@undef HAVE_MALLOC_GNU])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC_GNU])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MALLOC_GNU$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_MALLOC_GNU])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MALLOC_GNU$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_MALLOC_GNU], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module malloc-gnu shall be considered present. */
+@%:@undef GNULIB_MALLOC_GNU])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MALLOC_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MALLOC_POSIX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MALLOC_POSIX], [/* Define if the \'malloc\' function is POSIX compliant. */
+@%:@undef HAVE_MALLOC_POSIX])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MALLOC_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MALLOC_POSIX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MALLOC_POSIX], [/* Define to 1 when the gnulib module malloc-posix should be tested. */
+@%:@undef GNULIB_TEST_MALLOC_POSIX])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STDLIB_H], [/* Define to 1 if you have the <stdlib.h> header file. */
+@%:@undef HAVE_STDLIB_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDLIB_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDLIB_H$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([MALLOC_0_IS_NONNULL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MALLOC_0_IS_NONNULL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([MALLOC_0_IS_NONNULL], [/* If malloc(0) is != NULL, define this to 1. Otherwise define this to 0. */
+@%:@undef MALLOC_0_IS_NONNULL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBSINIT], [/* Define to 1 if you have the `mbsinit\' function. */
+@%:@undef HAVE_MBSINIT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBRTOWC], [/* Define to 1 if you have the `mbrtowc\' function. */
+@%:@undef HAVE_MBRTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST([LOCALE_JA])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LOCALE_JA])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LOCALE_JA$])
+m4trace:configure.ac:89: -1- AC_SUBST([LOCALE_ZH_CN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LOCALE_ZH_CN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LOCALE_ZH_CN$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBRTOWC], [/* Define to 1 if you have the `mbrtowc\' function. */
+@%:@undef HAVE_MBRTOWC])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_MBRTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MBRTOWC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_MBRTOWC], [/* Define to 1 if you have the declaration of `mbrtowc\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_MBRTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST([LOCALE_FR_UTF8])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LOCALE_FR_UTF8])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LOCALE_FR_UTF8$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([MBRTOWC_NULL_ARG1_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MBRTOWC_NULL_ARG1_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([MBRTOWC_NULL_ARG1_BUG], [/* Define if the mbrtowc function has the NULL pwc argument bug. */
+@%:@undef MBRTOWC_NULL_ARG1_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([MBRTOWC_NULL_ARG2_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MBRTOWC_NULL_ARG2_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([MBRTOWC_NULL_ARG2_BUG], [/* Define if the mbrtowc function has the NULL string argument bug. */
+@%:@undef MBRTOWC_NULL_ARG2_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([MBRTOWC_RETVAL_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MBRTOWC_RETVAL_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([MBRTOWC_RETVAL_BUG], [/* Define if the mbrtowc function returns a wrong return value. */
+@%:@undef MBRTOWC_RETVAL_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([MBRTOWC_NUL_RETVAL_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MBRTOWC_NUL_RETVAL_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([MBRTOWC_NUL_RETVAL_BUG], [/* Define if the mbrtowc function does not return 0 for a NUL character. */
+@%:@undef MBRTOWC_NUL_RETVAL_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MBRTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MBRTOWC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MBRTOWC], [/* Define to 1 when the gnulib module mbrtowc should be tested. */
+@%:@undef GNULIB_TEST_MBRTOWC])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FFSL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FFSL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FFSL$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FFSLL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FFSLL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FFSLL$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MEMCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MEMCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MEMCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MEMMEM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MEMMEM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MEMMEM$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MEMPCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MEMPCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MEMPCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MEMRCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MEMRCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MEMRCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_RAWMEMCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_RAWMEMCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RAWMEMCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STPCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STPCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STPCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STPNCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STPNCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STPNCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRCHRNUL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRCHRNUL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRCHRNUL$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRDUP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRDUP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRNCAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRNCAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRNCAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRNDUP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRNDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRNDUP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRNLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRNLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRNLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRPBRK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRPBRK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRPBRK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRSEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRSEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRSEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRSTR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRSTR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRSTR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRCASESTR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRCASESTR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRCASESTR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRTOK_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRTOK_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRTOK_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSNLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSNLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSNLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSRCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSRCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSRCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSSTR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSSTR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSSTR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSCASECMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSCASECMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSNCASECMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSNCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSNCASECMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSPCASECMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSPCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSPCASECMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSCASESTR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSCASESTR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSCASESTR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSCSPN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSCSPN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSCSPN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSPBRK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSPBRK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSPBRK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSSPN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSSPN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSSPN$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSSEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSSEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSSEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MBSTOK_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MBSTOK_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MBSTOK_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRERROR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRERROR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRERROR$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRERROR_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRERROR_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRERROR_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRSIGNAL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRSIGNAL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRSIGNAL$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRVERSCMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRVERSCMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRVERSCMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MBSLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MBSLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MBSLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FFSL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FFSL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FFSL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FFSLL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FFSLL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FFSLL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MEMCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MEMCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MEMCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_MEMMEM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_MEMMEM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MEMMEM$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MEMPCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MEMPCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MEMPCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_MEMRCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_MEMRCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MEMRCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_RAWMEMCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_RAWMEMCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RAWMEMCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STPCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STPCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STPCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STPNCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STPNCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STPNCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRCHRNUL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRCHRNUL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRCHRNUL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_STRDUP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_STRDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRDUP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_STRNDUP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_STRNDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNDUP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_STRNLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_STRNLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRPBRK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRPBRK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRPBRK$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRSEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRSEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRSEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRCASESTR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRCASESTR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRCASESTR$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_STRTOK_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_STRTOK_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRTOK_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_STRERROR_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_STRERROR_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRERROR_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_STRSIGNAL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_STRSIGNAL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRSIGNAL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRVERSCMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRVERSCMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRVERSCMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MEMCHR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MEMCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MEMCHR$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MEMMEM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MEMMEM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MEMMEM$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STPNCPY])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STPNCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STPNCPY$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRDUP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRDUP$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRSTR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRSTR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRSTR$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRCASESTR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRCASESTR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRCASESTR$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRCHRNUL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRCHRNUL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRCHRNUL$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRERROR])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRERROR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRERROR$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRERROR_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRERROR_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRERROR_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRNCAT])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRNCAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRNCAT$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRNDUP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRNDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRNDUP$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRNLEN])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRNLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRNLEN$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRSIGNAL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRSIGNAL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRSIGNAL$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_STRTOK_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_STRTOK_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRTOK_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([UNDEFINE_STRTOK_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([UNDEFINE_STRTOK_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UNDEFINE_STRTOK_R$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MBSCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MBSCASECMP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MBSCASECMP], [/* Define to 1 when the gnulib module mbscasecmp should be tested. */
+@%:@undef GNULIB_TEST_MBSCASECMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBSINIT], [/* Define to 1 if you have the `mbsinit\' function. */
+@%:@undef HAVE_MBSINIT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBRTOWC], [/* Define to 1 if you have the `mbrtowc\' function. */
+@%:@undef HAVE_MBRTOWC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBSINIT], [/* Define to 1 if you have the `mbsinit\' function. */
+@%:@undef HAVE_MBSINIT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_MBSINIT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MBSINIT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_MBSINIT], [/* Define to 1 if you have the declaration of `mbsinit\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_MBSINIT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MBSINIT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MBSINIT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MBSINIT], [/* Define to 1 when the gnulib module mbsinit should be tested. */
+@%:@undef GNULIB_TEST_MBSINIT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBSINIT], [/* Define to 1 if you have the `mbsinit\' function. */
+@%:@undef HAVE_MBSINIT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBRTOWC], [/* Define to 1 if you have the `mbrtowc\' function. */
+@%:@undef HAVE_MBRTOWC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBSRTOWCS], [/* Define to 1 if you have the `mbsrtowcs\' function. */
+@%:@undef HAVE_MBSRTOWCS])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_MBSRTOWCS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MBSRTOWCS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_MBSRTOWCS], [/* Define to 1 if you have the declaration of `mbsrtowcs\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_MBSRTOWCS])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MBSRTOWCS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MBSRTOWCS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MBSRTOWCS], [/* Define to 1 when the gnulib module mbsrtowcs should be tested. */
+@%:@undef GNULIB_TEST_MBSRTOWCS])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MBTOWC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MBTOWC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MBTOWC], [/* Define to 1 when the gnulib module mbtowc should be tested. */
+@%:@undef GNULIB_TEST_MBTOWC])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([MAP_ANONYMOUS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MAP_ANONYMOUS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([MAP_ANONYMOUS], [/* Define to a substitute value for mmap()\'s MAP_ANONYMOUS flag. */
+@%:@undef MAP_ANONYMOUS])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MAP_ANONYMOUS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MAP_ANONYMOUS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MAP_ANONYMOUS], [/* Define to 1 if mmap()\'s MAP_ANONYMOUS flag is available after including
+ config.h and <sys/mman.h>. */
+@%:@undef HAVE_MAP_ANONYMOUS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_MMAN_H], [/* Define to 1 if you have the <sys/mman.h> header file. */
+@%:@undef HAVE_SYS_MMAN_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MPROTECT], [/* Define to 1 if you have the `mprotect\' function. */
+@%:@undef HAVE_MPROTECT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_BP_SYM_H], [/* Define to 1 if you have the <bp-sym.h> header file. */
+@%:@undef HAVE_BP_SYM_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_BP_SYM_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_BP_SYM_H$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MEMCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MEMCHR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MEMCHR], [/* Define to 1 when the gnulib module memchr should be tested. */
+@%:@undef GNULIB_TEST_MEMCHR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MEMPCPY], [/* Define to 1 if you have the `mempcpy\' function. */
+@%:@undef HAVE_MEMPCPY])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MEMPCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MEMPCPY$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MEMPCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MEMPCPY$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MEMPCPY], [/* Define to 1 when the gnulib module mempcpy should be tested. */
+@%:@undef GNULIB_TEST_MEMPCPY])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_MEMRCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_MEMRCHR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_MEMRCHR], [/* Define to 1 if you have the declaration of `memrchr\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_MEMRCHR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MEMRCHR], [/* Define to 1 if you have the `memrchr\' function. */
+@%:@undef HAVE_MEMRCHR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MEMRCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MEMRCHR$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MEMRCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MEMRCHR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MEMRCHR], [/* Define to 1 when the gnulib module memrchr should be tested. */
+@%:@undef GNULIB_TEST_MEMRCHR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MKDTEMP], [/* Define to 1 if you have the `mkdtemp\' function. */
+@%:@undef HAVE_MKDTEMP])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MKDTEMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MKDTEMP$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MKDTEMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKDTEMP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MKDTEMP], [/* Define to 1 when the gnulib module mkdtemp should be tested. */
+@%:@undef GNULIB_TEST_MKDTEMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MKFIFO], [/* Define to 1 if you have the `mkfifo\' function. */
+@%:@undef HAVE_MKFIFO])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */
+@%:@undef HAVE_LSTAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([MKFIFO_TRAILING_SLASH_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MKFIFO_TRAILING_SLASH_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([MKFIFO_TRAILING_SLASH_BUG], [/* Define to 1 if mkfifo does not reject trailing slash */
+@%:@undef MKFIFO_TRAILING_SLASH_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MKFIFO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKFIFO$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MKFIFO], [/* Define to 1 when the gnulib module mkfifo should be tested. */
+@%:@undef GNULIB_TEST_MKFIFO])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MKFIFOAT], [/* Define to 1 if you have the `mkfifoat\' function. */
+@%:@undef HAVE_MKFIFOAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MKNODAT], [/* Define to 1 if you have the `mknodat\' function. */
+@%:@undef HAVE_MKNODAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MKFIFOAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKFIFOAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MKFIFOAT], [/* Define to 1 when the gnulib module mkfifoat should be tested. */
+@%:@undef GNULIB_TEST_MKFIFOAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MKNODAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKNODAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MKNODAT], [/* Define to 1 when the gnulib module mknodat should be tested. */
+@%:@undef GNULIB_TEST_MKNODAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MKNOD], [/* Define to 1 if you have the `mknod\' function. */
+@%:@undef HAVE_MKNOD])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([MKNOD_FIFO_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^MKNOD_FIFO_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([MKNOD_FIFO_BUG], [/* Define to 1 if mknod cannot create a fifo without super-user privileges */
+@%:@undef MKNOD_FIFO_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MKNOD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKNOD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MKNOD], [/* Define to 1 when the gnulib module mknod should be tested. */
+@%:@undef GNULIB_TEST_MKNOD])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_MKTIME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_MKTIME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_MKTIME$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_NANOSLEEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_NANOSLEEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_NANOSLEEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_STRPTIME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_STRPTIME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRPTIME$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_TIMEGM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_TIMEGM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TIMEGM$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_TIME_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_TIME_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TIME_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_LOCALTIME_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_LOCALTIME_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_LOCALTIME_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_NANOSLEEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_NANOSLEEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_NANOSLEEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRPTIME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRPTIME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRPTIME$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_TIMEGM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_TIMEGM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TIMEGM$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_LOCALTIME_R])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_LOCALTIME_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_LOCALTIME_R$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_MKTIME])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_MKTIME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_MKTIME$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_NANOSLEEP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_NANOSLEEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_NANOSLEEP$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_TIMEGM])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_TIMEGM])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_TIMEGM$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ALARM], [/* Define to 1 if you have the `alarm\' function. */
+@%:@undef HAVE_ALARM])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_MKTIME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_MKTIME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_MKTIME], [/* Define to 1 when the gnulib module mktime should be tested. */
+@%:@undef GNULIB_TEST_MKTIME])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE__SET_INVALID_PARAMETER_HANDLER], [/* Define to 1 if you have the `_set_invalid_parameter_handler\' function. */
+@%:@undef HAVE__SET_INVALID_PARAMETER_HANDLER])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MSVC_INVALID_PARAMETER_HANDLER$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [/* Define to 1 on MSVC platforms that have the "invalid parameter handler"
+ concept. */
+@%:@undef HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_MSVC_INVALID_PARAMETER_HANDLER$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_NL_LANGINFO], [/* Define to 1 if you have the `nl_langinfo\' function. */
+@%:@undef HAVE_NL_LANGINFO])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([FUNC_NL_LANGINFO_YESEXPR_WORKS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FUNC_NL_LANGINFO_YESEXPR_WORKS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([FUNC_NL_LANGINFO_YESEXPR_WORKS], [/* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */
+@%:@undef FUNC_NL_LANGINFO_YESEXPR_WORKS])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([REPLACE_NL_LANGINFO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_NL_LANGINFO$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([REPLACE_NL_LANGINFO], [/* Define if nl_langinfo exists but is overridden by gnulib. */
+@%:@undef REPLACE_NL_LANGINFO])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_NL_LANGINFO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_NL_LANGINFO$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_NL_LANGINFO], [/* Define to 1 when the gnulib module nl_langinfo should be tested. */
+@%:@undef GNULIB_TEST_NL_LANGINFO])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_OBSTACK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OBSTACK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_OBSTACK], [/* Define to 1 if libc includes obstacks. */
+@%:@undef HAVE_OBSTACK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */
+@%:@undef HAVE_LSTAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([OPEN_TRAILING_SLASH_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^OPEN_TRAILING_SLASH_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([OPEN_TRAILING_SLASH_BUG], [/* Define to 1 if open() fails to recognize a trailing slash. */
+@%:@undef OPEN_TRAILING_SLASH_BUG])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCHDIR], [/* Define to 1 if you have the `fchdir\' function. */
+@%:@undef HAVE_FCHDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([PROMOTED_MODE_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PROMOTED_MODE_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([PROMOTED_MODE_T], [/* Define to the type that is the result of default argument promotions of
+ type mode_t. */
+@%:@undef PROMOTED_MODE_T])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_OPEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_OPEN$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_OPEN], [/* Define to 1 when the gnulib module open should be tested. */
+@%:@undef GNULIB_TEST_OPEN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_OPENAT], [/* Define to 1 if you have the `openat\' function. */
+@%:@undef HAVE_OPENAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_OPENAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_OPENAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_OPENAT], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module openat shall be considered present. */
+@%:@undef GNULIB_OPENAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_OPENAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_OPENAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_OPENAT], [/* Define to 1 when the gnulib module openat should be tested. */
+@%:@undef GNULIB_TEST_OPENAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_OPENDIR], [/* Define to 1 if you have the `opendir\' function. */
+@%:@undef HAVE_OPENDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_OPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_OPENDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCHDIR], [/* Define to 1 if you have the `fchdir\' function. */
+@%:@undef HAVE_FCHDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_OPENDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_OPENDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_OPENDIR], [/* Define to 1 when the gnulib module opendir should be tested. */
+@%:@undef GNULIB_TEST_OPENDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE__BOOL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE__BOOL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE__BOOL], [/* Define to 1 if the system has the type `_Bool\'. */
+@%:@undef HAVE__BOOL])
+m4trace:configure.ac:89: -1- AC_SUBST([STDBOOL_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([STDBOOL_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDBOOL_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDBOOL_H_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDBOOL_H_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDBOOL_H_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDBOOL_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDBOOL_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDBOOL_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDBOOL_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDBOOL_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE__BOOL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE__BOOL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE__BOOL$])
+m4trace:configure.ac:89: -1- AC_SUBST([YACC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([YACC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^YACC$])
+m4trace:configure.ac:89: -1- AC_SUBST([YFLAGS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([YFLAGS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^YFLAGS$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_COMPOUND_LITERALS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_COMPOUND_LITERALS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_COMPOUND_LITERALS], [/* Define if you have compound literals. */
+@%:@undef HAVE_COMPOUND_LITERALS])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([TM_IN_SYS_TIME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^TM_IN_SYS_TIME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([TM_IN_SYS_TIME], [/* Define to 1 if your <sys/time.h> declares `struct tm\'. */
+@%:@undef TM_IN_SYS_TIME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_TM_TM_ZONE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_TM_TM_ZONE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRUCT_TM_TM_ZONE], [/* Define to 1 if `tm_zone\' is a member of `struct tm\'. */
+@%:@undef HAVE_STRUCT_TM_TM_ZONE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TM_ZONE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TM_ZONE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_TM_ZONE], [/* Define to 1 if your `struct tm\' has `tm_zone\'. Deprecated, use
+ `HAVE_STRUCT_TM_TM_ZONE\' instead. */
+@%:@undef HAVE_TM_ZONE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_TZNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_TZNAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_TZNAME], [/* Define to 1 if you have the declaration of `tzname\', and to 0 if you don\'t.
+ */
+@%:@undef HAVE_DECL_TZNAME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TZNAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TZNAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_TZNAME], [/* Define to 1 if you don\'t have `tm_zone\' but do have the external array
+ `tzname\'. */
+@%:@undef HAVE_TZNAME])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TM_GMTOFF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TM_GMTOFF$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_TM_GMTOFF], [/* Define if struct tm has the tm_gmtoff member. */
+@%:@undef HAVE_TM_GMTOFF])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([TIME_T_FITS_IN_LONG_INT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^TIME_T_FITS_IN_LONG_INT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([TIME_T_FITS_IN_LONG_INT], [/* Define to 1 if all \'time_t\' values fit in a \'long int\'. */
+@%:@undef TIME_T_FITS_IN_LONG_INT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */
+@%:@undef HAVE_SYS_PARAM_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_GETPPRIV], [/* Define to 1 if you have the `getppriv\' function. */
+@%:@undef HAVE_GETPPRIV])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETPPRIV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_GETPPRIV$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_PRIV_H], [/* Define to 1 if you have the <priv.h> header file. */
+@%:@undef HAVE_PRIV_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PROGRAM_INVOCATION_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PROGRAM_INVOCATION_NAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_PROGRAM_INVOCATION_NAME], [/* 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])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME], [/* 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])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_PTHREAD_SIGMASK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_PTHREAD_SIGMASK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_PTHREAD_SIGMASK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_RAISE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_RAISE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_RAISE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SIGNAL_H_SIGPIPE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SIGNAL_H_SIGPIPE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SIGNAL_H_SIGPIPE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SIGPROCMASK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SIGPROCMASK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SIGPROCMASK$])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_SIGACTION])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_SIGACTION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SIGACTION$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_POSIX_SIGNALBLOCKING])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_POSIX_SIGNALBLOCKING])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_POSIX_SIGNALBLOCKING$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_PTHREAD_SIGMASK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_PTHREAD_SIGMASK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_PTHREAD_SIGMASK$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_RAISE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_RAISE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RAISE$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SIGSET_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SIGSET_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGSET_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SIGINFO_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SIGINFO_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGINFO_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SIGACTION])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SIGACTION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGACTION$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRUCT_SIGACTION_SA_SIGACTION])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRUCT_SIGACTION_SA_SIGACTION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_SIGACTION_SA_SIGACTION$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_TYPE_VOLATILE_SIG_ATOMIC_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_TYPE_VOLATILE_SIG_ATOMIC_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TYPE_VOLATILE_SIG_ATOMIC_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SIGHANDLER_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SIGHANDLER_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGHANDLER_T$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_PTHREAD_SIGMASK])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_PTHREAD_SIGMASK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_PTHREAD_SIGMASK$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_RAISE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_RAISE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_RAISE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAISE], [/* Define to 1 if you have the `raise\' function. */
+@%:@undef HAVE_RAISE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RAISE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RAISE$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_RAISE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RAISE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_RAISE], [/* Define to 1 when the gnulib module raise should be tested. */
+@%:@undef GNULIB_TEST_RAISE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAWMEMCHR], [/* Define to 1 if you have the `rawmemchr\' function. */
+@%:@undef HAVE_RAWMEMCHR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RAWMEMCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RAWMEMCHR$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_RAWMEMCHR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RAWMEMCHR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_RAWMEMCHR], [/* Define to 1 when the gnulib module rawmemchr should be tested. */
+@%:@undef GNULIB_TEST_RAWMEMCHR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_READ])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_READ$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_READ], [/* Define to 1 when the gnulib module read should be tested. */
+@%:@undef GNULIB_TEST_READ])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_READDIR], [/* Define to 1 if you have the `readdir\' function. */
+@%:@undef HAVE_READDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_READDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_READDIR$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_READDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_READDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_READDIR], [/* Define to 1 when the gnulib module readdir should be tested. */
+@%:@undef GNULIB_TEST_READDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_READLINK], [/* Define to 1 if you have the `readlink\' function. */
+@%:@undef HAVE_READLINK])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([READLINK_TRAILING_SLASH_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^READLINK_TRAILING_SLASH_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([READLINK_TRAILING_SLASH_BUG], [/* Define to 1 if readlink fails to recognize a trailing slash. */
+@%:@undef READLINK_TRAILING_SLASH_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_READLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_READLINK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_READLINK], [/* Define to 1 when the gnulib module readlink should be tested. */
+@%:@undef GNULIB_TEST_READLINK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_READLINKAT], [/* Define to 1 if you have the `readlinkat\' function. */
+@%:@undef HAVE_READLINKAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_READLINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_READLINKAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_READLINKAT], [/* Define to 1 when the gnulib module readlinkat should be tested. */
+@%:@undef GNULIB_TEST_READLINKAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_REALLOC_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_REALLOC_POSIX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_REALLOC_POSIX], [/* Define if the \'realloc\' function is POSIX compliant. */
+@%:@undef HAVE_REALLOC_POSIX])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_REALLOC_POSIX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_REALLOC_POSIX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_REALLOC_POSIX], [/* Define to 1 when the gnulib module realloc-posix should be tested. */
+@%:@undef GNULIB_TEST_REALLOC_POSIX])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([_REGEX_LARGE_OFFSETS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^_REGEX_LARGE_OFFSETS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([_REGEX_LARGE_OFFSETS], [/* Define if you want regoff_t to be at least as wide POSIX requires. */
+@%:@undef _REGEX_LARGE_OFFSETS])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([re_syntax_options])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_syntax_options$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([re_syntax_options], [/* Define to rpl_re_syntax_options if the replacement should be used. */
+@%:@undef re_syntax_options])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([re_set_syntax])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_set_syntax$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([re_set_syntax], [/* Define to rpl_re_set_syntax if the replacement should be used. */
+@%:@undef re_set_syntax])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([re_compile_pattern])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_compile_pattern$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([re_compile_pattern], [/* Define to rpl_re_compile_pattern if the replacement should be used. */
+@%:@undef re_compile_pattern])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([re_compile_fastmap])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_compile_fastmap$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([re_compile_fastmap], [/* Define to rpl_re_compile_fastmap if the replacement should be used. */
+@%:@undef re_compile_fastmap])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([re_search])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_search$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([re_search], [/* Define to rpl_re_search if the replacement should be used. */
+@%:@undef re_search])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([re_search_2])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_search_2$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([re_search_2], [/* Define to rpl_re_search_2 if the replacement should be used. */
+@%:@undef re_search_2])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([re_match])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_match$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([re_match], [/* Define to rpl_re_match if the replacement should be used. */
+@%:@undef re_match])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([re_match_2])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_match_2$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([re_match_2], [/* Define to rpl_re_match_2 if the replacement should be used. */
+@%:@undef re_match_2])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([re_set_registers])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_set_registers$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([re_set_registers], [/* Define to rpl_re_set_registers if the replacement should be used. */
+@%:@undef re_set_registers])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([re_comp])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_comp$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([re_comp], [/* Define to rpl_re_comp if the replacement should be used. */
+@%:@undef re_comp])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([re_exec])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^re_exec$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([re_exec], [/* Define to rpl_re_exec if the replacement should be used. */
+@%:@undef re_exec])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([regcomp])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^regcomp$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([regcomp], [/* Define to rpl_regcomp if the replacement should be used. */
+@%:@undef regcomp])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([regexec])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^regexec$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([regexec], [/* Define to rpl_regexec if the replacement should be used. */
+@%:@undef regexec])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([regerror])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^regerror$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([regerror], [/* Define to rpl_regerror if the replacement should be used. */
+@%:@undef regerror])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([regfree])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^regfree$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([regfree], [/* Define to rpl_regfree if the replacement should be used. */
+@%:@undef regfree])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LIBINTL_H], [/* Define to 1 if you have the <libintl.h> header file. */
+@%:@undef HAVE_LIBINTL_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBINTL_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LIBINTL_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ISBLANK], [/* Define to 1 if you have the `isblank\' function. */
+@%:@undef HAVE_ISBLANK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ISWCTYPE], [/* Define to 1 if you have the `iswctype\' function. */
+@%:@undef HAVE_ISWCTYPE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCSCOLL], [/* Define to 1 if you have the `wcscoll\' function. */
+@%:@undef HAVE_WCSCOLL])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_ISBLANK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_ISBLANK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_ISBLANK], [/* Define to 1 if you have the declaration of `isblank\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_ISBLANK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */
+@%:@undef HAVE_LSTAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([RENAME_TRAILING_SLASH_DEST_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^RENAME_TRAILING_SLASH_DEST_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([RENAME_TRAILING_SLASH_DEST_BUG], [/* Define if rename does not correctly handle slashes on the destination
+ argument, such as on Solaris 10 or NetBSD 1.6. */
+@%:@undef RENAME_TRAILING_SLASH_DEST_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([RENAME_TRAILING_SLASH_SOURCE_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^RENAME_TRAILING_SLASH_SOURCE_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([RENAME_TRAILING_SLASH_SOURCE_BUG], [/* Define if rename does not correctly handle slashes on the source argument,
+ such as on Solaris 9 or cygwin 1.5. */
+@%:@undef RENAME_TRAILING_SLASH_SOURCE_BUG])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LINK], [/* Define to 1 if you have the `link\' function. */
+@%:@undef HAVE_LINK])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([RENAME_HARD_LINK_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^RENAME_HARD_LINK_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([RENAME_HARD_LINK_BUG], [/* Define if rename fails to leave hard links alone, as on NetBSD 1.6 or
+ Cygwin 1.5. */
+@%:@undef RENAME_HARD_LINK_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([RENAME_DEST_EXISTS_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^RENAME_DEST_EXISTS_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([RENAME_DEST_EXISTS_BUG], [/* Define if rename does not work when the destination file exists, as on
+ Cygwin 1.5 or Windows. */
+@%:@undef RENAME_DEST_EXISTS_BUG])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_RENAME])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RENAME$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_RENAME], [/* Define to 1 when the gnulib module rename should be tested. */
+@%:@undef GNULIB_TEST_RENAME])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RENAMEAT], [/* Define to 1 if you have the `renameat\' function. */
+@%:@undef HAVE_RENAMEAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_RENAMEAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RENAMEAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_RENAMEAT], [/* Define to 1 when the gnulib module renameat should be tested. */
+@%:@undef GNULIB_TEST_RENAMEAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_REWINDDIR], [/* Define to 1 if you have the `rewinddir\' function. */
+@%:@undef HAVE_REWINDDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_REWINDDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_REWINDDIR$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_REWINDDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_REWINDDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_REWINDDIR], [/* Define to 1 when the gnulib module rewinddir should be tested. */
+@%:@undef GNULIB_TEST_REWINDDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_RMDIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RMDIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_RMDIR], [/* Define to 1 when the gnulib module rmdir should be tested. */
+@%:@undef GNULIB_TEST_RMDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RPMATCH], [/* Define to 1 if you have the `rpmatch\' function. */
+@%:@undef HAVE_RPMATCH])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_RPMATCH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_RPMATCH$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LANGINFO_YESEXPR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_LANGINFO_YESEXPR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LANGINFO_YESEXPR], [/* Define if you have <langinfo.h> and nl_langinfo(YESEXPR). */
+@%:@undef HAVE_LANGINFO_YESEXPR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_RPMATCH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_RPMATCH$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_RPMATCH], [/* Define to 1 when the gnulib module rpmatch should be tested. */
+@%:@undef GNULIB_TEST_RPMATCH])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FCHDIR], [/* Define to 1 if you have the `fchdir\' function. */
+@%:@undef HAVE_FCHDIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SETENV$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_SETENV], [/* Define to 1 if you have the declaration of `setenv\', and to 0 if you don\'t.
+ */
+@%:@undef HAVE_DECL_SETENV])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SETENV], [/* Define to 1 if you have the `setenv\' function. */
+@%:@undef HAVE_SETENV])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SEARCH_H], [/* Define to 1 if you have the <search.h> header file. */
+@%:@undef HAVE_SEARCH_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SEARCH_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SEARCH_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_TSEARCH], [/* Define to 1 if you have the `tsearch\' function. */
+@%:@undef HAVE_TSEARCH])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TSEARCH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TSEARCH$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_SETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_SETENV$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_SETENV], [/* Define to 1 when the gnulib module setenv should be tested. */
+@%:@undef GNULIB_TEST_SETENV])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SIGSET_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SIGSET_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SIGSET_T], [/* Define to 1 if the system has the type `sigset_t\'. */
+@%:@undef HAVE_SIGSET_T])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_SIGNAL_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_SIGNAL_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_SIGNAL_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_PTHREAD_SIGMASK], [/* Define to 1 if pthread_sigmask is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_PTHREAD_SIGMASK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SIGACTION], [/* Define to 1 if sigaction is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SIGACTION])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SIGADDSET], [/* Define to 1 if sigaddset is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SIGADDSET])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SIGDELSET], [/* Define to 1 if sigdelset is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SIGDELSET])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SIGEMPTYSET], [/* Define to 1 if sigemptyset is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SIGEMPTYSET])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SIGFILLSET], [/* Define to 1 if sigfillset is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SIGFILLSET])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SIGISMEMBER], [/* Define to 1 if sigismember is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SIGISMEMBER])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SIGPENDING], [/* Define to 1 if sigpending is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SIGPENDING])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SIGPROCMASK], [/* Define to 1 if sigprocmask is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SIGPROCMASK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
+@%:@undef HAVE_STDINT_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDINT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDINT_H$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([SIZE_MAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^SIZE_MAX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([SIZE_MAX], [/* Define as the maximum value of type \'size_t\', if the system doesn\'t define
+ it. */
+@%:@undef SIZE_MAX])
+m4trace:configure.ac:89: -1- AH_OUTPUT([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])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SLEEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SLEEP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_SLEEP], [/* Define to 1 if you have the declaration of `sleep\', and to 0 if you don\'t.
+ */
+@%:@undef HAVE_DECL_SLEEP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SLEEP], [/* Define to 1 if you have the `sleep\' function. */
+@%:@undef HAVE_SLEEP])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_SLEEP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_SLEEP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_SLEEP], [/* Define to 1 when the gnulib module sleep should be tested. */
+@%:@undef GNULIB_TEST_SLEEP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */
+@%:@undef HAVE_SNPRINTF])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SNPRINTF$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */
+@%:@undef HAVE_SNPRINTF])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_SNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_SNPRINTF$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_SNPRINTF], [/* Define to 1 if you have the declaration of `snprintf\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_SNPRINTF])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_SNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_SNPRINTF$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_SNPRINTF], [/* Define to 1 when the gnulib module snprintf should be tested. */
+@%:@undef GNULIB_TEST_SNPRINTF])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_SNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_SNPRINTF$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_SNPRINTF], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module snprintf shall be considered present. */
+@%:@undef GNULIB_SNPRINTF])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([ssize_t])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ssize_t$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([ssize_t], [/* Define as a signed type of the same size as size_t. */
+@%:@undef ssize_t])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */
+@%:@undef HAVE_LSTAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([REPLACE_FUNC_STAT_DIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FUNC_STAT_DIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([REPLACE_FUNC_STAT_DIR], [/* Define to 1 if stat needs help when passed a directory name with a trailing
+ slash */
+@%:@undef REPLACE_FUNC_STAT_DIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([REPLACE_FUNC_STAT_FILE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_FUNC_STAT_FILE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([REPLACE_FUNC_STAT_FILE], [/* Define to 1 if stat needs help when passed a file name with a trailing
+ slash */
+@%:@undef REPLACE_FUNC_STAT_FILE])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_STAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_STAT], [/* Define to 1 when the gnulib module stat should be tested. */
+@%:@undef GNULIB_TEST_STAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
+@%:@undef HAVE_SYS_TIME_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC], [/* Define to 1 if `st_atim.tv_nsec\' is a member of `struct stat\'. */
+@%:@undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC], [/* Define to 1 if the type of the st_atim member of a struct stat is struct
+ timespec. */
+@%:@undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC], [/* Define to 1 if `st_atimespec.tv_nsec\' is a member of `struct stat\'. */
+@%:@undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIMENSEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIMENSEC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIMENSEC], [/* Define to 1 if `st_atimensec\' is a member of `struct stat\'. */
+@%:@undef HAVE_STRUCT_STAT_ST_ATIMENSEC])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC], [/* Define to 1 if `st_atim.st__tim.tv_nsec\' is a member of `struct stat\'. */
+@%:@undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
+@%:@undef HAVE_SYS_TIME_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC], [/* Define to 1 if `st_birthtimespec.tv_nsec\' is a member of `struct stat\'. */
+@%:@undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC], [/* Define to 1 if `st_birthtimensec\' is a member of `struct stat\'. */
+@%:@undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC], [/* Define to 1 if `st_birthtim.tv_nsec\' is a member of `struct stat\'. */
+@%:@undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC])
+m4trace:configure.ac:89: -1- AC_SUBST([STDALIGN_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([STDALIGN_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDALIGN_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDALIGN_H], [test -n "$STDALIGN_H"])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDALIGN_H_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDALIGN_H_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDALIGN_H_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDALIGN_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDALIGN_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDALIGN_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDALIGN_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDALIGN_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_STDARG_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_STDARG_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDARG_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_STDARG_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_STDARG_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STDARG_H$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([va_copy])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^va_copy$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([va_copy], [/* Define as a macro for copying va_list variables. */
+@%:@undef va_copy])
+m4trace:configure.ac:89: -1- AH_OUTPUT([gl_VA_COPY], [/* A replacement for va_copy, if needed. */
+#define gl_va_copy(a,b) ((a) = (b))])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([va_copy])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^va_copy$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([va_copy], [/* Define as a macro for copying va_list variables. */
+@%:@undef va_copy])
+m4trace:configure.ac:89: -1- AC_SUBST([STDARG_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([STDARG_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDARG_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDARG_H], [test -n "$STDARG_H"])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDARG_H_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDARG_H_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDARG_H_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDARG_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDARG_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDARG_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDARG_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDARG_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_STDARG_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_STDARG_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDARG_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([STDBOOL_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([STDBOOL_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDBOOL_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDBOOL_H_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDBOOL_H_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDBOOL_H_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDBOOL_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDBOOL_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDBOOL_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDBOOL_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDBOOL_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE__BOOL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE__BOOL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE__BOOL$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_NULL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_NULL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_NULL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCHAR_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCHAR_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCHAR_T$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WCHAR_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCHAR_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCHAR_T], [/* Define if you have the \'wchar_t\' type. */
+@%:@undef HAVE_WCHAR_T])
+m4trace:configure.ac:89: -1- AC_SUBST([STDDEF_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([STDDEF_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^STDDEF_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDDEF_H_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDDEF_H_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDDEF_H_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_STDDEF_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_STDDEF_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_STDDEF_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDDEF_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_STDDEF_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_STDDEF_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_STDDEF_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDDEF_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_STDDEF_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_STDDEF_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STDDEF_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_STDIO_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_STDIO_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDIO_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_STDIO_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_STDIO_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STDIO_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_DPRINTF], [/* Define to 1 if dprintf is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_DPRINTF])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FPURGE], [/* Define to 1 if fpurge is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FPURGE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FSEEKO], [/* Define to 1 if fseeko is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FSEEKO])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FTELLO], [/* Define to 1 if ftello is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FTELLO])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETDELIM], [/* Define to 1 if getdelim is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETDELIM])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETLINE], [/* Define to 1 if getline is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETLINE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_PCLOSE], [/* Define to 1 if pclose is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_PCLOSE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_POPEN], [/* Define to 1 if popen is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_POPEN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_RENAMEAT], [/* Define to 1 if renameat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_RENAMEAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SNPRINTF], [/* Define to 1 if snprintf is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SNPRINTF])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_TMPFILE], [/* Define to 1 if tmpfile is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_TMPFILE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_VDPRINTF], [/* Define to 1 if vdprintf is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_VDPRINTF])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_VSNPRINTF], [/* Define to 1 if vsnprintf is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_VSNPRINTF])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_STDLIB_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_STDLIB_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STDLIB_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_STDLIB_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_STDLIB_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STDLIB_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL__EXIT], [/* Define to 1 if _Exit is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL__EXIT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_ATOLL], [/* Define to 1 if atoll is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_ATOLL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_CANONICALIZE_FILE_NAME], [/* Define to 1 if canonicalize_file_name is declared even after undefining
+ macros. */
+@%:@undef HAVE_RAW_DECL_CANONICALIZE_FILE_NAME])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETLOADAVG], [/* Define to 1 if getloadavg is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETLOADAVG])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETSUBOPT], [/* Define to 1 if getsubopt is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETSUBOPT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GRANTPT], [/* Define to 1 if grantpt is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GRANTPT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_INITSTATE], [/* Define to 1 if initstate is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_INITSTATE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_INITSTATE_R], [/* Define to 1 if initstate_r is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_INITSTATE_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MKDTEMP], [/* Define to 1 if mkdtemp is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MKDTEMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MKOSTEMP], [/* Define to 1 if mkostemp is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MKOSTEMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MKOSTEMPS], [/* Define to 1 if mkostemps is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MKOSTEMPS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MKSTEMP], [/* Define to 1 if mkstemp is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MKSTEMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MKSTEMPS], [/* Define to 1 if mkstemps is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MKSTEMPS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_POSIX_OPENPT], [/* Define to 1 if posix_openpt is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_POSIX_OPENPT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_PTSNAME], [/* Define to 1 if ptsname is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_PTSNAME])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_PTSNAME_R], [/* Define to 1 if ptsname_r is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_PTSNAME_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_RANDOM], [/* Define to 1 if random is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_RANDOM])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_RANDOM_R], [/* Define to 1 if random_r is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_RANDOM_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_REALPATH], [/* Define to 1 if realpath is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_REALPATH])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_RPMATCH], [/* Define to 1 if rpmatch is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_RPMATCH])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SETENV], [/* Define to 1 if setenv is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SETENV])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SETSTATE], [/* Define to 1 if setstate is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SETSTATE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SETSTATE_R], [/* Define to 1 if setstate_r is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SETSTATE_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SRANDOM], [/* Define to 1 if srandom is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SRANDOM])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SRANDOM_R], [/* Define to 1 if srandom_r is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SRANDOM_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRTOD], [/* Define to 1 if strtod is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRTOD])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRTOLL], [/* Define to 1 if strtoll is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRTOLL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRTOULL], [/* Define to 1 if strtoull is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRTOULL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_UNLOCKPT], [/* Define to 1 if unlockpt is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_UNLOCKPT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_UNSETENV], [/* Define to 1 if unsetenv is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_UNSETENV])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STPCPY], [/* Define to 1 if you have the `stpcpy\' function. */
+@%:@undef HAVE_STPCPY])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STPCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STPCPY$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_STPCPY])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STPCPY$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_STPCPY], [/* Define to 1 when the gnulib module stpcpy should be tested. */
+@%:@undef GNULIB_TEST_STPCPY])
+m4trace:configure.ac:89: -1- AC_SUBST([GNULIB_FFS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GNULIB_FFS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_FFS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FFS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FFS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FFS$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRCASECMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRCASECMP$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_DECL_STRNCASECMP])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_DECL_STRNCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNCASECMP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRCASECMP], [/* Define to 1 if you have the `strcasecmp\' function. */
+@%:@undef HAVE_STRCASECMP])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRCASECMP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRNCASECMP], [/* Define to 1 if you have the `strncasecmp\' function. */
+@%:@undef HAVE_STRNCASECMP])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRNCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRNCASECMP$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRNCASECMP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNCASECMP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_STRNCASECMP], [/* Define to 1 if you have the declaration of `strncasecmp\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_STRNCASECMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRCHRNUL], [/* Define to 1 if you have the `strchrnul\' function. */
+@%:@undef HAVE_STRCHRNUL])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRCHRNUL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRCHRNUL$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_STRCHRNUL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRCHRNUL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_STRCHRNUL], [/* Define to 1 when the gnulib module strchrnul should be tested. */
+@%:@undef GNULIB_TEST_STRCHRNUL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRDUP], [/* Define to 1 if you have the `strdup\' function. */
+@%:@undef HAVE_STRDUP])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRDUP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_STRDUP], [/* Define to 1 if you have the declaration of `strdup\', and to 0 if you don\'t.
+ */
+@%:@undef HAVE_DECL_STRDUP])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_STRDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRDUP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_STRDUP], [/* Define to 1 when the gnulib module strdup should be tested. */
+@%:@undef GNULIB_TEST_STRDUP])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([REPLACE_STRERROR_0])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_STRERROR_0$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([REPLACE_STRERROR_0], [/* Define to 1 if strerror(0) does not return a message implying success. */
+@%:@undef REPLACE_STRERROR_0])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_STRERROR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_STRERROR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_STRERROR], [/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module strerror shall be considered present. */
+@%:@undef GNULIB_STRERROR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_STRERROR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRERROR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_STRERROR], [/* Define to 1 when the gnulib module strerror should be tested. */
+@%:@undef GNULIB_TEST_STRERROR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_SOCKET_H], [/* Define to 1 if you have the <sys/socket.h> header file. */
+@%:@undef HAVE_SYS_SOCKET_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WINSOCK2_H], [/* Define to 1 if you have the <winsock2.h> header file. */
+@%:@undef HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WINSOCK2_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINSOCK2_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_STRING_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_STRING_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STRING_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_STRING_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_STRING_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STRING_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FFSL], [/* Define to 1 if ffsl is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FFSL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FFSLL], [/* Define to 1 if ffsll is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FFSLL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MEMMEM], [/* Define to 1 if memmem is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MEMMEM])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MEMPCPY], [/* Define to 1 if mempcpy is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MEMPCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MEMRCHR], [/* Define to 1 if memrchr is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MEMRCHR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_RAWMEMCHR], [/* Define to 1 if rawmemchr is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_RAWMEMCHR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STPCPY], [/* Define to 1 if stpcpy is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STPCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STPNCPY], [/* Define to 1 if stpncpy is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STPNCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRCHRNUL], [/* Define to 1 if strchrnul is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRCHRNUL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRDUP], [/* Define to 1 if strdup is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRDUP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRNCAT], [/* Define to 1 if strncat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRNCAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRNDUP], [/* Define to 1 if strndup is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRNDUP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRNLEN], [/* Define to 1 if strnlen is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRNLEN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRPBRK], [/* Define to 1 if strpbrk is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRPBRK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRSEP], [/* Define to 1 if strsep is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRSEP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRCASESTR], [/* Define to 1 if strcasestr is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRCASESTR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRTOK_R], [/* Define to 1 if strtok_r is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRTOK_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRERROR_R], [/* Define to 1 if strerror_r is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRERROR_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRSIGNAL], [/* Define to 1 if strsignal is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRSIGNAL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRVERSCMP], [/* Define to 1 if strverscmp is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRVERSCMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRINGS_H], [/* Define to 1 if you have the <strings.h> header file. */
+@%:@undef HAVE_STRINGS_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_STRINGS_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_STRINGS_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_STRINGS_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_STRINGS_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_STRINGS_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_STRINGS_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_STRINGS_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_STRINGS_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRINGS_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FFS], [/* Define to 1 if ffs is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FFS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRCASECMP], [/* Define to 1 if strcasecmp is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRCASECMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STRNCASECMP], [/* Define to 1 if strncasecmp is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STRNCASECMP])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRNDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNDUP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_STRNDUP], [/* Define to 1 if you have the declaration of `strndup\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_STRNDUP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRNDUP], [/* Define to 1 if you have the `strndup\' function. */
+@%:@undef HAVE_STRNDUP])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_STRNDUP])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRNDUP$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_STRNDUP], [/* Define to 1 when the gnulib module strndup should be tested. */
+@%:@undef GNULIB_TEST_STRNDUP])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRNLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRNLEN$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_STRNLEN], [/* Define to 1 if you have the declaration of `strnlen\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_STRNLEN])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_STRNLEN])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRNLEN$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_STRNLEN], [/* Define to 1 when the gnulib module strnlen should be tested. */
+@%:@undef GNULIB_TEST_STRNLEN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRTOL], [/* Define to 1 if you have the `strtol\' function. */
+@%:@undef HAVE_STRTOL])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRTOUL], [/* Define to 1 if you have the `strtoul\' function. */
+@%:@undef HAVE_STRTOUL])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOUL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOUL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRTOULL], [/* Define to 1 if you have the `strtoull\' function. */
+@%:@undef HAVE_STRTOULL])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRTOULL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRTOULL$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_STRTOULL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_STRTOULL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_STRTOULL], [/* Define to 1 when the gnulib module strtoull should be tested. */
+@%:@undef GNULIB_TEST_STRTOULL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRTOUMAX], [/* Define to 1 if you have the `strtoumax\' function. */
+@%:@undef HAVE_STRTOUMAX])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOUMAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRTOUMAX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_STRTOUMAX], [/* Define to 1 if you have the declaration of `strtoumax\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_STRTOUMAX])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_STRTOULL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_STRTOULL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_STRTOULL], [/* Define to 1 if you have the declaration of `strtoull\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_STRTOULL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYMLINK], [/* Define to 1 if you have the `symlink\' function. */
+@%:@undef HAVE_SYMLINK])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_SYMLINK])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_SYMLINK$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_SYMLINK], [/* Define to 1 when the gnulib module symlink should be tested. */
+@%:@undef GNULIB_TEST_SYMLINK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYMLINKAT], [/* Define to 1 if you have the `symlinkat\' function. */
+@%:@undef HAVE_SYMLINKAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_SYMLINKAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_SYMLINKAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_SYMLINKAT], [/* Define to 1 when the gnulib module symlinkat should be tested. */
+@%:@undef GNULIB_TEST_SYMLINKAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_STAT_H], [/* Define to 1 if you have the <sys/stat.h> header file. */
+@%:@undef HAVE_SYS_STAT_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_SYS_STAT_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_SYS_STAT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_SYS_STAT_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([nlink_t])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^nlink_t$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([nlink_t], [/* Define to the type of st_nlink in struct stat, or a supertype. */
+@%:@undef nlink_t])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FCHMODAT], [/* Define to 1 if fchmodat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FCHMODAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FSTAT], [/* Define to 1 if fstat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FSTAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FSTATAT], [/* Define to 1 if fstatat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FSTATAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FUTIMENS], [/* Define to 1 if futimens is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FUTIMENS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_LCHMOD], [/* Define to 1 if lchmod is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_LCHMOD])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_LSTAT], [/* Define to 1 if lstat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_LSTAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MKDIRAT], [/* Define to 1 if mkdirat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MKDIRAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MKFIFO], [/* Define to 1 if mkfifo is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MKFIFO])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MKFIFOAT], [/* Define to 1 if mkfifoat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MKFIFOAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MKNOD], [/* Define to 1 if mknod is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MKNOD])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MKNODAT], [/* Define to 1 if mknodat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MKNODAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_STAT], [/* Define to 1 if stat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_STAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_UTIMENSAT], [/* Define to 1 if utimensat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_UTIMENSAT])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_SYS_TYPES_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_SYS_TYPES_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_SYS_TYPES_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYSEXITS_H], [/* Define to 1 if you have the <sysexits.h> header file. */
+@%:@undef HAVE_SYSEXITS_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYSEXITS_H], [/* Define to 1 if you have the <sysexits.h> header file. */
+@%:@undef HAVE_SYSEXITS_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_SYSEXITS_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_SYSEXITS_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_SYSEXITS_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_SYSEXITS_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_SYSEXITS_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SYSEXITS_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([SYSEXITS_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([SYSEXITS_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^SYSEXITS_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([GL_GENERATE_SYSEXITS_H], [test -n "$SYSEXITS_H"])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_SYSEXITS_H_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_SYSEXITS_H_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_SYSEXITS_H_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([GL_GENERATE_SYSEXITS_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([GL_GENERATE_SYSEXITS_H_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GL_GENERATE_SYSEXITS_H_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_SYSEXITS_H_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([GL_GENERATE_SYSEXITS_H_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_TIME_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_TIME_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_TIME_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_TIME_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_TIME_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_TIME_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
+@%:@undef HAVE_SYS_TIME_H])
+m4trace:configure.ac:89: -1- AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([TIME_H_DEFINES_STRUCT_TIMESPEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^TIME_H_DEFINES_STRUCT_TIMESPEC$])
+m4trace:configure.ac:89: -1- AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^SYS_TIME_H_DEFINES_STRUCT_TIMESPEC$])
+m4trace:configure.ac:89: -1- AC_SUBST([PTHREAD_H_DEFINES_STRUCT_TIMESPEC])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([PTHREAD_H_DEFINES_STRUCT_TIMESPEC])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PTHREAD_H_DEFINES_STRUCT_TIMESPEC$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_LOCALTIME_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_LOCALTIME_R$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_LOCALTIME_R], [/* Define to 1 if you have the declaration of `localtime_r\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_LOCALTIME_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LOCALTIME_R], [/* Define to 1 if you have the `localtime_r\' function. */
+@%:@undef HAVE_LOCALTIME_R])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_TIME_R])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_TIME_R$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_TIME_R], [/* Define to 1 when the gnulib module time_r should be tested. */
+@%:@undef GNULIB_TEST_TIME_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_UNISTD_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_UNISTD_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_UNISTD_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_UNISTD_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_UNISTD_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_UNISTD_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNISTD_H$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_CHDIR], [/* Define to 1 if chdir is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_CHDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_CHOWN], [/* Define to 1 if chown is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_CHOWN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_DUP], [/* Define to 1 if dup is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_DUP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_DUP2], [/* Define to 1 if dup2 is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_DUP2])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_DUP3], [/* Define to 1 if dup3 is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_DUP3])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_ENVIRON], [/* Define to 1 if environ is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_ENVIRON])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_EUIDACCESS], [/* Define to 1 if euidaccess is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_EUIDACCESS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FACCESSAT], [/* Define to 1 if faccessat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FACCESSAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FCHDIR], [/* Define to 1 if fchdir is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FCHDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FCHOWNAT], [/* Define to 1 if fchownat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FCHOWNAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FDATASYNC], [/* Define to 1 if fdatasync is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FDATASYNC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FSYNC], [/* Define to 1 if fsync is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FSYNC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_FTRUNCATE], [/* Define to 1 if ftruncate is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_FTRUNCATE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETCWD], [/* Define to 1 if getcwd is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETCWD])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETDOMAINNAME], [/* Define to 1 if getdomainname is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETDOMAINNAME])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETDTABLESIZE], [/* Define to 1 if getdtablesize is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETDTABLESIZE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETGROUPS], [/* Define to 1 if getgroups is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETGROUPS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETHOSTNAME], [/* Define to 1 if gethostname is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETHOSTNAME])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETLOGIN], [/* Define to 1 if getlogin is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETLOGIN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETLOGIN_R], [/* Define to 1 if getlogin_r is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETLOGIN_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETPAGESIZE], [/* Define to 1 if getpagesize is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETPAGESIZE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GETUSERSHELL], [/* Define to 1 if getusershell is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GETUSERSHELL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SETUSERSHELL], [/* Define to 1 if setusershell is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SETUSERSHELL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_ENDUSERSHELL], [/* Define to 1 if endusershell is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_ENDUSERSHELL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_GROUP_MEMBER], [/* Define to 1 if group_member is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_GROUP_MEMBER])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_ISATTY], [/* Define to 1 if isatty is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_ISATTY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_LCHOWN], [/* Define to 1 if lchown is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_LCHOWN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_LINK], [/* Define to 1 if link is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_LINK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_LINKAT], [/* Define to 1 if linkat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_LINKAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_LSEEK], [/* Define to 1 if lseek is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_LSEEK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_PIPE], [/* Define to 1 if pipe is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_PIPE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_PIPE2], [/* Define to 1 if pipe2 is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_PIPE2])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_PREAD], [/* Define to 1 if pread is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_PREAD])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_PWRITE], [/* Define to 1 if pwrite is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_PWRITE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_READLINK], [/* Define to 1 if readlink is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_READLINK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_READLINKAT], [/* Define to 1 if readlinkat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_READLINKAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_RMDIR], [/* Define to 1 if rmdir is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_RMDIR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SETHOSTNAME], [/* Define to 1 if sethostname is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SETHOSTNAME])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SLEEP], [/* Define to 1 if sleep is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SLEEP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SYMLINK], [/* Define to 1 if symlink is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SYMLINK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_SYMLINKAT], [/* Define to 1 if symlinkat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_SYMLINKAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_TTYNAME_R], [/* Define to 1 if ttyname_r is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_TTYNAME_R])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_UNLINK], [/* Define to 1 if unlink is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_UNLINK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_UNLINKAT], [/* Define to 1 if unlinkat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_UNLINKAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_USLEEP], [/* Define to 1 if usleep is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_USLEEP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_PIPE], [/* Define to 1 if you have the `pipe\' function. */
+@%:@undef HAVE_PIPE])
+m4trace:configure.ac:89: -1- AC_SUBST([LIBUNISTRING_UNITYPES_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LIBUNISTRING_UNITYPES_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBUNISTRING_UNITYPES_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([LIBUNISTRING_UNIWIDTH_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LIBUNISTRING_UNIWIDTH_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBUNISTRING_UNIWIDTH_H$])
+m4trace:configure.ac:89: -1- AM_CONDITIONAL([LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH], [gl_LIBUNISTRING_VERSION_CMP([0.9.4])])
+m4trace:configure.ac:89: -1- AC_SUBST([LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE$])
+m4trace:configure.ac:89: -1- AC_SUBST([LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE$])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE])
+m4trace:configure.ac:89: -1- _AM_SUBST_NOTMAKE([LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_PRIV_H], [/* Define to 1 if you have the <priv.h> header file. */
+@%:@undef HAVE_PRIV_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([UNLINK_CANNOT_UNLINK_DIR])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^UNLINK_CANNOT_UNLINK_DIR$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([UNLINK_CANNOT_UNLINK_DIR], [/* Define to 1 if unlink (dir) cannot possibly succeed. */
+@%:@undef UNLINK_CANNOT_UNLINK_DIR])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([USE_UNLOCKED_IO])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^USE_UNLOCKED_IO$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([USE_UNLOCKED_IO], [/* Define to 1 if you want getc etc. to use unlocked I/O if available.
+ Unlocked I/O can improve performance in unithreaded apps, but it is not
+ safe for multithreaded apps. */
+@%:@undef USE_UNLOCKED_IO])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_UNSETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_UNSETENV$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_UNSETENV], [/* Define to 1 if you have the declaration of `unsetenv\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_UNSETENV])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNSETENV], [/* Define to 1 if you have the `unsetenv\' function. */
+@%:@undef HAVE_UNSETENV])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_UNSETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_UNSETENV$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([VOID_UNSETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^VOID_UNSETENV$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([VOID_UNSETENV], [/* Define to 1 if unsetenv returns void instead of int. */
+@%:@undef VOID_UNSETENV])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the <unistd.h> header file. */
+@%:@undef HAVE_UNISTD_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_UNSETENV])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_UNSETENV$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_UNSETENV], [/* Define to 1 when the gnulib module unsetenv should be tested. */
+@%:@undef GNULIB_TEST_UNSETENV])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_UTIMES])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WORKING_UTIMES$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WORKING_UTIMES], [/* Define if utimes works properly. */
+@%:@undef HAVE_WORKING_UTIMES])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SYS_TIME_H], [/* Define to 1 if you have the <sys/time.h> header file. */
+@%:@undef HAVE_SYS_TIME_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UTIME_H], [/* Define to 1 if you have the <utime.h> header file. */
+@%:@undef HAVE_UTIME_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_UTIMBUF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STRUCT_UTIMBUF$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRUCT_UTIMBUF], [/* Define if struct utimbuf is declared -- usually in <utime.h>. Some systems
+ have utime.h but don\'t declare the struct anywhere. */
+@%:@undef HAVE_STRUCT_UTIMBUF])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FUTIMES], [/* Define to 1 if you have the `futimes\' function. */
+@%:@undef HAVE_FUTIMES])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FUTIMESAT], [/* Define to 1 if you have the `futimesat\' function. */
+@%:@undef HAVE_FUTIMESAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FUTIMENS], [/* Define to 1 if you have the `futimens\' function. */
+@%:@undef HAVE_FUTIMENS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UTIMENSAT], [/* Define to 1 if you have the `utimensat\' function. */
+@%:@undef HAVE_UTIMENSAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_LUTIMES], [/* Define to 1 if you have the `lutimes\' function. */
+@%:@undef HAVE_LUTIMES])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([FUTIMESAT_NULL_BUG])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^FUTIMESAT_NULL_BUG$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([FUTIMESAT_NULL_BUG], [/* Define to 1 if futimesat mishandles a NULL file name. */
+@%:@undef FUTIMESAT_NULL_BUG])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_UTIMENSAT], [/* Define to 1 if you have the `utimensat\' function. */
+@%:@undef HAVE_UTIMENSAT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_UTIMENSAT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_UTIMENSAT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_UTIMENSAT], [/* Define to 1 when the gnulib module utimensat should be tested. */
+@%:@undef GNULIB_TEST_UTIMENSAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_VASNPRINTF], [/* Define to 1 if you have the `vasnprintf\' function. */
+@%:@undef HAVE_VASNPRINTF])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_VASNPRINTF], [/* Define to 1 if you have the `vasnprintf\' function. */
+@%:@undef HAVE_VASNPRINTF])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([REPLACE_VASNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_VASNPRINTF$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([REPLACE_VASNPRINTF], [/* Define if vasnprintf exists but is overridden by gnulib. */
+@%:@undef REPLACE_VASNPRINTF])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_FEATURES_H], [/* Define to 1 if you have the <features.h> header file. */
+@%:@undef HAVE_FEATURES_H])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_FEATURES_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_FEATURES_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_FEATURES_H$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([ptrdiff_t])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^ptrdiff_t$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([ptrdiff_t], [/* Define as the type of the result of subtracting two pointers, if the system
+ doesn\'t define it. */
+@%:@undef ptrdiff_t])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTTYPES_H_WITH_UINTMAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_INTTYPES_H_WITH_UINTMAX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_INTTYPES_H_WITH_UINTMAX], [/* Define if <inttypes.h> exists, doesn\'t clash with <sys/types.h>, and
+ declares uintmax_t. */
+@%:@undef HAVE_INTTYPES_H_WITH_UINTMAX])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDINT_H_WITH_UINTMAX])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDINT_H_WITH_UINTMAX$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STDINT_H_WITH_UINTMAX], [/* Define if <stdint.h> exists, doesn\'t clash with <sys/types.h>, and declares
+ uintmax_t. */
+@%:@undef HAVE_STDINT_H_WITH_UINTMAX])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_INTMAX_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_INTMAX_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_INTMAX_T], [/* Define if you have the \'intmax_t\' type in <stdint.h> or <inttypes.h>. */
+@%:@undef HAVE_INTMAX_T])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([intmax_t])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^intmax_t$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([intmax_t], [/* Define to long or long long if <stdint.h> and <inttypes.h> don\'t define. */
+@%:@undef intmax_t])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SNPRINTF], [/* Define to 1 if you have the `snprintf\' function. */
+@%:@undef HAVE_SNPRINTF])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STRNLEN], [/* Define to 1 if you have the `strnlen\' function. */
+@%:@undef HAVE_STRNLEN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCSLEN], [/* Define to 1 if you have the `wcslen\' function. */
+@%:@undef HAVE_WCSLEN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCSNLEN], [/* Define to 1 if you have the `wcsnlen\' function. */
+@%:@undef HAVE_WCSNLEN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBRTOWC], [/* Define to 1 if you have the `mbrtowc\' function. */
+@%:@undef HAVE_MBRTOWC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCRTOMB], [/* Define to 1 if you have the `wcrtomb\' function. */
+@%:@undef HAVE_WCRTOMB])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL__SNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL__SNPRINTF$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL__SNPRINTF], [/* Define to 1 if you have the declaration of `_snprintf\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL__SNPRINTF])
+m4trace:configure.ac:89: -1- AH_OUTPUT([WORDS_BIGENDIAN], [/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+# undef WORDS_BIGENDIAN
+# endif
+#endif])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([AC_APPLE_UNIVERSAL_BUILD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^AC_APPLE_UNIVERSAL_BUILD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([AC_APPLE_UNIVERSAL_BUILD], [/* Define if building universal (internal helper macro) */
+@%:@undef AC_APPLE_UNIVERSAL_BUILD])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([DBL_EXPBIT0_WORD])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^DBL_EXPBIT0_WORD$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([DBL_EXPBIT0_WORD], [/* Define as the word index where to find the exponent of \'double\'. */
+@%:@undef DBL_EXPBIT0_WORD])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([DBL_EXPBIT0_BIT])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^DBL_EXPBIT0_BIT$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([DBL_EXPBIT0_BIT], [/* Define as the bit index in the word where to find bit 0 of the exponent of
+ \'double\'. */
+@%:@undef DBL_EXPBIT0_BIT])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SNPRINTF_RETVAL_C99])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_SNPRINTF_RETVAL_C99$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_SNPRINTF_RETVAL_C99], [/* Define if the return value of the snprintf function is the number of of
+ bytes (excluding the terminating NUL) that would have been produced if the
+ buffer had been large enough. */
+@%:@undef HAVE_SNPRINTF_RETVAL_C99])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_VASPRINTF], [/* Define to 1 if you have the `vasprintf\' function. */
+@%:@undef HAVE_VASPRINTF])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VASPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_VASPRINTF$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_VASPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_VASPRINTF$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_VASPRINTF], [/* Define to 1 when the gnulib module vasprintf should be tested. */
+@%:@undef GNULIB_TEST_VASPRINTF])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=asprintf:2:c-format])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=vasprintf:2:c-format])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_PACKAGER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PACKAGE_PACKAGER$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([PACKAGE_PACKAGER], [/* String identifying the packager of this software */
+@%:@undef PACKAGE_PACKAGER])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_PACKAGER_VERSION])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PACKAGE_PACKAGER_VERSION$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([PACKAGE_PACKAGER_VERSION], [/* Packager-specific version information */
+@%:@undef PACKAGE_PACKAGER_VERSION])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([PACKAGE_PACKAGER_BUG_REPORTS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^PACKAGE_PACKAGER_BUG_REPORTS$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([PACKAGE_PACKAGER_BUG_REPORTS], [/* Packager info for bug reports (URL/e-mail/...) */
+@%:@undef PACKAGE_PACKAGER_BUG_REPORTS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_VSNPRINTF], [/* Define to 1 if you have the `vsnprintf\' function. */
+@%:@undef HAVE_VSNPRINTF])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_VSNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_VSNPRINTF$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_VSNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_VSNPRINTF$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_VSNPRINTF], [/* Define to 1 if you have the declaration of `vsnprintf\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_VSNPRINTF])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_VSNPRINTF])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_VSNPRINTF$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_VSNPRINTF], [/* Define to 1 when the gnulib module vsnprintf should be tested. */
+@%:@undef GNULIB_TEST_VSNPRINTF])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the <wchar.h> header file. */
+@%:@undef HAVE_WCHAR_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_WCHAR_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_WCHAR_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_WCHAR_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_WCHAR_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_WCHAR_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_WCHAR_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCHAR_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCHAR_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCHAR_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WINT_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WINT_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINT_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_BTOWC], [/* Define to 1 if btowc is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_BTOWC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCTOB], [/* Define to 1 if wctob is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCTOB])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MBSINIT], [/* Define to 1 if mbsinit is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MBSINIT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MBRTOWC], [/* Define to 1 if mbrtowc is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MBRTOWC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MBRLEN], [/* Define to 1 if mbrlen is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MBRLEN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MBSRTOWCS], [/* Define to 1 if mbsrtowcs is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MBSRTOWCS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_MBSNRTOWCS], [/* Define to 1 if mbsnrtowcs is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_MBSNRTOWCS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCRTOMB], [/* Define to 1 if wcrtomb is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCRTOMB])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSRTOMBS], [/* Define to 1 if wcsrtombs is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSRTOMBS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSNRTOMBS], [/* Define to 1 if wcsnrtombs is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSNRTOMBS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCWIDTH], [/* Define to 1 if wcwidth is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCWIDTH])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WMEMCHR], [/* Define to 1 if wmemchr is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WMEMCHR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WMEMCMP], [/* Define to 1 if wmemcmp is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WMEMCMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WMEMCPY], [/* Define to 1 if wmemcpy is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WMEMCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WMEMMOVE], [/* Define to 1 if wmemmove is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WMEMMOVE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WMEMSET], [/* Define to 1 if wmemset is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WMEMSET])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSLEN], [/* Define to 1 if wcslen is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSLEN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSNLEN], [/* Define to 1 if wcsnlen is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSNLEN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSCPY], [/* Define to 1 if wcscpy is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCPCPY], [/* Define to 1 if wcpcpy is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCPCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSNCPY], [/* Define to 1 if wcsncpy is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSNCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCPNCPY], [/* Define to 1 if wcpncpy is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCPNCPY])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSCAT], [/* Define to 1 if wcscat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSCAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSNCAT], [/* Define to 1 if wcsncat is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSNCAT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSCMP], [/* Define to 1 if wcscmp is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSCMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSNCMP], [/* Define to 1 if wcsncmp is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSNCMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSCASECMP], [/* Define to 1 if wcscasecmp is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSCASECMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSNCASECMP], [/* Define to 1 if wcsncasecmp is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSNCASECMP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSCOLL], [/* Define to 1 if wcscoll is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSCOLL])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSXFRM], [/* Define to 1 if wcsxfrm is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSXFRM])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSDUP], [/* Define to 1 if wcsdup is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSDUP])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSCHR], [/* Define to 1 if wcschr is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSCHR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSRCHR], [/* Define to 1 if wcsrchr is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSRCHR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSCSPN], [/* Define to 1 if wcscspn is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSCSPN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSSPN], [/* Define to 1 if wcsspn is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSSPN])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSPBRK], [/* Define to 1 if wcspbrk is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSPBRK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSSTR], [/* Define to 1 if wcsstr is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSSTR])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSTOK], [/* Define to 1 if wcstok is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSTOK])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCSWIDTH], [/* Define to 1 if wcswidth is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCSWIDTH])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBSINIT], [/* Define to 1 if you have the `mbsinit\' function. */
+@%:@undef HAVE_MBSINIT])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_MBRTOWC], [/* Define to 1 if you have the `mbrtowc\' function. */
+@%:@undef HAVE_MBRTOWC])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCRTOMB], [/* Define to 1 if you have the `wcrtomb\' function. */
+@%:@undef HAVE_WCRTOMB])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_WCRTOMB])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_WCRTOMB$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_WCRTOMB], [/* Define to 1 if you have the declaration of `wcrtomb\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_WCRTOMB])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_WCRTOMB])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_WCRTOMB$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_WCRTOMB], [/* Define to 1 when the gnulib module wcrtomb should be tested. */
+@%:@undef GNULIB_TEST_WCRTOMB])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_ISWCNTRL], [/* Define to 1 if you have the `iswcntrl\' function. */
+@%:@undef HAVE_ISWCNTRL])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_ISWCNTRL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_ISWCNTRL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_ISWCNTRL$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WINT_T])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WINT_T])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WINT_T$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCTYPE_H], [/* Define to 1 if you have the <wctype.h> header file. */
+@%:@undef HAVE_WCTYPE_H])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_WCTYPE_H], [AS_VAR_GET(gl_next_header)])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_WCTYPE_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_WCTYPE_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H], [$gl_next_as_first_directive])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([HAVE_WCTYPE_H])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([HAVE_WCTYPE_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_WCTYPE_H$])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_ISWCNTRL])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_ISWCNTRL])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_ISWCNTRL$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_TOWLOWER], [/* Define to 1 if you have the `towlower\' function. */
+@%:@undef HAVE_TOWLOWER])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_TOWLOWER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_TOWLOWER$])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_TOWLOWER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_TOWLOWER$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_TOWLOWER], [/* Define to 1 if you have the declaration of `towlower\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_TOWLOWER])
+m4trace:configure.ac:89: -1- AC_SUBST([REPLACE_TOWLOWER])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([REPLACE_TOWLOWER])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^REPLACE_TOWLOWER$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCTYPE], [/* Define to 1 if wctype is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCTYPE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_ISWCTYPE], [/* Define to 1 if iswctype is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_ISWCTYPE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_WCTRANS], [/* Define to 1 if wctrans is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_WCTRANS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_RAW_DECL_TOWCTRANS], [/* Define to 1 if towctrans is declared even after undefining macros. */
+@%:@undef HAVE_RAW_DECL_TOWCTRANS])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCHAR_H], [/* Define to 1 if you have the <wchar.h> header file. */
+@%:@undef HAVE_WCHAR_H])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_WCWIDTH], [/* Define to 1 if you have the `wcwidth\' function. */
+@%:@undef HAVE_WCWIDTH])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_WCWIDTH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_DECL_WCWIDTH$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_DECL_WCWIDTH], [/* Define to 1 if you have the declaration of `wcwidth\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_WCWIDTH])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_WCWIDTH])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_WCWIDTH$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_WCWIDTH], [/* Define to 1 when the gnulib module wcwidth should be tested. */
+@%:@undef GNULIB_TEST_WCWIDTH])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([GNULIB_TEST_WRITE])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^GNULIB_TEST_WRITE$])
+m4trace:configure.ac:89: -1- AH_OUTPUT([GNULIB_TEST_WRITE], [/* Define to 1 when the gnulib module write should be tested. */
+@%:@undef GNULIB_TEST_WRITE])
+m4trace:configure.ac:89: -1- AH_OUTPUT([HAVE_STDINT_H], [/* Define to 1 if you have the <stdint.h> header file. */
+@%:@undef HAVE_STDINT_H])
+m4trace:configure.ac:89: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STDINT_H])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^HAVE_STDINT_H$])
+m4trace:configure.ac:89: -1- AM_XGETTEXT_OPTION([--flag=xasprintf:1:c-format])
+m4trace:configure.ac:89: -1- AC_SUBST([gltests_WITNESS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([gltests_WITNESS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^gltests_WITNESS$])
+m4trace:configure.ac:89: -1- AC_SUBST([LIBGNU_LIBDEPS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LIBGNU_LIBDEPS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBGNU_LIBDEPS$])
+m4trace:configure.ac:89: -1- AC_SUBST([LIBGNU_LTLIBDEPS])
+m4trace:configure.ac:89: -1- AC_SUBST_TRACE([LIBGNU_LTLIBDEPS])
+m4trace:configure.ac:89: -1- m4_pattern_allow([^LIBGNU_LTLIBDEPS$])
+m4trace:configure.ac:91: -1- AC_SUBST([LIB_SETSOCKOPT])
+m4trace:configure.ac:91: -1- AC_SUBST_TRACE([LIB_SETSOCKOPT])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^LIB_SETSOCKOPT$])
+m4trace:configure.ac:91: -1- _m4_warn([obsolete], [The macro `AC_TRY_CPP' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:2530: AC_TRY_CPP is expanded from...
+../../lib/m4sugar/m4sh.m4:606: AS_IF is expanded from...
+../../lib/autoconf/general.m4:2032: AC_CACHE_VAL is expanded from...
+../../lib/autoconf/general.m4:2053: AC_CACHE_CHECK is expanded from...
+m4/rmt.m4:2: PU_RMT is expanded from...
+m4/paxutils.m4:3: tar_PAXUTILS is expanded from...
+configure.ac:91: the top level])
+m4trace:configure.ac:91: -1- AC_SUBST([PU_RMT_PROG])
+m4trace:configure.ac:91: -1- AC_SUBST_TRACE([PU_RMT_PROG])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^PU_RMT_PROG$])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SYS_MTIO_H], [/* Define to 1 if you have the <sys/mtio.h> header file. */
+@%:@undef HAVE_SYS_MTIO_H])
+m4trace:configure.ac:91: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_MTIO_H])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^HAVE_SYS_MTIO_H$])
+m4trace:configure.ac:91: -1- AC_DEFINE_TRACE_LITERAL([MTIO_CHECK_FIELD])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^MTIO_CHECK_FIELD$])
+m4trace:configure.ac:91: -1- AH_OUTPUT([MTIO_CHECK_FIELD], [/* Define to mt_model (v.g., for DG/UX), else to mt_type. */
+@%:@undef MTIO_CHECK_FIELD])
+m4trace:configure.ac:91: -1- AC_SUBST([DEFAULT_RMT_DIR])
+m4trace:configure.ac:91: -1- AC_SUBST_TRACE([DEFAULT_RMT_DIR])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^DEFAULT_RMT_DIR$])
+m4trace:configure.ac:91: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+m4/rmt.m4:2: PU_RMT is expanded from...
+m4/paxutils.m4:3: tar_PAXUTILS is expanded from...
+configure.ac:91: the top level])
+m4trace:configure.ac:91: -1- AC_SUBST([DEFAULT_RMT_COMMAND])
+m4trace:configure.ac:91: -1- AC_SUBST_TRACE([DEFAULT_RMT_COMMAND])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^DEFAULT_RMT_COMMAND$])
+m4trace:configure.ac:91: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_RMT_COMMAND])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^DEFAULT_RMT_COMMAND$])
+m4trace:configure.ac:91: -1- AH_OUTPUT([DEFAULT_RMT_COMMAND], [/* Define full file name of rmt program. */
+@%:@undef DEFAULT_RMT_COMMAND])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_NET_ERRNO_H], [/* Define to 1 if you have the <net/errno.h> header file. */
+@%:@undef HAVE_NET_ERRNO_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SYS_INET_H], [/* Define to 1 if you have the <sys/inet.h> header file. */
+@%:@undef HAVE_SYS_INET_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the <netdb.h> header file. */
+@%:@undef HAVE_NETDB_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_STRING_H], [/* Define to 1 if you have the <string.h> header file. */
+@%:@undef HAVE_STRING_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_MEMORY_H], [/* Define to 1 if you have the <memory.h> header file. */
+@%:@undef HAVE_MEMORY_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_FCNTL_H], [/* Define to 1 if you have the <fcntl.h> header file. */
+@%:@undef HAVE_FCNTL_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SYS_WAIT_H], [/* Define to 1 if you have the <sys/wait.h> header file. */
+@%:@undef HAVE_SYS_WAIT_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SYS_GENTAPE_H], [/* Define to 1 if you have the <sys/gentape.h> header file. */
+@%:@undef HAVE_SYS_GENTAPE_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SYS_TAPE_H], [/* Define to 1 if you have the <sys/tape.h> header file. */
+@%:@undef HAVE_SYS_TAPE_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SYS_DEVICE_H], [/* Define to 1 if you have the <sys/device.h> header file. */
+@%:@undef HAVE_SYS_DEVICE_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SYS_PARAM_H], [/* Define to 1 if you have the <sys/param.h> header file. */
+@%:@undef HAVE_SYS_PARAM_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SYS_TPRINTF_H], [/* Define to 1 if you have the <sys/tprintf.h> header file. */
+@%:@undef HAVE_SYS_TPRINTF_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SYS_MTIO_H], [/* Define to 1 if you have the <sys/mtio.h> header file. */
+@%:@undef HAVE_SYS_MTIO_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SGTTY_H], [/* Define to 1 if you have the <sgtty.h> header file. */
+@%:@undef HAVE_SGTTY_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SYS_IO_TRIOCTL_H], [/* Define to 1 if you have the <sys/io/trioctl.h> header file. */
+@%:@undef HAVE_SYS_IO_TRIOCTL_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_LOCALE_H], [/* Define to 1 if you have the <locale.h> header file. */
+@%:@undef HAVE_LOCALE_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_PWD_H], [/* Define to 1 if you have the <pwd.h> header file. */
+@%:@undef HAVE_PWD_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_GRP_H], [/* Define to 1 if you have the <grp.h> header file. */
+@%:@undef HAVE_GRP_H])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SYS_BUF_H], [/* Define to 1 if you have the <sys/buf.h> header file. */
+@%:@undef HAVE_SYS_BUF_H])
+m4trace:configure.ac:91: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SYS_BUF_H])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^HAVE_SYS_BUF_H$])
+m4trace:configure.ac:91: -1- AC_DEFINE_TRACE_LITERAL([TIME_WITH_SYS_TIME])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^TIME_WITH_SYS_TIME$])
+m4trace:configure.ac:91: -1- AH_OUTPUT([TIME_WITH_SYS_TIME], [/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+@%:@undef TIME_WITH_SYS_TIME])
+m4trace:configure.ac:91: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLKSIZE])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BLKSIZE$])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLKSIZE], [/* Define to 1 if `st_blksize\' is a member of `struct stat\'. */
+@%:@undef HAVE_STRUCT_STAT_ST_BLKSIZE])
+m4trace:configure.ac:91: -1- _m4_warn([obsolete], [The macro `AC_STRUCT_ST_BLKSIZE' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/types.m4:965: AC_STRUCT_ST_BLKSIZE is expanded from...
+m4/system.m4:8: PU_SYSTEM is expanded from...
+m4/paxutils.m4:3: tar_PAXUTILS is expanded from...
+configure.ac:91: the top level])
+m4trace:configure.ac:91: -1- AC_DEFINE_TRACE_LITERAL([HAVE_STRUCT_STAT_ST_BLKSIZE])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^HAVE_STRUCT_STAT_ST_BLKSIZE$])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_STRUCT_STAT_ST_BLKSIZE], [/* Define to 1 if `st_blksize\' is a member of `struct stat\'. */
+@%:@undef HAVE_STRUCT_STAT_ST_BLKSIZE])
+m4trace:configure.ac:91: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ST_BLKSIZE])
+m4trace:configure.ac:91: -1- m4_pattern_allow([^HAVE_ST_BLKSIZE$])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_ST_BLKSIZE], [/* Define to 1 if your `struct stat\' has `st_blksize\'. Deprecated, use
+ `HAVE_STRUCT_STAT_ST_BLKSIZE\' instead. */
+@%:@undef HAVE_ST_BLKSIZE])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */
+@%:@undef HAVE_LSTAT])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_MKFIFO], [/* Define to 1 if you have the `mkfifo\' function. */
+@%:@undef HAVE_MKFIFO])
+m4trace:configure.ac:91: -1- AH_OUTPUT([HAVE_SETLOCALE], [/* Define to 1 if you have the `setlocale\' function. */
+@%:@undef HAVE_SETLOCALE])
+m4trace:configure.ac:93: -1- AH_OUTPUT([HAVE_FCHMOD], [/* Define to 1 if you have the `fchmod\' function. */
+@%:@undef HAVE_FCHMOD])
+m4trace:configure.ac:93: -1- AH_OUTPUT([HAVE_FCHOWN], [/* Define to 1 if you have the `fchown\' function. */
+@%:@undef HAVE_FCHOWN])
+m4trace:configure.ac:93: -1- AH_OUTPUT([HAVE_FSYNC], [/* Define to 1 if you have the `fsync\' function. */
+@%:@undef HAVE_FSYNC])
+m4trace:configure.ac:93: -1- AH_OUTPUT([HAVE_LSTAT], [/* Define to 1 if you have the `lstat\' function. */
+@%:@undef HAVE_LSTAT])
+m4trace:configure.ac:93: -1- AH_OUTPUT([HAVE_MKFIFO], [/* Define to 1 if you have the `mkfifo\' function. */
+@%:@undef HAVE_MKFIFO])
+m4trace:configure.ac:93: -1- AH_OUTPUT([HAVE_READLINK], [/* Define to 1 if you have the `readlink\' function. */
+@%:@undef HAVE_READLINK])
+m4trace:configure.ac:93: -1- AH_OUTPUT([HAVE_SYMLINK], [/* Define to 1 if you have the `symlink\' function. */
+@%:@undef HAVE_SYMLINK])
+m4trace:configure.ac:94: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_GETGRGID])
+m4trace:configure.ac:94: -1- m4_pattern_allow([^HAVE_DECL_GETGRGID$])
+m4trace:configure.ac:94: -1- AH_OUTPUT([HAVE_DECL_GETGRGID], [/* Define to 1 if you have the declaration of `getgrgid\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_GETGRGID])
+m4trace:configure.ac:95: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_GETPWUID])
+m4trace:configure.ac:95: -1- m4_pattern_allow([^HAVE_DECL_GETPWUID$])
+m4trace:configure.ac:95: -1- AH_OUTPUT([HAVE_DECL_GETPWUID], [/* Define to 1 if you have the declaration of `getpwuid\', and to 0 if you
+ don\'t. */
+@%:@undef HAVE_DECL_GETPWUID])
+m4trace:configure.ac:96: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_TIME])
+m4trace:configure.ac:96: -1- m4_pattern_allow([^HAVE_DECL_TIME$])
+m4trace:configure.ac:96: -1- AH_OUTPUT([HAVE_DECL_TIME], [/* Define to 1 if you have the declaration of `time\', and to 0 if you don\'t.
+ */
+@%:@undef HAVE_DECL_TIME])
+m4trace:configure.ac:98: -1- AH_OUTPUT([HAVE_WAITPID], [/* Define to 1 if you have the `waitpid\' function. */
+@%:@undef HAVE_WAITPID])
+m4trace:configure.ac:98: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WAITPID])
+m4trace:configure.ac:98: -1- m4_pattern_allow([^HAVE_WAITPID$])
+m4trace:configure.ac:98: -1- AC_SUBST([LIB@&t@OBJS], ["$LIB@&t@OBJS waitpid.$ac_objext"])
+m4trace:configure.ac:98: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
+m4trace:configure.ac:98: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.ac:98: -1- AC_LIBSOURCE([waitpid.c])
+m4trace:configure.ac:122: -1- AH_OUTPUT([HAVE_NETDB_H], [/* Define to 1 if you have the <netdb.h> header file. */
+@%:@undef HAVE_NETDB_H])
+m4trace:configure.ac:122: -1- AC_DEFINE_TRACE_LITERAL([HAVE_NETDB_H])
+m4trace:configure.ac:122: -1- m4_pattern_allow([^HAVE_NETDB_H$])
+m4trace:configure.ac:124: -1- AC_DEFINE_TRACE_LITERAL([REMOTE_SHELL])
+m4trace:configure.ac:124: -1- m4_pattern_allow([^REMOTE_SHELL$])
+m4trace:configure.ac:124: -1- AH_OUTPUT([REMOTE_SHELL], [/* Define to the full path of your rsh, if any. */
+@%:@undef REMOTE_SHELL])
+m4trace:configure.ac:128: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:128: the top level])
+m4trace:configure.ac:128: -1- AC_DEFINE_TRACE_LITERAL([COMPRESS_PROGRAM])
+m4trace:configure.ac:128: -1- m4_pattern_allow([^COMPRESS_PROGRAM$])
+m4trace:configure.ac:128: -1- AH_OUTPUT([COMPRESS_PROGRAM], [/* Define to the program name of compress compressor program */
+@%:@undef COMPRESS_PROGRAM])
+m4trace:configure.ac:129: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:129: the top level])
+m4trace:configure.ac:129: -1- AC_DEFINE_TRACE_LITERAL([GZIP_PROGRAM])
+m4trace:configure.ac:129: -1- m4_pattern_allow([^GZIP_PROGRAM$])
+m4trace:configure.ac:129: -1- AH_OUTPUT([GZIP_PROGRAM], [/* Define to the program name of gzip compressor program */
+@%:@undef GZIP_PROGRAM])
+m4trace:configure.ac:130: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:130: the top level])
+m4trace:configure.ac:130: -1- AC_DEFINE_TRACE_LITERAL([BZIP2_PROGRAM])
+m4trace:configure.ac:130: -1- m4_pattern_allow([^BZIP2_PROGRAM$])
+m4trace:configure.ac:130: -1- AH_OUTPUT([BZIP2_PROGRAM], [/* Define to the program name of bzip2 compressor program */
+@%:@undef BZIP2_PROGRAM])
+m4trace:configure.ac:131: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:131: the top level])
+m4trace:configure.ac:131: -1- AC_DEFINE_TRACE_LITERAL([LZIP_PROGRAM])
+m4trace:configure.ac:131: -1- m4_pattern_allow([^LZIP_PROGRAM$])
+m4trace:configure.ac:131: -1- AH_OUTPUT([LZIP_PROGRAM], [/* Define to the program name of lzip compressor program */
+@%:@undef LZIP_PROGRAM])
+m4trace:configure.ac:132: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:132: the top level])
+m4trace:configure.ac:132: -1- AC_DEFINE_TRACE_LITERAL([LZMA_PROGRAM])
+m4trace:configure.ac:132: -1- m4_pattern_allow([^LZMA_PROGRAM$])
+m4trace:configure.ac:132: -1- AH_OUTPUT([LZMA_PROGRAM], [/* Define to the program name of lzma compressor program */
+@%:@undef LZMA_PROGRAM])
+m4trace:configure.ac:133: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:133: the top level])
+m4trace:configure.ac:133: -1- AC_DEFINE_TRACE_LITERAL([LZOP_PROGRAM])
+m4trace:configure.ac:133: -1- m4_pattern_allow([^LZOP_PROGRAM$])
+m4trace:configure.ac:133: -1- AH_OUTPUT([LZOP_PROGRAM], [/* Define to the program name of lzop compressor program */
+@%:@undef LZOP_PROGRAM])
+m4trace:configure.ac:134: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+acinclude.m4:17: TAR_COMPR_PROGRAM is expanded from...
+configure.ac:134: the top level])
+m4trace:configure.ac:134: -1- AC_DEFINE_TRACE_LITERAL([XZ_PROGRAM])
+m4trace:configure.ac:134: -1- m4_pattern_allow([^XZ_PROGRAM$])
+m4trace:configure.ac:134: -1- AH_OUTPUT([XZ_PROGRAM], [/* Define to the program name of xz compressor program */
+@%:@undef XZ_PROGRAM])
+m4trace:configure.ac:138: -1- AC_SUBST([DEFAULT_ARCHIVE_FORMAT])
+m4trace:configure.ac:138: -1- AC_SUBST_TRACE([DEFAULT_ARCHIVE_FORMAT])
+m4trace:configure.ac:138: -1- m4_pattern_allow([^DEFAULT_ARCHIVE_FORMAT$])
+m4trace:configure.ac:148: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_ARCHIVE_FORMAT])
+m4trace:configure.ac:148: -1- m4_pattern_allow([^DEFAULT_ARCHIVE_FORMAT$])
+m4trace:configure.ac:148: -1- AH_OUTPUT([DEFAULT_ARCHIVE_FORMAT], [/* By default produce archives of this format */
+@%:@undef DEFAULT_ARCHIVE_FORMAT])
+m4trace:configure.ac:154: -1- AC_SUBST([DEFAULT_ARCHIVE])
+m4trace:configure.ac:154: -1- AC_SUBST_TRACE([DEFAULT_ARCHIVE])
+m4trace:configure.ac:154: -1- m4_pattern_allow([^DEFAULT_ARCHIVE$])
+m4trace:configure.ac:160: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me:${as_lineno-$LINENO}: WARNING: DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this system], [])
+m4trace:configure.ac:160: -1- _m4_warn([obsolete], [back quotes and double quotes must not be escaped in: $as_me: WARNING: DEFAULT_ARCHIVE \`$DEFAULT_ARCHIVE' not found on this system], [])
+m4trace:configure.ac:167: -1- AC_DEFINE_TRACE_LITERAL([DENSITY_LETTER])
+m4trace:configure.ac:167: -1- m4_pattern_allow([^DENSITY_LETTER$])
+m4trace:configure.ac:167: -1- AH_OUTPUT([DENSITY_LETTER], [/* Define to 1 if density may be indicated by @<:@lmh@:>@ at end of device. */
+@%:@undef DENSITY_LETTER])
+m4trace:configure.ac:180: -1- AC_DEFINE_TRACE_LITERAL([DEVICE_PREFIX])
+m4trace:configure.ac:180: -1- m4_pattern_allow([^DEVICE_PREFIX$])
+m4trace:configure.ac:180: -1- AH_OUTPUT([DEVICE_PREFIX], [/* Define to a string giving the prefix of the default device, without the
+ part specifying the unit and density. */
+@%:@undef DEVICE_PREFIX])
+m4trace:configure.ac:185: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_ARCHIVE])
+m4trace:configure.ac:185: -1- m4_pattern_allow([^DEFAULT_ARCHIVE$])
+m4trace:configure.ac:185: -1- AH_OUTPUT([DEFAULT_ARCHIVE], [/* Define to a string giving the full name of the default archive file. */
+@%:@undef DEFAULT_ARCHIVE])
+m4trace:configure.ac:189: -1- AC_SUBST([DEFAULT_BLOCKING])
+m4trace:configure.ac:189: -1- AC_SUBST_TRACE([DEFAULT_BLOCKING])
+m4trace:configure.ac:189: -1- m4_pattern_allow([^DEFAULT_BLOCKING$])
+m4trace:configure.ac:193: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_BLOCKING])
+m4trace:configure.ac:193: -1- m4_pattern_allow([^DEFAULT_BLOCKING$])
+m4trace:configure.ac:193: -1- AH_OUTPUT([DEFAULT_BLOCKING], [/* Define to a number giving the default blocking size for archives. */
+@%:@undef DEFAULT_BLOCKING])
+m4trace:configure.ac:202: -1- AC_SUBST([DEFAULT_QUOTING_STYLE])
+m4trace:configure.ac:202: -1- AC_SUBST_TRACE([DEFAULT_QUOTING_STYLE])
+m4trace:configure.ac:202: -1- m4_pattern_allow([^DEFAULT_QUOTING_STYLE$])
+m4trace:configure.ac:211: -1- AC_DEFINE_TRACE_LITERAL([DEFAULT_QUOTING_STYLE])
+m4trace:configure.ac:211: -1- m4_pattern_allow([^DEFAULT_QUOTING_STYLE$])
+m4trace:configure.ac:211: -1- AH_OUTPUT([DEFAULT_QUOTING_STYLE], [/* Define to a default quoting style (see lib/quoteargs.c for the list) */
+@%:@undef DEFAULT_QUOTING_STYLE])
+m4trace:configure.ac:215: -1- AC_REQUIRE_AUX_FILE([config.rpath])
+m4trace:configure.ac:215: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV])
+m4trace:configure.ac:215: -1- m4_pattern_allow([^HAVE_ICONV$])
+m4trace:configure.ac:215: -1- AH_OUTPUT([HAVE_ICONV], [/* Define if you have the iconv() function and it works. */
+@%:@undef HAVE_ICONV])
+m4trace:configure.ac:215: -1- AC_SUBST([LIBICONV])
+m4trace:configure.ac:215: -1- AC_SUBST_TRACE([LIBICONV])
+m4trace:configure.ac:215: -1- m4_pattern_allow([^LIBICONV$])
+m4trace:configure.ac:215: -1- AC_SUBST([LTLIBICONV])
+m4trace:configure.ac:215: -1- AC_SUBST_TRACE([LTLIBICONV])
+m4trace:configure.ac:215: -1- m4_pattern_allow([^LTLIBICONV$])
+m4trace:configure.ac:215: -1- AC_DEFINE_TRACE_LITERAL([ICONV_CONST])
+m4trace:configure.ac:215: -1- m4_pattern_allow([^ICONV_CONST$])
+m4trace:configure.ac:215: -1- AH_OUTPUT([ICONV_CONST], [/* Define as const if the declaration of iconv() needs const. */
+@%:@undef ICONV_CONST])
+m4trace:configure.ac:216: -1- AH_OUTPUT([HAVE_ICONV_H], [/* Define to 1 if you have the <iconv.h> header file. */
+@%:@undef HAVE_ICONV_H])
+m4trace:configure.ac:216: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV_H])
+m4trace:configure.ac:216: -1- m4_pattern_allow([^HAVE_ICONV_H$])
+m4trace:configure.ac:218: -2- AC_DEFINE_TRACE_LITERAL([iconv_t])
+m4trace:configure.ac:218: -2- m4_pattern_allow([^iconv_t$])
+m4trace:configure.ac:218: -2- AH_OUTPUT([iconv_t], [/* Conversion descriptor type */
+@%:@undef iconv_t])
+m4trace:configure.ac:227: -1- AM_GNU_GETTEXT([external], [need-formatstring-macros])
+m4trace:configure.ac:227: -1- AM_NLS
+m4trace:configure.ac:227: -1- AC_SUBST([USE_NLS])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([USE_NLS])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^USE_NLS$])
+m4trace:configure.ac:227: -1- AC_SUBST([GETTEXT_MACRO_VERSION], [0.18])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([GETTEXT_MACRO_VERSION])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^GETTEXT_MACRO_VERSION$])
+m4trace:configure.ac:227: -1- AC_SUBST([MSGFMT])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([MSGFMT])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^MSGFMT$])
+m4trace:configure.ac:227: -1- AC_SUBST([GMSGFMT])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([GMSGFMT])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^GMSGFMT$])
+m4trace:configure.ac:227: -1- AC_SUBST([MSGFMT_015])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([MSGFMT_015])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^MSGFMT_015$])
+m4trace:configure.ac:227: -1- AC_SUBST([GMSGFMT_015])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([GMSGFMT_015])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^GMSGFMT_015$])
+m4trace:configure.ac:227: -1- AC_SUBST([XGETTEXT])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([XGETTEXT])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^XGETTEXT$])
+m4trace:configure.ac:227: -1- AC_SUBST([XGETTEXT_015])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([XGETTEXT_015])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^XGETTEXT_015$])
+m4trace:configure.ac:227: -1- AC_SUBST([MSGMERGE])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([MSGMERGE])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^MSGMERGE$])
+m4trace:configure.ac:227: -1- AC_SUBST([localedir])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([localedir])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^localedir$])
+m4trace:configure.ac:227: -1- AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([XGETTEXT_EXTRA_OPTIONS])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^XGETTEXT_EXTRA_OPTIONS$])
+m4trace:configure.ac:227: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CFPREFERENCESCOPYAPPVALUE])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^HAVE_CFPREFERENCESCOPYAPPVALUE$])
+m4trace:configure.ac:227: -1- AH_OUTPUT([HAVE_CFPREFERENCESCOPYAPPVALUE], [/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+ the CoreFoundation framework. */
+@%:@undef HAVE_CFPREFERENCESCOPYAPPVALUE])
+m4trace:configure.ac:227: -1- AC_DEFINE_TRACE_LITERAL([HAVE_CFLOCALECOPYCURRENT])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^HAVE_CFLOCALECOPYCURRENT$])
+m4trace:configure.ac:227: -1- AH_OUTPUT([HAVE_CFLOCALECOPYCURRENT], [/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+ CoreFoundation framework. */
+@%:@undef HAVE_CFLOCALECOPYCURRENT])
+m4trace:configure.ac:227: -1- AC_SUBST([INTL_MACOSX_LIBS])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([INTL_MACOSX_LIBS])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^INTL_MACOSX_LIBS$])
+m4trace:configure.ac:227: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ICONV])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^HAVE_ICONV$])
+m4trace:configure.ac:227: -1- AH_OUTPUT([HAVE_ICONV], [/* Define if you have the iconv() function and it works. */
+@%:@undef HAVE_ICONV])
+m4trace:configure.ac:227: -1- AC_SUBST([LIBICONV])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([LIBICONV])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^LIBICONV$])
+m4trace:configure.ac:227: -1- AC_SUBST([LTLIBICONV])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([LTLIBICONV])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^LTLIBICONV$])
+m4trace:configure.ac:227: -1- AC_DEFINE_TRACE_LITERAL([ENABLE_NLS])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^ENABLE_NLS$])
+m4trace:configure.ac:227: -1- AH_OUTPUT([ENABLE_NLS], [/* Define to 1 if translation of program messages to the user\'s native
+ language is requested. */
+@%:@undef ENABLE_NLS])
+m4trace:configure.ac:227: -1- AC_DEFINE_TRACE_LITERAL([HAVE_GETTEXT])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^HAVE_GETTEXT$])
+m4trace:configure.ac:227: -1- AH_OUTPUT([HAVE_GETTEXT], [/* Define if the GNU gettext() function is already present or preinstalled. */
+@%:@undef HAVE_GETTEXT])
+m4trace:configure.ac:227: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DCGETTEXT])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^HAVE_DCGETTEXT$])
+m4trace:configure.ac:227: -1- AH_OUTPUT([HAVE_DCGETTEXT], [/* Define if the GNU dcgettext() function is already present or preinstalled.
+ */
+@%:@undef HAVE_DCGETTEXT])
+m4trace:configure.ac:227: -1- AC_SUBST([INTLLIBS])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([INTLLIBS])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^INTLLIBS$])
+m4trace:configure.ac:227: -1- AC_SUBST([LIBINTL])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([LIBINTL])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^LIBINTL$])
+m4trace:configure.ac:227: -1- AC_SUBST([LTLIBINTL])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([LTLIBINTL])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^LTLIBINTL$])
+m4trace:configure.ac:227: -1- AC_SUBST([POSUB])
+m4trace:configure.ac:227: -1- AC_SUBST_TRACE([POSUB])
+m4trace:configure.ac:227: -1- m4_pattern_allow([^POSUB$])
+m4trace:configure.ac:232: -1- AC_CONFIG_FILES([tests/Makefile tests/atlocal])
+m4trace:configure.ac:233: -1- AC_SUBST([AUTOM4TE])
+m4trace:configure.ac:233: -1- AC_SUBST_TRACE([AUTOM4TE])
+m4trace:configure.ac:233: -1- m4_pattern_allow([^AUTOM4TE$])
+m4trace:configure.ac:235: -1- AC_SUBST([BACKUP_LIBEXEC_SCRIPTS])
+m4trace:configure.ac:235: -1- AC_SUBST_TRACE([BACKUP_LIBEXEC_SCRIPTS])
+m4trace:configure.ac:235: -1- m4_pattern_allow([^BACKUP_LIBEXEC_SCRIPTS$])
+m4trace:configure.ac:236: -1- AC_SUBST([BACKUP_SBIN_SCRIPTS])
+m4trace:configure.ac:236: -1- AC_SUBST_TRACE([BACKUP_SBIN_SCRIPTS])
+m4trace:configure.ac:236: -1- m4_pattern_allow([^BACKUP_SBIN_SCRIPTS$])
+m4trace:configure.ac:238: -2- _m4_warn([obsolete], [The macro `AC_HELP_STRING' is obsolete.
+You should run autoupdate.], [../../lib/autoconf/general.m4:209: AC_HELP_STRING is expanded from...
+configure.ac:238: the top level])
+m4trace:configure.ac:246: -1- AC_SUBST([BACKUP_SED_COND])
+m4trace:configure.ac:246: -1- AC_SUBST_TRACE([BACKUP_SED_COND])
+m4trace:configure.ac:246: -1- m4_pattern_allow([^BACKUP_SED_COND$])
+m4trace:configure.ac:253: -1- AC_CONFIG_FILES([Makefile\
+ doc/Makefile\
+ gnu/Makefile\
+ lib/Makefile\
+ po/Makefile.in\
+ scripts/Makefile\
+ rmt/Makefile\
+ src/Makefile])
+m4trace:configure.ac:253: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments.
+You should run autoupdate.], [])
+m4trace:configure.ac:253: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([LIB@&t@OBJS])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^LIB@&t@OBJS$])
+m4trace:configure.ac:253: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([LTLIBOBJS])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^LTLIBOBJS$])
+m4trace:configure.ac:253: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])
+m4trace:configure.ac:253: -1- AC_SUBST([am__EXEEXT_TRUE])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^am__EXEEXT_TRUE$])
+m4trace:configure.ac:253: -1- AC_SUBST([am__EXEEXT_FALSE])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^am__EXEEXT_FALSE$])
+m4trace:configure.ac:253: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE])
+m4trace:configure.ac:253: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE])
+m4trace:configure.ac:253: -1- AC_SUBST([gl_LIBOBJS], [$gl_libobjs])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([gl_LIBOBJS])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^gl_LIBOBJS$])
+m4trace:configure.ac:253: -1- AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([gl_LTLIBOBJS])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^gl_LTLIBOBJS$])
+m4trace:configure.ac:253: -1- AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([gltests_LIBOBJS])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^gltests_LIBOBJS$])
+m4trace:configure.ac:253: -1- AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([gltests_LTLIBOBJS])
+m4trace:configure.ac:253: -1- m4_pattern_allow([^gltests_LTLIBOBJS$])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([top_builddir])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([top_build_prefix])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([srcdir])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([abs_srcdir])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([top_srcdir])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([abs_top_srcdir])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([builddir])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([abs_builddir])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([abs_top_builddir])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([INSTALL])
+m4trace:configure.ac:253: -1- AC_SUBST_TRACE([MKDIR_P])
diff --git a/build-aux/.gitignore b/build-aux/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/build-aux/.gitignore
diff --git a/build-aux/compile b/build-aux/compile
new file mode 100755
index 00000000..c0096a7b
--- /dev/null
+++ b/build-aux/compile
@@ -0,0 +1,143 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand `-c -o'.
+
+scriptversion=2009-10-06.20; # UTC
+
+# 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
+# it under the terms of the GNU General Public License as published by
+# 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,
+# 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/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand `-c -o'.
+Remove `-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file `INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+esac
+
+ofile=
+cfile=
+eat=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as `compile cc -o foo foo.c'.
+ # So we strip `-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no `-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # `.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+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
+# 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
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# 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-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/config.guess b/build-aux/config.guess
new file mode 100755
index 00000000..49ba16f1
--- /dev/null
+++ b/build-aux/config.guess
@@ -0,0 +1,1522 @@
+#! /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, 2009, 2010,
+# 2011, 2012 Free Software Foundation, Inc.
+
+timestamp='2012-01-01'
+
+# 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
+# the Free Software Foundation; either version 2 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, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# 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.
+#
+# 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,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+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, 2009, 2010, 2011, 2012
+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."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ; set_cc_for_build= ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ *:SolidBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ exitcode=$?
+ trap '' 0
+ exit $exitcode ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit ;;
+ arm:riscos:*:*|arm:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ 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"
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH="x86_64"
+ fi
+ fi
+ echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit ;;
+ *:AIX:*:[4567])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ echo unknown-hitachi-hiuxwe2
+ exit ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit ;;
+ *:FreeBSD:*:*)
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case ${UNAME_PROCESSOR} in
+ amd64)
+ echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ *)
+ echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+ esac
+ exit ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit ;;
+ *:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit ;;
+ i*:MSYS*:*)
+ echo ${UNAME_MACHINE}-pc-msys
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit ;;
+ *:Interix*:*)
+ case ${UNAME_MACHINE} in
+ x86)
+ echo i586-pc-interix${UNAME_RELEASE}
+ exit ;;
+ authenticamd | genuineintel | EM64T)
+ echo x86_64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ IA64)
+ echo ia64-unknown-interix${UNAME_RELEASE}
+ exit ;;
+ esac ;;
+ [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
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ exit ;;
+ 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 \
+ | grep -q __ARM_EABI__
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+ else
+ echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+ fi
+ fi
+ exit ;;
+ avr32*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ cris:Linux:*:*)
+ echo ${UNAME_MACHINE}-axis-linux-gnu
+ exit ;;
+ crisv32:Linux:*:*)
+ echo ${UNAME_MACHINE}-axis-linux-gnu
+ exit ;;
+ frv:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ hexagon:Linux:*:*)
+ echo ${UNAME_MACHINE}-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 ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef ${UNAME_MACHINE}
+ #undef ${UNAME_MACHINE}el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=${UNAME_MACHINE}el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=${UNAME_MACHINE}
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ 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 ${UNAME_MACHINE}-unknown-linux-gnu
+ 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
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit ;;
+ 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
+ exit ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ tile*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ vax:Linux:*:*)
+ echo ${UNAME_MACHINE}-dec-linux-gnu
+ exit ;;
+ x86_64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
+ xtensa*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ 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
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit ;;
+ 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 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
+ exit ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ echo i586-pc-haiku
+ exit ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-7:SUPER-UX:*:*)
+ echo sx7-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8:SUPER-UX:*:*)
+ echo sx8-nec-superux${UNAME_RELEASE}
+ exit ;;
+ SX-8R:SUPER-UX:*:*)
+ echo sx8r-nec-superux${UNAME_RELEASE}
+ exit ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit ;;
+ *: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}
+ exit ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit ;;
+ NEO-?:NONSTOP_KERNEL:*:*)
+ echo neo-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
+ i*86:rdos:*:*)
+ echo ${UNAME_MACHINE}-pc-rdos
+ exit ;;
+ i*86:AROS:*:*)
+ echo ${UNAME_MACHINE}-pc-aros
+ exit ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix\n"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ c34*)
+ echo c34-convex-bsd
+ exit ;;
+ c38*)
+ echo c38-convex-bsd
+ exit ;;
+ c4*)
+ echo c4-convex-bsd
+ exit ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+and
+ http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/build-aux/config.rpath b/build-aux/config.rpath
new file mode 100755
index 00000000..c0d31f92
--- /dev/null
+++ b/build-aux/config.rpath
@@ -0,0 +1,690 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+# Copyright 1996-2012 Free Software Foundation, Inc.
+# Taken from GNU libtool, 2001
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# 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.
+#
+# The first argument passed to this file is the canonical host specification,
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# Known limitations:
+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
+# than 256 bytes, otherwise the compiler driver will dump core. The only
+# known workaround is to choose shorter directory names for the build
+# directory and/or the installation directory.
+
+# All known linkers require a `.a' archive for static linking (except MSVC,
+# which needs '.lib').
+libext=a
+shrext=.so
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+# Code taken from libtool.m4's _LT_CC_BASENAME.
+
+for cc_temp in $CC""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+done
+cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
+
+# Code taken from libtool.m4's _LT_COMPILER_PIC.
+
+wl=
+if test "$GCC" = yes; then
+ wl='-Wl,'
+else
+ case "$host_os" in
+ aix*)
+ wl='-Wl,'
+ ;;
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ wl='-Wl,'
+ ;;
+ irix5* | irix6* | nonstopux*)
+ wl='-Wl,'
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ case $cc_basename in
+ ecc*)
+ wl='-Wl,'
+ ;;
+ icc* | ifort*)
+ wl='-Wl,'
+ ;;
+ lf95*)
+ wl='-Wl,'
+ ;;
+ nagfor*)
+ wl='-Wl,-Wl,,'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ wl='-Wl,'
+ ;;
+ ccc*)
+ wl='-Wl,'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ wl='-Wl,'
+ ;;
+ como)
+ wl='-lopt='
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ F* | *Sun*Fortran*)
+ wl=
+ ;;
+ *Sun\ C*)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ newsos6)
+ ;;
+ *nto* | *qnx*)
+ ;;
+ osf3* | osf4* | osf5*)
+ wl='-Wl,'
+ ;;
+ rdos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ wl='-Qoption ld '
+ ;;
+ *)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
+ sunos4*)
+ wl='-Qoption ld '
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ wl='-Wl,'
+ ;;
+ sysv4*MP*)
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ wl='-Wl,'
+ ;;
+ unicos*)
+ wl='-Wl,'
+ ;;
+ uts4*)
+ ;;
+ esac
+fi
+
+# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++)
+ with_gnu_ld=yes
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ # Unlike libtool, we use -rpath here, not --rpath, since the documented
+ # option of GNU ld is called -rpath, not --rpath.
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ case "$host_os" in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ fi
+ ;;
+ amigaos*)
+ case "$host_cpu" in
+ powerpc)
+ ;;
+ m68k)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ cygwin* | mingw* | pw32* | cegcc*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ haiku*)
+ ;;
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ netbsd*)
+ ;;
+ solaris*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+ sunos4*)
+ hardcode_direct=yes
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ if test "$ld_shlibs" = no; then
+ hardcode_libdir_flag_spec=
+ fi
+else
+ case "$host_os" in
+ aix3*)
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+ aix[4-9]*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ else
+ aix_use_runtimelinking=no
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ ;;
+ esac
+ fi
+ hardcode_direct=yes
+ hardcode_libdir_separator=':'
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ fi
+ # Begin _LT_AC_SYS_LIBPATH_AIX.
+ echo 'int main () { return 0; }' > conftest.c
+ ${CC} ${LDFLAGS} conftest.c -o conftest
+ aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ fi
+ if test -z "$aix_libpath"; then
+ aix_libpath="/usr/lib:/lib"
+ fi
+ rm -f conftest.c conftest
+ # End _LT_AC_SYS_LIBPATH_AIX.
+ if test "$aix_use_runtimelinking" = yes; then
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ else
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ fi
+ fi
+ ;;
+ amigaos*)
+ case "$host_cpu" in
+ powerpc)
+ ;;
+ m68k)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+ bsdi[45]*)
+ ;;
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ libext=lib
+ ;;
+ darwin* | rhapsody*)
+ hardcode_direct=no
+ if { case $cc_basename in ifort*) true;; *) test "$GCC" = yes;; esac; }; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ dgux*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ freebsd2.2*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ freebsd2*)
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ freebsd* | dragonfly*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ hpux9*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ hpux10*)
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+ hpux11*)
+ if test "$with_gnu_ld" = no; then
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ ;;
+ *)
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+ irix5* | irix6* | nonstopux*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ netbsd*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ newsos6)
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ *nto* | *qnx*)
+ ;;
+ openbsd*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ osf3*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ osf4* | osf5*)
+ if test "$GCC" = yes; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ # Both cc and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+ solaris*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ sunos4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ sysv4)
+ case $host_vendor in
+ sni)
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ hardcode_direct=no
+ ;;
+ motorola)
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ ;;
+ sysv4.3*)
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ ld_shlibs=yes
+ fi
+ ;;
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ ;;
+ sysv5* | sco3.2v5* | sco5v6*)
+ hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
+ hardcode_libdir_separator=':'
+ ;;
+ uts4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+
+# Check dynamic linker characteristics
+# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
+# only about the one the linker finds when passed -lNAME. This is the last
+# element of library_names_spec in libtool.m4, or possibly two of them if the
+# linker has special search rules.
+library_names_spec= # the last element of library_names_spec in libtool.m4
+libname_spec='lib$name'
+case "$host_os" in
+ aix3*)
+ library_names_spec='$libname.a'
+ ;;
+ aix[4-9]*)
+ library_names_spec='$libname$shrext'
+ ;;
+ amigaos*)
+ case "$host_cpu" in
+ powerpc*)
+ library_names_spec='$libname$shrext' ;;
+ m68k)
+ library_names_spec='$libname.a' ;;
+ esac
+ ;;
+ beos*)
+ library_names_spec='$libname$shrext'
+ ;;
+ bsdi[45]*)
+ library_names_spec='$libname$shrext'
+ ;;
+ cygwin* | mingw* | pw32* | cegcc*)
+ shrext=.dll
+ library_names_spec='$libname.dll.a $libname.lib'
+ ;;
+ darwin* | rhapsody*)
+ shrext=.dylib
+ library_names_spec='$libname$shrext'
+ ;;
+ dgux*)
+ library_names_spec='$libname$shrext'
+ ;;
+ freebsd* | dragonfly*)
+ case "$host_os" in
+ freebsd[123]*)
+ library_names_spec='$libname$shrext$versuffix' ;;
+ *)
+ library_names_spec='$libname$shrext' ;;
+ esac
+ ;;
+ gnu*)
+ library_names_spec='$libname$shrext'
+ ;;
+ haiku*)
+ library_names_spec='$libname$shrext'
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $host_cpu in
+ ia64*)
+ shrext=.so
+ ;;
+ hppa*64*)
+ shrext=.sl
+ ;;
+ *)
+ shrext=.sl
+ ;;
+ esac
+ library_names_spec='$libname$shrext'
+ ;;
+ interix[3-9]*)
+ library_names_spec='$libname$shrext'
+ ;;
+ irix5* | irix6* | nonstopux*)
+ library_names_spec='$libname$shrext'
+ case "$host_os" in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
+ *) libsuff= shlibsuff= ;;
+ esac
+ ;;
+ esac
+ ;;
+ linux*oldld* | linux*aout* | linux*coff*)
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu)
+ library_names_spec='$libname$shrext'
+ ;;
+ knetbsd*-gnu)
+ library_names_spec='$libname$shrext'
+ ;;
+ netbsd*)
+ library_names_spec='$libname$shrext'
+ ;;
+ newsos6)
+ library_names_spec='$libname$shrext'
+ ;;
+ *nto* | *qnx*)
+ library_names_spec='$libname$shrext'
+ ;;
+ openbsd*)
+ library_names_spec='$libname$shrext$versuffix'
+ ;;
+ os2*)
+ libname_spec='$name'
+ shrext=.dll
+ library_names_spec='$libname.a'
+ ;;
+ osf3* | osf4* | osf5*)
+ library_names_spec='$libname$shrext'
+ ;;
+ rdos*)
+ ;;
+ solaris*)
+ library_names_spec='$libname$shrext'
+ ;;
+ sunos4*)
+ library_names_spec='$libname$shrext$versuffix'
+ ;;
+ sysv4 | sysv4.3*)
+ library_names_spec='$libname$shrext'
+ ;;
+ sysv4*MP*)
+ library_names_spec='$libname$shrext'
+ ;;
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ library_names_spec='$libname$shrext'
+ ;;
+ tpf*)
+ library_names_spec='$libname$shrext'
+ ;;
+ uts4*)
+ library_names_spec='$libname$shrext'
+ ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Format of library name prefix.
+libname_spec="$escaped_libname_spec"
+
+# Library names that the linker finds when passed -lNAME.
+library_names_spec="$escaped_library_names_spec"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+EOF
diff --git a/build-aux/config.sub b/build-aux/config.sub
new file mode 100755
index 00000000..d6b6b3c7
--- /dev/null
+++ b/build-aux/config.sub
@@ -0,0 +1,1766 @@
+#! /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, 2009, 2010,
+# 2011, 2012 Free Software Foundation, Inc.
+
+timestamp='2012-01-01'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# 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
+# the Free Software Foundation; either version 2 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, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# 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.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+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, 2009, 2010, 2011, 2012
+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."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit ;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+ linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+ knetbsd*-gnu* | netbsd*-gnu* | \
+ kopensolaris*-gnu* | \
+ storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -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 | -microblaze)
+ os=
+ basic_machine=$1
+ ;;
+ -bluegene*)
+ os=-cnk
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco6)
+ os=-sco5v6
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
+ | be32 | be64 \
+ | bfin \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | epiphany \
+ | fido | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | le32 | le64 \
+ | lm32 \
+ | m32c | m32r | m32rle | m68000 | m68k | m88k \
+ | maxq | mb | microblaze | mcore | mep | metag \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nios | nios2 \
+ | ns16k | ns32k \
+ | open8 \
+ | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle \
+ | pyramid \
+ | rl78 | 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 \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+ | spu \
+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+ | ubicom32 \
+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
+ | we32k \
+ | x86 | xc16x | xstormy16 | xtensa \
+ | z8k | z80)
+ basic_machine=$basic_machine-unknown
+ ;;
+ c54x)
+ basic_machine=tic54x-unknown
+ ;;
+ c55x)
+ basic_machine=tic55x-unknown
+ ;;
+ c6x)
+ basic_machine=tic6x-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12 | picochip)
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+ ms1)
+ basic_machine=mt-unknown
+ ;;
+
+ strongarm | thumb | xscale)
+ basic_machine=arm-unknown
+ ;;
+
+ xscaleeb)
+ basic_machine=armeb-unknown
+ ;;
+
+ xscaleel)
+ basic_machine=armel-unknown
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* | avr32-* \
+ | be32-* | be64-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | hexagon-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | le32-* | le64-* \
+ | lm32-* \
+ | m32c-* | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64octeon-* | mips64octeonel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64r5900-* | mips64r5900el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | mt-* \
+ | msp430-* \
+ | nds32-* | nds32le-* | nds32be-* \
+ | nios-* | nios2-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | open8-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
+ | pyramid-* \
+ | rl78-* | 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-* | sv1-* | sx?-* \
+ | tahoe-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tile*-* \
+ | tron-* \
+ | ubicom32-* \
+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+ | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xc16x-* | xps100-* \
+ | xstormy16-* | xtensa*-* \
+ | ymp-* \
+ | z8k-* | z80-*)
+ ;;
+ # Recognize the basic CPU types without company name, with glob match.
+ xtensa*)
+ basic_machine=$basic_machine-unknown
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ os=-aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ os=-linux
+ ;;
+ blackfin-*)
+ basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ bluegene*)
+ basic_machine=powerpc-ibm
+ os=-cnk
+ ;;
+ c54x-*)
+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c55x-*)
+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c6x-*)
+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ os=-cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16 | cr16-*)
+ basic_machine=cr16-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ os=-dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ os=-linux
+ ;;
+ m68knommu-*)
+ basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ microblaze)
+ basic_machine=microblaze-xilinx
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ os=-mingw32ce
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ ms1-*)
+ basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+ ;;
+ msys)
+ basic_machine=i386-pc
+ os=-msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ os=-nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ neo-tandem)
+ basic_machine=neo-tandem
+ ;;
+ nse-tandem)
+ basic_machine=nse-tandem
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ openrisc | openrisc-*)
+ basic_machine=or32-unknown
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ os=-linux
+ ;;
+ parisc-*)
+ basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+ os=-linux
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pc98)
+ basic_machine=i386-pc
+ ;;
+ pc98-*)
+ basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc | ppcbe) basic_machine=powerpc-unknown
+ ;;
+ ppc-* | ppcbe-*)
+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rdos)
+ basic_machine=i386-pc
+ os=-rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sde)
+ basic_machine=mipsisa32-sde
+ os=-elf
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sh5el)
+ basic_machine=sh5le-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ strongarm-* | thumb-*)
+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tile*)
+ basic_machine=$basic_machine-unknown
+ os=-linux-gnu
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ xscale-* | xscalee[bl]-*)
+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ z80-*-coff)
+ basic_machine=z80-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+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|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # 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* | -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* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+ | -openbsd* | -solidbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* | -cegcc* \
+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -linux-android* \
+ | -linux-newlib* | -linux-uclibc* \
+ | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto-qnx*)
+ ;;
+ -nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -dicos*)
+ os=-dicos
+ ;;
+ -nacl*)
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ score-*)
+ os=-elf
+ ;;
+ spu-*)
+ os=-elf
+ ;;
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ tic54x-*)
+ os=-coff
+ ;;
+ tic55x-*)
+ os=-coff
+ ;;
+ tic6x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mep-*)
+ os=-elf
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-haiku)
+ os=-haiku
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -cnk*|-aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -os400*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/build-aux/depcomp b/build-aux/depcomp
new file mode 100755
index 00000000..ff4e08f4
--- /dev/null
+++ b/build-aux/depcomp
@@ -0,0 +1,688 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2011-12-04.11; # UTC
+
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
+# 2011 Free Software Foundation, Inc.
+
+# This 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 2, 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/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by 'PROGRAMS ARGS'.
+ object Object file output by 'PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputting dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
+ exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags. We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write. Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+ # HP compiler uses -M and no extra arg.
+ gccflag=-M
+ depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ 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
+
+if test "$depmode" = msvc7msys; then
+ # This is just like msvc7 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=msvc7
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want. Yay! Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff. Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am. Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+ for arg
+ do
+ case $arg in
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+ *) set fnord "$@" "$arg" ;;
+ esac
+ shift # fnord
+ shift # $arg
+ done
+ "$@"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## There are various ways to get dependency output from gcc. Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+## up in a subdir. Having to rename by hand is ugly.
+## (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+## -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+## than renaming).
+ if test -z "$gccflag"; then
+ gccflag=-MD,
+ fi
+ "$@" -Wp,"$gccflag$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+ sed -e 's/^[^:]*: / /' \
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the "deleted header file" problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file. Too bad gcc doesn't do
+## this for us directly.
+ tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the ':'. On the theory
+## that the space means something, we add a space to the output as
+## well. hp depmode also adds that space, but also prefixes the VPATH
+## to the object. Take care to not repeat it in the output.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp)
+ # 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
+ ;;
+
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like '#:fec' to the end of the
+ # dependency line.
+ tr ' ' '
+' < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+ tr '
+' ' ' >> "$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"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+aix)
+ # The C for AIX Compiler uses -M and outputs the dependencies
+ # in a .u file. In older versions, this file always lives in the
+ # current directory. Also, the AIX compiler puts '$object:' at the
+ # start of each line; $object doesn't have directory information.
+ # Version 6 uses the directory in both cases.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$base.u
+ tmpdepfile3=$dir.libs/$base.u
+ "$@" -Wc,-M
+ else
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$dir$base.u
+ tmpdepfile3=$dir$base.u
+ "$@" -M
+ fi
+ stat=$?
+
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form 'foo.o: dependent.h'.
+ # Do two passes, one to just change these to
+ # '$object: dependent.h' and one to simply 'dependent.h:'.
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ # The sourcefile does not contain any dependencies, so just
+ # store a dummy comment line, to avoid errors with the Makefile
+ # "include basename.Plo" scheme.
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+icc)
+ # Intel's C compiler understands '-MD -MF file'. However on
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+ # ICC 7.0 will fill foo.d with something like
+ # foo.o: sub/foo.c
+ # foo.o: sub/foo.h
+ # which is wrong. We want:
+ # sub/foo.o: sub/foo.c
+ # sub/foo.o: sub/foo.h
+ # sub/foo.c:
+ # sub/foo.h:
+ # ICC 7.1 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using \ :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each line is of the form 'foo.o: dependent.h',
+ # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
+ # Do two passes, one to just change these to
+ # '$object: dependent.h' and one to simply 'dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+ sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp2)
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+ # compilers, which have integrated preprocessors. The correct option
+ # to use with these is +Maked; it writes dependencies to a file named
+ # 'foo.d', which lands next to the object file, wherever that
+ # happens to be.
+ # Much of this is similar to the tru64 case; see comments there.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir.libs/$base.d
+ "$@" -Wc,+Maked
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ "$@" +Maked
+ fi
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ 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"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile" "$tmpdepfile2"
+ ;;
+
+tru64)
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in 'foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+ test "x$dir" = "x$object" && dir=
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+ if test "$libtool" = yes; then
+ # With Tru64 cc, shared objects can also be used to make a
+ # static library. This mechanism is used in libtool 1.4 series to
+ # handle both shared and static libraries in a single compilation.
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
+ #
+ # With libtool 1.5 this exception was removed, and libtool now
+ # generates 2 separate objects for the 2 libraries. These two
+ # compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.o.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ tmpdepfile4=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -eq 0; then :
+ else
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+ # That's a tab and a space in the [].
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+ else
+ echo "#dummy" > "$depfile"
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+msvc7)
+ if test "$libtool" = yes; then
+ showIncludes=-Wc,-showIncludes
+ else
+ showIncludes=-showIncludes
+ fi
+ "$@" $showIncludes > "$tmpdepfile"
+ stat=$?
+ grep -v '^Note: including file: ' "$tmpdepfile"
+ if test "$stat" = 0; then :
+ else
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The first sed program below extracts the file names and escapes
+ # backslashes for cygpath. The second sed program outputs the file
+ # name when reading, but also accumulates all include files in the
+ # hold buffer in order to output them again at the end. This only
+ # works with sed implementations that can handle large buffers.
+ sed < "$tmpdepfile" -n '
+/^Note: including file: *\(.*\)/ {
+ s//\1/
+ s/\\/\\\\/g
+ p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/ \1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+ s/.*/ /
+ G
+ p
+}' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvc7msys)
+ # 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
+ ;;
+
+#nosideeffect)
+ # This comment above is used by automake to tell side-effect
+ # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove '-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ test -z "$dashmflag" && dashmflag=-M
+ # Require at least two characters before searching for ':'
+ # in the target name. This is to cope with DOS-style filenames:
+ # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+ "$@" $dashmflag |
+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+dashXmstdout)
+ # This case only exists to satisfy depend.m4. It is never actually
+ # run, as this mode is specially recognized in the preamble.
+ exit 1
+ ;;
+
+makedepend)
+ "$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+ # X makedepend
+ shift
+ 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/^.*\././'`
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ rm -f "$depfile"
+ # makedepend may prepend the VPATH from the source file name to the object.
+ # No need to regex-escape $object, excess matching of '.' is harmless.
+ sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
+ ;;
+
+cpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # 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
+
+ # Remove '-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ "$@" -E |
+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+ sed '$ s: \\$::' > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ cat < "$tmpdepfile" >> "$depfile"
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvisualcpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # 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
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
+ esac
+ done
+ "$@" -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"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
+ echo " " >> "$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 "$@"
+ ;;
+
+*)
+ echo "Unknown depmode $depmode" 1>&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# 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-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 00000000..0efedb04
--- /dev/null
+++ b/build-aux/gitlog-to-changelog
@@ -0,0 +1,377 @@
+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 = '2012-01-06 07:14'; # 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-2012 Free Software Foundation, Inc.
+
+# This 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:
+
+ --amend=FILE FILE maps from an SHA1 to perl code (i.e., s/old/new/) that
+ makes a change to SHA1's commit log text or metadata.
+ --append-dot append a dot to the first line of each commit message if
+ there is no other punctuation or blank at the end.
+ --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
+
+SPECIAL SYNTAX:
+
+The following types of strings are interpreted specially when they appear
+at the beginning of a log message line. They are not copied to the output.
+
+ Copyright-paperwork-exempt: Yes
+ Append the "(tiny change)" notation to the usual "date name email"
+ ChangeLog header to mark a change that does not require a copyright
+ assignment.
+ Co-authored-by: Joe User <user\@example.com>
+ List the specified name and email address on a second
+ ChangeLog header, denoting a co-author.
+ Signed-off-by: Joe User <user\@example.com>
+ These lines are simply elided.
+
+In a FILE specified via --amend, comment lines (starting with "#") are ignored.
+FILE must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1 (alone on
+a line) referring to a commit in the current project, and CODE refers to one
+or more consecutive lines of Perl code. Pairs must be separated by one or
+more blank line.
+
+Here is sample input for use with --amend=FILE, from coreutils:
+
+3a169f4c5d9159283548178668d2fae6fced3030
+# fix typo in title:
+s/all tile types/all file types/
+
+1379ed974f1fa39b12e2ffab18b3f7a607082202
+# Due to a bug in vc-dwim, I mis-attributed a patch by Paul to myself.
+# Change the author to be Paul. Note the escaped "@":
+s,Jim .*>,Paul Eggert <eggert\\\@cs.ucla.edu>,
+
+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 $_} @_);
+}
+
+# Parse file F.
+# Comment lines (starting with "#") are ignored.
+# F must consist of <SHA,CODE+> pairs where SHA is a 40-byte SHA1
+# (alone on a line) referring to a commit in the current project, and
+# CODE refers to one or more consecutive lines of Perl code.
+# Pairs must be separated by one or more blank line.
+sub parse_amend_file($)
+{
+ my ($f) = @_;
+
+ open F, '<', $f
+ or die "$ME: $f: failed to open for reading: $!\n";
+
+ my $fail;
+ my $h = {};
+ my $in_code = 0;
+ my $sha;
+ while (defined (my $line = <F>))
+ {
+ $line =~ /^\#/
+ and next;
+ chomp $line;
+ $line eq ''
+ and $in_code = 0, next;
+
+ if (!$in_code)
+ {
+ $line =~ /^([0-9a-fA-F]{40})$/
+ or (warn "$ME: $f:$.: invalid line; expected an SHA1\n"),
+ $fail = 1, next;
+ $sha = lc $1;
+ $in_code = 1;
+ exists $h->{$sha}
+ and (warn "$ME: $f:$.: duplicate SHA1\n"),
+ $fail = 1, next;
+ }
+ else
+ {
+ $h->{$sha} ||= '';
+ $h->{$sha} .= "$line\n";
+ }
+ }
+ close F;
+
+ $fail
+ and exit 1;
+
+ return $h;
+}
+
+{
+ my $since_date;
+ my $format_string = '%s%n%b%n';
+ my $amend_file;
+ my $append_dot = 0;
+ GetOptions
+ (
+ help => sub { usage 0 },
+ version => sub { print "$ME version $VERSION\n"; exit },
+ 'since=s' => \$since_date,
+ 'format=s' => \$format_string,
+ 'amend=s' => \$amend_file,
+ 'append-dot' => \$append_dot,
+ ) or usage 1;
+
+
+ defined $since_date
+ and unshift @ARGV, "--since=$since_date";
+
+ # This is a hash that maps an SHA1 to perl code (i.e., s/old/new/)
+ # that makes a correction in the log or attribution of that commit.
+ my $amend_code = defined $amend_file ? parse_amend_file $amend_file : {};
+
+ my @cmd = (qw (git log --log-size),
+ '--pretty=format:%H:%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_multi_paragraph;
+ my $prev_date_line = '';
+ my @prev_coauthors = ();
+ 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";
+
+ # Extract leading hash.
+ my ($sha, $rest) = split ':', $log, 2;
+ defined $sha
+ or die "$ME:$.: malformed log entry\n";
+ $sha =~ /^[0-9a-fA-F]{40}$/
+ or die "$ME:$.: invalid SHA1: $sha\n";
+
+ # If this commit's log requires any transformation, do it now.
+ my $code = $amend_code->{$sha};
+ if (defined $code)
+ {
+ eval 'use Safe';
+ my $s = new Safe;
+ # Put the unpreprocessed entry into "$_".
+ $_ = $rest;
+
+ # Let $code operate on it, safely.
+ my $r = $s->reval("$code")
+ or die "$ME:$.:$sha: failed to eval \"$code\":\n$@\n";
+
+ # Note that we've used this entry.
+ delete $amend_code->{$sha};
+
+ # Update $rest upon success.
+ $rest = $_;
+ }
+
+ my @line = split "\n", $rest;
+ 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";
+
+ # Format 'Copyright-paperwork-exempt: Yes' as a standard ChangeLog
+ # `(tiny change)' annotation.
+ my $tiny = (grep (/^Copyright-paperwork-exempt:\s+[Yy]es$/, @line)
+ ? ' (tiny change)' : '');
+
+ my $date_line = sprintf "%s %s$tiny\n",
+ strftime ("%F", localtime ($1)), $2;
+
+ my @coauthors = grep /^Co-authored-by:.*$/, @line;
+ # Omit meta-data lines we've already interpreted.
+ @line = grep !/^(?:Signed-off-by:[ ].*>$
+ |Co-authored-by:[ ]
+ |Copyright-paperwork-exempt:[ ]
+ )/x, @line;
+
+ # Remove leading and trailing blank lines.
+ if (@line)
+ {
+ while ($line[0] =~ /^\s*$/) { shift @line; }
+ while ($line[$#line] =~ /^\s*$/) { pop @line; }
+ }
+
+ # Record whether there are two or more paragraphs.
+ my $multi_paragraph = grep /^\s*$/, @line;
+
+ # Format 'Co-authored-by: A U Thor <email@example.com>' lines in
+ # standard multi-author ChangeLog format.
+ for (@coauthors)
+ {
+ s/^Co-authored-by:\s*/\t /;
+ s/\s*</ </;
+
+ /<.*?@.*\..*>/
+ or warn "$ME: warning: missing email address for "
+ . substr ($_, 5) . "\n";
+ }
+
+ # If this header would be different from the previous date/name/email/
+ # coauthors header, or if this or the previous entry consists of two
+ # or more paragraphs, then print the header.
+ if ($date_line ne $prev_date_line
+ or "@coauthors" ne "@prev_coauthors"
+ or $multi_paragraph
+ or $prev_multi_paragraph)
+ {
+ $prev_date_line eq ''
+ or print "\n";
+ print $date_line;
+ @coauthors
+ and print join ("\n", @coauthors), "\n";
+ }
+ $prev_date_line = $date_line;
+ @prev_coauthors = @coauthors;
+ $prev_multi_paragraph = $multi_paragraph;
+
+ # If there were any lines
+ if (@line == 0)
+ {
+ warn "$ME: warning: empty commit message:\n $date_line\n";
+ }
+ else
+ {
+ if ($append_dot)
+ {
+ # If the first line of the message has enough room, then
+ if (length $line[0] < 72)
+ {
+ # append a dot if there is no other punctuation or blank
+ # at the end.
+ $line[0] =~ /[[:punct:]\s]$/
+ or $line[0] .= '.';
+ }
+ }
+
+ # 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
+
+ # Complain about any unused entry in the --amend=F specified file.
+ my $fail = 0;
+ foreach my $sha (keys %$amend_code)
+ {
+ warn "$ME:$amend_file: unused entry: $sha\n";
+ $fail = 1;
+ }
+
+ exit $fail;
+}
+
+# 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
new file mode 100755
index 00000000..377bb868
--- /dev/null
+++ b/build-aux/install-sh
@@ -0,0 +1,527 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2011-11-20.07; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" "" $nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve the last data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -s $stripprog installed files.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+ case $1 in
+ -c) ;;
+
+ -C) copy_on_change=true;;
+
+ -d) dir_arg=true;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) mode=$2
+ case $mode in
+ *' '* | *' '* | *'
+'* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
+
+ -o) chowncmd="$chownprog $2"
+ shift;;
+
+ -s) stripcmd=$stripprog;;
+
+ -t) dst_arg=$2
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
+
+ -T) no_target_directory=true;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ --) shift
+ break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
+ esac
+ shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ done
+fi
+
+if test $# -eq 0; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call 'install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+if test -z "$dir_arg"; then
+ 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.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
+for src
+do
+ # Protect names problematic for 'test' and other utilities.
+ case $src in
+ -* | [=\(\)!]) src=./$src;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
+ else
+
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dst_arg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+ dst=$dst_arg
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
+ fi
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+ (dirname "$dst") 2>/dev/null ||
+ expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$dst" : 'X\(//\)[^/]' \| \
+ X"$dst" : 'X\(//\)$' \| \
+ X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+ echo X"$dst" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'
+ `
+
+ test -d "$dstdir"
+ dstdir_status=$?
+ fi
+ fi
+
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # Create intermediate dirs using mode 755 as modified by the umask.
+ # This is like FreeBSD 'install' as of 1997-10-28.
+ umask=`umask`
+ case $stripcmd.$umask in
+ # Optimize common cases.
+ *[2367][2367]) mkdir_umask=$umask;;
+ .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+ *[0-7])
+ mkdir_umask=`expr $umask + 22 \
+ - $umask % 100 % 40 + $umask % 20 \
+ - $umask % 10 % 4 + $umask % 2
+ `;;
+ *) mkdir_umask=$umask,go-w;;
+ esac
+
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ case $umask in
+ *[123567][0-7][0-7])
+ # POSIX mkdir -p sets u+wx bits regardless of umask, which
+ # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+ ;;
+ *)
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+ if (umask $mkdir_umask &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ ls_ld_tmpdir=`ls -ld "$tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/d" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+ fi
+ trap '' 0;;
+ esac;;
+ esac
+
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
+
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
+
+ case $dstdir in
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
+ esac
+
+ eval "$initialize_posix_glob"
+
+ oIFS=$IFS
+ IFS=/
+ $posix_glob set -f
+ set fnord $dstdir
+ shift
+ $posix_glob set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask=$mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
+ fi
+ fi
+ fi
+
+ if test -n "$dir_arg"; then
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ else
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+ # Copy the file name to the temp name.
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ $posix_glob set +f &&
+
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd -f "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/mdate-sh b/build-aux/mdate-sh
new file mode 100755
index 00000000..3e0858e9
--- /dev/null
+++ b/build-aux/mdate-sh
@@ -0,0 +1,225 @@
+#!/bin/sh
+# Get modification time of a file or directory and pretty-print it.
+
+scriptversion=2010-08-21.06; # UTC
+
+# 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 2, 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/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # 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
+fi
+
+case $1 in
+ '')
+ echo "$0: No file. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: mdate-sh [--help] [--version] FILE
+
+Pretty-print the modification day of FILE, in the format:
+1 January 1970
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "mdate-sh $scriptversion"
+ exit $?
+ ;;
+esac
+
+error ()
+{
+ echo "$0: $1" >&2
+ exit 1
+}
+
+
+# Prevent date giving response in another language.
+LANG=C
+export LANG
+LC_ALL=C
+export LC_ALL
+LC_TIME=C
+export LC_TIME
+
+# GNU ls changes its time format in response to the TIME_STYLE
+# variable. Since we cannot assume 'unset' works, revert this
+# variable to its documented default.
+if test "${TIME_STYLE+set}" = set; then
+ TIME_STYLE=posix-long-iso
+ export TIME_STYLE
+fi
+
+save_arg1=$1
+
+# Find out how to get the extended ls output of a file or directory.
+if ls -L /dev/null 1>/dev/null 2>&1; then
+ ls_command='ls -L -l -d'
+else
+ ls_command='ls -l -d'
+fi
+# Avoid user/group names that might have spaces, when possible.
+if ls -n /dev/null 1>/dev/null 2>&1; then
+ ls_command="$ls_command -n"
+fi
+
+# A 'ls -l' line looks as follows on OS/2.
+# drwxrwx--- 0 Aug 11 2001 foo
+# This differs from Unix, which adds ownership information.
+# drwxrwx--- 2 root root 4096 Aug 11 2001 foo
+#
+# To find the date, we split the line on spaces and iterate on words
+# until we find a month. This cannot work with files whose owner is a
+# user named "Jan", or "Feb", etc. However, it's unlikely that '/'
+# will be owned by a user whose name is a month. So we first look at
+# the extended ls output of the root directory to decide how many
+# words should be skipped to get the date.
+
+# On HPUX /bin/sh, "set" interprets "-rw-r--r--" as options, so the "x" below.
+set x`$ls_command /`
+
+# Find which argument is the month.
+month=
+command=
+until test $month
+do
+ test $# -gt 0 || error "failed parsing '$ls_command /' output"
+ shift
+ # Add another shift to the command.
+ command="$command shift;"
+ case $1 in
+ Jan) month=January; nummonth=1;;
+ Feb) month=February; nummonth=2;;
+ Mar) month=March; nummonth=3;;
+ Apr) month=April; nummonth=4;;
+ May) month=May; nummonth=5;;
+ Jun) month=June; nummonth=6;;
+ Jul) month=July; nummonth=7;;
+ Aug) month=August; nummonth=8;;
+ Sep) month=September; nummonth=9;;
+ Oct) month=October; nummonth=10;;
+ Nov) month=November; nummonth=11;;
+ Dec) month=December; nummonth=12;;
+ esac
+done
+
+test -n "$month" || error "failed parsing '$ls_command /' output"
+
+# Get the extended ls output of the file or directory.
+set dummy x`eval "$ls_command \"\\\$save_arg1\""`
+
+# Remove all preceding arguments
+eval $command
+
+# Because of the dummy argument above, month is in $2.
+#
+# On a POSIX system, we should have
+#
+# $# = 5
+# $1 = file size
+# $2 = month
+# $3 = day
+# $4 = year or time
+# $5 = filename
+#
+# On Darwin 7.7.0 and 7.6.0, we have
+#
+# $# = 4
+# $1 = day
+# $2 = month
+# $3 = year or time
+# $4 = filename
+
+# Get the month.
+case $2 in
+ Jan) month=January; nummonth=1;;
+ Feb) month=February; nummonth=2;;
+ Mar) month=March; nummonth=3;;
+ Apr) month=April; nummonth=4;;
+ May) month=May; nummonth=5;;
+ Jun) month=June; nummonth=6;;
+ Jul) month=July; nummonth=7;;
+ Aug) month=August; nummonth=8;;
+ Sep) month=September; nummonth=9;;
+ Oct) month=October; nummonth=10;;
+ Nov) month=November; nummonth=11;;
+ Dec) month=December; nummonth=12;;
+esac
+
+case $3 in
+ ???*) day=$1;;
+ *) day=$3; shift;;
+esac
+
+# Here we have to deal with the problem that the ls output gives either
+# the time of day or the year.
+case $3 in
+ *:*) set `date`; eval year=\$$#
+ case $2 in
+ Jan) nummonthtod=1;;
+ Feb) nummonthtod=2;;
+ Mar) nummonthtod=3;;
+ Apr) nummonthtod=4;;
+ May) nummonthtod=5;;
+ Jun) nummonthtod=6;;
+ Jul) nummonthtod=7;;
+ Aug) nummonthtod=8;;
+ Sep) nummonthtod=9;;
+ Oct) nummonthtod=10;;
+ Nov) nummonthtod=11;;
+ Dec) nummonthtod=12;;
+ esac
+ # For the first six month of the year the time notation can also
+ # be used for files modified in the last year.
+ if (expr $nummonth \> $nummonthtod) > /dev/null;
+ then
+ year=`expr $year - 1`
+ fi;;
+ *) year=$3;;
+esac
+
+# The result.
+echo $day $month $year
+
+# 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-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/missing b/build-aux/missing
new file mode 100755
index 00000000..3f2dfc15
--- /dev/null
+++ b/build-aux/missing
@@ -0,0 +1,331 @@
+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2012-01-06.18; # UTC
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009, 2010, 2011, 2012 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 2, 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/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+fi
+
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, 'missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+ configure_ac=configure.ac
+else
+ configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case $1 in
+--run)
+ # Try to run requested program, and just exit if it succeeds.
+ run=
+ shift
+ "$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
+ ;;
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+ --run try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+ aclocal touch file 'aclocal.m4'
+ autoconf touch file 'configure'
+ autoheader touch file 'config.h.in'
+ autom4te touch the output file, or create a stub one
+ automake touch all 'Makefile.in' files
+ bison create 'y.tab.[ch]', if possible, from existing .[ch]
+ flex create 'lex.yy.c', if possible, from existing .c
+ help2man touch the output file
+ lex create 'lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ yacc create 'y.tab.[ch]', if possible, from existing .[ch]
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+ exit $?
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+ ;;
+
+esac
+
+# normalize program name to check for.
+program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program). This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+ lex*|yacc*)
+ # Not GNU programs, they don't have --version.
+ ;;
+
+ *)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running '$TOOL --version' or '$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
+ fi
+ ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $program in
+ aclocal*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified 'acinclude.m4' or '${configure_ac}'. You might want
+ to install the Automake and Perl packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified '${configure_ac}'. You might want to install the
+ Autoconf and GNU m4 packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified 'acconfig.h' or '${configure_ac}'. You might want
+ to install the Autoconf and GNU m4 packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case $f in
+ *:*) touch_files="$touch_files "`echo "$f" |
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'.
+ You might want to install the Automake and Perl packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+ sed 's/\.am$/.in/' |
+ while read f; do touch "$f"; done
+ ;;
+
+ autom4te*)
+ echo 1>&2 "\
+WARNING: '$1' is needed, but is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them.
+ You can get '$1' as part of Autoconf from any GNU
+ archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo "#! /bin/sh"
+ echo "# Created by GNU Automake missing as a replacement of"
+ echo "# $ $@"
+ echo "exit 0"
+ chmod +x $file
+ exit 1
+ fi
+ ;;
+
+ bison*|yacc*)
+ echo 1>&2 "\
+WARNING: '$1' $msg. You should only need it if
+ you modified a '.y' file. You may need the Bison package
+ in order for those modifications to take effect. You can get
+ Bison from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if test $# -ne 1; then
+ eval LASTARG=\${$#}
+ case $LASTARG in
+ *.y)
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.c
+ fi
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" y.tab.h
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f y.tab.h; then
+ echo >y.tab.h
+ fi
+ if test ! -f y.tab.c; then
+ echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex*|flex*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified a '.l' file. You may need the Flex package
+ in order for those modifications to take effect. You can get
+ Flex from any GNU archive site."
+ rm -f lex.yy.c
+ if test $# -ne 1; then
+ eval LASTARG=\${$#}
+ case $LASTARG in
+ *.l)
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+ if test -f "$SRCFILE"; then
+ cp "$SRCFILE" lex.yy.c
+ fi
+ ;;
+ esac
+ fi
+ if test ! -f lex.yy.c; then
+ echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ help2man*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified a dependency of a manual page. You may need the
+ Help2man package in order for those modifications to take
+ effect. You can get Help2man from any GNU archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+ touch $file
+ else
+ test -z "$file" || exec >$file
+ echo ".ab help2man is required to generate this page"
+ exit $?
+ fi
+ ;;
+
+ makeinfo*)
+ echo 1>&2 "\
+WARNING: '$1' is $msg. You should only need it if
+ you modified a '.texi' or '.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy 'make' (AIX,
+ DU, IRIX). You might want to install the Texinfo package or
+ the GNU make package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -z "$file"; then
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '
+ /^@setfilename/{
+ s/.* \([^ ]*\) *$/\1/
+ p
+ q
+ }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+ fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
+ touch $file
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: '$1' is needed, and is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them. Check the 'README' file,
+ it often tells you about the needed prerequisites for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing '$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/build-aux/snippet/.gitignore b/build-aux/snippet/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/build-aux/snippet/.gitignore
diff --git a/build-aux/snippet/_Noreturn.h b/build-aux/snippet/_Noreturn.h
new file mode 100644
index 00000000..1a7b4dae
--- /dev/null
+++ b/build-aux/snippet/_Noreturn.h
@@ -0,0 +1,10 @@
+#ifndef _Noreturn
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+ || 0x5110 <= __SUNPRO_C)
+# define _Noreturn __attribute__ ((__noreturn__))
+# elif 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn
+# endif
+#endif
diff --git a/build-aux/snippet/arg-nonnull.h b/build-aux/snippet/arg-nonnull.h
new file mode 100644
index 00000000..7a629815
--- /dev/null
+++ b/build-aux/snippet/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-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+/* _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/snippet/c++defs.h b/build-aux/snippet/c++defs.h
new file mode 100644
index 00000000..745ae873
--- /dev/null
+++ b/build-aux/snippet/c++defs.h
@@ -0,0 +1,273 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* C++ compatible function declaration macros.
+ Copyright (C) 2010-2012 Free Software Foundation, Inc.
+
+ This 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_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_RPL_CAST_1 (func, rpl_func, rettype, parameters);
+ is like _GL_CXXALIAS_RPL_1 (func, rpl_func, rettype, parameters);
+ except that the C function rpl_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_RPL_CAST_1(func,rpl_func,rettype,parameters) \
+ namespace GNULIB_NAMESPACE \
+ { \
+ rettype (*const func) parameters = \
+ reinterpret_cast<rettype(*)parameters>(::rpl_func); \
+ } \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_RPL_CAST_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
+ /* The outer cast must be a reinterpret_cast.
+ The inner cast: When the function is defined as a set of overloaded
+ functions, it works as a static_cast<>, choosing the designated variant.
+ When the function is defined as a single variant, it works as a
+ reinterpret_cast<>. The parenthesized cast syntax works both ways. */
+# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
+ namespace GNULIB_NAMESPACE \
+ { \
+ static rettype (*func) parameters = \
+ reinterpret_cast<rettype(*)parameters>( \
+ (rettype2(*)parameters2)(::func)); \
+ } \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#else
+# define _GL_CXXALIAS_SYS_CAST2(func,rettype,parameters,rettype2,parameters2) \
+ _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. func must be defined without overloaded
+ variants. */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIASWARN(func) \
+ _GL_CXXALIASWARN_1 (func, GNULIB_NAMESPACE)
+# define _GL_CXXALIASWARN_1(func,namespace) \
+ _GL_CXXALIASWARN_2 (func, namespace)
+/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+ we enable the warning only when not optimizing. */
+# if !__OPTIMIZE__
+# define _GL_CXXALIASWARN_2(func,namespace) \
+ _GL_WARN_ON_USE (func, \
+ "The symbol ::" #func " refers to the system function. " \
+ "Use " #namespace "::" #func " instead.")
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+# define _GL_CXXALIASWARN_2(func,namespace) \
+ extern __typeof__ (func) func
+# else
+# define _GL_CXXALIASWARN_2(func,namespace) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+# endif
+#else
+# define _GL_CXXALIASWARN(func) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+/* _GL_CXXALIASWARN1 (func, rettype, parameters_and_attributes);
+ causes a warning to be emitted when the given overloaded variant of ::func
+ is used but not when GNULIB_NAMESPACE::func is used. */
+#if defined __cplusplus && defined GNULIB_NAMESPACE
+# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
+ _GL_CXXALIASWARN1_1 (func, rettype, parameters_and_attributes, \
+ GNULIB_NAMESPACE)
+# define _GL_CXXALIASWARN1_1(func,rettype,parameters_and_attributes,namespace) \
+ _GL_CXXALIASWARN1_2 (func, rettype, parameters_and_attributes, namespace)
+/* To work around GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43881>,
+ we enable the warning only when not optimizing. */
+# if !__OPTIMIZE__
+# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+ _GL_WARN_ON_USE_CXX (func, rettype, parameters_and_attributes, \
+ "The symbol ::" #func " refers to the system function. " \
+ "Use " #namespace "::" #func " instead.")
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+ extern __typeof__ (func) func
+# else
+# define _GL_CXXALIASWARN1_2(func,rettype,parameters_and_attributes,namespace) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+# endif
+#else
+# define _GL_CXXALIASWARN1(func,rettype,parameters_and_attributes) \
+ _GL_EXTERN_C int _gl_cxxalias_dummy
+#endif
+
+#endif /* _GL_CXXDEFS_H */
diff --git a/build-aux/snippet/warn-on-use.h b/build-aux/snippet/warn-on-use.h
new file mode 100644
index 00000000..80f4b023
--- /dev/null
+++ b/build-aux/snippet/warn-on-use.h
@@ -0,0 +1,111 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+/* _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)))
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+/* Verify the existence of the function. */
+# define _GL_WARN_ON_USE(function, message) \
+extern __typeof__ (function) function
+# else /* Unsupported. */
+# define _GL_WARN_ON_USE(function, message) \
+_GL_WARN_EXTERN_C int _gl_warn_on_use
+# endif
+#endif
+
+/* _GL_WARN_ON_USE_CXX (function, rettype, parameters_and_attributes, "string")
+ is like _GL_WARN_ON_USE (function, "string"), except that the function is
+ declared with the given prototype, consisting of return type, parameters,
+ and attributes.
+ This variant is useful for overloaded functions in C++. _GL_WARN_ON_USE does
+ not work in this case. */
+#ifndef _GL_WARN_ON_USE_CXX
+# if 4 < __GNUC__ || (__GNUC__ == 4 && 3 <= __GNUC_MINOR__)
+# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+extern rettype function parameters_and_attributes \
+ __attribute__ ((__warning__ (msg)))
+# elif __GNUC__ >= 3 && GNULIB_STRICT_CHECKING
+/* Verify the existence of the function. */
+# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+extern rettype function parameters_and_attributes
+# else /* Unsupported. */
+# define _GL_WARN_ON_USE_CXX(function,rettype,parameters_and_attributes,msg) \
+_GL_WARN_EXTERN_C int _gl_warn_on_use
+# endif
+#endif
+
+/* _GL_WARN_EXTERN_C declaration;
+ performs the declaration with C linkage. */
+#ifndef _GL_WARN_EXTERN_C
+# if defined __cplusplus
+# define _GL_WARN_EXTERN_C extern "C"
+# else
+# define _GL_WARN_EXTERN_C extern
+# endif
+#endif
diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex
new file mode 100644
index 00000000..f91cd5e6
--- /dev/null
+++ b/build-aux/texinfo.tex
@@ -0,0 +1,9913 @@
+% 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{2012-01-04.16}
+%
+% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
+% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+% 2007, 2008, 2009, 2010, 2011 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
+% published by the Free Software Foundation, either version 3 of the
+% License, or (at your option) any later version.
+%
+% This texinfo.tex file 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/>.
+%
+% As a special exception, when this file is read by TeX when processing
+% a Texinfo source document, you may use the result without
+% restriction. (This has been our intent since Texinfo was invented.)
+%
+% Please try the latest version of texinfo.tex before submitting bug
+% reports; you can get the latest version from:
+% http://www.gnu.org/software/texinfo/ (the Texinfo home page), or
+% ftp://tug.org/tex/texinfo.tex
+% (and all CTAN mirrors, see http://www.ctan.org).
+% The texinfo.tex in any given distribution could well be out
+% of date, so if that's what you're using, please check.
+%
+% Send bug reports to bug-texinfo@gnu.org. Please include including a
+% complete document in each bug report with which we can reproduce the
+% problem. Patches are, of course, greatly appreciated.
+%
+% To process a Texinfo manual with TeX, it's most reliable to use the
+% texi2dvi shell script that comes with the distribution. For a simple
+% manual foo.texi, however, you can get away with this:
+% tex foo.texi
+% texindex foo.??
+% tex foo.texi
+% tex foo.texi
+% dvips foo.dvi -o # or whatever; this makes foo.ps.
+% The extra TeX runs get the cross-reference information correct.
+% Sometimes one run after texindex suffices, and sometimes you need more
+% than two; texi2dvi does it as many times as necessary.
+%
+% It is possible to adapt texinfo.tex for other languages, to some
+% extent. You can get the existing language-specific files from the
+% full Texinfo distribution.
+%
+% The GNU Texinfo home page is http://www.gnu.org/software/texinfo.
+
+
+\message{Loading texinfo [version \texinfoversion]:}
+
+% If in a .fmt file, print the version number
+% and turn on active characters that we couldn't do earlier because
+% they might have appeared in the input file name.
+\everyjob{\message{[Texinfo version \texinfoversion]}%
+ \catcode`+=\active \catcode`\_=\active}
+
+\chardef\other=12
+
+% We never want plain's \outer definition of \+ in Texinfo.
+% For @tex, we can use \tabalign.
+\let\+ = \relax
+
+% Save some plain tex macros whose names we will redefine.
+\let\ptexb=\b
+\let\ptexbullet=\bullet
+\let\ptexc=\c
+\let\ptexcomma=\,
+\let\ptexdot=\.
+\let\ptexdots=\dots
+\let\ptexend=\end
+\let\ptexequiv=\equiv
+\let\ptexexclam=\!
+\let\ptexfootnote=\footnote
+\let\ptexgtr=>
+\let\ptexhat=^
+\let\ptexi=\i
+\let\ptexindent=\indent
+\let\ptexinsert=\insert
+\let\ptexlbrace=\{
+\let\ptexless=<
+\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'}% 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.
+\newlinechar = `^^J
+
+% Use TeX 3.0's \inputlineno to get the line number, for better error
+% messages, but if we're using an old version of TeX, don't do anything.
+%
+\ifx\inputlineno\thisisundefined
+ \let\linenumber = \empty % Pre-3.0.
+\else
+ \def\linenumber{l.\the\inputlineno:\space}
+\fi
+
+% Set up fixed words for English if not already set.
+\ifx\putwordAppendix\undefined \gdef\putwordAppendix{Appendix}\fi
+\ifx\putwordChapter\undefined \gdef\putwordChapter{Chapter}\fi
+\ifx\putworderror\undefined \gdef\putworderror{error}\fi
+\ifx\putwordfile\undefined \gdef\putwordfile{file}\fi
+\ifx\putwordin\undefined \gdef\putwordin{in}\fi
+\ifx\putwordIndexIsEmpty\undefined \gdef\putwordIndexIsEmpty{(Index is empty)}\fi
+\ifx\putwordIndexNonexistent\undefined \gdef\putwordIndexNonexistent{(Index is nonexistent)}\fi
+\ifx\putwordInfo\undefined \gdef\putwordInfo{Info}\fi
+\ifx\putwordInstanceVariableof\undefined \gdef\putwordInstanceVariableof{Instance Variable of}\fi
+\ifx\putwordMethodon\undefined \gdef\putwordMethodon{Method on}\fi
+\ifx\putwordNoTitle\undefined \gdef\putwordNoTitle{No Title}\fi
+\ifx\putwordof\undefined \gdef\putwordof{of}\fi
+\ifx\putwordon\undefined \gdef\putwordon{on}\fi
+\ifx\putwordpage\undefined \gdef\putwordpage{page}\fi
+\ifx\putwordsection\undefined \gdef\putwordsection{section}\fi
+\ifx\putwordSection\undefined \gdef\putwordSection{Section}\fi
+\ifx\putwordsee\undefined \gdef\putwordsee{see}\fi
+\ifx\putwordSee\undefined \gdef\putwordSee{See}\fi
+\ifx\putwordShortTOC\undefined \gdef\putwordShortTOC{Short Contents}\fi
+\ifx\putwordTOC\undefined \gdef\putwordTOC{Table of Contents}\fi
+%
+\ifx\putwordMJan\undefined \gdef\putwordMJan{January}\fi
+\ifx\putwordMFeb\undefined \gdef\putwordMFeb{February}\fi
+\ifx\putwordMMar\undefined \gdef\putwordMMar{March}\fi
+\ifx\putwordMApr\undefined \gdef\putwordMApr{April}\fi
+\ifx\putwordMMay\undefined \gdef\putwordMMay{May}\fi
+\ifx\putwordMJun\undefined \gdef\putwordMJun{June}\fi
+\ifx\putwordMJul\undefined \gdef\putwordMJul{July}\fi
+\ifx\putwordMAug\undefined \gdef\putwordMAug{August}\fi
+\ifx\putwordMSep\undefined \gdef\putwordMSep{September}\fi
+\ifx\putwordMOct\undefined \gdef\putwordMOct{October}\fi
+\ifx\putwordMNov\undefined \gdef\putwordMNov{November}\fi
+\ifx\putwordMDec\undefined \gdef\putwordMDec{December}\fi
+%
+\ifx\putwordDefmac\undefined \gdef\putwordDefmac{Macro}\fi
+\ifx\putwordDefspec\undefined \gdef\putwordDefspec{Special Form}\fi
+\ifx\putwordDefvar\undefined \gdef\putwordDefvar{Variable}\fi
+\ifx\putwordDefopt\undefined \gdef\putwordDefopt{User Option}\fi
+\ifx\putwordDeffunc\undefined \gdef\putwordDeffunc{Function}\fi
+
+% Since the category of space is not known, we have to be careful.
+\chardef\spacecat = 10
+\def\spaceisspace{\catcode`\ =\spacecat}
+
+% sometimes characters are active, so we need control sequences.
+\chardef\ampChar = `\&
+\chardef\colonChar = `\:
+\chardef\commaChar = `\,
+\chardef\dashChar = `\-
+\chardef\dotChar = `\.
+\chardef\exclamChar= `\!
+\chardef\hashChar = `\#
+\chardef\lquoteChar= `\`
+\chardef\questChar = `\?
+\chardef\rquoteChar= `\'
+\chardef\semiChar = `\;
+\chardef\slashChar = `\/
+\chardef\underChar = `\_
+
+% Ignore a token.
+%
+\def\gobble#1{}
+
+% The following is used inside several \edef's.
+\def\makecsname#1{\expandafter\noexpand\csname#1\endcsname}
+
+% Hyphenation fixes.
+\hyphenation{
+ Flor-i-da Ghost-script Ghost-view Mac-OS Post-Script
+ ap-pen-dix bit-map bit-maps
+ data-base data-bases eshell fall-ing half-way long-est man-u-script
+ man-u-scripts mini-buf-fer mini-buf-fers over-view par-a-digm
+ par-a-digms rath-er rec-tan-gu-lar ro-bot-ics se-vere-ly set-up spa-ces
+ spell-ing spell-ings
+ stand-alone strong-est time-stamp time-stamps which-ever white-space
+ wide-spread wrap-around
+}
+
+% Margin to add to right of even pages, to left of odd pages.
+\newdimen\bindingoffset
+\newdimen\normaloffset
+\newdimen\pagewidth \newdimen\pageheight
+
+% For a final copy, take out the rectangles
+% that mark overfull boxes (in case you have decided
+% that the text looks ok even though it passes the margin).
+%
+\def\finalout{\overfullrule=0pt }
+
+% Sometimes it is convenient to have everything in the transcript file
+% and nothing on the terminal. We don't just call \tracingall here,
+% since that produces some useless output on the terminal. We also make
+% some effort to order the tracing commands to reduce output in the log
+% file; cf. trace.sty in LaTeX.
+%
+\def\gloggingall{\begingroup \globaldefs = 1 \loggingall \endgroup}%
+\def\loggingall{%
+ \tracingstats2
+ \tracingpages1
+ \tracinglostchars2 % 2 gives us more in etex
+ \tracingparagraphs1
+ \tracingoutput1
+ \tracingmacros2
+ \tracingrestores1
+ \showboxbreadth\maxdimen \showboxdepth\maxdimen
+ \ifx\eTeXversion\thisisundefined\else % etex gives us more logging
+ \tracingscantokens1
+ \tracingifs1
+ \tracinggroups1
+ \tracingnesting2
+ \tracingassigns1
+ \fi
+ \tracingcommands3 % 3 gives us more in etex
+ \errorcontextlines16
+}%
+
+% @errormsg{MSG}. Do the index-like expansions on MSG, but if things
+% aren't perfect, it's not the end of the world, being an error message,
+% after all.
+%
+\def\errormsg{\begingroup \indexnofonts \doerrormsg}
+\def\doerrormsg#1{\errmessage{#1}}
+
+% add check for \lastpenalty to plain's definitions. If the last thing
+% we did was a \nobreak, we don't want to insert more space.
+%
+\def\smallbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\smallskipamount
+ \removelastskip\penalty-50\smallskip\fi\fi}
+\def\medbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\medskipamount
+ \removelastskip\penalty-100\medskip\fi\fi}
+\def\bigbreak{\ifnum\lastpenalty<10000\par\ifdim\lastskip<\bigskipamount
+ \removelastskip\penalty-200\bigskip\fi\fi}
+
+% Do @cropmarks to get crop marks.
+%
+\newif\ifcropmarks
+\let\cropmarks = \cropmarkstrue
+%
+% Dimensions to add cropmarks at corners.
+% Added by P. A. MacKay, 12 Nov. 1986
+%
+\newdimen\outerhsize \newdimen\outervsize % set by the paper size routines
+\newdimen\cornerlong \cornerlong=1pc
+\newdimen\cornerthick \cornerthick=.3pt
+\newdimen\topandbottommargin \topandbottommargin=.75in
+
+% Output a mark which sets \thischapter, \thissection and \thiscolor.
+% We dump everything together because we only have one kind of mark.
+% This works because we only use \botmark / \topmark, not \firstmark.
+%
+% A mark contains a subexpression of the \ifcase ... \fi construct.
+% \get*marks macros below extract the needed part using \ifcase.
+%
+% Another complication is to let the user choose whether \thischapter
+% (\thissection) refers to the chapter (section) in effect at the top
+% of a page, or that at the bottom of a page. The solution is
+% described on page 260 of The TeXbook. It involves outputting two
+% marks for the sectioning macros, one before the section break, and
+% one after. I won't pretend I can describe this better than DEK...
+\def\domark{%
+ \toks0=\expandafter{\lastchapterdefs}%
+ \toks2=\expandafter{\lastsectiondefs}%
+ \toks4=\expandafter{\prevchapterdefs}%
+ \toks6=\expandafter{\prevsectiondefs}%
+ \toks8=\expandafter{\lastcolordefs}%
+ \mark{%
+ \the\toks0 \the\toks2
+ \noexpand\or \the\toks4 \the\toks6
+ \noexpand\else \the\toks8
+ }%
+}
+% \topmark doesn't work for the very first chapter (after the title
+% page or the contents), so we use \firstmark there -- this gets us
+% the mark with the chapter defs, unless the user sneaks in, e.g.,
+% @setcolor (or @url, or @link, etc.) between @contents and the very
+% first @chapter.
+\def\gettopheadingmarks{%
+ \ifcase0\topmark\fi
+ \ifx\thischapter\empty \ifcase0\firstmark\fi \fi
+}
+\def\getbottomheadingmarks{\ifcase1\botmark\fi}
+\def\getcolormarks{\ifcase2\topmark\fi}
+
+% Avoid "undefined control sequence" errors.
+\def\lastchapterdefs{}
+\def\lastsectiondefs{}
+\def\prevchapterdefs{}
+\def\prevsectiondefs{}
+\def\lastcolordefs{}
+
+% Main output routine.
+\chardef\PAGE = 255
+\output = {\onepageout{\pagecontents\PAGE}}
+
+\newbox\headlinebox
+\newbox\footlinebox
+
+% \onepageout takes a vbox as an argument. Note that \pagecontents
+% does insertions, but you have to call it yourself.
+\def\onepageout#1{%
+ \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi
+ %
+ \ifodd\pageno \advance\hoffset by \bindingoffset
+ \else \advance\hoffset by -\bindingoffset\fi
+ %
+ % Do this outside of the \shipout so @code etc. will be expanded in
+ % the headline as they should be, not taken literally (outputting ''code).
+ \ifodd\pageno \getoddheadingmarks \else \getevenheadingmarks \fi
+ \setbox\headlinebox = \vbox{\let\hsize=\pagewidth \makeheadline}%
+ \ifodd\pageno \getoddfootingmarks \else \getevenfootingmarks \fi
+ \setbox\footlinebox = \vbox{\let\hsize=\pagewidth \makefootline}%
+ %
+ {%
+ % Have to do this stuff outside the \shipout because we want it to
+ % take effect in \write's, yet the group defined by the \vbox ends
+ % before the \shipout runs.
+ %
+ \indexdummies % don't expand commands in the output.
+ \normalturnoffactive % \ in index entries must not stay \, e.g., if
+ % the page break happens to be in the middle of an example.
+ % 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
+ % {\code {{\tt \backslashcurfont }acronym}
+ \shipout\vbox{%
+ % Do this early so pdf references go to the beginning of the page.
+ \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi
+ %
+ \ifcropmarks \vbox to \outervsize\bgroup
+ \hsize = \outerhsize
+ \vskip-\topandbottommargin
+ \vtop to0pt{%
+ \line{\ewtop\hfil\ewtop}%
+ \nointerlineskip
+ \line{%
+ \vbox{\moveleft\cornerthick\nstop}%
+ \hfill
+ \vbox{\moveright\cornerthick\nstop}%
+ }%
+ \vss}%
+ \vskip\topandbottommargin
+ \line\bgroup
+ \hfil % center the page within the outer (page) hsize.
+ \ifodd\pageno\hskip\bindingoffset\fi
+ \vbox\bgroup
+ \fi
+ %
+ \unvbox\headlinebox
+ \pagebody{#1}%
+ \ifdim\ht\footlinebox > 0pt
+ % Only leave this space if the footline is nonempty.
+ % (We lessened \vsize for it in \oddfootingyyy.)
+ % The \baselineskip=24pt in plain's \makefootline has no effect.
+ \vskip 24pt
+ \unvbox\footlinebox
+ \fi
+ %
+ \ifcropmarks
+ \egroup % end of \vbox\bgroup
+ \hfil\egroup % end of (centering) \line\bgroup
+ \vskip\topandbottommargin plus1fill minus1fill
+ \boxmaxdepth = \cornerthick
+ \vbox to0pt{\vss
+ \line{%
+ \vbox{\moveleft\cornerthick\nsbot}%
+ \hfill
+ \vbox{\moveright\cornerthick\nsbot}%
+ }%
+ \nointerlineskip
+ \line{\ewbot\hfil\ewbot}%
+ }%
+ \egroup % \vbox from first cropmarks clause
+ \fi
+ }% end of \shipout\vbox
+ }% end of group with \indexdummies
+ \advancepageno
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+}
+
+\newinsert\margin \dimen\margin=\maxdimen
+
+\def\pagebody#1{\vbox to\pageheight{\boxmaxdepth=\maxdepth #1}}
+{\catcode`\@ =11
+\gdef\pagecontents#1{\ifvoid\topins\else\unvbox\topins\fi
+% marginal hacks, juha@viisa.uucp (Juha Takala)
+\ifvoid\margin\else % marginal info is present
+ \rlap{\kern\hsize\vbox to\z@{\kern1pt\box\margin \vss}}\fi
+\dimen@=\dp#1\relax \unvbox#1\relax
+\ifvoid\footins\else\vskip\skip\footins\footnoterule \unvbox\footins\fi
+\ifr@ggedbottom \kern-\dimen@ \vfil \fi}
+}
+
+% Here are the rules for the cropmarks. Note that they are
+% offset so that the space between them is truly \outerhsize or \outervsize
+% (P. A. MacKay, 12 November, 1986)
+%
+\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong}
+\def\nstop{\vbox
+ {\hrule height\cornerthick depth\cornerlong width\cornerthick}}
+\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong}
+\def\nsbot{\vbox
+ {\hrule height\cornerlong depth\cornerthick width\cornerthick}}
+
+% Parse an argument, then pass it to #1. The argument is the rest of
+% the input line (except we remove a trailing comment). #1 should be a
+% macro which expects an ordinary undelimited TeX argument.
+%
+\def\parsearg{\parseargusing{}}
+\def\parseargusing#1#2{%
+ \def\argtorun{#2}%
+ \begingroup
+ \obeylines
+ \spaceisspace
+ #1%
+ \parseargline\empty% Insert the \empty token, see \finishparsearg below.
+}
+
+{\obeylines %
+ \gdef\parseargline#1^^M{%
+ \endgroup % End of the group started in \parsearg.
+ \argremovecomment #1\comment\ArgTerm%
+ }%
+}
+
+% First remove any @comment, then any @c comment.
+\def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
+\def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
+
+% Each occurrence of `\^^M' or `<space>\^^M' is replaced by a single space.
+%
+% \argremovec might leave us with trailing space, e.g.,
+% @end itemize @c foo
+% This space token undergoes the same procedure and is eventually removed
+% by \finishparsearg.
+%
+\def\argcheckspaces#1\^^M{\argcheckspacesX#1\^^M \^^M}
+\def\argcheckspacesX#1 \^^M{\argcheckspacesY#1\^^M}
+\def\argcheckspacesY#1\^^M#2\^^M#3\ArgTerm{%
+ \def\temp{#3}%
+ \ifx\temp\empty
+ % Do not use \next, perhaps the caller of \parsearg uses it; reuse \temp:
+ \let\temp\finishparsearg
+ \else
+ \let\temp\argcheckspaces
+ \fi
+ % Put the space token in:
+ \temp#1 #3\ArgTerm
+}
+
+% If a _delimited_ argument is enclosed in braces, they get stripped; so
+% to get _exactly_ the rest of the line, we had to prevent such situation.
+% We prepended an \empty token at the very beginning and we expand it now,
+% just before passing the control to \argtorun.
+% (Similarly, we have to think about #3 of \argcheckspacesY above: it is
+% either the null string, or it ends with \^^M---thus there is no danger
+% that a pair of braces would be stripped.
+%
+% But first, we have to remove the trailing space token.
+%
+\def\finishparsearg#1 \ArgTerm{\expandafter\argtorun\expandafter{#1}}
+
+% \parseargdef\foo{...}
+% is roughly equivalent to
+% \def\foo{\parsearg\Xfoo}
+% \def\Xfoo#1{...}
+%
+% Actually, I use \csname\string\foo\endcsname, ie. \\foo, as it is my
+% favourite TeX trick. --kasal, 16nov03
+
+\def\parseargdef#1{%
+ \expandafter \doparseargdef \csname\string#1\endcsname #1%
+}
+\def\doparseargdef#1#2{%
+ \def#2{\parsearg#1}%
+ \def#1##1%
+}
+
+% Several utility definitions with active space:
+{
+ \obeyspaces
+ \gdef\obeyedspace{ }
+
+ % Make each space character in the input produce a normal interword
+ % space in the output. Don't allow a line break at this space, as this
+ % is used only in environments like @example, where each line of input
+ % should produce a line of output anyway.
+ %
+ \gdef\sepspaces{\obeyspaces\let =\tie}
+
+ % If an index command is used in an @example environment, any spaces
+ % therein should become regular spaces in the raw index file, not the
+ % expansion of \tie (\leavevmode \penalty \@M \ ).
+ \gdef\unsepspaces{\let =\space}
+}
+
+
+\def\flushcr{\ifx\par\lisppar \def\next##1{}\else \let\next=\relax \fi \next}
+
+% Define the framework for environments in texinfo.tex. It's used like this:
+%
+% \envdef\foo{...}
+% \def\Efoo{...}
+%
+% It's the responsibility of \envdef to insert \begingroup before the
+% actual body; @end closes the group after calling \Efoo. \envdef also
+% defines \thisenv, so the current environment is known; @end checks
+% whether the environment name matches. The \checkenv macro can also be
+% used to check whether the current environment is the one expected.
+%
+% Non-false conditionals (@iftex, @ifset) don't fit into this, so they
+% are not treated as environments; they don't open a group. (The
+% implementation of @end takes care not to call \endgroup in this
+% special case.)
+
+
+% At run-time, environments start with this:
+\def\startenvironment#1{\begingroup\def\thisenv{#1}}
+% initialize
+\let\thisenv\empty
+
+% ... but they get defined via ``\envdef\foo{...}'':
+\long\def\envdef#1#2{\def#1{\startenvironment#1#2}}
+\def\envparseargdef#1#2{\parseargdef#1{\startenvironment#1#2}}
+
+% Check whether we're in the right environment:
+\def\checkenv#1{%
+ \def\temp{#1}%
+ \ifx\thisenv\temp
+ \else
+ \badenverr
+ \fi
+}
+
+% Environment mismatch, #1 expected:
+\def\badenverr{%
+ \errhelp = \EMsimple
+ \errmessage{This command can appear only \inenvironment\temp,
+ not \inenvironment\thisenv}%
+}
+\def\inenvironment#1{%
+ \ifx#1\empty
+ outside of any environment%
+ \else
+ in environment \expandafter\string#1%
+ \fi
+}
+
+% @end foo executes the definition of \Efoo.
+% But first, it executes a specialized version of \checkenv
+%
+\parseargdef\end{%
+ \if 1\csname iscond.#1\endcsname
+ \else
+ % The general wording of \badenverr may not be ideal.
+ \expandafter\checkenv\csname#1\endcsname
+ \csname E#1\endcsname
+ \endgroup
+ \fi
+}
+
+\newhelp\EMsimple{Press RETURN to continue.}
+
+
+% Be sure we're in horizontal mode when doing a tie, since we make space
+% equivalent to this in @example-like environments. Otherwise, a space
+% at the beginning of a line will start with \penalty -- and
+% since \penalty is valid in vertical mode, we'd end up putting the
+% penalty on the vertical list instead of in the new paragraph.
+{\catcode`@ = 11
+ % Avoid using \@M directly, because that causes trouble
+ % if the definition is written into an index file.
+ \global\let\tiepenalty = \@M
+ \gdef\tie{\leavevmode\penalty\tiepenalty\ }
+}
+
+% @: forces normal size whitespace following.
+\def\:{\spacefactor=1000 }
+
+% @* forces a line break.
+\def\*{\hfil\break\hbox{}\ignorespaces}
+
+% @/ allows a line break.
+\let\/=\allowbreak
+
+% @. is an end-of-sentence period.
+\def\.{.\spacefactor=\endofsentencespacefactor\space}
+
+% @! is an end-of-sentence bang.
+\def\!{!\spacefactor=\endofsentencespacefactor\space}
+
+% @? is an end-of-sentence query.
+\def\?{?\spacefactor=\endofsentencespacefactor\space}
+
+% @frenchspacing on|off says whether to put extra space after punctuation.
+%
+\def\onword{on}
+\def\offword{off}
+%
+\parseargdef\frenchspacing{%
+ \def\temp{#1}%
+ \ifx\temp\onword \plainfrenchspacing
+ \else\ifx\temp\offword \plainnonfrenchspacing
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @frenchspacing option `\temp', must be on|off}%
+ \fi\fi
+}
+
+% @w prevents a word break. Without the \leavevmode, @w at the
+% beginning of a paragraph, when TeX is still in vertical mode, would
+% produce a whole line of output instead of starting the paragraph.
+\def\w#1{\leavevmode\hbox{#1}}
+
+% @group ... @end group forces ... to be all on one page, by enclosing
+% it in a TeX vbox. We use \vtop instead of \vbox to construct the box
+% to keep its height that of a normal line. According to the rules for
+% \topskip (p.114 of the TeXbook), the glue inserted is
+% max (\topskip - \ht (first item), 0). If that height is large,
+% therefore, no glue is inserted, and the space between the headline and
+% the text is small, which looks bad.
+%
+% Another complication is that the group might be very large. This can
+% cause the glue on the previous page to be unduly stretched, because it
+% does not have much material. In this case, it's better to add an
+% explicit \vfill so that the extra space is at the bottom. The
+% threshold for doing this is if the group is more than \vfilllimit
+% percent of a page (\vfilllimit can be changed inside of @tex).
+%
+\newbox\groupbox
+\def\vfilllimit{0.7}
+%
+\envdef\group{%
+ \ifnum\catcode`\^^M=\active \else
+ \errhelp = \groupinvalidhelp
+ \errmessage{@group invalid in context where filling is enabled}%
+ \fi
+ \startsavinginserts
+ %
+ \setbox\groupbox = \vtop\bgroup
+ % Do @comment since we are called inside an environment such as
+ % @example, where each end-of-line in the input causes an
+ % end-of-line in the output. We don't want the end-of-line after
+ % the `@group' to put extra space in the output. Since @group
+ % should appear on a line by itself (according to the Texinfo
+ % manual), we don't worry about eating any user text.
+ \comment
+}
+%
+% The \vtop produces a box with normal height and large depth; thus, TeX puts
+% \baselineskip glue before it, and (when the next line of text is done)
+% \lineskip glue after it. Thus, space below is not quite equal to space
+% above. But it's pretty close.
+\def\Egroup{%
+ % To get correct interline space between the last line of the group
+ % and the first line afterwards, we have to propagate \prevdepth.
+ \endgraf % Not \par, as it may have been set to \lisppar.
+ \global\dimen1 = \prevdepth
+ \egroup % End the \vtop.
+ % \dimen0 is the vertical size of the group's box.
+ \dimen0 = \ht\groupbox \advance\dimen0 by \dp\groupbox
+ % \dimen2 is how much space is left on the page (more or less).
+ \dimen2 = \pageheight \advance\dimen2 by -\pagetotal
+ % if the group doesn't fit on the current page, and it's a big big
+ % group, force a page break.
+ \ifdim \dimen0 > \dimen2
+ \ifdim \pagetotal < \vfilllimit\pageheight
+ \page
+ \fi
+ \fi
+ \box\groupbox
+ \prevdepth = \dimen1
+ \checkinserts
+}
+%
+% TeX puts in an \escapechar (i.e., `@') at the beginning of the help
+% message, so this ends up printing `@group can only ...'.
+%
+\newhelp\groupinvalidhelp{%
+group can only be used in environments such as @example,^^J%
+where each line of input produces a line of output.}
+
+% @need space-in-mils
+% forces a page break if there is not space-in-mils remaining.
+
+\newdimen\mil \mil=0.001in
+
+\parseargdef\need{%
+ % Ensure vertical mode, so we don't make a big box in the middle of a
+ % paragraph.
+ \par
+ %
+ % If the @need value is less than one line space, it's useless.
+ \dimen0 = #1\mil
+ \dimen2 = \ht\strutbox
+ \advance\dimen2 by \dp\strutbox
+ \ifdim\dimen0 > \dimen2
+ %
+ % Do a \strut just to make the height of this box be normal, so the
+ % normal leading is inserted relative to the preceding line.
+ % And a page break here is fine.
+ \vtop to #1\mil{\strut\vfil}%
+ %
+ % TeX does not even consider page breaks if a penalty added to the
+ % main vertical list is 10000 or more. But in order to see if the
+ % empty box we just added fits on the page, we must make it consider
+ % page breaks. On the other hand, we don't want to actually break the
+ % page after the empty box. So we use a penalty of 9999.
+ %
+ % There is an extremely small chance that TeX will actually break the
+ % page at this \penalty, if there are no other feasible breakpoints in
+ % sight. (If the user is using lots of big @group commands, which
+ % almost-but-not-quite fill up a page, TeX will have a hard time doing
+ % good page breaking, for example.) However, I could not construct an
+ % example where a page broke at this \penalty; if it happens in a real
+ % document, then we can reconsider our strategy.
+ \penalty9999
+ %
+ % Back up by the size of the box, whether we did a page break or not.
+ \kern -#1\mil
+ %
+ % Do not allow a page break right after this kern.
+ \nobreak
+ \fi
+}
+
+% @br forces paragraph break (and is undocumented).
+
+\let\br = \par
+
+% @page forces the start of a new page.
+%
+\def\page{\par\vfill\supereject}
+
+% @exdent text....
+% outputs text on separate line in roman font, starting at standard page margin
+
+% This records the amount of indent in the innermost environment.
+% That's how much \exdent should take out.
+\newskip\exdentamount
+
+% This defn is used inside fill environments such as @defun.
+\parseargdef\exdent{\hfil\break\hbox{\kern -\exdentamount{\rm#1}}\hfil\break}
+
+% This defn is used inside nofill environments such as @example.
+\parseargdef\nofillexdent{{\advance \leftskip by -\exdentamount
+ \leftline{\hskip\leftskip{\rm#1}}}}
+
+% @inmargin{WHICH}{TEXT} puts TEXT in the WHICH margin next to the current
+% paragraph. For more general purposes, use the \margin insertion
+% class. WHICH is `l' or `r'. Not documented, written for gawk manual.
+%
+\newskip\inmarginspacing \inmarginspacing=1cm
+\def\strutdepth{\dp\strutbox}
+%
+\def\doinmargin#1#2{\strut\vadjust{%
+ \nobreak
+ \kern-\strutdepth
+ \vtop to \strutdepth{%
+ \baselineskip=\strutdepth
+ \vss
+ % if you have multiple lines of stuff to put here, you'll need to
+ % make the vbox yourself of the appropriate size.
+ \ifx#1l%
+ \llap{\ignorespaces #2\hskip\inmarginspacing}%
+ \else
+ \rlap{\hskip\hsize \hskip\inmarginspacing \ignorespaces #2}%
+ \fi
+ \null
+ }%
+}}
+\def\inleftmargin{\doinmargin l}
+\def\inrightmargin{\doinmargin r}
+%
+% @inmargin{TEXT [, RIGHT-TEXT]}
+% (if RIGHT-TEXT is given, use TEXT for left page, RIGHT-TEXT for right;
+% else use TEXT for both).
+%
+\def\inmargin#1{\parseinmargin #1,,\finish}
+\def\parseinmargin#1,#2,#3\finish{% not perfect, but better than nothing.
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0 > 0pt
+ \def\lefttext{#1}% have both texts
+ \def\righttext{#2}%
+ \else
+ \def\lefttext{#1}% have only one text
+ \def\righttext{#1}%
+ \fi
+ %
+ \ifodd\pageno
+ \def\temp{\inrightmargin\righttext}% odd page -> outside is right margin
+ \else
+ \def\temp{\inleftmargin\lefttext}%
+ \fi
+ \temp
+}
+
+% @| inserts a changebar to the left of the current line. It should
+% surround any changed text. This approach does *not* work if the
+% change spans more than two lines of output. To handle that, we would
+% have adopt a much more difficult approach (putting marks into the main
+% vertical list for the beginning and end of each change). This command
+% is not documented, not supported, and doesn't work.
+%
+\def\|{%
+ % \vadjust can only be used in horizontal mode.
+ \leavevmode
+ %
+ % Append this vertical mode material after the current line in the output.
+ \vadjust{%
+ % We want to insert a rule with the height and depth of the current
+ % leading; that is exactly what \strutbox is supposed to record.
+ \vskip-\baselineskip
+ %
+ % \vadjust-items are inserted at the left edge of the type. So
+ % the \llap here moves out into the left-hand margin.
+ \llap{%
+ %
+ % For a thicker or thinner bar, change the `1pt'.
+ \vrule height\baselineskip width1pt
+ %
+ % This is the space between the bar and the text.
+ \hskip 12pt
+ }%
+ }%
+}
+
+% @include FILE -- \input text of FILE.
+%
+\def\include{\parseargusing\filenamecatcodes\includezzz}
+\def\includezzz#1{%
+ \pushthisfilestack
+ \def\thisfile{#1}%
+ {%
+ \makevalueexpandable % we want to expand any @value in FILE.
+ \turnoffactive % and allow special characters in the expansion
+ \indexnofonts % Allow `@@' and other weird things in file names.
+ \wlog{texinfo.tex: doing @include of #1^^J}%
+ \edef\temp{\noexpand\input #1 }%
+ %
+ % This trickery is to read FILE outside of a group, in case it makes
+ % definitions, etc.
+ \expandafter
+ }\temp
+ \popthisfilestack
+}
+\def\filenamecatcodes{%
+ \catcode`\\=\other
+ \catcode`~=\other
+ \catcode`^=\other
+ \catcode`_=\other
+ \catcode`|=\other
+ \catcode`<=\other
+ \catcode`>=\other
+ \catcode`+=\other
+ \catcode`-=\other
+ \catcode`\`=\other
+ \catcode`\'=\other
+}
+
+\def\pushthisfilestack{%
+ \expandafter\pushthisfilestackX\popthisfilestack\StackTerm
+}
+\def\pushthisfilestackX{%
+ \expandafter\pushthisfilestackY\thisfile\StackTerm
+}
+\def\pushthisfilestackY #1\StackTerm #2\StackTerm {%
+ \gdef\popthisfilestack{\gdef\thisfile{#1}\gdef\popthisfilestack{#2}}%
+}
+
+\def\popthisfilestack{\errthisfilestackempty}
+\def\errthisfilestackempty{\errmessage{Internal error:
+ the stack of filenames is empty.}}
+
+\def\thisfile{}
+
+% @center line
+% outputs that line, centered.
+%
+\parseargdef\center{%
+ \ifhmode
+ \let\next\centerH
+ \else
+ \let\next\centerV
+ \fi
+ \next{\hfil \ignorespaces#1\unskip \hfil}%
+}
+\def\centerH#1{%
+ {%
+ \hfil\break
+ \advance\hsize by -\leftskip
+ \advance\hsize by -\rightskip
+ \line{#1}%
+ \break
+ }%
+}
+\def\centerV#1{\line{\kern\leftskip #1\kern\rightskip}}
+
+% @sp n outputs n lines of vertical space
+
+\parseargdef\sp{\vskip #1\baselineskip}
+
+% @comment ...line which is ignored...
+% @c is the same as @comment
+% @ignore ... @end ignore is another way to write a comment
+
+\def\comment{\begingroup \catcode`\^^M=\other%
+\catcode`\@=\other \catcode`\{=\other \catcode`\}=\other%
+\commentxxx}
+{\catcode`\^^M=\other \gdef\commentxxx#1^^M{\endgroup}}
+
+\let\c=\comment
+
+% @paragraphindent NCHARS
+% We'll use ems for NCHARS, close enough.
+% NCHARS can also be the word `asis' or `none'.
+% We cannot feasibly implement @paragraphindent asis, though.
+%
+\def\asisword{asis} % no translation, these are keywords
+\def\noneword{none}
+%
+\parseargdef\paragraphindent{%
+ \def\temp{#1}%
+ \ifx\temp\asisword
+ \else
+ \ifx\temp\noneword
+ \defaultparindent = 0pt
+ \else
+ \defaultparindent = #1em
+ \fi
+ \fi
+ \parindent = \defaultparindent
+}
+
+% @exampleindent NCHARS
+% We'll use ems for NCHARS like @paragraphindent.
+% It seems @exampleindent asis isn't necessary, but
+% I preserve it to make it similar to @paragraphindent.
+\parseargdef\exampleindent{%
+ \def\temp{#1}%
+ \ifx\temp\asisword
+ \else
+ \ifx\temp\noneword
+ \lispnarrowing = 0pt
+ \else
+ \lispnarrowing = #1em
+ \fi
+ \fi
+}
+
+% @firstparagraphindent WORD
+% If WORD is `none', then suppress indentation of the first paragraph
+% after a section heading. If WORD is `insert', then do indent at such
+% paragraphs.
+%
+% The paragraph indentation is suppressed or not by calling
+% \suppressfirstparagraphindent, which the sectioning commands do.
+% We switch the definition of this back and forth according to WORD.
+% By default, we suppress indentation.
+%
+\def\suppressfirstparagraphindent{\dosuppressfirstparagraphindent}
+\def\insertword{insert}
+%
+\parseargdef\firstparagraphindent{%
+ \def\temp{#1}%
+ \ifx\temp\noneword
+ \let\suppressfirstparagraphindent = \dosuppressfirstparagraphindent
+ \else\ifx\temp\insertword
+ \let\suppressfirstparagraphindent = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @firstparagraphindent option `\temp'}%
+ \fi\fi
+}
+
+% Here is how we actually suppress indentation. Redefine \everypar to
+% \kern backwards by \parindent, and then reset itself to empty.
+%
+% We also make \indent itself not actually do anything until the next
+% paragraph.
+%
+\gdef\dosuppressfirstparagraphindent{%
+ \gdef\indent{%
+ \restorefirstparagraphindent
+ \indent
+ }%
+ \gdef\noindent{%
+ \restorefirstparagraphindent
+ \noindent
+ }%
+ \global\everypar = {%
+ \kern -\parindent
+ \restorefirstparagraphindent
+ }%
+}
+
+\gdef\restorefirstparagraphindent{%
+ \global \let \indent = \ptexindent
+ \global \let \noindent = \ptexnoindent
+ \global \everypar = {}%
+}
+
+
+% @refill is a no-op.
+\let\refill=\relax
+
+% If working on a large document in chapters, it is convenient to
+% be able to disable indexing, cross-referencing, and contents, for test runs.
+% This is done with @novalidate (before @setfilename).
+%
+\newif\iflinks \linkstrue % by default we want the aux files.
+\let\novalidate = \linksfalse
+
+% @setfilename is done at the beginning of every texinfo file.
+% So open here the files we need to have open while reading the input.
+% This makes it possible to make a .fmt file for texinfo.
+\def\setfilename{%
+ \fixbackslash % Turn off hack to swallow `\input texinfo'.
+ \iflinks
+ \tryauxfile
+ % Open the new aux file. TeX will close it automatically at exit.
+ \immediate\openout\auxfile=\jobname.aux
+ \fi % \openindices needs to do some work in any case.
+ \openindices
+ \let\setfilename=\comment % Ignore extra @setfilename cmds.
+ %
+ % If texinfo.cnf is present on the system, read it.
+ % Useful for site-wide @afourpaper, etc.
+ \openin 1 texinfo.cnf
+ \ifeof 1 \else \input texinfo.cnf \fi
+ \closein 1
+ %
+ \comment % Ignore the actual filename.
+}
+
+% Called from \setfilename.
+%
+\def\openindices{%
+ \newindex{cp}%
+ \newcodeindex{fn}%
+ \newcodeindex{vr}%
+ \newcodeindex{tp}%
+ \newcodeindex{ky}%
+ \newcodeindex{pg}%
+}
+
+% @bye.
+\outer\def\bye{\pagealignmacro\tracingstats=1\ptexend}
+
+
+\message{pdf,}
+% adobe `portable' document format
+\newcount\tempnum
+\newcount\lnkcount
+\newtoks\filename
+\newcount\filenamelength
+\newcount\pgn
+\newtoks\toksA
+\newtoks\toksB
+\newtoks\toksC
+\newtoks\toksD
+\newbox\boxA
+\newcount\countA
+\newif\ifpdf
+\newif\ifpdfmakepagedest
+
+% when pdftex is run in dvi mode, \pdfoutput is defined (so \pdfoutput=1
+% can be set). So we test for \relax and 0 as well as being undefined.
+\ifx\pdfoutput\thisisundefined
+\else
+ \ifx\pdfoutput\relax
+ \else
+ \ifcase\pdfoutput
+ \else
+ \pdftrue
+ \fi
+ \fi
+\fi
+
+% PDF uses PostScript string constants for the names of xref targets,
+% for display in the outlines, and in other places. Thus, we have to
+% double any backslashes. Otherwise, a name like "\node" will be
+% interpreted as a newline (\n), followed by o, d, e. Not good.
+%
+% See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
+% related messages. The final outcome is that it is up to the TeX user
+% to double the backslashes and otherwise make the string valid, so
+% that's what we do. pdftex 1.30.0 (ca.2005) introduced a primitive to
+% do this reliably, so we use it.
+
+% #1 is a control sequence in which to do the replacements,
+% which we \xdef.
+\def\txiescapepdf#1{%
+ \ifx\pdfescapestring\relax
+ % No primitive available; should we give a warning or log?
+ % Many times it won't matter.
+ \else
+ % The expandable \pdfescapestring primitive escapes parentheses,
+ % backslashes, and other special chars.
+ \xdef#1{\pdfescapestring{#1}}%
+ \fi
+}
+
+\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
+with PDF output, and none of those formats could be found. (.eps cannot
+be supported due to the design of the PDF format; use regular TeX (DVI
+output) for that.)}
+
+\ifpdf
+ %
+ % 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 rg #1 RG}}
+ %
+ % Set color, and create a mark which defines \thiscolor accordingly,
+ % so that \makeheadline knows which color to restore.
+ \def\setcolor#1{%
+ \xdef\lastcolordefs{\gdef\noexpand\thiscolor{#1}}%
+ \domark
+ \pdfsetcolor{#1}%
+ }
+ %
+ \def\maincolor{\rgbBlack}
+ \pdfsetcolor{\maincolor}
+ \edef\thiscolor{\maincolor}
+ \def\lastcolordefs{}
+ %
+ \def\makefootline{%
+ \baselineskip24pt
+ \line{\pdfsetcolor{\maincolor}\the\footline}%
+ }
+ %
+ \def\makeheadline{%
+ \vbox to 0pt{%
+ \vskip-22.5pt
+ \line{%
+ \vbox to8.5pt{}%
+ % Extract \thiscolor definition from the marks.
+ \getcolormarks
+ % Typeset the headline with \maincolor, then restore the color.
+ \pdfsetcolor{\maincolor}\the\headline\pdfsetcolor{\thiscolor}%
+ }%
+ \vss
+ }%
+ \nointerlineskip
+ }
+ %
+ %
+ \pdfcatalog{/PageMode /UseOutlines}
+ %
+ % #1 is image name, #2 width (might be empty/whitespace), #3 height (ditto).
+ \def\dopdfimage#1#2#3{%
+ \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
+ \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+ %
+ % pdftex (and the PDF format) support .pdf, .png, .jpg (among
+ % others). Let's try in that order, PDF first since if
+ % someone has a scalable image, presumably better to use that than a
+ % bitmap.
+ \let\pdfimgext=\empty
+ \begingroup
+ \openin 1 #1.pdf \ifeof 1
+ \openin 1 #1.PDF \ifeof 1
+ \openin 1 #1.png \ifeof 1
+ \openin 1 #1.jpg \ifeof 1
+ \openin 1 #1.jpeg \ifeof 1
+ \openin 1 #1.JPG \ifeof 1
+ \errhelp = \nopdfimagehelp
+ \errmessage{Could not find image file #1 for pdf}%
+ \else \gdef\pdfimgext{JPG}%
+ \fi
+ \else \gdef\pdfimgext{jpeg}%
+ \fi
+ \else \gdef\pdfimgext{jpg}%
+ \fi
+ \else \gdef\pdfimgext{png}%
+ \fi
+ \else \gdef\pdfimgext{PDF}%
+ \fi
+ \else \gdef\pdfimgext{pdf}%
+ \fi
+ \closein 1
+ \endgroup
+ %
+ % without \immediate, ancient pdftex seg faults when the same image is
+ % included twice. (Version 3.14159-pre-1.0-unofficial-20010704.)
+ \ifnum\pdftexversion < 14
+ \immediate\pdfimage
+ \else
+ \immediate\pdfximage
+ \fi
+ \ifdim \wd0 >0pt width \imagewidth \fi
+ \ifdim \wd2 >0pt height \imageheight \fi
+ \ifnum\pdftexversion<13
+ #1.\pdfimgext
+ \else
+ {#1.\pdfimgext}%
+ \fi
+ \ifnum\pdftexversion < 14 \else
+ \pdfrefximage \pdflastximage
+ \fi}
+ %
+ \def\pdfmkdest#1{{%
+ % We have to set dummies so commands such as @code, and characters
+ % such as \, aren't expanded when present in a section title.
+ \indexnofonts
+ \turnoffactive
+ \makevalueexpandable
+ \def\pdfdestname{#1}%
+ \txiescapepdf\pdfdestname
+ \safewhatsit{\pdfdest name{\pdfdestname} xyz}%
+ }}
+ %
+ % used to mark target names; must be expandable.
+ \def\pdfmkpgn#1{#1}
+ %
+ % by default, use a color that is dark enough to print on paper as
+ % nearly black, but still distinguishable for online viewing.
+ \def\urlcolor{\rgbDarkRed}
+ \def\linkcolor{\rgbDarkRed}
+ \def\endlink{\setcolor{\maincolor}\pdfendlink}
+ %
+ % Adding outlines to PDF; macros for calculating structure of outlines
+ % come from Petr Olsak
+ \def\expnumber#1{\expandafter\ifx\csname#1\endcsname\relax 0%
+ \else \csname#1\endcsname \fi}
+ \def\advancenumber#1{\tempnum=\expnumber{#1}\relax
+ \advance\tempnum by 1
+ \expandafter\xdef\csname#1\endcsname{\the\tempnum}}
+ %
+ % #1 is the section text, which is what will be displayed in the
+ % outline by the pdf viewer. #2 is the pdf expression for the number
+ % of subentries (or empty, for subsubsections). #3 is the node text,
+ % which might be empty if this toc entry had no corresponding node.
+ % #4 is the page number
+ %
+ \def\dopdfoutline#1#2#3#4{%
+ % Generate a link to the node text if that exists; else, use the
+ % page number. We could generate a destination for the section
+ % text in the case where a section has no node, but it doesn't
+ % seem worth the trouble, since most documents are normally structured.
+ \edef\pdfoutlinedest{#3}%
+ \ifx\pdfoutlinedest\empty
+ \def\pdfoutlinedest{#4}%
+ \else
+ \txiescapepdf\pdfoutlinedest
+ \fi
+ %
+ % Also escape PDF chars in the display string.
+ \edef\pdfoutlinetext{#1}%
+ \txiescapepdf\pdfoutlinetext
+ %
+ \pdfoutline goto name{\pdfmkpgn{\pdfoutlinedest}}#2{\pdfoutlinetext}%
+ }
+ %
+ \def\pdfmakeoutlines{%
+ \begingroup
+ % Read toc silently, to get counts of subentries for \pdfoutline.
+ \def\partentry##1##2##3##4{}% ignore parts in the outlines
+ \def\numchapentry##1##2##3##4{%
+ \def\thischapnum{##2}%
+ \def\thissecnum{0}%
+ \def\thissubsecnum{0}%
+ }%
+ \def\numsecentry##1##2##3##4{%
+ \advancenumber{chap\thischapnum}%
+ \def\thissecnum{##2}%
+ \def\thissubsecnum{0}%
+ }%
+ \def\numsubsecentry##1##2##3##4{%
+ \advancenumber{sec\thissecnum}%
+ \def\thissubsecnum{##2}%
+ }%
+ \def\numsubsubsecentry##1##2##3##4{%
+ \advancenumber{subsec\thissubsecnum}%
+ }%
+ \def\thischapnum{0}%
+ \def\thissecnum{0}%
+ \def\thissubsecnum{0}%
+ %
+ % use \def rather than \let here because we redefine \chapentry et
+ % al. a second time, below.
+ \def\appentry{\numchapentry}%
+ \def\appsecentry{\numsecentry}%
+ \def\appsubsecentry{\numsubsecentry}%
+ \def\appsubsubsecentry{\numsubsubsecentry}%
+ \def\unnchapentry{\numchapentry}%
+ \def\unnsecentry{\numsecentry}%
+ \def\unnsubsecentry{\numsubsecentry}%
+ \def\unnsubsubsecentry{\numsubsubsecentry}%
+ \readdatafile{toc}%
+ %
+ % Read toc second time, this time actually producing the outlines.
+ % The `-' means take the \expnumber as the absolute number of
+ % subentries, which we calculated on our first read of the .toc above.
+ %
+ % We use the node names as the destinations.
+ \def\numchapentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{chap##2}}{##3}{##4}}%
+ \def\numsecentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{sec##2}}{##3}{##4}}%
+ \def\numsubsecentry##1##2##3##4{%
+ \dopdfoutline{##1}{count-\expnumber{subsec##2}}{##3}{##4}}%
+ \def\numsubsubsecentry##1##2##3##4{% count is always zero
+ \dopdfoutline{##1}{}{##3}{##4}}%
+ %
+ % PDF outlines are displayed using system fonts, instead of
+ % document fonts. Therefore we cannot use special characters,
+ % since the encoding is unknown. For example, the eogonek from
+ % Latin 2 (0xea) gets translated to a | character. Info from
+ % Staszek Wawrykiewicz, 19 Jan 2004 04:09:24 +0100.
+ %
+ % TODO this right, we have to translate 8-bit characters to
+ % their "best" equivalent, based on the @documentencoding. Too
+ % much work for too little return. Just use the ASCII equivalents
+ % we use for the index sort strings.
+ %
+ \indexnofonts
+ \setupdatafile
+ % We can have normal brace characters in the PDF outlines, unlike
+ % Texinfo index files. So set that up.
+ \def\{{\lbracecharliteral}%
+ \def\}{\rbracecharliteral}%
+ \catcode`\\=\active \otherbackslash
+ \input \tocreadfilename
+ \endgroup
+ }
+ {\catcode`[=1 \catcode`]=2
+ \catcode`{=\other \catcode`}=\other
+ \gdef\lbracecharliteral[{]%
+ \gdef\rbracecharliteral[}]%
+ ]
+ %
+ \def\skipspaces#1{\def\PP{#1}\def\D{|}%
+ \ifx\PP\D\let\nextsp\relax
+ \else\let\nextsp\skipspaces
+ \ifx\p\space\else\addtokens{\filename}{\PP}%
+ \advance\filenamelength by 1
+ \fi
+ \fi
+ \nextsp}
+ \def\getfilename#1{\filenamelength=0\expandafter\skipspaces#1|\relax}
+ \ifnum\pdftexversion < 14
+ \let \startlink \pdfannotlink
+ \else
+ \let \startlink \pdfstartlink
+ \fi
+ % make a live url in pdf output.
+ \def\pdfurl#1{%
+ \begingroup
+ % it seems we really need yet another set of dummies; have not
+ % 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
+ \makevalueexpandable
+ % do we want to go so far as to use \indexnofonts instead of just
+ % special-casing \var here?
+ \def\var##1{##1}%
+ %
+ \leavevmode\setcolor{\urlcolor}%
+ \startlink attr{/Border [0 0 0]}%
+ user{/Subtype /Link /A << /S /URI /URI (#1) >>}%
+ \endgroup}
+ \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}}
+ \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks}
+ \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks}
+ \def\poptoks#1#2|ENDTOKS|{\let\first=#1\toksD={#1}\toksA={#2}}
+ \def\maketoks{%
+ \expandafter\poptoks\the\toksA|ENDTOKS|\relax
+ \ifx\first0\adn0
+ \else\ifx\first1\adn1 \else\ifx\first2\adn2 \else\ifx\first3\adn3
+ \else\ifx\first4\adn4 \else\ifx\first5\adn5 \else\ifx\first6\adn6
+ \else\ifx\first7\adn7 \else\ifx\first8\adn8 \else\ifx\first9\adn9
+ \else
+ \ifnum0=\countA\else\makelink\fi
+ \ifx\first.\let\next=\done\else
+ \let\next=\maketoks
+ \addtokens{\toksB}{\the\toksD}
+ \ifx\first,\addtokens{\toksB}{\space}\fi
+ \fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \next}
+ \def\makelink{\addtokens{\toksB}%
+ {\noexpand\pdflink{\the\toksC}}\toksC={}\global\countA=0}
+ \def\pdflink#1{%
+ \startlink attr{/Border [0 0 0]} goto name{\pdfmkpgn{#1}}
+ \setcolor{\linkcolor}#1\endlink}
+ \def\done{\edef\st{\global\noexpand\toksA={\the\toksB}}\st}
+\else
+ % non-pdf mode
+ \let\pdfmkdest = \gobble
+ \let\pdfurl = \gobble
+ \let\endlink = \relax
+ \let\setcolor = \gobble
+ \let\pdfsetcolor = \gobble
+ \let\pdfmakeoutlines = \relax
+\fi % \ifx\pdfoutput
+
+
+\message{fonts,}
+
+% Change the current font style to #1, remembering it in \curfontstyle.
+% For now, we do not accumulate font styles: @b{@i{foo}} prints foo in
+% italics, not bold italics.
+%
+\def\setfontstyle#1{%
+ \def\curfontstyle{#1}% not as a control sequence, because we are \edef'd.
+ \csname ten#1\endcsname % change the current font
+}
+
+% Select #1 fonts with the current style.
+%
+\def\selectfonts#1{\csname #1fonts\endcsname \csname\curfontstyle\endcsname}
+
+\def\rm{\fam=0 \setfontstyle{rm}}
+\def\it{\fam=\itfam \setfontstyle{it}}
+\def\sl{\fam=\slfam \setfontstyle{sl}}
+\def\bf{\fam=\bffam \setfontstyle{bf}}\def\bfstylename{bf}
+\def\tt{\fam=\ttfam \setfontstyle{tt}}
+
+% Unfortunately, we have to override this for titles and the like, since
+% in those cases "rm" is bold. Sigh.
+\def\rmisbold{\rm\def\curfontstyle{bf}}
+
+% Texinfo sort of supports the sans serif font style, which plain TeX does not.
+% So we set up a \sf.
+\newfam\sffam
+\def\sf{\fam=\sffam \setfontstyle{sf}}
+\let\li = \sf % Sometimes we call it \li, not \sf.
+
+% We don't need math for this font style.
+\def\ttsl{\setfontstyle{ttsl}}
+
+
+% Default leading.
+\newdimen\textleading \textleading = 13.2pt
+
+% Set the baselineskip to #1, and the lineskip and strut size
+% correspondingly. There is no deep meaning behind these magic numbers
+% used as factors; they just match (closely enough) what Knuth defined.
+%
+\def\lineskipfactor{.08333}
+\def\strutheightpercent{.70833}
+\def\strutdepthpercent {.29167}
+%
+% can get a sort of poor man's double spacing by redefining this.
+\def\baselinefactor{1}
+%
+\def\setleading#1{%
+ \dimen0 = #1\relax
+ \normalbaselineskip = \baselinefactor\dimen0
+ \normallineskip = \lineskipfactor\normalbaselineskip
+ \normalbaselines
+ \setbox\strutbox =\hbox{%
+ \vrule width0pt height\strutheightpercent\baselineskip
+ depth \strutdepthpercent \baselineskip
+ }%
+}
+
+% PDF CMaps. See also LaTeX's t1.cmap.
+%
+% do nothing with this by default.
+\expandafter\let\csname cmapOT1\endcsname\gobble
+\expandafter\let\csname cmapOT1IT\endcsname\gobble
+\expandafter\let\csname cmapOT1TT\endcsname\gobble
+
+% if we are producing pdf, and we have \pdffontattr, then define cmaps.
+% (\pdffontattr was introduced many years ago, but people still run
+% older pdftex's; it's easy to conditionalize, so we do.)
+\ifpdf \ifx\pdffontattr\thisisundefined \else
+ \begingroup
+ \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+ \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1-0)
+%%Title: (TeX-OT1-0 TeX OT1 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+8 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<23> <26> <0023>
+<28> <3B> <0028>
+<3F> <5B> <003F>
+<5D> <5E> <005D>
+<61> <7A> <0061>
+<7B> <7C> <2013>
+endbfrange
+40 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <00660066>
+<0C> <00660069>
+<0D> <0066006C>
+<0E> <006600660069>
+<0F> <00660066006C>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<21> <0021>
+<22> <201D>
+<27> <2019>
+<3C> <00A1>
+<3D> <003D>
+<3E> <00BF>
+<5C> <201C>
+<5F> <02D9>
+<60> <2018>
+<7D> <02DD>
+<7E> <007E>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+ }\endgroup
+ \expandafter\edef\csname cmapOT1\endcsname#1{%
+ \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+ }%
+%
+% \cmapOT1IT
+ \begingroup
+ \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+ \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1IT-0)
+%%Title: (TeX-OT1IT-0 TeX OT1IT 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1IT)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1IT-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+8 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<25> <26> <0025>
+<28> <3B> <0028>
+<3F> <5B> <003F>
+<5D> <5E> <005D>
+<61> <7A> <0061>
+<7B> <7C> <2013>
+endbfrange
+42 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <00660066>
+<0C> <00660069>
+<0D> <0066006C>
+<0E> <006600660069>
+<0F> <00660066006C>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<21> <0021>
+<22> <201D>
+<23> <0023>
+<24> <00A3>
+<27> <2019>
+<3C> <00A1>
+<3D> <003D>
+<3E> <00BF>
+<5C> <201C>
+<5F> <02D9>
+<60> <2018>
+<7D> <02DD>
+<7E> <007E>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+ }\endgroup
+ \expandafter\edef\csname cmapOT1IT\endcsname#1{%
+ \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+ }%
+%
+% \cmapOT1TT
+ \begingroup
+ \catcode`\^^M=\active \def^^M{^^J}% Output line endings as the ^^J char.
+ \catcode`\%=12 \immediate\pdfobj stream {%!PS-Adobe-3.0 Resource-CMap
+%%DocumentNeededResources: ProcSet (CIDInit)
+%%IncludeResource: ProcSet (CIDInit)
+%%BeginResource: CMap (TeX-OT1TT-0)
+%%Title: (TeX-OT1TT-0 TeX OT1TT 0)
+%%Version: 1.000
+%%EndComments
+/CIDInit /ProcSet findresource begin
+12 dict begin
+begincmap
+/CIDSystemInfo
+<< /Registry (TeX)
+/Ordering (OT1TT)
+/Supplement 0
+>> def
+/CMapName /TeX-OT1TT-0 def
+/CMapType 2 def
+1 begincodespacerange
+<00> <7F>
+endcodespacerange
+5 beginbfrange
+<00> <01> <0393>
+<09> <0A> <03A8>
+<21> <26> <0021>
+<28> <5F> <0028>
+<61> <7E> <0061>
+endbfrange
+32 beginbfchar
+<02> <0398>
+<03> <039B>
+<04> <039E>
+<05> <03A0>
+<06> <03A3>
+<07> <03D2>
+<08> <03A6>
+<0B> <2191>
+<0C> <2193>
+<0D> <0027>
+<0E> <00A1>
+<0F> <00BF>
+<10> <0131>
+<11> <0237>
+<12> <0060>
+<13> <00B4>
+<14> <02C7>
+<15> <02D8>
+<16> <00AF>
+<17> <02DA>
+<18> <00B8>
+<19> <00DF>
+<1A> <00E6>
+<1B> <0153>
+<1C> <00F8>
+<1D> <00C6>
+<1E> <0152>
+<1F> <00D8>
+<20> <2423>
+<27> <2019>
+<60> <2018>
+<7F> <00A8>
+endbfchar
+endcmap
+CMapName currentdict /CMap defineresource pop
+end
+end
+%%EndResource
+%%EOF
+ }\endgroup
+ \expandafter\edef\csname cmapOT1TT\endcsname#1{%
+ \pdffontattr#1{/ToUnicode \the\pdflastobj\space 0 R}%
+ }%
+\fi\fi
+
+
+% Set the font macro #1 to the font named #2, adding on the
+% specified font prefix (normally `cm').
+% #3 is the font's design size, #4 is a scale factor, #5 is the CMap
+% encoding (currently only OT1, OT1IT and OT1TT are allowed, pass
+% empty to omit).
+\def\setfont#1#2#3#4#5{%
+ \font#1=\fontprefix#2#3 scaled #4
+ \csname cmap#5\endcsname#1%
+}
+% This is what gets called when #5 of \setfont is empty.
+\let\cmap\gobble
+% emacs-page end of cmaps
+
+% Use cm as the default font prefix.
+% To specify the font prefix, you must define \fontprefix
+% before you read in texinfo.tex.
+\ifx\fontprefix\thisisundefined
+\def\fontprefix{cm}
+\fi
+% Support font families that don't use the same naming scheme as CM.
+\def\rmshape{r}
+\def\rmbshape{bx} %where the normal face is bold
+\def\bfshape{b}
+\def\bxshape{bx}
+\def\ttshape{tt}
+\def\ttbshape{tt}
+\def\ttslshape{sltt}
+\def\itshape{ti}
+\def\itbshape{bxti}
+\def\slshape{sl}
+\def\slbshape{bxsl}
+\def\sfshape{ss}
+\def\sfbshape{ss}
+\def\scshape{csc}
+\def\scbshape{csc}
+
+% Definitions for a main text size of 11pt. This is the default in
+% Texinfo.
+%
+\def\definetextfontsizexi{%
+% Text fonts (11.2pt, magstep1).
+\def\textnominalsize{11pt}
+\edef\mainmagstep{\magstephalf}
+\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
+\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
+\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
+\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
+\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
+\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
+\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
+\font\texti=cmmi10 scaled \mainmagstep
+\font\textsy=cmsy10 scaled \mainmagstep
+\def\textecsize{1095}
+
+% A few fonts for @defun names and args.
+\setfont\defbf\bfshape{10}{\magstep1}{OT1}
+\setfont\deftt\ttshape{10}{\magstep1}{OT1TT}
+\setfont\defttsl\ttslshape{10}{\magstep1}{OT1TT}
+\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+
+% Fonts for indices, footnotes, small examples (9pt).
+\def\smallnominalsize{9pt}
+\setfont\smallrm\rmshape{9}{1000}{OT1}
+\setfont\smalltt\ttshape{9}{1000}{OT1TT}
+\setfont\smallbf\bfshape{10}{900}{OT1}
+\setfont\smallit\itshape{9}{1000}{OT1IT}
+\setfont\smallsl\slshape{9}{1000}{OT1}
+\setfont\smallsf\sfshape{9}{1000}{OT1}
+\setfont\smallsc\scshape{10}{900}{OT1}
+\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
+\font\smalli=cmmi9
+\font\smallsy=cmsy9
+\def\smallecsize{0900}
+
+% Fonts for small examples (8pt).
+\def\smallernominalsize{8pt}
+\setfont\smallerrm\rmshape{8}{1000}{OT1}
+\setfont\smallertt\ttshape{8}{1000}{OT1TT}
+\setfont\smallerbf\bfshape{10}{800}{OT1}
+\setfont\smallerit\itshape{8}{1000}{OT1IT}
+\setfont\smallersl\slshape{8}{1000}{OT1}
+\setfont\smallersf\sfshape{8}{1000}{OT1}
+\setfont\smallersc\scshape{10}{800}{OT1}
+\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
+\font\smalleri=cmmi8
+\font\smallersy=cmsy8
+\def\smallerecsize{0800}
+
+% Fonts for title page (20.4pt):
+\def\titlenominalsize{20pt}
+\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
+\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
+\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
+\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
+\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
+\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
+\let\titlebf=\titlerm
+\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
+\font\titlei=cmmi12 scaled \magstep3
+\font\titlesy=cmsy10 scaled \magstep4
+\def\titleecsize{2074}
+
+% Chapter (and unnumbered) fonts (17.28pt).
+\def\chapnominalsize{17pt}
+\setfont\chaprm\rmbshape{12}{\magstep2}{OT1}
+\setfont\chapit\itbshape{10}{\magstep3}{OT1IT}
+\setfont\chapsl\slbshape{10}{\magstep3}{OT1}
+\setfont\chaptt\ttbshape{12}{\magstep2}{OT1TT}
+\setfont\chapttsl\ttslshape{10}{\magstep3}{OT1TT}
+\setfont\chapsf\sfbshape{17}{1000}{OT1}
+\let\chapbf=\chaprm
+\setfont\chapsc\scbshape{10}{\magstep3}{OT1}
+\font\chapi=cmmi12 scaled \magstep2
+\font\chapsy=cmsy10 scaled \magstep3
+\def\chapecsize{1728}
+
+% Section fonts (14.4pt).
+\def\secnominalsize{14pt}
+\setfont\secrm\rmbshape{12}{\magstep1}{OT1}
+\setfont\secit\itbshape{10}{\magstep2}{OT1IT}
+\setfont\secsl\slbshape{10}{\magstep2}{OT1}
+\setfont\sectt\ttbshape{12}{\magstep1}{OT1TT}
+\setfont\secttsl\ttslshape{10}{\magstep2}{OT1TT}
+\setfont\secsf\sfbshape{12}{\magstep1}{OT1}
+\let\secbf\secrm
+\setfont\secsc\scbshape{10}{\magstep2}{OT1}
+\font\seci=cmmi12 scaled \magstep1
+\font\secsy=cmsy10 scaled \magstep2
+\def\sececsize{1440}
+
+% Subsection fonts (13.15pt).
+\def\ssecnominalsize{13pt}
+\setfont\ssecrm\rmbshape{12}{\magstephalf}{OT1}
+\setfont\ssecit\itbshape{10}{1315}{OT1IT}
+\setfont\ssecsl\slbshape{10}{1315}{OT1}
+\setfont\ssectt\ttbshape{12}{\magstephalf}{OT1TT}
+\setfont\ssecttsl\ttslshape{10}{1315}{OT1TT}
+\setfont\ssecsf\sfbshape{12}{\magstephalf}{OT1}
+\let\ssecbf\ssecrm
+\setfont\ssecsc\scbshape{10}{1315}{OT1}
+\font\sseci=cmmi12 scaled \magstephalf
+\font\ssecsy=cmsy10 scaled 1315
+\def\ssececsize{1200}
+
+% Reduced fonts for @acro in text (10pt).
+\def\reducednominalsize{10pt}
+\setfont\reducedrm\rmshape{10}{1000}{OT1}
+\setfont\reducedtt\ttshape{10}{1000}{OT1TT}
+\setfont\reducedbf\bfshape{10}{1000}{OT1}
+\setfont\reducedit\itshape{10}{1000}{OT1IT}
+\setfont\reducedsl\slshape{10}{1000}{OT1}
+\setfont\reducedsf\sfshape{10}{1000}{OT1}
+\setfont\reducedsc\scshape{10}{1000}{OT1}
+\setfont\reducedttsl\ttslshape{10}{1000}{OT1TT}
+\font\reducedi=cmmi10
+\font\reducedsy=cmsy10
+\def\reducedecsize{1000}
+
+\textleading = 13.2pt % line spacing for 11pt CM
+\textfonts % reset the current fonts
+\rm
+} % end of 11pt text font size definitions
+
+
+% Definitions to make the main text be 10pt Computer Modern, with
+% 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}
+\edef\mainmagstep{1000}
+\setfont\textrm\rmshape{10}{\mainmagstep}{OT1}
+\setfont\texttt\ttshape{10}{\mainmagstep}{OT1TT}
+\setfont\textbf\bfshape{10}{\mainmagstep}{OT1}
+\setfont\textit\itshape{10}{\mainmagstep}{OT1IT}
+\setfont\textsl\slshape{10}{\mainmagstep}{OT1}
+\setfont\textsf\sfshape{10}{\mainmagstep}{OT1}
+\setfont\textsc\scshape{10}{\mainmagstep}{OT1}
+\setfont\textttsl\ttslshape{10}{\mainmagstep}{OT1TT}
+\font\texti=cmmi10 scaled \mainmagstep
+\font\textsy=cmsy10 scaled \mainmagstep
+\def\textecsize{1000}
+
+% A few fonts for @defun names and args.
+\setfont\defbf\bfshape{10}{\magstephalf}{OT1}
+\setfont\deftt\ttshape{10}{\magstephalf}{OT1TT}
+\setfont\defttsl\ttslshape{10}{\magstephalf}{OT1TT}
+\def\df{\let\tentt=\deftt \let\tenbf = \defbf \let\tenttsl=\defttsl \bf}
+
+% Fonts for indices, footnotes, small examples (9pt).
+\def\smallnominalsize{9pt}
+\setfont\smallrm\rmshape{9}{1000}{OT1}
+\setfont\smalltt\ttshape{9}{1000}{OT1TT}
+\setfont\smallbf\bfshape{10}{900}{OT1}
+\setfont\smallit\itshape{9}{1000}{OT1IT}
+\setfont\smallsl\slshape{9}{1000}{OT1}
+\setfont\smallsf\sfshape{9}{1000}{OT1}
+\setfont\smallsc\scshape{10}{900}{OT1}
+\setfont\smallttsl\ttslshape{10}{900}{OT1TT}
+\font\smalli=cmmi9
+\font\smallsy=cmsy9
+\def\smallecsize{0900}
+
+% Fonts for small examples (8pt).
+\def\smallernominalsize{8pt}
+\setfont\smallerrm\rmshape{8}{1000}{OT1}
+\setfont\smallertt\ttshape{8}{1000}{OT1TT}
+\setfont\smallerbf\bfshape{10}{800}{OT1}
+\setfont\smallerit\itshape{8}{1000}{OT1IT}
+\setfont\smallersl\slshape{8}{1000}{OT1}
+\setfont\smallersf\sfshape{8}{1000}{OT1}
+\setfont\smallersc\scshape{10}{800}{OT1}
+\setfont\smallerttsl\ttslshape{10}{800}{OT1TT}
+\font\smalleri=cmmi8
+\font\smallersy=cmsy8
+\def\smallerecsize{0800}
+
+% Fonts for title page (20.4pt):
+\def\titlenominalsize{20pt}
+\setfont\titlerm\rmbshape{12}{\magstep3}{OT1}
+\setfont\titleit\itbshape{10}{\magstep4}{OT1IT}
+\setfont\titlesl\slbshape{10}{\magstep4}{OT1}
+\setfont\titlett\ttbshape{12}{\magstep3}{OT1TT}
+\setfont\titlettsl\ttslshape{10}{\magstep4}{OT1TT}
+\setfont\titlesf\sfbshape{17}{\magstep1}{OT1}
+\let\titlebf=\titlerm
+\setfont\titlesc\scbshape{10}{\magstep4}{OT1}
+\font\titlei=cmmi12 scaled \magstep3
+\font\titlesy=cmsy10 scaled \magstep4
+\def\titleecsize{2074}
+
+% Chapter fonts (14.4pt).
+\def\chapnominalsize{14pt}
+\setfont\chaprm\rmbshape{12}{\magstep1}{OT1}
+\setfont\chapit\itbshape{10}{\magstep2}{OT1IT}
+\setfont\chapsl\slbshape{10}{\magstep2}{OT1}
+\setfont\chaptt\ttbshape{12}{\magstep1}{OT1TT}
+\setfont\chapttsl\ttslshape{10}{\magstep2}{OT1TT}
+\setfont\chapsf\sfbshape{12}{\magstep1}{OT1}
+\let\chapbf\chaprm
+\setfont\chapsc\scbshape{10}{\magstep2}{OT1}
+\font\chapi=cmmi12 scaled \magstep1
+\font\chapsy=cmsy10 scaled \magstep2
+\def\chapecsize{1440}
+
+% Section fonts (12pt).
+\def\secnominalsize{12pt}
+\setfont\secrm\rmbshape{12}{1000}{OT1}
+\setfont\secit\itbshape{10}{\magstep1}{OT1IT}
+\setfont\secsl\slbshape{10}{\magstep1}{OT1}
+\setfont\sectt\ttbshape{12}{1000}{OT1TT}
+\setfont\secttsl\ttslshape{10}{\magstep1}{OT1TT}
+\setfont\secsf\sfbshape{12}{1000}{OT1}
+\let\secbf\secrm
+\setfont\secsc\scbshape{10}{\magstep1}{OT1}
+\font\seci=cmmi12
+\font\secsy=cmsy10 scaled \magstep1
+\def\sececsize{1200}
+
+% Subsection fonts (10pt).
+\def\ssecnominalsize{10pt}
+\setfont\ssecrm\rmbshape{10}{1000}{OT1}
+\setfont\ssecit\itbshape{10}{1000}{OT1IT}
+\setfont\ssecsl\slbshape{10}{1000}{OT1}
+\setfont\ssectt\ttbshape{10}{1000}{OT1TT}
+\setfont\ssecttsl\ttslshape{10}{1000}{OT1TT}
+\setfont\ssecsf\sfbshape{10}{1000}{OT1}
+\let\ssecbf\ssecrm
+\setfont\ssecsc\scbshape{10}{1000}{OT1}
+\font\sseci=cmmi10
+\font\ssecsy=cmsy10
+\def\ssececsize{1000}
+
+% Reduced fonts for @acro in text (9pt).
+\def\reducednominalsize{9pt}
+\setfont\reducedrm\rmshape{9}{1000}{OT1}
+\setfont\reducedtt\ttshape{9}{1000}{OT1TT}
+\setfont\reducedbf\bfshape{10}{900}{OT1}
+\setfont\reducedit\itshape{9}{1000}{OT1IT}
+\setfont\reducedsl\slshape{9}{1000}{OT1}
+\setfont\reducedsf\sfshape{9}{1000}{OT1}
+\setfont\reducedsc\scshape{10}{900}{OT1}
+\setfont\reducedttsl\ttslshape{10}{900}{OT1TT}
+\font\reducedi=cmmi9
+\font\reducedsy=cmsy9
+\def\reducedecsize{0900}
+
+\divide\parskip by 2 % reduce space between paragraphs
+\textleading = 12pt % line spacing for 10pt CM
+\textfonts % reset the current fonts
+\rm
+} % end of 10pt text font size definitions
+
+
+% We provide the user-level command
+% @fonttextsize 10
+% (or 11) to redefine the text font size. pt is assumed.
+%
+\def\xiword{11}
+\def\xword{10}
+\def\xwordpt{10pt}
+%
+\parseargdef\fonttextsize{%
+ \def\textsizearg{#1}%
+ %\wlog{doing @fonttextsize \textsizearg}%
+ %
+ % 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
+ \else
+ \errhelp=\EMsimple
+ \errmessage{@fonttextsize only supports `10' or `11', not `\textsizearg'}
+ \fi\fi
+ \endgroup
+}
+
+
+% In order for the font changes to affect most math symbols and letters,
+% we have to define the \textfont of the standard families. Since
+% texinfo doesn't allow for producing subscripts and superscripts except
+% in the main text, we don't bother to reset \scriptfont and
+% \scriptscriptfont (which would also require loading a lot more fonts).
+%
+\def\resetmathfonts{%
+ \textfont0=\tenrm \textfont1=\teni \textfont2=\tensy
+ \textfont\itfam=\tenit \textfont\slfam=\tensl \textfont\bffam=\tenbf
+ \textfont\ttfam=\tentt \textfont\sffam=\tensf
+}
+
+% The font-changing commands redefine the meanings of \tenSTYLE, instead
+% of just \STYLE. We do this because \STYLE needs to also set the
+% current \fam for math mode. Our \STYLE (e.g., \rm) commands hardwire
+% \tenSTYLE to set the current font.
+%
+% Each font-changing command also sets the names \lsize (one size lower)
+% and \lllsize (three sizes lower). These relative commands are used in
+% the LaTeX logo and acronyms.
+%
+% This all needs generalizing, badly.
+%
+\def\textfonts{%
+ \let\tenrm=\textrm \let\tenit=\textit \let\tensl=\textsl
+ \let\tenbf=\textbf \let\tentt=\texttt \let\smallcaps=\textsc
+ \let\tensf=\textsf \let\teni=\texti \let\tensy=\textsy
+ \let\tenttsl=\textttsl
+ \def\curfontsize{text}%
+ \def\lsize{reduced}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{\textleading}}
+\def\titlefonts{%
+ \let\tenrm=\titlerm \let\tenit=\titleit \let\tensl=\titlesl
+ \let\tenbf=\titlebf \let\tentt=\titlett \let\smallcaps=\titlesc
+ \let\tensf=\titlesf \let\teni=\titlei \let\tensy=\titlesy
+ \let\tenttsl=\titlettsl
+ \def\curfontsize{title}%
+ \def\lsize{chap}\def\lllsize{subsec}%
+ \resetmathfonts \setleading{27pt}}
+\def\titlefont#1{{\titlefonts\rmisbold #1}}
+\def\chapfonts{%
+ \let\tenrm=\chaprm \let\tenit=\chapit \let\tensl=\chapsl
+ \let\tenbf=\chapbf \let\tentt=\chaptt \let\smallcaps=\chapsc
+ \let\tensf=\chapsf \let\teni=\chapi \let\tensy=\chapsy
+ \let\tenttsl=\chapttsl
+ \def\curfontsize{chap}%
+ \def\lsize{sec}\def\lllsize{text}%
+ \resetmathfonts \setleading{19pt}}
+\def\secfonts{%
+ \let\tenrm=\secrm \let\tenit=\secit \let\tensl=\secsl
+ \let\tenbf=\secbf \let\tentt=\sectt \let\smallcaps=\secsc
+ \let\tensf=\secsf \let\teni=\seci \let\tensy=\secsy
+ \let\tenttsl=\secttsl
+ \def\curfontsize{sec}%
+ \def\lsize{subsec}\def\lllsize{reduced}%
+ \resetmathfonts \setleading{16pt}}
+\def\subsecfonts{%
+ \let\tenrm=\ssecrm \let\tenit=\ssecit \let\tensl=\ssecsl
+ \let\tenbf=\ssecbf \let\tentt=\ssectt \let\smallcaps=\ssecsc
+ \let\tensf=\ssecsf \let\teni=\sseci \let\tensy=\ssecsy
+ \let\tenttsl=\ssecttsl
+ \def\curfontsize{ssec}%
+ \def\lsize{text}\def\lllsize{small}%
+ \resetmathfonts \setleading{15pt}}
+\let\subsubsecfonts = \subsecfonts
+\def\reducedfonts{%
+ \let\tenrm=\reducedrm \let\tenit=\reducedit \let\tensl=\reducedsl
+ \let\tenbf=\reducedbf \let\tentt=\reducedtt \let\reducedcaps=\reducedsc
+ \let\tensf=\reducedsf \let\teni=\reducedi \let\tensy=\reducedsy
+ \let\tenttsl=\reducedttsl
+ \def\curfontsize{reduced}%
+ \def\lsize{small}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{10.5pt}}
+\def\smallfonts{%
+ \let\tenrm=\smallrm \let\tenit=\smallit \let\tensl=\smallsl
+ \let\tenbf=\smallbf \let\tentt=\smalltt \let\smallcaps=\smallsc
+ \let\tensf=\smallsf \let\teni=\smalli \let\tensy=\smallsy
+ \let\tenttsl=\smallttsl
+ \def\curfontsize{small}%
+ \def\lsize{smaller}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{10.5pt}}
+\def\smallerfonts{%
+ \let\tenrm=\smallerrm \let\tenit=\smallerit \let\tensl=\smallersl
+ \let\tenbf=\smallerbf \let\tentt=\smallertt \let\smallcaps=\smallersc
+ \let\tensf=\smallersf \let\teni=\smalleri \let\tensy=\smallersy
+ \let\tenttsl=\smallerttsl
+ \def\curfontsize{smaller}%
+ \def\lsize{smaller}\def\lllsize{smaller}%
+ \resetmathfonts \setleading{9.5pt}}
+
+% Fonts for short table of contents.
+\setfont\shortcontrm\rmshape{12}{1000}{OT1}
+\setfont\shortcontbf\bfshape{10}{\magstep1}{OT1} % no cmb12
+\setfont\shortcontsl\slshape{12}{1000}{OT1}
+\setfont\shortconttt\ttshape{12}{1000}{OT1TT}
+
+% Define these just so they can be easily changed for other fonts.
+\def\angleleft{$\langle$}
+\def\angleright{$\rangle$}
+
+% Set the fonts to use with the @small... environments.
+\let\smallexamplefonts = \smallfonts
+
+% About \smallexamplefonts. If we use \smallfonts (9pt), @smallexample
+% can fit this many characters:
+% 8.5x11=86 smallbook=72 a4=90 a5=69
+% If we use \scriptfonts (8pt), then we can fit this many characters:
+% 8.5x11=90+ smallbook=80 a4=90+ a5=77
+% For me, subjectively, the few extra characters that fit aren't worth
+% the additional smallness of 8pt. So I'm making the default 9pt.
+%
+% By the way, for comparison, here's what fits with @example (10pt):
+% 8.5x11=71 smallbook=60 a4=75 a5=58
+% --karl, 24jan03.
+
+% Set up the default fonts, so we can use them for creating boxes.
+%
+\definetextfontsizexi
+
+
+\message{markup,}
+
+% Check if we are currently using a typewriter font. Since all the
+% Computer Modern typewriter fonts have zero interword stretch (and
+% shrink), and it is reasonable to expect all typewriter fonts to have
+% this property, we can check that font parameter.
+%
+\def\ifmonospace{\ifdim\fontdimen3\font=0pt }
+
+% Markup style infrastructure. \defmarkupstylesetup\INITMACRO will
+% define and register \INITMACRO to be called on markup style changes.
+% \INITMACRO can check \currentmarkupstyle for the innermost
+% style and the set of \ifmarkupSTYLE switches for all styles
+% currently in effect.
+\newif\ifmarkupvar
+\newif\ifmarkupsamp
+\newif\ifmarkupkey
+%\newif\ifmarkupfile % @file == @samp.
+%\newif\ifmarkupoption % @option == @samp.
+\newif\ifmarkupcode
+\newif\ifmarkupkbd
+%\newif\ifmarkupenv % @env == @code.
+%\newif\ifmarkupcommand % @command == @code.
+\newif\ifmarkuptex % @tex (and part of @math, for now).
+\newif\ifmarkupexample
+\newif\ifmarkupverb
+\newif\ifmarkupverbatim
+
+\let\currentmarkupstyle\empty
+
+\def\setupmarkupstyle#1{%
+ \csname markup#1true\endcsname
+ \def\currentmarkupstyle{#1}%
+ \markupstylesetup
+}
+
+\let\markupstylesetup\empty
+
+\def\defmarkupstylesetup#1{%
+ \expandafter\def\expandafter\markupstylesetup
+ \expandafter{\markupstylesetup #1}%
+ \def#1%
+}
+
+% Markup style setup for left and right quotes.
+\defmarkupstylesetup\markupsetuplq{%
+ \expandafter\let\expandafter \temp
+ \csname markupsetuplq\currentmarkupstyle\endcsname
+ \ifx\temp\relax \markupsetuplqdefault \else \temp \fi
+}
+
+\defmarkupstylesetup\markupsetuprq{%
+ \expandafter\let\expandafter \temp
+ \csname markupsetuprq\currentmarkupstyle\endcsname
+ \ifx\temp\relax \markupsetuprqdefault \else \temp \fi
+}
+
+{
+\catcode`\'=\active
+\catcode`\`=\active
+
+\gdef\markupsetuplqdefault{\let`\lq}
+\gdef\markupsetuprqdefault{\let'\rq}
+
+\gdef\markupsetcodequoteleft{\let`\codequoteleft}
+\gdef\markupsetcodequoteright{\let'\codequoteright}
+
+\gdef\markupsetnoligaturesquoteleft{\let`\noligaturesquoteleft}
+}
+
+\let\markupsetuplqcode \markupsetcodequoteleft
+\let\markupsetuprqcode \markupsetcodequoteright
+%
+\let\markupsetuplqexample \markupsetcodequoteleft
+\let\markupsetuprqexample \markupsetcodequoteright
+%
+\let\markupsetuplqsamp \markupsetcodequoteleft
+\let\markupsetuprqsamp \markupsetcodequoteright
+%
+\let\markupsetuplqverb \markupsetcodequoteleft
+\let\markupsetuprqverb \markupsetcodequoteright
+%
+\let\markupsetuplqverbatim \markupsetcodequoteleft
+\let\markupsetuprqverbatim \markupsetcodequoteright
+
+\let\markupsetuplqkbd \markupsetnoligaturesquoteleft
+
+% Allow an option to not use regular directed right quote/apostrophe
+% (char 0x27), but instead the undirected quote 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.
+%
+\def\codequoteright{%
+ \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax
+ \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
+ '%
+ \else \char'15 \fi
+ \else \char'15 \fi
+}
+%
+% 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
+ % [Knuth] pp. 380,381,391
+ % \relax disables Spanish ligatures ?` and !` of \tt font.
+ \relax`%
+ \else \char'22 \fi
+ \else \char'22 \fi
+}
+
+% Commands to set the quote options.
+%
+\parseargdef\codequoteundirected{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxicodequoteundirected\endcsname
+ = t%
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxicodequoteundirected\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @codequoteundirected value `\temp', must be on|off}%
+ \fi\fi
+}
+%
+\parseargdef\codequotebacktick{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxicodequotebacktick\endcsname
+ = t%
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxicodequotebacktick\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @codequotebacktick value `\temp', must be on|off}%
+ \fi\fi
+}
+
+% [Knuth] pp. 380,381,391, disable Spanish ligatures ?` and !` of \tt font.
+\def\noligaturesquoteleft{\relax\lq}
+
+% Count depth in font-changes, for error checks
+\newcount\fontdepth \fontdepth=0
+
+% Font commands.
+
+% #1 is the font command (\sl or \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}
+
+% 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
+ \aftersmartic
+}
+
+% like \smartslanted except unconditionally uses \ttsl, and no ic.
+% @var is set to this for defun arguments.
+\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\smartitaliccorrection}
+
+\def\aftersmartic{}
+\def\var#1{%
+ \let\saveaftersmartic = \aftersmartic
+ \def\aftersmartic{\null\let\aftersmartic=\saveaftersmartic}%
+ \smartslanted{#1}%
+}
+
+\let\i=\smartitalic
+\let\slanted=\smartslanted
+\let\dfn=\smartslanted
+\let\emph=\smartitalic
+
+% Explicit font changes: @r, @sc, undocumented @ii.
+\def\r#1{{\rm #1}} % roman font
+\def\sc#1{{\smallcaps#1}} % smallcaps font
+\def\ii#1{{\it #1}} % italic font
+
+% @b, explicit bold. Also @strong.
+\def\b#1{{\bf #1}}
+\let\strong=\b
+
+% @sansserif, explicit sans.
+\def\sansserif#1{{\sf #1}}
+
+% We can't just use \exhyphenpenalty, because that only has effect at
+% the end of a paragraph. Restore normal hyphenation at the end of the
+% group within which \nohyphenation is presumably called.
+%
+\def\nohyphenation{\hyphenchar\font = -1 \aftergroup\restorehyphenation}
+\def\restorehyphenation{\hyphenchar\font = `- }
+
+% Set sfcode to normal for the chars that usually have another value.
+% Can't use plain's \frenchspacing because it uses the `\x notation, and
+% sometimes \x has an active definition that messes things up.
+%
+\catcode`@=11
+ \def\plainfrenchspacing{%
+ \sfcode\dotChar =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
+ \sfcode\colonChar=\@m \sfcode\semiChar =\@m \sfcode\commaChar =\@m
+ \def\endofsentencespacefactor{1000}% for @. and friends
+ }
+ \def\plainnonfrenchspacing{%
+ \sfcode`\.3000\sfcode`\?3000\sfcode`\!3000
+ \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250
+ \def\endofsentencespacefactor{3000}% for @. and friends
+ }
+\catcode`@=\other
+\def\endofsentencespacefactor{3000}% default
+
+% @t, explicit typewriter.
+\def\t#1{%
+ {\tt \rawbackslash \plainfrenchspacing #1}%
+ \null
+}
+
+% @samp.
+\def\samp#1{{\setupmarkupstyle{samp}\lq\tclose{#1}\rq\null}}
+
+% definition of @key that produces a lozenge. Doesn't adjust to text size.
+%\setfont\keyrm\rmshape{8}{1000}{OT1}
+%\font\keysy=cmsy9
+%\def\key#1{{\keyrm\textfont2=\keysy \leavevmode\hbox{%
+% \raise0.4pt\hbox{\angleleft}\kern-.08em\vtop{%
+% \vbox{\hrule\kern-0.4pt
+% \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
+% \kern-0.4pt\hrule}%
+% \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+
+% definition of @key with no lozenge. If the current font is already
+% monospace, don't change it; that way, we respect @kbdinputstyle. But
+% if it isn't monospace, then use \tt.
+%
+\def\key#1{{\setupmarkupstyle{key}%
+ \nohyphenation
+ \ifmonospace\else\tt\fi
+ #1}\null}
+
+% ctrl is no longer a Texinfo command.
+\def\ctrl #1{{\tt \rawbackslash \hat}#1}
+
+% @file, @option are the same as @samp.
+\let\file=\samp
+\let\option=\samp
+
+% @code is a modification of @t,
+% which makes spaces the same size as normal in the surrounding text.
+\def\tclose#1{%
+ {%
+ % Change normal interword space to be same as for the current font.
+ \spaceskip = \fontdimen2\font
+ %
+ % Switch to typewriter.
+ \tt
+ %
+ % But `\ ' produces the large typewriter interword space.
+ \def\ {{\spaceskip = 0pt{} }}%
+ %
+ % Turn off hyphenation.
+ \nohyphenation
+ %
+ \rawbackslash
+ \plainfrenchspacing
+ #1%
+ }%
+ \null % reset spacefactor to 1000
+}
+
+% We *must* turn on hyphenation at `-' and `_' in @code.
+% Otherwise, it is too hard to avoid overfull hboxes
+% in the Emacs manual, the Library manual, etc.
+
+% Unfortunately, TeX uses one parameter (\hyphenchar) to control
+% both hyphenation at - and hyphenation within words.
+% We must therefore turn them both off (\tclose does that)
+% and arrange explicitly to hyphenate at a dash.
+% -- rms.
+{
+ \catcode`\-=\active \catcode`\_=\active
+ \catcode`\'=\active \catcode`\`=\active
+ \global\let'=\rq \global\let`=\lq % default definitions
+ %
+ \global\def\code{\begingroup
+ \setupmarkupstyle{code}%
+ % The following should really be moved into \setupmarkupstyle handlers.
+ \catcode\dashChar=\active \catcode\underChar=\active
+ \ifallowcodebreaks
+ \let-\codedash
+ \let_\codeunder
+ \else
+ \let-\realdash
+ \let_\realunder
+ \fi
+ \codex
+ }
+}
+
+\def\codex #1{\tclose{#1}\endgroup}
+
+\def\realdash{-}
+\def\codedash{-\discretionary{}{}{}}
+\def\codeunder{%
+ % this is all so @math{@code{var_name}+1} can work. In math mode, _
+ % is "active" (mathcode"8000) and \normalunderscore (or \char95, etc.)
+ % will therefore expand the active definition of _, which is us
+ % (inside @code that is), therefore an endless loop.
+ \ifusingtt{\ifmmode
+ \mathchar"075F % class 0=ordinary, family 7=ttfam, pos 0x5F=_.
+ \else\normalunderscore \fi
+ \discretionary{}{}{}}%
+ {\_}%
+}
+
+% An additional complication: the above will allow breaks after, e.g.,
+% 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}
+\def\keywordfalse{false}
+
+\parseargdef\allowcodebreaks{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\keywordtrue
+ \allowcodebreakstrue
+ \else\ifx\txiarg\keywordfalse
+ \allowcodebreaksfalse
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @allowcodebreaks option `\txiarg', must be true|false}%
+ \fi\fi
+}
+
+% @uref (abbreviation for `urlref') takes an optional (comma-separated)
+% second argument specifying the text to display and an optional third
+% arg as text to display instead of (rather than in addition to) the url
+% itself. First (mandatory) arg is the url.
+% (This \urefnobreak definition isn't used now, leaving it for a while
+% for comparison.)
+\def\urefnobreak#1{\dourefnobreak #1,,,\finish}
+\def\dourefnobreak#1,#2,#3,#4\finish{\begingroup
+ \unsepspaces
+ \pdfurl{#1}%
+ \setbox0 = \hbox{\ignorespaces #3}%
+ \ifdim\wd0 > 0pt
+ \unhbox0 % third arg given, show only that
+ \else
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0 > 0pt
+ \ifpdf
+ \unhbox0 % PDF: 2nd arg given, show only it
+ \else
+ \unhbox0\ (\code{#1})% DVI: 2nd arg given, show both it and url
+ \fi
+ \else
+ \code{#1}% only url given, so show it
+ \fi
+ \fi
+ \endlink
+\endgroup}
+
+% This \urefbreak definition is the active one.
+\def\urefbreak{\begingroup \urefcatcodes \dourefbreak}
+\let\uref=\urefbreak
+\def\dourefbreak#1{\urefbreakfinish #1,,,\finish}
+\def\urefbreakfinish#1,#2,#3,#4\finish{% doesn't work in @example
+ \unsepspaces
+ \pdfurl{#1}%
+ \setbox0 = \hbox{\ignorespaces #3}%
+ \ifdim\wd0 > 0pt
+ \unhbox0 % third arg given, show only that
+ \else
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0 > 0pt
+ \ifpdf
+ \unhbox0 % PDF: 2nd arg given, show only it
+ \else
+ \unhbox0\ (\urefcode{#1})% DVI: 2nd arg given, show both it and url
+ \fi
+ \else
+ \urefcode{#1}% only url given, so show it
+ \fi
+ \fi
+ \endlink
+\endgroup}
+
+% Allow line breaks around only a few characters (only).
+\def\urefcatcodes{%
+ \catcode\ampChar=\active \catcode\dotChar=\active
+ \catcode\hashChar=\active \catcode\questChar=\active
+ \catcode\slashChar=\active
+}
+{
+ \urefcatcodes
+ %
+ \global\def\urefcode{\begingroup
+ \setupmarkupstyle{code}%
+ \urefcatcodes
+ \let&\urefcodeamp
+ \let.\urefcodedot
+ \let#\urefcodehash
+ \let?\urefcodequest
+ \let/\urefcodeslash
+ \codex
+ }
+ %
+ % By default, they are just regular characters.
+ \global\def&{\normalamp}
+ \global\def.{\normaldot}
+ \global\def#{\normalhash}
+ \global\def?{\normalquest}
+ \global\def/{\normalslash}
+}
+
+% we put a little stretch before and after the breakable chars, to help
+% line breaking of long url's. The unequal skips make look better in
+% cmtt at least, especially for dots.
+\def\urefprestretch{\urefprebreak \hskip0pt plus.13em }
+\def\urefpoststretch{\urefpostbreak \hskip0pt plus.1em }
+%
+\def\urefcodeamp{\urefprestretch \&\urefpoststretch}
+\def\urefcodedot{\urefprestretch .\urefpoststretch}
+\def\urefcodehash{\urefprestretch \#\urefpoststretch}
+\def\urefcodequest{\urefprestretch ?\urefpoststretch}
+\def\urefcodeslash{\futurelet\next\urefcodeslashfinish}
+{
+ \catcode`\/=\active
+ \global\def\urefcodeslashfinish{%
+ \urefprestretch \slashChar
+ % Allow line break only after the final / in a sequence of
+ % slashes, to avoid line break between the slashes in http://.
+ \ifx\next/\else \urefpoststretch \fi
+ }
+}
+
+% One more complication: by default we'll break after the special
+% characters, but some people like to break before the special chars, so
+% allow that. Also allow no breaking at all, for manual control.
+%
+\parseargdef\urefbreakstyle{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\wordnone
+ \def\urefprebreak{\nobreak}\def\urefpostbreak{\nobreak}
+ \else\ifx\txiarg\wordbefore
+ \def\urefprebreak{\allowbreak}\def\urefpostbreak{\nobreak}
+ \else\ifx\txiarg\wordafter
+ \def\urefprebreak{\nobreak}\def\urefpostbreak{\allowbreak}
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @urefbreakstyle setting `\txiarg'}%
+ \fi\fi\fi
+}
+\def\wordafter{after}
+\def\wordbefore{before}
+\def\wordnone{none}
+
+\urefbreakstyle after
+
+% @url synonym for @uref, since that's how everyone uses it.
+%
+\let\url=\uref
+
+% rms does not like angle brackets --karl, 17may97.
+% So now @email is just like @uref, unless we are pdf.
+%
+%\def\email#1{\angleleft{\tt #1}\angleright}
+\ifpdf
+ \def\email#1{\doemail#1,,\finish}
+ \def\doemail#1,#2,#3\finish{\begingroup
+ \unsepspaces
+ \pdfurl{mailto:#1}%
+ \setbox0 = \hbox{\ignorespaces #2}%
+ \ifdim\wd0>0pt\unhbox0\else\code{#1}\fi
+ \endlink
+ \endgroup}
+\else
+ \let\email=\uref
+\fi
+
+% @kbd is like @code, except that if the argument is just one @key command,
+% then @kbd has no effect.
+\def\kbd#1{{\setupmarkupstyle{kbd}\def\look{#1}\expandafter\kbdfoo\look??\par}}
+
+% @kbdinputstyle -- arg is `distinct' (@kbd uses slanted tty font always),
+% `example' (@kbd uses ttsl only inside of @example and friends),
+% or `code' (@kbd uses normal tty font always).
+\parseargdef\kbdinputstyle{%
+ \def\txiarg{#1}%
+ \ifx\txiarg\worddistinct
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\ttsl}%
+ \else\ifx\txiarg\wordexample
+ \gdef\kbdexamplefont{\ttsl}\gdef\kbdfont{\tt}%
+ \else\ifx\txiarg\wordcode
+ \gdef\kbdexamplefont{\tt}\gdef\kbdfont{\tt}%
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @kbdinputstyle setting `\txiarg'}%
+ \fi\fi\fi
+}
+\def\worddistinct{distinct}
+\def\wordexample{example}
+\def\wordcode{code}
+
+% Default is `distinct'.
+\kbdinputstyle distinct
+
+\def\xkey{\key}
+\def\kbdfoo#1#2#3\par{\def\one{#1}\def\three{#3}\def\threex{??}%
+\ifx\one\xkey\ifx\threex\three \key{#2}%
+\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi
+\else{\tclose{\kbdfont\setupmarkupstyle{kbd}\look}}\fi}
+
+% For @indicateurl, @env, @command quotes seem unnecessary, so use \code.
+\let\indicateurl=\code
+\let\env=\code
+\let\command=\code
+
+% @clicksequence{File @click{} Open ...}
+\def\clicksequence#1{\begingroup #1\endgroup}
+
+% @clickstyle @arrow (by default)
+\parseargdef\clickstyle{\def\click{#1}}
+\def\click{\arrow}
+
+% Typeset a dimension, e.g., `in' or `pt'. The only reason for the
+% argument is to make the input look right: @dmn{pt} instead of @dmn{}pt.
+%
+\def\dmn#1{\thinspace #1}
+
+% @l was never documented to mean ``switch to the Lisp font'',
+% and it is not used as such in any manual I can find. We need it for
+% Polish suppressed-l. --karl, 22sep96.
+%\def\l#1{{\li #1}\null}
+
+% @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}%
+ \def\temp{#2}%
+ \ifx\temp\empty \else
+ \space ({\unsepspaces \ignorespaces \temp \unskip})%
+ \fi
+ \null % reset \spacefactor=1000
+}
+
+% @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}%
+ \def\temp{#2}%
+ \ifx\temp\empty \else
+ \space ({\unsepspaces \ignorespaces \temp \unskip})%
+ \fi
+ \null % reset \spacefactor=1000
+}
+
+% @asis just yields its argument. Used with @table, for example.
+%
+\def\asis#1{#1}
+
+% @math outputs its argument in math mode.
+%
+% One complication: _ usually means subscripts, but it could also mean
+% an actual _ character, as in @math{@var{some_variable} + 1}. So make
+% _ active, and distinguish by seeing if the current family is \slfam,
+% which is what @var uses.
+{
+ \catcode`\_ = \active
+ \gdef\mathunderscore{%
+ \catcode`\_=\active
+ \def_{\ifnum\fam=\slfam \_\else\sb\fi}%
+ }
+}
+% Another complication: we want \\ (and @\) to output a math (or tt) \.
+% FYI, plain.tex uses \\ as a temporary control sequence (for no
+% particular reason), but this is not advertised and we don't care.
+%
+% The \mathchar is class=0=ordinary, family=7=ttfam, position=5C=\.
+\def\mathbackslash{\ifnum\fam=\ttfam \mathchar"075C \else\backslash \fi}
+%
+\def\math{%
+ \tex
+ \mathunderscore
+ \let\\ = \mathbackslash
+ \mathactive
+ % make the texinfo accent commands work in math mode
+ \let\"=\ddot
+ \let\'=\acute
+ \let\==\bar
+ \let\^=\hat
+ \let\`=\grave
+ \let\u=\breve
+ \let\v=\check
+ \let\~=\tilde
+ \let\dotaccent=\dot
+ $\finishmath
+}
+\def\finishmath#1{#1$\endgroup} % Close the group opened by \tex.
+
+% Some active characters (such as <) are spaced differently in math.
+% We have to reset their definitions in case the @math was an argument
+% to a command which sets the catcodes (such as @item or @section).
+%
+{
+ \catcode`^ = \active
+ \catcode`< = \active
+ \catcode`> = \active
+ \catcode`+ = \active
+ \catcode`' = \active
+ \gdef\mathactive{%
+ \let^ = \ptexhat
+ \let< = \ptexless
+ \let> = \ptexgtr
+ \let+ = \ptexplus
+ \let' = \ptexquoteright
+ }
+}
+
+% @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
+% Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
+% except specified as a normal braced arg, so no newlines to worry about.
+%
+\def\outfmtnametex{tex}
+%
+\long\def\inlinefmt#1{\doinlinefmt #1,\finish}
+\long\def\doinlinefmt#1,#2,\finish{%
+ \def\inlinefmtname{#1}%
+ \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
+}
+% For raw, must switch into @tex before parsing the argument, to avoid
+% setting catcodes prematurely. Doing it this way means that, for
+% example, @inlineraw{html, foo{bar} gets a parse error instead of being
+% ignored. But this isn't important because if people want a literal
+% *right* brace they would have to use a command anyway, so they may as
+% well use a command to get a left brace too. We could re-use the
+% delimiter character idea from \verb, but it seems like overkill.
+%
+\long\def\inlineraw{\tex \doinlineraw}
+\long\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
+\def\doinlinerawtwo#1,#2,\finish{%
+ \def\inlinerawname{#1}%
+ \ifx\inlinerawname\outfmtnametex \ignorespaces #2\fi
+ \endgroup % close group opened by \tex.
+}
+
+
+\message{glyphs,}
+% and logos.
+
+% @@ prints an @, as does @atchar{}.
+\def\@{\char64 }
+\let\atchar=\@
+
+% @{ @} @lbracechar{} @rbracechar{} all generate brace characters.
+% Unless we're in typewriter, use \ecfont because the CM text fonts do
+% not have braces, and we don't want to switch into math.
+\def\mylbrace{{\ifmonospace\else\ecfont\fi \char123}}
+\def\myrbrace{{\ifmonospace\else\ecfont\fi \char125}}
+\let\{=\mylbrace \let\lbracechar=\{
+\let\}=\myrbrace \let\rbracechar=\}
+\begingroup
+ % Definitions to produce \{ and \} commands for indices,
+ % and @{ and @} for the aux/toc files.
+ \catcode`\{ = \other \catcode`\} = \other
+ \catcode`\[ = 1 \catcode`\] = 2
+ \catcode`\! = 0 \catcode`\\ = \other
+ !gdef!lbracecmd[\{]%
+ !gdef!rbracecmd[\}]%
+ !gdef!lbraceatcmd[@{]%
+ !gdef!rbraceatcmd[@}]%
+!endgroup
+
+% @comma{} to avoid , parsing problems.
+\let\comma = ,
+
+% Accents: @, @dotaccent @ringaccent @ubaraccent @udotaccent
+% Others are defined by plain TeX: @` @' @" @^ @~ @= @u @v @H.
+\let\, = \ptexc
+\let\dotaccent = \ptexdot
+\def\ringaccent#1{{\accent23 #1}}
+\let\tieaccent = \ptext
+\let\ubaraccent = \ptexb
+\let\udotaccent = \d
+
+% Other special characters: @questiondown @exclamdown @ordf @ordm
+% Plain TeX defines: @AA @AE @O @OE @L (plus lowercase versions) @ss.
+\def\questiondown{?`}
+\def\exclamdown{!`}
+\def\ordf{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{a}}}
+\def\ordm{\leavevmode\raise1ex\hbox{\selectfonts\lllsize \underbar{o}}}
+
+% Dotless i and dotless j, used for accents.
+\def\imacro{i}
+\def\jmacro{j}
+\def\dotless#1{%
+ \def\temp{#1}%
+ \ifx\temp\imacro \ifmmode\imath \else\ptexi \fi
+ \else\ifx\temp\jmacro \ifmmode\jmath \else\j \fi
+ \else \errmessage{@dotless can be used only with i or j}%
+ \fi\fi
+}
+
+% The \TeX{} logo, as in plain, but resetting the spacing so that a
+% period following counts as ending a sentence. (Idea found in latex.)
+%
+\edef\TeX{\TeX \spacefactor=1000 }
+
+% @LaTeX{} logo. Not quite the same results as the definition in
+% latex.ltx, since we use a different font for the raised A; it's most
+% convenient for us to use an explicitly smaller font, rather than using
+% the \scriptstyle font (since we don't reset \scriptstyle and
+% \scriptscriptstyle).
+%
+\def\LaTeX{%
+ L\kern-.36em
+ {\setbox0=\hbox{T}%
+ \vbox to \ht0{\hbox{%
+ \ifx\textnominalsize\xwordpt
+ % for 10pt running text, \lllsize (8pt) is too small for the A in LaTeX.
+ % Revert to plain's \scriptsize, which is 7pt.
+ \count255=\the\fam $\fam\count255 \scriptstyle A$%
+ \else
+ % For 11pt, we can use our lllsize.
+ \selectfonts\lllsize A%
+ \fi
+ }%
+ \vss
+ }}%
+ \kern-.15em
+ \TeX
+}
+
+% Some math mode symbols.
+\def\bullet{$\ptexbullet$}
+\def\geq{\ifmmode \ge\else $\ge$\fi}
+\def\leq{\ifmmode \le\else $\le$\fi}
+\def\minus{\ifmmode -\else $-$\fi}
+
+% @dots{} outputs an ellipsis using the current font.
+% We do .5em per period so that it has the same spacing in the cm
+% typewriter fonts as three actual period characters; on the other hand,
+% in other typewriter fonts three periods are wider than 1.5em. So do
+% whichever is larger.
+%
+\def\dots{%
+ \leavevmode
+ \setbox0=\hbox{...}% get width of three periods
+ \ifdim\wd0 > 1.5em
+ \dimen0 = \wd0
+ \else
+ \dimen0 = 1.5em
+ \fi
+ \hbox to \dimen0{%
+ \hskip 0pt plus.25fil
+ .\hskip 0pt plus1fil
+ .\hskip 0pt plus1fil
+ .\hskip 0pt plus.5fil
+ }%
+}
+
+% @enddots{} is an end-of-sentence ellipsis.
+%
+\def\enddots{%
+ \dots
+ \spacefactor=\endofsentencespacefactor
+}
+
+% @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
+%
+% Since these characters are used in examples, they should be an even number of
+% \tt widths. Each \tt character is 1en, so two makes it 1em.
+%
+\def\point{$\star$}
+\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}}
+\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
+\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}}
+\def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
+\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+
+% The @error{} command.
+% Adapted from the TeXbook's \boxit.
+%
+\newbox\errorbox
+%
+{\tentt \global\dimen0 = 3em}% Width of the box.
+\dimen2 = .55pt % Thickness of rules
+% The text. (`r' is open on the right, `e' somewhat less so on the left.)
+\setbox0 = \hbox{\kern-.75pt \reducedsf \putworderror\kern-1.5pt}
+%
+\setbox\errorbox=\hbox to \dimen0{\hfil
+ \hsize = \dimen0 \advance\hsize by -5.8pt % Space to left+right.
+ \advance\hsize by -2\dimen2 % Rules.
+ \vbox{%
+ \hrule height\dimen2
+ \hbox{\vrule width\dimen2 \kern3pt % Space to left of text.
+ \vtop{\kern2.4pt \box0 \kern2.4pt}% Space above/below.
+ \kern3pt\vrule width\dimen2}% Space to right.
+ \hrule height\dimen2}
+ \hfil}
+%
+\def\error{\leavevmode\lower.7ex\copy\errorbox}
+
+% @pounds{} is a sterling sign, which Knuth put in the CM italic font.
+%
+\def\pounds{{\it\$}}
+
+% @euro{} comes from a separate font, depending on the current style.
+% We use the free feym* fonts from the eurosym package by Henrik
+% 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
+ % bold:
+ \font\thiseurofont = \ifusingit{feybo10}{feybr10} at \eurosize
+ \else
+ % regular:
+ \font\thiseurofont = \ifusingit{feymo10}{feymr10} at \eurosize
+ \fi
+ \thiseurofont
+}
+
+% 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}}
+\def\guillemotright{\guillemetright}
+\def\guilsinglleft{{\ecfont \char"0E}}
+\def\guilsinglright{{\ecfont \char"0F}}
+\def\quotedblbase{{\ecfont \char"12}}
+\def\quotesinglbase{{\ecfont \char"0D}}
+%
+% This positioning is not perfect (see the ogonek LaTeX package), but
+% 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.
+\def\ogonek#1{{%
+ \def\temp{#1}%
+ \ifx\temp\macrocharA\Aogonek
+ \else\ifx\temp\macrochara\aogonek
+ \else\ifx\temp\macrocharE\Eogonek
+ \else\ifx\temp\macrochare\eogonek
+ \else
+ \ecfont \setbox0=\hbox{#1}%
+ \ifdim\ht0=1ex\accent"0C #1%
+ \else\ooalign{\unhbox0\crcr\hidewidth\char"0C \hidewidth}%
+ \fi
+ \fi\fi\fi\fi
+ }%
+}
+\def\Aogonek{{\ecfont \char"81}}\def\macrocharA{A}
+\def\aogonek{{\ecfont \char"A1}}\def\macrochara{a}
+\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
+ % quotes to documents typeset with CM, where we lose kerning), so
+ % hopefully nobody will notice/care.
+ \edef\ecsize{\csname\curfontsize ecsize\endcsname}%
+ \edef\nominalsize{\csname\curfontsize nominalsize\endcsname}%
+ \ifx\curfontstyle\bfstylename
+ % bold:
+ \font\thisecfont = ecb\ifusingit{i}{x}\ecsize \space at \nominalsize
+ \else
+ % regular:
+ \font\thisecfont = ec\ifusingit{ti}{rm}\ecsize \space at \nominalsize
+ \fi
+ \thisecfont
+}
+
+% @registeredsymbol - R in a circle. The font for the R should really
+% be smaller yet, but lllsize is the best we can do for now.
+% Adapted from the plain.tex definition of \copyright.
+%
+\def\registeredsymbol{%
+ $^{{\ooalign{\hfil\raise.07ex\hbox{\selectfonts\lllsize R}%
+ \hfil\crcr\Orb}}%
+ }$%
+}
+
+% @textdegree - the normal degrees sign.
+%
+\def\textdegree{$^\circ$}
+
+% 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\thisisundefined
+\def\Orb{\mathhexbox20D}
+\fi
+
+% Quotes.
+\chardef\quotedblleft="5C
+\chardef\quotedblright=`\"
+\chardef\quoteleft=`\`
+\chardef\quoteright=`\'
+
+
+\message{page headings,}
+
+\newskip\titlepagetopglue \titlepagetopglue = 1.5in
+\newskip\titlepagebottomglue \titlepagebottomglue = 2pc
+
+% First the title page. Must do @settitle before @titlepage.
+\newif\ifseenauthor
+\newif\iffinishedtitlepage
+
+% Do an implicit @contents or @shortcontents after @end titlepage if the
+% user says @setcontentsaftertitlepage or @setshortcontentsaftertitlepage.
+%
+\newif\ifsetcontentsaftertitlepage
+ \let\setcontentsaftertitlepage = \setcontentsaftertitlepagetrue
+\newif\ifsetshortcontentsaftertitlepage
+ \let\setshortcontentsaftertitlepage = \setshortcontentsaftertitlepagetrue
+
+\parseargdef\shorttitlepage{%
+ \begingroup \hbox{}\vskip 1.5in \chaprm \centerline{#1}%
+ \endgroup\page\hbox{}\page}
+
+\envdef\titlepage{%
+ % Open one extra group, as we want to close it in the middle of \Etitlepage.
+ \begingroup
+ \parindent=0pt \textfonts
+ % Leave some space at the very top of the page.
+ \vglue\titlepagetopglue
+ % No rule at page bottom unless we print one at the top with @title.
+ \finishedtitlepagetrue
+ %
+ % Most title ``pages'' are actually two pages long, with space
+ % at the top of the second. We don't want the ragged left on the second.
+ \let\oldpage = \page
+ \def\page{%
+ \iffinishedtitlepage\else
+ \finishtitlepage
+ \fi
+ \let\page = \oldpage
+ \page
+ \null
+ }%
+}
+
+\def\Etitlepage{%
+ \iffinishedtitlepage\else
+ \finishtitlepage
+ \fi
+ % It is important to do the page break before ending the group,
+ % because the headline and footline are only empty inside the group.
+ % If we use the new definition of \page, we always get a blank page
+ % after the title page, which we certainly don't want.
+ \oldpage
+ \endgroup
+ %
+ % Need this before the \...aftertitlepage checks so that if they are
+ % in effect the toc pages will come out with page numbers.
+ \HEADINGSon
+ %
+ % If they want short, they certainly want long too.
+ \ifsetshortcontentsaftertitlepage
+ \shortcontents
+ \contents
+ \global\let\shortcontents = \relax
+ \global\let\contents = \relax
+ \fi
+ %
+ \ifsetcontentsaftertitlepage
+ \contents
+ \global\let\contents = \relax
+ \global\let\shortcontents = \relax
+ \fi
+}
+
+\def\finishtitlepage{%
+ \vskip4pt \hrule height 2pt width \hsize
+ \vskip\titlepagebottomglue
+ \finishedtitlepagetrue
+}
+
+% Macros to be used within @titlepage:
+
+\let\subtitlerm=\tenrm
+\def\subtitlefont{\subtitlerm \normalbaselineskip = 13pt \normalbaselines}
+
+\parseargdef\title{%
+ \checkenv\titlepage
+ \leftline{\titlefonts\rmisbold #1}
+ % print a rule at the page bottom also.
+ \finishedtitlepagefalse
+ \vskip4pt \hrule height 4pt width \hsize \vskip4pt
+}
+
+\parseargdef\subtitle{%
+ \checkenv\titlepage
+ {\subtitlefont \rightline{#1}}%
+}
+
+% @author should come last, but may come many times.
+% It can also be used inside @quotation.
+%
+\parseargdef\author{%
+ \def\temp{\quotation}%
+ \ifx\thisenv\temp
+ \def\quotationauthor{#1}% printed in \Equotation.
+ \else
+ \checkenv\titlepage
+ \ifseenauthor\else \vskip 0pt plus 1filll \seenauthortrue \fi
+ {\secfonts\rmisbold \leftline{#1}}%
+ \fi
+}
+
+
+% Set up page headings and footings.
+
+\let\thispage=\folio
+
+\newtoks\evenheadline % headline on even pages
+\newtoks\oddheadline % headline on odd pages
+\newtoks\evenfootline % footline on even pages
+\newtoks\oddfootline % footline on odd pages
+
+% Now make TeX use those variables
+\headline={{\textfonts\rm \ifodd\pageno \the\oddheadline
+ \else \the\evenheadline \fi}}
+\footline={{\textfonts\rm \ifodd\pageno \the\oddfootline
+ \else \the\evenfootline \fi}\HEADINGShook}
+\let\HEADINGShook=\relax
+
+% Commands to set those variables.
+% For example, this is what @headings on does
+% @evenheading @thistitle|@thispage|@thischapter
+% @oddheading @thischapter|@thispage|@thistitle
+% @evenfooting @thisfile||
+% @oddfooting ||@thisfile
+
+
+\def\evenheading{\parsearg\evenheadingxxx}
+\def\evenheadingxxx #1{\evenheadingyyy #1\|\|\|\|\finish}
+\def\evenheadingyyy #1\|#2\|#3\|#4\finish{%
+\global\evenheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+
+\def\oddheading{\parsearg\oddheadingxxx}
+\def\oddheadingxxx #1{\oddheadingyyy #1\|\|\|\|\finish}
+\def\oddheadingyyy #1\|#2\|#3\|#4\finish{%
+\global\oddheadline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+
+\parseargdef\everyheading{\oddheadingxxx{#1}\evenheadingxxx{#1}}%
+
+\def\evenfooting{\parsearg\evenfootingxxx}
+\def\evenfootingxxx #1{\evenfootingyyy #1\|\|\|\|\finish}
+\def\evenfootingyyy #1\|#2\|#3\|#4\finish{%
+\global\evenfootline={\rlap{\centerline{#2}}\line{#1\hfil#3}}}
+
+\def\oddfooting{\parsearg\oddfootingxxx}
+\def\oddfootingxxx #1{\oddfootingyyy #1\|\|\|\|\finish}
+\def\oddfootingyyy #1\|#2\|#3\|#4\finish{%
+ \global\oddfootline = {\rlap{\centerline{#2}}\line{#1\hfil#3}}%
+ %
+ % Leave some space for the footline. Hopefully ok to assume
+ % @evenfooting will not be used by itself.
+ \global\advance\pageheight by -12pt
+ \global\advance\vsize by -12pt
+}
+
+\parseargdef\everyfooting{\oddfootingxxx{#1}\evenfootingxxx{#1}}
+
+% @evenheadingmarks top \thischapter <- chapter at the top of a page
+% @evenheadingmarks bottom \thischapter <- chapter at the bottom of a page
+%
+% The same set of arguments for:
+%
+% @oddheadingmarks
+% @evenfootingmarks
+% @oddfootingmarks
+% @everyheadingmarks
+% @everyfootingmarks
+
+\def\evenheadingmarks{\headingmarks{even}{heading}}
+\def\oddheadingmarks{\headingmarks{odd}{heading}}
+\def\evenfootingmarks{\headingmarks{even}{footing}}
+\def\oddfootingmarks{\headingmarks{odd}{footing}}
+\def\everyheadingmarks#1 {\headingmarks{even}{heading}{#1}
+ \headingmarks{odd}{heading}{#1} }
+\def\everyfootingmarks#1 {\headingmarks{even}{footing}{#1}
+ \headingmarks{odd}{footing}{#1} }
+% #1 = even/odd, #2 = heading/footing, #3 = top/bottom.
+\def\headingmarks#1#2#3 {%
+ \expandafter\let\expandafter\temp \csname get#3headingmarks\endcsname
+ \global\expandafter\let\csname get#1#2marks\endcsname \temp
+}
+
+\everyheadingmarks bottom
+\everyfootingmarks bottom
+
+% @headings double turns headings on for double-sided printing.
+% @headings single turns headings on for single-sided printing.
+% @headings off turns them off.
+% @headings on same as @headings double, retained for compatibility.
+% @headings after turns on double-sided headings after this page.
+% @headings doubleafter turns on double-sided headings after this page.
+% @headings singleafter turns on single-sided headings after this page.
+% By default, they are off at the start of a document,
+% and turned `on' after @end titlepage.
+
+\def\headings #1 {\csname HEADINGS#1\endcsname}
+
+\def\headingsoff{% non-global headings elimination
+ \evenheadline={\hfil}\evenfootline={\hfil}%
+ \oddheadline={\hfil}\oddfootline={\hfil}%
+}
+
+\def\HEADINGSoff{{\globaldefs=1 \headingsoff}} % global setting
+\HEADINGSoff % it's the default
+
+% When we turn headings on, set the page number to 1.
+% For double-sided printing, put current file name in lower left corner,
+% chapter name on inside top of right hand pages, document
+% title on inside top of left hand pages, and page numbers on outside top
+% edge of all pages.
+\def\HEADINGSdouble{%
+\global\pageno=1
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\folio\hfil\thistitle}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
+}
+\let\contentsalignmacro = \chappager
+
+% For single-sided printing, chapter title goes across top left of page,
+% page number on top right.
+\def\HEADINGSsingle{%
+\global\pageno=1
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
+}
+\def\HEADINGSon{\HEADINGSdouble}
+
+\def\HEADINGSafter{\let\HEADINGShook=\HEADINGSdoublex}
+\let\HEADINGSdoubleafter=\HEADINGSafter
+\def\HEADINGSdoublex{%
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\folio\hfil\thistitle}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chapoddpage
+}
+
+\def\HEADINGSsingleafter{\let\HEADINGShook=\HEADINGSsinglex}
+\def\HEADINGSsinglex{%
+\global\evenfootline={\hfil}
+\global\oddfootline={\hfil}
+\global\evenheadline={\line{\thischapter\hfil\folio}}
+\global\oddheadline={\line{\thischapter\hfil\folio}}
+\global\let\contentsalignmacro = \chappager
+}
+
+% Subroutines used in generating headings
+% This produces Day Month Year style of output.
+% Only define if not already defined, in case a txi-??.tex file has set
+% up a different format (e.g., txi-cs.tex does this).
+\ifx\today\thisisundefined
+\def\today{%
+ \number\day\space
+ \ifcase\month
+ \or\putwordMJan\or\putwordMFeb\or\putwordMMar\or\putwordMApr
+ \or\putwordMMay\or\putwordMJun\or\putwordMJul\or\putwordMAug
+ \or\putwordMSep\or\putwordMOct\or\putwordMNov\or\putwordMDec
+ \fi
+ \space\number\year}
+\fi
+
+% @settitle line... specifies the title of the document, for headings.
+% It generates no output of its own.
+\def\thistitle{\putwordNoTitle}
+\def\settitle{\parsearg{\gdef\thistitle}}
+
+
+\message{tables,}
+% Tables -- @table, @ftable, @vtable, @item(x).
+
+% default indentation of table text
+\newdimen\tableindent \tableindent=.8in
+% default indentation of @itemize and @enumerate text
+\newdimen\itemindent \itemindent=.3in
+% margin between end of table item and start of table text.
+\newdimen\itemmargin \itemmargin=.1in
+
+% used internally for \itemindent minus \itemmargin
+\newdimen\itemmax
+
+% Note @table, @ftable, and @vtable define @item, @itemx, etc., with
+% these defs.
+% They also define \itemindex
+% to index the item name in whatever manner is desired (perhaps none).
+
+\newif\ifitemxneedsnegativevskip
+
+\def\itemxpar{\par\ifitemxneedsnegativevskip\nobreak\vskip-\parskip\nobreak\fi}
+
+\def\internalBitem{\smallbreak \parsearg\itemzzz}
+\def\internalBitemx{\itemxpar \parsearg\itemzzz}
+
+\def\itemzzz #1{\begingroup %
+ \advance\hsize by -\rightskip
+ \advance\hsize by -\tableindent
+ \setbox0=\hbox{\itemindicate{#1}}%
+ \itemindex{#1}%
+ \nobreak % This prevents a break before @itemx.
+ %
+ % If the item text does not fit in the space we have, put it on a line
+ % by itself, and do not allow a page break either before or after that
+ % line. We do not start a paragraph here because then if the next
+ % command is, e.g., @kindex, the whatsit would get put into the
+ % horizontal list on a line by itself, resulting in extra blank space.
+ \ifdim \wd0>\itemmax
+ %
+ % Make this a paragraph so we get the \parskip glue and wrapping,
+ % but leave it ragged-right.
+ \begingroup
+ \advance\leftskip by-\tableindent
+ \advance\hsize by\tableindent
+ \advance\rightskip by0pt plus1fil\relax
+ \leavevmode\unhbox0\par
+ \endgroup
+ %
+ % We're going to be starting a paragraph, but we don't want the
+ % \parskip glue -- logically it's part of the @item we just started.
+ \nobreak \vskip-\parskip
+ %
+ % Stop a page break at the \parskip glue coming up. However, if
+ % what follows is an environment such as @example, there will be no
+ % \parskip glue; then the negative vskip we just inserted would
+ % 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
+ \else
+ % The item text fits into the space. Start a paragraph, so that the
+ % following text (if any) will end up on the same line.
+ \noindent
+ % Do this with kerns and \unhbox so that if there is a footnote in
+ % the item text, it can migrate to the main vertical list and
+ % eventually be printed.
+ \nobreak\kern-\tableindent
+ \dimen0 = \itemmax \advance\dimen0 by \itemmargin \advance\dimen0 by -\wd0
+ \unhbox0
+ \nobreak\kern\dimen0
+ \endgroup
+ \itemxneedsnegativevskiptrue
+ \fi
+}
+
+\def\item{\errmessage{@item while not in a list environment}}
+\def\itemx{\errmessage{@itemx while not in a list environment}}
+
+% @table, @ftable, @vtable.
+\envdef\table{%
+ \let\itemindex\gobble
+ \tablecheck{table}%
+}
+\envdef\ftable{%
+ \def\itemindex ##1{\doind {fn}{\code{##1}}}%
+ \tablecheck{ftable}%
+}
+\envdef\vtable{%
+ \def\itemindex ##1{\doind {vr}{\code{##1}}}%
+ \tablecheck{vtable}%
+}
+\def\tablecheck#1{%
+ \ifnum \the\catcode`\^^M=\active
+ \endgroup
+ \errmessage{This command won't work in this context; perhaps the problem is
+ that we are \inenvironment\thisenv}%
+ \def\next{\doignore{#1}}%
+ \else
+ \let\next\tablex
+ \fi
+ \next
+}
+\def\tablex#1{%
+ \def\itemindicate{#1}%
+ \parsearg\tabley
+}
+\def\tabley#1{%
+ {%
+ \makevalueexpandable
+ \edef\temp{\noexpand\tablez #1\space\space\space}%
+ \expandafter
+ }\temp \endtablez
+}
+\def\tablez #1 #2 #3 #4\endtablez{%
+ \aboveenvbreak
+ \ifnum 0#1>0 \advance \leftskip by #1\mil \fi
+ \ifnum 0#2>0 \tableindent=#2\mil \fi
+ \ifnum 0#3>0 \advance \rightskip by #3\mil \fi
+ \itemmax=\tableindent
+ \advance \itemmax by -\itemmargin
+ \advance \leftskip by \tableindent
+ \exdentamount=\tableindent
+ \parindent = 0pt
+ \parskip = \smallskipamount
+ \ifdim \parskip=0pt \parskip=2pt \fi
+ \let\item = \internalBitem
+ \let\itemx = \internalBitemx
+}
+\def\Etable{\endgraf\afterenvbreak}
+\let\Eftable\Etable
+\let\Evtable\Etable
+\let\Eitemize\Etable
+\let\Eenumerate\Etable
+
+% This is the counter used by @enumerate, which is really @itemize
+
+\newcount \itemno
+
+\envdef\itemize{\parsearg\doitemize}
+
+\def\doitemize#1{%
+ \aboveenvbreak
+ \itemmax=\itemindent
+ \advance\itemmax by -\itemmargin
+ \advance\leftskip by \itemindent
+ \exdentamount=\itemindent
+ \parindent=0pt
+ \parskip=\smallskipamount
+ \ifdim\parskip=0pt \parskip=2pt \fi
+ %
+ % Try typesetting the item mark that if the document erroneously says
+ % something like @itemize @samp (intending @table), there's an error
+ % right away at the @itemize. It's not the best error message in the
+ % world, but it's better than leaving it to the @item. This means if
+ % the user wants an empty mark, they have to say @w{} not just @w.
+ \def\itemcontents{#1}%
+ \setbox0 = \hbox{\itemcontents}%
+ %
+ % @itemize with no arg is equivalent to @itemize @bullet.
+ \ifx\itemcontents\empty\def\itemcontents{\bullet}\fi
+ %
+ \let\item=\itemizeitem
+}
+
+% Definition of @item while inside @itemize and @enumerate.
+%
+\def\itemizeitem{%
+ \advance\itemno by 1 % for enumerations
+ {\let\par=\endgraf \smallbreak}% reasonable place to break
+ {%
+ % If the document has an @itemize directly after a section title, a
+ % \nobreak will be last on the list, and \sectionheading will have
+ % done a \vskip-\parskip. In that case, we don't want to zero
+ % parskip, or the item text will crash with the heading. On the
+ % other hand, when there is normal text preceding the item (as there
+ % usually is), we do want to zero parskip, or there would be too much
+ % space. In that case, we won't have a \nobreak before. At least
+ % that's the theory.
+ \ifnum\lastpenalty<10000 \parskip=0in \fi
+ \noindent
+ \hbox to 0pt{\hss \itemcontents \kern\itemmargin}%
+ %
+ \vadjust{\penalty 1200}}% not good to break after first line of item.
+ \flushcr
+}
+
+% \splitoff TOKENS\endmark defines \first to be the first token in
+% TOKENS, and \rest to be the remainder.
+%
+\def\splitoff#1#2\endmark{\def\first{#1}\def\rest{#2}}%
+
+% Allow an optional argument of an uppercase letter, lowercase letter,
+% or number, to specify the first label in the enumerated list. No
+% argument is the same as `1'.
+%
+\envparseargdef\enumerate{\enumeratey #1 \endenumeratey}
+\def\enumeratey #1 #2\endenumeratey{%
+ % If we were given no argument, pretend we were given `1'.
+ \def\thearg{#1}%
+ \ifx\thearg\empty \def\thearg{1}\fi
+ %
+ % Detect if the argument is a single token. If so, it might be a
+ % letter. Otherwise, the only valid thing it can be is a number.
+ % (We will always have one token, because of the test we just made.
+ % This is a good thing, since \splitoff doesn't work given nothing at
+ % all -- the first parameter is undelimited.)
+ \expandafter\splitoff\thearg\endmark
+ \ifx\rest\empty
+ % Only one token in the argument. It could still be anything.
+ % A ``lowercase letter'' is one whose \lccode is nonzero.
+ % An ``uppercase letter'' is one whose \lccode is both nonzero, and
+ % not equal to itself.
+ % Otherwise, we assume it's a number.
+ %
+ % We need the \relax at the end of the \ifnum lines to stop TeX from
+ % continuing to look for a <number>.
+ %
+ \ifnum\lccode\expandafter`\thearg=0\relax
+ \numericenumerate % a number (we hope)
+ \else
+ % It's a letter.
+ \ifnum\lccode\expandafter`\thearg=\expandafter`\thearg\relax
+ \lowercaseenumerate % lowercase letter
+ \else
+ \uppercaseenumerate % uppercase letter
+ \fi
+ \fi
+ \else
+ % Multiple tokens in the argument. We hope it's a number.
+ \numericenumerate
+ \fi
+}
+
+% An @enumerate whose labels are integers. The starting integer is
+% given in \thearg.
+%
+\def\numericenumerate{%
+ \itemno = \thearg
+ \startenumeration{\the\itemno}%
+}
+
+% The starting (lowercase) letter is in \thearg.
+\def\lowercaseenumerate{%
+ \itemno = \expandafter`\thearg
+ \startenumeration{%
+ % Be sure we're not beyond the end of the alphabet.
+ \ifnum\itemno=0
+ \errmessage{No more lowercase letters in @enumerate; get a bigger
+ alphabet}%
+ \fi
+ \char\lccode\itemno
+ }%
+}
+
+% The starting (uppercase) letter is in \thearg.
+\def\uppercaseenumerate{%
+ \itemno = \expandafter`\thearg
+ \startenumeration{%
+ % Be sure we're not beyond the end of the alphabet.
+ \ifnum\itemno=0
+ \errmessage{No more uppercase letters in @enumerate; get a bigger
+ alphabet}
+ \fi
+ \char\uccode\itemno
+ }%
+}
+
+% Call \doitemize, adding a period to the first argument and supplying the
+% common last two arguments. Also subtract one from the initial value in
+% \itemno, since @item increments \itemno.
+%
+\def\startenumeration#1{%
+ \advance\itemno by -1
+ \doitemize{#1.}\flushcr
+}
+
+% @alphaenumerate and @capsenumerate are abbreviations for giving an arg
+% to @enumerate.
+%
+\def\alphaenumerate{\enumerate{a}}
+\def\capsenumerate{\enumerate{A}}
+\def\Ealphaenumerate{\Eenumerate}
+\def\Ecapsenumerate{\Eenumerate}
+
+
+% @multitable macros
+% Amy Hendrickson, 8/18/94, 3/6/96
+%
+% @multitable ... @end multitable will make as many columns as desired.
+% Contents of each column will wrap at width given in preamble. Width
+% can be specified either with sample text given in a template line,
+% or in percent of \hsize, the current width of text on page.
+
+% Table can continue over pages but will only break between lines.
+
+% To make preamble:
+%
+% Either define widths of columns in terms of percent of \hsize:
+% @multitable @columnfractions .25 .3 .45
+% @item ...
+%
+% Numbers following @columnfractions are the percent of the total
+% current hsize to be used for each column. You may use as many
+% columns as desired.
+
+
+% Or use a template:
+% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+% @item ...
+% using the widest term desired in each column.
+
+% Each new table line starts with @item, each subsequent new column
+% starts with @tab. Empty columns may be produced by supplying @tab's
+% with nothing between them for as many times as empty columns are needed,
+% ie, @tab@tab@tab will produce two empty columns.
+
+% @item, @tab do not need to be on their own lines, but it will not hurt
+% if they are.
+
+% Sample multitable:
+
+% @multitable {Column 1 template} {Column 2 template} {Column 3 template}
+% @item first col stuff @tab second col stuff @tab third col
+% @item
+% first col stuff
+% @tab
+% second col stuff
+% @tab
+% third col
+% @item first col stuff @tab second col stuff
+% @tab Many paragraphs of text may be used in any column.
+%
+% They will wrap at the width determined by the template.
+% @item@tab@tab This will be in third column.
+% @end multitable
+
+% Default dimensions may be reset by user.
+% @multitableparskip is vertical space between paragraphs in table.
+% @multitableparindent is paragraph indent in table.
+% @multitablecolmargin is horizontal space to be left between columns.
+% @multitablelinespace is space to leave between table items, baseline
+% to baseline.
+% 0pt means it depends on current normal line spacing.
+%
+\newskip\multitableparskip
+\newskip\multitableparindent
+\newdimen\multitablecolspace
+\newskip\multitablelinespace
+\multitableparskip=0pt
+\multitableparindent=6pt
+\multitablecolspace=12pt
+\multitablelinespace=0pt
+
+% Macros used to set up halign preamble:
+%
+\let\endsetuptable\relax
+\def\xendsetuptable{\endsetuptable}
+\let\columnfractions\relax
+\def\xcolumnfractions{\columnfractions}
+\newif\ifsetpercent
+
+% #1 is the @columnfraction, usually a decimal number like .5, but might
+% be just 1. We just use it, whatever it is.
+%
+\def\pickupwholefraction#1 {%
+ \global\advance\colcount by 1
+ \expandafter\xdef\csname col\the\colcount\endcsname{#1\hsize}%
+ \setuptable
+}
+
+\newcount\colcount
+\def\setuptable#1{%
+ \def\firstarg{#1}%
+ \ifx\firstarg\xendsetuptable
+ \let\go = \relax
+ \else
+ \ifx\firstarg\xcolumnfractions
+ \global\setpercenttrue
+ \else
+ \ifsetpercent
+ \let\go\pickupwholefraction
+ \else
+ \global\advance\colcount by 1
+ \setbox0=\hbox{#1\unskip\space}% Add a normal word space as a
+ % separator; typically that is always in the input, anyway.
+ \expandafter\xdef\csname col\the\colcount\endcsname{\the\wd0}%
+ \fi
+ \fi
+ \ifx\go\pickupwholefraction
+ % Put the argument back for the \pickupwholefraction call, so
+ % we'll always have a period there to be parsed.
+ \def\go{\pickupwholefraction#1}%
+ \else
+ \let\go = \setuptable
+ \fi%
+ \fi
+ \go
+}
+
+% multitable-only commands.
+%
+% @headitem starts a heading row, which we typeset in bold.
+% Assignments have to be global since we are inside the implicit group
+% of an alignment entry. \everycr resets \everytab so we don't have to
+% undo it ourselves.
+\def\headitemfont{\b}% for people to use in the template row; not changeable
+\def\headitem{%
+ \checkenv\multitable
+ \crcr
+ \global\everytab={\bf}% can't use \headitemfont since the parsing differs
+ \the\everytab % for the first item
+}%
+%
+% A \tab used to include \hskip1sp. But then the space in a template
+% line is not enough. That is bad. So let's go back to just `&' until
+% we again encounter the problem the 1sp was intended to solve.
+% --karl, nathan@acm.org, 20apr99.
+\def\tab{\checkenv\multitable &\the\everytab}%
+
+% @multitable ... @end multitable definitions:
+%
+\newtoks\everytab % insert after every tab.
+%
+\envdef\multitable{%
+ \vskip\parskip
+ \startsavinginserts
+ %
+ % @item within a multitable starts a normal row.
+ % We use \def instead of \let so that if one of the multitable entries
+ % contains an @itemize, we don't choke on the \item (seen as \crcr aka
+ % \endtemplate) expanding \doitemize.
+ \def\item{\crcr}%
+ %
+ \tolerance=9500
+ \hbadness=9500
+ \setmultitablespacing
+ \parskip=\multitableparskip
+ \parindent=\multitableparindent
+ \overfullrule=0pt
+ \global\colcount=0
+ %
+ \everycr = {%
+ \noalign{%
+ \global\everytab={}%
+ \global\colcount=0 % Reset the column counter.
+ % Check for saved footnotes, etc.
+ \checkinserts
+ % Keeps underfull box messages off when table breaks over pages.
+ %\filbreak
+ % Maybe so, but it also creates really weird page breaks when the
+ % table breaks over pages. Wouldn't \vfil be better? Wait until the
+ % problem manifests itself, so it can be fixed for real --karl.
+ }%
+ }%
+ %
+ \parsearg\domultitable
+}
+\def\domultitable#1{%
+ % To parse everything between @multitable and @item:
+ \setuptable#1 \endsetuptable
+ %
+ % This preamble sets up a generic column definition, which will
+ % be used as many times as user calls for columns.
+ % \vtop will set a single line and will also let text wrap and
+ % continue for many paragraphs if desired.
+ \halign\bgroup &%
+ \global\advance\colcount by 1
+ \multistrut
+ \vtop{%
+ % Use the current \colcount to find the correct column width:
+ \hsize=\expandafter\csname col\the\colcount\endcsname
+ %
+ % In order to keep entries from bumping into each other
+ % we will add a \leftskip of \multitablecolspace to all columns after
+ % the first one.
+ %
+ % If a template has been used, we will add \multitablecolspace
+ % to the width of each template entry.
+ %
+ % If the user has set preamble in terms of percent of \hsize we will
+ % use that dimension as the width of the column, and the \leftskip
+ % will keep entries from bumping into each other. Table will start at
+ % left margin and final column will justify at right margin.
+ %
+ % Make sure we don't inherit \rightskip from the outer environment.
+ \rightskip=0pt
+ \ifnum\colcount=1
+ % The first column will be indented with the surrounding text.
+ \advance\hsize by\leftskip
+ \else
+ \ifsetpercent \else
+ % If user has not set preamble in terms of percent of \hsize
+ % we will advance \hsize by \multitablecolspace.
+ \advance\hsize by \multitablecolspace
+ \fi
+ % In either case we will make \leftskip=\multitablecolspace:
+ \leftskip=\multitablecolspace
+ \fi
+ % Ignoring space at the beginning and end avoids an occasional spurious
+ % blank line, when TeX decides to break the line at the space before the
+ % box from the multistrut, so the strut ends up on a line by itself.
+ % For example:
+ % @multitable @columnfractions .11 .89
+ % @item @code{#}
+ % @tab Legal holiday which is valid in major parts of the whole country.
+ % Is automatically provided with highlighting sequences respectively
+ % marking characters.
+ \noindent\ignorespaces##\unskip\multistrut
+ }\cr
+}
+\def\Emultitable{%
+ \crcr
+ \egroup % end the \halign
+ \global\setpercentfalse
+}
+
+\def\setmultitablespacing{%
+ \def\multistrut{\strut}% just use the standard line spacing
+ %
+ % Compute \multitablelinespace (if not defined by user) for use in
+ % \multitableparskip calculation. We used define \multistrut based on
+ % this, but (ironically) that caused the spacing to be off.
+ % See bug-texinfo report from Werner Lemberg, 31 Oct 2004 12:52:20 +0100.
+\ifdim\multitablelinespace=0pt
+\setbox0=\vbox{X}\global\multitablelinespace=\the\baselineskip
+\global\advance\multitablelinespace by-\ht0
+\fi
+% Test to see if parskip is larger than space between lines of
+% table. If not, do nothing.
+% If so, set to same dimension as multitablelinespace.
+\ifdim\multitableparskip>\multitablelinespace
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
+ % than skip between lines in the table.
+\fi%
+\ifdim\multitableparskip=0pt
+\global\multitableparskip=\multitablelinespace
+\global\advance\multitableparskip-7pt % to keep parskip somewhat smaller
+ % than skip between lines in the table.
+\fi}
+
+
+\message{conditionals,}
+
+% @iftex, @ifnotdocbook, @ifnothtml, @ifnotinfo, @ifnotplaintext,
+% @ifnotxml always succeed. They currently do nothing; we don't
+% attempt to check whether the conditionals are properly nested. But we
+% have to remember that they are conditionals, so that @end doesn't
+% attempt to close an environment group.
+%
+\def\makecond#1{%
+ \expandafter\let\csname #1\endcsname = \relax
+ \expandafter\let\csname iscond.#1\endcsname = 1
+}
+\makecond{iftex}
+\makecond{ifnotdocbook}
+\makecond{ifnothtml}
+\makecond{ifnotinfo}
+\makecond{ifnotplaintext}
+\makecond{ifnotxml}
+
+% Ignore @ignore, @ifhtml, @ifinfo, and the like.
+%
+\def\direntry{\doignore{direntry}}
+\def\documentdescription{\doignore{documentdescription}}
+\def\docbook{\doignore{docbook}}
+\def\html{\doignore{html}}
+\def\ifdocbook{\doignore{ifdocbook}}
+\def\ifhtml{\doignore{ifhtml}}
+\def\ifinfo{\doignore{ifinfo}}
+\def\ifnottex{\doignore{ifnottex}}
+\def\ifplaintext{\doignore{ifplaintext}}
+\def\ifxml{\doignore{ifxml}}
+\def\ignore{\doignore{ignore}}
+\def\menu{\doignore{menu}}
+\def\xml{\doignore{xml}}
+
+% Ignore text until a line `@end #1', keeping track of nested conditionals.
+%
+% A count to remember the depth of nesting.
+\newcount\doignorecount
+
+\def\doignore#1{\begingroup
+ % Scan in ``verbatim'' mode:
+ \obeylines
+ \catcode`\@ = \other
+ \catcode`\{ = \other
+ \catcode`\} = \other
+ %
+ % Make sure that spaces turn into tokens that match what \doignoretext wants.
+ \spaceisspace
+ %
+ % Count number of #1's that we've seen.
+ \doignorecount = 0
+ %
+ % Swallow text until we reach the matching `@end #1'.
+ \dodoignore{#1}%
+}
+
+{ \catcode`_=11 % We want to use \_STOP_ which cannot appear in texinfo source.
+ \obeylines %
+ %
+ \gdef\dodoignore#1{%
+ % #1 contains the command name as a string, e.g., `ifinfo'.
+ %
+ % Define a command to find the next `@end #1'.
+ \long\def\doignoretext##1^^M@end #1{%
+ \doignoretextyyy##1^^M@#1\_STOP_}%
+ %
+ % And this command to find another #1 command, at the beginning of a
+ % line. (Otherwise, we would consider a line `@c @ifset', for
+ % example, to count as an @ifset for nesting.)
+ \long\def\doignoretextyyy##1^^M@#1##2\_STOP_{\doignoreyyy{##2}\_STOP_}%
+ %
+ % And now expand that command.
+ \doignoretext ^^M%
+ }%
+}
+
+\def\doignoreyyy#1{%
+ \def\temp{#1}%
+ \ifx\temp\empty % Nothing found.
+ \let\next\doignoretextzzz
+ \else % Found a nested condition, ...
+ \advance\doignorecount by 1
+ \let\next\doignoretextyyy % ..., look for another.
+ % If we're here, #1 ends with ^^M\ifinfo (for example).
+ \fi
+ \next #1% the token \_STOP_ is present just after this macro.
+}
+
+% We have to swallow the remaining "\_STOP_".
+%
+\def\doignoretextzzz#1{%
+ \ifnum\doignorecount = 0 % We have just found the outermost @end.
+ \let\next\enddoignore
+ \else % Still inside a nested condition.
+ \advance\doignorecount by -1
+ \let\next\doignoretext % Look for the next @end.
+ \fi
+ \next
+}
+
+% Finish off ignored text.
+{ \obeylines%
+ % Ignore anything after the last `@end #1'; this matters in verbatim
+ % environments, where otherwise the newline after an ignored conditional
+ % would result in a blank line in the output.
+ \gdef\enddoignore#1^^M{\endgroup\ignorespaces}%
+}
+
+
+% @set VAR sets the variable VAR to an empty value.
+% @set VAR REST-OF-LINE sets VAR to the value REST-OF-LINE.
+%
+% Since we want to separate VAR from REST-OF-LINE (which might be
+% empty), we can't just use \parsearg; we have to insert a space of our
+% own to delimit the rest of the line, and then take it out again if we
+% didn't need it.
+% We rely on the fact that \parsearg sets \catcode`\ =10.
+%
+\parseargdef\set{\setyyy#1 \endsetyyy}
+\def\setyyy#1 #2\endsetyyy{%
+ {%
+ \makevalueexpandable
+ \def\temp{#2}%
+ \edef\next{\gdef\makecsname{SET#1}}%
+ \ifx\temp\empty
+ \next{}%
+ \else
+ \setzzz#2\endsetzzz
+ \fi
+ }%
+}
+% Remove the trailing space \setxxx inserted.
+\def\setzzz#1 \endsetzzz{\next{#1}}
+
+% @clear VAR clears (i.e., unsets) the variable VAR.
+%
+\parseargdef\clear{%
+ {%
+ \makevalueexpandable
+ \global\expandafter\let\csname SET#1\endcsname=\relax
+ }%
+}
+
+% @value{foo} gets the text saved in variable foo.
+\def\value{\begingroup\makevalueexpandable\valuexxx}
+\def\valuexxx#1{\expandablevalue{#1}\endgroup}
+{
+ \catcode`\- = \active \catcode`\_ = \active
+ %
+ \gdef\makevalueexpandable{%
+ \let\value = \expandablevalue
+ % We don't want these characters active, ...
+ \catcode`\-=\other \catcode`\_=\other
+ % ..., but we might end up with active ones in the argument if
+ % we're called from @code, as @code{@value{foo-bar_}}, though.
+ % So \let them to their normal equivalents.
+ \let-\realdash \let_\normalunderscore
+ }
+}
+
+% We have this subroutine so that we can handle at least some @value's
+% properly in indexes (we call \makevalueexpandable in \indexdummies).
+% The command has to be fully expandable (if the variable is set), since
+% the result winds up in the index file. This means that if the
+% variable's value contains other Texinfo commands, it's almost certain
+% it will fail (although perhaps we could fix that with sufficient work
+% to do a one-level expansion on the result, instead of complete).
+%
+\def\expandablevalue#1{%
+ \expandafter\ifx\csname SET#1\endcsname\relax
+ {[No value for ``#1'']}%
+ \message{Variable `#1', used in @value, is not set.}%
+ \else
+ \csname SET#1\endcsname
+ \fi
+}
+
+% @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
+% with @set.
+%
+% To get special treatment of `@end ifset,' call \makeond and the redefine.
+%
+\makecond{ifset}
+\def\ifset{\parsearg{\doifset{\let\next=\ifsetfail}}}
+\def\doifset#1#2{%
+ {%
+ \makevalueexpandable
+ \let\next=\empty
+ \expandafter\ifx\csname SET#2\endcsname\relax
+ #1% If not set, redefine \next.
+ \fi
+ \expandafter
+ }\next
+}
+\def\ifsetfail{\doignore{ifset}}
+
+% @ifclear VAR ... @end ifclear reads the `...' iff VAR has never been
+% defined with @set, or has been undefined with @clear.
+%
+% The `\else' inside the `\doifset' parameter is a trick to reuse the
+% above code: if the variable is not set, do nothing, if it is set,
+% then redefine \next to \ifclearfail.
+%
+\makecond{ifclear}
+\def\ifclear{\parsearg{\doifset{\else \let\next=\ifclearfail}}}
+\def\ifclearfail{\doignore{ifclear}}
+
+% @dircategory CATEGORY -- specify a category of the dir file
+% which this file should belong to. Ignore this in TeX.
+\let\dircategory=\comment
+
+% @defininfoenclose.
+\let\definfoenclose=\comment
+
+
+\message{indexing,}
+% Index generation facilities
+
+% Define \newwrite to be identical to plain tex's \newwrite
+% except not \outer, so it can be used within macros and \if's.
+\edef\newwrite{\makecsname{ptexnewwrite}}
+
+% \newindex {foo} defines an index named foo.
+% It automatically defines \fooindex such that
+% \fooindex ...rest of line... puts an entry in the index foo.
+% It also defines \fooindfile to be the number of the output channel for
+% the file that accumulates this index. The file's extension is foo.
+% The name of an index should be no more than 2 characters long
+% for the sake of vms.
+%
+\def\newindex#1{%
+ \iflinks
+ \expandafter\newwrite \csname#1indfile\endcsname
+ \openout \csname#1indfile\endcsname \jobname.#1 % Open the file
+ \fi
+ \expandafter\xdef\csname#1index\endcsname{% % Define @#1index
+ \noexpand\doindex{#1}}
+}
+
+% @defindex foo == \newindex{foo}
+%
+\def\defindex{\parsearg\newindex}
+
+% Define @defcodeindex, like @defindex except put all entries in @code.
+%
+\def\defcodeindex{\parsearg\newcodeindex}
+%
+\def\newcodeindex#1{%
+ \iflinks
+ \expandafter\newwrite \csname#1indfile\endcsname
+ \openout \csname#1indfile\endcsname \jobname.#1
+ \fi
+ \expandafter\xdef\csname#1index\endcsname{%
+ \noexpand\docodeindex{#1}}%
+}
+
+
+% @synindex foo bar makes index foo feed into index bar.
+% Do this instead of @defindex foo if you don't want it as a separate index.
+%
+% @syncodeindex foo bar similar, but put all entries made for index foo
+% inside @code.
+%
+\def\synindex#1 #2 {\dosynindex\doindex{#1}{#2}}
+\def\syncodeindex#1 #2 {\dosynindex\docodeindex{#1}{#2}}
+
+% #1 is \doindex or \docodeindex, #2 the index getting redefined (foo),
+% #3 the target index (bar).
+\def\dosynindex#1#2#3{%
+ % Only do \closeout if we haven't already done it, else we'll end up
+ % closing the target index.
+ \expandafter \ifx\csname donesynindex#2\endcsname \relax
+ % The \closeout helps reduce unnecessary open files; the limit on the
+ % Acorn RISC OS is a mere 16 files.
+ \expandafter\closeout\csname#2indfile\endcsname
+ \expandafter\let\csname donesynindex#2\endcsname = 1
+ \fi
+ % redefine \fooindfile:
+ \expandafter\let\expandafter\temp\expandafter=\csname#3indfile\endcsname
+ \expandafter\let\csname#2indfile\endcsname=\temp
+ % redefine \fooindex:
+ \expandafter\xdef\csname#2index\endcsname{\noexpand#1{#3}}%
+}
+
+% Define \doindex, the driver for all \fooindex macros.
+% Argument #1 is generated by the calling \fooindex macro,
+% and it is "foo", the name of the index.
+
+% \doindex just uses \parsearg; it calls \doind for the actual work.
+% This is because \doind is more useful to call from other macros.
+
+% There is also \dosubind {index}{topic}{subtopic}
+% which makes an entry in a two-level index such as the operation index.
+
+\def\doindex#1{\edef\indexname{#1}\parsearg\singleindexer}
+\def\singleindexer #1{\doind{\indexname}{#1}}
+
+% like the previous two, but they put @code around the argument.
+\def\docodeindex#1{\edef\indexname{#1}\parsearg\singlecodeindexer}
+\def\singlecodeindexer #1{\doind{\indexname}{\code{#1}}}
+
+% Take care of Texinfo commands that can appear in an index entry.
+% Since there are some commands we want to expand, and others we don't,
+% we have to laboriously prevent expansion for those that we don't.
+%
+\def\indexdummies{%
+ \escapechar = `\\ % use backslash in output files.
+ \def\@{@}% change to @@ when we switch to @ as escape char in index files.
+ \def\ {\realbackslash\space }%
+ %
+ % Need these unexpandable (because we define \tt as a dummy)
+ % definitions when @{ or @} appear in index entry text. Also, more
+ % complicated, when \tex is in effect and \{ is a \delimiter again.
+ % We can't use \lbracecmd and \rbracecmd because texindex assumes
+ % braces and backslashes are used only as delimiters. Perhaps we
+ % should define @lbrace and @rbrace commands a la @comma.
+ \def\{{{\tt\char123}}%
+ \def\}{{\tt\char125}}%
+ %
+ % I don't entirely understand this, but when an index entry is
+ % generated from a macro call, the \endinput which \scanmacro inserts
+ % causes processing to be prematurely terminated. This is,
+ % apparently, because \indexsorttmp is fully expanded, and \endinput
+ % is an expandable command. The redefinition below makes \endinput
+ % disappear altogether for that purpose -- although logging shows that
+ % 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}
+ % @findex xyz
+ % @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
+ %
+ % Do the redefinitions.
+ \commondummies
+}
+
+% For the aux and toc files, @ is the escape character. So we want to
+% redefine everything using @ as the escape character (instead of
+% \realbackslash, still used for index files). When everything uses @,
+% this will be simpler.
+%
+\def\atdummies{%
+ \def\@{@@}%
+ \def\ {@ }%
+ \let\{ = \lbraceatcmd
+ \let\} = \rbraceatcmd
+ %
+ % Do the redefinitions.
+ \commondummies
+ \otherbackslash
+}
+
+% Called from \indexdummies and \atdummies.
+%
+\def\commondummies{%
+ %
+ % \definedummyword defines \#1 as \string\#1\space, thus effectively
+ % preventing its expansion. This is used only for control words,
+ % not control letters, because the \space would be incorrect for
+ % control characters, but is needed to separate the control word
+ % from whatever follows.
+ %
+ % For control letters, we have \definedummyletter, which omits the
+ % space.
+ %
+ % These can be used both for control words that take an argument and
+ % those that do not. If it is followed by {arg} in the input, then
+ % that will dutifully get written to the index (or wherever).
+ %
+ \def\definedummyword ##1{\def##1{\string##1\space}}%
+ \def\definedummyletter##1{\def##1{\string##1}}%
+ \let\definedummyaccent\definedummyletter
+ %
+ \commondummiesnofonts
+ %
+ \definedummyletter\_%
+ \definedummyletter\-%
+ %
+ % Non-English letters.
+ \definedummyword\AA
+ \definedummyword\AE
+ \definedummyword\DH
+ \definedummyword\L
+ \definedummyword\O
+ \definedummyword\OE
+ \definedummyword\TH
+ \definedummyword\aa
+ \definedummyword\ae
+ \definedummyword\dh
+ \definedummyword\exclamdown
+ \definedummyword\l
+ \definedummyword\o
+ \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
+ \definedummyword\gtr
+ \definedummyword\hat
+ \definedummyword\less
+ \definedummyword\sf
+ \definedummyword\sl
+ \definedummyword\tclose
+ \definedummyword\tt
+ %
+ \definedummyword\LaTeX
+ \definedummyword\TeX
+ %
+ % Assorted special characters.
+ \definedummyword\arrow
+ \definedummyword\bullet
+ \definedummyword\comma
+ \definedummyword\copyright
+ \definedummyword\registeredsymbol
+ \definedummyword\dots
+ \definedummyword\enddots
+ \definedummyword\entrybreak
+ \definedummyword\equiv
+ \definedummyword\error
+ \definedummyword\euro
+ \definedummyword\expansion
+ \definedummyword\geq
+ \definedummyword\guillemetleft
+ \definedummyword\guillemetright
+ \definedummyword\guilsinglleft
+ \definedummyword\guilsinglright
+ \definedummyword\leq
+ \definedummyword\minus
+ \definedummyword\ogonek
+ \definedummyword\pounds
+ \definedummyword\point
+ \definedummyword\print
+ \definedummyword\quotedblbase
+ \definedummyword\quotedblleft
+ \definedummyword\quotedblright
+ \definedummyword\quoteleft
+ \definedummyword\quoteright
+ \definedummyword\quotesinglbase
+ \definedummyword\result
+ \definedummyword\textdegree
+ %
+ % We want to disable all macros so that they are not expanded by \write.
+ \macrolist
+ %
+ \normalturnoffactive
+ %
+ % Handle some cases of @value -- where it does not contain any
+ % (non-fully-expandable) commands.
+ \makevalueexpandable
+}
+
+% \commondummiesnofonts: common to \commondummies and \indexnofonts.
+%
+\def\commondummiesnofonts{%
+ % Control letters and accents.
+ \definedummyletter\!%
+ \definedummyaccent\"%
+ \definedummyaccent\'%
+ \definedummyletter\*%
+ \definedummyaccent\,%
+ \definedummyletter\.%
+ \definedummyletter\/%
+ \definedummyletter\:%
+ \definedummyaccent\=%
+ \definedummyletter\?%
+ \definedummyaccent\^%
+ \definedummyaccent\`%
+ \definedummyaccent\~%
+ \definedummyword\u
+ \definedummyword\v
+ \definedummyword\H
+ \definedummyword\dotaccent
+ \definedummyword\ogonek
+ \definedummyword\ringaccent
+ \definedummyword\tieaccent
+ \definedummyword\ubaraccent
+ \definedummyword\udotaccent
+ \definedummyword\dotless
+ %
+ % Texinfo font commands.
+ \definedummyword\b
+ \definedummyword\i
+ \definedummyword\r
+ \definedummyword\sansserif
+ \definedummyword\sc
+ \definedummyword\slanted
+ \definedummyword\t
+ %
+ % Commands that take arguments.
+ \definedummyword\acronym
+ \definedummyword\anchor
+ \definedummyword\cite
+ \definedummyword\code
+ \definedummyword\command
+ \definedummyword\dfn
+ \definedummyword\dmn
+ \definedummyword\email
+ \definedummyword\emph
+ \definedummyword\env
+ \definedummyword\file
+ \definedummyword\indicateurl
+ \definedummyword\kbd
+ \definedummyword\key
+ \definedummyword\math
+ \definedummyword\option
+ \definedummyword\pxref
+ \definedummyword\ref
+ \definedummyword\samp
+ \definedummyword\strong
+ \definedummyword\tie
+ \definedummyword\uref
+ \definedummyword\url
+ \definedummyword\var
+ \definedummyword\verb
+ \definedummyword\w
+ \definedummyword\xref
+}
+
+% \indexnofonts is used when outputting the strings to sort the index
+% by, and when constructing control sequence names. It eliminates all
+% control sequences and just writes whatever the best ASCII sort string
+% would be for a given command (usually its argument).
+%
+\def\indexnofonts{%
+ % Accent commands should become @asis.
+ \def\definedummyaccent##1{\let##1\asis}%
+ % We can just ignore other control letters.
+ \def\definedummyletter##1{\let##1\empty}%
+ % All control words become @asis by default; overrides below.
+ \let\definedummyword\definedummyaccent
+ %
+ \commondummiesnofonts
+ %
+ % Don't no-op \tt, since it isn't a user-level command
+ % and is used in the definitions of the active chars like <, >, |, etc.
+ % Likewise with the other plain tex font commands.
+ %\let\tt=\asis
+ %
+ \def\ { }%
+ \def\@{@}%
+ \def\_{\normalunderscore}%
+ \def\-{}% @- shouldn't affect sorting
+ %
+ % Unfortunately, texindex is not prepared to handle braces in the
+ % content at all. So for index sorting, we map @{ and @} to strings
+ % starting with |, since that ASCII character is between ASCII { and }.
+ \def\{{|a}%
+ \def\}{|b}%
+ %
+ % 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\ordf{a}%
+ \def\ordm{o}%
+ \def\o{o}%
+ \def\questiondown{?}%
+ \def\ss{ss}%
+ \def\th{zzz}%
+ %
+ \def\LaTeX{LaTeX}%
+ \def\TeX{TeX}%
+ %
+ % Assorted special characters.
+ % (The following {} will end up in the sort string, but that's ok.)
+ \def\arrow{->}%
+ \def\bullet{bullet}%
+ \def\comma{,}%
+ \def\copyright{copyright}%
+ \def\dots{...}%
+ \def\enddots{...}%
+ \def\equiv{==}%
+ \def\error{error}%
+ \def\euro{euro}%
+ \def\expansion{==>}%
+ \def\geq{>=}%
+ \def\guillemetleft{<<}%
+ \def\guillemetright{>>}%
+ \def\guilsinglleft{<}%
+ \def\guilsinglright{>}%
+ \def\leq{<=}%
+ \def\minus{-}%
+ \def\point{.}%
+ \def\pounds{pounds}%
+ \def\print{-|}%
+ \def\quotedblbase{"}%
+ \def\quotedblleft{"}%
+ \def\quotedblright{"}%
+ \def\quoteleft{`}%
+ \def\quoteright{'}%
+ \def\quotesinglbase{,}%
+ \def\registeredsymbol{R}%
+ \def\result{=>}%
+ \def\textdegree{o}%
+ %
+ \expandafter\ifx\csname SETtxiindexlquoteignore\endcsname\relax
+ \else \indexlquoteignore \fi
+ %
+ % 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
+}
+
+% Undocumented (for FSFS 2nd ed.): @set txiindexlquoteignore makes us
+% ignore left quotes in the sort term.
+{\catcode`\`=\active
+ \gdef\indexlquoteignore{\let`=\empty}}
+
+\let\indexbackslash=0 %overridden during \printindex.
+\let\SETmarginindex=\relax % put index entries in margin (undocumented)?
+
+% Most index entries go through here, but \dosubind is the general case.
+% #1 is the index name, #2 is the entry text.
+\def\doind#1#2{\dosubind{#1}{#2}{}}
+
+% Workhorse for all \fooindexes.
+% #1 is name of index, #2 is stuff to put there, #3 is subentry --
+% empty if called from \doind, as we usually are (the main exception
+% is with most defuns, which call us directly).
+%
+\def\dosubind#1#2#3{%
+ \iflinks
+ {%
+ % Store the main index entry text (including the third arg).
+ \toks0 = {#2}%
+ % If third arg is present, precede it with a space.
+ \def\thirdarg{#3}%
+ \ifx\thirdarg\empty \else
+ \toks0 = \expandafter{\the\toks0 \space #3}%
+ \fi
+ %
+ \edef\writeto{\csname#1indfile\endcsname}%
+ %
+ \safewhatsit\dosubindwrite
+ }%
+ \fi
+}
+
+% Write the entry in \toks0 to the index file:
+%
+\def\dosubindwrite{%
+ % Put the index entry in the margin if desired.
+ \ifx\SETmarginindex\relax\else
+ \insert\margin{\hbox{\vrule height8pt depth3pt width0pt \the\toks0}}%
+ \fi
+ %
+ % Remember, we are within a group.
+ \indexdummies % Must do this here, since \bf, etc expand at this stage
+ \def\backslashcurfont{\indexbackslash}% \indexbackslash isn't defined now
+ % so it will be output as is; and it will print as backslash.
+ %
+ % Process the index entry with all font commands turned off, to
+ % get the string to sort by.
+ {\indexnofonts
+ \edef\temp{\the\toks0}% need full expansion
+ \xdef\indexsorttmp{\temp}%
+ }%
+ %
+ % Set up the complete index entry, with both the sort key and
+ % the original text, including any font commands. We write
+ % three arguments to \entry to the .?? file (four in the
+ % subentry case), texindex reduces to two when writing the .??s
+ % sorted result.
+ \edef\temp{%
+ \write\writeto{%
+ \string\entry{\indexsorttmp}{\noexpand\folio}{\the\toks0}}%
+ }%
+ \temp
+}
+
+% Take care of unwanted page breaks/skips around a whatsit:
+%
+% If a skip is the last thing on the list now, preserve it
+% by backing up by \lastskip, doing the \write, then inserting
+% the skip again. Otherwise, the whatsit generated by the
+% \write or \pdfdest will make \lastskip zero. The result is that
+% sequences like this:
+% @end defun
+% @tindex whatever
+% @defun ...
+% will have extra space inserted, because the \medbreak in the
+% start of the @defun won't see the skip inserted by the @end of
+% the previous defun.
+%
+% But don't do any of this if we're not in vertical mode. We
+% don't want to do a \vskip and prematurely end a paragraph.
+%
+% Avoid page breaks due to these extra skips, too.
+%
+% But wait, there is a catch there:
+% We'll have to check whether \lastskip is zero skip. \ifdim is not
+% sufficient for this purpose, as it ignores stretch and shrink parts
+% of the skip. The only way seems to be to check the textual
+% representation of the skip.
+%
+% The following is almost like \def\zeroskipmacro{0.0pt} except that
+% the ``p'' and ``t'' characters have catcode \other, not 11 (letter).
+%
+\edef\zeroskipmacro{\expandafter\the\csname z@skip\endcsname}
+%
+\newskip\whatsitskip
+\newcount\whatsitpenalty
+%
+% ..., ready, GO:
+%
+\def\safewhatsit#1{%
+\ifhmode
+ #1%
+\else
+ % \lastskip and \lastpenalty cannot both be nonzero simultaneously.
+ \whatsitskip = \lastskip
+ \edef\lastskipmacro{\the\lastskip}%
+ \whatsitpenalty = \lastpenalty
+ %
+ % If \lastskip is nonzero, that means the last item was a
+ % skip. And since a skip is discardable, that means this
+ % -\whatsitskip glue we're inserting is preceded by a
+ % non-discardable item, therefore it is not a potential
+ % breakpoint, therefore no \nobreak needed.
+ \ifx\lastskipmacro\zeroskipmacro
+ \else
+ \vskip-\whatsitskip
+ \fi
+ %
+ #1%
+ %
+ \ifx\lastskipmacro\zeroskipmacro
+ % If \lastskip was zero, perhaps the last item was a penalty, and
+ % perhaps it was >=10000, e.g., a \nobreak. In that case, we want
+ % 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.
+ % would allow a break between the index-whatever whatsit
+ % and the "Description." paragraph.
+ \ifnum\whatsitpenalty>9999 \penalty\whatsitpenalty \fi
+ \else
+ % On the other hand, if we had a nonzero \lastskip,
+ % this make-up glue would be preceded by a non-discardable item
+ % (the whatsit from the \write), so we must insert a \nobreak.
+ \nobreak\vskip\whatsitskip
+ \fi
+\fi
+}
+
+% The index entry written in the file actually looks like
+% \entry {sortstring}{page}{topic}
+% or
+% \entry {sortstring}{page}{topic}{subtopic}
+% The texindex program reads in these files and writes files
+% containing these kinds of lines:
+% \initial {c}
+% before the first topic whose initial is c
+% \entry {topic}{pagelist}
+% for a topic that is used without subtopics
+% \primary {topic}
+% for the beginning of a topic that is used with subtopics
+% \secondary {subtopic}{pagelist}
+% for each subtopic.
+
+% Define the user-accessible indexing commands
+% @findex, @vindex, @kindex, @cindex.
+
+\def\findex {\fnindex}
+\def\kindex {\kyindex}
+\def\cindex {\cpindex}
+\def\vindex {\vrindex}
+\def\tindex {\tpindex}
+\def\pindex {\pgindex}
+
+\def\cindexsub {\begingroup\obeylines\cindexsub}
+{\obeylines %
+\gdef\cindexsub "#1" #2^^M{\endgroup %
+\dosubind{cp}{#2}{#1}}}
+
+% Define the macros used in formatting output of the sorted index material.
+
+% @printindex causes a particular index (the ??s file) to get printed.
+% It does not print any chapter heading (usually an @unnumbered).
+%
+\parseargdef\printindex{\begingroup
+ \dobreak \chapheadingskip{10000}%
+ %
+ \smallfonts \rm
+ \tolerance = 9500
+ \plainfrenchspacing
+ \everypar = {}% don't want the \kern\-parindent from indentation suppression.
+ %
+ % See if the index file exists and is nonempty.
+ % Change catcode of @ here so that if the index file contains
+ % \initial {@}
+ % as its first line, TeX doesn't complain about mismatched braces
+ % (because it thinks @} is a control sequence).
+ \catcode`\@ = 11
+ \openin 1 \jobname.#1s
+ \ifeof 1
+ % \enddoublecolumns gets confused if there is no text in the index,
+ % and it loses the chapter title and the aux file entries for the
+ % index. The easiest way to prevent this problem is to make sure
+ % there is some text.
+ \putwordIndexNonexistent
+ \else
+ %
+ % If the index file exists but is empty, then \openin leaves \ifeof
+ % false. We have to make TeX try to read something from the file, so
+ % it can discover if there is anything in it.
+ \read 1 to \temp
+ \ifeof 1
+ \putwordIndexIsEmpty
+ \else
+ % Index files are almost Texinfo source, but we use \ as the escape
+ % character. It would be better to use @, but that's too big a change
+ % to make right now.
+ \def\indexbackslash{\backslashcurfont}%
+ \catcode`\\ = 0
+ \escapechar = `\\
+ \begindoublecolumns
+ \input \jobname.#1s
+ \enddoublecolumns
+ \fi
+ \fi
+ \closein 1
+\endgroup}
+
+% These macros are used by the sorted index file itself.
+% Change them to control the appearance of the index.
+
+\def\initial#1{{%
+ % Some minor font changes for the special characters.
+ \let\tentt=\sectt \let\tt=\sectt \let\sf=\sectt
+ %
+ % Remove any glue we may have, we'll be inserting our own.
+ \removelastskip
+ %
+ % We like breaks before the index initials, so insert a bonus.
+ \nobreak
+ \vskip 0pt plus 3\baselineskip
+ \penalty 0
+ \vskip 0pt plus -3\baselineskip
+ %
+ % Typeset the initial. Making this add up to a whole number of
+ % baselineskips increases the chance of the dots lining up from column
+ % to column. It still won't often be perfect, because of the stretch
+ % we need before each entry, but it's better.
+ %
+ % No shrink because it confuses \balancecolumns.
+ \vskip 1.67\baselineskip plus .5\baselineskip
+ \leftline{\secbf #1}%
+ % Do our best not to break after the initial.
+ \nobreak
+ \vskip .33\baselineskip plus .1\baselineskip
+}}
+
+% \entry typesets a paragraph consisting of the text (#1), dot leaders, and
+% then page number (#2) flushed to the right margin. It is used for index
+% and table of contents entries. The paragraph is indented by \leftskip.
+%
+% A straightforward implementation would start like this:
+% \def\entry#1#2{...
+% But this freezes the catcodes in the argument, and can cause problems to
+% @code, which sets - active. This problem was fixed by a kludge---
+% ``-'' was active throughout whole index, but this isn't really right.
+% The right solution is to prevent \entry from swallowing the whole text.
+% --kasal, 21nov03
+\def\entry{%
+ \begingroup
+ %
+ % Start a new paragraph if necessary, so our assignments below can't
+ % affect previous text.
+ \par
+ %
+ % Do not fill out the last line with white space.
+ \parfillskip = 0in
+ %
+ % No extra space above this paragraph.
+ \parskip = 0in
+ %
+ % Do not prefer a separate line ending with a hyphen to fewer lines.
+ \finalhyphendemerits = 0
+ %
+ % \hangindent is only relevant when the entry text and page number
+ % don't both fit on one line. In that case, bob suggests starting the
+ % dots pretty far over on the line. Unfortunately, a large
+ % indentation looks wrong when the entry text itself is broken across
+ % lines. So we use a small indentation and put up with long leaders.
+ %
+ % \hangafter is reset to 1 (which is the value we want) at the start
+ % of each paragraph, so we need not do anything with that.
+ \hangindent = 2em
+ %
+ % When the entry text needs to be broken, just fill out the first line
+ % with blank space.
+ \rightskip = 0pt plus1fil
+ %
+ % A bit of stretch before each entry for the benefit of balancing
+ % columns.
+ \vskip 0pt plus1pt
+ %
+ % When reading the text of entry, convert explicit line breaks
+ % from @* into spaces. The user might give these in long section
+ % titles, for instance.
+ \def\*{\unskip\space\ignorespaces}%
+ \def\entrybreak{\hfil\break}%
+ %
+ % Swallow the left brace of the text (first parameter):
+ \afterassignment\doentry
+ \let\temp =
+}
+\def\entrybreak{\unskip\space\ignorespaces}%
+\def\doentry{%
+ \bgroup % Instead of the swallowed brace.
+ \noindent
+ \aftergroup\finishentry
+ % And now comes the text of the entry.
+}
+\def\finishentry#1{%
+ % #1 is the page number.
+ %
+ % The following is kludged to not output a line of dots in the index if
+ % there are no page numbers. The next person who breaks this will be
+ % cursed by a Unix daemon.
+ \setbox\boxA = \hbox{#1}%
+ \ifdim\wd\boxA = 0pt
+ \ %
+ \else
+ %
+ % If we must, put the page number on a line of its own, and fill out
+ % this line with blank space. (The \hfil is overwhelmed with the
+ % fill leaders glue in \indexdotfill if the page number does fit.)
+ \hfil\penalty50
+ \null\nobreak\indexdotfill % Have leaders before the page number.
+ %
+ % The `\ ' here is removed by the implicit \unskip that TeX does as
+ % part of (the primitive) \par. Without it, a spurious underfull
+ % \hbox ensues.
+ \ifpdf
+ \pdfgettoks#1.%
+ \ \the\toksA
+ \else
+ \ #1%
+ \fi
+ \fi
+ \par
+ \endgroup
+}
+
+% Like plain.tex's \dotfill, except uses up at least 1 em.
+\def\indexdotfill{\cleaders
+ \hbox{$\mathsurround=0pt \mkern1.5mu.\mkern1.5mu$}\hskip 1em plus 1fill}
+
+\def\primary #1{\line{#1\hfil}}
+
+\newskip\secondaryindent \secondaryindent=0.5cm
+\def\secondary#1#2{{%
+ \parfillskip=0in
+ \parskip=0in
+ \hangindent=1in
+ \hangafter=1
+ \noindent\hskip\secondaryindent\hbox{#1}\indexdotfill
+ \ifpdf
+ \pdfgettoks#2.\ \the\toksA % The page number ends the paragraph.
+ \else
+ #2
+ \fi
+ \par
+}}
+
+% Define two-column mode, which we use to typeset indexes.
+% Adapted from the TeXbook, page 416, which is to say,
+% the manmac.tex format used to print the TeXbook itself.
+\catcode`\@=11
+
+\newbox\partialpage
+\newdimen\doublecolumnhsize
+
+\def\begindoublecolumns{\begingroup % ended by \enddoublecolumns
+ % Grab any single-column material above us.
+ \output = {%
+ %
+ % Here is a possibility not foreseen in manmac: if we accumulate a
+ % whole lot of material, we might end up calling this \output
+ % routine twice in a row (see the doublecol-lose test, which is
+ % essentially a couple of indexes with @setchapternewpage off). In
+ % that case we just ship out what is in \partialpage with the normal
+ % output routine. Generally, \partialpage will be empty when this
+ % runs and this will be a no-op. See the indexspread.tex test case.
+ \ifvoid\partialpage \else
+ \onepageout{\pagecontents\partialpage}%
+ \fi
+ %
+ \global\setbox\partialpage = \vbox{%
+ % Unvbox the main output page.
+ \unvbox\PAGE
+ \kern-\topskip \kern\baselineskip
+ }%
+ }%
+ \eject % run that output routine to set \partialpage
+ %
+ % Use the double-column output routine for subsequent pages.
+ \output = {\doublecolumnout}%
+ %
+ % Change the page size parameters. We could do this once outside this
+ % routine, in each of @smallbook, @afourpaper, and the default 8.5x11
+ % format, but then we repeat the same computation. Repeating a couple
+ % of assignments once per index is clearly meaningless for the
+ % execution time, so we may as well do it in one place.
+ %
+ % First we halve the line length, less a little for the gutter between
+ % the columns. We compute the gutter based on the line length, so it
+ % changes automatically with the paper format. The magic constant
+ % below is chosen so that the gutter has the same value (well, +-<1pt)
+ % as it did when we hard-coded it.
+ %
+ % We put the result in a separate register, \doublecolumhsize, so we
+ % can restore it in \pagesofar, after \hsize itself has (potentially)
+ % been clobbered.
+ %
+ \doublecolumnhsize = \hsize
+ \advance\doublecolumnhsize by -.04154\hsize
+ \divide\doublecolumnhsize by 2
+ \hsize = \doublecolumnhsize
+ %
+ % Double the \vsize as well. (We don't need a separate register here,
+ % since nobody clobbers \vsize.)
+ \vsize = 2\vsize
+}
+
+% The double-column output routine for all double-column pages except
+% the last.
+%
+\def\doublecolumnout{%
+ \splittopskip=\topskip \splitmaxdepth=\maxdepth
+ % Get the available space for the double columns -- the normal
+ % (undoubled) page height minus any material left over from the
+ % previous page.
+ \dimen@ = \vsize
+ \divide\dimen@ by 2
+ \advance\dimen@ by -\ht\partialpage
+ %
+ % box0 will be the left-hand column, box2 the right.
+ \setbox0=\vsplit255 to\dimen@ \setbox2=\vsplit255 to\dimen@
+ \onepageout\pagesofar
+ \unvbox255
+ \penalty\outputpenalty
+}
+%
+% Re-output the contents of the output page -- any previous material,
+% followed by the two boxes we just split, in box0 and box2.
+\def\pagesofar{%
+ \unvbox\partialpage
+ %
+ \hsize = \doublecolumnhsize
+ \wd0=\hsize \wd2=\hsize
+ \hbox to\pagewidth{\box0\hfil\box2}%
+}
+%
+% All done with double columns.
+\def\enddoublecolumns{%
+ % The following penalty ensures that the page builder is exercised
+ % _before_ we change the output routine. This is necessary in the
+ % following situation:
+ %
+ % The last section of the index consists only of a single entry.
+ % Before this section, \pagetotal is less than \pagegoal, so no
+ % break occurs before the last section starts. However, the last
+ % section, consisting of \initial and the single \entry, does not
+ % fit on the page and has to be broken off. Without the following
+ % penalty the page builder will not be exercised until \eject
+ % below, and by that time we'll already have changed the output
+ % routine to the \balancecolumns version, so the next-to-last
+ % double-column page will be processed with \balancecolumns, which
+ % is wrong: The two columns will go to the main vertical list, with
+ % the broken-off section in the recent contributions. As soon as
+ % the output routine finishes, TeX starts reconsidering the page
+ % break. The two columns and the broken-off section both fit on the
+ % page, because the two columns now take up only half of the page
+ % goal. When TeX sees \eject from below which follows the final
+ % section, it invokes the new output routine that we've set after
+ % \balancecolumns below; \onepageout will try to fit the two columns
+ % and the final section into the vbox of \pageheight (see
+ % \pagebody), causing an overfull box.
+ %
+ % Note that glue won't work here, because glue does not exercise the
+ % page builder, unlike penalties (see The TeXbook, pp. 280-281).
+ \penalty0
+ %
+ \output = {%
+ % Split the last of the double-column material. Leave it on the
+ % current page, no automatic page break.
+ \balancecolumns
+ %
+ % If we end up splitting too much material for the current page,
+ % though, there will be another page break right after this \output
+ % invocation ends. Having called \balancecolumns once, we do not
+ % want to call it again. Therefore, reset \output to its normal
+ % definition right away. (We hope \balancecolumns will never be
+ % called on to balance too much material, but if it is, this makes
+ % the output somewhat more palatable.)
+ \global\output = {\onepageout{\pagecontents\PAGE}}%
+ }%
+ \eject
+ \endgroup % started in \begindoublecolumns
+ %
+ % \pagegoal was set to the doubled \vsize above, since we restarted
+ % the current page. We're now back to normal single-column
+ % typesetting, so reset \pagegoal to the normal \vsize (after the
+ % \endgroup where \vsize got restored).
+ \pagegoal = \vsize
+}
+%
+% Called at the end of the double column material.
+\def\balancecolumns{%
+ \setbox0 = \vbox{\unvbox255}% like \box255 but more efficient, see p.120.
+ \dimen@ = \ht0
+ \advance\dimen@ by \topskip
+ \advance\dimen@ by-\baselineskip
+ \divide\dimen@ by 2 % target to split to
+ %debug\message{final 2-column material height=\the\ht0, target=\the\dimen@.}%
+ \splittopskip = \topskip
+ % Loop until we get a decent breakpoint.
+ {%
+ \vbadness = 10000
+ \loop
+ \global\setbox3 = \copy0
+ \global\setbox1 = \vsplit3 to \dimen@
+ \ifdim\ht3>\dimen@
+ \global\advance\dimen@ by 1pt
+ \repeat
+ }%
+ %debug\message{split to \the\dimen@, column heights: \the\ht1, \the\ht3.}%
+ \setbox0=\vbox to\dimen@{\unvbox1}%
+ \setbox2=\vbox to\dimen@{\unvbox3}%
+ %
+ \pagesofar
+}
+\catcode`\@ = \other
+
+
+\message{sectioning,}
+% Chapters, sections, etc.
+
+% Let's start with @part.
+\outer\parseargdef\part{\partzzz{#1}}
+\def\partzzz#1{%
+ \chapoddpage
+ \null
+ \vskip.3\vsize % move it down on the page a bit
+ \begingroup
+ \noindent \titlefonts\rmisbold #1\par % the text
+ \let\lastnode=\empty % no node to associate with
+ \writetocentry{part}{#1}{}% but put it in the toc
+ \headingsoff % no headline or footline on the part page
+ \chapoddpage
+ \endgroup
+}
+
+% \unnumberedno is an oxymoron. But we count the unnumbered
+% sections so that we can refer to them unambiguously in the pdf
+% outlines by their "section number". We avoid collisions with chapter
+% numbers by starting them at 10000. (If a document ever has 10000
+% chapters, we're in trouble anyway, I'm sure.)
+\newcount\unnumberedno \unnumberedno = 10000
+\newcount\chapno
+\newcount\secno \secno=0
+\newcount\subsecno \subsecno=0
+\newcount\subsubsecno \subsubsecno=0
+
+% This counter is funny since it counts through charcodes of letters A, B, ...
+\newcount\appendixno \appendixno = `\@
+%
+% \def\appendixletter{\char\the\appendixno}
+% We do the following ugly conditional instead of the above simple
+% construct for the sake of pdftex, which needs the actual
+% letter in the expansion, not just typeset.
+%
+\def\appendixletter{%
+ \ifnum\appendixno=`A A%
+ \else\ifnum\appendixno=`B B%
+ \else\ifnum\appendixno=`C C%
+ \else\ifnum\appendixno=`D D%
+ \else\ifnum\appendixno=`E E%
+ \else\ifnum\appendixno=`F F%
+ \else\ifnum\appendixno=`G G%
+ \else\ifnum\appendixno=`H H%
+ \else\ifnum\appendixno=`I I%
+ \else\ifnum\appendixno=`J J%
+ \else\ifnum\appendixno=`K K%
+ \else\ifnum\appendixno=`L L%
+ \else\ifnum\appendixno=`M M%
+ \else\ifnum\appendixno=`N N%
+ \else\ifnum\appendixno=`O O%
+ \else\ifnum\appendixno=`P P%
+ \else\ifnum\appendixno=`Q Q%
+ \else\ifnum\appendixno=`R R%
+ \else\ifnum\appendixno=`S S%
+ \else\ifnum\appendixno=`T T%
+ \else\ifnum\appendixno=`U U%
+ \else\ifnum\appendixno=`V V%
+ \else\ifnum\appendixno=`W W%
+ \else\ifnum\appendixno=`X X%
+ \else\ifnum\appendixno=`Y Y%
+ \else\ifnum\appendixno=`Z Z%
+ % The \the is necessary, despite appearances, because \appendixletter is
+ % expanded while writing the .toc file. \char\appendixno is not
+ % expandable, thus it is written literally, thus all appendixes come out
+ % with the same letter (or @) in the toc without it.
+ \else\char\the\appendixno
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi}
+
+% Each @chapter defines these (using marks) as the number+name, number
+% and name of the chapter. Page headings and footings can use
+% these. @section does likewise.
+\def\thischapter{}
+\def\thischapternum{}
+\def\thischaptername{}
+\def\thissection{}
+\def\thissectionnum{}
+\def\thissectionname{}
+
+\newcount\absseclevel % used to calculate proper heading level
+\newcount\secbase\secbase=0 % @raisesections/@lowersections modify this count
+
+% @raisesections: treat @section as chapter, @subsection as section, etc.
+\def\raisesections{\global\advance\secbase by -1}
+\let\up=\raisesections % original BFox name
+
+% @lowersections: treat @chapter as section, @section as subsection, etc.
+\def\lowersections{\global\advance\secbase by 1}
+\let\down=\lowersections % original BFox name
+
+% we only have subsub.
+\chardef\maxseclevel = 3
+%
+% A numbered section within an unnumbered changes to unnumbered too.
+% To achieve this, remember the "biggest" unnum. sec. we are currently in:
+\chardef\unnlevel = \maxseclevel
+%
+% Trace whether the current chapter is an appendix or not:
+% \chapheadtype is "N" or "A", unnumbered chapters are ignored.
+\def\chapheadtype{N}
+
+% Choose a heading macro
+% #1 is heading type
+% #2 is heading level
+% #3 is text for heading
+\def\genhead#1#2#3{%
+ % Compute the abs. sec. level:
+ \absseclevel=#2
+ \advance\absseclevel by \secbase
+ % Make sure \absseclevel doesn't fall outside the range:
+ \ifnum \absseclevel < 0
+ \absseclevel = 0
+ \else
+ \ifnum \absseclevel > 3
+ \absseclevel = 3
+ \fi
+ \fi
+ % The heading type:
+ \def\headtype{#1}%
+ \if \headtype U%
+ \ifnum \absseclevel < \unnlevel
+ \chardef\unnlevel = \absseclevel
+ \fi
+ \else
+ % Check for appendix sections:
+ \ifnum \absseclevel = 0
+ \edef\chapheadtype{\headtype}%
+ \else
+ \if \headtype A\if \chapheadtype N%
+ \errmessage{@appendix... within a non-appendix chapter}%
+ \fi\fi
+ \fi
+ % Check for numbered within unnumbered:
+ \ifnum \absseclevel > \unnlevel
+ \def\headtype{U}%
+ \else
+ \chardef\unnlevel = 3
+ \fi
+ \fi
+ % Now print the heading:
+ \if \headtype U%
+ \ifcase\absseclevel
+ \unnumberedzzz{#3}%
+ \or \unnumberedseczzz{#3}%
+ \or \unnumberedsubseczzz{#3}%
+ \or \unnumberedsubsubseczzz{#3}%
+ \fi
+ \else
+ \if \headtype A%
+ \ifcase\absseclevel
+ \appendixzzz{#3}%
+ \or \appendixsectionzzz{#3}%
+ \or \appendixsubseczzz{#3}%
+ \or \appendixsubsubseczzz{#3}%
+ \fi
+ \else
+ \ifcase\absseclevel
+ \chapterzzz{#3}%
+ \or \seczzz{#3}%
+ \or \numberedsubseczzz{#3}%
+ \or \numberedsubsubseczzz{#3}%
+ \fi
+ \fi
+ \fi
+ \suppressfirstparagraphindent
+}
+
+% an interface:
+\def\numhead{\genhead N}
+\def\apphead{\genhead A}
+\def\unnmhead{\genhead U}
+
+% @chapter, @appendix, @unnumbered. Increment top-level counter, reset
+% all lower-level sectioning counters to zero.
+%
+% Also set \chaplevelprefix, which we prepend to @float sequence numbers
+% (e.g., figures), q.v. By default (before any chapter), that is empty.
+\let\chaplevelprefix = \empty
+%
+\outer\parseargdef\chapter{\numhead0{#1}} % normally numhead0 calls chapterzzz
+\def\chapterzzz#1{%
+ % section resetting is \global in case the chapter is in a group, such
+ % as an @include file.
+ \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+ \global\advance\chapno by 1
+ %
+ % Used for \float.
+ \gdef\chaplevelprefix{\the\chapno.}%
+ \resetallfloatnos
+ %
+ % \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}%
+ %
+ % So @section and the like are numbered underneath this chapter.
+ \global\let\section = \numberedsec
+ \global\let\subsection = \numberedsubsec
+ \global\let\subsubsection = \numberedsubsubsec
+}
+
+\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
+ %
+ % \putwordAppendix can contain complex things in translations.
+ \toks0=\expandafter{\putwordAppendix}%
+ \message{\the\toks0 \space \appendixletter}%
+ %
+ \chapmacro{#1}{Yappendix}{\appendixletter}%
+ %
+ \global\let\section = \appendixsec
+ \global\let\subsection = \appendixsubsec
+ \global\let\subsubsection = \appendixsubsubsec
+}
+
+% normally unnmhead0 calls unnumberedzzz:
+\outer\parseargdef\unnumbered{\unnmhead0{#1}}
+\def\unnumberedzzz#1{%
+ \global\secno=0 \global\subsecno=0 \global\subsubsecno=0
+ \global\advance\unnumberedno by 1
+ %
+ % Since an unnumbered has no number, no prefix for figures.
+ \global\let\chaplevelprefix = \empty
+ \resetallfloatnos
+ %
+ % This used to be simply \message{#1}, but TeX fully expands the
+ % argument to \message. Therefore, if #1 contained @-commands, TeX
+ % expanded them. For example, in `@unnumbered The @cite{Book}', TeX
+ % expanded @cite (which turns out to cause errors because \cite is meant
+ % to be executed, not expanded).
+ %
+ % Anyway, we don't want the fully-expanded definition of @cite to appear
+ % as a result of the \message, we just want `@cite' itself. We use
+ % \the<toks register> to achieve this: TeX expands \the<toks> only once,
+ % simply yielding the contents of <toks register>. (We also do this for
+ % the toc entries.)
+ \toks0 = {#1}%
+ \message{(\the\toks0)}%
+ %
+ \chapmacro{#1}{Ynothing}{\the\unnumberedno}%
+ %
+ \global\let\section = \unnumberedsec
+ \global\let\subsection = \unnumberedsubsec
+ \global\let\subsubsection = \unnumberedsubsubsec
+}
+
+% @centerchap is like @unnumbered, but the heading is centered.
+\outer\parseargdef\centerchap{%
+ % Well, we could do the following in a group, but that would break
+ % an assumption that \chapmacro is called at the outermost level.
+ % Thus we are safer this way: --kasal, 24feb04
+ \let\centerparametersmaybe = \centerparameters
+ \unnmhead0{#1}%
+ \let\centerparametersmaybe = \relax
+}
+
+% @top is like @unnumbered.
+\let\top\unnumbered
+
+% Sections.
+%
+\outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
+\def\seczzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Ynumbered}{\the\chapno.\the\secno}%
+}
+
+% normally calls appendixsectionzzz:
+\outer\parseargdef\appendixsection{\apphead1{#1}}
+\def\appendixsectionzzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Yappendix}{\appendixletter.\the\secno}%
+}
+\let\appendixsec\appendixsection
+
+% normally calls unnumberedseczzz:
+\outer\parseargdef\unnumberedsec{\unnmhead1{#1}}
+\def\unnumberedseczzz#1{%
+ \global\subsecno=0 \global\subsubsecno=0 \global\advance\secno by 1
+ \sectionheading{#1}{sec}{Ynothing}{\the\unnumberedno.\the\secno}%
+}
+
+% Subsections.
+%
+% normally calls numberedsubseczzz:
+\outer\parseargdef\numberedsubsec{\numhead2{#1}}
+\def\numberedsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Ynumbered}{\the\chapno.\the\secno.\the\subsecno}%
+}
+
+% normally calls appendixsubseczzz:
+\outer\parseargdef\appendixsubsec{\apphead2{#1}}
+\def\appendixsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Yappendix}%
+ {\appendixletter.\the\secno.\the\subsecno}%
+}
+
+% normally calls unnumberedsubseczzz:
+\outer\parseargdef\unnumberedsubsec{\unnmhead2{#1}}
+\def\unnumberedsubseczzz#1{%
+ \global\subsubsecno=0 \global\advance\subsecno by 1
+ \sectionheading{#1}{subsec}{Ynothing}%
+ {\the\unnumberedno.\the\secno.\the\subsecno}%
+}
+
+% Subsubsections.
+%
+% normally numberedsubsubseczzz:
+\outer\parseargdef\numberedsubsubsec{\numhead3{#1}}
+\def\numberedsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Ynumbered}%
+ {\the\chapno.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+% normally appendixsubsubseczzz:
+\outer\parseargdef\appendixsubsubsec{\apphead3{#1}}
+\def\appendixsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Yappendix}%
+ {\appendixletter.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+% normally unnumberedsubsubseczzz:
+\outer\parseargdef\unnumberedsubsubsec{\unnmhead3{#1}}
+\def\unnumberedsubsubseczzz#1{%
+ \global\advance\subsubsecno by 1
+ \sectionheading{#1}{subsubsec}{Ynothing}%
+ {\the\unnumberedno.\the\secno.\the\subsecno.\the\subsubsecno}%
+}
+
+% These macros control what the section commands do, according
+% to what kind of chapter we are in (ordinary, appendix, or unnumbered).
+% Define them by default for a numbered chapter.
+\let\section = \numberedsec
+\let\subsection = \numberedsubsec
+\let\subsubsection = \numberedsubsubsec
+
+% Define @majorheading, @heading and @subheading
+
+% NOTE on use of \vbox for chapter headings, section headings, and such:
+% 1) We use \vbox rather than the earlier \line to permit
+% overlong headings to fold.
+% 2) \hyphenpenalty is set to 10000 because hyphenation in a
+% heading is obnoxious; this forbids it.
+% 3) Likewise, headings look best if no \parindent is used, and
+% if justification is not attempted. Hence \raggedright.
+
+\def\majorheading{%
+ {\advance\chapheadingskip by 10pt \chapbreak }%
+ \parsearg\chapheadingzzz
+}
+
+\def\chapheading{\chapbreak \parsearg\chapheadingzzz}
+\def\chapheadingzzz#1{%
+ {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt\ptexraggedright
+ \rmisbold #1\hfill}}%
+ \bigskip \par\penalty 200\relax
+ \suppressfirstparagraphindent
+}
+
+% @heading, @subheading, @subsubheading.
+\parseargdef\heading{\sectionheading{#1}{sec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
+\parseargdef\subheading{\sectionheading{#1}{subsec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
+\parseargdef\subsubheading{\sectionheading{#1}{subsubsec}{Yomitfromtoc}{}
+ \suppressfirstparagraphindent}
+
+% These macros generate a chapter, section, etc. heading only
+% (including whitespace, linebreaking, etc. around it),
+% given all the information in convenient, parsed form.
+
+% Args are the skip and penalty (usually negative)
+\def\dobreak#1#2{\par\ifdim\lastskip<#1\removelastskip\penalty#2\vskip#1\fi}
+
+% Parameter controlling skip before chapter headings (if needed)
+\newskip\chapheadingskip
+
+% Define plain chapter starts, and page on/off switching for it.
+\def\chapbreak{\dobreak \chapheadingskip {-4000}}
+\def\chappager{\par\vfill\supereject}
+% Because \domark is called before \chapoddpage, the filler page will
+% get the headings for the next chapter, which is wrong. But we don't
+% care -- we just disable all headings on the filler page.
+\def\chapoddpage{%
+ \chappager
+ \ifodd\pageno \else
+ \begingroup
+ \headingsoff
+ \null
+ \chappager
+ \endgroup
+ \fi
+}
+
+\def\setchapternewpage #1 {\csname CHAPPAG#1\endcsname}
+
+\def\CHAPPAGoff{%
+\global\let\contentsalignmacro = \chappager
+\global\let\pchapsepmacro=\chapbreak
+\global\let\pagealignmacro=\chappager}
+
+\def\CHAPPAGon{%
+\global\let\contentsalignmacro = \chappager
+\global\let\pchapsepmacro=\chappager
+\global\let\pagealignmacro=\chappager
+\global\def\HEADINGSon{\HEADINGSsingle}}
+
+\def\CHAPPAGodd{%
+\global\let\contentsalignmacro = \chapoddpage
+\global\let\pchapsepmacro=\chapoddpage
+\global\let\pagealignmacro=\chapoddpage
+\global\def\HEADINGSon{\HEADINGSdouble}}
+
+\CHAPPAGon
+
+% Chapter opening.
+%
+% #1 is the text, #2 is the section type (Ynumbered, Ynothing,
+% Yappendix, Yomitfromtoc), #3 the chapter number.
+%
+% To test against our argument.
+\def\Ynothingkeyword{Ynothing}
+\def\Yomitfromtockeyword{Yomitfromtoc}
+\def\Yappendixkeyword{Yappendix}
+%
+\def\chapmacro#1#2#3{%
+ % Insert the first mark before the heading break (see notes for \domark).
+ \let\prevchapterdefs=\lastchapterdefs
+ \let\prevsectiondefs=\lastsectiondefs
+ \gdef\lastsectiondefs{\gdef\thissectionname{}\gdef\thissectionnum{}%
+ \gdef\thissection{}}%
+ %
+ \def\temptype{#2}%
+ \ifx\temptype\Ynothingkeyword
+ \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
+ \gdef\thischapter{\thischaptername}}%
+ \else\ifx\temptype\Yomitfromtockeyword
+ \gdef\lastchapterdefs{\gdef\thischaptername{#1}\gdef\thischapternum{}%
+ \gdef\thischapter{}}%
+ \else\ifx\temptype\Yappendixkeyword
+ \toks0={#1}%
+ \xdef\lastchapterdefs{%
+ \gdef\noexpand\thischaptername{\the\toks0}%
+ \gdef\noexpand\thischapternum{\appendixletter}%
+ % \noexpand\putwordAppendix avoids expanding indigestible
+ % commands in some of the translations.
+ \gdef\noexpand\thischapter{\noexpand\putwordAppendix{}
+ \noexpand\thischapternum:
+ \noexpand\thischaptername}%
+ }%
+ \else
+ \toks0={#1}%
+ \xdef\lastchapterdefs{%
+ \gdef\noexpand\thischaptername{\the\toks0}%
+ \gdef\noexpand\thischapternum{\the\chapno}%
+ % \noexpand\putwordChapter avoids expanding indigestible
+ % commands in some of the translations.
+ \gdef\noexpand\thischapter{\noexpand\putwordChapter{}
+ \noexpand\thischapternum:
+ \noexpand\thischaptername}%
+ }%
+ \fi\fi\fi
+ %
+ % Output the mark. Pass it through \safewhatsit, to take care of
+ % the preceding space.
+ \safewhatsit\domark
+ %
+ % Insert the chapter heading break.
+ \pchapsepmacro
+ %
+ % Now the second mark, after the heading break. No break points
+ % between here and the heading.
+ \let\prevchapterdefs=\lastchapterdefs
+ \let\prevsectiondefs=\lastsectiondefs
+ \domark
+ %
+ {%
+ \chapfonts \rmisbold
+ %
+ % Have to define \lastsection before calling \donoderef, because the
+ % xref code eventually uses it. On the other hand, it has to be called
+ % after \pchapsepmacro, or the headline will change too soon.
+ \gdef\lastsection{#1}%
+ %
+ % Only insert the separating space if we have a chapter/appendix
+ % number, and don't print the unnumbered ``number''.
+ \ifx\temptype\Ynothingkeyword
+ \setbox0 = \hbox{}%
+ \def\toctype{unnchap}%
+ \else\ifx\temptype\Yomitfromtockeyword
+ \setbox0 = \hbox{}% contents like unnumbered, but no toc entry
+ \def\toctype{omit}%
+ \else\ifx\temptype\Yappendixkeyword
+ \setbox0 = \hbox{\putwordAppendix{} #3\enspace}%
+ \def\toctype{app}%
+ \else
+ \setbox0 = \hbox{#3\enspace}%
+ \def\toctype{numchap}%
+ \fi\fi\fi
+ %
+ % Write the toc entry for this chapter. Must come before the
+ % \donoderef, because we include the current node name in the toc
+ % entry, and \donoderef resets it to empty.
+ \writetocentry{\toctype}{#1}{#3}%
+ %
+ % For pdftex, we have to write out the node definition (aka, make
+ % the pdfdest) after any page break, but before the actual text has
+ % been typeset. If the destination for the pdf outline is after the
+ % text, then jumping from the outline may wind up with the text not
+ % being visible, for instance under high magnification.
+ \donoderef{#2}%
+ %
+ % Typeset the actual heading.
+ \nobreak % Avoid page breaks at the interline glue.
+ \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
+ \hangindent=\wd0 \centerparametersmaybe
+ \unhbox0 #1\par}%
+ }%
+ \nobreak\bigskip % no page break after a chapter title
+ \nobreak
+}
+
+% @centerchap -- centered and unnumbered.
+\let\centerparametersmaybe = \relax
+\def\centerparameters{%
+ \advance\rightskip by 3\rightskip
+ \leftskip = \rightskip
+ \parfillskip = 0pt
+}
+
+
+% I don't think this chapter style is supported any more, so I'm not
+% updating it with the new noderef stuff. We'll see. --karl, 11aug03.
+%
+\def\setchapterstyle #1 {\csname CHAPF#1\endcsname}
+%
+\def\unnchfopen #1{%
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt\ptexraggedright
+ \rmisbold #1\hfill}}\bigskip \par\nobreak
+}
+\def\chfopen #1#2{\chapoddpage {\chapfonts
+\vbox to 3in{\vfil \hbox to\hsize{\hfil #2} \hbox to\hsize{\hfil #1} \vfil}}%
+\par\penalty 5000 %
+}
+\def\centerchfopen #1{%
+\chapoddpage {\chapfonts \vbox{\hyphenpenalty=10000\tolerance=5000
+ \parindent=0pt
+ \hfill {\rmisbold #1}\hfill}}\bigskip \par\nobreak
+}
+\def\CHAPFopen{%
+ \global\let\chapmacro=\chfopen
+ \global\let\centerchapmacro=\centerchfopen}
+
+
+% Section titles. These macros combine the section number parts and
+% call the generic \sectionheading to do the printing.
+%
+\newskip\secheadingskip
+\def\secheadingbreak{\dobreak \secheadingskip{-1000}}
+
+% Subsection titles.
+\newskip\subsecheadingskip
+\def\subsecheadingbreak{\dobreak \subsecheadingskip{-500}}
+
+% Subsubsection titles.
+\def\subsubsecheadingskip{\subsecheadingskip}
+\def\subsubsecheadingbreak{\subsecheadingbreak}
+
+
+% Print any size, any type, section title.
+%
+% #1 is the text, #2 is the section level (sec/subsec/subsubsec), #3 is
+% the section type for xrefs (Ynumbered, Ynothing, Yappendix), #4 is the
+% section number.
+%
+\def\seckeyword{sec}
+%
+\def\sectionheading#1#2#3#4{%
+ {%
+ \checkenv{}% should not be in an environment.
+ %
+ % Switch to the right set of fonts.
+ \csname #2fonts\endcsname \rmisbold
+ %
+ \def\sectionlevel{#2}%
+ \def\temptype{#3}%
+ %
+ % Insert first mark before the heading break (see notes for \domark).
+ \let\prevsectiondefs=\lastsectiondefs
+ \ifx\temptype\Ynothingkeyword
+ \ifx\sectionlevel\seckeyword
+ \gdef\lastsectiondefs{\gdef\thissectionname{#1}\gdef\thissectionnum{}%
+ \gdef\thissection{\thissectionname}}%
+ \fi
+ \else\ifx\temptype\Yomitfromtockeyword
+ % Don't redefine \thissection.
+ \else\ifx\temptype\Yappendixkeyword
+ \ifx\sectionlevel\seckeyword
+ \toks0={#1}%
+ \xdef\lastsectiondefs{%
+ \gdef\noexpand\thissectionname{\the\toks0}%
+ \gdef\noexpand\thissectionnum{#4}%
+ % \noexpand\putwordSection avoids expanding indigestible
+ % commands in some of the translations.
+ \gdef\noexpand\thissection{\noexpand\putwordSection{}
+ \noexpand\thissectionnum:
+ \noexpand\thissectionname}%
+ }%
+ \fi
+ \else
+ \ifx\sectionlevel\seckeyword
+ \toks0={#1}%
+ \xdef\lastsectiondefs{%
+ \gdef\noexpand\thissectionname{\the\toks0}%
+ \gdef\noexpand\thissectionnum{#4}%
+ % \noexpand\putwordSection avoids expanding indigestible
+ % commands in some of the translations.
+ \gdef\noexpand\thissection{\noexpand\putwordSection{}
+ \noexpand\thissectionnum:
+ \noexpand\thissectionname}%
+ }%
+ \fi
+ \fi\fi\fi
+ %
+ % Go into vertical mode. Usually we'll already be there, but we
+ % don't want the following whatsit to end up in a preceding paragraph
+ % if the document didn't happen to have a blank line.
+ \par
+ %
+ % Output the mark. Pass it through \safewhatsit, to take care of
+ % the preceding space.
+ \safewhatsit\domark
+ %
+ % Insert space above the heading.
+ \csname #2headingbreak\endcsname
+ %
+ % Now the second mark, after the heading break. No break points
+ % between here and the heading.
+ \let\prevsectiondefs=\lastsectiondefs
+ \domark
+ %
+ % Only insert the space after the number if we have a section number.
+ \ifx\temptype\Ynothingkeyword
+ \setbox0 = \hbox{}%
+ \def\toctype{unn}%
+ \gdef\lastsection{#1}%
+ \else\ifx\temptype\Yomitfromtockeyword
+ % for @headings -- no section number, don't include in toc,
+ % and don't redefine \lastsection.
+ \setbox0 = \hbox{}%
+ \def\toctype{omit}%
+ \let\sectionlevel=\empty
+ \else\ifx\temptype\Yappendixkeyword
+ \setbox0 = \hbox{#4\enspace}%
+ \def\toctype{app}%
+ \gdef\lastsection{#1}%
+ \else
+ \setbox0 = \hbox{#4\enspace}%
+ \def\toctype{num}%
+ \gdef\lastsection{#1}%
+ \fi\fi\fi
+ %
+ % Write the toc entry (before \donoderef). See comments in \chapmacro.
+ \writetocentry{\toctype\sectionlevel}{#1}{#4}%
+ %
+ % Write the node reference (= pdf destination for pdftex).
+ % Again, see comments in \chapmacro.
+ \donoderef{#3}%
+ %
+ % Interline glue will be inserted when the vbox is completed.
+ % That glue will be a valid breakpoint for the page, since it'll be
+ % preceded by a whatsit (usually from the \donoderef, or from the
+ % \writetocentry if there was no node). We don't want to allow that
+ % break, since then the whatsits could end up on page n while the
+ % section is on page n+1, thus toc/etc. are wrong. Debian bug 276000.
+ \nobreak
+ %
+ % Output the actual section heading.
+ \vbox{\hyphenpenalty=10000 \tolerance=5000 \parindent=0pt \ptexraggedright
+ \hangindent=\wd0 % zero if no section number
+ \unhbox0 #1}%
+ }%
+ % Add extra space after the heading -- half of whatever came above it.
+ % Don't allow stretch, though.
+ \kern .5 \csname #2headingskip\endcsname
+ %
+ % Do not let the kern be a potential breakpoint, as it would be if it
+ % was followed by glue.
+ \nobreak
+ %
+ % We'll almost certainly start a paragraph next, so don't let that
+ % 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
+}
+
+
+\message{toc,}
+% Table of contents.
+\newwrite\tocfile
+
+% Write an entry to the toc file, opening it if necessary.
+% Called from @chapter, etc.
+%
+% Example usage: \writetocentry{sec}{Section Name}{\the\chapno.\the\secno}
+% We append the current node name (if any) and page number as additional
+% arguments for the \{chap,sec,...}entry macros which will eventually
+% read this. The node name is used in the pdf outlines as the
+% destination to jump to.
+%
+% We open the .toc file for writing here instead of at @setfilename (or
+% any other fixed time) so that @contents can be anywhere in the document.
+% But if #1 is `omit', then we don't do anything. This is used for the
+% table of contents chapter openings themselves.
+%
+\newif\iftocfileopened
+\def\omitkeyword{omit}%
+%
+\def\writetocentry#1#2#3{%
+ \edef\writetoctype{#1}%
+ \ifx\writetoctype\omitkeyword \else
+ \iftocfileopened\else
+ \immediate\openout\tocfile = \jobname.toc
+ \global\tocfileopenedtrue
+ \fi
+ %
+ \iflinks
+ {\atdummies
+ \edef\temp{%
+ \write\tocfile{@#1entry{#2}{#3}{\lastnode}{\noexpand\folio}}}%
+ \temp
+ }%
+ \fi
+ \fi
+ %
+ % Tell \shipout to create a pdf destination on each page, if we're
+ % writing pdf. These are used in the table of contents. We can't
+ % just write one on every page because the title pages are numbered
+ % 1 and 2 (the page numbers aren't printed), and so are the first
+ % two pages of the document. Thus, we'd have two destinations named
+ % `1', and two named `2'.
+ \ifpdf \global\pdfmakepagedesttrue \fi
+}
+
+
+% 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
+ \catcode`\<=\active
+ \catcode`\>=\active
+ \catcode`\\=\active
+ \catcode`\^=\active
+ \catcode`\_=\active
+ \catcode`\|=\active
+ \catcode`\~=\active
+}
+
+
+% Read the toc file, which is essentially Texinfo input.
+\def\readtocfile{%
+ \setupdatafile
+ \activecatcodes
+ \input \tocreadfilename
+}
+
+\newskip\contentsrightmargin \contentsrightmargin=1in
+\newcount\savepageno
+\newcount\lastnegativepageno \lastnegativepageno = -1
+
+% Prepare to read what we've written to \tocfile.
+%
+\def\startcontents#1{%
+ % If @setchapternewpage on, and @headings double, the contents should
+ % start on an odd page, unlike chapters. Thus, we maintain
+ % \contentsalignmacro in parallel with \pagealignmacro.
+ % From: Torbjorn Granlund <tege@matematik.su.se>
+ \contentsalignmacro
+ \immediate\closeout\tocfile
+ %
+ % Don't need to put `Contents' or `Short Contents' in the headline.
+ % It is abundantly clear what they are.
+ \chapmacro{#1}{Yomitfromtoc}{}%
+ %
+ \savepageno = \pageno
+ \begingroup % Set up to handle contents files properly.
+ \raggedbottom % Worry more about breakpoints than the bottom.
+ \advance\hsize by -\contentsrightmargin % Don't use the full line length.
+ %
+ % Roman numerals for page numbers.
+ \ifnum \pageno>0 \global\pageno = \lastnegativepageno \fi
+}
+
+% redefined for the two-volume lispref. We always output on
+% \jobname.toc even if this is redefined.
+%
+\def\tocreadfilename{\jobname.toc}
+
+% Normal (long) toc.
+%
+\def\contents{%
+ \startcontents{\putwordTOC}%
+ \openin 1 \tocreadfilename\space
+ \ifeof 1 \else
+ \readtocfile
+ \fi
+ \vfill \eject
+ \contentsalignmacro % in case @setchapternewpage odd is in effect
+ \ifeof 1 \else
+ \pdfmakeoutlines
+ \fi
+ \closein 1
+ \endgroup
+ \lastnegativepageno = \pageno
+ \global\pageno = \savepageno
+}
+
+% And just the chapters.
+\def\summarycontents{%
+ \startcontents{\putwordShortTOC}%
+ %
+ \let\partentry = \shortpartentry
+ \let\numchapentry = \shortchapentry
+ \let\appentry = \shortchapentry
+ \let\unnchapentry = \shortunnchapentry
+ % We want a true roman here for the page numbers.
+ \secfonts
+ \let\rm=\shortcontrm \let\bf=\shortcontbf
+ \let\sl=\shortcontsl \let\tt=\shortconttt
+ \rm
+ \hyphenpenalty = 10000
+ \advance\baselineskip by 1pt % Open it up a little.
+ \def\numsecentry##1##2##3##4{}
+ \let\appsecentry = \numsecentry
+ \let\unnsecentry = \numsecentry
+ \let\numsubsecentry = \numsecentry
+ \let\appsubsecentry = \numsecentry
+ \let\unnsubsecentry = \numsecentry
+ \let\numsubsubsecentry = \numsecentry
+ \let\appsubsubsecentry = \numsecentry
+ \let\unnsubsubsecentry = \numsecentry
+ \openin 1 \tocreadfilename\space
+ \ifeof 1 \else
+ \readtocfile
+ \fi
+ \closein 1
+ \vfill \eject
+ \contentsalignmacro % in case @setchapternewpage odd is in effect
+ \endgroup
+ \lastnegativepageno = \pageno
+ \global\pageno = \savepageno
+}
+\let\shortcontents = \summarycontents
+
+% Typeset the label for a chapter or appendix for the short contents.
+% The arg is, e.g., `A' for an appendix, or `3' for a chapter.
+%
+\def\shortchaplabel#1{%
+ % This space should be enough, since a single number is .5em, and the
+ % widest letter (M) is 1em, at least in the Computer Modern fonts.
+ % But use \hss just in case.
+ % (This space doesn't include the extra space that gets added after
+ % the label; that gets put in by \shortchapentry above.)
+ %
+ % We'd like to right-justify chapter numbers, but that looks strange
+ % with appendix letters. And right-justifying numbers and
+ % left-justifying letters looks strange when there is less than 10
+ % chapters. Have to read the whole toc once to know how many chapters
+ % there are before deciding ...
+ \hbox to 1em{#1\hss}%
+}
+
+% These macros generate individual entries in the table of contents.
+% The first argument is the chapter or section name.
+% The last argument is the page number.
+% The arguments in between are the chapter number, section number, ...
+
+% Parts, in the main contents. Replace the part number, which doesn't
+% exist, with an empty box. Let's hope all the numbers have the same width.
+% Also ignore the page number, which is conventionally not printed.
+\def\numeralbox{\setbox0=\hbox{8}\hbox to \wd0{\hfil}}
+\def\partentry#1#2#3#4{\dochapentry{\numeralbox\labelspace#1}{}}
+%
+% Parts, in the short toc.
+\def\shortpartentry#1#2#3#4{%
+ \penalty-300
+ \vskip.5\baselineskip plus.15\baselineskip minus.1\baselineskip
+ \shortchapentry{{\bf #1}}{\numeralbox}{}{}%
+}
+
+% Chapters, in the main contents.
+\def\numchapentry#1#2#3#4{\dochapentry{#2\labelspace#1}{#4}}
+%
+% Chapters, in the short toc.
+% See comments in \dochapentry re vbox and related settings.
+\def\shortchapentry#1#2#3#4{%
+ \tocentry{\shortchaplabel{#2}\labelspace #1}{\doshortpageno\bgroup#4\egroup}%
+}
+
+% Appendices, in the main contents.
+% Need the word Appendix, and a fixed-size box.
+%
+\def\appendixbox#1{%
+ % We use M since it's probably the widest letter.
+ \setbox0 = \hbox{\putwordAppendix{} M}%
+ \hbox to \wd0{\putwordAppendix{} #1\hss}}
+%
+\def\appentry#1#2#3#4{\dochapentry{\appendixbox{#2}\labelspace#1}{#4}}
+
+% Unnumbered chapters.
+\def\unnchapentry#1#2#3#4{\dochapentry{#1}{#4}}
+\def\shortunnchapentry#1#2#3#4{\tocentry{#1}{\doshortpageno\bgroup#4\egroup}}
+
+% Sections.
+\def\numsecentry#1#2#3#4{\dosecentry{#2\labelspace#1}{#4}}
+\let\appsecentry=\numsecentry
+\def\unnsecentry#1#2#3#4{\dosecentry{#1}{#4}}
+
+% Subsections.
+\def\numsubsecentry#1#2#3#4{\dosubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsecentry=\numsubsecentry
+\def\unnsubsecentry#1#2#3#4{\dosubsecentry{#1}{#4}}
+
+% And subsubsections.
+\def\numsubsubsecentry#1#2#3#4{\dosubsubsecentry{#2\labelspace#1}{#4}}
+\let\appsubsubsecentry=\numsubsubsecentry
+\def\unnsubsubsecentry#1#2#3#4{\dosubsubsecentry{#1}{#4}}
+
+% This parameter controls the indentation of the various levels.
+% Same as \defaultparindent.
+\newdimen\tocindent \tocindent = 15pt
+
+% Now for the actual typesetting. In all these, #1 is the text and #2 is the
+% page number.
+%
+% If the toc has to be broken over pages, we want it to be at chapters
+% if at all possible; hence the \penalty.
+\def\dochapentry#1#2{%
+ \penalty-300 \vskip1\baselineskip plus.33\baselineskip minus.25\baselineskip
+ \begingroup
+ \chapentryfonts
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+ \endgroup
+ \nobreak\vskip .25\baselineskip plus.1\baselineskip
+}
+
+\def\dosecentry#1#2{\begingroup
+ \secentryfonts \leftskip=\tocindent
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+\def\dosubsecentry#1#2{\begingroup
+ \subsecentryfonts \leftskip=2\tocindent
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+\def\dosubsubsecentry#1#2{\begingroup
+ \subsubsecentryfonts \leftskip=3\tocindent
+ \tocentry{#1}{\dopageno\bgroup#2\egroup}%
+\endgroup}
+
+% We use the same \entry macro as for the index entries.
+\let\tocentry = \entry
+
+% Space between chapter (or whatever) number and the title.
+\def\labelspace{\hskip1em \relax}
+
+\def\dopageno#1{{\rm #1}}
+\def\doshortpageno#1{{\rm #1}}
+
+\def\chapentryfonts{\secfonts \rm}
+\def\secentryfonts{\textfonts}
+\def\subsecentryfonts{\textfonts}
+\def\subsubsecentryfonts{\textfonts}
+
+
+\message{environments,}
+% @foo ... @end foo.
+
+% @tex ... @end tex escapes into raw TeX temporarily.
+% One exception: @ is still an escape character, so that @end tex works.
+% But \@ or @@ will get a plain @ character.
+
+\envdef\tex{%
+ \setupmarkupstyle{tex}%
+ \catcode `\\=0 \catcode `\{=1 \catcode `\}=2
+ \catcode `\$=3 \catcode `\&=4 \catcode `\#=6
+ \catcode `\^=7 \catcode `\_=8 \catcode `\~=\active \let~=\tie
+ \catcode `\%=14
+ \catcode `\+=\other
+ \catcode `\"=\other
+ \catcode `\|=\other
+ \catcode `\<=\other
+ \catcode `\>=\other
+ \catcode`\`=\other
+ \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
+ \let\,=\ptexcomma
+ \let\.=\ptexdot
+ \let\dots=\ptexdots
+ \let\equiv=\ptexequiv
+ \let\!=\ptexexclam
+ \let\i=\ptexi
+ \let\indent=\ptexindent
+ \let\noindent=\ptexnoindent
+ \let\{=\ptexlbrace
+ \let\+=\tabalign
+ \let\}=\ptexrbrace
+ \let\/=\ptexslash
+ \let\*=\ptexstar
+ \let\t=\ptext
+ \expandafter \let\csname top\endcsname=\ptextop % outer
+ \let\frenchspacing=\plainfrenchspacing
+ %
+ \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
+ \def\enddots{\relax\ifmmode\endldots\else$\mathsurround=0pt \endldots\,$\fi}%
+ \def\@{@}%
+}
+% There is no need to define \Etex.
+
+% Define @lisp ... @end lisp.
+% @lisp environment forms a group so it can rebind things,
+% including the definition of @end lisp (which normally is erroneous).
+
+% Amount to narrow the margins by for @lisp.
+\newskip\lispnarrowing \lispnarrowing=0.4in
+
+% This is the definition that ^^M gets inside @lisp, @example, and other
+% such environments. \null is better than a space, since it doesn't
+% have any width.
+\def\lisppar{\null\endgraf}
+
+% This space is always present above and below environments.
+\newskip\envskipamount \envskipamount = 0pt
+
+% Make spacing and below environment symmetrical. We use \parskip here
+% to help in doing that, since in @example-like environments \parskip
+% is reset to zero; thus the \afterenvbreak inserts no space -- but the
+% start of the next paragraph will insert \parskip.
+%
+\def\aboveenvbreak{{%
+ % =10000 instead of <10000 because of a special case in \itemzzz and
+ % \sectionheading, q.v.
+ \ifnum \lastpenalty=10000 \else
+ \advance\envskipamount by \parskip
+ \endgraf
+ \ifdim\lastskip<\envskipamount
+ \removelastskip
+ % it's not a good place to break if the last penalty was \nobreak
+ % or better ...
+ \ifnum\lastpenalty<10000 \penalty-50 \fi
+ \vskip\envskipamount
+ \fi
+ \fi
+}}
+
+\let\afterenvbreak = \aboveenvbreak
+
+% \nonarrowing is a flag. If "set", @lisp etc don't narrow margins; it will
+% also clear it, so that its embedded environments do the narrowing again.
+\let\nonarrowing=\relax
+
+% @cartouche ... @end cartouche: draw rectangle w/rounded corners around
+% environment contents.
+\font\circle=lcircle10
+\newdimen\circthick
+\newdimen\cartouter\newdimen\cartinner
+\newskip\normbskip\newskip\normpskip\newskip\normlskip
+\circthick=\fontdimen8\circle
+%
+\def\ctl{{\circle\char'013\hskip -6pt}}% 6pt from pl file: 1/2charwidth
+\def\ctr{{\hskip 6pt\circle\char'010}}
+\def\cbl{{\circle\char'012\hskip -6pt}}
+\def\cbr{{\hskip 6pt\circle\char'011}}
+\def\carttop{\hbox to \cartouter{\hskip\lskip
+ \ctl\leaders\hrule height\circthick\hfil\ctr
+ \hskip\rskip}}
+\def\cartbot{\hbox to \cartouter{\hskip\lskip
+ \cbl\leaders\hrule height\circthick\hfil\cbr
+ \hskip\rskip}}
+%
+\newskip\lskip\newskip\rskip
+
+\envdef\cartouche{%
+ \ifhmode\par\fi % can't be in the midst of a paragraph.
+ \startsavinginserts
+ \lskip=\leftskip \rskip=\rightskip
+ \leftskip=0pt\rightskip=0pt % we want these *outside*.
+ \cartinner=\hsize \advance\cartinner by-\lskip
+ \advance\cartinner by-\rskip
+ \cartouter=\hsize
+ \advance\cartouter by 18.4pt % allow for 3pt kerns on either
+ % side, and for 6pt waste from
+ % each corner char, and rule thickness
+ \normbskip=\baselineskip \normpskip=\parskip \normlskip=\lineskip
+ % Flag to tell @lisp, etc., not to narrow margin.
+ \let\nonarrowing = t%
+ %
+ % If this cartouche directly follows a sectioning command, we need the
+ % \parskip glue (backspaced over by default) or the cartouche can
+ % collide with the section heading.
+ \ifnum\lastpenalty>10000 \vskip\parskip \fi
+ %
+ \vbox\bgroup
+ \baselineskip=0pt\parskip=0pt\lineskip=0pt
+ \carttop
+ \hbox\bgroup
+ \hskip\lskip
+ \vrule\kern3pt
+ \vbox\bgroup
+ \kern3pt
+ \hsize=\cartinner
+ \baselineskip=\normbskip
+ \lineskip=\normlskip
+ \parskip=\normpskip
+ \vskip -\parskip
+ \comment % For explanation, see the end of def\group.
+}
+\def\Ecartouche{%
+ \ifhmode\par\fi
+ \kern3pt
+ \egroup
+ \kern3pt\vrule
+ \hskip\rskip
+ \egroup
+ \cartbot
+ \egroup
+ \checkinserts
+}
+
+
+% This macro is called at the beginning of all the @example variants,
+% inside a group.
+\newdimen\nonfillparindent
+\def\nonfillstart{%
+ \aboveenvbreak
+ \hfuzz = 12pt % Don't be fussy
+ \sepspaces % Make spaces be word-separators rather than space tokens.
+ \let\par = \lisppar % don't ignore blank lines
+ \obeylines % each line of input is a line of output
+ \parskip = 0pt
+ % Turn off paragraph indentation but redefine \indent to emulate
+ % the normal \indent.
+ \nonfillparindent=\parindent
+ \parindent = 0pt
+ \let\indent\nonfillindent
+ %
+ \emergencystretch = 0pt % don't try to avoid overfull boxes
+ \ifx\nonarrowing\relax
+ \advance \leftskip by \lispnarrowing
+ \exdentamount=\lispnarrowing
+ \else
+ \let\nonarrowing = \relax
+ \fi
+ \let\exdent=\nofillexdent
+}
+
+\begingroup
+\obeyspaces
+% We want to swallow spaces (but not other tokens) after the fake
+% @indent in our nonfill-environments, where spaces are normally
+% active and set to @tie, resulting in them not being ignored after
+% @indent.
+\gdef\nonfillindent{\futurelet\temp\nonfillindentcheck}%
+\gdef\nonfillindentcheck{%
+\ifx\temp %
+\expandafter\nonfillindentgobble%
+\else%
+\leavevmode\nonfillindentbox%
+\fi%
+}%
+\endgroup
+\def\nonfillindentgobble#1{\nonfillindent}
+\def\nonfillindentbox{\hbox to \nonfillparindent{\hss}}
+
+% If you want all examples etc. small: @set dispenvsize small.
+% If you want even small examples the full size: @set dispenvsize nosmall.
+% This affects the following displayed environments:
+% @example, @display, @format, @lisp
+%
+\def\smallword{small}
+\def\nosmallword{nosmall}
+\let\SETdispenvsize\relax
+\def\setnormaldispenv{%
+ \ifx\SETdispenvsize\smallword
+ % end paragraph for sake of leading, in case document has no blank
+ % line. This is redundant with what happens in \aboveenvbreak, but
+ % we need to do it before changing the fonts, and it's inconvenient
+ % to change the fonts afterward.
+ \ifnum \lastpenalty=10000 \else \endgraf \fi
+ \smallexamplefonts \rm
+ \fi
+}
+\def\setsmalldispenv{%
+ \ifx\SETdispenvsize\nosmallword
+ \else
+ \ifnum \lastpenalty=10000 \else \endgraf \fi
+ \smallexamplefonts \rm
+ \fi
+}
+
+% We often define two environments, @foo and @smallfoo.
+% Let's do it in one command. #1 is the env name, #2 the definition.
+\def\makedispenvdef#1#2{%
+ \expandafter\envdef\csname#1\endcsname {\setnormaldispenv #2}%
+ \expandafter\envdef\csname small#1\endcsname {\setsmalldispenv #2}%
+ \expandafter\let\csname E#1\endcsname \afterenvbreak
+ \expandafter\let\csname Esmall#1\endcsname \afterenvbreak
+}
+
+% Define two environment synonyms (#1 and #2) for an environment.
+\def\maketwodispenvdef#1#2#3{%
+ \makedispenvdef{#1}{#3}%
+ \makedispenvdef{#2}{#3}%
+}
+%
+% @lisp: indented, narrowed, typewriter font;
+% @example: same as @lisp.
+%
+% @smallexample and @smalllisp: use smaller fonts.
+% Originally contributed by Pavel@xerox.
+%
+\maketwodispenvdef{lisp}{example}{%
+ \nonfillstart
+ \tt\setupmarkupstyle{example}%
+ \let\kbdfont = \kbdexamplefont % Allow @kbd to do something special.
+ \gobble % eat return
+}
+% @display/@smalldisplay: same as @lisp except keep current font.
+%
+\makedispenvdef{display}{%
+ \nonfillstart
+ \gobble
+}
+
+% @format/@smallformat: same as @display except don't narrow margins.
+%
+\makedispenvdef{format}{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ \gobble
+}
+
+% @flushleft: same as @format, but doesn't obey \SETdispenvsize.
+\envdef\flushleft{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ \gobble
+}
+\let\Eflushleft = \afterenvbreak
+
+% @flushright.
+%
+\envdef\flushright{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ \advance\leftskip by 0pt plus 1fill\relax
+ \gobble
+}
+\let\Eflushright = \afterenvbreak
+
+
+% @raggedright does more-or-less normal line breaking but no right
+% justification. From plain.tex.
+\envdef\raggedright{%
+ \rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax
+}
+\let\Eraggedright\par
+
+\envdef\raggedleft{%
+ \parindent=0pt \leftskip0pt plus2em
+ \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt
+ \hbadness=10000 % Last line will usually be underfull, so turn off
+ % badness reporting.
+}
+\let\Eraggedleft\par
+
+\envdef\raggedcenter{%
+ \parindent=0pt \rightskip0pt plus1em \leftskip0pt plus1em
+ \spaceskip.3333em \xspaceskip.5em \parfillskip=0pt
+ \hbadness=10000 % Last line will usually be underfull, so turn off
+ % badness reporting.
+}
+\let\Eraggedcenter\par
+
+
+% @quotation does normal linebreaking (hence we can't use \nonfillstart)
+% and narrows the margins. We keep \parskip nonzero in general, since
+% we're doing normal filling. So, when using \aboveenvbreak and
+% \afterenvbreak, temporarily make \parskip 0.
+%
+\makedispenvdef{quotation}{\quotationstart}
+%
+\def\quotationstart{%
+ {\parskip=0pt \aboveenvbreak}% because \aboveenvbreak inserts \parskip
+ \parindent=0pt
+ %
+ % @cartouche defines \nonarrowing to inhibit narrowing at next level down.
+ \ifx\nonarrowing\relax
+ \advance\leftskip by \lispnarrowing
+ \advance\rightskip by \lispnarrowing
+ \exdentamount = \lispnarrowing
+ \else
+ \let\nonarrowing = \relax
+ \fi
+ \parsearg\quotationlabel
+}
+
+% We have retained a nonzero parskip for the environment, since we're
+% doing normal filling.
+%
+\def\Equotation{%
+ \par
+ \ifx\quotationauthor\thisisundefined\else
+ % indent a bit.
+ \leftline{\kern 2\leftskip \sl ---\quotationauthor}%
+ \fi
+ {\parskip=0pt \afterenvbreak}%
+}
+\def\Esmallquotation{\Equotation}
+
+% If we're given an argument, typeset it in bold with a colon after.
+\def\quotationlabel#1{%
+ \def\temp{#1}%
+ \ifx\temp\empty \else
+ {\bf #1: }%
+ \fi
+}
+
+
+% LaTeX-like @verbatim...@end verbatim and @verb{<char>...<char>}
+% If we want to allow any <char> as delimiter,
+% we need the curly braces so that makeinfo sees the @verb command, eg:
+% `@verbx...x' would look like the '@verbx' command. --janneke@gnu.org
+%
+% [Knuth]: Donald Ervin Knuth, 1996. The TeXbook.
+%
+% [Knuth] p.344; only we need to do the other characters Texinfo sets
+% active too. Otherwise, they get lost as the first character on a
+% verbatim line.
+\def\dospecials{%
+ \do\ \do\\\do\{\do\}\do\$\do\&%
+ \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~%
+ \do\<\do\>\do\|\do\@\do+\do\"%
+ % Don't do the quotes -- if we do, @set txicodequoteundirected and
+ % @set txicodequotebacktick will not have effect on @verb and
+ % @verbatim, and ?` and !` ligatures won't get disabled.
+ %\do\`\do\'%
+}
+%
+% [Knuth] p. 380
+\def\uncatcodespecials{%
+ \def\do##1{\catcode`##1=\other}\dospecials}
+%
+% Setup for the @verb command.
+%
+% Eight spaces for a tab
+\begingroup
+ \catcode`\^^I=\active
+ \gdef\tabeightspaces{\catcode`\^^I=\active\def^^I{\ \ \ \ \ \ \ \ }}
+\endgroup
+%
+\def\setupverb{%
+ \tt % easiest (and conventionally used) font for verbatim
+ \def\par{\leavevmode\endgraf}%
+ \setupmarkupstyle{verb}%
+ \tabeightspaces
+ % Respect line breaks,
+ % print special symbols as themselves, and
+ % make each space count
+ % must do in this order:
+ \obeylines \uncatcodespecials \sepspaces
+}
+
+% Setup for the @verbatim environment
+%
+% Real tab expansion.
+\newdimen\tabw \setbox0=\hbox{\tt\space} \tabw=8\wd0 % tab amount
+%
+% We typeset each line of the verbatim in an \hbox, so we can handle
+% tabs. The \global is in case the verbatim line starts with an accent,
+% or some other command that starts with a begin-group. Otherwise, the
+% entire \verbbox would disappear at the corresponding end-group, before
+% it is typeset. Meanwhile, we can't have nested verbatim commands
+% (can we?), so the \global won't be overwriting itself.
+\newbox\verbbox
+\def\starttabbox{\global\setbox\verbbox=\hbox\bgroup}
+%
+\begingroup
+ \catcode`\^^I=\active
+ \gdef\tabexpand{%
+ \catcode`\^^I=\active
+ \def^^I{\leavevmode\egroup
+ \dimen\verbbox=\wd\verbbox % the width so far, or since the previous tab
+ \divide\dimen\verbbox by\tabw
+ \multiply\dimen\verbbox by\tabw % compute previous multiple of \tabw
+ \advance\dimen\verbbox by\tabw % advance to next multiple of \tabw
+ \wd\verbbox=\dimen\verbbox \box\verbbox \starttabbox
+ }%
+ }
+\endgroup
+
+% start the verbatim environment.
+\def\setupverbatim{%
+ \let\nonarrowing = t%
+ \nonfillstart
+ \tt % easiest (and conventionally used) font for verbatim
+ % The \leavevmode here is for blank lines. Otherwise, we would
+ % never \starttabox and the \egroup would end verbatim mode.
+ \def\par{\leavevmode\egroup\box\verbbox\endgraf}%
+ \tabexpand
+ \setupmarkupstyle{verbatim}%
+ % Respect line breaks,
+ % print special symbols as themselves, and
+ % make each space count.
+ % Must do in this order:
+ \obeylines \uncatcodespecials \sepspaces
+ \everypar{\starttabbox}%
+}
+
+% Do the @verb magic: verbatim text is quoted by unique
+% delimiter characters. Before first delimiter expect a
+% right brace, after last delimiter expect closing brace:
+%
+% \def\doverb'{'<char>#1<char>'}'{#1}
+%
+% [Knuth] p. 382; only eat outer {}
+\begingroup
+ \catcode`[=1\catcode`]=2\catcode`\{=\other\catcode`\}=\other
+ \gdef\doverb{#1[\def\next##1#1}[##1\endgroup]\next]
+\endgroup
+%
+\def\verb{\begingroup\setupverb\doverb}
+%
+%
+% Do the @verbatim magic: define the macro \doverbatim so that
+% the (first) argument ends when '@end verbatim' is reached, ie:
+%
+% \def\doverbatim#1@end verbatim{#1}
+%
+% For Texinfo it's a lot easier than for LaTeX,
+% because texinfo's \verbatim doesn't stop at '\end{verbatim}':
+% we need not redefine '\', '{' and '}'.
+%
+% Inspired by LaTeX's verbatim command set [latex.ltx]
+%
+\begingroup
+ \catcode`\ =\active
+ \obeylines %
+ % ignore everything up to the first ^^M, that's the newline at the end
+ % of the @verbatim input line itself. Otherwise we get an extra blank
+ % line in the output.
+ \xdef\doverbatim#1^^M#2@end verbatim{#2\noexpand\end\gobble verbatim}%
+ % We really want {...\end verbatim} in the body of the macro, but
+ % without the active space; thus we have to use \xdef and \gobble.
+\endgroup
+%
+\envdef\verbatim{%
+ \setupverbatim\doverbatim
+}
+\let\Everbatim = \afterenvbreak
+
+
+% @verbatiminclude FILE - insert text of file in verbatim environment.
+%
+\def\verbatiminclude{\parseargusing\filenamecatcodes\doverbatiminclude}
+%
+\def\doverbatiminclude#1{%
+ {%
+ \makevalueexpandable
+ \setupverbatim
+ \indexnofonts % Allow `@@' and other weird things in file names.
+ \wlog{texinfo.tex: doing @verbatiminclude of #1^^J}%
+ \input #1
+ \afterenvbreak
+ }%
+}
+
+% @copying ... @end copying.
+% Save the text away for @insertcopying later.
+%
+% We save the uninterpreted tokens, rather than creating a box.
+% Saving the text in a box would be much easier, but then all the
+% typesetting commands (@smallbook, font changes, etc.) have to be done
+% beforehand -- and a) we want @copying to be done first in the source
+% file; b) letting users define the frontmatter in as flexible order as
+% possible is very desirable.
+%
+\def\copying{\checkenv{}\begingroup\scanargctxt\docopying}
+\def\docopying#1@end copying{\endgroup\def\copyingtext{#1}}
+%
+\def\insertcopying{%
+ \begingroup
+ \parindent = 0pt % paragraph indentation looks wrong on title page
+ \scanexp\copyingtext
+ \endgroup
+}
+
+
+\message{defuns,}
+% @defun etc.
+
+\newskip\defbodyindent \defbodyindent=.4in
+\newskip\defargsindent \defargsindent=50pt
+\newskip\deflastargmargin \deflastargmargin=18pt
+\newcount\defunpenalty
+
+% Start the processing of @deffn:
+\def\startdefun{%
+ \ifnum\lastpenalty<10000
+ \medbreak
+ \defunpenalty=10003 % Will keep this @deffn together with the
+ % following @def command, see below.
+ \else
+ % If there are two @def commands in a row, we'll have a \nobreak,
+ % which is there to keep the function description together with its
+ % header. But if there's nothing but headers, we need to allow a
+ % break somewhere. Check specifically for penalty 10002, inserted
+ % by \printdefunline, instead of 10000, since the sectioning
+ % commands also insert a nobreak penalty, and we don't want to allow
+ % a break between a section heading and a defun.
+ %
+ % As a further refinement, we avoid "club" headers by signalling
+ % with penalty of 10003 after the very first @deffn in the
+ % sequence (see above), and penalty of 10002 after any following
+ % @def command.
+ \ifnum\lastpenalty=10002 \penalty2000 \else \defunpenalty=10002 \fi
+ %
+ % Similarly, after a section heading, do not allow a break.
+ % But do insert the glue.
+ \medskip % preceded by discardable penalty, so not a breakpoint
+ \fi
+ %
+ \parindent=0in
+ \advance\leftskip by \defbodyindent
+ \exdentamount=\defbodyindent
+}
+
+\def\dodefunx#1{%
+ % First, check whether we are in the right environment:
+ \checkenv#1%
+ %
+ % As above, allow line break if we have multiple x headers in a row.
+ % It's not a great place, though.
+ \ifnum\lastpenalty=10002 \penalty3000 \else \defunpenalty=10002 \fi
+ %
+ % And now, it's time to reuse the body of the original defun:
+ \expandafter\gobbledefun#1%
+}
+\def\gobbledefun#1\startdefun{}
+
+% \printdefunline \deffnheader{text}
+%
+\def\printdefunline#1#2{%
+ \begingroup
+ % call \deffnheader:
+ #1#2 \endheader
+ % common ending:
+ \interlinepenalty = 10000
+ \advance\rightskip by 0pt plus 1fil\relax
+ \endgraf
+ \nobreak\vskip -\parskip
+ \penalty\defunpenalty % signal to \startdefun and \dodefunx
+ % Some of the @defun-type tags do not enable magic parentheses,
+ % rendering the following check redundant. But we don't optimize.
+ \checkparencounts
+ \endgroup
+}
+
+\def\Edefun{\endgraf\medbreak}
+
+% \makedefun{deffn} creates \deffn, \deffnx and \Edeffn;
+% the only thing remaining is to define \deffnheader.
+%
+\def\makedefun#1{%
+ \expandafter\let\csname E#1\endcsname = \Edefun
+ \edef\temp{\noexpand\domakedefun
+ \makecsname{#1}\makecsname{#1x}\makecsname{#1header}}%
+ \temp
+}
+
+% \domakedefun \deffn \deffnx \deffnheader
+%
+% Define \deffn and \deffnx, without parameters.
+% \deffnheader has to be defined explicitly.
+%
+\def\domakedefun#1#2#3{%
+ \envdef#1{%
+ \startdefun
+ \doingtypefnfalse % distinguish typed functions from all else
+ \parseargusing\activeparens{\printdefunline#3}%
+ }%
+ \def#2{\dodefunx#1}%
+ \def#3%
+}
+
+\newif\ifdoingtypefn % doing typed function?
+\newif\ifrettypeownline % typeset return type on its own line?
+
+% @deftypefnnewline on|off says whether the return type of typed functions
+% are printed on their own line. This affects @deftypefn, @deftypefun,
+% @deftypeop, and @deftypemethod.
+%
+\parseargdef\deftypefnnewline{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETtxideftypefnnl\endcsname
+ = \empty
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETtxideftypefnnl\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @txideftypefnnl value `\temp',
+ must be on|off}%
+ \fi\fi
+}
+
+% Untyped functions:
+
+% @deffn category name args
+\makedefun{deffn}{\deffngeneral{}}
+
+% @deffn category class name args
+\makedefun{defop}#1 {\defopon{#1\ \putwordon}}
+
+% \defopon {category on}class name args
+\def\defopon#1#2 {\deffngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+
+% \deffngeneral {subind}category name args
+%
+\def\deffngeneral#1#2 #3 #4\endheader{%
+ % Remember that \dosubind{fn}{foo}{} is equivalent to \doind{fn}{foo}.
+ \dosubind{fn}{\code{#3}}{#1}%
+ \defname{#2}{}{#3}\magicamp\defunargs{#4\unskip}%
+}
+
+% Typed functions:
+
+% @deftypefn category type name args
+\makedefun{deftypefn}{\deftypefngeneral{}}
+
+% @deftypeop category class type name args
+\makedefun{deftypeop}#1 {\deftypeopon{#1\ \putwordon}}
+
+% \deftypeopon {category on}class type name args
+\def\deftypeopon#1#2 {\deftypefngeneral{\putwordon\ \code{#2}}{#1\ \code{#2}} }
+
+% \deftypefngeneral {subind}category type name args
+%
+\def\deftypefngeneral#1#2 #3 #4 #5\endheader{%
+ \dosubind{fn}{\code{#4}}{#1}%
+ \doingtypefntrue
+ \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
+}
+
+% Typed variables:
+
+% @deftypevr category type var args
+\makedefun{deftypevr}{\deftypecvgeneral{}}
+
+% @deftypecv category class type var args
+\makedefun{deftypecv}#1 {\deftypecvof{#1\ \putwordof}}
+
+% \deftypecvof {category of}class type var args
+\def\deftypecvof#1#2 {\deftypecvgeneral{\putwordof\ \code{#2}}{#1\ \code{#2}} }
+
+% \deftypecvgeneral {subind}category type var args
+%
+\def\deftypecvgeneral#1#2 #3 #4 #5\endheader{%
+ \dosubind{vr}{\code{#4}}{#1}%
+ \defname{#2}{#3}{#4}\defunargs{#5\unskip}%
+}
+
+% Untyped variables:
+
+% @defvr category var args
+\makedefun{defvr}#1 {\deftypevrheader{#1} {} }
+
+% @defcv category class var args
+\makedefun{defcv}#1 {\defcvof{#1\ \putwordof}}
+
+% \defcvof {category of}class var args
+\def\defcvof#1#2 {\deftypecvof{#1}#2 {} }
+
+% Types:
+
+% @deftp category name args
+\makedefun{deftp}#1 #2 #3\endheader{%
+ \doind{tp}{\code{#2}}%
+ \defname{#1}{}{#2}\defunargs{#3\unskip}%
+}
+
+% Remaining @defun-like shortcuts:
+\makedefun{defun}{\deffnheader{\putwordDeffunc} }
+\makedefun{defmac}{\deffnheader{\putwordDefmac} }
+\makedefun{defspec}{\deffnheader{\putwordDefspec} }
+\makedefun{deftypefun}{\deftypefnheader{\putwordDeffunc} }
+\makedefun{defvar}{\defvrheader{\putwordDefvar} }
+\makedefun{defopt}{\defvrheader{\putwordDefopt} }
+\makedefun{deftypevar}{\deftypevrheader{\putwordDefvar} }
+\makedefun{defmethod}{\defopon\putwordMethodon}
+\makedefun{deftypemethod}{\deftypeopon\putwordMethodon}
+\makedefun{defivar}{\defcvof\putwordInstanceVariableof}
+\makedefun{deftypeivar}{\deftypecvof\putwordInstanceVariableof}
+
+% \defname, which formats the name of the @def (not the args).
+% #1 is the category, such as "Function".
+% #2 is the return type, if any.
+% #3 is the function name.
+%
+% We are followed by (but not passed) the arguments, if any.
+%
+\def\defname#1#2#3{%
+ \par
+ % Get the values of \leftskip and \rightskip as they were outside the @def...
+ \advance\leftskip by -\defbodyindent
+ %
+ % Determine if we are typesetting the return type of a typed function
+ % on a line by itself.
+ \rettypeownlinefalse
+ \ifdoingtypefn % doing a typed function specifically?
+ % then check user option for putting return type on its own line:
+ \expandafter\ifx\csname SETtxideftypefnnl\endcsname\relax \else
+ \rettypeownlinetrue
+ \fi
+ \fi
+ %
+ % How we'll format the category name. Putting it in brackets helps
+ % distinguish it from the body text that may end up on the next line
+ % just below it.
+ \def\temp{#1}%
+ \setbox0=\hbox{\kern\deflastargmargin \ifx\temp\empty\else [\rm\temp]\fi}
+ %
+ % Figure out line sizes for the paragraph shape. We'll always have at
+ % least two.
+ \tempnum = 2
+ %
+ % The first line needs space for \box0; but if \rightskip is nonzero,
+ % we need only space for the part of \box0 which exceeds it:
+ \dimen0=\hsize \advance\dimen0 by -\wd0 \advance\dimen0 by \rightskip
+ %
+ % If doing a return type on its own line, we'll have another line.
+ \ifrettypeownline
+ \advance\tempnum by 1
+ \def\maybeshapeline{0in \hsize}%
+ \else
+ \def\maybeshapeline{}%
+ \fi
+ %
+ % The continuations:
+ \dimen2=\hsize \advance\dimen2 by -\defargsindent
+ %
+ % The final paragraph shape:
+ \parshape \tempnum 0in \dimen0 \maybeshapeline \defargsindent \dimen2
+ %
+ % Put the category name at the right margin.
+ \noindent
+ \hbox to 0pt{%
+ \hfil\box0 \kern-\hsize
+ % \hsize has to be shortened this way:
+ \kern\leftskip
+ % Intentionally do not respect \rightskip, since we need the space.
+ }%
+ %
+ % Allow all lines to be underfull without complaint:
+ \tolerance=10000 \hbadness=10000
+ \exdentamount=\defbodyindent
+ {%
+ % defun fonts. We use typewriter by default (used to be bold) because:
+ % . we're printing identifiers, they should be in tt in principle.
+ % . in languages with many accents, such as Czech or French, it's
+ % common to leave accents off identifiers. The result looks ok in
+ % tt, but exceedingly strange in rm.
+ % . we don't want -- and --- to be treated as ligatures.
+ % . this still does not fix the ?` and !` ligatures, but so far no
+ % one has made identifiers using them :).
+ \df \tt
+ \def\temp{#2}% text of the return type
+ \ifx\temp\empty\else
+ \tclose{\temp}% typeset the return type
+ \ifrettypeownline
+ % put return type on its own line; prohibit line break following:
+ \hfil\vadjust{\nobreak}\break
+ \else
+ \space % type on same line, so just followed by a space
+ \fi
+ \fi % no return type
+ #3% output function name
+ }%
+ {\rm\enskip}% hskip 0.5 em of \tenrm
+ %
+ \boldbrax
+ % arguments will be output next, if any.
+}
+
+% Print arguments in slanted roman (not ttsl), inconsistently with using
+% tt for the name. This is because literal text is sometimes needed in
+% the argument list (groff manual), and ttsl and tt are not very
+% distinguishable. Prevent hyphenation at `-' chars.
+%
+\def\defunargs#1{%
+ % use sl by default (not ttsl),
+ % tt for the names.
+ \df \sl \hyphenchar\font=0
+ %
+ % On the other hand, if an argument has two dashes (for instance), we
+ % want a way to get ttsl. Let's try @var for that.
+ \def\var##1{{\setupmarkupstyle{var}\ttslanted{##1}}}%
+ #1%
+ \sl\hyphenchar\font=45
+}
+
+% We want ()&[] to print specially on the defun line.
+%
+\def\activeparens{%
+ \catcode`\(=\active \catcode`\)=\active
+ \catcode`\[=\active \catcode`\]=\active
+ \catcode`\&=\active
+}
+
+% Make control sequences which act like normal parenthesis chars.
+\let\lparen = ( \let\rparen = )
+
+% Be sure that we always have a definition for `(', etc. For example,
+% if the fn name has parens in it, \boldbrax will not be in effect yet,
+% so TeX would otherwise complain about undefined control sequence.
+{
+ \activeparens
+ \global\let(=\lparen \global\let)=\rparen
+ \global\let[=\lbrack \global\let]=\rbrack
+ \global\let& = \&
+
+ \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb}
+ \gdef\magicamp{\let&=\amprm}
+}
+
+\newcount\parencount
+
+% If we encounter &foo, then turn on ()-hacking afterwards
+\newif\ifampseen
+\def\amprm#1 {\ampseentrue{\bf\&#1 }}
+
+\def\parenfont{%
+ \ifampseen
+ % At the first level, print parens in roman,
+ % otherwise use the default font.
+ \ifnum \parencount=1 \rm \fi
+ \else
+ % The \sf parens (in \boldbrax) actually are a little bolder than
+ % the contained text. This is especially needed for [ and ] .
+ \sf
+ \fi
+}
+\def\infirstlevel#1{%
+ \ifampseen
+ \ifnum\parencount=1
+ #1%
+ \fi
+ \fi
+}
+\def\bfafterword#1 {#1 \bf}
+
+\def\opnr{%
+ \global\advance\parencount by 1
+ {\parenfont(}%
+ \infirstlevel \bfafterword
+}
+\def\clnr{%
+ {\parenfont)}%
+ \infirstlevel \sl
+ \global\advance\parencount by -1
+}
+
+\newcount\brackcount
+\def\lbrb{%
+ \global\advance\brackcount by 1
+ {\bf[}%
+}
+\def\rbrb{%
+ {\bf]}%
+ \global\advance\brackcount by -1
+}
+
+\def\checkparencounts{%
+ \ifnum\parencount=0 \else \badparencount \fi
+ \ifnum\brackcount=0 \else \badbrackcount \fi
+}
+% these should not use \errmessage; the glibc manual, at least, actually
+% has such constructs (when documenting function pointers).
+\def\badparencount{%
+ \message{Warning: unbalanced parentheses in @def...}%
+ \global\parencount=0
+}
+\def\badbrackcount{%
+ \message{Warning: unbalanced square brackets in @def...}%
+ \global\brackcount=0
+}
+
+
+\message{macros,}
+% @macro.
+
+% To do this right we need a feature of e-TeX, \scantokens,
+% which we arrange to emulate with a temporary file in ordinary TeX.
+\ifx\eTeXversion\thisisundefined
+ \newwrite\macscribble
+ \def\scantokens#1{%
+ \toks0={#1}%
+ \immediate\openout\macscribble=\jobname.tmp
+ \immediate\write\macscribble{\the\toks0}%
+ \immediate\closeout\macscribble
+ \input \jobname.tmp
+ }
+\fi
+
+\def\scanmacro#1{\begingroup
+ \newlinechar`\^^M
+ \let\xeatspaces\eatspaces
+ %
+ % Undo catcode changes of \startcontents and \doprintindex
+ % When called from @insertcopying or (short)caption, we need active
+ % backslash to get it printed correctly. Previously, we had
+ % \catcode`\\=\other instead. We'll see whether a problem appears
+ % with macro expansion. --kasal, 19aug04
+ \catcode`\@=0 \catcode`\\=\active \escapechar=`\@
+ %
+ % ... and for \example:
+ \spaceisspace
+ %
+ % The \empty here causes a following catcode 5 newline to be eaten as
+ % part of reading whitespace after a control sequence. It does not
+ % eat a catcode 13 newline. There's no good way to handle the two
+ % cases (untried: maybe e-TeX's \everyeof could help, though plain TeX
+ % would then have different behavior). See the Macro Details node in
+ % the manual for the workaround we recommend for macros and
+ % line-oriented commands.
+ %
+ \scantokens{#1\empty}%
+\endgroup}
+
+\def\scanexp#1{%
+ \edef\temp{\noexpand\scanmacro{#1}}%
+ \temp
+}
+
+\newcount\paramno % Count of parameters
+\newtoks\macname % Macro name
+\newif\ifrecursive % Is it recursive?
+
+% List of all defined macros in the form
+% \definedummyword\macro1\definedummyword\macro2...
+% Currently is also contains all @aliases; the list can be split
+% if there is a need.
+\def\macrolist{}
+
+% Add the macro to \macrolist
+\def\addtomacrolist#1{\expandafter \addtomacrolistxxx \csname#1\endcsname}
+\def\addtomacrolistxxx#1{%
+ \toks0 = \expandafter{\macrolist\definedummyword#1}%
+ \xdef\macrolist{\the\toks0}%
+}
+
+% Utility routines.
+% 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
+ \csname#2\endcsname
+}
+
+% Trim leading and trailing spaces off a string.
+% Concepts from aro-bend problem 15 (see CTAN).
+{\catcode`\@=11
+\gdef\eatspaces #1{\expandafter\trim@\expandafter{#1 }}
+\gdef\trim@ #1{\trim@@ @#1 @ #1 @ @@}
+\gdef\trim@@ #1@ #2@ #3@@{\trim@@@\empty #2 @}
+\def\unbrace#1{#1}
+\unbrace{\gdef\trim@@@ #1 } #2@{#1}
+}
+
+% Trim a single trailing ^^M off a string.
+{\catcode`\^^M=\other \catcode`\Q=3%
+\gdef\eatcr #1{\eatcra #1Q^^MQ}%
+\gdef\eatcra#1^^MQ{\eatcrb#1Q}%
+\gdef\eatcrb#1Q#2Q{#1}%
+}
+
+% Macro bodies are absorbed as an argument in a context where
+% all characters are catcode 10, 11 or 12, except \ which is active
+% (as in normal texinfo). It is necessary to change the definition of \
+% to recognize macro arguments; this is the job of \mbodybackslash.
+%
+% Non-ASCII encodings make 8-bit characters active, so un-activate
+% them to avoid their expansion. Must do this non-globally, to
+% confine the change to the current group.
+%
+% It's necessary to have hard CRs when the macro is executed. This is
+% done by making ^^M (\endlinechar) catcode 12 when reading the macro
+% body, and then making it the \newlinechar in \scanmacro.
+%
+\def\scanctxt{% used as subroutine
+ \catcode`\"=\other
+ \catcode`\+=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\@=\other
+ \catcode`\^=\other
+ \catcode`\_=\other
+ \catcode`\|=\other
+ \catcode`\~=\other
+ \ifx\declaredencoding\ascii \else \setnonasciicharscatcodenonglobal\other \fi
+}
+
+\def\scanargctxt{% used for copying and captions, not macros.
+ \scanctxt
+ \catcode`\\=\other
+ \catcode`\^^M=\other
+}
+
+\def\macrobodyctxt{% used for @macro definitions
+ \scanctxt
+ \catcode`\{=\other
+ \catcode`\}=\other
+ \catcode`\^^M=\other
+ \usembodybackslash
+}
+
+\def\macroargctxt{% used when scanning invocations
+ \scanctxt
+ \catcode`\\=0
+}
+% why catcode 0 for \ in the above? To recognize \\ \{ \} as "escapes"
+% for the single characters \ { }. Thus, we end up with the "commands"
+% that would be written @\ @{ @} in a Texinfo document.
+%
+% We already have @{ and @}. For @\, we define it here, and only for
+% this purpose, to produce a typewriter backslash (so, the @\ that we
+% define for @math can't be used with @macro calls):
+%
+\def\\{\normalbackslash}%
+%
+% We would like to do this for \, too, since that is what makeinfo does.
+% But it is not possible, because Texinfo already has a command @, for a
+% cedilla accent. Documents must use @comma{} instead.
+%
+% \anythingelse will almost certainly be an error of some kind.
+
+
+% \mbodybackslash is the definition of \ in @macro bodies.
+% It maps \foo\ => \csname macarg.foo\endcsname => #N
+% where N is the macro parameter number.
+% We define \csname macarg.\endcsname to be \realbackslash, so
+% \\ in macro replacement text gets you a backslash.
+%
+{\catcode`@=0 @catcode`@\=@active
+ @gdef@usembodybackslash{@let\=@mbodybackslash}
+ @gdef@mbodybackslash#1\{@csname macarg.#1@endcsname}
+}
+\expandafter\def\csname macarg.\endcsname{\realbackslash}
+
+\def\margbackslash#1{\char`\#1 }
+
+\def\macro{\recursivefalse\parsearg\macroxxx}
+\def\rmacro{\recursivetrue\parsearg\macroxxx}
+
+\def\macroxxx#1{%
+ \getargs{#1}% now \macname is the macname and \argl the arglist
+ \ifx\argl\empty % no arguments
+ \paramno=0\relax
+ \else
+ \expandafter\parsemargdef \argl;%
+ \if\paramno>256\relax
+ \ifx\eTeXversion\thisisundefined
+ \errhelp = \EMsimple
+ \errmessage{You need eTeX to compile a file with macros with more than 256 arguments}
+ \fi
+ \fi
+ \fi
+ \if1\csname ismacro.\the\macname\endcsname
+ \message{Warning: redefining \the\macname}%
+ \else
+ \expandafter\ifx\csname \the\macname\endcsname \relax
+ \else \errmessage{Macro name \the\macname\space already defined}\fi
+ \global\cslet{macsave.\the\macname}{\the\macname}%
+ \global\expandafter\let\csname ismacro.\the\macname\endcsname=1%
+ \addtomacrolist{\the\macname}%
+ \fi
+ \begingroup \macrobodyctxt
+ \ifrecursive \expandafter\parsermacbody
+ \else \expandafter\parsemacbody
+ \fi}
+
+\parseargdef\unmacro{%
+ \if1\csname ismacro.#1\endcsname
+ \global\cslet{#1}{macsave.#1}%
+ \global\expandafter\let \csname ismacro.#1\endcsname=0%
+ % Remove the macro name from \macrolist:
+ \begingroup
+ \expandafter\let\csname#1\endcsname \relax
+ \let\definedummyword\unmacrodo
+ \xdef\macrolist{\macrolist}%
+ \endgroup
+ \else
+ \errmessage{Macro #1 not defined}%
+ \fi
+}
+
+% Called by \do from \dounmacro on each macro. The idea is to omit any
+% macro definitions that have been changed to \relax.
+%
+\def\unmacrodo#1{%
+ \ifx #1\relax
+ % remove this
+ \else
+ \noexpand\definedummyword \noexpand#1%
+ \fi
+}
+
+% This makes use of the obscure feature that if the last token of a
+% <parameter list> is #, then the preceding argument is delimited by
+% an opening brace, and that opening brace is not consumed.
+\def\getargs#1{\getargsxxx#1{}}
+\def\getargsxxx#1#{\getmacname #1 \relax\getmacargs}
+\def\getmacname#1 #2\relax{\macname={#1}}
+\def\getmacargs#1{\def\argl{#1}}
+
+% For macro processing make @ a letter so that we can make Texinfo private macro names.
+\edef\texiatcatcode{\the\catcode`\@}
+\catcode `@=11\relax
+
+% Parse the optional {params} list. Set up \paramno and \paramlist
+% so \defmacro knows what to do. Define \macarg.BLAH for each BLAH
+% in the params list to some hook where the argument si to be expanded. If
+% there are less than 10 arguments that hook is to be replaced by ##N where N
+% is the position in that list, that is to say the macro arguments are to be
+% defined `a la TeX in the macro body.
+%
+% That gets used by \mbodybackslash (above).
+%
+% We need to get `macro parameter char #' into several definitions.
+% The technique used is stolen from LaTeX: let \hash be something
+% unexpandable, insert that wherever you need a #, and then redefine
+% it to # just before using the token list produced.
+%
+% The same technique is used to protect \eatspaces till just before
+% the macro is used.
+%
+% If there are 10 or more arguments, a different technique is used, where the
+% hook remains in the body, and when macro is to be expanded the body is
+% processed again to replace the arguments.
+%
+% In that case, the hook is \the\toks N-1, and we simply set \toks N-1 to the
+% argument N value and then \edef the body (nothing else will expand because of
+% the catcode regime underwhich the body was input).
+%
+% If you compile with TeX (not eTeX), and you have macros with 10 or more
+% arguments, you need that no macro has more than 256 arguments, otherwise an
+% error is produced.
+\def\parsemargdef#1;{%
+ \paramno=0\def\paramlist{}%
+ \let\hash\relax
+ \let\xeatspaces\relax
+ \parsemargdefxxx#1,;,%
+ % In case that there are 10 or more arguments we parse again the arguments
+ % list to set new definitions for the \macarg.BLAH macros corresponding to
+ % each BLAH argument. It was anyhow needed to parse already once this list
+ % in order to count the arguments, and as macros with at most 9 arguments
+ % are by far more frequent than macro with 10 or more arguments, defining
+ % twice the \macarg.BLAH macros does not cost too much processing power.
+ \ifnum\paramno<10\relax\else
+ \paramno0\relax
+ \parsemmanyargdef@@#1,;,% 10 or more arguments
+ \fi
+}
+\def\parsemargdefxxx#1,{%
+ \if#1;\let\next=\relax
+ \else \let\next=\parsemargdefxxx
+ \advance\paramno by 1
+ \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
+ {\xeatspaces{\hash\the\paramno}}%
+ \edef\paramlist{\paramlist\hash\the\paramno,}%
+ \fi\next}
+
+\def\parsemmanyargdef@@#1,{%
+ \if#1;\let\next=\relax
+ \else
+ \let\next=\parsemmanyargdef@@
+ \edef\tempb{\eatspaces{#1}}%
+ \expandafter\def\expandafter\tempa
+ \expandafter{\csname macarg.\tempb\endcsname}%
+ % Note that we need some extra \noexpand\noexpand, this is because we
+ % don't want \the to be expanded in the \parsermacbody as it uses an
+ % \xdef .
+ \expandafter\edef\tempa
+ {\noexpand\noexpand\noexpand\the\toks\the\paramno}%
+ \advance\paramno by 1\relax
+ \fi\next}
+
+% These two commands read recursive and nonrecursive macro bodies.
+% (They're different since rec and nonrec macros end differently.)
+%
+
+\catcode `\@\texiatcatcode
+\long\def\parsemacbody#1@end macro%
+{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+\long\def\parsermacbody#1@end rmacro%
+{\xdef\temp{\eatcr{#1}}\endgroup\defmacro}%
+\catcode `\@=11\relax
+
+\let\endargs@\relax
+\let\nil@\relax
+\def\nilm@{\nil@}%
+\long\def\nillm@{\nil@}%
+
+% This macro is expanded during the Texinfo macro expansion, not during its
+% definition. It gets all the arguments values and assigns them to macros
+% macarg.ARGNAME
+%
+% #1 is the macro name
+% #2 is the list of argument names
+% #3 is the list of argument values
+\def\getargvals@#1#2#3{%
+ \def\macargdeflist@{}%
+ \def\saveparamlist@{#2}% Need to keep a copy for parameter expansion.
+ \def\paramlist{#2,\nil@}%
+ \def\macroname{#1}%
+ \begingroup
+ \macroargctxt
+ \def\argvaluelist{#3,\nil@}%
+ \def\@tempa{#3}%
+ \ifx\@tempa\empty
+ \setemptyargvalues@
+ \else
+ \getargvals@@
+ \fi
+}
+
+%
+\def\getargvals@@{%
+ \ifx\paramlist\nilm@
+ % Some sanity check needed here that \argvaluelist is also empty.
+ \ifx\argvaluelist\nillm@
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Too many arguments in macro `\macroname'!}%
+ \fi
+ \let\next\macargexpandinbody@
+ \else
+ \ifx\argvaluelist\nillm@
+ % No more arguments values passed to macro. Set remaining named-arg
+ % macros to empty.
+ \let\next\setemptyargvalues@
+ \else
+ % pop current arg name into \@tempb
+ \def\@tempa##1{\pop@{\@tempb}{\paramlist}##1\endargs@}%
+ \expandafter\@tempa\expandafter{\paramlist}%
+ % pop current argument value into \@tempc
+ \def\@tempa##1{\longpop@{\@tempc}{\argvaluelist}##1\endargs@}%
+ \expandafter\@tempa\expandafter{\argvaluelist}%
+ % Here \@tempb is the current arg name and \@tempc is the current arg value.
+ % First place the new argument macro definition into \@tempd
+ \expandafter\macname\expandafter{\@tempc}%
+ \expandafter\let\csname macarg.\@tempb\endcsname\relax
+ \expandafter\def\expandafter\@tempe\expandafter{%
+ \csname macarg.\@tempb\endcsname}%
+ \edef\@tempd{\long\def\@tempe{\the\macname}}%
+ \push@\@tempd\macargdeflist@
+ \let\next\getargvals@@
+ \fi
+ \fi
+ \next
+}
+
+\def\push@#1#2{%
+ \expandafter\expandafter\expandafter\def
+ \expandafter\expandafter\expandafter#2%
+ \expandafter\expandafter\expandafter{%
+ \expandafter#1#2}%
+}
+
+% Replace arguments by their values in the macro body, and place the result
+% in macro \@tempa
+\def\macvalstoargs@{%
+ % To do this we use the property that token registers that are \the'ed
+ % within an \edef expand only once. So we are going to place all argument
+ % values into respective token registers.
+ %
+ % First we save the token context, and initialize argument numbering.
+ \begingroup
+ \paramno0\relax
+ % Then, for each argument number #N, we place the corresponding argument
+ % value into a new token list register \toks#N
+ \expandafter\putargsintokens@\saveparamlist@,;,%
+ % Then, we expand the body so that argument are replaced by their
+ % values. The trick for values not to be expanded themselves is that they
+ % are within tokens and that tokens expand only once in an \edef .
+ \edef\@tempc{\csname mac.\macroname .body\endcsname}%
+ % Now we restore the token stack pointer to free the token list registers
+ % which we have used, but we make sure that expanded body is saved after
+ % group.
+ \expandafter
+ \endgroup
+ \expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
+ }
+
+\def\macargexpandinbody@{%
+ %% Define the named-macro outside of this group and then close this group.
+ \expandafter
+ \endgroup
+ \macargdeflist@
+ % First the replace in body the macro arguments by their values, the result
+ % is in \@tempa .
+ \macvalstoargs@
+ % Then we point at the \norecurse or \gobble (for recursive) macro value
+ % with \@tempb .
+ \expandafter\let\expandafter\@tempb\csname mac.\macroname .recurse\endcsname
+ % Depending on whether it is recursive or not, we need some tailing
+ % \egroup .
+ \ifx\@tempb\gobble
+ \let\@tempc\relax
+ \else
+ \let\@tempc\egroup
+ \fi
+ % And now we do the real job:
+ \edef\@tempd{\noexpand\@tempb{\macroname}\noexpand\scanmacro{\@tempa}\@tempc}%
+ \@tempd
+}
+
+\def\putargsintokens@#1,{%
+ \if#1;\let\next\relax
+ \else
+ \let\next\putargsintokens@
+ % First we allocate the new token list register, and give it a temporary
+ % alias \@tempb .
+ \toksdef\@tempb\the\paramno
+ % Then we place the argument value into that token list register.
+ \expandafter\let\expandafter\@tempa\csname macarg.#1\endcsname
+ \expandafter\@tempb\expandafter{\@tempa}%
+ \advance\paramno by 1\relax
+ \fi
+ \next
+}
+
+% Save the token stack pointer into macro #1
+\def\texisavetoksstackpoint#1{\edef#1{\the\@cclvi}}
+% Restore the token stack pointer from number in macro #1
+\def\texirestoretoksstackpoint#1{\expandafter\mathchardef\expandafter\@cclvi#1\relax}
+% newtoks that can be used non \outer .
+\def\texinonouternewtoks{\alloc@ 5\toks \toksdef \@cclvi}
+
+% Tailing missing arguments are set to empty
+\def\setemptyargvalues@{%
+ \ifx\paramlist\nilm@
+ \let\next\macargexpandinbody@
+ \else
+ \expandafter\setemptyargvaluesparser@\paramlist\endargs@
+ \let\next\setemptyargvalues@
+ \fi
+ \next
+}
+
+\def\setemptyargvaluesparser@#1,#2\endargs@{%
+ \expandafter\def\expandafter\@tempa\expandafter{%
+ \expandafter\def\csname macarg.#1\endcsname{}}%
+ \push@\@tempa\macargdeflist@
+ \def\paramlist{#2}%
+}
+
+% #1 is the element target macro
+% #2 is the list macro
+% #3,#4\endargs@ is the list value
+\def\pop@#1#2#3,#4\endargs@{%
+ \def#1{#3}%
+ \def#2{#4}%
+}
+\long\def\longpop@#1#2#3,#4\endargs@{%
+ \long\def#1{#3}%
+ \long\def#2{#4}%
+}
+
+% This defines a Texinfo @macro. There are eight cases: recursive and
+% nonrecursive macros of zero, one, up to nine, and many arguments.
+% Much magic with \expandafter here.
+% \xdef is used so that macro definitions will survive the file
+% they're defined in; @include reads the file inside a group.
+%
+\def\defmacro{%
+ \let\hash=##% convert placeholders to macro parameter chars
+ \ifrecursive
+ \ifcase\paramno
+ % 0
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\scanmacro{\temp}}%
+ \or % 1
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\braceorline
+ \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+ \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+ \egroup\noexpand\scanmacro{\temp}}%
+ \else
+ \ifnum\paramno<10\relax % at most 9
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{\egroup\noexpand\scanmacro{\temp}}%
+ \else % 10 or more
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\getargvals@{\the\macname}{\argl}%
+ }%
+ \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
+ \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\gobble
+ \fi
+ \fi
+ \else
+ \ifcase\paramno
+ % 0
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \or % 1
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \noexpand\braceorline
+ \expandafter\noexpand\csname\the\macname xxx\endcsname}%
+ \expandafter\xdef\csname\the\macname xxx\endcsname##1{%
+ \egroup
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \else % at most 9
+ \ifnum\paramno<10\relax
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup\noexpand\macroargctxt
+ \expandafter\noexpand\csname\the\macname xx\endcsname}%
+ \expandafter\xdef\csname\the\macname xx\endcsname##1{%
+ \expandafter\noexpand\csname\the\macname xxx\endcsname ##1,}%
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter
+ \csname\the\macname xxx\endcsname
+ \paramlist{%
+ \egroup
+ \noexpand\norecurse{\the\macname}%
+ \noexpand\scanmacro{\temp}\egroup}%
+ \else % 10 or more:
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \noexpand\getargvals@{\the\macname}{\argl}%
+ }%
+ \global\expandafter\let\csname mac.\the\macname .body\endcsname\temp
+ \global\expandafter\let\csname mac.\the\macname .recurse\endcsname\norecurse
+ \fi
+ \fi
+ \fi}
+
+\catcode `\@\texiatcatcode\relax
+
+\def\norecurse#1{\bgroup\cslet{#1}{macsave.#1}}
+
+% \braceorline decides whether the next nonwhitespace character is a
+% {. If so it reads up to the closing }, if not, it reads the whole
+% line. Whatever was read is then fed to the next control sequence
+% as an argument (by \parsebrace or \parsearg).
+%
+\def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
+\def\braceorlinexxx{%
+ \ifx\nchar\bgroup\else
+ \expandafter\parsearg
+ \fi \macnamexxx}
+
+
+% @alias.
+% We need some trickery to remove the optional spaces around the equal
+% sign. Make them active and then expand them all to nothing.
+%
+\def\alias{\parseargusing\obeyspaces\aliasxxx}
+\def\aliasxxx #1{\aliasyyy#1\relax}
+\def\aliasyyy #1=#2\relax{%
+ {%
+ \expandafter\let\obeyedspace=\empty
+ \addtomacrolist{#1}%
+ \xdef\next{\global\let\makecsname{#1}=\makecsname{#2}}%
+ }%
+ \next
+}
+
+
+\message{cross references,}
+
+\newwrite\auxfile
+\newif\ifhavexrefs % True if xref values are known.
+\newif\ifwarnedxrefs % True if we warned once that they aren't known.
+
+% @inforef is relatively simple.
+\def\inforef #1{\inforefzzz #1,,,,**}
+\def\inforefzzz #1,#2,#3,#4**{%
+ \putwordSee{} \putwordInfo{} \putwordfile{} \file{\ignorespaces #3{}},
+ node \samp{\ignorespaces#1{}}}
+
+% @node's only job in TeX is to define \lastnode, which is used in
+% cross-references. The @node line might or might not have commas, and
+% might or might not have spaces before the first comma, like:
+% @node foo , bar , ...
+% We don't want such trailing spaces in the node name.
+%
+\parseargdef\node{\checkenv{}\donode #1 ,\finishnodeparse}
+%
+% also remove a trailing comma, in case of something like this:
+% @node Help-Cross, , , Cross-refs
+\def\donode#1 ,#2\finishnodeparse{\dodonode #1,\finishnodeparse}
+\def\dodonode#1,#2\finishnodeparse{\gdef\lastnode{#1}}
+
+\let\nwnode=\node
+\let\lastnode=\empty
+
+% Write a cross-reference definition for the current node. #1 is the
+% type (Ynumbered, Yappendix, Ynothing).
+%
+\def\donoderef#1{%
+ \ifx\lastnode\empty\else
+ \setref{\lastnode}{#1}%
+ \global\let\lastnode=\empty
+ \fi
+}
+
+% @anchor{NAME} -- define xref target at arbitrary point.
+%
+\newcount\savesfregister
+%
+\def\savesf{\relax \ifhmode \savesfregister=\spacefactor \fi}
+\def\restoresf{\relax \ifhmode \spacefactor=\savesfregister \fi}
+\def\anchor#1{\savesf \setref{#1}{Ynothing}\restoresf \ignorespaces}
+
+% \setref{NAME}{SNT} defines a cross-reference point NAME (a node or an
+% anchor), which consists of three parts:
+% 1) NAME-title - the current sectioning name taken from \lastsection,
+% or the anchor name.
+% 2) NAME-snt - section number and type, passed as the SNT arg, or
+% empty for anchors.
+% 3) NAME-pg - the page number.
+%
+% This is called from \donoderef, \anchor, and \dofloat. In the case of
+% floats, there is an additional part, which is not written here:
+% 4) NAME-lof - the text as it should appear in a @listoffloats.
+%
+\def\setref#1#2{%
+ \pdfmkdest{#1}%
+ \iflinks
+ {%
+ \atdummies % preserve commands, but don't expand them
+ \edef\writexrdef##1##2{%
+ \write\auxfile{@xrdef{#1-% #1 of \setref, expanded by the \edef
+ ##1}{##2}}% these are parameters of \writexrdef
+ }%
+ \toks0 = \expandafter{\lastsection}%
+ \immediate \writexrdef{title}{\the\toks0 }%
+ \immediate \writexrdef{snt}{\csname #2\endcsname}% \Ynumbered etc.
+ \safewhatsit{\writexrdef{pg}{\folio}}% will be written later, at \shipout
+ }%
+ \fi
+}
+
+% @xrefautosectiontitle on|off says whether @section(ing) names are used
+% automatically in xrefs, if the third arg is not explicitly specified.
+% This was provided as a "secret" @set xref-automatic-section-title
+% variable, now it's official.
+%
+\parseargdef\xrefautomaticsectiontitle{%
+ \def\temp{#1}%
+ \ifx\temp\onword
+ \expandafter\let\csname SETxref-automatic-section-title\endcsname
+ = \empty
+ \else\ifx\temp\offword
+ \expandafter\let\csname SETxref-automatic-section-title\endcsname
+ = \relax
+ \else
+ \errhelp = \EMsimple
+ \errmessage{Unknown @xrefautomaticsectiontitle value `\temp',
+ must be on|off}%
+ \fi\fi
+}
+
+
+% @xref, @pxref, and @ref generate cross-references. For \xrefX, #1 is
+% the node name, #2 the name of the Info cross-reference, #3 the printed
+% node name, #4 the name of the Info file, #5 the name of the printed
+% manual. All but the node name can be omitted.
+%
+\def\pxref#1{\putwordsee{} \xrefX[#1,,,,,,,]}
+\def\xref#1{\putwordSee{} \xrefX[#1,,,,,,,]}
+\def\ref#1{\xrefX[#1,,,,,,,]}
+\def\xrefX[#1,#2,#3,#4,#5,#6]{\begingroup
+ \unsepspaces
+ \def\printedmanual{\ignorespaces #5}%
+ \def\printedrefname{\ignorespaces #3}%
+ \setbox1=\hbox{\printedmanual\unskip}%
+ \setbox0=\hbox{\printedrefname\unskip}%
+ \ifdim \wd0 = 0pt
+ % No printed node name was explicitly given.
+ \expandafter\ifx\csname SETxref-automatic-section-title\endcsname \relax
+ % Use the node name inside the square brackets.
+ \def\printedrefname{\ignorespaces #1}%
+ \else
+ % Use the actual chapter/section title appear inside
+ % the square brackets. Use the real section title if we have it.
+ \ifdim \wd1 > 0pt
+ % It is in another manual, so we don't have it.
+ \def\printedrefname{\ignorespaces #1}%
+ \else
+ \ifhavexrefs
+ % We know the real title if we have the xref values.
+ \def\printedrefname{\refx{#1-title}{}}%
+ \else
+ % Otherwise just copy the Info node name.
+ \def\printedrefname{\ignorespaces #1}%
+ \fi%
+ \fi
+ \fi
+ \fi
+ %
+ % Make link in pdf output.
+ \ifpdf
+ {\indexnofonts
+ \turnoffactive
+ % This expands tokens, so do it after making catcode changes, so _
+ % etc. don't get their TeX definitions.
+ \getfilename{#4}%
+ %
+ \edef\pdfxrefdest{#1}%
+ \txiescapepdf\pdfxrefdest
+ %
+ \leavevmode
+ \startlink attr{/Border [0 0 0]}%
+ \ifnum\filenamelength>0
+ goto file{\the\filename.pdf} name{\pdfxrefdest}%
+ \else
+ goto name{\pdfmkpgn{\pdfxrefdest}}%
+ \fi
+ }%
+ \setcolor{\linkcolor}%
+ \fi
+ %
+ % Float references are printed completely differently: "Figure 1.2"
+ % instead of "[somenode], p.3". We distinguish them by the
+ % LABEL-title being set to a magic string.
+ {%
+ % Have to otherify everything special to allow the \csname to
+ % include an _ in the xref name, etc.
+ \indexnofonts
+ \turnoffactive
+ \expandafter\global\expandafter\let\expandafter\Xthisreftitle
+ \csname XR#1-title\endcsname
+ }%
+ \iffloat\Xthisreftitle
+ % If the user specified the print name (third arg) to the ref,
+ % print it instead of our usual "Figure 1.2".
+ \ifdim\wd0 = 0pt
+ \refx{#1-snt}{}%
+ \else
+ \printedrefname
+ \fi
+ %
+ % if the user also gave the printed manual name (fifth arg), append
+ % "in MANUALNAME".
+ \ifdim \wd1 > 0pt
+ \space \putwordin{} \cite{\printedmanual}%
+ \fi
+ \else
+ % node/anchor (non-float) references.
+ %
+ % If we use \unhbox0 and \unhbox1 to print the node names, TeX does not
+ % insert empty discretionaries after hyphens, which means that it will
+ % not find a line break at a hyphen in a node names. Since some manuals
+ % are best written with fairly long node names, containing hyphens, this
+ % is a loss. Therefore, we give the text of the node name again, so it
+ % is as if TeX is seeing it for the first time.
+ \ifdim \wd1 > 0pt
+ \putwordSection{} ``\printedrefname'' \putwordin{} \cite{\printedmanual}%
+ \else
+ % _ (for example) has to be the character _ for the purposes of the
+ % control sequence corresponding to the node, but it has to expand
+ % into the usual \leavevmode...\vrule stuff for purposes of
+ % printing. So we \turnoffactive for the \refx-snt, back on for the
+ % printing, back off for the \refx-pg.
+ {\turnoffactive
+ % Only output a following space if the -snt ref is nonempty; for
+ % @unnumbered and @anchor, it won't be.
+ \setbox2 = \hbox{\ignorespaces \refx{#1-snt}{}}%
+ \ifdim \wd2 > 0pt \refx{#1-snt}\space\fi
+ }%
+ % output the `[mynode]' via a macro so it can be overridden.
+ \xrefprintnodename\printedrefname
+ %
+ % But we always want a comma and a space:
+ ,\space
+ %
+ % output the `page 3'.
+ \turnoffactive \putwordpage\tie\refx{#1-pg}{}%
+ \fi
+ \fi
+ \endlink
+\endgroup}
+
+% This macro is called from \xrefX for the `[nodename]' part of xref
+% output. It's a separate macro only so it can be changed more easily,
+% since square brackets don't work well in some documents. Particularly
+% one that Bob is working on :).
+%
+\def\xrefprintnodename#1{[#1]}
+
+% Things referred to by \setref.
+%
+\def\Ynothing{}
+\def\Yomitfromtoc{}
+\def\Ynumbered{%
+ \ifnum\secno=0
+ \putwordChapter@tie \the\chapno
+ \else \ifnum\subsecno=0
+ \putwordSection@tie \the\chapno.\the\secno
+ \else \ifnum\subsubsecno=0
+ \putwordSection@tie \the\chapno.\the\secno.\the\subsecno
+ \else
+ \putwordSection@tie \the\chapno.\the\secno.\the\subsecno.\the\subsubsecno
+ \fi\fi\fi
+}
+\def\Yappendix{%
+ \ifnum\secno=0
+ \putwordAppendix@tie @char\the\appendixno{}%
+ \else \ifnum\subsecno=0
+ \putwordSection@tie @char\the\appendixno.\the\secno
+ \else \ifnum\subsubsecno=0
+ \putwordSection@tie @char\the\appendixno.\the\secno.\the\subsecno
+ \else
+ \putwordSection@tie
+ @char\the\appendixno.\the\secno.\the\subsecno.\the\subsubsecno
+ \fi\fi\fi
+}
+
+% Define \refx{NAME}{SUFFIX} to reference a cross-reference string named NAME.
+% If its value is nonempty, SUFFIX is output afterward.
+%
+\def\refx#1#2{%
+ {%
+ \indexnofonts
+ \otherbackslash
+ \expandafter\global\expandafter\let\expandafter\thisrefX
+ \csname XR#1\endcsname
+ }%
+ \ifx\thisrefX\relax
+ % If not defined, say something at least.
+ \angleleft un\-de\-fined\angleright
+ \iflinks
+ \ifhavexrefs
+ {\toks0 = {#1}% avoid expansion of possibly-complex value
+ \message{\linenumber Undefined cross reference `\the\toks0'.}}%
+ \else
+ \ifwarnedxrefs\else
+ \global\warnedxrefstrue
+ \message{Cross reference values unknown; you must run TeX again.}%
+ \fi
+ \fi
+ \fi
+ \else
+ % It's defined, so just use it.
+ \thisrefX
+ \fi
+ #2% Output the suffix in any case.
+}
+
+% This is the macro invoked by entries in the aux file. Usually it's
+% just a \def (we prepend XR to the control sequence name to avoid
+% collisions). But if this is a float type, we have more work to do.
+%
+\def\xrdef#1#2{%
+ {% The node name might contain 8-bit characters, which in our current
+ % implementation are changed to commands like @'e. Don't let these
+ % mess up the control sequence name.
+ \indexnofonts
+ \turnoffactive
+ \xdef\safexrefname{#1}%
+ }%
+ %
+ \expandafter\gdef\csname XR\safexrefname\endcsname{#2}% remember this xref
+ %
+ % Was that xref control sequence that we just defined for a float?
+ \expandafter\iffloat\csname XR\safexrefname\endcsname
+ % it was a float, and we have the (safe) float type in \iffloattype.
+ \expandafter\let\expandafter\floatlist
+ \csname floatlist\iffloattype\endcsname
+ %
+ % Is this the first time we've seen this float type?
+ \expandafter\ifx\floatlist\relax
+ \toks0 = {\do}% yes, so just \do
+ \else
+ % had it before, so preserve previous elements in list.
+ \toks0 = \expandafter{\floatlist\do}%
+ \fi
+ %
+ % Remember this xref in the control sequence \floatlistFLOATTYPE,
+ % for later use in \listoffloats.
+ \expandafter\xdef\csname floatlist\iffloattype\endcsname{\the\toks0
+ {\safexrefname}}%
+ \fi
+}
+
+% Read the last existing aux file, if any. No error if none exists.
+%
+\def\tryauxfile{%
+ \openin 1 \jobname.aux
+ \ifeof 1 \else
+ \readdatafile{aux}%
+ \global\havexrefstrue
+ \fi
+ \closein 1
+}
+
+\def\setupdatafile{%
+ \catcode`\^^@=\other
+ \catcode`\^^A=\other
+ \catcode`\^^B=\other
+ \catcode`\^^C=\other
+ \catcode`\^^D=\other
+ \catcode`\^^E=\other
+ \catcode`\^^F=\other
+ \catcode`\^^G=\other
+ \catcode`\^^H=\other
+ \catcode`\^^K=\other
+ \catcode`\^^L=\other
+ \catcode`\^^N=\other
+ \catcode`\^^P=\other
+ \catcode`\^^Q=\other
+ \catcode`\^^R=\other
+ \catcode`\^^S=\other
+ \catcode`\^^T=\other
+ \catcode`\^^U=\other
+ \catcode`\^^V=\other
+ \catcode`\^^W=\other
+ \catcode`\^^X=\other
+ \catcode`\^^Z=\other
+ \catcode`\^^[=\other
+ \catcode`\^^\=\other
+ \catcode`\^^]=\other
+ \catcode`\^^^=\other
+ \catcode`\^^_=\other
+ % It was suggested to set the catcode of ^ to 7, which would allow ^^e4 etc.
+ % in xref tags, i.e., node names. But since ^^e4 notation isn't
+ % supported in the main text, it doesn't seem desirable. Furthermore,
+ % that is not enough: for node names that actually contain a ^
+ % character, we would end up writing a line like this: 'xrdef {'hat
+ % b-title}{'hat b} and \xrdef does a \csname...\endcsname on the first
+ % argument, and \hat is not an expandable control sequence. It could
+ % all be worked out, but why? Either we support ^^ or we don't.
+ %
+ % The other change necessary for this was to define \auxhat:
+ % \def\auxhat{\def^{'hat }}% extra space so ok if followed by letter
+ % and then to call \auxhat in \setq.
+ %
+ \catcode`\^=\other
+ %
+ % Special characters. Should be turned off anyway, but...
+ \catcode`\~=\other
+ \catcode`\[=\other
+ \catcode`\]=\other
+ \catcode`\"=\other
+ \catcode`\_=\other
+ \catcode`\|=\other
+ \catcode`\<=\other
+ \catcode`\>=\other
+ \catcode`\$=\other
+ \catcode`\#=\other
+ \catcode`\&=\other
+ \catcode`\%=\other
+ \catcode`+=\other % avoid \+ for paranoia even though we've turned it off
+ %
+ % This is to support \ in node names and titles, since the \
+ % characters end up in a \csname. It's easier than
+ % leaving it active and making its active definition an actual \
+ % character. What I don't understand is why it works in the *value*
+ % of the xrdef. Seems like it should be a catcode12 \, and that
+ % should not typeset properly. But it works, so I'm moving on for
+ % now. --karl, 15jan04.
+ \catcode`\\=\other
+ %
+ % Make the characters 128-255 be printing characters.
+ {%
+ \count1=128
+ \def\loop{%
+ \catcode\count1=\other
+ \advance\count1 by 1
+ \ifnum \count1<256 \loop \fi
+ }%
+ }%
+ %
+ % @ is our escape character in .aux files, and we need braces.
+ \catcode`\{=1
+ \catcode`\}=2
+ \catcode`\@=0
+}
+
+\def\readdatafile#1{%
+\begingroup
+ \setupdatafile
+ \input\jobname.#1
+\endgroup}
+
+
+\message{insertions,}
+% including footnotes.
+
+\newcount \footnoteno
+
+% The trailing space in the following definition for supereject is
+% vital for proper filling; pages come out unaligned when you do a
+% pagealignmacro call if that space before the closing brace is
+% removed. (Generally, numeric constants should always be followed by a
+% space to prevent strange expansion errors.)
+\def\supereject{\par\penalty -20000\footnoteno =0 }
+
+% @footnotestyle is meaningful for Info output only.
+\let\footnotestyle=\comment
+
+{\catcode `\@=11
+%
+% Auto-number footnotes. Otherwise like plain.
+\gdef\footnote{%
+ \let\indent=\ptexindent
+ \let\noindent=\ptexnoindent
+ \global\advance\footnoteno by \@ne
+ \edef\thisfootno{$^{\the\footnoteno}$}%
+ %
+ % In case the footnote comes at the end of a sentence, preserve the
+ % extra spacing after we do the footnote number.
+ \let\@sf\empty
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\ptexslash\fi
+ %
+ % Remove inadvertent blank space before typesetting the footnote number.
+ \unskip
+ \thisfootno\@sf
+ \dofootnote
+}%
+
+% Don't bother with the trickery in plain.tex to not require the
+% footnote text as a parameter. Our footnotes don't need to be so general.
+%
+% Oh yes, they do; otherwise, @ifset (and anything else that uses
+% \parseargline) fails inside footnotes because the tokens are fixed when
+% the footnote is read. --karl, 16nov96.
+%
+\gdef\dofootnote{%
+ \insert\footins\bgroup
+ % We want to typeset this text as a normal paragraph, even if the
+ % footnote reference occurs in (for example) a display environment.
+ % So reset some parameters.
+ \hsize=\pagewidth
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth\dp\strutbox
+ \floatingpenalty\@MM
+ \leftskip\z@skip
+ \rightskip\z@skip
+ \spaceskip\z@skip
+ \xspaceskip\z@skip
+ \parindent\defaultparindent
+ %
+ \smallfonts \rm
+ %
+ % Because we use hanging indentation in footnotes, a @noindent appears
+ % to exdent this text, so make it be a no-op. makeinfo does not use
+ % hanging indentation so @noindent can still be needed within footnote
+ % text after an @example or the like (not that this is good style).
+ \let\noindent = \relax
+ %
+ % Hang the footnote text off the number. Use \everypar in case the
+ % footnote extends for more than one paragraph.
+ \everypar = {\hang}%
+ \textindent{\thisfootno}%
+ %
+ % Don't crash into the line above the footnote text. Since this
+ % expands into a box, it must come within the paragraph, lest it
+ % provide a place where TeX can split the footnote.
+ \footstrut
+ %
+ % Invoke rest of plain TeX footnote routine.
+ \futurelet\next\fo@t
+}
+}%end \catcode `\@=11
+
+% In case a @footnote appears in a vbox, save the footnote text and create
+% the real \insert just after the vbox finished. Otherwise, the insertion
+% would be lost.
+% Similarly, if a @footnote appears inside an alignment, save the footnote
+% text to a box and make the \insert when a row of the table is finished.
+% And the same can be done for other insert classes. --kasal, 16nov03.
+
+% Replace the \insert primitive by a cheating macro.
+% Deeper inside, just make sure that the saved insertions are not spilled
+% out prematurely.
+%
+\def\startsavinginserts{%
+ \ifx \insert\ptexinsert
+ \let\insert\saveinsert
+ \else
+ \let\checkinserts\relax
+ \fi
+}
+
+% This \insert replacement works for both \insert\footins{foo} and
+% \insert\footins\bgroup foo\egroup, but it doesn't work for \insert27{foo}.
+%
+\def\saveinsert#1{%
+ \edef\next{\noexpand\savetobox \makeSAVEname#1}%
+ \afterassignment\next
+ % swallow the left brace
+ \let\temp =
+}
+\def\makeSAVEname#1{\makecsname{SAVE\expandafter\gobble\string#1}}
+\def\savetobox#1{\global\setbox#1 = \vbox\bgroup \unvbox#1}
+
+\def\checksaveins#1{\ifvoid#1\else \placesaveins#1\fi}
+
+\def\placesaveins#1{%
+ \ptexinsert \csname\expandafter\gobblesave\string#1\endcsname
+ {\box#1}%
+}
+
+% eat @SAVE -- beware, all of them have catcode \other:
+{
+ \def\dospecials{\do S\do A\do V\do E} \uncatcodespecials % ;-)
+ \gdef\gobblesave @SAVE{}
+}
+
+% initialization:
+\def\newsaveins #1{%
+ \edef\next{\noexpand\newsaveinsX \makeSAVEname#1}%
+ \next
+}
+\def\newsaveinsX #1{%
+ \csname newbox\endcsname #1%
+ \expandafter\def\expandafter\checkinserts\expandafter{\checkinserts
+ \checksaveins #1}%
+}
+
+% initialize:
+\let\checkinserts\empty
+\newsaveins\footins
+\newsaveins\margin
+
+
+% @image. We use the macros from epsf.tex to support this.
+% If epsf.tex is not installed and @image is used, we complain.
+%
+% Check for and read epsf.tex up front. If we read it only at @image
+% time, we might be inside a group, and then its definitions would get
+% undone and the next image would fail.
+\openin 1 = epsf.tex
+\ifeof 1 \else
+ % Do not bother showing banner with epsf.tex v2.7k (available in
+ % doc/epsf.tex and on ctan).
+ \def\epsfannounce{\toks0 = }%
+ \input epsf.tex
+\fi
+\closein 1
+%
+% We will only complain once about lack of epsf.tex.
+\newif\ifwarnednoepsf
+\newhelp\noepsfhelp{epsf.tex must be installed for images to
+ work. It is also included in the Texinfo distribution, or you can get
+ it from ftp://tug.org/tex/epsf.tex.}
+%
+\def\image#1{%
+ \ifx\epsfbox\thisiundefined
+ \ifwarnednoepsf \else
+ \errhelp = \noepsfhelp
+ \errmessage{epsf.tex not found, images will be ignored}%
+ \global\warnednoepsftrue
+ \fi
+ \else
+ \imagexxx #1,,,,,\finish
+ \fi
+}
+%
+% Arguments to @image:
+% #1 is (mandatory) image filename; we tack on .eps extension.
+% #2 is (optional) width, #3 is (optional) height.
+% #4 is (ignored optional) html alt text.
+% #5 is (ignored optional) extension.
+% #6 is just the usual extra ignored arg for parsing stuff.
+\newif\ifimagevmode
+\def\imagexxx#1,#2,#3,#4,#5,#6\finish{\begingroup
+ \catcode`\^^M = 5 % in case we're inside an example
+ \normalturnoffactive % allow _ et al. in names
+ % If the image is by itself, center it.
+ \ifvmode
+ \imagevmodetrue
+ \nobreak\medskip
+ % Usually we'll have text after the image which will insert
+ % \parskip glue, so insert it here too to equalize the space
+ % above and below.
+ \nobreak\vskip\parskip
+ \nobreak
+ \fi
+ %
+ % Leave vertical mode so that indentation from an enclosing
+ % environment such as @quotation is respected. On the other hand, if
+ % it's at the top level, we don't want the normal paragraph indentation.
+ \noindent
+ %
+ % Output the image.
+ \ifpdf
+ \dopdfimage{#1}{#2}{#3}%
+ \else
+ % \epsfbox itself resets \epsf?size at each figure.
+ \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \epsfxsize=#2\relax \fi
+ \setbox0 = \hbox{\ignorespaces #3}\ifdim\wd0 > 0pt \epsfysize=#3\relax \fi
+ \epsfbox{#1.eps}%
+ \fi
+ %
+ \ifimagevmode \medskip \fi % space after the standalone image
+\endgroup}
+
+
+% @float FLOATTYPE,LABEL,LOC ... @end float for displayed figures, tables,
+% etc. We don't actually implement floating yet, we always include the
+% float "here". But it seemed the best name for the future.
+%
+\envparseargdef\float{\eatcommaspace\eatcommaspace\dofloat#1, , ,\finish}
+
+% There may be a space before second and/or third parameter; delete it.
+\def\eatcommaspace#1, {#1,}
+
+% #1 is the optional FLOATTYPE, the text label for this float, typically
+% "Figure", "Table", "Example", etc. Can't contain commas. If omitted,
+% this float will not be numbered and cannot be referred to.
+%
+% #2 is the optional xref label. Also must be present for the float to
+% be referable.
+%
+% #3 is the optional positioning argument; for now, it is ignored. It
+% will somehow specify the positions allowed to float to (here, top, bottom).
+%
+% We keep a separate counter for each FLOATTYPE, which we reset at each
+% chapter-level command.
+\let\resetallfloatnos=\empty
+%
+\def\dofloat#1,#2,#3,#4\finish{%
+ \let\thiscaption=\empty
+ \let\thisshortcaption=\empty
+ %
+ % don't lose footnotes inside @float.
+ %
+ % BEWARE: when the floats start float, we have to issue warning whenever an
+ % insert appears inside a float which could possibly float. --kasal, 26may04
+ %
+ \startsavinginserts
+ %
+ % We can't be used inside a paragraph.
+ \par
+ %
+ \vtop\bgroup
+ \def\floattype{#1}%
+ \def\floatlabel{#2}%
+ \def\floatloc{#3}% we do nothing with this yet.
+ %
+ \ifx\floattype\empty
+ \let\safefloattype=\empty
+ \else
+ {%
+ % the floattype might have accents or other special characters,
+ % but we need to use it in a control sequence name.
+ \indexnofonts
+ \turnoffactive
+ \xdef\safefloattype{\floattype}%
+ }%
+ \fi
+ %
+ % If label is given but no type, we handle that as the empty type.
+ \ifx\floatlabel\empty \else
+ % We want each FLOATTYPE to be numbered separately (Figure 1,
+ % Table 1, Figure 2, ...). (And if no label, no number.)
+ %
+ \expandafter\getfloatno\csname\safefloattype floatno\endcsname
+ \global\advance\floatno by 1
+ %
+ {%
+ % This magic value for \lastsection is output by \setref as the
+ % XREFLABEL-title value. \xrefX uses it to distinguish float
+ % labels (which have a completely different output format) from
+ % node and anchor labels. And \xrdef uses it to construct the
+ % lists of floats.
+ %
+ \edef\lastsection{\floatmagic=\safefloattype}%
+ \setref{\floatlabel}{Yfloat}%
+ }%
+ \fi
+ %
+ % start with \parskip glue, I guess.
+ \vskip\parskip
+ %
+ % Don't suppress indentation if a float happens to start a section.
+ \restorefirstparagraphindent
+}
+
+% we have these possibilities:
+% @float Foo,lbl & @caption{Cap}: Foo 1.1: Cap
+% @float Foo,lbl & no caption: Foo 1.1
+% @float Foo & @caption{Cap}: Foo: Cap
+% @float Foo & no caption: Foo
+% @float ,lbl & Caption{Cap}: 1.1: Cap
+% @float ,lbl & no caption: 1.1
+% @float & @caption{Cap}: Cap
+% @float & no caption:
+%
+\def\Efloat{%
+ \let\floatident = \empty
+ %
+ % In all cases, if we have a float type, it comes first.
+ \ifx\floattype\empty \else \def\floatident{\floattype}\fi
+ %
+ % If we have an xref label, the number comes next.
+ \ifx\floatlabel\empty \else
+ \ifx\floattype\empty \else % if also had float type, need tie first.
+ \appendtomacro\floatident{\tie}%
+ \fi
+ % the number.
+ \appendtomacro\floatident{\chaplevelprefix\the\floatno}%
+ \fi
+ %
+ % Start the printed caption with what we've constructed in
+ % \floatident, but keep it separate; we need \floatident again.
+ \let\captionline = \floatident
+ %
+ \ifx\thiscaption\empty \else
+ \ifx\floatident\empty \else
+ \appendtomacro\captionline{: }% had ident, so need a colon between
+ \fi
+ %
+ % caption text.
+ \appendtomacro\captionline{\scanexp\thiscaption}%
+ \fi
+ %
+ % If we have anything to print, print it, with space before.
+ % Eventually this needs to become an \insert.
+ \ifx\captionline\empty \else
+ \vskip.5\parskip
+ \captionline
+ %
+ % Space below caption.
+ \vskip\parskip
+ \fi
+ %
+ % If have an xref label, write the list of floats info. Do this
+ % after the caption, to avoid chance of it being a breakpoint.
+ \ifx\floatlabel\empty \else
+ % Write the text that goes in the lof to the aux file as
+ % \floatlabel-lof. Besides \floatident, we include the short
+ % caption if specified, else the full caption if specified, else nothing.
+ {%
+ \atdummies
+ %
+ % since we read the caption text in the macro world, where ^^M
+ % is turned into a normal character, we have to scan it back, so
+ % we don't write the literal three characters "^^M" into the aux file.
+ \scanexp{%
+ \xdef\noexpand\gtemp{%
+ \ifx\thisshortcaption\empty
+ \thiscaption
+ \else
+ \thisshortcaption
+ \fi
+ }%
+ }%
+ \immediate\write\auxfile{@xrdef{\floatlabel-lof}{\floatident
+ \ifx\gtemp\empty \else : \gtemp \fi}}%
+ }%
+ \fi
+ \egroup % end of \vtop
+ %
+ % place the captured inserts
+ %
+ % BEWARE: when the floats start floating, we have to issue warning
+ % whenever an insert appears inside a float which could possibly
+ % float. --kasal, 26may04
+ %
+ \checkinserts
+}
+
+% Append the tokens #2 to the definition of macro #1, not expanding either.
+%
+\def\appendtomacro#1#2{%
+ \expandafter\def\expandafter#1\expandafter{#1#2}%
+}
+
+% @caption, @shortcaption
+%
+\def\caption{\docaption\thiscaption}
+\def\shortcaption{\docaption\thisshortcaption}
+\def\docaption{\checkenv\float \bgroup\scanargctxt\defcaption}
+\def\defcaption#1#2{\egroup \def#1{#2}}
+
+% The parameter is the control sequence identifying the counter we are
+% going to use. Create it if it doesn't exist and assign it to \floatno.
+\def\getfloatno#1{%
+ \ifx#1\relax
+ % Haven't seen this figure type before.
+ \csname newcount\endcsname #1%
+ %
+ % Remember to reset this floatno at the next chap.
+ \expandafter\gdef\expandafter\resetallfloatnos
+ \expandafter{\resetallfloatnos #1=0 }%
+ \fi
+ \let\floatno#1%
+}
+
+% \setref calls this to get the XREFLABEL-snt value. We want an @xref
+% to the FLOATLABEL to expand to "Figure 3.1". We call \setref when we
+% first read the @float command.
+%
+\def\Yfloat{\floattype@tie \chaplevelprefix\the\floatno}%
+
+% Magic string used for the XREFLABEL-title value, so \xrefX can
+% distinguish floats from other xref types.
+\def\floatmagic{!!float!!}
+
+% #1 is the control sequence we are passed; we expand into a conditional
+% which is true if #1 represents a float ref. That is, the magic
+% \lastsection value which we \setref above.
+%
+\def\iffloat#1{\expandafter\doiffloat#1==\finish}
+%
+% #1 is (maybe) the \floatmagic string. If so, #2 will be the
+% (safe) float type for this float. We set \iffloattype to #2.
+%
+\def\doiffloat#1=#2=#3\finish{%
+ \def\temp{#1}%
+ \def\iffloattype{#2}%
+ \ifx\temp\floatmagic
+}
+
+% @listoffloats FLOATTYPE - print a list of floats like a table of contents.
+%
+\parseargdef\listoffloats{%
+ \def\floattype{#1}% floattype
+ {%
+ % the floattype might have accents or other special characters,
+ % but we need to use it in a control sequence name.
+ \indexnofonts
+ \turnoffactive
+ \xdef\safefloattype{\floattype}%
+ }%
+ %
+ % \xrdef saves the floats as a \do-list in \floatlistSAFEFLOATTYPE.
+ \expandafter\ifx\csname floatlist\safefloattype\endcsname \relax
+ \ifhavexrefs
+ % if the user said @listoffloats foo but never @float foo.
+ \message{\linenumber No `\safefloattype' floats to list.}%
+ \fi
+ \else
+ \begingroup
+ \leftskip=\tocindent % indent these entries like a toc
+ \let\do=\listoffloatsdo
+ \csname floatlist\safefloattype\endcsname
+ \endgroup
+ \fi
+}
+
+% This is called on each entry in a list of floats. We're passed the
+% xref label, in the form LABEL-title, which is how we save it in the
+% aux file. We strip off the -title and look up \XRLABEL-lof, which
+% has the text we're supposed to typeset here.
+%
+% Figures without xref labels will not be included in the list (since
+% they won't appear in the aux file).
+%
+\def\listoffloatsdo#1{\listoffloatsdoentry#1\finish}
+\def\listoffloatsdoentry#1-title\finish{{%
+ % Can't fully expand XR#1-lof because it can contain anything. Just
+ % pass the control sequence. On the other hand, XR#1-pg is just the
+ % page number, and we want to fully expand that so we can get a link
+ % in pdf output.
+ \toksA = \expandafter{\csname XR#1-lof\endcsname}%
+ %
+ % use the same \entry macro we use to generate the TOC and index.
+ \edef\writeentry{\noexpand\entry{\the\toksA}{\csname XR#1-pg\endcsname}}%
+ \writeentry
+}}
+
+
+\message{localization,}
+
+% For single-language documents, @documentlanguage is usually given very
+% early, just after @documentencoding. Single argument is the language
+% (de) or locale (de_DE) abbreviation.
+%
+{
+ \catcode`\_ = \active
+ \globaldefs=1
+\parseargdef\documentlanguage{\begingroup
+ \let_=\normalunderscore % normal _ character for filenames
+ \tex % read txi-??.tex file in plain TeX.
+ % Read the file by the name they passed if it exists.
+ \openin 1 txi-#1.tex
+ \ifeof 1
+ \documentlanguagetrywithoutunderscore{#1_\finish}%
+ \else
+ \globaldefs = 1 % everything in the txi-LL files needs to persist
+ \input txi-#1.tex
+ \fi
+ \closein 1
+ \endgroup % end raw TeX
+\endgroup}
+%
+% If they passed de_DE, and txi-de_DE.tex doesn't exist,
+% try txi-de.tex.
+%
+\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
+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.
+ \expandafter\ifx\csname lang@#1\endcsname \relax
+ \message{no patterns for #1}%
+ \else
+ \global\language = \csname lang@#1\endcsname
+ \fi
+ % but there is no harm in adjusting the hyphenmin values regardless.
+ \global\lefthyphenmin = #2\relax
+ \global\righthyphenmin = #3\relax
+}
+
+% Helpers for encodings.
+% Set the catcode of characters 128 through 255 to the specified number.
+%
+\def\setnonasciicharscatcode#1{%
+ \count255=128
+ \loop\ifnum\count255<256
+ \global\catcode\count255=#1\relax
+ \advance\count255 by 1
+ \repeat
+}
+
+\def\setnonasciicharscatcodenonglobal#1{%
+ \count255=128
+ \loop\ifnum\count255<256
+ \catcode\count255=#1\relax
+ \advance\count255 by 1
+ \repeat
+}
+
+% @documentencoding sets the definition of non-ASCII characters
+% according to the specified encoding.
+%
+\parseargdef\documentencoding{%
+ % Encoding being declared for the document.
+ \def\declaredencoding{\csname #1.enc\endcsname}%
+ %
+ % Supported encodings: names converted to tokens in order to be able
+ % to compare them with \ifx.
+ \def\ascii{\csname US-ASCII.enc\endcsname}%
+ \def\latnine{\csname ISO-8859-15.enc\endcsname}%
+ \def\latone{\csname ISO-8859-1.enc\endcsname}%
+ \def\lattwo{\csname ISO-8859-2.enc\endcsname}%
+ \def\utfeight{\csname UTF-8.enc\endcsname}%
+ %
+ \ifx \declaredencoding \ascii
+ \asciichardefs
+ %
+ \else \ifx \declaredencoding \lattwo
+ \setnonasciicharscatcode\active
+ \lattwochardefs
+ %
+ \else \ifx \declaredencoding \latone
+ \setnonasciicharscatcode\active
+ \latonechardefs
+ %
+ \else \ifx \declaredencoding \latnine
+ \setnonasciicharscatcode\active
+ \latninechardefs
+ %
+ \else \ifx \declaredencoding \utfeight
+ \setnonasciicharscatcode\active
+ \utfeightchardefs
+ %
+ \else
+ \message{Unknown document encoding #1, ignoring.}%
+ %
+ \fi % utfeight
+ \fi % latnine
+ \fi % latone
+ \fi % lattwo
+ \fi % ascii
+}
+
+% 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.
+\def\cedilla#1{\ifx\c\ptexc\c{#1}\else\,{#1}\fi}
+
+% First, make active non-ASCII characters in order for them to be
+% correctly categorized when TeX reads the replacement text of
+% macros containing the character definitions.
+\setnonasciicharscatcode\active
+%
+% Latin1 (ISO-8859-1) character definitions.
+\def\latonechardefs{%
+ \gdef^^a0{\tie}
+ \gdef^^a1{\exclamdown}
+ \gdef^^a2{\missingcharmsg{CENT SIGN}}
+ \gdef^^a3{{\pounds}}
+ \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+ \gdef^^a5{\missingcharmsg{YEN SIGN}}
+ \gdef^^a6{\missingcharmsg{BROKEN BAR}}
+ \gdef^^a7{\S}
+ \gdef^^a8{\"{}}
+ \gdef^^a9{\copyright}
+ \gdef^^aa{\ordf}
+ \gdef^^ab{\guillemetleft}
+ \gdef^^ac{$\lnot$}
+ \gdef^^ad{\-}
+ \gdef^^ae{\registeredsymbol}
+ \gdef^^af{\={}}
+ %
+ \gdef^^b0{\textdegree}
+ \gdef^^b1{$\pm$}
+ \gdef^^b2{$^2$}
+ \gdef^^b3{$^3$}
+ \gdef^^b4{\'{}}
+ \gdef^^b5{$\mu$}
+ \gdef^^b6{\P}
+ %
+ \gdef^^b7{$^.$}
+ \gdef^^b8{\cedilla\ }
+ \gdef^^b9{$^1$}
+ \gdef^^ba{\ordm}
+ %
+ \gdef^^bb{\guillemetright}
+ \gdef^^bc{$1\over4$}
+ \gdef^^bd{$1\over2$}
+ \gdef^^be{$3\over4$}
+ \gdef^^bf{\questiondown}
+ %
+ \gdef^^c0{\`A}
+ \gdef^^c1{\'A}
+ \gdef^^c2{\^A}
+ \gdef^^c3{\~A}
+ \gdef^^c4{\"A}
+ \gdef^^c5{\ringaccent A}
+ \gdef^^c6{\AE}
+ \gdef^^c7{\cedilla C}
+ \gdef^^c8{\`E}
+ \gdef^^c9{\'E}
+ \gdef^^ca{\^E}
+ \gdef^^cb{\"E}
+ \gdef^^cc{\`I}
+ \gdef^^cd{\'I}
+ \gdef^^ce{\^I}
+ \gdef^^cf{\"I}
+ %
+ \gdef^^d0{\DH}
+ \gdef^^d1{\~N}
+ \gdef^^d2{\`O}
+ \gdef^^d3{\'O}
+ \gdef^^d4{\^O}
+ \gdef^^d5{\~O}
+ \gdef^^d6{\"O}
+ \gdef^^d7{$\times$}
+ \gdef^^d8{\O}
+ \gdef^^d9{\`U}
+ \gdef^^da{\'U}
+ \gdef^^db{\^U}
+ \gdef^^dc{\"U}
+ \gdef^^dd{\'Y}
+ \gdef^^de{\TH}
+ \gdef^^df{\ss}
+ %
+ \gdef^^e0{\`a}
+ \gdef^^e1{\'a}
+ \gdef^^e2{\^a}
+ \gdef^^e3{\~a}
+ \gdef^^e4{\"a}
+ \gdef^^e5{\ringaccent a}
+ \gdef^^e6{\ae}
+ \gdef^^e7{\cedilla c}
+ \gdef^^e8{\`e}
+ \gdef^^e9{\'e}
+ \gdef^^ea{\^e}
+ \gdef^^eb{\"e}
+ \gdef^^ec{\`{\dotless i}}
+ \gdef^^ed{\'{\dotless i}}
+ \gdef^^ee{\^{\dotless i}}
+ \gdef^^ef{\"{\dotless i}}
+ %
+ \gdef^^f0{\dh}
+ \gdef^^f1{\~n}
+ \gdef^^f2{\`o}
+ \gdef^^f3{\'o}
+ \gdef^^f4{\^o}
+ \gdef^^f5{\~o}
+ \gdef^^f6{\"o}
+ \gdef^^f7{$\div$}
+ \gdef^^f8{\o}
+ \gdef^^f9{\`u}
+ \gdef^^fa{\'u}
+ \gdef^^fb{\^u}
+ \gdef^^fc{\"u}
+ \gdef^^fd{\'y}
+ \gdef^^fe{\th}
+ \gdef^^ff{\"y}
+}
+
+% Latin9 (ISO-8859-15) encoding character definitions.
+\def\latninechardefs{%
+ % Encoding is almost identical to Latin1.
+ \latonechardefs
+ %
+ \gdef^^a4{\euro}
+ \gdef^^a6{\v S}
+ \gdef^^a8{\v s}
+ \gdef^^b4{\v Z}
+ \gdef^^b8{\v z}
+ \gdef^^bc{\OE}
+ \gdef^^bd{\oe}
+ \gdef^^be{\"Y}
+}
+
+% Latin2 (ISO-8859-2) character definitions.
+\def\lattwochardefs{%
+ \gdef^^a0{\tie}
+ \gdef^^a1{\ogonek{A}}
+ \gdef^^a2{\u{}}
+ \gdef^^a3{\L}
+ \gdef^^a4{\missingcharmsg{CURRENCY SIGN}}
+ \gdef^^a5{\v L}
+ \gdef^^a6{\'S}
+ \gdef^^a7{\S}
+ \gdef^^a8{\"{}}
+ \gdef^^a9{\v S}
+ \gdef^^aa{\cedilla S}
+ \gdef^^ab{\v T}
+ \gdef^^ac{\'Z}
+ \gdef^^ad{\-}
+ \gdef^^ae{\v Z}
+ \gdef^^af{\dotaccent Z}
+ %
+ \gdef^^b0{\textdegree}
+ \gdef^^b1{\ogonek{a}}
+ \gdef^^b2{\ogonek{ }}
+ \gdef^^b3{\l}
+ \gdef^^b4{\'{}}
+ \gdef^^b5{\v l}
+ \gdef^^b6{\'s}
+ \gdef^^b7{\v{}}
+ \gdef^^b8{\cedilla\ }
+ \gdef^^b9{\v s}
+ \gdef^^ba{\cedilla s}
+ \gdef^^bb{\v t}
+ \gdef^^bc{\'z}
+ \gdef^^bd{\H{}}
+ \gdef^^be{\v z}
+ \gdef^^bf{\dotaccent z}
+ %
+ \gdef^^c0{\'R}
+ \gdef^^c1{\'A}
+ \gdef^^c2{\^A}
+ \gdef^^c3{\u A}
+ \gdef^^c4{\"A}
+ \gdef^^c5{\'L}
+ \gdef^^c6{\'C}
+ \gdef^^c7{\cedilla C}
+ \gdef^^c8{\v C}
+ \gdef^^c9{\'E}
+ \gdef^^ca{\ogonek{E}}
+ \gdef^^cb{\"E}
+ \gdef^^cc{\v E}
+ \gdef^^cd{\'I}
+ \gdef^^ce{\^I}
+ \gdef^^cf{\v D}
+ %
+ \gdef^^d0{\DH}
+ \gdef^^d1{\'N}
+ \gdef^^d2{\v N}
+ \gdef^^d3{\'O}
+ \gdef^^d4{\^O}
+ \gdef^^d5{\H O}
+ \gdef^^d6{\"O}
+ \gdef^^d7{$\times$}
+ \gdef^^d8{\v R}
+ \gdef^^d9{\ringaccent U}
+ \gdef^^da{\'U}
+ \gdef^^db{\H U}
+ \gdef^^dc{\"U}
+ \gdef^^dd{\'Y}
+ \gdef^^de{\cedilla T}
+ \gdef^^df{\ss}
+ %
+ \gdef^^e0{\'r}
+ \gdef^^e1{\'a}
+ \gdef^^e2{\^a}
+ \gdef^^e3{\u a}
+ \gdef^^e4{\"a}
+ \gdef^^e5{\'l}
+ \gdef^^e6{\'c}
+ \gdef^^e7{\cedilla c}
+ \gdef^^e8{\v c}
+ \gdef^^e9{\'e}
+ \gdef^^ea{\ogonek{e}}
+ \gdef^^eb{\"e}
+ \gdef^^ec{\v e}
+ \gdef^^ed{\'{\dotless{i}}}
+ \gdef^^ee{\^{\dotless{i}}}
+ \gdef^^ef{\v d}
+ %
+ \gdef^^f0{\dh}
+ \gdef^^f1{\'n}
+ \gdef^^f2{\v n}
+ \gdef^^f3{\'o}
+ \gdef^^f4{\^o}
+ \gdef^^f5{\H o}
+ \gdef^^f6{\"o}
+ \gdef^^f7{$\div$}
+ \gdef^^f8{\v r}
+ \gdef^^f9{\ringaccent u}
+ \gdef^^fa{\'u}
+ \gdef^^fb{\H u}
+ \gdef^^fc{\"u}
+ \gdef^^fd{\'y}
+ \gdef^^fe{\cedilla t}
+ \gdef^^ff{\dotaccent{}}
+}
+
+% 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
+
+\gdef\UTFviiiTwoOctets#1#2{\expandafter
+ \UTFviiiDefined\csname u8:#1\string #2\endcsname}
+%
+\gdef\UTFviiiThreeOctets#1#2#3{\expandafter
+ \UTFviiiDefined\csname u8:#1\string #2\string #3\endcsname}
+%
+\gdef\UTFviiiFourOctets#1#2#3#4{\expandafter
+ \UTFviiiDefined\csname u8:#1\string #2\string #3\string #4\endcsname}
+
+\gdef\UTFviiiDefined#1{%
+ \ifx #1\relax
+ \message{\linenumber Unicode char \string #1 not defined for Texinfo}%
+ \else
+ \expandafter #1%
+ \fi
+}
+
+\begingroup
+ \catcode`\~13
+ \catcode`\"12
+
+ \def\UTFviiiLoop{%
+ \global\catcode\countUTFx\active
+ \uccode`\~\countUTFx
+ \uppercase\expandafter{\UTFviiiTmp}%
+ \advance\countUTFx by 1
+ \ifnum\countUTFx < \countUTFy
+ \expandafter\UTFviiiLoop
+ \fi}
+
+ \countUTFx = "C2
+ \countUTFy = "E0
+ \def\UTFviiiTmp{%
+ \xdef~{\noexpand\UTFviiiTwoOctets\string~}}
+ \UTFviiiLoop
+
+ \countUTFx = "E0
+ \countUTFy = "F0
+ \def\UTFviiiTmp{%
+ \xdef~{\noexpand\UTFviiiThreeOctets\string~}}
+ \UTFviiiLoop
+
+ \countUTFx = "F0
+ \countUTFy = "F4
+ \def\UTFviiiTmp{%
+ \xdef~{\noexpand\UTFviiiFourOctets\string~}}
+ \UTFviiiLoop
+\endgroup
+
+\begingroup
+ \catcode`\"=12
+ \catcode`\<=12
+ \catcode`\.=12
+ \catcode`\,=12
+ \catcode`\;=12
+ \catcode`\!=12
+ \catcode`\~=13
+
+ \gdef\DeclareUnicodeCharacter#1#2{%
+ \countUTFz = "#1\relax
+ %\wlog{\space\space defining Unicode char U+#1 (decimal \the\countUTFz)}%
+ \begingroup
+ \parseXMLCharref
+ \def\UTFviiiTwoOctets##1##2{%
+ \csname u8:##1\string ##2\endcsname}%
+ \def\UTFviiiThreeOctets##1##2##3{%
+ \csname u8:##1\string ##2\string ##3\endcsname}%
+ \def\UTFviiiFourOctets##1##2##3##4{%
+ \csname u8:##1\string ##2\string ##3\string ##4\endcsname}%
+ \expandafter\expandafter\expandafter\expandafter
+ \expandafter\expandafter\expandafter
+ \gdef\UTFviiiTmp{#2}%
+ \endgroup}
+
+ \gdef\parseXMLCharref{%
+ \ifnum\countUTFz < "A0\relax
+ \errhelp = \EMsimple
+ \errmessage{Cannot define Unicode char value < 00A0}%
+ \else\ifnum\countUTFz < "800\relax
+ \parseUTFviiiA,%
+ \parseUTFviiiB C\UTFviiiTwoOctets.,%
+ \else\ifnum\countUTFz < "10000\relax
+ \parseUTFviiiA;%
+ \parseUTFviiiA,%
+ \parseUTFviiiB E\UTFviiiThreeOctets.{,;}%
+ \else
+ \parseUTFviiiA;%
+ \parseUTFviiiA,%
+ \parseUTFviiiA!%
+ \parseUTFviiiB F\UTFviiiFourOctets.{!,;}%
+ \fi\fi\fi
+ }
+
+ \gdef\parseUTFviiiA#1{%
+ \countUTFx = \countUTFz
+ \divide\countUTFz by 64
+ \countUTFy = \countUTFz
+ \multiply\countUTFz by 64
+ \advance\countUTFx by -\countUTFz
+ \advance\countUTFx by 128
+ \uccode `#1\countUTFx
+ \countUTFz = \countUTFy}
+
+ \gdef\parseUTFviiiB#1#2#3#4{%
+ \advance\countUTFz by "#10\relax
+ \uccode `#3\countUTFz
+ \uppercase{\gdef\UTFviiiTmp{#2#3#4}}}
+\endgroup
+
+\def\utfeightchardefs{%
+ \DeclareUnicodeCharacter{00A0}{\tie}
+ \DeclareUnicodeCharacter{00A1}{\exclamdown}
+ \DeclareUnicodeCharacter{00A3}{\pounds}
+ \DeclareUnicodeCharacter{00A8}{\"{ }}
+ \DeclareUnicodeCharacter{00A9}{\copyright}
+ \DeclareUnicodeCharacter{00AA}{\ordf}
+ \DeclareUnicodeCharacter{00AB}{\guillemetleft}
+ \DeclareUnicodeCharacter{00AD}{\-}
+ \DeclareUnicodeCharacter{00AE}{\registeredsymbol}
+ \DeclareUnicodeCharacter{00AF}{\={ }}
+
+ \DeclareUnicodeCharacter{00B0}{\ringaccent{ }}
+ \DeclareUnicodeCharacter{00B4}{\'{ }}
+ \DeclareUnicodeCharacter{00B8}{\cedilla{ }}
+ \DeclareUnicodeCharacter{00BA}{\ordm}
+ \DeclareUnicodeCharacter{00BB}{\guillemetright}
+ \DeclareUnicodeCharacter{00BF}{\questiondown}
+
+ \DeclareUnicodeCharacter{00C0}{\`A}
+ \DeclareUnicodeCharacter{00C1}{\'A}
+ \DeclareUnicodeCharacter{00C2}{\^A}
+ \DeclareUnicodeCharacter{00C3}{\~A}
+ \DeclareUnicodeCharacter{00C4}{\"A}
+ \DeclareUnicodeCharacter{00C5}{\AA}
+ \DeclareUnicodeCharacter{00C6}{\AE}
+ \DeclareUnicodeCharacter{00C7}{\cedilla{C}}
+ \DeclareUnicodeCharacter{00C8}{\`E}
+ \DeclareUnicodeCharacter{00C9}{\'E}
+ \DeclareUnicodeCharacter{00CA}{\^E}
+ \DeclareUnicodeCharacter{00CB}{\"E}
+ \DeclareUnicodeCharacter{00CC}{\`I}
+ \DeclareUnicodeCharacter{00CD}{\'I}
+ \DeclareUnicodeCharacter{00CE}{\^I}
+ \DeclareUnicodeCharacter{00CF}{\"I}
+
+ \DeclareUnicodeCharacter{00D0}{\DH}
+ \DeclareUnicodeCharacter{00D1}{\~N}
+ \DeclareUnicodeCharacter{00D2}{\`O}
+ \DeclareUnicodeCharacter{00D3}{\'O}
+ \DeclareUnicodeCharacter{00D4}{\^O}
+ \DeclareUnicodeCharacter{00D5}{\~O}
+ \DeclareUnicodeCharacter{00D6}{\"O}
+ \DeclareUnicodeCharacter{00D8}{\O}
+ \DeclareUnicodeCharacter{00D9}{\`U}
+ \DeclareUnicodeCharacter{00DA}{\'U}
+ \DeclareUnicodeCharacter{00DB}{\^U}
+ \DeclareUnicodeCharacter{00DC}{\"U}
+ \DeclareUnicodeCharacter{00DD}{\'Y}
+ \DeclareUnicodeCharacter{00DE}{\TH}
+ \DeclareUnicodeCharacter{00DF}{\ss}
+
+ \DeclareUnicodeCharacter{00E0}{\`a}
+ \DeclareUnicodeCharacter{00E1}{\'a}
+ \DeclareUnicodeCharacter{00E2}{\^a}
+ \DeclareUnicodeCharacter{00E3}{\~a}
+ \DeclareUnicodeCharacter{00E4}{\"a}
+ \DeclareUnicodeCharacter{00E5}{\aa}
+ \DeclareUnicodeCharacter{00E6}{\ae}
+ \DeclareUnicodeCharacter{00E7}{\cedilla{c}}
+ \DeclareUnicodeCharacter{00E8}{\`e}
+ \DeclareUnicodeCharacter{00E9}{\'e}
+ \DeclareUnicodeCharacter{00EA}{\^e}
+ \DeclareUnicodeCharacter{00EB}{\"e}
+ \DeclareUnicodeCharacter{00EC}{\`{\dotless{i}}}
+ \DeclareUnicodeCharacter{00ED}{\'{\dotless{i}}}
+ \DeclareUnicodeCharacter{00EE}{\^{\dotless{i}}}
+ \DeclareUnicodeCharacter{00EF}{\"{\dotless{i}}}
+
+ \DeclareUnicodeCharacter{00F0}{\dh}
+ \DeclareUnicodeCharacter{00F1}{\~n}
+ \DeclareUnicodeCharacter{00F2}{\`o}
+ \DeclareUnicodeCharacter{00F3}{\'o}
+ \DeclareUnicodeCharacter{00F4}{\^o}
+ \DeclareUnicodeCharacter{00F5}{\~o}
+ \DeclareUnicodeCharacter{00F6}{\"o}
+ \DeclareUnicodeCharacter{00F8}{\o}
+ \DeclareUnicodeCharacter{00F9}{\`u}
+ \DeclareUnicodeCharacter{00FA}{\'u}
+ \DeclareUnicodeCharacter{00FB}{\^u}
+ \DeclareUnicodeCharacter{00FC}{\"u}
+ \DeclareUnicodeCharacter{00FD}{\'y}
+ \DeclareUnicodeCharacter{00FE}{\th}
+ \DeclareUnicodeCharacter{00FF}{\"y}
+
+ \DeclareUnicodeCharacter{0100}{\=A}
+ \DeclareUnicodeCharacter{0101}{\=a}
+ \DeclareUnicodeCharacter{0102}{\u{A}}
+ \DeclareUnicodeCharacter{0103}{\u{a}}
+ \DeclareUnicodeCharacter{0104}{\ogonek{A}}
+ \DeclareUnicodeCharacter{0105}{\ogonek{a}}
+ \DeclareUnicodeCharacter{0106}{\'C}
+ \DeclareUnicodeCharacter{0107}{\'c}
+ \DeclareUnicodeCharacter{0108}{\^C}
+ \DeclareUnicodeCharacter{0109}{\^c}
+ \DeclareUnicodeCharacter{0118}{\ogonek{E}}
+ \DeclareUnicodeCharacter{0119}{\ogonek{e}}
+ \DeclareUnicodeCharacter{010A}{\dotaccent{C}}
+ \DeclareUnicodeCharacter{010B}{\dotaccent{c}}
+ \DeclareUnicodeCharacter{010C}{\v{C}}
+ \DeclareUnicodeCharacter{010D}{\v{c}}
+ \DeclareUnicodeCharacter{010E}{\v{D}}
+
+ \DeclareUnicodeCharacter{0112}{\=E}
+ \DeclareUnicodeCharacter{0113}{\=e}
+ \DeclareUnicodeCharacter{0114}{\u{E}}
+ \DeclareUnicodeCharacter{0115}{\u{e}}
+ \DeclareUnicodeCharacter{0116}{\dotaccent{E}}
+ \DeclareUnicodeCharacter{0117}{\dotaccent{e}}
+ \DeclareUnicodeCharacter{011A}{\v{E}}
+ \DeclareUnicodeCharacter{011B}{\v{e}}
+ \DeclareUnicodeCharacter{011C}{\^G}
+ \DeclareUnicodeCharacter{011D}{\^g}
+ \DeclareUnicodeCharacter{011E}{\u{G}}
+ \DeclareUnicodeCharacter{011F}{\u{g}}
+
+ \DeclareUnicodeCharacter{0120}{\dotaccent{G}}
+ \DeclareUnicodeCharacter{0121}{\dotaccent{g}}
+ \DeclareUnicodeCharacter{0124}{\^H}
+ \DeclareUnicodeCharacter{0125}{\^h}
+ \DeclareUnicodeCharacter{0128}{\~I}
+ \DeclareUnicodeCharacter{0129}{\~{\dotless{i}}}
+ \DeclareUnicodeCharacter{012A}{\=I}
+ \DeclareUnicodeCharacter{012B}{\={\dotless{i}}}
+ \DeclareUnicodeCharacter{012C}{\u{I}}
+ \DeclareUnicodeCharacter{012D}{\u{\dotless{i}}}
+
+ \DeclareUnicodeCharacter{0130}{\dotaccent{I}}
+ \DeclareUnicodeCharacter{0131}{\dotless{i}}
+ \DeclareUnicodeCharacter{0132}{IJ}
+ \DeclareUnicodeCharacter{0133}{ij}
+ \DeclareUnicodeCharacter{0134}{\^J}
+ \DeclareUnicodeCharacter{0135}{\^{\dotless{j}}}
+ \DeclareUnicodeCharacter{0139}{\'L}
+ \DeclareUnicodeCharacter{013A}{\'l}
+
+ \DeclareUnicodeCharacter{0141}{\L}
+ \DeclareUnicodeCharacter{0142}{\l}
+ \DeclareUnicodeCharacter{0143}{\'N}
+ \DeclareUnicodeCharacter{0144}{\'n}
+ \DeclareUnicodeCharacter{0147}{\v{N}}
+ \DeclareUnicodeCharacter{0148}{\v{n}}
+ \DeclareUnicodeCharacter{014C}{\=O}
+ \DeclareUnicodeCharacter{014D}{\=o}
+ \DeclareUnicodeCharacter{014E}{\u{O}}
+ \DeclareUnicodeCharacter{014F}{\u{o}}
+
+ \DeclareUnicodeCharacter{0150}{\H{O}}
+ \DeclareUnicodeCharacter{0151}{\H{o}}
+ \DeclareUnicodeCharacter{0152}{\OE}
+ \DeclareUnicodeCharacter{0153}{\oe}
+ \DeclareUnicodeCharacter{0154}{\'R}
+ \DeclareUnicodeCharacter{0155}{\'r}
+ \DeclareUnicodeCharacter{0158}{\v{R}}
+ \DeclareUnicodeCharacter{0159}{\v{r}}
+ \DeclareUnicodeCharacter{015A}{\'S}
+ \DeclareUnicodeCharacter{015B}{\'s}
+ \DeclareUnicodeCharacter{015C}{\^S}
+ \DeclareUnicodeCharacter{015D}{\^s}
+ \DeclareUnicodeCharacter{015E}{\cedilla{S}}
+ \DeclareUnicodeCharacter{015F}{\cedilla{s}}
+
+ \DeclareUnicodeCharacter{0160}{\v{S}}
+ \DeclareUnicodeCharacter{0161}{\v{s}}
+ \DeclareUnicodeCharacter{0162}{\cedilla{t}}
+ \DeclareUnicodeCharacter{0163}{\cedilla{T}}
+ \DeclareUnicodeCharacter{0164}{\v{T}}
+
+ \DeclareUnicodeCharacter{0168}{\~U}
+ \DeclareUnicodeCharacter{0169}{\~u}
+ \DeclareUnicodeCharacter{016A}{\=U}
+ \DeclareUnicodeCharacter{016B}{\=u}
+ \DeclareUnicodeCharacter{016C}{\u{U}}
+ \DeclareUnicodeCharacter{016D}{\u{u}}
+ \DeclareUnicodeCharacter{016E}{\ringaccent{U}}
+ \DeclareUnicodeCharacter{016F}{\ringaccent{u}}
+
+ \DeclareUnicodeCharacter{0170}{\H{U}}
+ \DeclareUnicodeCharacter{0171}{\H{u}}
+ \DeclareUnicodeCharacter{0174}{\^W}
+ \DeclareUnicodeCharacter{0175}{\^w}
+ \DeclareUnicodeCharacter{0176}{\^Y}
+ \DeclareUnicodeCharacter{0177}{\^y}
+ \DeclareUnicodeCharacter{0178}{\"Y}
+ \DeclareUnicodeCharacter{0179}{\'Z}
+ \DeclareUnicodeCharacter{017A}{\'z}
+ \DeclareUnicodeCharacter{017B}{\dotaccent{Z}}
+ \DeclareUnicodeCharacter{017C}{\dotaccent{z}}
+ \DeclareUnicodeCharacter{017D}{\v{Z}}
+ \DeclareUnicodeCharacter{017E}{\v{z}}
+
+ \DeclareUnicodeCharacter{01C4}{D\v{Z}}
+ \DeclareUnicodeCharacter{01C5}{D\v{z}}
+ \DeclareUnicodeCharacter{01C6}{d\v{z}}
+ \DeclareUnicodeCharacter{01C7}{LJ}
+ \DeclareUnicodeCharacter{01C8}{Lj}
+ \DeclareUnicodeCharacter{01C9}{lj}
+ \DeclareUnicodeCharacter{01CA}{NJ}
+ \DeclareUnicodeCharacter{01CB}{Nj}
+ \DeclareUnicodeCharacter{01CC}{nj}
+ \DeclareUnicodeCharacter{01CD}{\v{A}}
+ \DeclareUnicodeCharacter{01CE}{\v{a}}
+ \DeclareUnicodeCharacter{01CF}{\v{I}}
+
+ \DeclareUnicodeCharacter{01D0}{\v{\dotless{i}}}
+ \DeclareUnicodeCharacter{01D1}{\v{O}}
+ \DeclareUnicodeCharacter{01D2}{\v{o}}
+ \DeclareUnicodeCharacter{01D3}{\v{U}}
+ \DeclareUnicodeCharacter{01D4}{\v{u}}
+
+ \DeclareUnicodeCharacter{01E2}{\={\AE}}
+ \DeclareUnicodeCharacter{01E3}{\={\ae}}
+ \DeclareUnicodeCharacter{01E6}{\v{G}}
+ \DeclareUnicodeCharacter{01E7}{\v{g}}
+ \DeclareUnicodeCharacter{01E8}{\v{K}}
+ \DeclareUnicodeCharacter{01E9}{\v{k}}
+
+ \DeclareUnicodeCharacter{01F0}{\v{\dotless{j}}}
+ \DeclareUnicodeCharacter{01F1}{DZ}
+ \DeclareUnicodeCharacter{01F2}{Dz}
+ \DeclareUnicodeCharacter{01F3}{dz}
+ \DeclareUnicodeCharacter{01F4}{\'G}
+ \DeclareUnicodeCharacter{01F5}{\'g}
+ \DeclareUnicodeCharacter{01F8}{\`N}
+ \DeclareUnicodeCharacter{01F9}{\`n}
+ \DeclareUnicodeCharacter{01FC}{\'{\AE}}
+ \DeclareUnicodeCharacter{01FD}{\'{\ae}}
+ \DeclareUnicodeCharacter{01FE}{\'{\O}}
+ \DeclareUnicodeCharacter{01FF}{\'{\o}}
+
+ \DeclareUnicodeCharacter{021E}{\v{H}}
+ \DeclareUnicodeCharacter{021F}{\v{h}}
+
+ \DeclareUnicodeCharacter{0226}{\dotaccent{A}}
+ \DeclareUnicodeCharacter{0227}{\dotaccent{a}}
+ \DeclareUnicodeCharacter{0228}{\cedilla{E}}
+ \DeclareUnicodeCharacter{0229}{\cedilla{e}}
+ \DeclareUnicodeCharacter{022E}{\dotaccent{O}}
+ \DeclareUnicodeCharacter{022F}{\dotaccent{o}}
+
+ \DeclareUnicodeCharacter{0232}{\=Y}
+ \DeclareUnicodeCharacter{0233}{\=y}
+ \DeclareUnicodeCharacter{0237}{\dotless{j}}
+
+ \DeclareUnicodeCharacter{02DB}{\ogonek{ }}
+
+ \DeclareUnicodeCharacter{1E02}{\dotaccent{B}}
+ \DeclareUnicodeCharacter{1E03}{\dotaccent{b}}
+ \DeclareUnicodeCharacter{1E04}{\udotaccent{B}}
+ \DeclareUnicodeCharacter{1E05}{\udotaccent{b}}
+ \DeclareUnicodeCharacter{1E06}{\ubaraccent{B}}
+ \DeclareUnicodeCharacter{1E07}{\ubaraccent{b}}
+ \DeclareUnicodeCharacter{1E0A}{\dotaccent{D}}
+ \DeclareUnicodeCharacter{1E0B}{\dotaccent{d}}
+ \DeclareUnicodeCharacter{1E0C}{\udotaccent{D}}
+ \DeclareUnicodeCharacter{1E0D}{\udotaccent{d}}
+ \DeclareUnicodeCharacter{1E0E}{\ubaraccent{D}}
+ \DeclareUnicodeCharacter{1E0F}{\ubaraccent{d}}
+
+ \DeclareUnicodeCharacter{1E1E}{\dotaccent{F}}
+ \DeclareUnicodeCharacter{1E1F}{\dotaccent{f}}
+
+ \DeclareUnicodeCharacter{1E20}{\=G}
+ \DeclareUnicodeCharacter{1E21}{\=g}
+ \DeclareUnicodeCharacter{1E22}{\dotaccent{H}}
+ \DeclareUnicodeCharacter{1E23}{\dotaccent{h}}
+ \DeclareUnicodeCharacter{1E24}{\udotaccent{H}}
+ \DeclareUnicodeCharacter{1E25}{\udotaccent{h}}
+ \DeclareUnicodeCharacter{1E26}{\"H}
+ \DeclareUnicodeCharacter{1E27}{\"h}
+
+ \DeclareUnicodeCharacter{1E30}{\'K}
+ \DeclareUnicodeCharacter{1E31}{\'k}
+ \DeclareUnicodeCharacter{1E32}{\udotaccent{K}}
+ \DeclareUnicodeCharacter{1E33}{\udotaccent{k}}
+ \DeclareUnicodeCharacter{1E34}{\ubaraccent{K}}
+ \DeclareUnicodeCharacter{1E35}{\ubaraccent{k}}
+ \DeclareUnicodeCharacter{1E36}{\udotaccent{L}}
+ \DeclareUnicodeCharacter{1E37}{\udotaccent{l}}
+ \DeclareUnicodeCharacter{1E3A}{\ubaraccent{L}}
+ \DeclareUnicodeCharacter{1E3B}{\ubaraccent{l}}
+ \DeclareUnicodeCharacter{1E3E}{\'M}
+ \DeclareUnicodeCharacter{1E3F}{\'m}
+
+ \DeclareUnicodeCharacter{1E40}{\dotaccent{M}}
+ \DeclareUnicodeCharacter{1E41}{\dotaccent{m}}
+ \DeclareUnicodeCharacter{1E42}{\udotaccent{M}}
+ \DeclareUnicodeCharacter{1E43}{\udotaccent{m}}
+ \DeclareUnicodeCharacter{1E44}{\dotaccent{N}}
+ \DeclareUnicodeCharacter{1E45}{\dotaccent{n}}
+ \DeclareUnicodeCharacter{1E46}{\udotaccent{N}}
+ \DeclareUnicodeCharacter{1E47}{\udotaccent{n}}
+ \DeclareUnicodeCharacter{1E48}{\ubaraccent{N}}
+ \DeclareUnicodeCharacter{1E49}{\ubaraccent{n}}
+
+ \DeclareUnicodeCharacter{1E54}{\'P}
+ \DeclareUnicodeCharacter{1E55}{\'p}
+ \DeclareUnicodeCharacter{1E56}{\dotaccent{P}}
+ \DeclareUnicodeCharacter{1E57}{\dotaccent{p}}
+ \DeclareUnicodeCharacter{1E58}{\dotaccent{R}}
+ \DeclareUnicodeCharacter{1E59}{\dotaccent{r}}
+ \DeclareUnicodeCharacter{1E5A}{\udotaccent{R}}
+ \DeclareUnicodeCharacter{1E5B}{\udotaccent{r}}
+ \DeclareUnicodeCharacter{1E5E}{\ubaraccent{R}}
+ \DeclareUnicodeCharacter{1E5F}{\ubaraccent{r}}
+
+ \DeclareUnicodeCharacter{1E60}{\dotaccent{S}}
+ \DeclareUnicodeCharacter{1E61}{\dotaccent{s}}
+ \DeclareUnicodeCharacter{1E62}{\udotaccent{S}}
+ \DeclareUnicodeCharacter{1E63}{\udotaccent{s}}
+ \DeclareUnicodeCharacter{1E6A}{\dotaccent{T}}
+ \DeclareUnicodeCharacter{1E6B}{\dotaccent{t}}
+ \DeclareUnicodeCharacter{1E6C}{\udotaccent{T}}
+ \DeclareUnicodeCharacter{1E6D}{\udotaccent{t}}
+ \DeclareUnicodeCharacter{1E6E}{\ubaraccent{T}}
+ \DeclareUnicodeCharacter{1E6F}{\ubaraccent{t}}
+
+ \DeclareUnicodeCharacter{1E7C}{\~V}
+ \DeclareUnicodeCharacter{1E7D}{\~v}
+ \DeclareUnicodeCharacter{1E7E}{\udotaccent{V}}
+ \DeclareUnicodeCharacter{1E7F}{\udotaccent{v}}
+
+ \DeclareUnicodeCharacter{1E80}{\`W}
+ \DeclareUnicodeCharacter{1E81}{\`w}
+ \DeclareUnicodeCharacter{1E82}{\'W}
+ \DeclareUnicodeCharacter{1E83}{\'w}
+ \DeclareUnicodeCharacter{1E84}{\"W}
+ \DeclareUnicodeCharacter{1E85}{\"w}
+ \DeclareUnicodeCharacter{1E86}{\dotaccent{W}}
+ \DeclareUnicodeCharacter{1E87}{\dotaccent{w}}
+ \DeclareUnicodeCharacter{1E88}{\udotaccent{W}}
+ \DeclareUnicodeCharacter{1E89}{\udotaccent{w}}
+ \DeclareUnicodeCharacter{1E8A}{\dotaccent{X}}
+ \DeclareUnicodeCharacter{1E8B}{\dotaccent{x}}
+ \DeclareUnicodeCharacter{1E8C}{\"X}
+ \DeclareUnicodeCharacter{1E8D}{\"x}
+ \DeclareUnicodeCharacter{1E8E}{\dotaccent{Y}}
+ \DeclareUnicodeCharacter{1E8F}{\dotaccent{y}}
+
+ \DeclareUnicodeCharacter{1E90}{\^Z}
+ \DeclareUnicodeCharacter{1E91}{\^z}
+ \DeclareUnicodeCharacter{1E92}{\udotaccent{Z}}
+ \DeclareUnicodeCharacter{1E93}{\udotaccent{z}}
+ \DeclareUnicodeCharacter{1E94}{\ubaraccent{Z}}
+ \DeclareUnicodeCharacter{1E95}{\ubaraccent{z}}
+ \DeclareUnicodeCharacter{1E96}{\ubaraccent{h}}
+ \DeclareUnicodeCharacter{1E97}{\"t}
+ \DeclareUnicodeCharacter{1E98}{\ringaccent{w}}
+ \DeclareUnicodeCharacter{1E99}{\ringaccent{y}}
+
+ \DeclareUnicodeCharacter{1EA0}{\udotaccent{A}}
+ \DeclareUnicodeCharacter{1EA1}{\udotaccent{a}}
+
+ \DeclareUnicodeCharacter{1EB8}{\udotaccent{E}}
+ \DeclareUnicodeCharacter{1EB9}{\udotaccent{e}}
+ \DeclareUnicodeCharacter{1EBC}{\~E}
+ \DeclareUnicodeCharacter{1EBD}{\~e}
+
+ \DeclareUnicodeCharacter{1ECA}{\udotaccent{I}}
+ \DeclareUnicodeCharacter{1ECB}{\udotaccent{i}}
+ \DeclareUnicodeCharacter{1ECC}{\udotaccent{O}}
+ \DeclareUnicodeCharacter{1ECD}{\udotaccent{o}}
+
+ \DeclareUnicodeCharacter{1EE4}{\udotaccent{U}}
+ \DeclareUnicodeCharacter{1EE5}{\udotaccent{u}}
+
+ \DeclareUnicodeCharacter{1EF2}{\`Y}
+ \DeclareUnicodeCharacter{1EF3}{\`y}
+ \DeclareUnicodeCharacter{1EF4}{\udotaccent{Y}}
+
+ \DeclareUnicodeCharacter{1EF8}{\~Y}
+ \DeclareUnicodeCharacter{1EF9}{\~y}
+
+ \DeclareUnicodeCharacter{2013}{--}
+ \DeclareUnicodeCharacter{2014}{---}
+ \DeclareUnicodeCharacter{2018}{\quoteleft}
+ \DeclareUnicodeCharacter{2019}{\quoteright}
+ \DeclareUnicodeCharacter{201A}{\quotesinglbase}
+ \DeclareUnicodeCharacter{201C}{\quotedblleft}
+ \DeclareUnicodeCharacter{201D}{\quotedblright}
+ \DeclareUnicodeCharacter{201E}{\quotedblbase}
+ \DeclareUnicodeCharacter{2022}{\bullet}
+ \DeclareUnicodeCharacter{2026}{\dots}
+ \DeclareUnicodeCharacter{2039}{\guilsinglleft}
+ \DeclareUnicodeCharacter{203A}{\guilsinglright}
+ \DeclareUnicodeCharacter{20AC}{\euro}
+
+ \DeclareUnicodeCharacter{2192}{\expansion}
+ \DeclareUnicodeCharacter{21D2}{\result}
+
+ \DeclareUnicodeCharacter{2212}{\minus}
+ \DeclareUnicodeCharacter{2217}{\point}
+ \DeclareUnicodeCharacter{2261}{\equiv}
+}% end of \utfeightchardefs
+
+
+% US-ASCII character definitions.
+\def\asciichardefs{% nothing need be done
+ \relax
+}
+
+% Make non-ASCII characters printable again for compatibility with
+% existing Texinfo documents that may use them, even without declaring a
+% document encoding.
+%
+\setnonasciicharscatcode \other
+
+
+\message{formatting,}
+
+\newdimen\defaultparindent \defaultparindent = 15pt
+
+\chapheadingskip = 15pt plus 4pt minus 2pt
+\secheadingskip = 12pt plus 3pt minus 2pt
+\subsecheadingskip = 9pt plus 2pt minus 2pt
+
+% Prevent underfull vbox error messages.
+\vbadness = 10000
+
+% Don't be very finicky about underfull hboxes, either.
+\hbadness = 6666
+
+% Following George Bush, get rid of widows and orphans.
+\widowpenalty=10000
+\clubpenalty=10000
+
+% Use TeX 3.0's \emergencystretch to help line breaking, but if we're
+% using an old version of TeX, don't do anything. We want the amount of
+% stretch added to depend on the line length, hence the dependence on
+% \hsize. We call this whenever the paper size is set.
+%
+\def\setemergencystretch{%
+ \ifx\emergencystretch\thisisundefined
+ % Allow us to assign to \emergencystretch anyway.
+ \def\emergencystretch{\dimen0}%
+ \else
+ \emergencystretch = .15\hsize
+ \fi
+}
+
+% Parameters in order: 1) textheight; 2) textwidth;
+% 3) voffset; 4) hoffset; 5) binding offset; 6) topskip;
+% 7) physical page height; 8) physical page width.
+%
+% We also call \setleading{\textleading}, so the caller should define
+% \textleading. The caller should also set \parskip.
+%
+\def\internalpagesizes#1#2#3#4#5#6#7#8{%
+ \voffset = #3\relax
+ \topskip = #6\relax
+ \splittopskip = \topskip
+ %
+ \vsize = #1\relax
+ \advance\vsize by \topskip
+ \outervsize = \vsize
+ \advance\outervsize by 2\topandbottommargin
+ \pageheight = \vsize
+ %
+ \hsize = #2\relax
+ \outerhsize = \hsize
+ \advance\outerhsize by 0.5in
+ \pagewidth = \hsize
+ %
+ \normaloffset = #4\relax
+ \bindingoffset = #5\relax
+ %
+ \ifpdf
+ \pdfpageheight #7\relax
+ \pdfpagewidth #8\relax
+ % if we don't reset these, they will remain at "1 true in" of
+ % whatever layout pdftex was dumped with.
+ \pdfhorigin = 1 true in
+ \pdfvorigin = 1 true in
+ \fi
+ %
+ \setleading{\textleading}
+ %
+ \parindent = \defaultparindent
+ \setemergencystretch
+}
+
+% @letterpaper (the default).
+\def\letterpaper{{\globaldefs = 1
+ \parskip = 3pt plus 2pt minus 1pt
+ \textleading = 13.2pt
+ %
+ % If page is nothing but text, make it come out even.
+ \internalpagesizes{607.2pt}{6in}% that's 46 lines
+ {\voffset}{.25in}%
+ {\bindingoffset}{36pt}%
+ {11in}{8.5in}%
+}}
+
+% Use @smallbook to reset parameters for 7x9.25 trim size.
+\def\smallbook{{\globaldefs = 1
+ \parskip = 2pt plus 1pt
+ \textleading = 12pt
+ %
+ \internalpagesizes{7.5in}{5in}%
+ {-.2in}{0in}%
+ {\bindingoffset}{16pt}%
+ {9.25in}{7in}%
+ %
+ \lispnarrowing = 0.3in
+ \tolerance = 700
+ \hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = .5cm
+}}
+
+% Use @smallerbook to reset parameters for 6x9 trim size.
+% (Just testing, parameters still in flux.)
+\def\smallerbook{{\globaldefs = 1
+ \parskip = 1.5pt plus 1pt
+ \textleading = 12pt
+ %
+ \internalpagesizes{7.4in}{4.8in}%
+ {-.2in}{-.4in}%
+ {0pt}{14pt}%
+ {9in}{6in}%
+ %
+ \lispnarrowing = 0.25in
+ \tolerance = 700
+ \hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = .4cm
+}}
+
+% Use @afourpaper to print on European A4 paper.
+\def\afourpaper{{\globaldefs = 1
+ \parskip = 3pt plus 2pt minus 1pt
+ \textleading = 13.2pt
+ %
+ % Double-side printing via postscript on Laserjet 4050
+ % prints double-sided nicely when \bindingoffset=10mm and \hoffset=-6mm.
+ % To change the settings for a different printer or situation, adjust
+ % \normaloffset until the front-side and back-side texts align. Then
+ % do the same for \bindingoffset. You can set these for testing in
+ % your texinfo source file like this:
+ % @tex
+ % \global\normaloffset = -6mm
+ % \global\bindingoffset = 10mm
+ % @end tex
+ \internalpagesizes{673.2pt}{160mm}% that's 51 lines
+ {\voffset}{\hoffset}%
+ {\bindingoffset}{44pt}%
+ {297mm}{210mm}%
+ %
+ \tolerance = 700
+ \hfuzz = 1pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = 5mm
+}}
+
+% Use @afivepaper to print on European A5 paper.
+% From romildo@urano.iceb.ufop.br, 2 July 2000.
+% He also recommends making @example and @lisp be small.
+\def\afivepaper{{\globaldefs = 1
+ \parskip = 2pt plus 1pt minus 0.1pt
+ \textleading = 12.5pt
+ %
+ \internalpagesizes{160mm}{120mm}%
+ {\voffset}{\hoffset}%
+ {\bindingoffset}{8pt}%
+ {210mm}{148mm}%
+ %
+ \lispnarrowing = 0.2in
+ \tolerance = 800
+ \hfuzz = 1.2pt
+ \contentsrightmargin = 0pt
+ \defbodyindent = 2mm
+ \tableindent = 12mm
+}}
+
+% A specific text layout, 24x15cm overall, intended for A4 paper.
+\def\afourlatex{{\globaldefs = 1
+ \afourpaper
+ \internalpagesizes{237mm}{150mm}%
+ {\voffset}{4.6mm}%
+ {\bindingoffset}{7mm}%
+ {297mm}{210mm}%
+ %
+ % Must explicitly reset to 0 because we call \afourpaper.
+ \globaldefs = 0
+}}
+
+% Use @afourwide to print on A4 paper in landscape format.
+\def\afourwide{{\globaldefs = 1
+ \afourpaper
+ \internalpagesizes{241mm}{165mm}%
+ {\voffset}{-2.95mm}%
+ {\bindingoffset}{7mm}%
+ {297mm}{210mm}%
+ \globaldefs = 0
+}}
+
+% @pagesizes TEXTHEIGHT[,TEXTWIDTH]
+% Perhaps we should allow setting the margins, \topskip, \parskip,
+% and/or leading, also. Or perhaps we should compute them somehow.
+%
+\parseargdef\pagesizes{\pagesizesyyy #1,,\finish}
+\def\pagesizesyyy#1,#2,#3\finish{{%
+ \setbox0 = \hbox{\ignorespaces #2}\ifdim\wd0 > 0pt \hsize=#2\relax \fi
+ \globaldefs = 1
+ %
+ \parskip = 3pt plus 2pt minus 1pt
+ \setleading{\textleading}%
+ %
+ \dimen0 = #1\relax
+ \advance\dimen0 by \voffset
+ %
+ \dimen2 = \hsize
+ \advance\dimen2 by \normaloffset
+ %
+ \internalpagesizes{#1}{\hsize}%
+ {\voffset}{\normaloffset}%
+ {\bindingoffset}{44pt}%
+ {\dimen0}{\dimen2}%
+}}
+
+% Set default to letter.
+%
+\letterpaper
+
+
+\message{and turning on texinfo input format.}
+
+\def^^L{\par} % remove \outer, so ^L can appear in an @comment
+
+% DEL is a comment character, in case @c does not suffice.
+\catcode`\^^? = 14
+
+% Define macros to output various characters with catcode for normal text.
+\catcode`\"=\other \def\normaldoublequote{"}
+\catcode`\$=\other \def\normaldollar{$}%$ font-lock fix
+\catcode`\+=\other \def\normalplus{+}
+\catcode`\<=\other \def\normalless{<}
+\catcode`\>=\other \def\normalgreater{>}
+\catcode`\^=\other \def\normalcaret{^}
+\catcode`\_=\other \def\normalunderscore{_}
+\catcode`\|=\other \def\normalverticalbar{|}
+\catcode`\~=\other \def\normaltilde{~}
+
+% This macro is used to make a character print one way in \tt
+% (where it can probably be output as-is), and another way in other fonts,
+% where something hairier probably needs to be done.
+%
+% #1 is what to print if we are indeed using \tt; #2 is what to print
+% otherwise. Since all the Computer Modern typewriter fonts have zero
+% interword stretch (and shrink), and it is reasonable to expect all
+% typewriter fonts to have this, we can check that font parameter.
+%
+\def\ifusingtt#1#2{\ifdim \fontdimen3\font=0pt #1\else #2\fi}
+
+% Same as above, but check for italic font. Actually this also catches
+% non-italic slanted fonts since it is impossible to distinguish them from
+% italic fonts. But since this is only used by $ and it uses \sl anyway
+% this is not a problem.
+\def\ifusingit#1#2{\ifdim \fontdimen1\font>0pt #1\else #2\fi}
+
+% Turn off all special characters except @
+% (and those which the user can use as if they were ordinary).
+% Most of these we simply print from the \tt font, but for some, we can
+% use math or other variants that look better in normal text.
+
+\catcode`\"=\active
+\def\activedoublequote{{\tt\char34}}
+\let"=\activedoublequote
+\catcode`\~=\active
+\def~{{\tt\char126}}
+\chardef\hat=`\^
+\catcode`\^=\active
+\def^{{\tt \hat}}
+
+\catcode`\_=\active
+\def_{\ifusingtt\normalunderscore\_}
+\let\realunder=_
+% Subroutine for the previous macro.
+\def\_{\leavevmode \kern.07em \vbox{\hrule width.3em height.1ex}\kern .07em }
+
+\catcode`\|=\active
+\def|{{\tt\char124}}
+\chardef \less=`\<
+\catcode`\<=\active
+\def<{{\tt \less}}
+\chardef \gtr=`\>
+\catcode`\>=\active
+\def>{{\tt \gtr}}
+\catcode`\+=\active
+\def+{{\tt \char 43}}
+\catcode`\$=\active
+\def${\ifusingit{{\sl\$}}\normaldollar}%$ font-lock fix
+
+% If a .fmt file is being used, characters that might appear in a file
+% name cannot be active until we have parsed the command line.
+% So turn them off again, and have \everyjob (or @setfilename) turn them on.
+% \otherifyactive is called near the end of this file.
+\def\otherifyactive{\catcode`+=\other \catcode`\_=\other}
+
+% Used sometimes to turn off (effectively) the active characters even after
+% parsing them.
+\def\turnoffactive{%
+ \normalturnoffactive
+ \otherbackslash
+}
+
+\catcode`\@=0
+
+% \backslashcurfont outputs one backslash character in current font,
+% as in \char`\\.
+\global\chardef\backslashcurfont=`\\
+\global\let\rawbackslashxx=\backslashcurfont % let existing .??s files work
+
+% \realbackslash is an actual character `\' with catcode other, and
+% \doublebackslash is two of them (for the pdf outlines).
+{\catcode`\\=\other @gdef@realbackslash{\} @gdef@doublebackslash{\\}}
+
+% In texinfo, backslash is an active character; it prints the backslash
+% in fixed width font.
+\catcode`\\=\active % @ for escape char from now on.
+
+% The story here is that in math mode, the \char of \backslashcurfont
+% ends up printing the roman \ from the math symbol font (because \char
+% in math mode uses the \mathcode, and plain.tex sets
+% \mathcode`\\="026E). It seems better for @backslashchar{} to always
+% print a typewriter backslash, hence we use an explicit \mathchar,
+% which is the decimal equivalent of "715c (class 7, e.g., use \fam;
+% ignored family value; char position "5C). We can't use " for the
+% usual hex value because it has already been made active.
+@def@normalbackslash{{@tt @ifmmode @mathchar29020 @else @backslashcurfont @fi}}
+@let@backslashchar = @normalbackslash % @backslashchar{} is for user documents.
+
+% On startup, @fixbackslash assigns:
+% @let \ = @normalbackslash
+% \rawbackslash defines an active \ to do \backslashcurfont.
+% \otherbackslash defines an active \ to be a literal `\' character with
+% catcode other. We switch back and forth between these.
+@gdef@rawbackslash{@let\=@backslashcurfont}
+@gdef@otherbackslash{@let\=@realbackslash}
+
+% Same as @turnoffactive except outputs \ as {\tt\char`\\} instead of
+% the literal character `\'.
+%
+@def@normalturnoffactive{%
+ @let"=@normaldoublequote
+ @let$=@normaldollar %$ font-lock fix
+ @let+=@normalplus
+ @let<=@normalless
+ @let>=@normalgreater
+ @let\=@normalbackslash
+ @let^=@normalcaret
+ @let_=@normalunderscore
+ @let|=@normalverticalbar
+ @let~=@normaltilde
+ @markupsetuplqdefault
+ @markupsetuprqdefault
+ @unsepspaces
+}
+
+% Make _ and + \other characters, temporarily.
+% This is canceled by @fixbackslash.
+@otherifyactive
+
+% If a .fmt file is being used, we don't want the `\input texinfo' to show up.
+% That is what \eatinput is for; after that, the `\' should revert to printing
+% a backslash.
+%
+@gdef@eatinput input texinfo{@fixbackslash}
+@global@let\ = @eatinput
+
+% On the other hand, perhaps the file did not have a `\input texinfo'. Then
+% the first `\' in the file would cause an error. This macro tries to fix
+% that, assuming it is called before the first `\' could plausibly occur.
+% Also turn back on active characters that might appear in the input
+% file name, in case not using a pre-dumped format.
+%
+@gdef@fixbackslash{%
+ @ifx\@eatinput @let\ = @normalbackslash @fi
+ @catcode`+=@active
+ @catcode`@_=@active
+}
+
+% Say @foo, not \foo, in error messages.
+@escapechar = `@@
+
+% These (along with & and #) are made active for url-breaking, so need
+% active definitions as the normal characters.
+@def@normaldot{.}
+@def@normalquest{?}
+@def@normalslash{/}
+
+% These look ok in all fonts, so just make them not special.
+% @hashchar{} gets its own user-level command, because of #line.
+@catcode`@& = @other @def@normalamp{&}
+@catcode`@# = @other @def@normalhash{#}
+@catcode`@% = @other @def@normalpercent{%}
+
+@let @hashchar = @normalhash
+
+@c Finally, make ` and ' active, so that txicodequoteundirected and
+@c txicodequotebacktick work right in, e.g., @w{@code{`foo'}}. If we
+@c don't make ` and ' active, @code will not get them as active chars.
+@c Do this last of all since we use ` in the previous @catcode assignments.
+@catcode`@'=@active
+@catcode`@`=@active
+@markupsetuplqdefault
+@markupsetuprqdefault
+
+@c Local variables:
+@c eval: (add-hook 'write-file-hooks 'time-stamp)
+@c page-delimiter: "^\\\\message"
+@c time-stamp-start: "def\\\\texinfoversion{"
+@c time-stamp-format: "%:y-%02m-%02d.%02H"
+@c time-stamp-end: "}"
+@c End:
+
+@c vim:sw=2:
+
+@ignore
+ arch-tag: e1b36e32-c96e-4135-a41a-0b2efa2ea115
+@end ignore
diff --git a/build-aux/ylwrap b/build-aux/ylwrap
new file mode 100755
index 00000000..84d56340
--- /dev/null
+++ b/build-aux/ylwrap
@@ -0,0 +1,222 @@
+#! /bin/sh
+# ylwrap - wrapper for lex/yacc invocations.
+
+scriptversion=2009-04-28.21; # UTC
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2001, 2002, 2003, 2004, 2005,
+# 2007, 2009 Free Software Foundation, Inc.
+#
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# This 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 2, 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/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+case "$1" in
+ '')
+ echo "$0: No files given. Try \`$0 --help' for more information." 1>&2
+ exit 1
+ ;;
+ --basedir)
+ basedir=$2
+ shift 2
+ ;;
+ -h|--h*)
+ cat <<\EOF
+Usage: ylwrap [--help|--version] INPUT [OUTPUT DESIRED]... -- PROGRAM [ARGS]...
+
+Wrapper for lex/yacc invocations, renaming files as desired.
+
+ INPUT is the input file
+ OUTPUT is one file PROG generates
+ DESIRED is the file we actually want instead of OUTPUT
+ PROGRAM is program to run
+ ARGS are passed to PROG
+
+Any number of OUTPUT,DESIRED pairs may be used.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v|--v*)
+ echo "ylwrap $scriptversion"
+ exit $?
+ ;;
+esac
+
+
+# The input.
+input="$1"
+shift
+case "$input" in
+ [\\/]* | ?:[\\/]*)
+ # Absolute path; do nothing.
+ ;;
+ *)
+ # Relative path. Make it absolute.
+ input="`pwd`/$input"
+ ;;
+esac
+
+pairlist=
+while test "$#" -ne 0; do
+ if test "$1" = "--"; then
+ shift
+ break
+ fi
+ pairlist="$pairlist $1"
+ shift
+done
+
+# The program to run.
+prog="$1"
+shift
+# Make any relative path in $prog absolute.
+case "$prog" in
+ [\\/]* | ?:[\\/]*) ;;
+ *[\\/]*) prog="`pwd`/$prog" ;;
+esac
+
+# FIXME: add hostname here for parallel makes that run commands on
+# other machines. But that might take us over the 14-char limit.
+dirname=ylwrap$$
+trap "cd '`pwd`'; rm -rf $dirname > /dev/null 2>&1" 1 2 3 15
+mkdir $dirname || exit 1
+
+cd $dirname
+
+case $# in
+ 0) "$prog" "$input" ;;
+ *) "$prog" "$@" "$input" ;;
+esac
+ret=$?
+
+if test $ret -eq 0; then
+ set X $pairlist
+ shift
+ first=yes
+ # Since DOS filename conventions don't allow two dots,
+ # the DOS version of Bison writes out y_tab.c instead of y.tab.c
+ # and y_tab.h instead of y.tab.h. Test to see if this is the case.
+ y_tab_nodot="no"
+ if test -f y_tab.c || test -f y_tab.h; then
+ y_tab_nodot="yes"
+ fi
+
+ # The directory holding the input.
+ input_dir=`echo "$input" | sed -e 's,\([\\/]\)[^\\/]*$,\1,'`
+ # Quote $INPUT_DIR so we can use it in a regexp.
+ # FIXME: really we should care about more than `.' and `\'.
+ input_rx=`echo "$input_dir" | sed 's,\\\\,\\\\\\\\,g;s,\\.,\\\\.,g'`
+
+ while test "$#" -ne 0; do
+ from="$1"
+ # Handle y_tab.c and y_tab.h output by DOS
+ if test $y_tab_nodot = "yes"; then
+ if test $from = "y.tab.c"; then
+ from="y_tab.c"
+ else
+ if test $from = "y.tab.h"; then
+ from="y_tab.h"
+ fi
+ fi
+ fi
+ if test -f "$from"; then
+ # If $2 is an absolute path name, then just use that,
+ # otherwise prepend `../'.
+ case "$2" in
+ [\\/]* | ?:[\\/]*) target="$2";;
+ *) target="../$2";;
+ esac
+
+ # We do not want to overwrite a header file if it hasn't
+ # changed. This avoid useless recompilations. However the
+ # parser itself (the first file) should always be updated,
+ # because it is the destination of the .y.c rule in the
+ # Makefile. Divert the output of all other files to a temporary
+ # file so we can compare them to existing versions.
+ if test $first = no; then
+ realtarget="$target"
+ target="tmp-`echo $target | sed s/.*[\\/]//g`"
+ fi
+ # Edit out `#line' or `#' directives.
+ #
+ # We don't want the resulting debug information to point at
+ # an absolute srcdir; it is better for it to just mention the
+ # .y file with no path.
+ #
+ # We want to use the real output file name, not yy.lex.c for
+ # instance.
+ #
+ # We want the include guards to be adjusted too.
+ FROM=`echo "$from" | sed \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
+ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
+ TARGET=`echo "$2" | sed \
+ -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'\
+ -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZ]/_/g'`
+
+ sed -e "/^#/!b" -e "s,$input_rx,," -e "s,$from,$2," \
+ -e "s,$FROM,$TARGET," "$from" >"$target" || ret=$?
+
+ # Check whether header files must be updated.
+ if test $first = no; then
+ if test -f "$realtarget" && cmp -s "$realtarget" "$target"; then
+ echo "$2" is unchanged
+ rm -f "$target"
+ else
+ echo updating "$2"
+ mv -f "$target" "$realtarget"
+ fi
+ fi
+ else
+ # A missing file is only an error for the first file. This
+ # is a blatant hack to let us support using "yacc -d". If -d
+ # is not specified, we don't want an error when the header
+ # file is "missing".
+ if test $first = yes; then
+ ret=1
+ fi
+ fi
+ shift
+ shift
+ first=no
+ done
+else
+ ret=$?
+fi
+
+# Remove the directory.
+cd ..
+rm -rf $dirname
+
+exit $ret
+
+# 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-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/config.h.in b/config.h.in
new file mode 100644
index 00000000..b8805227
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,2362 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+#undef AC_APPLE_UNIVERSAL_BUILD
+
+/* Define to the number of bits in type 'ptrdiff_t'. */
+#undef BITSIZEOF_PTRDIFF_T
+
+/* Define to the number of bits in type 'sig_atomic_t'. */
+#undef BITSIZEOF_SIG_ATOMIC_T
+
+/* Define to the number of bits in type 'size_t'. */
+#undef BITSIZEOF_SIZE_T
+
+/* Define to the number of bits in type 'wchar_t'. */
+#undef BITSIZEOF_WCHAR_T
+
+/* 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.
+ */
+#undef CRAY_STACKSEG_END
+
+/* Define to 1 if using 'alloca.c'. */
+#undef C_ALLOCA
+
+/* Define as the bit index in the word where to find bit 0 of the exponent of
+ 'double'. */
+#undef DBL_EXPBIT0_BIT
+
+/* Define as the word index where to find the exponent of 'double'. */
+#undef DBL_EXPBIT0_WORD
+
+/* Define to a string giving the full name of the default archive file. */
+#undef DEFAULT_ARCHIVE
+
+/* By default produce archives of this format */
+#undef DEFAULT_ARCHIVE_FORMAT
+
+/* Define to a number giving the default blocking size for archives. */
+#undef DEFAULT_BLOCKING
+
+/* Define to a default quoting style (see lib/quoteargs.c for the list) */
+#undef DEFAULT_QUOTING_STYLE
+
+/* Define full file name of rmt program. */
+#undef DEFAULT_RMT_COMMAND
+
+/* Define to 1 if density may be indicated by [lmh] at end of device. */
+#undef DENSITY_LETTER
+
+/* Define to a string giving the prefix of the default device, without the
+ part specifying the unit and density. */
+#undef DEVICE_PREFIX
+
+/* the name of the file descriptor member of DIR */
+#undef 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
+#endif
+
+
+/* Define to 1 if // is a file system root distinct from /. */
+#undef DOUBLE_SLASH_IS_DISTINCT_ROOT
+
+/* Define if struct dirent has a member d_ino that actually works. */
+#undef D_INO_IN_DIRENT
+
+/* Define to 1 if translation of program messages to the user's native
+ language is requested. */
+#undef ENABLE_NLS
+
+/* Define this to 1 if F_DUPFD behavior does not match POSIX */
+#undef FCNTL_DUPFD_BUGGY
+
+/* Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string. */
+#undef FUNC_NL_LANGINFO_YESEXPR_WORKS
+
+/* 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 a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module areadlinkat shall be considered present. */
+#undef GNULIB_AREADLINKAT
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module canonicalize-lgpl shall be considered present. */
+#undef GNULIB_CANONICALIZE_LGPL
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module close-stream shall be considered present. */
+#undef GNULIB_CLOSE_STREAM
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module dirent-safer shall be considered present. */
+#undef GNULIB_DIRENT_SAFER
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module dirname shall be considered present. */
+#undef GNULIB_DIRNAME
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module fdopendir shall be considered present. */
+#undef GNULIB_FDOPENDIR
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module fdutimensat shall be considered present. */
+#undef GNULIB_FDUTIMENSAT
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module fstatat shall be considered present. */
+#undef GNULIB_FSTATAT
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module getcwd shall be considered present. */
+#undef GNULIB_GETCWD
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module malloc-gnu shall be considered present. */
+#undef GNULIB_MALLOC_GNU
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module openat shall be considered present. */
+#undef GNULIB_OPENAT
+
+/* Define to 1 to add extern declaration of program_invocation_name to argp.h
+ */
+#undef GNULIB_PROGRAM_INVOCATION_NAME
+
+/* Define to 1 to add extern declaration of program_invocation_short_name to
+ argp.h */
+#undef GNULIB_PROGRAM_INVOCATION_SHORT_NAME
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module snprintf shall be considered present. */
+#undef GNULIB_SNPRINTF
+
+/* Define to a C preprocessor expression that evaluates to 1 or 0, depending
+ whether the gnulib module strerror shall be considered present. */
+#undef GNULIB_STRERROR
+
+/* Define to 1 when the gnulib module btowc should be tested. */
+#undef GNULIB_TEST_BTOWC
+
+/* Define to 1 when the gnulib module canonicalize_file_name should be tested.
+ */
+#undef GNULIB_TEST_CANONICALIZE_FILE_NAME
+
+/* Define to 1 when the gnulib module chdir should be tested. */
+#undef GNULIB_TEST_CHDIR
+
+/* Define to 1 when the gnulib module chown should be tested. */
+#undef GNULIB_TEST_CHOWN
+
+/* Define to 1 when the gnulib module cloexec should be tested. */
+#undef GNULIB_TEST_CLOEXEC
+
+/* Define to 1 when the gnulib module close should be tested. */
+#undef GNULIB_TEST_CLOSE
+
+/* Define to 1 when the gnulib module closedir should be tested. */
+#undef GNULIB_TEST_CLOSEDIR
+
+/* Define to 1 when the gnulib module dirfd should be tested. */
+#undef GNULIB_TEST_DIRFD
+
+/* Define to 1 when the gnulib module dup should be tested. */
+#undef GNULIB_TEST_DUP
+
+/* Define to 1 when the gnulib module dup2 should be tested. */
+#undef GNULIB_TEST_DUP2
+
+/* Define to 1 when the gnulib module environ should be tested. */
+#undef GNULIB_TEST_ENVIRON
+
+/* Define to 1 when the gnulib module fchdir should be tested. */
+#undef GNULIB_TEST_FCHDIR
+
+/* Define to 1 when the gnulib module fcntl should be tested. */
+#undef GNULIB_TEST_FCNTL
+
+/* Define to 1 when the gnulib module fdopendir should be tested. */
+#undef GNULIB_TEST_FDOPENDIR
+
+/* Define to 1 when the gnulib module fseek should be tested. */
+#undef GNULIB_TEST_FSEEK
+
+/* Define to 1 when the gnulib module fseeko should be tested. */
+#undef GNULIB_TEST_FSEEKO
+
+/* Define to 1 when the gnulib module fstat should be tested. */
+#undef GNULIB_TEST_FSTAT
+
+/* Define to 1 when the gnulib module fstatat should be tested. */
+#undef GNULIB_TEST_FSTATAT
+
+/* Define to 1 when the gnulib module futimens should be tested. */
+#undef GNULIB_TEST_FUTIMENS
+
+/* Define to 1 when the gnulib module getcwd should be tested. */
+#undef GNULIB_TEST_GETCWD
+
+/* Define to 1 when the gnulib module getdelim should be tested. */
+#undef GNULIB_TEST_GETDELIM
+
+/* Define to 1 when the gnulib module getdtablesize should be tested. */
+#undef GNULIB_TEST_GETDTABLESIZE
+
+/* Define to 1 when the gnulib module getline should be tested. */
+#undef GNULIB_TEST_GETLINE
+
+/* Define to 1 when the gnulib module getopt-gnu should be tested. */
+#undef GNULIB_TEST_GETOPT_GNU
+
+/* Define to 1 when the gnulib module getpagesize should be tested. */
+#undef GNULIB_TEST_GETPAGESIZE
+
+/* Define to 1 when the gnulib module gettimeofday should be tested. */
+#undef GNULIB_TEST_GETTIMEOFDAY
+
+/* Define to 1 when the gnulib module iswblank should be tested. */
+#undef GNULIB_TEST_ISWBLANK
+
+/* Define to 1 when the gnulib module lchown should be tested. */
+#undef GNULIB_TEST_LCHOWN
+
+/* Define to 1 when the gnulib module link should be tested. */
+#undef GNULIB_TEST_LINK
+
+/* Define to 1 when the gnulib module linkat should be tested. */
+#undef GNULIB_TEST_LINKAT
+
+/* Define to 1 when the gnulib module lseek should be tested. */
+#undef GNULIB_TEST_LSEEK
+
+/* Define to 1 when the gnulib module lstat should be tested. */
+#undef GNULIB_TEST_LSTAT
+
+/* Define to 1 when the gnulib module malloc-posix should be tested. */
+#undef GNULIB_TEST_MALLOC_POSIX
+
+/* Define to 1 when the gnulib module mbrtowc should be tested. */
+#undef GNULIB_TEST_MBRTOWC
+
+/* Define to 1 when the gnulib module mbscasecmp should be tested. */
+#undef GNULIB_TEST_MBSCASECMP
+
+/* Define to 1 when the gnulib module mbsinit should be tested. */
+#undef GNULIB_TEST_MBSINIT
+
+/* Define to 1 when the gnulib module mbsrtowcs should be tested. */
+#undef GNULIB_TEST_MBSRTOWCS
+
+/* Define to 1 when the gnulib module mbtowc should be tested. */
+#undef GNULIB_TEST_MBTOWC
+
+/* Define to 1 when the gnulib module memchr should be tested. */
+#undef GNULIB_TEST_MEMCHR
+
+/* Define to 1 when the gnulib module mempcpy should be tested. */
+#undef GNULIB_TEST_MEMPCPY
+
+/* Define to 1 when the gnulib module memrchr should be tested. */
+#undef GNULIB_TEST_MEMRCHR
+
+/* Define to 1 when the gnulib module mkdtemp should be tested. */
+#undef GNULIB_TEST_MKDTEMP
+
+/* Define to 1 when the gnulib module mkfifo should be tested. */
+#undef GNULIB_TEST_MKFIFO
+
+/* Define to 1 when the gnulib module mkfifoat should be tested. */
+#undef GNULIB_TEST_MKFIFOAT
+
+/* Define to 1 when the gnulib module mknod should be tested. */
+#undef GNULIB_TEST_MKNOD
+
+/* Define to 1 when the gnulib module mknodat should be tested. */
+#undef GNULIB_TEST_MKNODAT
+
+/* Define to 1 when the gnulib module mktime should be tested. */
+#undef GNULIB_TEST_MKTIME
+
+/* Define to 1 when the gnulib module nl_langinfo should be tested. */
+#undef GNULIB_TEST_NL_LANGINFO
+
+/* Define to 1 when the gnulib module open should be tested. */
+#undef GNULIB_TEST_OPEN
+
+/* Define to 1 when the gnulib module openat should be tested. */
+#undef GNULIB_TEST_OPENAT
+
+/* Define to 1 when the gnulib module opendir should be tested. */
+#undef GNULIB_TEST_OPENDIR
+
+/* Define to 1 when the gnulib module raise should be tested. */
+#undef GNULIB_TEST_RAISE
+
+/* Define to 1 when the gnulib module rawmemchr should be tested. */
+#undef GNULIB_TEST_RAWMEMCHR
+
+/* Define to 1 when the gnulib module read should be tested. */
+#undef GNULIB_TEST_READ
+
+/* Define to 1 when the gnulib module readdir should be tested. */
+#undef GNULIB_TEST_READDIR
+
+/* Define to 1 when the gnulib module readlink should be tested. */
+#undef GNULIB_TEST_READLINK
+
+/* Define to 1 when the gnulib module readlinkat should be tested. */
+#undef GNULIB_TEST_READLINKAT
+
+/* Define to 1 when the gnulib module realloc-posix should be tested. */
+#undef GNULIB_TEST_REALLOC_POSIX
+
+/* Define to 1 when the gnulib module realpath should be tested. */
+#undef GNULIB_TEST_REALPATH
+
+/* Define to 1 when the gnulib module rename should be tested. */
+#undef GNULIB_TEST_RENAME
+
+/* Define to 1 when the gnulib module renameat should be tested. */
+#undef GNULIB_TEST_RENAMEAT
+
+/* Define to 1 when the gnulib module rewinddir should be tested. */
+#undef GNULIB_TEST_REWINDDIR
+
+/* Define to 1 when the gnulib module rmdir should be tested. */
+#undef GNULIB_TEST_RMDIR
+
+/* Define to 1 when the gnulib module rpmatch should be tested. */
+#undef GNULIB_TEST_RPMATCH
+
+/* Define to 1 when the gnulib module setenv should be tested. */
+#undef GNULIB_TEST_SETENV
+
+/* Define to 1 when the gnulib module sleep should be tested. */
+#undef GNULIB_TEST_SLEEP
+
+/* Define to 1 when the gnulib module snprintf should be tested. */
+#undef GNULIB_TEST_SNPRINTF
+
+/* Define to 1 when the gnulib module stat should be tested. */
+#undef GNULIB_TEST_STAT
+
+/* Define to 1 when the gnulib module stpcpy should be tested. */
+#undef GNULIB_TEST_STPCPY
+
+/* Define to 1 when the gnulib module strchrnul should be tested. */
+#undef GNULIB_TEST_STRCHRNUL
+
+/* Define to 1 when the gnulib module strdup should be tested. */
+#undef GNULIB_TEST_STRDUP
+
+/* Define to 1 when the gnulib module strerror should be tested. */
+#undef GNULIB_TEST_STRERROR
+
+/* Define to 1 when the gnulib module strndup should be tested. */
+#undef GNULIB_TEST_STRNDUP
+
+/* Define to 1 when the gnulib module strnlen should be tested. */
+#undef GNULIB_TEST_STRNLEN
+
+/* Define to 1 when the gnulib module strtoull should be tested. */
+#undef GNULIB_TEST_STRTOULL
+
+/* Define to 1 when the gnulib module symlink should be tested. */
+#undef GNULIB_TEST_SYMLINK
+
+/* Define to 1 when the gnulib module symlinkat should be tested. */
+#undef GNULIB_TEST_SYMLINKAT
+
+/* Define to 1 when the gnulib module time_r should be tested. */
+#undef GNULIB_TEST_TIME_R
+
+/* Define to 1 when the gnulib module unsetenv should be tested. */
+#undef GNULIB_TEST_UNSETENV
+
+/* Define to 1 when the gnulib module utimensat should be tested. */
+#undef GNULIB_TEST_UTIMENSAT
+
+/* Define to 1 when the gnulib module vasprintf should be tested. */
+#undef GNULIB_TEST_VASPRINTF
+
+/* Define to 1 when the gnulib module vsnprintf should be tested. */
+#undef GNULIB_TEST_VSNPRINTF
+
+/* Define to 1 when the gnulib module wcrtomb should be tested. */
+#undef GNULIB_TEST_WCRTOMB
+
+/* Define to 1 when the gnulib module wcwidth should be tested. */
+#undef GNULIB_TEST_WCWIDTH
+
+/* Define to 1 when the gnulib module write should be tested. */
+#undef GNULIB_TEST_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
+
+/* Define to 1 if you have 'alloca' after including <alloca.h>, a header that
+ may be supplied by this distribution. */
+#undef HAVE_ALLOCA
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+ */
+#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
+
+/* Define to 1 if you have the `canonicalize_file_name' function. */
+#undef HAVE_CANONICALIZE_FILE_NAME
+
+/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
+ CoreFoundation framework. */
+#undef HAVE_CFLOCALECOPYCURRENT
+
+/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in
+ the CoreFoundation framework. */
+#undef HAVE_CFPREFERENCESCOPYAPPVALUE
+
+/* Define to 1 if you have the `chown' function. */
+#undef HAVE_CHOWN
+
+/* Define to 1 if you have the `clock_gettime' function. */
+#undef HAVE_CLOCK_GETTIME
+
+/* Define to 1 if you have the `clock_settime' function. */
+#undef HAVE_CLOCK_SETTIME
+
+/* Define to 1 if you have the `closedir' function. */
+#undef HAVE_CLOSEDIR
+
+/* Define if you have compound literals. */
+#undef HAVE_COMPOUND_LITERALS
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+ */
+#undef HAVE_DCGETTEXT
+
+/* Define to 1 if you have the declaration of `clearerr_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_CLEARERR_UNLOCKED
+
+/* Define to 1 if you have the declaration of `dirfd', and to 0 if you don't.
+ */
+#undef HAVE_DECL_DIRFD
+
+/* Define to 1 if you have the declaration of `fchdir', and to 0 if you don't.
+ */
+#undef HAVE_DECL_FCHDIR
+
+/* Define to 1 if you have the declaration of `fdopendir', and to 0 if you
+ don't. */
+#undef HAVE_DECL_FDOPENDIR
+
+/* Define to 1 if you have the declaration of `feof_unlocked', and to 0 if you
+ don't. */
+#undef HAVE_DECL_FEOF_UNLOCKED
+
+/* Define to 1 if you have the declaration of `ferror_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FERROR_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fflush_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FFLUSH_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fgets_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FGETS_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fputc_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FPUTC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fputs_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FPUTS_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fread_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FREAD_UNLOCKED
+
+/* Define to 1 if you have the declaration of `fseeko', and to 0 if you don't.
+ */
+#undef HAVE_DECL_FSEEKO
+
+/* Define to 1 if you have the declaration of `fwrite_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_FWRITE_UNLOCKED
+
+/* Define to 1 if you have the declaration of `getchar_unlocked', and to 0 if
+ you don't. */
+#undef HAVE_DECL_GETCHAR_UNLOCKED
+
+/* Define to 1 if you have the declaration of `getcwd', and to 0 if you don't.
+ */
+#undef HAVE_DECL_GETCWD
+
+/* Define to 1 if you have the declaration of `getc_unlocked', and to 0 if you
+ don't. */
+#undef HAVE_DECL_GETC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `getdelim', and to 0 if you
+ don't. */
+#undef HAVE_DECL_GETDELIM
+
+/* Define to 1 if you have the declaration of `getenv', and to 0 if you don't.
+ */
+#undef HAVE_DECL_GETENV
+
+/* Define to 1 if you have the declaration of `getgrgid', and to 0 if you
+ don't. */
+#undef HAVE_DECL_GETGRGID
+
+/* Define to 1 if you have the declaration of `getline', and to 0 if you
+ don't. */
+#undef HAVE_DECL_GETLINE
+
+/* Define to 1 if you have the declaration of `getpwuid', and to 0 if you
+ don't. */
+#undef HAVE_DECL_GETPWUID
+
+/* Define to 1 if you have the declaration of `isblank', and to 0 if you
+ don't. */
+#undef HAVE_DECL_ISBLANK
+
+/* Define to 1 if you have the declaration of `iswblank', and to 0 if you
+ don't. */
+#undef HAVE_DECL_ISWBLANK
+
+/* Define to 1 if you have the declaration of `localtime_r', and to 0 if you
+ don't. */
+#undef HAVE_DECL_LOCALTIME_R
+
+/* Define to 1 if you have the declaration of `mbrtowc', and to 0 if you
+ don't. */
+#undef HAVE_DECL_MBRTOWC
+
+/* Define to 1 if you have the declaration of `mbsinit', and to 0 if you
+ don't. */
+#undef HAVE_DECL_MBSINIT
+
+/* Define to 1 if you have the declaration of `mbsrtowcs', and to 0 if you
+ don't. */
+#undef HAVE_DECL_MBSRTOWCS
+
+/* Define to 1 if you have the declaration of `memrchr', and to 0 if you
+ don't. */
+#undef HAVE_DECL_MEMRCHR
+
+/* 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 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
+ you don't. */
+#undef HAVE_DECL_PUTCHAR_UNLOCKED
+
+/* Define to 1 if you have the declaration of `putc_unlocked', and to 0 if you
+ don't. */
+#undef HAVE_DECL_PUTC_UNLOCKED
+
+/* Define to 1 if you have the declaration of `setenv', and to 0 if you don't.
+ */
+#undef HAVE_DECL_SETENV
+
+/* Define to 1 if you have the declaration of `sleep', and to 0 if you don't.
+ */
+#undef HAVE_DECL_SLEEP
+
+/* Define to 1 if you have the declaration of `snprintf', and to 0 if you
+ don't. */
+#undef HAVE_DECL_SNPRINTF
+
+/* Define to 1 if you have the declaration of `strdup', and to 0 if you don't.
+ */
+#undef HAVE_DECL_STRDUP
+
+/* Define to 1 if you have the declaration of `strerror_r', and to 0 if you
+ don't. */
+#undef HAVE_DECL_STRERROR_R
+
+/* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you
+ don't. */
+#undef HAVE_DECL_STRNCASECMP
+
+/* Define to 1 if you have the declaration of `strndup', and to 0 if you
+ don't. */
+#undef HAVE_DECL_STRNDUP
+
+/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
+ don't. */
+#undef HAVE_DECL_STRNLEN
+
+/* Define to 1 if you have the declaration of `strtoull', and to 0 if you
+ don't. */
+#undef HAVE_DECL_STRTOULL
+
+/* Define to 1 if you have the declaration of `strtoumax', and to 0 if you
+ don't. */
+#undef HAVE_DECL_STRTOUMAX
+
+/* Define to 1 if you have the declaration of `time', and to 0 if you don't.
+ */
+#undef HAVE_DECL_TIME
+
+/* Define to 1 if you have the declaration of `towlower', and to 0 if you
+ don't. */
+#undef HAVE_DECL_TOWLOWER
+
+/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.
+ */
+#undef HAVE_DECL_TZNAME
+
+/* Define to 1 if you have the declaration of `unsetenv', and to 0 if you
+ don't. */
+#undef HAVE_DECL_UNSETENV
+
+/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you
+ don't. */
+#undef HAVE_DECL_VSNPRINTF
+
+/* Define to 1 if you have the declaration of `wcrtomb', and to 0 if you
+ don't. */
+#undef HAVE_DECL_WCRTOMB
+
+/* Define to 1 if you have the declaration of `wcwidth', and to 0 if you
+ don't. */
+#undef HAVE_DECL_WCWIDTH
+
+/* Define to 1 if you have the declaration of `_snprintf', and to 0 if you
+ don't. */
+#undef HAVE_DECL__SNPRINTF
+
+/* Define to 1 if you have the declaration of `__fpending', and to 0 if you
+ don't. */
+#undef HAVE_DECL___FPENDING
+
+/* Define to 1 if you have the <dirent.h> header file. */
+#undef HAVE_DIRENT_H
+
+/* Define to 1 if you have the `dirfd' function. */
+#undef HAVE_DIRFD
+
+/* Define to 1 if you have the 'dup2' function. */
+#undef HAVE_DUP2
+
+/* Define if you have the declaration of environ. */
+#undef HAVE_ENVIRON_DECL
+
+/* Define to 1 if you have the `fchdir' function. */
+#undef HAVE_FCHDIR
+
+/* Define to 1 if you have the `fchmod' function. */
+#undef HAVE_FCHMOD
+
+/* Define to 1 if you have the `fchown' function. */
+#undef HAVE_FCHOWN
+
+/* Define to 1 if you have the `fcntl' function. */
+#undef HAVE_FCNTL
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define to 1 if you have the `fdopendir' function. */
+#undef HAVE_FDOPENDIR
+
+/* Define to 1 if you have the <features.h> header file. */
+#undef HAVE_FEATURES_H
+
+/* Define to 1 if you have the `flockfile' function. */
+#undef HAVE_FLOCKFILE
+
+/* 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
+
+/* Define to 1 if you have the `funlockfile' function. */
+#undef HAVE_FUNLOCKFILE
+
+/* Define to 1 if you have the `futimens' function. */
+#undef HAVE_FUTIMENS
+
+/* Define to 1 if you have the `futimes' function. */
+#undef HAVE_FUTIMES
+
+/* 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
+
+/* Define to 1 if you have the `getdtablesize' function. */
+#undef HAVE_GETDTABLESIZE
+
+/* Define to 1 if you have the <getopt.h> header file. */
+#undef HAVE_GETOPT_H
+
+/* Define to 1 if you have the `getopt_long_only' function. */
+#undef HAVE_GETOPT_LONG_ONLY
+
+/* 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
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define to 1 if you have the <grp.h> header file. */
+#undef HAVE_GRP_H
+
+/* Define if you have the iconv() function and it works. */
+#undef HAVE_ICONV
+
+/* Define to 1 if you have the <iconv.h> header file. */
+#undef HAVE_ICONV_H
+
+/* Define to 1 if the compiler supports one of the keywords 'inline',
+ '__inline__', '__inline' and effectively inlines functions marked as such.
+ */
+#undef HAVE_INLINE
+
+/* Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>. */
+#undef HAVE_INTMAX_T
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define if <inttypes.h> exists, doesn't clash with <sys/types.h>, and
+ declares uintmax_t. */
+#undef HAVE_INTTYPES_H_WITH_UINTMAX
+
+/* Define to 1 if you have the `isblank' function. */
+#undef HAVE_ISBLANK
+
+/* Define to 1 if you have the `iswblank' function. */
+#undef HAVE_ISWBLANK
+
+/* Define to 1 if you have the `iswcntrl' function. */
+#undef HAVE_ISWCNTRL
+
+/* Define to 1 if you have the `iswctype' function. */
+#undef HAVE_ISWCTYPE
+
+/* 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
+
+/* Define to 1 if you have the `lchmod' function. */
+#undef HAVE_LCHMOD
+
+/* Define to 1 if you have the `lchown' function. */
+#undef HAVE_LCHOWN
+
+/* Define to 1 if you have the <libintl.h> header file. */
+#undef HAVE_LIBINTL_H
+
+/* Define to 1 if you have the <linewrap.h> header file. */
+#undef HAVE_LINEWRAP_H
+
+/* Define to 1 if you have the `link' function. */
+#undef HAVE_LINK
+
+/* Define to 1 if you have the `linkat' function. */
+#undef HAVE_LINKAT
+
+/* Define to 1 if you have the <linux/fd.h> header file. */
+#undef HAVE_LINUX_FD_H
+
+/* Define to 1 if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define to 1 if you have the `localtime_r' function. */
+#undef HAVE_LOCALTIME_R
+
+/* Define to 1 if you support file names longer than 14 characters. */
+#undef HAVE_LONG_FILE_NAMES
+
+/* Define to 1 if the system has the type 'long long int'. */
+#undef HAVE_LONG_LONG_INT
+
+/* 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_GNU
+
+/* Define if the 'malloc' function is POSIX compliant. */
+#undef HAVE_MALLOC_POSIX
+
+/* 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. */
+#undef HAVE_MBSINIT
+
+/* Define to 1 if you have the `mbsrtowcs' function. */
+#undef HAVE_MBSRTOWCS
+
+/* Define to 1 if <wchar.h> declares mbstate_t. */
+#undef HAVE_MBSTATE_T
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the `mempcpy' function. */
+#undef HAVE_MEMPCPY
+
+/* Define to 1 if you have the `memrchr' function. */
+#undef HAVE_MEMRCHR
+
+/* Define to 1 if getcwd minimally works, that is, its result can be trusted
+ when it succeeds. */
+#undef HAVE_MINIMALLY_WORKING_GETCWD
+
+/* Define to 1 if you have the `mkdtemp' function. */
+#undef HAVE_MKDTEMP
+
+/* Define to 1 if you have the `mkfifo' function. */
+#undef HAVE_MKFIFO
+
+/* Define to 1 if you have the `mkfifoat' function. */
+#undef HAVE_MKFIFOAT
+
+/* Define to 1 if you have the `mknod' function. */
+#undef HAVE_MKNOD
+
+/* Define to 1 if you have the `mknodat' function. */
+#undef HAVE_MKNODAT
+
+/* Define to 1 if you have the `mprotect' function. */
+#undef HAVE_MPROTECT
+
+/* Define to 1 on MSVC platforms that have the "invalid parameter handler"
+ concept. */
+#undef HAVE_MSVC_INVALID_PARAMETER_HANDLER
+
+/* Define to 1 if you have the `nanotime' function. */
+#undef HAVE_NANOTIME
+
+/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
+#undef HAVE_NDIR_H
+
+/* Define to 1 if you have the <netdb.h> header file. */
+#undef HAVE_NETDB_H
+
+/* 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
+
+/* Define to 1 if you have the `openat' function. */
+#undef HAVE_OPENAT
+
+/* Define to 1 if you have the `opendir' function. */
+#undef HAVE_OPENDIR
+
+/* Define to 1 if you have the <OS.h> header file. */
+#undef HAVE_OS_H
+
+/* Define to 1 if getcwd works, except it sometimes fails when it shouldn't,
+ setting errno to ERANGE, ENAMETOOLONG, or ENOENT. */
+#undef HAVE_PARTLY_WORKING_GETCWD
+
+/* Define to 1 if you have the `pathconf' function. */
+#undef HAVE_PATHCONF
+
+/* Define to 1 if you have the `pipe' function. */
+#undef HAVE_PIPE
+
+/* Define to 1 if you have the <priv.h> header file. */
+#undef HAVE_PRIV_H
+
+/* Define if program_invocation_name is defined */
+#undef HAVE_PROGRAM_INVOCATION_NAME
+
+/* Define if program_invocation_short_name is defined */
+#undef HAVE_PROGRAM_INVOCATION_SHORT_NAME
+
+/* Define to 1 if you have the <pwd.h> header file. */
+#undef HAVE_PWD_H
+
+/* Define to 1 if you have the `raise' function. */
+#undef HAVE_RAISE
+
+/* 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 chdir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_CHDIR
+
+/* Define to 1 if chown is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_CHOWN
+
+/* Define to 1 if closedir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_CLOSEDIR
+
+/* 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 dup is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_DUP
+
+/* 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 fdatasync is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FDATASYNC
+
+/* Define to 1 if fdopendir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FDOPENDIR
+
+/* Define to 1 if ffs is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FFS
+
+/* Define to 1 if ffsl is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FFSL
+
+/* Define to 1 if ffsll is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FFSLL
+
+/* 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 fstat is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_FSTAT
+
+/* 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 grantpt is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_GRANTPT
+
+/* Define to 1 if group_member is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_GROUP_MEMBER
+
+/* 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 initstate is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_INITSTATE
+
+/* Define to 1 if initstate_r is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_INITSTATE_R
+
+/* Define to 1 if isatty is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ISATTY
+
+/* Define to 1 if iswctype is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_ISWCTYPE
+
+/* 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 opendir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_OPENDIR
+
+/* Define to 1 if pclose is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PCLOSE
+
+/* Define to 1 if pipe is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PIPE
+
+/* 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 posix_openpt is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_POSIX_OPENPT
+
+/* Define to 1 if pread is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PREAD
+
+/* Define to 1 if pthread_sigmask is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PTHREAD_SIGMASK
+
+/* Define to 1 if ptsname is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PTSNAME
+
+/* Define to 1 if ptsname_r is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PTSNAME_R
+
+/* Define to 1 if pwrite is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_PWRITE
+
+/* Define to 1 if random is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_RANDOM
+
+/* 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 readdir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_READDIR
+
+/* 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 rewinddir is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_REWINDDIR
+
+/* 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 sethostname is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SETHOSTNAME
+
+/* Define to 1 if setstate is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SETSTATE
+
+/* 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 sigaction is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGACTION
+
+/* Define to 1 if sigaddset is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGADDSET
+
+/* Define to 1 if sigdelset is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGDELSET
+
+/* Define to 1 if sigemptyset is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGEMPTYSET
+
+/* Define to 1 if sigfillset is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGFILLSET
+
+/* Define to 1 if sigismember is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGISMEMBER
+
+/* Define to 1 if sigpending is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGPENDING
+
+/* Define to 1 if sigprocmask is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SIGPROCMASK
+
+/* 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 is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_SRANDOM
+
+/* 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 strerror_r is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_STRERROR_R
+
+/* Define to 1 if strncasecmp is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_STRNCASECMP
+
+/* Define to 1 if strncat is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_STRNCAT
+
+/* 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 tmpfile is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_TMPFILE
+
+/* Define to 1 if towctrans is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_TOWCTRANS
+
+/* Define to 1 if ttyname_r is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_TTYNAME_R
+
+/* 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 unlockpt is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_UNLOCKPT
+
+/* 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 wcpcpy is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCPCPY
+
+/* Define to 1 if wcpncpy is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCPNCPY
+
+/* Define to 1 if wcrtomb is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCRTOMB
+
+/* Define to 1 if wcscasecmp is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCASECMP
+
+/* Define to 1 if wcscat is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCAT
+
+/* Define to 1 if wcschr is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCHR
+
+/* Define to 1 if wcscmp is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCMP
+
+/* Define to 1 if wcscoll is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCOLL
+
+/* Define to 1 if wcscpy is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCPY
+
+/* Define to 1 if wcscspn is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSCSPN
+
+/* Define to 1 if wcsdup is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSDUP
+
+/* Define to 1 if wcslen is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSLEN
+
+/* Define to 1 if wcsncasecmp is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSNCASECMP
+
+/* Define to 1 if wcsncat is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSNCAT
+
+/* Define to 1 if wcsncmp is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSNCMP
+
+/* Define to 1 if wcsncpy is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSNCPY
+
+/* Define to 1 if wcsnlen is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSNLEN
+
+/* Define to 1 if wcsnrtombs is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSNRTOMBS
+
+/* Define to 1 if wcspbrk is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSPBRK
+
+/* Define to 1 if wcsrchr is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSRCHR
+
+/* Define to 1 if wcsrtombs is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSRTOMBS
+
+/* Define to 1 if wcsspn is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSSPN
+
+/* Define to 1 if wcsstr is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSSTR
+
+/* Define to 1 if wcstok is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSTOK
+
+/* Define to 1 if wcswidth is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSWIDTH
+
+/* Define to 1 if wcsxfrm is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCSXFRM
+
+/* Define to 1 if wctob is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCTOB
+
+/* Define to 1 if wctrans is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCTRANS
+
+/* Define to 1 if wctype is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCTYPE
+
+/* Define to 1 if wcwidth is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WCWIDTH
+
+/* Define to 1 if wmemchr is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WMEMCHR
+
+/* Define to 1 if wmemcmp is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WMEMCMP
+
+/* Define to 1 if wmemcpy is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WMEMCPY
+
+/* Define to 1 if wmemmove is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WMEMMOVE
+
+/* Define to 1 if wmemset is declared even after undefining macros. */
+#undef HAVE_RAW_DECL_WMEMSET
+
+/* Define to 1 if _Exit is declared even after undefining macros. */
+#undef HAVE_RAW_DECL__EXIT
+
+/* Define to 1 if you have the `readdir' function. */
+#undef HAVE_READDIR
+
+/* Define to 1 if you have the `readlink' function. */
+#undef HAVE_READLINK
+
+/* Define to 1 if you have the `readlinkat' function. */
+#undef HAVE_READLINKAT
+
+/* 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 `renameat' function. */
+#undef HAVE_RENAMEAT
+
+/* Define to 1 if you have the `rewinddir' function. */
+#undef HAVE_REWINDDIR
+
+/* Define to 1 if you have the `rpmatch' function. */
+#undef HAVE_RPMATCH
+
+/* Define to 1 if you have the <search.h> header file. */
+#undef HAVE_SEARCH_H
+
+/* Define to 1 if you have the `setenv' function. */
+#undef HAVE_SETENV
+
+/* Define to 1 if you have the `setlocale' function. */
+#undef HAVE_SETLOCALE
+
+/* Define to 1 if you have the <sgtty.h> header file. */
+#undef HAVE_SGTTY_H
+
+/* Define to 1 if 'sig_atomic_t' is a signed integer type. */
+#undef HAVE_SIGNED_SIG_ATOMIC_T
+
+/* Define to 1 if 'wchar_t' is a signed integer type. */
+#undef HAVE_SIGNED_WCHAR_T
+
+/* Define to 1 if 'wint_t' is a signed integer type. */
+#undef HAVE_SIGNED_WINT_T
+
+/* Define to 1 if the system has the type `sigset_t'. */
+#undef HAVE_SIGSET_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
+
+/* Define if the return value of the snprintf function is the number of of
+ bytes (excluding the terminating NUL) that would have been produced if the
+ buffer had been large enough. */
+#undef HAVE_SNPRINTF_RETVAL_C99
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define if <stdint.h> exists, doesn't clash with <sys/types.h>, and declares
+ uintmax_t. */
+#undef HAVE_STDINT_H_WITH_UINTMAX
+
+/* Define to 1 if you have the <stdio_ext.h> header file. */
+#undef HAVE_STDIO_EXT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `stpcpy' function. */
+#undef HAVE_STPCPY
+
+/* Define to 1 if you have the `strcasecmp' function. */
+#undef HAVE_STRCASECMP
+
+/* Define to 1 if you have the `strchrnul' function. */
+#undef HAVE_STRCHRNUL
+
+/* Define to 1 if you have the `strdup' function. */
+#undef HAVE_STRDUP
+
+/* Define to 1 if you have the `strerror_r' function. */
+#undef HAVE_STRERROR_R
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the `strncasecmp' function. */
+#undef HAVE_STRNCASECMP
+
+/* 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 `strtol' function. */
+#undef HAVE_STRTOL
+
+/* Define to 1 if you have the `strtoul' function. */
+#undef HAVE_STRTOUL
+
+/* Define to 1 if you have the `strtoull' function. */
+#undef HAVE_STRTOULL
+
+/* Define to 1 if you have the `strtoumax' function. */
+#undef HAVE_STRTOUMAX
+
+/* Define to 1 if `st_atimensec' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_ATIMENSEC
+
+/* Define to 1 if `st_atimespec.tv_nsec' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
+
+/* Define to 1 if `st_atim.st__tim.tv_nsec' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
+
+/* Define to 1 if `st_atim.tv_nsec' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
+
+/* Define to 1 if `st_birthtimensec' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
+
+/* Define to 1 if `st_birthtimespec.tv_nsec' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
+
+/* Define to 1 if `st_birthtim.tv_nsec' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC
+
+/* Define to 1 if `st_blksize' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLKSIZE
+
+/* Define to 1 if `st_blocks' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_BLOCKS
+
+/* Define to 1 if `tm_zone' is a member of `struct tm'. */
+#undef HAVE_STRUCT_TM_TM_ZONE
+
+/* Define if struct utimbuf is declared -- usually in <utime.h>. Some systems
+ have utime.h but don't declare the struct anywhere. */
+#undef HAVE_STRUCT_UTIMBUF
+
+/* Define to 1 if your `struct stat' has `st_blksize'. Deprecated, use
+ `HAVE_STRUCT_STAT_ST_BLKSIZE' instead. */
+#undef HAVE_ST_BLKSIZE
+
+/* Define to 1 if your `struct stat' has `st_blocks'. Deprecated, use
+ `HAVE_STRUCT_STAT_ST_BLOCKS' instead. */
+#undef HAVE_ST_BLOCKS
+
+/* Define if struct stat has a char st_fstype[] member. */
+#undef HAVE_ST_FSTYPE_STRING
+
+/* Define to 1 if you have the `symlink' function. */
+#undef HAVE_SYMLINK
+
+/* Define to 1 if you have the `symlinkat' function. */
+#undef HAVE_SYMLINKAT
+
+/* Define to 1 if you have the <sysexits.h> header file. */
+#undef HAVE_SYSEXITS_H
+
+/* Define to 1 if you have the <sys/bitypes.h> header file. */
+#undef HAVE_SYS_BITYPES_H
+
+/* Define to 1 if you have the <sys/buf.h> header file. */
+#undef HAVE_SYS_BUF_H
+
+/* Define to 1 if you have the <sys/device.h> header file. */
+#undef HAVE_SYS_DEVICE_H
+
+/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_DIR_H
+
+/* Define to 1 if you have the <sys/gentape.h> header file. */
+#undef HAVE_SYS_GENTAPE_H
+
+/* Define to 1 if you have the <sys/inet.h> header file. */
+#undef HAVE_SYS_INET_H
+
+/* Define to 1 if you have the <sys/inttypes.h> header file. */
+#undef HAVE_SYS_INTTYPES_H
+
+/* 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
+
+/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
+ */
+#undef HAVE_SYS_NDIR_H
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#undef HAVE_SYS_SOCKET_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/tape.h> header file. */
+#undef HAVE_SYS_TAPE_H
+
+/* Define to 1 if you have the <sys/timeb.h> header file. */
+#undef HAVE_SYS_TIMEB_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/tprintf.h> header file. */
+#undef HAVE_SYS_TPRINTF_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <sys/wait.h> header file. */
+#undef HAVE_SYS_WAIT_H
+
+/* Define if struct tm has the tm_gmtoff member. */
+#undef HAVE_TM_GMTOFF
+
+/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
+ `HAVE_STRUCT_TM_TM_ZONE' instead. */
+#undef HAVE_TM_ZONE
+
+/* Define to 1 if you have the `towlower' function. */
+#undef HAVE_TOWLOWER
+
+/* Define to 1 if you have the `tsearch' function. */
+#undef HAVE_TSEARCH
+
+/* Define to 1 if you don't have `tm_zone' but do have the external array
+ `tzname'. */
+#undef HAVE_TZNAME
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the `unsetenv' function. */
+#undef HAVE_UNSETENV
+
+/* Define to 1 if the system has the type 'unsigned long long int'. */
+#undef HAVE_UNSIGNED_LONG_LONG_INT
+
+/* Define to 1 if you have the `utimensat' function. */
+#undef HAVE_UTIMENSAT
+
+/* Define to 1 if you have the <utime.h> header file. */
+#undef HAVE_UTIME_H
+
+/* 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
+
+/* Define to 1 if you have the `waitpid' function. */
+#undef HAVE_WAITPID
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#undef HAVE_WCHAR_H
+
+/* Define if you have the 'wchar_t' type. */
+#undef HAVE_WCHAR_T
+
+/* Define to 1 if you have the `wcrtomb' function. */
+#undef HAVE_WCRTOMB
+
+/* Define to 1 if you have the `wcscoll' function. */
+#undef HAVE_WCSCOLL
+
+/* 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
+
+/* Define to 1 if you have the `wcwidth' function. */
+#undef HAVE_WCWIDTH
+
+/* Define to 1 if you have the <winsock2.h> header file. */
+#undef HAVE_WINSOCK2_H
+
+/* Define if you have the 'wint_t' type. */
+#undef HAVE_WINT_T
+
+/* Define to 1 if you have the `wmemchr' function. */
+#undef HAVE_WMEMCHR
+
+/* Define to 1 if you have the `wmemcpy' function. */
+#undef HAVE_WMEMCPY
+
+/* Define to 1 if you have the `wmempcpy' function. */
+#undef HAVE_WMEMPCPY
+
+/* Define to 1 if fstatat (..., 0) works. For example, it does not work in AIX
+ 7.1. */
+#undef HAVE_WORKING_FSTATAT_ZERO_FLAG
+
+/* Define to 1 if O_NOATIME works. */
+#undef HAVE_WORKING_O_NOATIME
+
+/* Define to 1 if O_NOFOLLOW works. */
+#undef HAVE_WORKING_O_NOFOLLOW
+
+/* Define if utimes works properly. */
+#undef HAVE_WORKING_UTIMES
+
+/* Define to 1 if the system has the type `_Bool'. */
+#undef HAVE__BOOL
+
+/* Define to 1 if you have the `_ftime' function. */
+#undef HAVE__FTIME
+
+/* Define to 1 if you have the `_set_invalid_parameter_handler' function. */
+#undef HAVE__SET_INVALID_PARAMETER_HANDLER
+
+/* Define to 1 if you have the `__fpending' function. */
+#undef HAVE___FPENDING
+
+/* Define as const if the declaration of iconv() needs const. */
+#undef ICONV_CONST
+
+/* Define to 1 if linkat fails to recognize a trailing slash. */
+#undef LINKAT_TRAILING_SLASH_BUG
+
+/* Define to 1 if 'link(2)' dereferences symbolic links, 0 if it creates hard
+ links to symlinks, -1 if it depends on the variable __xpg4, and -2 if
+ unknown. */
+#undef LINK_FOLLOWS_SYMLINKS
+
+/* Define to 1 if lseek does not detect pipes. */
+#undef LSEEK_PIPE_BROKEN
+
+/* Define to 1 if 'lstat' dereferences a symlink specified with a trailing
+ 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
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in
+ <sysmacros.h>. */
+#undef MAJOR_IN_SYSMACROS
+
+/* 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 pwc argument bug. */
+#undef MBRTOWC_NULL_ARG1_BUG
+
+/* Define if the mbrtowc function has the NULL string argument bug. */
+#undef MBRTOWC_NULL_ARG2_BUG
+
+/* Define if the mbrtowc function does not return 0 for a NUL character. */
+#undef MBRTOWC_NUL_RETVAL_BUG
+
+/* Define if the mbrtowc function returns a wrong return value. */
+#undef MBRTOWC_RETVAL_BUG
+
+/* Define to 1 if mkfifo does not reject trailing slash */
+#undef MKFIFO_TRAILING_SLASH_BUG
+
+/* Define to 1 if mknod cannot create a fifo without super-user privileges */
+#undef MKNOD_FIFO_BUG
+
+/* Define to mt_model (v.g., for DG/UX), else to mt_type. */
+#undef MTIO_CHECK_FIELD
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+#undef NO_MINUS_C_MINUS_O
+
+/* Define to 1 if open() fails to recognize a trailing slash. */
+#undef OPEN_TRAILING_SLASH_BUG
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* 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
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* the number of pending output bytes on stream 'fp' */
+#undef PENDING_OUTPUT_N_BYTES
+
+/* 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 if rename does not work when the destination file exists, as on
+ Cygwin 1.5 or Windows. */
+#undef RENAME_DEST_EXISTS_BUG
+
+/* Define if rename fails to leave hard links alone, as on NetBSD 1.6 or
+ Cygwin 1.5. */
+#undef RENAME_HARD_LINK_BUG
+
+/* Define if rename does not correctly handle slashes on the destination
+ argument, such as on Solaris 10 or NetBSD 1.6. */
+#undef RENAME_TRAILING_SLASH_DEST_BUG
+
+/* Define if rename does not correctly handle slashes on the source argument,
+ such as on Solaris 9 or cygwin 1.5. */
+#undef RENAME_TRAILING_SLASH_SOURCE_BUG
+
+/* 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 to 1 if strerror(0) does not return a message implying success. */
+#undef REPLACE_STRERROR_0
+
+/* Define if vasnprintf exists but is overridden by gnulib. */
+#undef REPLACE_VASNPRINTF
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#undef RETSIGTYPE
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ 'sig_atomic_t'. */
+#undef SIG_ATOMIC_T_SUFFIX
+
+/* Define as the maximum value of type 'size_t', if the system doesn't define
+ it. */
+#ifndef SIZE_MAX
+# undef SIZE_MAX
+#endif
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ 'size_t'. */
+#undef SIZE_T_SUFFIX
+
+/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at runtime.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
+#undef STACK_DIRECTION
+
+/* Define to 1 if the `S_IS*' macros in <sys/stat.h> do not work properly. */
+#undef STAT_MACROS_BROKEN
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* 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
+
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+#undef TM_IN_SYS_TIME
+
+/* Define to 1 if the type of the st_atim member of a struct stat is struct
+ timespec. */
+#undef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC
+
+/* Define to 1 if unlink (dir) cannot possibly succeed. */
+#undef UNLINK_CANNOT_UNLINK_DIR
+
+/* Define to 1 if you want getc etc. to use unlocked I/O if available.
+ Unlocked I/O can improve performance in unithreaded apps, but it is not
+ safe for multithreaded apps. */
+#undef USE_UNLOCKED_IO
+
+/* 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
+
+/* Define to l, ll, u, ul, ull, etc., as suitable for constants of type
+ 'wint_t'. */
+#undef WINT_T_SUFFIX
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+# undef WORDS_BIGENDIAN
+# endif
+#endif
+
+/* Define to the program name of xz compressor program */
+#undef XZ_PROGRAM
+
+/* Enable large inode numbers on Mac OS X. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
+#undef _LARGEFILE_SOURCE
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
+/* Define to 1 if on MINIX. */
+#undef _MINIX
+
+/* The _Noreturn keyword of C11. */
+#ifndef _Noreturn
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+ || 0x5110 <= __SUNPRO_C)
+# define _Noreturn __attribute__ ((__noreturn__))
+# elif defined _MSC_VER && 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn
+# endif
+#endif
+
+
+/* Define to 2 if the system does not provide POSIX.1 features except with
+ this defined. */
+#undef _POSIX_1_SOURCE
+
+/* Define to 1 if you need to in order for 'stat' and other things to work. */
+#undef _POSIX_SOURCE
+
+/* Define if you want regoff_t to be at least as wide POSIX requires. */
+#undef _REGEX_LARGE_OFFSETS
+
+/* Define to 500 only on HP-UX. */
+#undef _XOPEN_SOURCE
+
+/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable general extensions on MacOS X. */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+
+
+/* Define to rpl_ if the getopt replacement functions and variables should be
+ used. */
+#undef __GETOPT_PREFIX
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+#undef dev_t
+
+/* Define to a replacement function name for fnmatch(). */
+#undef fnmatch
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef gid_t
+
+/* A replacement for va_copy, if needed. */
+#define gl_va_copy(a,b) ((a) = (b))
+
+/* Define to rpl_gmtime if the replacement function should be used. */
+#undef gmtime
+
+/* Conversion descriptor type */
+#undef iconv_t
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef __cplusplus
+#undef inline
+#endif
+
+/* Define to `unsigned' if <sys/types.h> does not define. */
+#undef ino_t
+
+/* Define to long or long long if <stdint.h> and <inttypes.h> don't define. */
+#undef intmax_t
+
+/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
+ the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
+ earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
+ __APPLE__ && __MACH__ test for MacOS X.
+ __APPLE_CC__ tests for the Apple compiler and its version.
+ __STDC_VERSION__ tests for the C99 mode. */
+#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
+# define __GNUC_STDC_INLINE__ 1
+#endif
+
+/* Define to rpl_localtime if the replacement function should be used. */
+#undef localtime
+
+/* Type of major device numbers. */
+#undef major_t
+
+/* Define to a type if <wchar.h> does not define. */
+#undef mbstate_t
+
+/* Type of minor device numbers. */
+#undef minor_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef mode_t
+
+/* Define to the type of st_nlink in struct stat, or a supertype. */
+#undef nlink_t
+
+/* Define to `long int' if <sys/types.h> does not define. */
+#undef off_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef pid_t
+
+/* Define as the type of the result of subtracting two pointers, if the system
+ doesn't define it. */
+#undef ptrdiff_t
+
+/* Define to rpl_re_comp if the replacement should be used. */
+#undef re_comp
+
+/* Define to rpl_re_compile_fastmap if the replacement should be used. */
+#undef re_compile_fastmap
+
+/* Define to rpl_re_compile_pattern if the replacement should be used. */
+#undef re_compile_pattern
+
+/* Define to rpl_re_exec if the replacement should be used. */
+#undef re_exec
+
+/* Define to rpl_re_match if the replacement should be used. */
+#undef re_match
+
+/* Define to rpl_re_match_2 if the replacement should be used. */
+#undef re_match_2
+
+/* Define to rpl_re_search if the replacement should be used. */
+#undef re_search
+
+/* Define to rpl_re_search_2 if the replacement should be used. */
+#undef re_search_2
+
+/* Define to rpl_re_set_registers if the replacement should be used. */
+#undef re_set_registers
+
+/* Define to rpl_re_set_syntax if the replacement should be used. */
+#undef re_set_syntax
+
+/* Define to rpl_re_syntax_options if the replacement should be used. */
+#undef re_syntax_options
+
+/* Define to rpl_regcomp if the replacement should be used. */
+#undef regcomp
+
+/* Define to rpl_regerror if the replacement should be used. */
+#undef regerror
+
+/* Define to rpl_regexec if the replacement should be used. */
+#undef regexec
+
+/* Define to rpl_regfree if the replacement should be used. */
+#undef regfree
+
+/* Define to the equivalent of the C99 'restrict' keyword, or to
+ nothing if this is not supported. Do not define if restrict is
+ supported directly. */
+#undef restrict
+/* Work around a bug in Sun C++: it does not support _Restrict or
+ __restrict__, even though the corresponding Sun C compiler ends up with
+ "#define restrict _Restrict" or "#define restrict __restrict__" in the
+ previous line. Perhaps some future version of Sun C++ will work with
+ restrict; if so, hopefully it defines __RESTRICT like Sun C does. */
+#if defined __SUNPRO_CC && !defined __RESTRICT
+# define _Restrict
+# define __restrict__
+#endif
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
+
+/* Define as a signed type of the same size as size_t. */
+#undef ssize_t
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef uid_t
+
+/* 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 _GL_UNUSED __attribute__ ((__unused__))
+#else
+# 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
+
+/* The __pure__ attribute was added in gcc 2.96. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
+
+
+/* Define as a macro for copying va_list variables. */
+#undef va_copy
diff --git a/configure b/configure
new file mode 100755
index 00000000..39be8256
--- /dev/null
+++ b/configure
@@ -0,0 +1,34479 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.68 for GNU tar 1.26.90.
+#
+# Report bugs to <bug-tar@gnu.org>.
+#
+#
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
+# Foundation, Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # 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
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+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
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (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
+ 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
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# 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.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # 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
+else
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+ if (eval "$as_required") 2>/dev/null; then :
+ as_have_required=yes
+else
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
+
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir/$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
+IFS=$as_save_IFS
+
+
+ if test "x$CONFIG_SHELL" != x; then :
+ # We cannot yet assume a decent shell, so we have to provide a
+ # neutralization value for shells without unset; and this also
+ # works around shells that cannot unset nonexistent variables.
+ # Preserve -v and -x to the replacement shell.
+ BASH_ENV=/dev/null
+ ENV=/dev/null
+ (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+ export CONFIG_SHELL
+ case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+ esac
+ exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
+fi
+
+ if test x$as_have_required = xno; then :
+ $as_echo "$0: This script requires a shell more modern than all"
+ $as_echo "$0: the shells that I found on your system."
+ if test x${ZSH_VERSION+set} = xset ; then
+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ $as_echo "$0: Please tell bug-autoconf@gnu.org and bug-tar@gnu.org
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ 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'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='GNU tar'
+PACKAGE_TARNAME='tar'
+PACKAGE_VERSION='1.26.90'
+PACKAGE_STRING='GNU tar 1.26.90'
+PACKAGE_BUGREPORT='bug-tar@gnu.org'
+PACKAGE_URL='http://www.gnu.org/software/tar/'
+
+ac_unique_file="src/tar.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stdio.h>
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef STDC_HEADERS
+# include <stdlib.h>
+# include <stddef.h>
+#else
+# ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+# endif
+#endif
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
+# include <memory.h>
+# endif
+# include <string.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_header_list=
+ac_func_list=
+gl_fnmatch_required=POSIX
+gl_getopt_required=POSIX
+gl_getopt_required=POSIX
+gt_needs=
+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
+gltests_WITNESS
+NEXT_AS_FIRST_DIRECTIVE_WCHAR_H
+NEXT_WCHAR_H
+HAVE_FEATURES_H
+LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE
+LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE
+LIBUNISTRING_UNIWIDTH_H
+LIBUNISTRING_UNITYPES_H
+HAVE_UNISTD_H
+NEXT_AS_FIRST_DIRECTIVE_UNISTD_H
+NEXT_UNISTD_H
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC
+SYS_TIME_H_DEFINES_STRUCT_TIMESPEC
+TIME_H_DEFINES_STRUCT_TIMESPEC
+NEXT_AS_FIRST_DIRECTIVE_TIME_H
+NEXT_TIME_H
+GL_GENERATE_SYSEXITS_H_FALSE
+GL_GENERATE_SYSEXITS_H_TRUE
+SYSEXITS_H
+HAVE_SYSEXITS_H
+NEXT_AS_FIRST_DIRECTIVE_SYSEXITS_H
+NEXT_SYSEXITS_H
+NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H
+NEXT_SYS_TYPES_H
+NEXT_AS_FIRST_DIRECTIVE_SYS_STAT_H
+NEXT_SYS_STAT_H
+HAVE_STRINGS_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_FFS
+GNULIB_FFS
+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
+GL_GENERATE_STDDEF_H_FALSE
+GL_GENERATE_STDDEF_H_TRUE
+STDDEF_H
+HAVE_WCHAR_T
+REPLACE_NULL
+GL_GENERATE_STDARG_H_FALSE
+GL_GENERATE_STDARG_H_TRUE
+STDARG_H
+NEXT_AS_FIRST_DIRECTIVE_STDARG_H
+NEXT_STDARG_H
+GL_GENERATE_STDALIGN_H_FALSE
+GL_GENERATE_STDALIGN_H_TRUE
+STDALIGN_H
+NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H
+NEXT_SIGNAL_H
+REPLACE_RAISE
+REPLACE_PTHREAD_SIGMASK
+HAVE_SIGHANDLER_T
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T
+HAVE_STRUCT_SIGACTION_SA_SIGACTION
+HAVE_SIGACTION
+HAVE_SIGINFO_T
+HAVE_SIGSET_T
+HAVE_RAISE
+HAVE_PTHREAD_SIGMASK
+HAVE_POSIX_SIGNALBLOCKING
+GNULIB_SIGACTION
+GNULIB_SIGPROCMASK
+GNULIB_SIGNAL_H_SIGPIPE
+GNULIB_RAISE
+GNULIB_PTHREAD_SIGMASK
+HAVE__BOOL
+GL_GENERATE_STDBOOL_H_FALSE
+GL_GENERATE_STDBOOL_H_TRUE
+STDBOOL_H
+REPLACE_TIMEGM
+REPLACE_NANOSLEEP
+REPLACE_MKTIME
+REPLACE_LOCALTIME_R
+HAVE_TIMEGM
+HAVE_STRPTIME
+HAVE_NANOSLEEP
+HAVE_DECL_LOCALTIME_R
+GNULIB_TIME_R
+GNULIB_TIMEGM
+GNULIB_STRPTIME
+GNULIB_NANOSLEEP
+GNULIB_MKTIME
+UNDEFINE_STRTOK_R
+REPLACE_STRTOK_R
+REPLACE_STRSIGNAL
+REPLACE_STRNLEN
+REPLACE_STRNDUP
+REPLACE_STRNCAT
+REPLACE_STRERROR_R
+REPLACE_STRERROR
+REPLACE_STRCHRNUL
+REPLACE_STRCASESTR
+REPLACE_STRSTR
+REPLACE_STRDUP
+REPLACE_STPNCPY
+REPLACE_MEMMEM
+REPLACE_MEMCHR
+HAVE_STRVERSCMP
+HAVE_DECL_STRSIGNAL
+HAVE_DECL_STRERROR_R
+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_MEMCHR
+HAVE_FFSLL
+HAVE_FFSL
+HAVE_MBSLEN
+GNULIB_STRVERSCMP
+GNULIB_STRSIGNAL
+GNULIB_STRERROR_R
+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_STRNCAT
+GNULIB_STRDUP
+GNULIB_STRCHRNUL
+GNULIB_STPNCPY
+GNULIB_STPCPY
+GNULIB_RAWMEMCHR
+GNULIB_MEMRCHR
+GNULIB_MEMPCPY
+GNULIB_MEMMEM
+GNULIB_MEMCHR
+GNULIB_FFSLL
+GNULIB_FFSL
+LOCALE_FR_UTF8
+LOCALE_ZH_CN
+LOCALE_JA
+LOCALCHARSET_TESTS_ENVIRONMENT
+GLIBC21
+HAVE_LANGINFO_YESEXPR
+HAVE_LANGINFO_ERA
+HAVE_LANGINFO_T_FMT_AMPM
+HAVE_LANGINFO_CODESET
+HAVE_LANGINFO_H
+NEXT_AS_FIRST_DIRECTIVE_LANGINFO_H
+NEXT_LANGINFO_H
+REPLACE_NL_LANGINFO
+HAVE_NL_LANGINFO
+GNULIB_NL_LANGINFO
+REPLACE_TOWLOWER
+REPLACE_ISWCNTRL
+HAVE_WCTYPE_H
+NEXT_AS_FIRST_DIRECTIVE_WCTYPE_H
+NEXT_WCTYPE_H
+HAVE_WINT_T
+HAVE_ISWCNTRL
+REPLACE_ISWBLANK
+HAVE_WCTRANS_T
+HAVE_WCTYPE_T
+HAVE_ISWBLANK
+GNULIB_TOWCTRANS
+GNULIB_WCTRANS
+GNULIB_ISWCTYPE
+GNULIB_WCTYPE
+GNULIB_ISWBLANK
+NEXT_AS_FIRST_DIRECTIVE_INTTYPES_H
+NEXT_INTTYPES_H
+UINT64_MAX_EQ_ULONG_MAX
+UINT32_MAX_LT_UINTMAX_MAX
+PRIPTR_PREFIX
+PRI_MACROS_BROKEN
+INT64_MAX_EQ_LONG_MAX
+INT32_MAX_LT_INTMAX_MAX
+REPLACE_STRTOIMAX
+HAVE_DECL_STRTOUMAX
+HAVE_DECL_STRTOIMAX
+HAVE_DECL_IMAXDIV
+HAVE_DECL_IMAXABS
+GNULIB_STRTOUMAX
+GNULIB_STRTOIMAX
+GNULIB_IMAXDIV
+GNULIB_IMAXABS
+GL_GENERATE_STDINT_H_FALSE
+GL_GENERATE_STDINT_H_TRUE
+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_WCHAR_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
+GNULIB_GL_UNISTD_H_GETOPT
+GETOPT_H
+HAVE_GETOPT_H
+NEXT_AS_FIRST_DIRECTIVE_GETOPT_H
+NEXT_GETOPT_H
+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_FSTAT
+GNULIB_FCHMODAT
+REPLACE_VSPRINTF
+REPLACE_VSNPRINTF
+REPLACE_VPRINTF
+REPLACE_VFPRINTF
+REPLACE_VDPRINTF
+REPLACE_VASPRINTF
+REPLACE_TMPFILE
+REPLACE_STDIO_WRITE_FUNCS
+REPLACE_STDIO_READ_FUNCS
+REPLACE_SPRINTF
+REPLACE_SNPRINTF
+REPLACE_RENAMEAT
+REPLACE_RENAME
+REPLACE_REMOVE
+REPLACE_PRINTF
+REPLACE_POPEN
+REPLACE_PERROR
+REPLACE_OBSTACK_PRINTF
+REPLACE_GETLINE
+REPLACE_GETDELIM
+REPLACE_FTELLO
+REPLACE_FTELL
+REPLACE_FSEEKO
+REPLACE_FSEEK
+REPLACE_FREOPEN
+REPLACE_FPURGE
+REPLACE_FPRINTF
+REPLACE_FOPEN
+REPLACE_FFLUSH
+REPLACE_FDOPEN
+REPLACE_FCLOSE
+REPLACE_DPRINTF
+HAVE_VDPRINTF
+HAVE_VASPRINTF
+HAVE_RENAMEAT
+HAVE_POPEN
+HAVE_PCLOSE
+HAVE_FTELLO
+HAVE_FSEEKO
+HAVE_DPRINTF
+HAVE_DECL_VSNPRINTF
+HAVE_DECL_SNPRINTF
+HAVE_DECL_OBSTACK_PRINTF
+HAVE_DECL_GETLINE
+HAVE_DECL_GETDELIM
+HAVE_DECL_FTELLO
+HAVE_DECL_FSEEKO
+HAVE_DECL_FPURGE
+GNULIB_VSPRINTF_POSIX
+GNULIB_VSNPRINTF
+GNULIB_VPRINTF_POSIX
+GNULIB_VPRINTF
+GNULIB_VFPRINTF_POSIX
+GNULIB_VFPRINTF
+GNULIB_VDPRINTF
+GNULIB_VSCANF
+GNULIB_VFSCANF
+GNULIB_VASPRINTF
+GNULIB_TMPFILE
+GNULIB_STDIO_H_SIGPIPE
+GNULIB_STDIO_H_NONBLOCKING
+GNULIB_SPRINTF_POSIX
+GNULIB_SNPRINTF
+GNULIB_SCANF
+GNULIB_RENAMEAT
+GNULIB_RENAME
+GNULIB_REMOVE
+GNULIB_PUTS
+GNULIB_PUTCHAR
+GNULIB_PUTC
+GNULIB_PRINTF_POSIX
+GNULIB_PRINTF
+GNULIB_POPEN
+GNULIB_PERROR
+GNULIB_PCLOSE
+GNULIB_OBSTACK_PRINTF_POSIX
+GNULIB_OBSTACK_PRINTF
+GNULIB_GETS
+GNULIB_GETLINE
+GNULIB_GETDELIM
+GNULIB_GETCHAR
+GNULIB_GETC
+GNULIB_FWRITE
+GNULIB_FTELLO
+GNULIB_FTELL
+GNULIB_FSEEKO
+GNULIB_FSEEK
+GNULIB_FSCANF
+GNULIB_FREOPEN
+GNULIB_FREAD
+GNULIB_FPUTS
+GNULIB_FPUTC
+GNULIB_FPURGE
+GNULIB_FPRINTF_POSIX
+GNULIB_FPRINTF
+GNULIB_FOPEN
+GNULIB_FGETS
+GNULIB_FGETC
+GNULIB_FFLUSH
+GNULIB_FDOPEN
+GNULIB_FCLOSE
+GNULIB_DPRINTF
+GL_GENERATE_FNMATCH_H_FALSE
+GL_GENERATE_FNMATCH_H_TRUE
+FNMATCH_H
+REPLACE_ITOLD
+GL_GENERATE_FLOAT_H_FALSE
+GL_GENERATE_FLOAT_H_TRUE
+FLOAT_H
+NEXT_AS_FIRST_DIRECTIVE_FLOAT_H
+NEXT_FLOAT_H
+NEXT_AS_FIRST_DIRECTIVE_FCNTL_H
+NEXT_FCNTL_H
+REPLACE_OPENAT
+REPLACE_OPEN
+REPLACE_FCNTL
+HAVE_OPENAT
+HAVE_FCNTL
+GNULIB_OPENAT
+GNULIB_OPEN
+GNULIB_NONBLOCKING
+GNULIB_FCNTL
+EOVERFLOW_VALUE
+EOVERFLOW_HIDDEN
+ENOLINK_VALUE
+ENOLINK_HIDDEN
+EMULTIHOP_VALUE
+EMULTIHOP_HIDDEN
+GL_GENERATE_ERRNO_H_FALSE
+GL_GENERATE_ERRNO_H_TRUE
+ERRNO_H
+NEXT_AS_FIRST_DIRECTIVE_ERRNO_H
+NEXT_ERRNO_H
+HAVE_DIRENT_H
+NEXT_AS_FIRST_DIRECTIVE_DIRENT_H
+NEXT_DIRENT_H
+PRAGMA_COLUMNS
+PRAGMA_SYSTEM_HEADER
+INCLUDE_NEXT_AS_FIRST_DIRECTIVE
+INCLUDE_NEXT
+pkglibexecdir
+lispdir
+REPLACE_FDOPENDIR
+REPLACE_DIRFD
+REPLACE_CLOSEDIR
+REPLACE_OPENDIR
+HAVE_ALPHASORT
+HAVE_SCANDIR
+HAVE_FDOPENDIR
+HAVE_DECL_FDOPENDIR
+HAVE_DECL_DIRFD
+HAVE_CLOSEDIR
+HAVE_REWINDDIR
+HAVE_READDIR
+HAVE_OPENDIR
+GNULIB_ALPHASORT
+GNULIB_SCANDIR
+GNULIB_FDOPENDIR
+GNULIB_DIRFD
+GNULIB_CLOSEDIR
+GNULIB_REWINDDIR
+GNULIB_READDIR
+GNULIB_OPENDIR
+HAVE_WINSOCK2_H
+HAVE_MSVC_INVALID_PARAMETER_HANDLER
+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_TTYNAME_R
+REPLACE_SYMLINK
+REPLACE_SLEEP
+REPLACE_RMDIR
+REPLACE_READLINK
+REPLACE_READ
+REPLACE_PWRITE
+REPLACE_PREAD
+REPLACE_LSEEK
+REPLACE_LINKAT
+REPLACE_LINK
+REPLACE_LCHOWN
+REPLACE_ISATTY
+REPLACE_GETPAGESIZE
+REPLACE_GETGROUPS
+REPLACE_GETLOGIN_R
+REPLACE_GETDOMAINNAME
+REPLACE_GETCWD
+REPLACE_FCHOWNAT
+REPLACE_DUP2
+REPLACE_DUP
+REPLACE_CLOSE
+REPLACE_CHOWN
+HAVE_SYS_PARAM_H
+HAVE_OS_H
+HAVE_DECL_TTYNAME_R
+HAVE_DECL_SETHOSTNAME
+HAVE_DECL_GETUSERSHELL
+HAVE_DECL_GETPAGESIZE
+HAVE_DECL_GETLOGIN_R
+HAVE_DECL_GETDOMAINNAME
+HAVE_DECL_FDATASYNC
+HAVE_DECL_FCHDIR
+HAVE_DECL_ENVIRON
+HAVE_USLEEP
+HAVE_UNLINKAT
+HAVE_SYMLINKAT
+HAVE_SYMLINK
+HAVE_SLEEP
+HAVE_SETHOSTNAME
+HAVE_READLINKAT
+HAVE_READLINK
+HAVE_PWRITE
+HAVE_PREAD
+HAVE_PIPE2
+HAVE_PIPE
+HAVE_LINKAT
+HAVE_LINK
+HAVE_LCHOWN
+HAVE_GROUP_MEMBER
+HAVE_GETPAGESIZE
+HAVE_GETLOGIN
+HAVE_GETHOSTNAME
+HAVE_GETGROUPS
+HAVE_GETDTABLESIZE
+HAVE_FTRUNCATE
+HAVE_FSYNC
+HAVE_FDATASYNC
+HAVE_FCHOWNAT
+HAVE_FCHDIR
+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_NONBLOCKING
+GNULIB_TTYNAME_R
+GNULIB_SYMLINKAT
+GNULIB_SYMLINK
+GNULIB_SLEEP
+GNULIB_SETHOSTNAME
+GNULIB_RMDIR
+GNULIB_READLINKAT
+GNULIB_READLINK
+GNULIB_READ
+GNULIB_PWRITE
+GNULIB_PREAD
+GNULIB_PIPE2
+GNULIB_PIPE
+GNULIB_LSEEK
+GNULIB_LINKAT
+GNULIB_LINK
+GNULIB_LCHOWN
+GNULIB_ISATTY
+GNULIB_GROUP_MEMBER
+GNULIB_GETUSERSHELL
+GNULIB_GETPAGESIZE
+GNULIB_GETLOGIN_R
+GNULIB_GETLOGIN
+GNULIB_GETHOSTNAME
+GNULIB_GETGROUPS
+GNULIB_GETDTABLESIZE
+GNULIB_GETDOMAINNAME
+GNULIB_GETCWD
+GNULIB_FTRUNCATE
+GNULIB_FSYNC
+GNULIB_FDATASYNC
+GNULIB_FCHOWNAT
+GNULIB_FCHDIR
+GNULIB_FACCESSAT
+GNULIB_EUIDACCESS
+GNULIB_ENVIRON
+GNULIB_DUP3
+GNULIB_DUP2
+GNULIB_DUP
+GNULIB_CLOSE
+GNULIB_CHOWN
+GNULIB_CHDIR
+REPLACE_WCTOMB
+REPLACE_UNSETENV
+REPLACE_STRTOD
+REPLACE_SETENV
+REPLACE_REALPATH
+REPLACE_REALLOC
+REPLACE_RANDOM_R
+REPLACE_PUTENV
+REPLACE_PTSNAME_R
+REPLACE_MKSTEMP
+REPLACE_MBTOWC
+REPLACE_MALLOC
+REPLACE_CANONICALIZE_FILE_NAME
+REPLACE_CALLOC
+HAVE_DECL_UNSETENV
+HAVE_UNLOCKPT
+HAVE_SYS_LOADAVG_H
+HAVE_STRUCT_RANDOM_DATA
+HAVE_STRTOULL
+HAVE_STRTOLL
+HAVE_STRTOD
+HAVE_DECL_SETENV
+HAVE_SETENV
+HAVE_RPMATCH
+HAVE_REALPATH
+HAVE_RANDOM_R
+HAVE_RANDOM_H
+HAVE_RANDOM
+HAVE_PTSNAME_R
+HAVE_PTSNAME
+HAVE_POSIX_OPENPT
+HAVE_MKSTEMPS
+HAVE_MKSTEMP
+HAVE_MKOSTEMPS
+HAVE_MKOSTEMP
+HAVE_MKDTEMP
+HAVE_GRANTPT
+HAVE_GETSUBOPT
+HAVE_DECL_GETLOADAVG
+HAVE_CANONICALIZE_FILE_NAME
+HAVE_ATOLL
+HAVE__EXIT
+GNULIB_WCTOMB
+GNULIB_UNSETENV
+GNULIB_UNLOCKPT
+GNULIB_SYSTEM_POSIX
+GNULIB_STRTOULL
+GNULIB_STRTOLL
+GNULIB_STRTOD
+GNULIB_SETENV
+GNULIB_RPMATCH
+GNULIB_REALPATH
+GNULIB_REALLOC_POSIX
+GNULIB_RANDOM_R
+GNULIB_RANDOM
+GNULIB_PUTENV
+GNULIB_PTSNAME_R
+GNULIB_PTSNAME
+GNULIB_POSIX_OPENPT
+GNULIB_MKSTEMPS
+GNULIB_MKSTEMP
+GNULIB_MKOSTEMPS
+GNULIB_MKOSTEMP
+GNULIB_MKDTEMP
+GNULIB_MBTOWC
+GNULIB_MALLOC_POSIX
+GNULIB_GRANTPT
+GNULIB_GETSUBOPT
+GNULIB_GETLOADAVG
+GNULIB_CANONICALIZE_FILE_NAME
+GNULIB_CALLOC_POSIX
+GNULIB_ATOLL
+GNULIB__EXIT
+LOCALE_FR
+REPLACE_WCSWIDTH
+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_WCSWIDTH
+HAVE_WCSTOK
+HAVE_WCSSTR
+HAVE_WCSPBRK
+HAVE_WCSSPN
+HAVE_WCSCSPN
+HAVE_WCSRCHR
+HAVE_WCSCHR
+HAVE_WCSDUP
+HAVE_WCSXFRM
+HAVE_WCSCOLL
+HAVE_WCSNCASECMP
+HAVE_WCSCASECMP
+HAVE_WCSNCMP
+HAVE_WCSCMP
+HAVE_WCSNCAT
+HAVE_WCSCAT
+HAVE_WCPNCPY
+HAVE_WCSNCPY
+HAVE_WCPCPY
+HAVE_WCSCPY
+HAVE_WCSNLEN
+HAVE_WCSLEN
+HAVE_WMEMSET
+HAVE_WMEMMOVE
+HAVE_WMEMCPY
+HAVE_WMEMCMP
+HAVE_WMEMCHR
+HAVE_WCSNRTOMBS
+HAVE_WCSRTOMBS
+HAVE_WCRTOMB
+HAVE_MBSNRTOWCS
+HAVE_MBSRTOWCS
+HAVE_MBRLEN
+HAVE_MBRTOWC
+HAVE_MBSINIT
+HAVE_BTOWC
+GNULIB_WCSWIDTH
+GNULIB_WCSTOK
+GNULIB_WCSSTR
+GNULIB_WCSPBRK
+GNULIB_WCSSPN
+GNULIB_WCSCSPN
+GNULIB_WCSRCHR
+GNULIB_WCSCHR
+GNULIB_WCSDUP
+GNULIB_WCSXFRM
+GNULIB_WCSCOLL
+GNULIB_WCSNCASECMP
+GNULIB_WCSCASECMP
+GNULIB_WCSNCMP
+GNULIB_WCSCMP
+GNULIB_WCSNCAT
+GNULIB_WCSCAT
+GNULIB_WCPNCPY
+GNULIB_WCSNCPY
+GNULIB_WCPCPY
+GNULIB_WCSCPY
+GNULIB_WCSNLEN
+GNULIB_WCSLEN
+GNULIB_WMEMSET
+GNULIB_WMEMMOVE
+GNULIB_WMEMCPY
+GNULIB_WMEMCMP
+GNULIB_WMEMCHR
+GNULIB_WCWIDTH
+GNULIB_WCSNRTOMBS
+GNULIB_WCSRTOMBS
+GNULIB_WCRTOMB
+GNULIB_MBSNRTOWCS
+GNULIB_MBSRTOWCS
+GNULIB_MBRLEN
+GNULIB_MBRTOWC
+GNULIB_MBSINIT
+GNULIB_WCTOB
+GNULIB_BTOWC
+GL_GENERATE_ALLOCA_H_FALSE
+GL_GENERATE_ALLOCA_H_TRUE
+ALLOCA_H
+ALLOCA
+GL_COND_LIBTOOL_FALSE
+GL_COND_LIBTOOL_TRUE
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+ARFLAGS
+AR
+EGREP
+GREP
+CPP
+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_URL
+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
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+YACC
+YFLAGS
+CPP
+DEFAULT_RMT_DIR
+DEFAULT_ARCHIVE_FORMAT
+DEFAULT_ARCHIVE
+DEFAULT_BLOCKING
+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
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ # Accept the important Cygnus configure options, so we can diagnose typos.
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ 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 ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: $ac_useropt"
+ 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- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ 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_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: $ac_useropt"
+ 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.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) $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
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ $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
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+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 .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ 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
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+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.26.90 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+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]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of GNU tar 1.26.90:";;
+ 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
+ --disable-rpath do not hardcode runtime library paths
+ --disable-nls do not use Native Language Support
+ --enable-backup-scripts Create and install backup and restore scripts
+
+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 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
+ --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib
+ --without-libintl-prefix don't search for libintl in includedir and libdir
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ YACC The `Yet Another Compiler Compiler' implementation to use.
+ Defaults to the first program found out of: `bison -y', `byacc',
+ `yacc'.
+ YFLAGS The list of arguments that will be passed by default to $YACC.
+ This script will default YFLAGS to the empty string to avoid a
+ default value of `-d' given by some make applications.
+ CPP C preprocessor
+ DEFAULT_RMT_DIR
+ Define full file name of the directory where to install `rmt'.
+ (default: $(libexecdir))
+ DEFAULT_ARCHIVE_FORMAT
+ Set the default archive format. Allowed values are: V7, OLDGNU,
+ USTAR, POSIX, GNU. Default is GNU
+ DEFAULT_ARCHIVE
+ Set the name of the default archive (default: -)
+ DEFAULT_BLOCKING
+ Define default blocking factor (default: 20)
+ DEFAULT_QUOTING_STYLE
+ Set the default quoting style. Allowed values are: literal,
+ shell, shell-always, c, escape, locale, clocale . Default is
+ "escape".
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <bug-tar@gnu.org>.
+GNU tar home page: <http://www.gnu.org/software/tar/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>.
+_ACEOF
+ac_status=$?
+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" ||
+ { 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=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ 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/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for guested configure.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+GNU tar configure 1.26.90
+generated by GNU Autoconf 2.68
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then :
+ ac_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if eval \${$3+:} false; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_header_compiler=yes
+else
+ ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ ac_header_preproc=yes
+else
+ ac_header_preproc=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( $as_echo "## ------------------------------ ##
+## Report this to bug-tar@gnu.org ##
+## ------------------------------ ##"
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then :
+ ac_retval=0
+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
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ 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_retval=0
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_type
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); 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 $2
+
+/* 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 $2 ();
+/* 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_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
+# ---------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly.
+ac_fn_c_check_decl ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
+if eval \${$3+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+ (void) $as_decl_use;
+#else
+ (void) $as_decl_name;
+#endif
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$3=yes"
+else
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_decl
+
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if test "$cross_compiling" = yes; then
+ # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=0 ac_mid=0
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid; break
+else
+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+ if test $ac_lo -le $ac_mid; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=-1 ac_mid=-1
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_lo=$ac_mid; break
+else
+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+ if test $ac_mid -le $ac_hi; then
+ ac_lo= ac_hi=
+ break
+ fi
+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ done
+else
+ ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_hi=$ac_mid
+else
+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+ FILE *f = fopen ("conftest.val", "w");
+ if (! f)
+ return 1;
+ if (($2) < 0)
+ {
+ long int i = longval ();
+ if (i != ($2))
+ return 1;
+ fprintf (f, "%ld", i);
+ }
+ else
+ {
+ unsigned long int i = ulongval ();
+ if (i != ($2))
+ return 1;
+ 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;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+ ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+ fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_compute_int
+
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if eval \${$4+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$4=yes"
+else
+ eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$4
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_member
+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.26.90, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ $ $0 $@
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ $as_echo "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ $as_echo "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$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= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ $as_echo "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ $as_echo "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ $as_echo "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ $as_echo "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ $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 &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+$as_echo "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_NAME "$PACKAGE_NAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_VERSION "$PACKAGE_VERSION"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_STRING "$PACKAGE_STRING"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+_ACEOF
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
+if test -n "$CONFIG_SITE"; then
+ # We do not want a PATH search for config.site.
+ case $CONFIG_SITE in #((
+ -*) ac_site_file1=./$CONFIG_SITE;;
+ */*) ac_site_file1=$CONFIG_SITE;;
+ *) ac_site_file1=./$CONFIG_SITE;;
+ esac
+elif test "x$prefix" != xNONE; then
+ ac_site_file1=$prefix/share/config.site
+ ac_site_file2=$prefix/etc/config.site
+else
+ ac_site_file1=$ac_default_prefix/share/config.site
+ ac_site_file2=$ac_default_prefix/etc/config.site
+fi
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
+do
+ test "x$ac_site_file" = xNONE && continue
+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
+ { $as_echo "$as_me:${as_lineno-$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" \
+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+as_fn_append ac_header_list " fcntl.h"
+as_fn_append ac_header_list " linux/fd.h"
+as_fn_append ac_header_list " memory.h"
+as_fn_append ac_header_list " net/errno.h"
+as_fn_append ac_header_list " sgtty.h"
+as_fn_append ac_header_list " string.h"
+as_fn_append ac_header_list " sys/param.h"
+as_fn_append ac_header_list " sys/device.h"
+as_fn_append ac_header_list " sys/gentape.h"
+as_fn_append ac_header_list " sys/inet.h"
+as_fn_append ac_header_list " sys/io/trioctl.h"
+as_fn_append ac_header_list " sys/mtio.h"
+as_fn_append ac_header_list " sys/time.h"
+as_fn_append ac_header_list " sys/tprintf.h"
+as_fn_append ac_header_list " sys/tape.h"
+as_fn_append ac_header_list " unistd.h"
+as_fn_append ac_header_list " locale.h"
+as_fn_append ac_func_list " flockfile"
+as_fn_append ac_func_list " funlockfile"
+as_fn_append ac_header_list " features.h"
+as_fn_append ac_header_list " linewrap.h"
+as_fn_append ac_func_list " pathconf"
+as_fn_append ac_func_list " btowc"
+as_fn_append ac_func_list " canonicalize_file_name"
+as_fn_append ac_func_list " getcwd"
+as_fn_append ac_func_list " readlink"
+as_fn_append ac_func_list " realpath"
+as_fn_append ac_func_list " readlinkat"
+as_fn_append ac_func_list " chown"
+as_fn_append ac_func_list " fchown"
+as_fn_append ac_func_list " _set_invalid_parameter_handler"
+as_fn_append ac_header_list " sys/socket.h"
+as_fn_append ac_func_list " fchdir"
+as_fn_append ac_header_list " dirent.h"
+as_fn_append ac_func_list " fdopendir"
+as_fn_append ac_func_list " fcntl"
+as_fn_append ac_func_list " symlink"
+as_fn_append ac_func_list " mempcpy"
+as_fn_append ac_func_list " isblank"
+as_fn_append ac_func_list " iswctype"
+as_fn_append ac_func_list " mbsrtowcs"
+as_fn_append ac_func_list " wmemchr"
+as_fn_append ac_func_list " wmemcpy"
+as_fn_append ac_func_list " wmempcpy"
+as_fn_append ac_header_list " wctype.h"
+gl_fnmatch_required=GNU
+as_fn_append ac_header_list " stdio_ext.h"
+as_fn_append ac_func_list " __fpending"
+as_fn_append ac_func_list " fstatat"
+as_fn_append ac_func_list " futimens"
+as_fn_append ac_func_list " getdelim"
+as_fn_append ac_func_list " getdtablesize"
+gl_getopt_required=GNU
+as_fn_append ac_header_list " getopt.h"
+as_fn_append ac_func_list " gettimeofday"
+as_fn_append ac_func_list " nanotime"
+as_fn_append ac_header_list " wchar.h"
+as_fn_append ac_header_list " stdint.h"
+as_fn_append ac_header_list " inttypes.h"
+as_fn_append ac_func_list " iswcntrl"
+as_fn_append ac_func_list " iswblank"
+as_fn_append ac_header_list " langinfo.h"
+as_fn_append ac_func_list " lchmod"
+as_fn_append ac_func_list " link"
+as_fn_append ac_func_list " openat"
+as_fn_append ac_func_list " linkat"
+as_fn_append ac_func_list " lstat"
+as_fn_append ac_func_list " mbsinit"
+as_fn_append ac_func_list " mbrtowc"
+as_fn_append ac_header_list " sys/mman.h"
+as_fn_append ac_func_list " mprotect"
+as_fn_append ac_func_list " mkfifo"
+as_fn_append ac_func_list " mkfifoat"
+as_fn_append ac_func_list " mknodat"
+as_fn_append ac_func_list " mknod"
+as_fn_append ac_func_list " alarm"
+as_fn_append ac_func_list " nl_langinfo"
+as_fn_append ac_header_list " priv.h"
+as_fn_append ac_func_list " wcscoll"
+as_fn_append ac_func_list " renameat"
+as_fn_append ac_func_list " setenv"
+as_fn_append ac_func_list " sleep"
+as_fn_append ac_func_list " snprintf"
+as_fn_append ac_func_list " strdup"
+as_fn_append ac_header_list " strings.h"
+as_fn_append ac_func_list " strndup"
+as_fn_append ac_func_list " strtoumax"
+as_fn_append ac_func_list " symlinkat"
+as_fn_append ac_header_list " sys/stat.h"
+as_fn_append ac_header_list " sysexits.h"
+as_fn_append ac_func_list " localtime_r"
+as_fn_append ac_func_list " pipe"
+as_fn_append ac_header_list " utime.h"
+as_fn_append ac_func_list " futimes"
+as_fn_append ac_func_list " futimesat"
+as_fn_append ac_func_list " utimensat"
+as_fn_append ac_func_list " lutimes"
+as_fn_append ac_func_list " vasnprintf"
+as_fn_append ac_func_list " wcrtomb"
+as_fn_append ac_func_list " wcwidth"
+as_fn_append ac_header_list " netdb.h"
+as_fn_append ac_header_list " sys/wait.h"
+as_fn_append ac_header_list " pwd.h"
+as_fn_append ac_header_list " grp.h"
+as_fn_append ac_func_list " setlocale"
+as_fn_append ac_func_list " fchmod"
+as_fn_append ac_func_list " fsync"
+gt_needs="$gt_needs need-formatstring-macros"
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { $as_echo "$as_me:${as_lineno-$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)
+ { $as_echo "$as_me:${as_lineno-$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
+ # 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:${as_lineno-$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:${as_lineno-$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:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}
+ { $as_echo "$as_me:${as_lineno-$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=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+ { $as_echo "$as_me:${as_lineno-$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_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+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
+
+
+
+ac_aux_dir=
+for ac_dir in build-aux "$srcdir"/build-aux; do
+ if test -f "$ac_dir/install-sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install-sh -c"
+ break
+ elif test -f "$ac_dir/install.sh"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/install.sh -c"
+ break
+ elif test -f "$ac_dir/shtool"; then
+ ac_aux_dir=$ac_dir
+ ac_install_sh="$ac_aux_dir/shtool install -c"
+ break
+ fi
+done
+if test -z "$ac_aux_dir"; then
+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in build-aux \"$srcdir\"/build-aux" "$LINENO" 5
+fi
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.
+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"
+
+
+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
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# 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.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+ ./ | .// | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ 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
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ $as_echo "$as_me:${as_lineno-$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_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+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`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ rm -f conftest.file
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # 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".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+alias in your environment" "$LINENO" 5
+ fi
+
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $.
+# By default was `s,x,x', remove it if useless.
+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`
+
+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=
+ { $as_echo "$as_me:${as_lineno-$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
+
+# 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:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; 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:${as_lineno-$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:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; 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:${as_lineno-$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:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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:${as_lineno-$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:${as_lineno-$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 ${ac_cv_path_mkdir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+ case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir (GNU coreutils) '* | \
+ 'mkdir (coreutils) '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test "${ac_cv_path_mkdir+set}" = set; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
+
+
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+ [\\/$]* | ?:[\\/]*) ;;
+ */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # 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_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ $as_echo "$as_me:${as_lineno-$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 eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ SET_MAKE=
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+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
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='tar'
+ VERSION='1.26.90'
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# We need awk for the "check" target. The system "awk" is bad on
+# some platforms.
+# Always define AMTAR for backward compatibility.
+
+AMTAR=${AMTAR-"${am_missing_run}tar"}
+
+
+{ $as_echo "$as_me:${as_lineno-$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}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
+do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ { echo "$as_me:$LINENO: $_am_tar --version" >&5
+ ($_am_tar --version) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && break
+ done
+ am__tar="$_am_tar --format=ustar -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=ustar -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x ustar -w "$$tardir"'
+ am__tar_='pax -L -x ustar -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H ustar -L'
+ am__tar_='find "$tardir" -print | cpio -o -H ustar -L'
+ am__untar='cpio -i -H ustar -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_ustar}" && break
+
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+ (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+ ($am__untar <conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+if ${am_cv_prog_tar_ustar+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ am_cv_prog_tar_ustar=$_am_tool
+fi
+
+{ $as_echo "$as_me:${as_lineno-$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
+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
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $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.
+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_CC="gcc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="${ac_tool_prefix}cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+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
+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ 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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # 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_CC="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+$as_echo "$CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
+ $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.
+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_CC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+fi
+
+fi
+
+
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+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.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&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 | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; 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'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+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 | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else
+ ac_file=''
+fi
+if test -z "$ac_file"; then :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$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 ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+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 | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { 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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
+if ${ac_cv_objext+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+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:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; 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 | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_c_compiler_gnu+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_compiler_gnu=yes
+else
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
+if ${ac_cv_prog_cc_g+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+else
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$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 :
+
+fi
+
+ac_ext=c
+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
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+ @echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$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
+# 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
+ case `$am_make -s -f confmf 2> /dev/null` in #(
+ *the\ am__doit\ target*)
+ am__include=.include
+ am__quote="\""
+ _am_result=BSD
+ ;;
+ esac
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
+
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+
+depcc="$CC" am_compiler_list=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CC_dependencies_compiler_type+:} false; then :
+ $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
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named `D' -- because `-MD' means `put the output
+ # in D'.
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ 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
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+ # Solaris 8's {/usr,}/bin/sh.
+ touch sub/conftst$i.h
+ 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
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ 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
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $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 $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
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # 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_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $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.
+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_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_YACC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$YACC"; then
+ ac_cv_prog_YACC="$YACC" # 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_YACC="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+YACC=$ac_cv_prog_YACC
+if test -n "$YACC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
+$as_echo "$YACC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$YACC" && break
+done
+test -n "$YACC" || YACC="yacc"
+
+
+ac_ext=c
+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
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_prog_CPP+:} false; then :
+ $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"
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ # <limits.h> exists even on freestanding compilers.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+
+else
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ # Broken: success on invalid input.
+continue
+else
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+
+else
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+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
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_path_GREP+:} false; then :
+ $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
+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.
+ # 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
+ $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"
+ $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
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $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
+ 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
+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.
+ # 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
+ $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"
+ $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
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Minix Amsterdam compiler" >&5
+$as_echo_n "checking for Minix Amsterdam compiler... " >&6; }
+if ${gl_cv_c_amsterdam_compiler+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __ACK__
+Amsterdam
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Amsterdam" >/dev/null 2>&1; then :
+ gl_cv_c_amsterdam_compiler=yes
+else
+ gl_cv_c_amsterdam_compiler=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c_amsterdam_compiler" >&5
+$as_echo "$gl_cv_c_amsterdam_compiler" >&6; }
+ if test -z "$AR"; then
+ if test $gl_cv_c_amsterdam_compiler = yes; then
+ AR='cc -c.a'
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='-o'
+ fi
+ else
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # 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_AR="${ac_tool_prefix}ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+ ac_ct_AR=$AR
+ # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # 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_AR="ar"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_AR" = x; then
+ AR="ar"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ AR=$ac_ct_AR
+ fi
+else
+ AR="$ac_cv_prog_AR"
+fi
+
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='cru'
+ fi
+ fi
+ else
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='cru'
+ fi
+ fi
+
+
+ if test -z "$RANLIB"; then
+ if test $gl_cv_c_amsterdam_compiler = yes; then
+ RANLIB=':'
+ else
+ 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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_RANLIB+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # 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_RANLIB="${ac_tool_prefix}ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
+ $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.
+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_RANLIB="ranlib"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+ fi
+ fi
+
+
+if test "x$CC" != xcc; then
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$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=`$as_echo "$2" |
+ sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'`
+if eval \${ac_cv_prog_cc_${ac_cc}_c_o+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+# Make sure it works both with $CC and with simple cc.
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+rm -f conftest2.*
+if { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } &&
+ test -f conftest2.$ac_objext && { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; };
+then
+ eval ac_cv_prog_cc_${ac_cc}_c_o=yes
+ if test "x$CC" != xcc; then
+ # Test first that cc exists at all.
+ if { ac_try='cc -c conftest.$ac_ext >&5'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+ rm -f conftest2.*
+ if { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } &&
+ test -f conftest2.$ac_objext && { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; };
+ then
+ # cc works too.
+ :
+ else
+ # cc exists but doesn't like -o.
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
+ fi
+ fi
+ fi
+else
+ eval ac_cv_prog_cc_${ac_cc}_c_o=no
+fi
+rm -f core conftest*
+
+fi
+if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h
+
+fi
+
+# FIXME: we rely on the cache variable name because
+# there is no other way.
+set dummy $CC
+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.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+
+
+# Make sure we can run config.sub.
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
+if ${ac_cv_build+:} false; then :
+ $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 &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
+if ${ac_cv_host+:} false; then :
+ $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` ||
+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+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=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+ ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
+if test "x$ac_cv_header_minix_config_h" = xyes; then :
+ MINIX=yes
+else
+ MINIX=
+fi
+
+
+ if test "$MINIX" = yes; then
+
+$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
+
+
+$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
+
+
+$as_echo "#define _MINIX 1" >>confdefs.h
+
+ fi
+
+ case "$host_os" in
+ hpux*)
+
+$as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h
+
+ ;;
+ esac
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if ${ac_cv_safe_to_define___extensions__+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# define __EXTENSIONS__ 1
+ $ac_includes_default
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_safe_to_define___extensions__=yes
+else
+ ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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 &&
+ $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+
+ $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+
+ $as_echo "#define _DARWIN_C_SOURCE 1" >>confdefs.h
+
+ $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+
+ $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+ $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_largefile_source+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_sys_largefile_source=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGEFILE_SOURCE 1
+#include <sys/types.h> /* for off_t */
+ #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+ return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_sys_largefile_source=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_cv_sys_largefile_source=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
+_ACEOF
+;;
+esac
+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.
+# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+if test $ac_cv_sys_largefile_source != unknown; then
+
+$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_largefile_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_file_offset_bits+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_large_files+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ fi
+
+
+fi
+
+ case $ac_cv_prog_cc_stdc in #(
+ no) :
+ ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #(
+ *) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
+$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
+if ${ac_cv_prog_cc_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <wchar.h>
+#include <stdio.h>
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+#define debug(...) fprintf (stderr, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+ int x = 1234;
+ int y = 5678;
+ debug ("Flag");
+ debug ("X = %d\n", x);
+ showlist (The first, second, and third items.);
+ report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+ your preprocessor is broken;
+#endif
+#if BIG_OK
+#else
+ your preprocessor is broken;
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+ int datasize;
+ double data[];
+};
+
+struct named_init {
+ int number;
+ const wchar_t *name;
+ double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+ // See if C++-style comments work.
+ // Iterate through items via the restricted pointer.
+ // Also check for declarations in for loops.
+ for (unsigned int i = 0; *(text+i) != '\0'; ++i)
+ continue;
+ return 0;
+}
+
+// Check varargs and va_copy.
+static void
+test_varargs (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ va_list args_copy;
+ va_copy (args_copy, args);
+
+ const char *str;
+ int number;
+ float fnumber;
+
+ while (*format)
+ {
+ switch (*format++)
+ {
+ case 's': // string
+ str = va_arg (args_copy, const char *);
+ break;
+ case 'd': // int
+ number = va_arg (args_copy, int);
+ break;
+ case 'f': // float
+ fnumber = va_arg (args_copy, double);
+ break;
+ default:
+ break;
+ }
+ }
+ va_end (args_copy);
+ va_end (args);
+}
+
+int
+main ()
+{
+
+ // Check bool.
+ _Bool success = false;
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ test_varargs ("s, d' f .", "string", 65, 34.234);
+ test_varargs_macros ();
+
+ // Check flexible array members.
+ struct incomplete_array *ia =
+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ ia->datasize = 10;
+ for (int i = 0; i < ia->datasize; ++i)
+ ia->data[i] = i * 1.234;
+
+ // Check named initializers.
+ struct named_init ni = {
+ .number = 34,
+ .name = L"Test wide string",
+ .average = 543.34343,
+ };
+
+ ni.number = 58;
+
+ int dynamic_array[ni.number];
+ dynamic_array[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
+ || dynamic_array[ni.number - 1] != 543);
+
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c99" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c99"
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
+if ${ac_cv_prog_cc_c89+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
+struct buf { int x; };
+FILE * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not '\xHH' hex character constants.
+ These don't provoke an error unfortunately, instead are silently treated
+ as 'x'. The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
+ array size at least. It's necessary to write '\x00'==0 to get something
+ that's true only with -std. */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) 'x'
+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+int argc;
+char **argv;
+int
+main ()
+{
+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
+ ;
+ return 0;
+}
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+
+fi
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+ x)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
+ xno)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
+ *)
+ CC="$CC $ac_cv_prog_cc_c89"
+ { $as_echo "$as_me:${as_lineno-$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
+else
+ ac_cv_prog_cc_stdc=no
+fi
+
+fi
+ ;;
+esac
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_prog_cc_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+fi
+
+ case $ac_cv_prog_cc_stdc in #(
+ no) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;; #(
+ '') :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+$as_echo "none needed" >&6; } ;; #(
+ *) :
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5
+$as_echo "$ac_cv_prog_cc_stdc" >&6; } ;;
+esac
+
+
+
+
+ # Code from module alloca:
+ # Code from module alloca-opt:
+ # Code from module allocator:
+ # Code from module areadlink:
+ # Code from module areadlinkat:
+ # Code from module argmatch:
+ # Code from module argp:
+ # Code from module argp-version-etc:
+ # Code from module at-internal:
+ # Code from module backupfile:
+ # Code from module bitrotate:
+ # Code from module btowc:
+ # Code from module c-ctype:
+ # Code from module c-strcase:
+ # Code from module c-strcaseeq:
+ # Code from module canonicalize-lgpl:
+ # Code from module careadlinkat:
+ # Code from module chdir:
+ # Code from module chdir-long:
+ # Code from module chown:
+ # Code from module clock-time:
+ # Code from module cloexec:
+ # Code from module close:
+ # Code from module close-stream:
+ # Code from module closedir:
+ # Code from module closeout:
+ # Code from module configmake:
+ # Code from module d-ino:
+ # Code from module dirent:
+ # Code from module dirent-safer:
+ # Code from module dirfd:
+ # Code from module dirname:
+ # Code from module dirname-lgpl:
+ # Code from module dosname:
+ # Code from module double-slash-root:
+ # Code from module dup:
+ # Code from module dup2:
+ # Code from module environ:
+ # Code from module errno:
+ # Code from module error:
+ # Code from module exclude:
+ # Code from module exitfail:
+ # Code from module extensions:
+
+ # Code from module fchdir:
+ # Code from module fcntl:
+ # Code from module fcntl-h:
+ # Code from module fd-hook:
+ # Code from module fdopendir:
+ # Code from module fdutimensat:
+ # Code from module fileblocks:
+ # Code from module filename:
+ # Code from module filenamecat-lgpl:
+ # Code from module float:
+ # Code from module fnmatch:
+ # Code from module fnmatch-gnu:
+ # Code from module fpending:
+ # Code from module fseek:
+ # Code from module fseeko:
+
+ # Code from module fstat:
+ # Code from module fstatat:
+ # Code from module full-write:
+ # Code from module futimens:
+ # Code from module getcwd:
+ # Code from module getcwd-lgpl:
+ # Code from module getdelim:
+ # Code from module getdtablesize:
+ # Code from module getline:
+ # Code from module getopt-gnu:
+ # Code from module getopt-posix:
+ # Code from module getpagesize:
+ # Code from module gettext:
+ # Code from module gettext-h:
+ # Code from module gettime:
+ # Code from module gettimeofday:
+ # Code from module gitlog-to-changelog:
+ # Code from module hash:
+ # Code from module havelib:
+ # Code from module human:
+ # Code from module include_next:
+ # Code from module inline:
+ # Code from module intprops:
+ # Code from module inttostr:
+ # Code from module inttypes:
+ # Code from module inttypes-incomplete:
+ # Code from module iswblank:
+ # Code from module langinfo:
+ # Code from module largefile:
+
+ # Code from module lchown:
+ # Code from module link:
+ # Code from module link-follow:
+ # Code from module linkat:
+ # Code from module localcharset:
+ # Code from module lseek:
+ # Code from module lstat:
+ # Code from module malloc-gnu:
+ # Code from module malloc-posix:
+ # Code from module malloca:
+ # Code from module mbchar:
+ # Code from module mbrtowc:
+ # Code from module mbscasecmp:
+ # Code from module mbsinit:
+ # Code from module mbsrtowcs:
+ # Code from module mbtowc:
+ # Code from module mbuiter:
+ # Code from module memchr:
+ # Code from module mempcpy:
+ # Code from module memrchr:
+ # Code from module mkdtemp:
+ # Code from module mkfifo:
+ # Code from module mkfifoat:
+ # Code from module mknod:
+ # Code from module mktime:
+ # Code from module modechange:
+ # Code from module msvc-inval:
+ # Code from module msvc-nothrow:
+ # Code from module multiarch:
+ # Code from module nl_langinfo:
+ # Code from module nocrash:
+ # Code from module obstack:
+ # Code from module open:
+ # Code from module openat:
+ # Code from module openat-die:
+ # Code from module openat-h:
+ # Code from module opendir:
+ # Code from module parse-datetime:
+ # Code from module pathmax:
+ # Code from module priv-set:
+ # Code from module progname:
+ # Code from module quote:
+ # Code from module quotearg:
+ # Code from module quotearg-simple:
+ # Code from module raise:
+ # Code from module rawmemchr:
+ # Code from module read:
+ # Code from module readdir:
+ # Code from module readlink:
+ # Code from module readlinkat:
+ # Code from module realloc-posix:
+ # Code from module regex:
+ # Code from module rename:
+ # Code from module renameat:
+ # Code from module rewinddir:
+ # Code from module rmdir:
+ # Code from module rpmatch:
+ # Code from module safe-read:
+ # Code from module safe-write:
+ # Code from module same-inode:
+ # Code from module save-cwd:
+ # Code from module savedir:
+ # Code from module setenv:
+ # Code from module signal-h:
+ # Code from module size_max:
+ # Code from module sleep:
+ # Code from module snippet/_Noreturn:
+ # Code from module snippet/arg-nonnull:
+ # Code from module snippet/c++defs:
+ # Code from module snippet/warn-on-use:
+ # Code from module snprintf:
+ # Code from module ssize_t:
+ # Code from module stat:
+ # Code from module stat-macros:
+ # Code from module stat-time:
+ # Code from module stdalign:
+ # Code from module stdarg:
+
+
+
+ # Code from module stdbool:
+ # Code from module stddef:
+ # Code from module stdint:
+ # Code from module stdio:
+ # Code from module stdlib:
+ # Code from module stpcpy:
+ # Code from module strcase:
+ # Code from module strchrnul:
+ # Code from module strdup-posix:
+ # Code from module streq:
+ # Code from module strerror:
+ # Code from module strerror-override:
+ # Code from module string:
+ # Code from module strings:
+ # Code from module strndup:
+ # Code from module strnlen:
+ # Code from module strnlen1:
+ # Code from module strtol:
+ # Code from module strtoul:
+ # Code from module strtoull:
+ # Code from module strtoumax:
+ # Code from module symlink:
+ # Code from module symlinkat:
+ # Code from module sys_stat:
+ # Code from module sys_time:
+ # Code from module sys_types:
+ # Code from module sysexits:
+ # Code from module tempname:
+ # Code from module time:
+ # Code from module time_r:
+ # Code from module timespec:
+ # Code from module unistd:
+ # Code from module unistd-safer:
+ # Code from module unitypes:
+ # Code from module uniwidth/base:
+ # Code from module uniwidth/width:
+ # Code from module unlinkdir:
+ # Code from module unlocked-io:
+ # Code from module unsetenv:
+ # Code from module utimens:
+ # Code from module utimensat:
+ # Code from module vasnprintf:
+ # Code from module vasprintf:
+ # Code from module verify:
+ # Code from module version-etc:
+ # Code from module version-etc-fsf:
+ # Code from module vsnprintf:
+ # Code from module wchar:
+ # Code from module wcrtomb:
+ # Code from module wctype-h:
+ # Code from module wcwidth:
+ # Code from module write:
+ # Code from module xalloc:
+ # Code from module xalloc-die:
+ # Code from module xalloc-oversized:
+ # Code from module xgetcwd:
+ # Code from module xsize:
+ # Code from module xstrndup:
+ # Code from module xstrtol:
+ # Code from module xstrtoumax:
+ # Code from module xvasprintf:
+
+
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+ enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_largefile_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"; then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_file_offset_bits+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_large_files+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
+esac
+rm -rf conftest*
+ fi
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
+$as_echo_n "checking for library containing strerror... " >&6; }
+if ${ac_cv_search_strerror+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 strerror ();
+int
+main ()
+{
+return strerror ();
+ ;
+ return 0;
+}
+_ACEOF
+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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_strerror=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_strerror+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_strerror+:} false; then :
+
+else
+ ac_cv_search_strerror=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+$as_echo_n "checking for inline... " >&6; }
+if ${ac_cv_c_inline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo () {return 0; }
+$ac_kw foo_t foo () {return 0; }
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_inline=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+$as_echo "$ac_cv_c_inline" >&6; }
+
+case $ac_cv_c_inline in
+ inline | yes) ;;
+ *)
+ case $ac_cv_c_inline in
+ no) ac_val=;;
+ *) ac_val=$ac_cv_c_inline;;
+ esac
+ cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+ ;;
+esac
+
+
+
+
+
+ for ac_header in $ac_header_list
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+for ac_header in sys/buf.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "sys/buf.h" "ac_cv_header_sys_buf_h" "#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+"
+if test "x$ac_cv_header_sys_buf_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_BUF_H 1
+_ACEOF
+
+fi
+
+done
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_header_sys_wait_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/wait.h>
+#ifndef WEXITSTATUS
+# define WEXITSTATUS(stat_val) ((unsigned int) (stat_val) >> 8)
+#endif
+#ifndef WIFEXITED
+# define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
+#endif
+
+int
+main ()
+{
+ int s;
+ wait (&s);
+ s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_sys_wait_h=yes
+else
+ ac_cv_header_sys_wait_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_SYS_WAIT_H 1" >>confdefs.h
+
+fi
+
+
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
+ as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
+if eval \${$as_ac_Header+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <$ac_hdr>
+
+int
+main ()
+{
+if ((DIR *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_ac_Header=yes"
+else
+ eval "$as_ac_Header=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_ac_Header
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+_ACEOF
+
+ac_header_dirent=$ac_hdr; break
+fi
+
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dir; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
+if ${ac_cv_search_opendir+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 opendir ();
+int
+main ()
+{
+return opendir ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' x; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_opendir=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_opendir+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_opendir+:} false; then :
+
+else
+ ac_cv_search_opendir=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether sys/types.h defines makedev" >&5
+$as_echo_n "checking whether sys/types.h defines makedev... " >&6; }
+if ${ac_cv_header_sys_types_h_makedev+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main ()
+{
+return makedev(0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_header_sys_types_h_makedev=yes
+else
+ ac_cv_header_sys_types_h_makedev=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ac_fn_c_check_header_mongrel "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mkdev_h" = xyes; then :
+
+$as_echo "#define MAJOR_IN_MKDEV 1" >>confdefs.h
+
+fi
+
+
+
+ if test $ac_cv_header_sys_mkdev_h = no; then
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_sysmacros_h" = xyes; then :
+
+$as_echo "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h
+
+fi
+
+
+ fi
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat file-mode macros are broken" >&5
+$as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
+if ${ac_cv_header_stat_broken+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#if defined S_ISBLK && defined S_IFDIR
+extern char c1[S_ISBLK (S_IFDIR) ? -1 : 1];
+#endif
+
+#if defined S_ISBLK && defined S_IFCHR
+extern char c2[S_ISBLK (S_IFCHR) ? -1 : 1];
+#endif
+
+#if defined S_ISLNK && defined S_IFREG
+extern char c3[S_ISLNK (S_IFREG) ? -1 : 1];
+#endif
+
+#if defined S_ISSOCK && defined S_IFREG
+extern char c4[S_ISSOCK (S_IFREG) ? -1 : 1];
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stat_broken=no
+else
+ ac_cv_header_stat_broken=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define STAT_MACROS_BROKEN 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdc=yes
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+if test $ac_cv_header_stdc = yes; then
+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "memchr" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "free" >/dev/null 2>&1; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+ (('a' <= (c) && (c) <= 'i') \
+ || ('j' <= (c) && (c) <= 'r') \
+ || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
+
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+ int i;
+ for (i = 0; i < 256; i++)
+ if (XOR (islower (i), ISLOWER (i))
+ || toupper (i) != TOUPPER (i))
+ return 2;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
+
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for st_fstype string in struct stat" >&5
+$as_echo_n "checking for st_fstype string in struct stat... " >&6; }
+if ${diff_cv_st_fstype_string+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/stat.h>
+int
+main ()
+{
+struct stat s; s.st_fstype[0] = 'x';
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ diff_cv_st_fstype_string=yes
+else
+ diff_cv_st_fstype_string=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_ST_FSTYPE_STRING 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5
+$as_echo_n "checking return type of signal handlers... " >&6; }
+if ${ac_cv_type_signal+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <signal.h>
+
+int
+main ()
+{
+return *(signal (0, 0)) (0) == 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_type_signal=int
+else
+ ac_cv_type_signal=void
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+ac_fn_c_check_type "$LINENO" "mode_t" "ac_cv_type_mode_t" "$ac_includes_default"
+if test "x$ac_cv_type_mode_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define mode_t int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default"
+if test "x$ac_cv_type_pid_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define pid_t int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "off_t" "ac_cv_type_off_t" "$ac_includes_default"
+if test "x$ac_cv_type_off_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define off_t long int
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define size_t unsigned int
+_ACEOF
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
+$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
+if ${ac_cv_type_uid_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "uid_t" >/dev/null 2>&1; then :
+ ac_cv_type_uid_t=yes
+else
+ ac_cv_type_uid_t=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
+$as_echo "$ac_cv_type_uid_t" >&6; }
+if test $ac_cv_type_uid_t = no; then
+
+$as_echo "#define uid_t int" >>confdefs.h
+
+
+$as_echo "#define gid_t int" >>confdefs.h
+
+fi
+
+ac_fn_c_check_type "$LINENO" "major_t" "ac_cv_type_major_t" "$ac_includes_default"
+if test "x$ac_cv_type_major_t" = xyes; then :
+
+else
+
+$as_echo "#define major_t int" >>confdefs.h
+
+fi
+
+ac_fn_c_check_type "$LINENO" "minor_t" "ac_cv_type_minor_t" "$ac_includes_default"
+if test "x$ac_cv_type_minor_t" = xyes; then :
+
+else
+
+$as_echo "#define minor_t int" >>confdefs.h
+
+fi
+
+ac_fn_c_check_type "$LINENO" "dev_t" "ac_cv_type_dev_t" "$ac_includes_default"
+if test "x$ac_cv_type_dev_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define dev_t unsigned
+_ACEOF
+
+fi
+
+ac_fn_c_check_type "$LINENO" "ino_t" "ac_cv_type_ino_t" "$ac_includes_default"
+if test "x$ac_cv_type_ino_t" = xyes; then :
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define ino_t unsigned
+_ACEOF
+
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
+$as_echo_n "checking for ssize_t... " >&6; }
+if ${gt_cv_ssize_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main ()
+{
+int x = sizeof (ssize_t *) + sizeof (ssize_t);
+ return !x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_ssize_t=yes
+else
+ gt_cv_ssize_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5
+$as_echo "$gt_cv_ssize_t" >&6; }
+ if test $gt_cv_ssize_t = no; then
+
+$as_echo "#define ssize_t int" >>confdefs.h
+
+ fi
+
+
+# gnulib modules
+
+
+
+
+
+ LIBC_FATAL_STDERR_=1
+ export LIBC_FATAL_STDERR_
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments. Useless!
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
+$as_echo_n "checking for working alloca.h... " >&6; }
+if ${ac_cv_working_alloca_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <alloca.h>
+int
+main ()
+{
+char *p = (char *) alloca (2 * sizeof (int));
+ if (p) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_working_alloca_h=yes
+else
+ ac_cv_working_alloca_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
+$as_echo_n "checking for alloca... " >&6; }
+if ${ac_cv_func_alloca_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# else
+# ifdef HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+void *alloca (size_t);
+# endif
+# endif
+# endif
+# endif
+#endif
+
+int
+main ()
+{
+char *p = (char *) alloca (1);
+ if (p) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_func_alloca_works=yes
+else
+ ac_cv_func_alloca_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
+
+else
+ # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble. Some versions do not even contain alloca or
+# contain a buggy version. If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+
+
+
+
+
+ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
+
+$as_echo "#define C_ALLOCA 1" >>confdefs.h
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether 'alloca.c' needs Cray hooks" >&5
+$as_echo_n "checking whether 'alloca.c' needs Cray hooks... " >&6; }
+if ${ac_cv_os_cray+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined CRAY && ! defined CRAY2
+webecray
+#else
+wenotbecray
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "webecray" >/dev/null 2>&1; then :
+ ac_cv_os_cray=yes
+else
+ ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+
+cat >>confdefs.h <<_ACEOF
+#define CRAY_STACKSEG_END $ac_func
+_ACEOF
+
+ break
+fi
+
+ done
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
+$as_echo_n "checking stack direction for C alloca... " >&6; }
+if ${ac_cv_c_stack_direction+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_c_stack_direction=0
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+find_stack_direction (int *addr, int depth)
+{
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
+}
+
+int
+main (int argc, char **argv)
+{
+ return find_stack_direction (0, argc + !argv + 20) < 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_stack_direction=1
+else
+ ac_cv_c_stack_direction=-1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $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
+_ACEOF
+
+
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
+$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
+if ${ac_cv_c_restrict+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_restrict=no
+ # The order here caters to the fact that C++ does not require restrict.
+ for ac_kw in __restrict __restrict__ _Restrict restrict; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+typedef int * int_ptr;
+ 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)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_restrict=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_restrict" != no && break
+ done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
+$as_echo "$ac_cv_c_restrict" >&6; }
+
+ case $ac_cv_c_restrict in
+ restrict) ;;
+ no) $as_echo "#define restrict /**/" >>confdefs.h
+ ;;
+ *) cat >>confdefs.h <<_ACEOF
+#define restrict $ac_cv_c_restrict
+_ACEOF
+ ;;
+ esac
+
+ac_fn_c_check_decl "$LINENO" "clearerr_unlocked" "ac_cv_have_decl_clearerr_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_clearerr_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_CLEARERR_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "feof_unlocked" "ac_cv_have_decl_feof_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_feof_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FEOF_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "ferror_unlocked" "ac_cv_have_decl_ferror_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_ferror_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FERROR_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fflush_unlocked" "ac_cv_have_decl_fflush_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fflush_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FFLUSH_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fgets_unlocked" "ac_cv_have_decl_fgets_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fgets_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FGETS_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fputc_unlocked" "ac_cv_have_decl_fputc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPUTC_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fputs_unlocked" "ac_cv_have_decl_fputs_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fputs_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FPUTS_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fread_unlocked" "ac_cv_have_decl_fread_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fread_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FREAD_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "fwrite_unlocked" "ac_cv_have_decl_fwrite_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fwrite_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FWRITE_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getchar_unlocked" "ac_cv_have_decl_getchar_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getchar_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETCHAR_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "putc_unlocked" "ac_cv_have_decl_putc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_putc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PUTC_UNLOCKED $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "putchar_unlocked" "ac_cv_have_decl_putchar_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_putchar_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PUTCHAR_UNLOCKED $ac_have_decl
+_ACEOF
+
+
+
+
+ for ac_func in $ac_func_list
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+
+
+
+
+
+
+
+
+ XGETTEXT_EXTRA_OPTIONS=
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5
+$as_echo_n "checking for d_ino member in directory struct... " >&6; }
+if ${gl_cv_struct_dirent_d_ino+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_struct_dirent_d_ino=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.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);
+ if (! e)
+ return 2;
+ if (stat (e->d_name, &st) != 0)
+ return 3;
+ if (e->d_ino != st.st_ino)
+ return 4;
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_struct_dirent_d_ino=yes
+else
+ gl_cv_struct_dirent_d_ino=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5
+$as_echo "$gl_cv_struct_dirent_d_ino" >&6; }
+ if test $gl_cv_struct_dirent_d_ino = yes; then
+
+$as_echo "#define D_INO_IN_DIRENT 1" >>confdefs.h
+
+ fi
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for long file names" >&5
+$as_echo_n "checking for long file names... " >&6; }
+if ${ac_cv_sys_long_file_names+:} false; then :
+ $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:
+# . the current directory, where building will happen
+# $prefix/lib where we will be installing things
+# $exec_prefix/lib likewise
+# $TMPDIR if set, where it might want to write temporary files
+# /tmp where it might want to write temporary files
+# /var/tmp likewise
+# /usr/tmp likewise
+for ac_dir in . "$TMPDIR" /tmp /var/tmp /usr/tmp "$prefix/lib" "$exec_prefix/lib"; do
+ # Skip $TMPDIR if it is empty or bogus, and skip $exec_prefix/lib
+ # in the usual case where exec_prefix is '${prefix}'.
+ case $ac_dir in #(
+ . | /* | ?:[\\/]*) ;; #(
+ *) continue;;
+ esac
+ test -w "$ac_dir/." || continue # It is less confusing to not echo anything here.
+ ac_xdir=$ac_dir/cf$$
+ (umask 077 && mkdir "$ac_xdir" 2>/dev/null) || continue
+ ac_tf1=$ac_xdir/conftest9012345
+ ac_tf2=$ac_xdir/conftest9012346
+ touch "$ac_tf1" 2>/dev/null && test -f "$ac_tf1" && test ! -f "$ac_tf2" ||
+ ac_cv_sys_long_file_names=no
+ rm -f -r "$ac_xdir" 2>/dev/null
+ test $ac_cv_sys_long_file_names = no && break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_LONG_FILE_NAMES 1" >>confdefs.h
+
+fi
+
+
+
+
+ GNULIB_BTOWC=0;
+ GNULIB_WCTOB=0;
+ GNULIB_MBSINIT=0;
+ GNULIB_MBRTOWC=0;
+ GNULIB_MBRLEN=0;
+ GNULIB_MBSRTOWCS=0;
+ GNULIB_MBSNRTOWCS=0;
+ GNULIB_WCRTOMB=0;
+ GNULIB_WCSRTOMBS=0;
+ GNULIB_WCSNRTOMBS=0;
+ GNULIB_WCWIDTH=0;
+ GNULIB_WMEMCHR=0;
+ GNULIB_WMEMCMP=0;
+ GNULIB_WMEMCPY=0;
+ GNULIB_WMEMMOVE=0;
+ GNULIB_WMEMSET=0;
+ GNULIB_WCSLEN=0;
+ GNULIB_WCSNLEN=0;
+ GNULIB_WCSCPY=0;
+ GNULIB_WCPCPY=0;
+ GNULIB_WCSNCPY=0;
+ GNULIB_WCPNCPY=0;
+ GNULIB_WCSCAT=0;
+ GNULIB_WCSNCAT=0;
+ GNULIB_WCSCMP=0;
+ GNULIB_WCSNCMP=0;
+ GNULIB_WCSCASECMP=0;
+ GNULIB_WCSNCASECMP=0;
+ GNULIB_WCSCOLL=0;
+ GNULIB_WCSXFRM=0;
+ GNULIB_WCSDUP=0;
+ GNULIB_WCSCHR=0;
+ GNULIB_WCSRCHR=0;
+ GNULIB_WCSCSPN=0;
+ GNULIB_WCSSPN=0;
+ GNULIB_WCSPBRK=0;
+ GNULIB_WCSSTR=0;
+ GNULIB_WCSTOK=0;
+ GNULIB_WCSWIDTH=0;
+ HAVE_BTOWC=1;
+ HAVE_MBSINIT=1;
+ HAVE_MBRTOWC=1;
+ HAVE_MBRLEN=1;
+ HAVE_MBSRTOWCS=1;
+ HAVE_MBSNRTOWCS=1;
+ HAVE_WCRTOMB=1;
+ HAVE_WCSRTOMBS=1;
+ HAVE_WCSNRTOMBS=1;
+ HAVE_WMEMCHR=1;
+ HAVE_WMEMCMP=1;
+ HAVE_WMEMCPY=1;
+ HAVE_WMEMMOVE=1;
+ HAVE_WMEMSET=1;
+ HAVE_WCSLEN=1;
+ HAVE_WCSNLEN=1;
+ HAVE_WCSCPY=1;
+ HAVE_WCPCPY=1;
+ HAVE_WCSNCPY=1;
+ HAVE_WCPNCPY=1;
+ HAVE_WCSCAT=1;
+ HAVE_WCSNCAT=1;
+ HAVE_WCSCMP=1;
+ HAVE_WCSNCMP=1;
+ HAVE_WCSCASECMP=1;
+ HAVE_WCSNCASECMP=1;
+ HAVE_WCSCOLL=1;
+ HAVE_WCSXFRM=1;
+ HAVE_WCSDUP=1;
+ HAVE_WCSCHR=1;
+ HAVE_WCSRCHR=1;
+ HAVE_WCSCSPN=1;
+ HAVE_WCSSPN=1;
+ HAVE_WCSPBRK=1;
+ HAVE_WCSSTR=1;
+ HAVE_WCSTOK=1;
+ HAVE_WCSWIDTH=1;
+ HAVE_DECL_WCTOB=1;
+ HAVE_DECL_WCWIDTH=1;
+ REPLACE_MBSTATE_T=0;
+ REPLACE_BTOWC=0;
+ REPLACE_WCTOB=0;
+ REPLACE_MBSINIT=0;
+ REPLACE_MBRTOWC=0;
+ REPLACE_MBRLEN=0;
+ REPLACE_MBSRTOWCS=0;
+ REPLACE_MBSNRTOWCS=0;
+ REPLACE_WCRTOMB=0;
+ REPLACE_WCSRTOMBS=0;
+ REPLACE_WCSNRTOMBS=0;
+ REPLACE_WCWIDTH=0;
+ REPLACE_WCSWIDTH=0;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether <wchar.h> uses 'inline' correctly" >&5
+$as_echo_n "checking whether <wchar.h> uses 'inline' correctly... " >&6; }
+if ${gl_cv_header_wchar_h_correct_inline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gl_cv_header_wchar_h_correct_inline=yes
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #define wcstod renamed_wcstod
+/* 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>
+extern int zero (void);
+int main () { return zero(); }
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ mv conftest.$ac_objext conftest1.$ac_objext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #define wcstod renamed_wcstod
+/* 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>
+int zero (void) { return 0; }
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; 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:${as_lineno-$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_fn_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." "$LINENO" 5
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and CODESET" >&5
+$as_echo_n "checking for nl_langinfo and CODESET... " >&6; }
+if ${am_cv_langinfo_codeset+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET); return !cs;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_langinfo_codeset=yes
+else
+ am_cv_langinfo_codeset=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_langinfo_codeset" >&5
+$as_echo "$am_cv_langinfo_codeset" >&6; }
+ if test $am_cv_langinfo_codeset = yes; then
+
+$as_echo "#define HAVE_LANGINFO_CODESET 1" >>confdefs.h
+
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional french locale" >&5
+$as_echo_n "checking for a traditional french locale... " >&6; }
+if ${gt_cv_locale_fr+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.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 () {
+ /* Check whether the given locale name is recognized by the system. */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 the abbreviation of the second month, the second
+ character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+ one byte long. 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) < 3 || buf[2] != 'v') return 1;
+ /* Check whether the decimal separator is a comma.
+ On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+ are nl_langinfo(RADIXCHAR) are both ".". */
+ if (localeconv () ->decimal_point[0] != ',') return 1;
+ return 0;
+}
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the native Windows locale name.
+ if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=French_France.1252
+ else
+ # None found.
+ gt_cv_locale_fr=none
+ fi
+ ;;
+ *)
+ # 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 usual locale name.
+ if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.ISO-8859-1
+ else
+ # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+ if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.ISO8859-1
+ else
+ # Test for the HP-UX locale name.
+ if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.iso88591
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr
+ else
+ # None found.
+ gt_cv_locale_fr=none
+ fi
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_fr" >&5
+$as_echo "$gt_cv_locale_fr" >&6; }
+ LOCALE_FR=$gt_cv_locale_fr
+
+
+
+ GNULIB__EXIT=0;
+ GNULIB_ATOLL=0;
+ GNULIB_CALLOC_POSIX=0;
+ GNULIB_CANONICALIZE_FILE_NAME=0;
+ GNULIB_GETLOADAVG=0;
+ GNULIB_GETSUBOPT=0;
+ GNULIB_GRANTPT=0;
+ GNULIB_MALLOC_POSIX=0;
+ GNULIB_MBTOWC=0;
+ GNULIB_MKDTEMP=0;
+ GNULIB_MKOSTEMP=0;
+ GNULIB_MKOSTEMPS=0;
+ GNULIB_MKSTEMP=0;
+ GNULIB_MKSTEMPS=0;
+ GNULIB_POSIX_OPENPT=0;
+ GNULIB_PTSNAME=0;
+ GNULIB_PTSNAME_R=0;
+ GNULIB_PUTENV=0;
+ GNULIB_RANDOM=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_SYSTEM_POSIX=0;
+ GNULIB_UNLOCKPT=0;
+ GNULIB_UNSETENV=0;
+ GNULIB_WCTOMB=0;
+ HAVE__EXIT=1;
+ HAVE_ATOLL=1;
+ HAVE_CANONICALIZE_FILE_NAME=1;
+ HAVE_DECL_GETLOADAVG=1;
+ HAVE_GETSUBOPT=1;
+ HAVE_GRANTPT=1;
+ HAVE_MKDTEMP=1;
+ HAVE_MKOSTEMP=1;
+ HAVE_MKOSTEMPS=1;
+ HAVE_MKSTEMP=1;
+ HAVE_MKSTEMPS=1;
+ HAVE_POSIX_OPENPT=1;
+ HAVE_PTSNAME=1;
+ HAVE_PTSNAME_R=1;
+ HAVE_RANDOM=1;
+ HAVE_RANDOM_H=1;
+ HAVE_RANDOM_R=1;
+ HAVE_REALPATH=1;
+ HAVE_RPMATCH=1;
+ HAVE_SETENV=1;
+ HAVE_DECL_SETENV=1;
+ HAVE_STRTOD=1;
+ HAVE_STRTOLL=1;
+ HAVE_STRTOULL=1;
+ HAVE_STRUCT_RANDOM_DATA=1;
+ HAVE_SYS_LOADAVG_H=0;
+ HAVE_UNLOCKPT=1;
+ HAVE_DECL_UNSETENV=1;
+ REPLACE_CALLOC=0;
+ REPLACE_CANONICALIZE_FILE_NAME=0;
+ REPLACE_MALLOC=0;
+ REPLACE_MBTOWC=0;
+ REPLACE_MKSTEMP=0;
+ REPLACE_PTSNAME_R=0;
+ REPLACE_PUTENV=0;
+ REPLACE_RANDOM_R=0;
+ REPLACE_REALLOC=0;
+ REPLACE_REALPATH=0;
+ REPLACE_SETENV=0;
+ REPLACE_STRTOD=0;
+ REPLACE_UNSETENV=0;
+ REPLACE_WCTOMB=0;
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
+$as_echo_n "checking whether // is distinct from /... " >&6; }
+if ${gl_cv_double_slash_root+:} false; 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:${as_lineno-$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
+
+$as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether realpath works" >&5
+$as_echo_n "checking whether realpath works... " >&6; }
+if ${gl_cv_func_realpath_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ touch conftest.a
+ mkdir conftest.d
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_realpath_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on MacOS X. */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens. */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+ EXC_BAD_ACCESS. */
+static void *
+mach_exception_thread (void *arg)
+{
+ /* Buffer for a message to be received. */
+ struct {
+ mach_msg_header_t head;
+ mach_msg_body_t msgh_body;
+ char data[1024];
+ } msg;
+ mach_msg_return_t retval;
+ /* Wait for a message on the exception port. */
+ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+ our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+ if (retval != MACH_MSG_SUCCESS)
+ abort ();
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+ mach_port_t self = mach_task_self ();
+ /* Allocate a port on which the thread shall listen for exceptions. */
+ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+ == KERN_SUCCESS) {
+ /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */
+ if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+ MACH_MSG_TYPE_MAKE_SEND)
+ == KERN_SUCCESS) {
+ /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting
+ for us. */
+ exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+ /* Create the thread listening on the exception port. */
+ pthread_attr_t attr;
+ pthread_t thread;
+ if (pthread_attr_init (&attr) == 0
+ && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+ && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+ pthread_attr_destroy (&attr);
+ /* Replace the exception port info for these exceptions with our own.
+ Note that we replace the exception port for the entire task, not only
+ for a particular thread. This has the effect that when our exception
+ port gets the message, the thread specific exception port has already
+ been asked, and we don't need to bother about it.
+ See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */
+ task_set_exception_ports (self, mask, our_exception_port,
+ EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+ }
+ }
+ }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows. */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+ switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+ {
+ case EXCEPTION_ACCESS_VIOLATION:
+ case EXCEPTION_IN_PAGE_ERROR:
+ case EXCEPTION_STACK_OVERFLOW:
+ case EXCEPTION_GUARD_PAGE:
+ case EXCEPTION_PRIV_INSTRUCTION:
+ case EXCEPTION_ILLEGAL_INSTRUCTION:
+ case EXCEPTION_DATATYPE_MISALIGNMENT:
+ case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+ case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+ exit (1);
+ }
+ return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+ SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems. */
+#include <signal.h>
+/* A POSIX signal handler. */
+static void
+exception_handler (int sig)
+{
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+ signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+ signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
+
+ #include <stdlib.h>
+ #include <string.h>
+
+int
+main ()
+{
+
+ int result = 0;
+ {
+ char *name = realpath ("conftest.a", NULL);
+ if (!(name && *name == '/'))
+ result |= 1;
+ }
+ {
+ char *name = realpath ("conftest.b/../conftest.a", NULL);
+ if (name != NULL)
+ result |= 2;
+ }
+ {
+ char *name = realpath ("conftest.a/", NULL);
+ if (name != NULL)
+ result |= 4;
+ }
+ {
+ char *name1 = realpath (".", NULL);
+ char *name2 = realpath ("conftest.d//./..", NULL);
+ if (strcmp (name1, name2) != 0)
+ result |= 8;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_realpath_works=yes
+else
+ gl_cv_func_realpath_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.a conftest.d
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define FUNC_REALPATH_WORKS 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ GNULIB_CHDIR=0;
+ GNULIB_CHOWN=0;
+ GNULIB_CLOSE=0;
+ GNULIB_DUP=0;
+ GNULIB_DUP2=0;
+ GNULIB_DUP3=0;
+ GNULIB_ENVIRON=0;
+ GNULIB_EUIDACCESS=0;
+ GNULIB_FACCESSAT=0;
+ GNULIB_FCHDIR=0;
+ GNULIB_FCHOWNAT=0;
+ GNULIB_FDATASYNC=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_GROUP_MEMBER=0;
+ GNULIB_ISATTY=0;
+ GNULIB_LCHOWN=0;
+ GNULIB_LINK=0;
+ GNULIB_LINKAT=0;
+ GNULIB_LSEEK=0;
+ GNULIB_PIPE=0;
+ GNULIB_PIPE2=0;
+ GNULIB_PREAD=0;
+ GNULIB_PWRITE=0;
+ GNULIB_READ=0;
+ GNULIB_READLINK=0;
+ GNULIB_READLINKAT=0;
+ GNULIB_RMDIR=0;
+ GNULIB_SETHOSTNAME=0;
+ GNULIB_SLEEP=0;
+ GNULIB_SYMLINK=0;
+ GNULIB_SYMLINKAT=0;
+ GNULIB_TTYNAME_R=0;
+ GNULIB_UNISTD_H_NONBLOCKING=0;
+ GNULIB_UNISTD_H_SIGPIPE=0;
+ GNULIB_UNLINK=0;
+ GNULIB_UNLINKAT=0;
+ GNULIB_USLEEP=0;
+ GNULIB_WRITE=0;
+ HAVE_CHOWN=1;
+ HAVE_DUP2=1;
+ HAVE_DUP3=1;
+ HAVE_EUIDACCESS=1;
+ HAVE_FACCESSAT=1;
+ HAVE_FCHDIR=1;
+ HAVE_FCHOWNAT=1;
+ HAVE_FDATASYNC=1;
+ HAVE_FSYNC=1;
+ HAVE_FTRUNCATE=1;
+ HAVE_GETDTABLESIZE=1;
+ HAVE_GETGROUPS=1;
+ HAVE_GETHOSTNAME=1;
+ HAVE_GETLOGIN=1;
+ HAVE_GETPAGESIZE=1;
+ HAVE_GROUP_MEMBER=1;
+ HAVE_LCHOWN=1;
+ HAVE_LINK=1;
+ HAVE_LINKAT=1;
+ HAVE_PIPE=1;
+ HAVE_PIPE2=1;
+ HAVE_PREAD=1;
+ HAVE_PWRITE=1;
+ HAVE_READLINK=1;
+ HAVE_READLINKAT=1;
+ HAVE_SETHOSTNAME=1;
+ HAVE_SLEEP=1;
+ HAVE_SYMLINK=1;
+ HAVE_SYMLINKAT=1;
+ HAVE_UNLINKAT=1;
+ HAVE_USLEEP=1;
+ HAVE_DECL_ENVIRON=1;
+ HAVE_DECL_FCHDIR=1;
+ HAVE_DECL_FDATASYNC=1;
+ HAVE_DECL_GETDOMAINNAME=1;
+ HAVE_DECL_GETLOGIN_R=1;
+ HAVE_DECL_GETPAGESIZE=1;
+ HAVE_DECL_GETUSERSHELL=1;
+ HAVE_DECL_SETHOSTNAME=1;
+ HAVE_DECL_TTYNAME_R=1;
+ HAVE_OS_H=0;
+ HAVE_SYS_PARAM_H=0;
+ REPLACE_CHOWN=0;
+ REPLACE_CLOSE=0;
+ REPLACE_DUP=0;
+ REPLACE_DUP2=0;
+ REPLACE_FCHOWNAT=0;
+ REPLACE_GETCWD=0;
+ REPLACE_GETDOMAINNAME=0;
+ REPLACE_GETLOGIN_R=0;
+ REPLACE_GETGROUPS=0;
+ REPLACE_GETPAGESIZE=0;
+ REPLACE_ISATTY=0;
+ REPLACE_LCHOWN=0;
+ REPLACE_LINK=0;
+ REPLACE_LINKAT=0;
+ REPLACE_LSEEK=0;
+ REPLACE_PREAD=0;
+ REPLACE_PWRITE=0;
+ REPLACE_READ=0;
+ REPLACE_READLINK=0;
+ REPLACE_RMDIR=0;
+ REPLACE_SLEEP=0;
+ REPLACE_SYMLINK=0;
+ REPLACE_TTYNAME_R=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 :
+ ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_UNISTD_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working chown" >&5
+$as_echo_n "checking for working chown... " >&6; }
+if ${ac_cv_func_chown_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_chown_works=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+#include <fcntl.h>
+
+int
+main ()
+{
+ char *f = "conftest.chown";
+ struct stat before, after;
+
+ if (creat (f, 0600) < 0)
+ return 1;
+ if (stat (f, &before) < 0)
+ return 1;
+ if (chown (f, (uid_t) -1, (gid_t) -1) == -1)
+ return 1;
+ if (stat (f, &after) < 0)
+ return 1;
+ return ! (before.st_uid == after.st_uid && before.st_gid == after.st_gid);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_chown_works=yes
+else
+ ac_cv_func_chown_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+rm -f conftest.chown
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_chown_works" >&5
+$as_echo "$ac_cv_func_chown_works" >&6; }
+if test $ac_cv_func_chown_works = yes; then
+
+$as_echo "#define HAVE_CHOWN 1" >>confdefs.h
+
+fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown dereferences symlinks" >&5
+$as_echo_n "checking whether chown dereferences symlinks... " >&6; }
+if ${gl_cv_func_chown_follows_symlink+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_chown_follows_symlink=yes
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+ int
+ main ()
+ {
+ int result = 0;
+ char const *dangling_symlink = "conftest.dangle";
+
+ unlink (dangling_symlink);
+ if (symlink ("conftest.no-such", dangling_symlink))
+ abort ();
+
+ /* Exit successfully on a conforming system,
+ i.e., where chown must fail with ENOENT. */
+ if (chown (dangling_symlink, getuid (), getgid ()) == 0)
+ result |= 1;
+ if (errno != ENOENT)
+ result |= 2;
+ return result;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_follows_symlink=yes
+else
+ gl_cv_func_chown_follows_symlink=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_follows_symlink" >&5
+$as_echo "$gl_cv_func_chown_follows_symlink" >&6; }
+
+ if test $gl_cv_func_chown_follows_symlink = no; then
+
+$as_echo "#define CHOWN_MODIFIES_SYMLINK 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_chown = no; then
+ HAVE_CHOWN=0
+ else
+ if test $gl_cv_func_chown_follows_symlink = no; then
+ REPLACE_CHOWN=1
+ fi
+
+ if test $ac_cv_func_chown_works = no; then
+
+$as_echo "#define CHOWN_FAILS_TO_HONOR_ID_OF_NEGATIVE_ONE 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown honors trailing slash" >&5
+$as_echo_n "checking whether chown honors trailing slash... " >&6; }
+if ${gl_cv_func_chown_slash_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ touch conftest.file && rm -f conftest.link
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_chown_slash_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+int
+main ()
+{
+ if (symlink ("conftest.file", "conftest.link")) return 1;
+ if (chown ("conftest.link/", getuid (), getgid ()) == 0) return 2;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_slash_works=yes
+else
+ gl_cv_func_chown_slash_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.link conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_slash_works" >&5
+$as_echo "$gl_cv_func_chown_slash_works" >&6; }
+ if test "$gl_cv_func_chown_slash_works" != yes; then
+
+$as_echo "#define CHOWN_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether chown always updates ctime" >&5
+$as_echo_n "checking whether chown always updates ctime... " >&6; }
+if ${gl_cv_func_chown_ctime_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_chown_ctime_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+int
+main ()
+{
+ struct stat st1, st2;
+ if (close (creat ("conftest.file", 0600))) return 1;
+ if (stat ("conftest.file", &st1)) return 2;
+ sleep (1);
+ if (chown ("conftest.file", st1.st_uid, st1.st_gid)) return 3;
+ if (stat ("conftest.file", &st2)) return 4;
+ if (st2.st_ctime <= st1.st_ctime) return 5;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_chown_ctime_works=yes
+else
+ gl_cv_func_chown_ctime_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_chown_ctime_works" >&5
+$as_echo "$gl_cv_func_chown_ctime_works" >&6; }
+ if test "$gl_cv_func_chown_ctime_works" != yes; then
+
+$as_echo "#define CHOWN_CHANGE_TIME_BUG 1" >>confdefs.h
+
+ REPLACE_CHOWN=1
+ fi
+ fi
+
+
+
+
+
+ if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+
+$as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
+
+ else
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+ fi
+
+
+
+
+
+
+
+ GNULIB_OPENDIR=0;
+ GNULIB_READDIR=0;
+ GNULIB_REWINDDIR=0;
+ GNULIB_CLOSEDIR=0;
+ GNULIB_DIRFD=0;
+ GNULIB_FDOPENDIR=0;
+ GNULIB_SCANDIR=0;
+ GNULIB_ALPHASORT=0;
+ HAVE_OPENDIR=1;
+ HAVE_READDIR=1;
+ HAVE_REWINDDIR=1;
+ HAVE_CLOSEDIR=1;
+ HAVE_DECL_DIRFD=1;
+ HAVE_DECL_FDOPENDIR=1;
+ HAVE_FDOPENDIR=1;
+ HAVE_SCANDIR=1;
+ HAVE_ALPHASORT=1;
+ REPLACE_OPENDIR=0;
+ REPLACE_CLOSEDIR=0;
+ REPLACE_DIRFD=0;
+ REPLACE_FDOPENDIR=0;
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the preprocessor supports include_next" >&5
+$as_echo_n "checking whether the preprocessor supports include_next... " >&6; }
+if ${gl_cv_have_include_next+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftestd1a conftestd1b conftestd2
+ mkdir conftestd1a conftestd1b conftestd2
+ cat <<EOF > conftestd1a/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+ cat <<EOF > conftestd1b/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include <stdio.h>
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+ cat <<EOF > conftestd2/conftest.h
+#ifndef DEFINED_IN_CONFTESTD1
+#error "include_next test doesn't work"
+#endif
+#define DEFINED_IN_CONFTESTD2
+EOF
+ gl_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <conftest.h>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_have_include_next=yes
+else
+ CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <conftest.h>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_have_include_next=buggy
+else
+ gl_cv_have_include_next=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$gl_save_CPPFLAGS"
+ rm -rf conftestd1a conftestd1b conftestd2
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+ if test -n "$GCC"; then
+ PRAGMA_SYSTEM_HEADER='#pragma GCC system_header'
+ fi
+ else
+ if test $gl_cv_have_include_next = buggy; then
+ INCLUDE_NEXT=include
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+ else
+ INCLUDE_NEXT=include
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include
+ fi
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether system header files limit the line length" >&5
+$as_echo_n "checking whether system header files limit the line length... " >&6; }
+if ${gl_cv_pragma_columns+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __TANDEM
+choke me
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "choke me" >/dev/null 2>&1; then :
+ gl_cv_pragma_columns=yes
+else
+ gl_cv_pragma_columns=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_pragma_columns" >&5
+$as_echo "$gl_cv_pragma_columns" >&6; }
+ if test $gl_cv_pragma_columns = yes; then
+ PRAGMA_COLUMNS="#pragma COLUMNS 10000"
+ else
+ PRAGMA_COLUMNS=
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if environ is properly declared" >&5
+$as_echo_n "checking if environ is properly declared... " >&6; }
+ if ${gt_cv_var_environ_declaration+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+ /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */
+ #include <stdlib.h>
+
+ extern struct { int foo; } environ;
+int
+main ()
+{
+environ.foo = 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_var_environ_declaration=no
+else
+ gt_cv_var_environ_declaration=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+ { $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_ENVIRON_DECL 1" >>confdefs.h
+
+ fi
+
+
+ if test $gt_cv_var_environ_declaration != yes; then
+ HAVE_DECL_ENVIRON=0
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for complete errno.h" >&5
+$as_echo_n "checking for complete errno.h... " >&6; }
+if ${gl_cv_header_errno_h_complete+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#if !defined ENOMSG
+booboo
+#endif
+#if !defined EIDRM
+booboo
+#endif
+#if !defined ENOLINK
+booboo
+#endif
+#if !defined EPROTO
+booboo
+#endif
+#if !defined EMULTIHOP
+booboo
+#endif
+#if !defined EBADMSG
+booboo
+#endif
+#if !defined EOVERFLOW
+booboo
+#endif
+#if !defined ENOTSUP
+booboo
+#endif
+#if !defined ENETRESET
+booboo
+#endif
+#if !defined ECONNABORTED
+booboo
+#endif
+#if !defined ESTALE
+booboo
+#endif
+#if !defined EDQUOT
+booboo
+#endif
+#if !defined ECANCELED
+booboo
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "booboo" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_complete=no
+else
+ gl_cv_header_errno_h_complete=yes
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_errno_h='<'errno.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <errno.h>" >&5
+$as_echo_n "checking absolute name of <errno.h>... " >&6; }
+if ${gl_cv_next_errno_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <errno.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'errno.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_errno_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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'
+ fi
+
+ if test -n "$ERRNO_H"; then
+ GL_GENERATE_ERRNO_H_TRUE=
+ GL_GENERATE_ERRNO_H_FALSE='#'
+else
+ GL_GENERATE_ERRNO_H_TRUE='#'
+ GL_GENERATE_ERRNO_H_FALSE=
+fi
+
+
+ if test -n "$ERRNO_H"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EMULTIHOP value" >&5
+$as_echo_n "checking for EMULTIHOP value... " >&6; }
+if ${gl_cv_header_errno_h_EMULTIHOP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#ifdef EMULTIHOP
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EMULTIHOP=yes
+else
+ gl_cv_header_errno_h_EMULTIHOP=no
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EMULTIHOP = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+#ifdef EMULTIHOP
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EMULTIHOP=hidden
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EMULTIHOP = hidden; then
+ if ac_fn_c_compute_int "$LINENO" "EMULTIHOP" "gl_cv_header_errno_h_EMULTIHOP" "
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+"; then :
+
+fi
+
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ ;;
+ *)
+ EMULTIHOP_HIDDEN=1; EMULTIHOP_VALUE="$gl_cv_header_errno_h_EMULTIHOP"
+ ;;
+ esac
+
+
+ fi
+
+
+ if test -n "$ERRNO_H"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ENOLINK value" >&5
+$as_echo_n "checking for ENOLINK value... " >&6; }
+if ${gl_cv_header_errno_h_ENOLINK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#ifdef ENOLINK
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_ENOLINK=yes
+else
+ gl_cv_header_errno_h_ENOLINK=no
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_ENOLINK = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+#ifdef ENOLINK
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_ENOLINK=hidden
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_ENOLINK = hidden; then
+ if ac_fn_c_compute_int "$LINENO" "ENOLINK" "gl_cv_header_errno_h_ENOLINK" "
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+"; then :
+
+fi
+
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ ;;
+ *)
+ ENOLINK_HIDDEN=1; ENOLINK_VALUE="$gl_cv_header_errno_h_ENOLINK"
+ ;;
+ esac
+
+
+ fi
+
+
+ if test -n "$ERRNO_H"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EOVERFLOW value" >&5
+$as_echo_n "checking for EOVERFLOW value... " >&6; }
+if ${gl_cv_header_errno_h_EOVERFLOW+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#ifdef EOVERFLOW
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EOVERFLOW=yes
+else
+ gl_cv_header_errno_h_EOVERFLOW=no
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EOVERFLOW = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+#ifdef EOVERFLOW
+yes
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_header_errno_h_EOVERFLOW=hidden
+fi
+rm -f conftest*
+
+ if test $gl_cv_header_errno_h_EOVERFLOW = hidden; then
+ if ac_fn_c_compute_int "$LINENO" "EOVERFLOW" "gl_cv_header_errno_h_EOVERFLOW" "
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+"; then :
+
+fi
+
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ ;;
+ *)
+ EOVERFLOW_HIDDEN=1; EOVERFLOW_VALUE="$gl_cv_header_errno_h_EOVERFLOW"
+ ;;
+ esac
+
+
+ fi
+
+
+ac_fn_c_check_decl "$LINENO" "strerror_r" "ac_cv_have_decl_strerror_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strerror_r" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRERROR_R $ac_have_decl
+_ACEOF
+
+for ac_func in strerror_r
+do :
+ ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
+if test "x$ac_cv_func_strerror_r" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STRERROR_R 1
+_ACEOF
+
+fi
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror_r returns char *" >&5
+$as_echo_n "checking whether strerror_r returns char *... " >&6; }
+if ${ac_cv_func_strerror_r_char_p+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ ac_cv_func_strerror_r_char_p=no
+ if test $ac_cv_have_decl_strerror_r = yes; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ char buf[100];
+ char x = *strerror_r (0, buf, sizeof buf);
+ char *p = strerror_r (0, buf, sizeof buf);
+ return !p || x;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_func_strerror_r_char_p=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ else
+ # strerror_r is not declared. Choose between
+ # systems that have relatively inaccessible declarations for the
+ # function. BeOS and DEC UNIX 4.0 fall in this category, but the
+ # former has a strerror_r that returns char*, while the latter
+ # has a strerror_r that returns `int'.
+ # This test should segfault on the DEC system.
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ extern char *strerror_r ();
+int
+main ()
+{
+char buf[100];
+ char x = *strerror_r (0, buf, sizeof buf);
+ return ! isalpha (x);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_strerror_r_char_p=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define STRERROR_R_CHAR_P 1" >>confdefs.h
+
+fi
+
+ac_fn_c_check_decl "$LINENO" "fchdir" "ac_cv_have_decl_fchdir" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fchdir" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FCHDIR $ac_have_decl
+_ACEOF
+
+
+ GNULIB_FCNTL=0;
+ GNULIB_NONBLOCKING=0;
+ GNULIB_OPEN=0;
+ GNULIB_OPENAT=0;
+ HAVE_FCNTL=1;
+ HAVE_OPENAT=1;
+ REPLACE_FCNTL=0;
+ REPLACE_OPEN=0;
+ REPLACE_OPENAT=0;
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working fcntl.h" >&5
+$as_echo_n "checking for working fcntl.h... " >&6; }
+if ${gl_cv_header_working_fcntl_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_header_working_fcntl_h=cross-compiling
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/stat.h>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <io.h>
+ # include <stdlib.h>
+ # defined sleep(n) _sleep ((n) * 1000)
+ #endif
+ #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 result = !constants;
+ #if HAVE_SYMLINK
+ {
+ static char const sym[] = "conftest.sym";
+ if (symlink (".", sym) != 0)
+ result |= 2;
+ else
+ {
+ int fd = open (sym, O_RDONLY | O_NOFOLLOW);
+ if (fd >= 0)
+ {
+ close (fd);
+ result |= 4;
+ }
+ }
+ unlink (sym);
+ }
+ #endif
+ {
+ static char const file[] = "confdefs.h";
+ int fd = open (file, O_RDONLY | O_NOATIME);
+ if (fd < 0)
+ result |= 8;
+ else
+ {
+ struct stat st0;
+ if (fstat (fd, &st0) != 0)
+ result |= 16;
+ else
+ {
+ char c;
+ sleep (1);
+ if (read (fd, &c, 1) != 1)
+ result |= 24;
+ else
+ {
+ if (close (fd) != 0)
+ result |= 32;
+ else
+ {
+ struct stat st1;
+ if (stat (file, &st1) != 0)
+ result |= 40;
+ else
+ if (st0.st_atime != st1.st_atime)
+ result |= 64;
+ }
+ }
+ }
+ }
+ }
+ return result;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_header_working_fcntl_h=yes
+else
+ case $? in #(
+ 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
+ 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
+ 68) gl_cv_header_working_fcntl_h='no (bad O_NOATIME, O_NOFOLLOW)';; #(
+ *) gl_cv_header_working_fcntl_h='no';;
+ esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_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
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
+$as_echo_n "checking for mbstate_t... " >&6; }
+if ${ac_cv_type_mbstate_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+/* 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>
+int
+main ()
+{
+mbstate_t x; return sizeof x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_type_mbstate_t=yes
+else
+ ac_cv_type_mbstate_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h
+
+ else
+
+$as_echo "#define mbstate_t int" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ GNULIB_DPRINTF=0;
+ GNULIB_FCLOSE=0;
+ GNULIB_FDOPEN=0;
+ GNULIB_FFLUSH=0;
+ GNULIB_FGETC=0;
+ GNULIB_FGETS=0;
+ GNULIB_FOPEN=0;
+ GNULIB_FPRINTF=0;
+ GNULIB_FPRINTF_POSIX=0;
+ GNULIB_FPURGE=0;
+ GNULIB_FPUTC=0;
+ GNULIB_FPUTS=0;
+ GNULIB_FREAD=0;
+ GNULIB_FREOPEN=0;
+ GNULIB_FSCANF=0;
+ GNULIB_FSEEK=0;
+ GNULIB_FSEEKO=0;
+ GNULIB_FTELL=0;
+ GNULIB_FTELLO=0;
+ GNULIB_FWRITE=0;
+ GNULIB_GETC=0;
+ GNULIB_GETCHAR=0;
+ GNULIB_GETDELIM=0;
+ GNULIB_GETLINE=0;
+ GNULIB_GETS=0;
+ GNULIB_OBSTACK_PRINTF=0;
+ GNULIB_OBSTACK_PRINTF_POSIX=0;
+ GNULIB_PCLOSE=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_SCANF=0;
+ GNULIB_SNPRINTF=0;
+ GNULIB_SPRINTF_POSIX=0;
+ GNULIB_STDIO_H_NONBLOCKING=0;
+ GNULIB_STDIO_H_SIGPIPE=0;
+ GNULIB_TMPFILE=0;
+ GNULIB_VASPRINTF=0;
+ GNULIB_VFSCANF=0;
+ GNULIB_VSCANF=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_FSEEKO=1;
+ HAVE_DECL_FTELLO=1;
+ HAVE_DECL_GETDELIM=1;
+ HAVE_DECL_GETLINE=1;
+ HAVE_DECL_OBSTACK_PRINTF=1;
+ HAVE_DECL_SNPRINTF=1;
+ HAVE_DECL_VSNPRINTF=1;
+ HAVE_DPRINTF=1;
+ HAVE_FSEEKO=1;
+ HAVE_FTELLO=1;
+ HAVE_PCLOSE=1;
+ HAVE_POPEN=1;
+ HAVE_RENAMEAT=1;
+ HAVE_VASPRINTF=1;
+ HAVE_VDPRINTF=1;
+ REPLACE_DPRINTF=0;
+ REPLACE_FCLOSE=0;
+ REPLACE_FDOPEN=0;
+ REPLACE_FFLUSH=0;
+ REPLACE_FOPEN=0;
+ REPLACE_FPRINTF=0;
+ REPLACE_FPURGE=0;
+ REPLACE_FREOPEN=0;
+ REPLACE_FSEEK=0;
+ REPLACE_FSEEKO=0;
+ REPLACE_FTELL=0;
+ 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_READ_FUNCS=0;
+ REPLACE_STDIO_WRITE_FUNCS=0;
+ REPLACE_TMPFILE=0;
+ REPLACE_VASPRINTF=0;
+ REPLACE_VDPRINTF=0;
+ REPLACE_VFPRINTF=0;
+ REPLACE_VPRINTF=0;
+ REPLACE_VSNPRINTF=0;
+ REPLACE_VSPRINTF=0;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdin defaults to large file offsets" >&5
+$as_echo_n "checking whether stdin defaults to large file offsets... " >&6; }
+if ${gl_cv_var_stdin_large_offset+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+#if defined __SL64 && defined __SCLE /* cygwin */
+ /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
+ fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and
+ it is easier to do a version check than building a runtime test. */
+# include <cygwin/version.h>
+# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
+ choke me
+# endif
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_var_stdin_large_offset=yes
+else
+ gl_cv_var_stdin_large_offset=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_var_stdin_large_offset" >&5
+$as_echo "$gl_cv_var_stdin_large_offset" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "fseeko" "ac_cv_have_decl_fseeko" "$ac_includes_default"
+if test "x$ac_cv_have_decl_fseeko" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FSEEKO $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5
+$as_echo_n "checking for fseeko... " >&6; }
+if ${gl_cv_func_fseeko+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+int
+main ()
+{
+fseeko (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_func_fseeko=yes
+else
+ gl_cv_func_fseeko=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5
+$as_echo "$gl_cv_func_fseeko" >&6; }
+
+
+ if test $ac_cv_have_decl_fseeko = no; then
+ HAVE_DECL_FSEEKO=0
+ fi
+
+ if test $gl_cv_func_fseeko = no; then
+ HAVE_FSEEKO=0
+ else
+ if test $gl_cv_var_stdin_large_offset = no; then
+ REPLACE_FSEEKO=1
+ fi
+
+ fi
+
+
+ GNULIB_FCHMODAT=0;
+ GNULIB_FSTAT=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;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lstat correctly handles trailing slash" >&5
+$as_echo_n "checking whether lstat correctly handles trailing slash... " >&6; }
+if ${gl_cv_func_lstat_dereferences_slashed_symlink+:} false; 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 :
+ # When cross-compiling, be pessimistic so we will end up using the
+ # replacement version of lstat that checks for trailing slashes and
+ # calls lstat a second time when necessary.
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+struct stat sbuf;
+ /* Linux will dereference the symlink and fail, as required by
+ POSIX. 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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_lstat_dereferences_slashed_symlink=yes
+else
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ else
+ # If the 'ln -s' command failed, then we probably don't even
+ # have an lstat function.
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+ fi
+ rm -f conftest.sym conftest.file
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_lstat_dereferences_slashed_symlink" >&5
+$as_echo "$gl_cv_func_lstat_dereferences_slashed_symlink" >&6; }
+ test $gl_cv_func_lstat_dereferences_slashed_symlink = yes &&
+
+cat >>confdefs.h <<_ACEOF
+#define LSTAT_FOLLOWS_SLASHED_SYMLINK 1
+_ACEOF
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_getcwd_null+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_getcwd_null="guessing yes";;
+ # Guess yes on Cygwin.
+ cygwin*) 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# if HAVE_UNISTD_H
+# include <unistd.h>
+# else /* on Windows with MSVC */
+# include <direct.h>
+# endif
+# ifndef getcwd
+ char *getcwd ();
+# endif
+
+int
+main ()
+{
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* mingw cwd does not start with '/', but getcwd does allocate.
+ However, mingw fails to honor non-zero size. */
+#else
+ if (chdir ("/") != 0)
+ return 1;
+ else
+ {
+ char *f = getcwd (NULL, 0);
+ if (! f)
+ return 2;
+ if (f[0] != '/')
+ return 3;
+ if (f[1] != '\0')
+ return 4;
+ return 0;
+ }
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getcwd_null=yes
+else
+ gl_cv_func_getcwd_null=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_null" >&5
+$as_echo "$gl_cv_func_getcwd_null" >&6; }
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getcwd with POSIX signature" >&5
+$as_echo_n "checking for getcwd with POSIX signature... " >&6; }
+if ${gl_cv_func_getcwd_posix_signature+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *getcwd (char *, size_t);
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_getcwd_posix_signature=yes
+else
+ gl_cv_func_getcwd_posix_signature=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_posix_signature" >&5
+$as_echo "$gl_cv_func_getcwd_posix_signature" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "getcwd" "ac_cv_have_decl_getcwd" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getcwd" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETCWD $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getdelim" "ac_cv_have_decl_getdelim" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getdelim" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETDELIM $ac_have_decl
+_ACEOF
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "getline" "ac_cv_have_decl_getline" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getline" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETLINE $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_getopt_h='<'getopt.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <getopt.h>" >&5
+$as_echo_n "checking absolute name of <getopt.h>... " >&6; }
+if ${gl_cv_next_getopt_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_getopt_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <getopt.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'getopt.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_getopt_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_getopt_h='<'getopt.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 :
+ ac_fn_c_check_header_mongrel "$LINENO" "getopt.h" "ac_cv_header_getopt_h" "$ac_includes_default"
+if test "x$ac_cv_header_getopt_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_GETOPT_H 1
+_ACEOF
+
+else
+ gl_replace_getopt=yes
+fi
+
+done
+
+ fi
+
+ if test -z "$gl_replace_getopt" && test $gl_getopt_required = GNU; then
+ for ac_func in getopt_long_only
+do :
+ ac_fn_c_check_func "$LINENO" "getopt_long_only" "ac_cv_func_getopt_long_only"
+if test "x$ac_cv_func_getopt_long_only" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_GETOPT_LONG_ONLY 1
+_ACEOF
+
+else
+ gl_replace_getopt=yes
+fi
+done
+
+ fi
+
+ if test -z "$gl_replace_getopt"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getopt is POSIX compatible" >&5
+$as_echo_n "checking whether getopt is POSIX compatible... " >&6; }
+if ${gl_cv_func_getopt_posix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+int
+main ()
+{
+int *p = &optreset; return optreset;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_optind_min=1
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <getopt.h>
+int
+main ()
+{
+return !getopt_clip;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_optind_min=1
+else
+ gl_optind_min=0
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+ gl_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -DOPTIND_MIN=$gl_optind_min"
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ mingw*) gl_cv_func_getopt_posix="guessing no";;
+ darwin* | aix*) gl_cv_func_getopt_posix="guessing no";;
+ *) gl_cv_func_getopt_posix="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main ()
+{
+ {
+ static char program[] = "program";
+ static char a[] = "-a";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, a, foo, bar, NULL };
+ int c;
+
+ optind = OPTIND_MIN;
+ opterr = 0;
+
+ c = getopt (4, argv, "ab");
+ if (!(c == 'a'))
+ return 1;
+ c = getopt (4, argv, "ab");
+ if (!(c == -1))
+ return 2;
+ if (!(optind == 2))
+ return 3;
+ }
+ /* Some internal state exists at this point. */
+ {
+ static char program[] = "program";
+ static char donald[] = "donald";
+ static char p[] = "-p";
+ static char billy[] = "billy";
+ static char duck[] = "duck";
+ static char a[] = "-a";
+ static char bar[] = "bar";
+ char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
+ int c;
+
+ optind = OPTIND_MIN;
+ opterr = 0;
+
+ c = getopt (7, 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;
+ }
+ /* Detect MacOS 10.5, AIX 7.1 bug. */
+ {
+ static char program[] = "program";
+ static char ab[] = "-ab";
+ char *argv[3] = { program, ab, NULL };
+ optind = OPTIND_MIN;
+ opterr = 0;
+ if (getopt (2, argv, "ab:") != 'a')
+ return 13;
+ if (getopt (2, argv, "ab:") != '?')
+ return 14;
+ if (optopt != 'b')
+ return 15;
+ if (optind != 2)
+ return 16;
+ }
+
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getopt_posix=yes
+else
+ gl_cv_func_getopt_posix=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ CPPFLAGS=$gl_save_CPPFLAGS
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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:${as_lineno-$LINENO}: checking for working GNU getopt function" >&5
+$as_echo_n "checking for working GNU getopt function... " >&6; }
+if ${gl_cv_func_getopt_gnu+:} false; 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.
+ # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT;
+ # so take care to revert to the correct (non-)export state.
+ gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }'
+ case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in
+ xx) gl_had_POSIXLY_CORRECT=exported ;;
+ x) gl_had_POSIXLY_CORRECT=yes ;;
+ *) gl_had_POSIXLY_CORRECT= ;;
+ esac
+ 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <getopt.h>
+ #include <stddef.h>
+ #include <string.h>
+
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on MacOS X. */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens. */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+ EXC_BAD_ACCESS. */
+static void *
+mach_exception_thread (void *arg)
+{
+ /* Buffer for a message to be received. */
+ struct {
+ mach_msg_header_t head;
+ mach_msg_body_t msgh_body;
+ char data[1024];
+ } msg;
+ mach_msg_return_t retval;
+ /* Wait for a message on the exception port. */
+ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+ our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+ if (retval != MACH_MSG_SUCCESS)
+ abort ();
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+ mach_port_t self = mach_task_self ();
+ /* Allocate a port on which the thread shall listen for exceptions. */
+ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+ == KERN_SUCCESS) {
+ /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */
+ if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+ MACH_MSG_TYPE_MAKE_SEND)
+ == KERN_SUCCESS) {
+ /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting
+ for us. */
+ exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+ /* Create the thread listening on the exception port. */
+ pthread_attr_t attr;
+ pthread_t thread;
+ if (pthread_attr_init (&attr) == 0
+ && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+ && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+ pthread_attr_destroy (&attr);
+ /* Replace the exception port info for these exceptions with our own.
+ Note that we replace the exception port for the entire task, not only
+ for a particular thread. This has the effect that when our exception
+ port gets the message, the thread specific exception port has already
+ been asked, and we don't need to bother about it.
+ See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */
+ task_set_exception_ports (self, mask, our_exception_port,
+ EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+ }
+ }
+ }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows. */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+ switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+ {
+ case EXCEPTION_ACCESS_VIOLATION:
+ case EXCEPTION_IN_PAGE_ERROR:
+ case EXCEPTION_STACK_OVERFLOW:
+ case EXCEPTION_GUARD_PAGE:
+ case EXCEPTION_PRIV_INSTRUCTION:
+ case EXCEPTION_ILLEGAL_INSTRUCTION:
+ case EXCEPTION_DATATYPE_MISALIGNMENT:
+ case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+ case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+ exit (1);
+ }
+ return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+ SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems. */
+#include <signal.h>
+/* A POSIX signal handler. */
+static void
+exception_handler (int sig)
+{
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+ signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+ signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
+
+
+int
+main ()
+{
+
+ int result = 0;
+
+ nocrash_init();
+
+ /* 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. */
+ {
+ static char conftest[] = "conftest";
+ static char plus[] = "-+";
+ char *argv[3] = { conftest, plus, NULL };
+ opterr = 0;
+ if (getopt (2, argv, "+a") != '?')
+ result |= 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. */
+ {
+ static char program[] = "program";
+ static char p[] = "-p";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, p, foo, bar, NULL };
+
+ optind = 1;
+ if (getopt (4, argv, "p::") != 'p')
+ result |= 2;
+ else if (optarg != NULL)
+ result |= 4;
+ else if (getopt (4, argv, "p::") != -1)
+ result |= 6;
+ else if (optind != 2)
+ result |= 8;
+ }
+ /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */
+ {
+ static char program[] = "program";
+ static char foo[] = "foo";
+ static char p[] = "-p";
+ char *argv[] = { program, foo, p, NULL };
+ optind = 0;
+ if (getopt (3, argv, "-p") != 1)
+ result |= 16;
+ else if (getopt (3, argv, "-p") != 'p')
+ result |= 32;
+ }
+ /* This code fails on glibc 2.11. */
+ {
+ static char program[] = "program";
+ static char b[] = "-b";
+ static char a[] = "-a";
+ char *argv[] = { program, b, a, NULL };
+ optind = opterr = 0;
+ if (getopt (3, argv, "+:a:b") != 'b')
+ result |= 64;
+ else if (getopt (3, argv, "+:a:b") != ':')
+ result |= 64;
+ }
+ /* This code dumps core on glibc 2.14. */
+ {
+ static char program[] = "program";
+ static char w[] = "-W";
+ static char dummy[] = "dummy";
+ char *argv[] = { program, w, dummy, NULL };
+ optind = opterr = 1;
+ if (getopt (3, argv, "W;") != 'W')
+ result |= 128;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getopt_gnu=yes
+else
+ gl_cv_func_getopt_gnu=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ case $gl_had_POSIXLY_CORRECT in
+ exported) ;;
+ yes) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;}; POSIXLY_CORRECT=1 ;;
+ *) { POSIXLY_CORRECT=; unset POSIXLY_CORRECT;} ;;
+ esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+ if test -n "$gl_replace_getopt"; then :
+
+fi
+
+ REPLACE_GETOPT=1
+
+ if test $REPLACE_GETOPT = 1; then
+
+ GETOPT_H=getopt.h
+
+$as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h
+
+
+
+ fi
+
+ac_fn_c_check_decl "$LINENO" "getenv" "ac_cv_have_decl_getenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getenv" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETENV $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+ GNULIB_GETTIMEOFDAY=0;
+ HAVE_GETTIMEOFDAY=1;
+ HAVE_STRUCT_TIMEVAL=1;
+ HAVE_SYS_TIME_H=1;
+ REPLACE_GETTIMEOFDAY=0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_sys_time_h='<'sys/time.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/time.h>" >&5
+$as_echo_n "checking absolute name of <sys/time.h>... " >&6; }
+if ${gl_cv_next_sys_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_sys_time_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/time.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sys/time.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sys_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_sys_time_h='<'sys/time.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=0
+ fi
+
+
+
+
+
+ if test $ac_cv_header_sys_socket_h != yes; then
+ for ac_header in winsock2.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+ fi
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ HAVE_WINSOCK2_H=1
+ UNISTD_H_HAVE_WINSOCK2_H=1
+ SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+ else
+ HAVE_WINSOCK2_H=0
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5
+$as_echo_n "checking for struct timeval... " >&6; }
+if ${gl_cv_sys_struct_timeval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if HAVE_SYS_TIME_H
+ #include <sys/time.h>
+ #endif
+ #include <time.h>
+ #if HAVE_WINSOCK2_H
+ # include <winsock2.h>
+ #endif
+
+int
+main ()
+{
+static struct timeval x; x.tv_sec = x.tv_usec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timeval=yes
+else
+ gl_cv_sys_struct_timeval=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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:${as_lineno-$LINENO}: checking for unsigned long long int" >&5
+$as_echo_n "checking for unsigned long long int... " >&6; }
+if ${ac_cv_type_unsigned_long_long_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_type_unsigned_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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. */
+ /* 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)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -1
+ ? 1 : -1)];
+ int i = 63;
+int
+main ()
+{
+/* 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));
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+else
+ ac_cv_type_unsigned_long_long_int=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_UNSIGNED_LONG_LONG_INT 1" >>confdefs.h
+
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for long long int" >&5
+$as_echo_n "checking for long long int... " >&6; }
+if ${ac_cv_type_long_long_int+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_type_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
+ if test $ac_cv_type_long_long_int = yes; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+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;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+
+else
+ ac_cv_type_long_long_int=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+ gl_cv_c_multiarch=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ arch=
+ prev=
+ for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
+ if test -n "$prev"; then
+ case $word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$arch" || test "$arch" = "$word"; then
+ arch="$word"
+ else
+ gl_cv_c_multiarch=yes
+ fi
+ ;;
+ esac
+ prev=
+ else
+ if test "x$word" = "x-arch"; then
+ prev=arch
+ fi
+ fi
+ done
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $gl_cv_c_multiarch = yes; then
+ APPLE_UNIVERSAL_BUILD=1
+ else
+ APPLE_UNIVERSAL_BUILD=0
+ fi
+
+
+
+
+
+ if test $ac_cv_type_long_long_int = yes; then
+ HAVE_LONG_LONG_INT=1
+ else
+ HAVE_LONG_LONG_INT=0
+ fi
+
+
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+ HAVE_UNSIGNED_LONG_LONG_INT=1
+ else
+ HAVE_UNSIGNED_LONG_LONG_INT=0
+ fi
+
+
+
+ if test $ac_cv_header_wchar_h = yes; then
+ HAVE_WCHAR_H=1
+ else
+ HAVE_WCHAR_H=0
+ fi
+
+
+ if test $ac_cv_header_inttypes_h = yes; then
+ HAVE_INTTYPES_H=1
+ else
+ HAVE_INTTYPES_H=0
+ fi
+
+
+ if test $ac_cv_header_sys_types_h = yes; then
+ HAVE_SYS_TYPES_H=1
+ else
+ HAVE_SYS_TYPES_H=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_stdint_h='<'stdint.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdint.h>" >&5
+$as_echo_n "checking absolute name of <stdint.h>... " >&6; }
+if ${gl_cv_next_stdint_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_stdint_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdint.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdint.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdint_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_stdint_h='<'stdint.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ HAVE_STDINT_H=1
+ else
+ HAVE_STDINT_H=0
+ fi
+
+
+ if test $ac_cv_header_stdint_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stdint.h conforms to C99" >&5
+$as_echo_n "checking whether stdint.h conforms to C99... " >&6; }
+if ${gl_cv_header_working_stdint_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gl_cv_header_working_stdint_h=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */
+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+#endif
+
+
+ /* 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
+
+
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
+#else
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+#endif
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
+#endif
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
+#endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
+
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) ((t) 0 < (t) -1 \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+struct s {
+ int check_PTRDIFF:
+ PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+ && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+ ? 1 : -1;
+ /* Detect bug in FreeBSD 6.0 / ia64. */
+ int check_SIG_ATOMIC:
+ SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+ && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+ ? 1 : -1;
+ int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+ int check_WCHAR:
+ WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+ && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+ ? 1 : -1;
+ /* Detect bug in mingw. */
+ int check_WINT:
+ WINT_MIN == TYPE_MINIMUM (wint_t)
+ && WINT_MAX == TYPE_MAXIMUM (wint_t)
+ ? 1 : -1;
+
+ /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */
+ int check_UINT8_C:
+ (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+ int check_UINT16_C:
+ (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
+
+ /* Detect bugs in OpenBSD 3.9 stdint.h. */
+#ifdef UINT8_MAX
+ int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+ int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+ int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+ int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+ int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+ int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+ int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+ int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+ int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+ int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+ int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+ int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+ int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+ int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+ int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if test "$cross_compiling" = yes; then :
+ gl_cv_header_working_stdint_h=yes
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+
+#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 mv - macro_values + 1;
+ }
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_header_working_stdint_h=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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=
+ else
+ for ac_header in sys/inttypes.h sys/bitypes.h
+do :
+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_sys_inttypes_h = yes; then
+ HAVE_SYS_INTTYPES_H=1
+ else
+ HAVE_SYS_INTTYPES_H=0
+ fi
+
+ if test $ac_cv_header_sys_bitypes_h = yes; then
+ HAVE_SYS_BITYPES_H=1
+ else
+ HAVE_SYS_BITYPES_H=0
+ fi
+
+
+
+
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+
+
+ for gltype in ptrdiff_t size_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" "
+ /* 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 <limits.h>"; then :
+
+else
+ result=unknown
+fi
+
+ eval gl_cv_bitsizeof_${gltype}=\$result
+
+fi
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval result=\$gl_cv_bitsizeof_${gltype}
+ if test $result = unknown; then
+ result=0
+ fi
+ GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ cat >>confdefs.h <<_ACEOF
+#define BITSIZEOF_${GLTYPE} $result
+_ACEOF
+
+ eval BITSIZEOF_${GLTYPE}=\$result
+ done
+
+
+ fi
+
+
+ for gltype in sig_atomic_t wchar_t wint_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for bit size of $gltype" >&5
+$as_echo_n "checking for bit size of $gltype... " >&6; }
+if eval \${gl_cv_bitsizeof_${gltype}+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if ac_fn_c_compute_int "$LINENO" "sizeof ($gltype) * CHAR_BIT" "result" "
+ /* 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 <limits.h>"; then :
+
+else
+ result=unknown
+fi
+
+ eval gl_cv_bitsizeof_${gltype}=\$result
+
+fi
+eval ac_res=\$gl_cv_bitsizeof_${gltype}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ eval result=\$gl_cv_bitsizeof_${gltype}
+ if test $result = unknown; then
+ result=0
+ fi
+ GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ cat >>confdefs.h <<_ACEOF
+#define BITSIZEOF_${GLTYPE} $result
+_ACEOF
+
+ eval BITSIZEOF_${GLTYPE}=\$result
+ done
+
+
+
+
+ for gltype in sig_atomic_t wchar_t wint_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $gltype is signed" >&5
+$as_echo_n "checking whether $gltype is signed... " >&6; }
+if eval \${gl_cv_type_${gltype}_signed+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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
+
+ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ result=yes
+else
+ result=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ eval gl_cv_type_${gltype}_signed=\$result
+
+fi
+eval ac_res=\$gl_cv_type_${gltype}_signed
+ { $as_echo "$as_me:${as_lineno-$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
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGNED_${GLTYPE} 1
+_ACEOF
+
+ eval HAVE_SIGNED_${GLTYPE}=1
+ else
+ eval HAVE_SIGNED_${GLTYPE}=0
+ fi
+ done
+
+
+ gl_cv_type_ptrdiff_t_signed=yes
+ gl_cv_type_size_t_signed=no
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+
+
+ for gltype in ptrdiff_t size_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval gl_cv_type_${gltype}_suffix=no
+ eval result=\$gl_cv_type_${gltype}_signed
+ if test "$result" = yes; then
+ glsufu=
+ else
+ glsufu=u
+ fi
+ 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';;
+ ui64)gltype1='unsigned __int64';;
+ esac
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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
+
+ extern $gltype foo;
+ extern $gltype1 foo;
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval gl_cv_type_${gltype}_suffix=\$glsuf
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ eval result=\$gl_cv_type_${gltype}_suffix
+ test "$result" != no && break
+ done
+fi
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+ { $as_echo "$as_me:${as_lineno-$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=
+ eval ${GLTYPE}_SUFFIX=\$result
+ cat >>confdefs.h <<_ACEOF
+#define ${GLTYPE}_SUFFIX $result
+_ACEOF
+
+ done
+
+
+ fi
+
+
+ for gltype in sig_atomic_t wchar_t wint_t ; do
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $gltype integer literal suffix" >&5
+$as_echo_n "checking for $gltype integer literal suffix... " >&6; }
+if eval \${gl_cv_type_${gltype}_suffix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ eval gl_cv_type_${gltype}_suffix=no
+ eval result=\$gl_cv_type_${gltype}_signed
+ if test "$result" = yes; then
+ glsufu=
+ else
+ glsufu=u
+ fi
+ 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';;
+ ui64)gltype1='unsigned __int64';;
+ esac
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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
+
+ extern $gltype foo;
+ extern $gltype1 foo;
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval gl_cv_type_${gltype}_suffix=\$glsuf
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ eval result=\$gl_cv_type_${gltype}_suffix
+ test "$result" != no && break
+ done
+fi
+eval ac_res=\$gl_cv_type_${gltype}_suffix
+ { $as_echo "$as_me:${as_lineno-$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=
+ eval ${GLTYPE}_SUFFIX=\$result
+ cat >>confdefs.h <<_ACEOF
+#define ${GLTYPE}_SUFFIX $result
+_ACEOF
+
+ done
+
+
+
+ if test $BITSIZEOF_WINT_T -lt 32; then
+ BITSIZEOF_WINT_T=32
+ fi
+
+ STDINT_H=stdint.h
+ fi
+
+ if test -n "$STDINT_H"; then
+ GL_GENERATE_STDINT_H_TRUE=
+ GL_GENERATE_STDINT_H_FALSE='#'
+else
+ GL_GENERATE_STDINT_H_TRUE='#'
+ GL_GENERATE_STDINT_H_FALSE=
+fi
+
+
+
+
+
+ GNULIB_IMAXABS=0;
+ GNULIB_IMAXDIV=0;
+ GNULIB_STRTOIMAX=0;
+ GNULIB_STRTOUMAX=0;
+ HAVE_DECL_IMAXABS=1;
+ HAVE_DECL_IMAXDIV=1;
+ HAVE_DECL_STRTOIMAX=1;
+ HAVE_DECL_STRTOUMAX=1;
+ REPLACE_STRTOIMAX=0;
+ INT32_MAX_LT_INTMAX_MAX=1;
+ INT64_MAX_EQ_LONG_MAX='defined _LP64';
+ PRI_MACROS_BROKEN=0;
+ PRIPTR_PREFIX=__PRIPTR_PREFIX;
+ UINT32_MAX_LT_UINTMAX_MAX=1;
+ UINT64_MAX_EQ_ULONG_MAX='defined _LP64';
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_inttypes_h='<'inttypes.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <inttypes.h>" >&5
+$as_echo_n "checking absolute name of <inttypes.h>... " >&6; }
+if ${gl_cv_next_inttypes_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_inttypes_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <inttypes.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'inttypes.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_inttypes_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_inttypes_h='<'inttypes.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <inttypes.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+ for ac_header in inttypes.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
+if test "x$ac_cv_header_inttypes_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_INTTYPES_H 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_inttypes_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$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 ${gt_cv_inttypes_pri_broken+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_inttypes_pri_broken=no
+else
+ gt_cv_inttypes_pri_broken=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+cat >>confdefs.h <<_ACEOF
+#define PRI_MACROS_BROKEN 1
+_ACEOF
+
+ PRI_MACROS_BROKEN=1
+ else
+ PRI_MACROS_BROKEN=0
+ fi
+
+
+
+ GNULIB_ISWBLANK=0;
+ GNULIB_WCTYPE=0;
+ GNULIB_ISWCTYPE=0;
+ GNULIB_WCTRANS=0;
+ GNULIB_TOWCTRANS=0;
+ HAVE_ISWBLANK=1;
+ HAVE_WCTYPE_T=1;
+ HAVE_WCTRANS_T=1;
+ REPLACE_ISWBLANK=0;
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wint_t" >&5
+$as_echo_n "checking for wint_t... " >&6; }
+if ${gt_cv_c_wint_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ wint_t foo = (wchar_t)'\0';
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_c_wint_t=yes
+else
+ gt_cv_c_wint_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_WINT_T 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+ if test $ac_cv_func_iswcntrl = yes; then
+ HAVE_ISWCNTRL=1
+ else
+ HAVE_ISWCNTRL=0
+ fi
+
+
+
+
+
+ if test $gt_cv_c_wint_t = yes; then
+ HAVE_WINT_T=1
+ else
+ HAVE_WINT_T=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
+$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
+if ${gl_cv_next_wctype_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_wctype_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <wctype.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'wctype.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_wctype_h = yes; then
+ if test $ac_cv_func_iswcntrl = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
+$as_echo_n "checking whether iswcntrl works... " >&6; }
+if ${gl_cv_func_iswcntrl_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+ #if __GNU_LIBRARY__ == 1
+ Linux libc5 i18n is broken.
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ int main () { return iswprint ('x') == 0; }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
+$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
+ fi
+ HAVE_WCTYPE_H=1
+ else
+ HAVE_WCTYPE_H=0
+ fi
+
+
+ if test "$gl_cv_func_iswcntrl_works" = no; then
+ REPLACE_ISWCNTRL=1
+ else
+ REPLACE_ISWCNTRL=0
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+ fi
+
+ if test $REPLACE_ISWCNTRL = 1; then
+ REPLACE_TOWLOWER=1
+ else
+ for ac_func in towlower
+do :
+ ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower"
+if test "x$ac_cv_func_towlower" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_TOWLOWER 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_towlower = yes; then
+ REPLACE_TOWLOWER=0
+ else
+ ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* 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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+
+"
+if test "x$ac_cv_have_decl_towlower" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_TOWLOWER $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_towlower = yes; then
+ REPLACE_TOWLOWER=1
+ else
+ REPLACE_TOWLOWER=0
+ fi
+ fi
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+ :
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
+$as_echo_n "checking for wctype_t... " >&6; }
+if ${gl_cv_type_wctype_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ wctype_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctype_t=yes
+else
+ gl_cv_type_wctype_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5
+$as_echo "$gl_cv_type_wctype_t" >&6; }
+ if test $gl_cv_type_wctype_t = no; then
+ HAVE_WCTYPE_T=0
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
+$as_echo_n "checking for wctrans_t... " >&6; }
+if ${gl_cv_type_wctrans_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ wctrans_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctrans_t=yes
+else
+ gl_cv_type_wctrans_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5
+$as_echo "$gl_cv_type_wctrans_t" >&6; }
+ if test $gl_cv_type_wctrans_t = no; then
+ HAVE_WCTRANS_T=0
+ fi
+
+
+ for gl_func in wctype iswctype wctrans towctrans ; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+ GNULIB_NL_LANGINFO=0;
+ HAVE_NL_LANGINFO=1;
+ REPLACE_NL_LANGINFO=0;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ yes+yes)
+ ;;
+ yes+*)
+ # Solaris 9 has *at functions, but uniformly mishandles trailing
+ # slash in all of them.
+ REPLACE_OPENAT=1
+ ;;
+ *)
+ HAVE_OPENAT=0
+ ;;
+ esac
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C Library >= 2.1 or uClibc" >&5
+$as_echo_n "checking whether we are using the GNU C Library >= 2.1 or uClibc... " >&6; }
+if ${ac_cv_gnu_library_2_1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+#ifdef __UCLIBC__
+ Lucky user
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Lucky" >/dev/null 2>&1; then :
+ ac_cv_gnu_library_2_1=yes
+else
+ ac_cv_gnu_library_2_1=no
+fi
+rm -f conftest*
+
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether malloc, realloc, calloc are POSIX compliant" >&5
+$as_echo_n "checking whether malloc, realloc, calloc are POSIX compliant... " >&6; }
+if ${gl_cv_func_malloc_posix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ choke me
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_malloc_posix=yes
+else
+ gl_cv_func_malloc_posix=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_malloc_posix" >&5
+$as_echo "$gl_cv_func_malloc_posix" >&6; }
+
+
+ for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
+$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
+if ${ac_cv_func_malloc_0_nonnull+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_malloc_0_nonnull=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *malloc ();
+#endif
+
+int
+main ()
+{
+return ! malloc (0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_malloc_0_nonnull=yes
+else
+ ac_cv_func_malloc_0_nonnull=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $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
+ gl_cv_func_malloc_0_nonnull=0
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define MALLOC_0_IS_NONNULL $gl_cv_func_malloc_0_nonnull
+_ACEOF
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a traditional japanese locale" >&5
+$as_echo_n "checking for a traditional japanese locale... " >&6; }
+if ${gt_cv_locale_ja+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.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 (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 MB_CUR_MAX is > 1. This excludes the dysfunctional locales
+ on Cygwin 1.5.x. */
+ if (MB_CUR_MAX == 1)
+ return 1;
+ /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+ This excludes the UTF-8 encoding (except on MirBSD). */
+ 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;
+ return 0;
+}
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Note that on native Windows, the Japanese locale is
+ # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+ # cannot use it here.
+ gt_cv_locale_ja=none
+ ;;
+ *)
+ # 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 AIX locale name.
+ if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.EUC-JP
+ else
+ # Test for the HP-UX, OSF/1, NetBSD locale name.
+ if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.eucJP
+ else
+ # Test for the IRIX, FreeBSD locale name.
+ if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.EUC
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja
+ else
+ # Special test for NetBSD 1.6.
+ if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+ gt_cv_locale_ja=ja_JP.eucJP
+ else
+ # None found.
+ gt_cv_locale_ja=none
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_locale_ja" >&5
+$as_echo "$gt_cv_locale_ja" >&6; }
+ LOCALE_JA=$gt_cv_locale_ja
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a transitional chinese locale" >&5
+$as_echo_n "checking for a transitional chinese locale... " >&6; }
+if ${gt_cv_locale_zh_CN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 (except on MirBSD). */
+ 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\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the hypothetical native Windows locale name.
+ if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_zh_CN=Chinese_China.54936
+ else
+ # None found.
+ gt_cv_locale_zh_CN=none
+ fi
+ ;;
+ solaris2.8)
+ # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+ # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+ # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+ gt_cv_locale_zh_CN=none
+ ;;
+ *)
+ # 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
+ ;;
+ esac
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking for a french Unicode locale" >&5
+$as_echo_n "checking for a french Unicode locale... " >&6; }
+if ${gt_cv_locale_fr_utf8+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.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 () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if !(defined __BEOS__ || defined __HAIKU__)
+ /* Check whether the given locale name is recognized by the system. */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+# else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+ /* 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 the abbreviation of the second month, the second
+ character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+ two bytes long, with UTF-8 encoding. */
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%b", &t) < 4
+ || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+ return 1;
+#endif
+ /* Check whether the decimal separator is a comma.
+ On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+ are nl_langinfo(RADIXCHAR) are both ".". */
+ if (localeconv () ->decimal_point[0] != ',') return 1;
+ return 0;
+}
+
+_ACEOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the hypothetical native Windows locale name.
+ if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=French_France.65001
+ else
+ # None found.
+ gt_cv_locale_fr_utf8=none
+ fi
+ ;;
+ *)
+ # 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 usual locale name.
+ if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr_FR
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr_FR.UTF-8
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr.UTF-8
+ else
+ # None found.
+ gt_cv_locale_fr_utf8=none
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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_FFSL=0;
+ GNULIB_FFSLL=0;
+ 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_STRNCAT=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_STRERROR_R=0;
+ GNULIB_STRSIGNAL=0;
+ GNULIB_STRVERSCMP=0;
+ HAVE_MBSLEN=0;
+ HAVE_FFSL=1;
+ HAVE_FFSLL=1;
+ HAVE_MEMCHR=1;
+ 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_R=1;
+ HAVE_DECL_STRSIGNAL=1;
+ HAVE_STRVERSCMP=1;
+ REPLACE_MEMCHR=0;
+ REPLACE_MEMMEM=0;
+ REPLACE_STPNCPY=0;
+ REPLACE_STRDUP=0;
+ REPLACE_STRSTR=0;
+ REPLACE_STRCASESTR=0;
+ REPLACE_STRCHRNUL=0;
+ REPLACE_STRERROR=0;
+ REPLACE_STRERROR_R=0;
+ REPLACE_STRNCAT=0;
+ REPLACE_STRNDUP=0;
+ REPLACE_STRNLEN=0;
+ REPLACE_STRSIGNAL=0;
+ REPLACE_STRTOK_R=0;
+ UNDEFINE_STRTOK_R=0;
+
+
+
+
+
+
+
+
+
+ # 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_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = xyes; 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:${as_lineno-$LINENO}: checking for MAP_ANONYMOUS" >&5
+$as_echo_n "checking for MAP_ANONYMOUS... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 :
+
+$as_echo "#define MAP_ANONYMOUS MAP_ANON" >>confdefs.h
+
+ gl_have_mmap_anonymous=yes
+fi
+rm -f conftest*
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_have_mmap_anonymous" >&5
+$as_echo "$gl_have_mmap_anonymous" >&6; }
+ if test $gl_have_mmap_anonymous = yes; then
+
+$as_echo "#define HAVE_MAP_ANONYMOUS 1" >>confdefs.h
+
+ fi
+ fi
+
+
+
+
+
+
+ if test $HAVE_MEMCHR = 1; 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:${as_lineno-$LINENO}: checking whether memchr works" >&5
+$as_echo_n "checking whether memchr works... " >&6; }
+if ${gl_cv_func_memchr_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_memchr_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 ()
+{
+
+ int result = 0;
+ 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))
+ result |= 1;
+ strcpy (fence - 9, "12345678");
+ if (memchr (fence - 9, 0, 79) != fence - 1)
+ result |= 2;
+ if (memchr (fence - 1, 0, 3) != fence - 1)
+ result |= 4;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_memchr_works=yes
+else
+ gl_cv_func_memchr_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_MEMCHR=1
+ fi
+ fi
+
+ac_fn_c_check_decl "$LINENO" "memrchr" "ac_cv_have_decl_memrchr" "$ac_includes_default"
+if test "x$ac_cv_have_decl_memrchr" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MEMRCHR $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+ GNULIB_MKTIME=0;
+ GNULIB_NANOSLEEP=0;
+ GNULIB_STRPTIME=0;
+ GNULIB_TIMEGM=0;
+ GNULIB_TIME_R=0;
+ HAVE_DECL_LOCALTIME_R=1;
+ HAVE_NANOSLEEP=1;
+ HAVE_STRPTIME=1;
+ HAVE_TIMEGM=1;
+ REPLACE_LOCALTIME_R=GNULIB_PORTCHECK;
+ REPLACE_MKTIME=GNULIB_PORTCHECK;
+ REPLACE_NANOSLEEP=GNULIB_PORTCHECK;
+ REPLACE_TIMEGM=GNULIB_PORTCHECK;
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for promoted mode_t type" >&5
+$as_echo_n "checking for promoted mode_t type... " >&6; }
+if ${gl_cv_promoted_mode_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main ()
+{
+typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1];
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_promoted_mode_t='int'
+else
+ gl_cv_promoted_mode_t='mode_t'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
+$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
+if ${ac_cv_header_stdbool_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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];
+ /* See body of main program for 'e'. */
+ 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 };
+ /* The following fails for
+ HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+ _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];
+ /* 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 ()
+{
+
+ bool e = &s;
+ *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
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_stdbool_h=yes
+else
+ ac_cv_header_stdbool_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
+$as_echo "$ac_cv_header_stdbool_h" >&6; }
+ ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
+if test "x$ac_cv_type__Bool" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE__BOOL 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 -n "$STDBOOL_H"; then
+ GL_GENERATE_STDBOOL_H_TRUE=
+ GL_GENERATE_STDBOOL_H_FALSE='#'
+else
+ GL_GENERATE_STDBOOL_H_TRUE='#'
+ GL_GENERATE_STDBOOL_H_FALSE=
+fi
+
+
+ if test "$ac_cv_type__Bool" = yes; then
+ HAVE__BOOL=1
+ else
+ HAVE__BOOL=0
+ fi
+
+
+
+ # parse-datetime.y works with bison only.
+ : ${YACC='bison -y'}
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compound literals" >&5
+$as_echo_n "checking for compound literals... " >&6; }
+if ${gl_cv_compound_literals+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+struct s { int i, j; };
+int
+main ()
+{
+struct s t = (struct s) { 3, 4 };
+ if (t.i != 0) return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_compound_literals=yes
+else
+ gl_cv_compound_literals=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_compound_literals" >&5
+$as_echo "$gl_cv_compound_literals" >&6; }
+ if test $gl_cv_compound_literals = yes; then
+
+$as_echo "#define HAVE_COMPOUND_LITERALS 1" >>confdefs.h
+
+ fi
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_struct_tm+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <time.h>
+
+int
+main ()
+{
+struct tm tm;
+ int *p = &tm.tm_sec;
+ return !p;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_struct_tm=time.h
+else
+ ac_cv_struct_tm=sys/time.h
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5
+$as_echo "$ac_cv_struct_tm" >&6; }
+if test $ac_cv_struct_tm = sys/time.h; then
+
+$as_echo "#define TM_IN_SYS_TIME 1" >>confdefs.h
+
+fi
+
+
+ ac_fn_c_check_member "$LINENO" "struct tm" "tm_gmtoff" "ac_cv_member_struct_tm_tm_gmtoff" "#include <time.h>
+"
+if test "x$ac_cv_member_struct_tm_tm_gmtoff" = xyes; then :
+
+$as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h
+
+fi
+
+
+
+
+
+ GNULIB_PTHREAD_SIGMASK=0;
+ GNULIB_RAISE=0;
+ GNULIB_SIGNAL_H_SIGPIPE=0;
+ GNULIB_SIGPROCMASK=0;
+ GNULIB_SIGACTION=0;
+ HAVE_POSIX_SIGNALBLOCKING=1;
+ HAVE_PTHREAD_SIGMASK=1;
+ HAVE_RAISE=1;
+ HAVE_SIGSET_T=1;
+ HAVE_SIGINFO_T=1;
+ HAVE_SIGACTION=1;
+ HAVE_STRUCT_SIGACTION_SA_SIGACTION=1;
+
+ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1;
+
+ HAVE_SIGHANDLER_T=1;
+ REPLACE_PTHREAD_SIGMASK=0;
+ REPLACE_RAISE=0;
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "setenv" "ac_cv_have_decl_setenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_setenv" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SETENV $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+ if test $ac_cv_have_decl_setenv = no; then
+ HAVE_DECL_SETENV=0
+ fi
+
+
+
+
+
+ for ac_header in search.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "search.h" "ac_cv_header_search_h" "$ac_includes_default"
+if test "x$ac_cv_header_search_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SEARCH_H 1
+_ACEOF
+
+fi
+
+done
+
+ for ac_func in tsearch
+do :
+ ac_fn_c_check_func "$LINENO" "tsearch" "ac_cv_func_tsearch"
+if test "x$ac_cv_func_tsearch" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_TSEARCH 1
+_ACEOF
+
+fi
+done
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "sigset_t" "ac_cv_type_sigset_t" "
+ #include <signal.h>
+ /* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>. */
+ #include <sys/types.h>
+
+"
+if test "x$ac_cv_type_sigset_t" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_SIGSET_T 1
+_ACEOF
+
+gl_cv_type_sigset_t=yes
+else
+ gl_cv_type_sigset_t=no
+fi
+
+ if test $gl_cv_type_sigset_t != yes; then
+ HAVE_SIGSET_T=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf returns a byte count as in C99" >&5
+$as_echo_n "checking whether snprintf returns a byte count as in C99... " >&6; }
+if ${gl_cv_func_snprintf_retval_c99+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on OpenBSD >= 3.9.
+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+ gl_cv_func_snprintf_retval_c99="guessing no";;
+ openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on Solaris >= 2.10.
+ solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ solaris*) gl_cv_func_printf_sizes_c99="guessing no";;
+ # Guess yes on AIX >= 4.
+ aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ aix*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_snprintf_retval_c99="guessing no";;
+ netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_snprintf_retval_c99="guessing no";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+static char buf[100];
+int main ()
+{
+ strcpy (buf, "ABCDEF");
+ if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7)
+ return 1;
+ if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7)
+ return 2;
+ if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
+ return 3;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_snprintf_retval_c99=yes
+else
+ gl_cv_func_snprintf_retval_c99=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_retval_c99" >&5
+$as_echo "$gl_cv_func_snprintf_retval_c99" >&6; }
+
+ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_snprintf" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SNPRINTF $ac_have_decl
+_ACEOF
+
+
+ REPLACE_NULL=0;
+ HAVE_WCHAR_T=1;
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wchar_t" >&5
+$as_echo_n "checking for wchar_t... " >&6; }
+if ${gt_cv_c_wchar_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ wchar_t foo = (wchar_t)'\0';
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_c_wchar_t=yes
+else
+ gt_cv_c_wchar_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h
+
+ fi
+
+
+ GNULIB_FFS=0;
+ HAVE_FFS=1;
+ HAVE_STRCASECMP=1;
+ HAVE_DECL_STRNCASECMP=1;
+
+
+
+ac_fn_c_check_decl "$LINENO" "strdup" "ac_cv_have_decl_strdup" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strdup" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRDUP $ac_have_decl
+_ACEOF
+
+
+ REPLACE_STRERROR_0=0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strerror(0) succeeds" >&5
+$as_echo_n "checking whether strerror(0) succeeds... " >&6; }
+if ${gl_cv_func_strerror_0_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_strerror_0_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+ #include <errno.h>
+
+int
+main ()
+{
+int result = 0;
+ char *str;
+ errno = 0;
+ str = strerror (0);
+ if (!*str) result |= 1;
+ if (errno) result |= 2;
+ if (strstr (str, "nknown") || strstr (str, "ndefined"))
+ result |= 4;
+ return result;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_strerror_0_works=yes
+else
+ gl_cv_func_strerror_0_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strerror_0_works" >&5
+$as_echo "$gl_cv_func_strerror_0_works" >&6; }
+ if test "$gl_cv_func_strerror_0_works" != yes; then
+ REPLACE_STRERROR_0=1
+
+$as_echo "#define REPLACE_STRERROR_0 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_string_h='<'string.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <string.h>" >&5
+$as_echo_n "checking absolute name of <string.h>... " >&6; }
+if ${gl_cv_next_string_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'string.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_string_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+ for gl_func in ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r strerror_r strsignal strverscmp; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <strings.h>" >&5
+$as_echo_n "checking absolute name of <strings.h>... " >&6; }
+if ${gl_cv_next_strings_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_strings_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <strings.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'strings.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_strings_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_strings_h='<'strings.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_strings_h = yes; then
+ HAVE_STRINGS_H=1
+ else
+ HAVE_STRINGS_H=0
+ fi
+
+
+
+ for gl_func in ffs strcasecmp strncasecmp; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
+ <strings.h>. */
+ #include <sys/types.h>
+ #include <strings.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+ac_fn_c_check_decl "$LINENO" "strndup" "ac_cv_have_decl_strndup" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strndup" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRNDUP $ac_have_decl
+_ACEOF
+
+
+
+ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strnlen" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRNLEN $ac_have_decl
+_ACEOF
+
+
+
+ac_fn_c_check_decl "$LINENO" "strtoumax" "ac_cv_have_decl_strtoumax" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtoumax" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOUMAX $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <time.h>" >&5
+$as_echo_n "checking for struct timespec in <time.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timespec_in_time_h=yes
+else
+ gl_cv_sys_struct_timespec_in_time_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
+ if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
+ TIME_H_DEFINES_STRUCT_TIMESPEC=1
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <sys/time.h>" >&5
+$as_echo_n "checking for struct timespec in <sys/time.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_sys_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/time.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timespec_in_sys_time_h=yes
+else
+ gl_cv_sys_struct_timespec_in_sys_time_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct timespec in <pthread.h>" >&5
+$as_echo_n "checking for struct timespec in <pthread.h>... " >&6; }
+if ${gl_cv_sys_struct_timespec_in_pthread_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <pthread.h>
+
+int
+main ()
+{
+static struct timespec x; x.tv_sec = x.tv_nsec;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_timespec_in_pthread_h=yes
+else
+ gl_cv_sys_struct_timespec_in_pthread_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_sys_struct_timespec_in_pthread_h" >&5
+$as_echo "$gl_cv_sys_struct_timespec_in_pthread_h" >&6; }
+ if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
+ fi
+ fi
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_time_h='<'time.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <time.h>" >&5
+$as_echo_n "checking absolute name of <time.h>... " >&6; }
+if ${gl_cv_next_time_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'time.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_time_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "localtime_r" "ac_cv_have_decl_localtime_r" "$ac_includes_default"
+if test "x$ac_cv_have_decl_localtime_r" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_LOCALTIME_R $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+
+
+
+
+
+gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+
+
+ if test "$HAVE_LIBUNISTRING" = yes; then
+ LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"`
+ LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"`
+ LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
+ fi
+
+ac_fn_c_check_decl "$LINENO" "unsetenv" "ac_cv_have_decl_unsetenv" "$ac_includes_default"
+if test "x$ac_cv_have_decl_unsetenv" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_UNSETENV $ac_have_decl
+_ACEOF
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the utimes function works" >&5
+$as_echo_n "checking whether the utimes function works... " >&6; }
+if ${gl_cv_func_working_utimes+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_working_utimes=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/time.h>
+#include <time.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <utime.h>
+
+static int
+inorder (time_t a, time_t b, time_t c)
+{
+ return a <= b && b <= c;
+}
+
+int
+main ()
+{
+ int result = 0;
+ char const *file = "conftest.utimes";
+ static struct timeval timeval[2] = {{9, 10}, {999999, 999999}};
+
+ /* Test whether utimes() essentially works. */
+ {
+ struct stat sbuf;
+ FILE *f = fopen (file, "w");
+ if (f == NULL)
+ result |= 1;
+ else if (fclose (f) != 0)
+ result |= 1;
+ else if (utimes (file, timeval) != 0)
+ result |= 2;
+ else if (lstat (file, &sbuf) != 0)
+ result |= 1;
+ else if (!(sbuf.st_atime == timeval[0].tv_sec
+ && sbuf.st_mtime == timeval[1].tv_sec))
+ result |= 4;
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ /* Test whether utimes() with a NULL argument sets the file's timestamp
+ to the current time. Use 'fstat' as well as 'time' to
+ determine the "current" time, to accommodate NFS file systems
+ if there is a time skew between the host and the NFS server. */
+ {
+ int fd = open (file, O_WRONLY|O_CREAT, 0644);
+ if (fd < 0)
+ result |= 1;
+ else
+ {
+ time_t t0, t2;
+ struct stat st0, st1, st2;
+ if (time (&t0) == (time_t) -1)
+ result |= 1;
+ else if (fstat (fd, &st0) != 0)
+ result |= 1;
+ else if (utimes (file, timeval) != 0)
+ result |= 2;
+ else if (utimes (file, NULL) != 0)
+ result |= 8;
+ else if (fstat (fd, &st1) != 0)
+ result |= 1;
+ else if (write (fd, "\n", 1) != 1)
+ result |= 1;
+ else if (fstat (fd, &st2) != 0)
+ result |= 1;
+ else if (time (&t2) == (time_t) -1)
+ result |= 1;
+ else
+ {
+ int m_ok_POSIX = inorder (t0, st1.st_mtime, t2);
+ int m_ok_NFS = inorder (st0.st_mtime, st1.st_mtime, st2.st_mtime);
+ if (! (st1.st_atime == st1.st_mtime))
+ result |= 16;
+ if (! (m_ok_POSIX || m_ok_NFS))
+ result |= 32;
+ }
+ if (close (fd) != 0)
+ result |= 1;
+ }
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ /* Test whether utimes() with a NULL argument works on read-only files. */
+ {
+ int fd = open (file, O_WRONLY|O_CREAT, 0444);
+ if (fd < 0)
+ result |= 1;
+ else if (close (fd) != 0)
+ result |= 1;
+ else if (utimes (file, NULL) != 0)
+ result |= 64;
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ return result;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_utimes=yes
+else
+ gl_cv_func_working_utimes=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_utimes" >&5
+$as_echo "$gl_cv_func_working_utimes" >&6; }
+
+ if test $gl_cv_func_working_utimes = yes; then
+
+$as_echo "#define HAVE_WORKING_UTIMES 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct utimbuf" >&5
+$as_echo_n "checking for struct utimbuf... " >&6; }
+if ${gl_cv_sys_struct_utimbuf+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_sys_struct_utimbuf=yes
+else
+ gl_cv_sys_struct_utimbuf=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_STRUCT_UTIMBUF 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_header_features_h = yes; then
+ HAVE_FEATURES_H=1
+ else
+ HAVE_FEATURES_H=0
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inttypes.h" >&5
+$as_echo_n "checking for inttypes.h... " >&6; }
+if ${gl_cv_header_inttypes_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h>
+#include <inttypes.h>
+
+int
+main ()
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_inttypes_h=yes
+else
+ gl_cv_header_inttypes_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+#define HAVE_INTTYPES_H_WITH_UINTMAX 1
+_ACEOF
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint.h" >&5
+$as_echo_n "checking for stdint.h... " >&6; }
+if ${gl_cv_header_stdint_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <stdint.h>
+int
+main ()
+{
+uintmax_t i = (uintmax_t) -1; return !i;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_stdint_h=yes
+else
+ gl_cv_header_stdint_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+#define HAVE_STDINT_H_WITH_UINTMAX 1
+_ACEOF
+
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for intmax_t" >&5
+$as_echo_n "checking for intmax_t... " >&6; }
+if ${gt_cv_c_intmax_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+
+int
+main ()
+{
+intmax_t x = -1; return !x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_c_intmax_t=yes
+else
+ gt_cv_c_intmax_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_INTMAX_T 1" >>confdefs.h
+
+ else
+
+ test $ac_cv_type_long_long_int = yes \
+ && ac_type='long long' \
+ || ac_type='long'
+
+cat >>confdefs.h <<_ACEOF
+#define intmax_t $ac_type
+_ACEOF
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking where to find the exponent in a 'double'" >&5
+$as_echo_n "checking where to find the exponent in a 'double'... " >&6; }
+if ${gl_cv_cc_double_expbit0+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if defined arm || defined __arm || defined __arm__
+ mixed_endianness
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "mixed_endianness" >/dev/null 2>&1; then :
+ gl_cv_cc_double_expbit0="unknown"
+else
+
+ :
+if ${ac_cv_c_bigendian+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are at least two -arch flags with different values.
+ ac_arch=
+ ac_prev=
+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+ if test -n "$ac_prev"; then
+ case $ac_word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+ ac_arch=$ac_word
+ else
+ ac_cv_c_bigendian=universal
+ break
+ fi
+ ;;
+ esac
+ ac_prev=
+ elif test "x$ac_word" = "x-arch"; then
+ ac_prev=arch
+ fi
+ done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_c_bigendian=yes
+else
+ ac_cv_c_bigendian=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then :
+ # Try to guess by grepping values from an object file.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_c_bigendian=no
+else
+ ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+fi
+:
+ case $ac_cv_c_bigendian in #(
+ yes)
+ gl_cv_cc_double_expbit0="word 0 bit 20";; #(
+ no)
+ gl_cv_cc_double_expbit0="word 1 bit 20" ;; #(
+ universal)
+
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+
+ ;; #(
+ *)
+ gl_cv_cc_double_expbit0="unknown" ;;
+ esac
+
+
+fi
+rm -f conftest*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
+{
+ memory_double m;
+ size_t i;
+ /* Clear it first, in case sizeof (double) < sizeof (memory_double). */
+ memset (&m, 0, sizeof (memory_double));
+ m.value = x;
+ for (i = 0; i < NWORDS; i++)
+ {
+ ored_words[i] |= m.word[i];
+ anded_words[i] &= m.word[i];
+ }
+}
+int main ()
+{
+ size_t j;
+ FILE *fp = fopen ("conftest.out", "w");
+ if (fp == NULL)
+ return 1;
+ for (j = 0; j < NWORDS; j++)
+ anded_words[j] = ~ (unsigned int) 0;
+ add_to_ored_words (0.25);
+ add_to_ored_words (0.5);
+ add_to_ored_words (1.0);
+ add_to_ored_words (2.0);
+ add_to_ored_words (4.0);
+ /* Remove bits that are common (e.g. if representation of the first mantissa
+ bit is explicit). */
+ for (j = 0; j < NWORDS; j++)
+ ored_words[j] &= ~anded_words[j];
+ /* Now find the nonzero word. */
+ for (j = 0; j < NWORDS; j++)
+ if (ored_words[j] != 0)
+ break;
+ if (j < NWORDS)
+ {
+ size_t i;
+ for (i = j + 1; i < NWORDS; i++)
+ if (ored_words[i] != 0)
+ {
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+ }
+ for (i = 0; ; i++)
+ if ((ored_words[j] >> i) & 1)
+ {
+ fprintf (fp, "word %d bit %d", (int) j, (int) i);
+ return (fclose (fp) != 0);
+ }
+ }
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_cc_double_expbit0=`cat conftest.out`
+else
+ gl_cv_cc_double_expbit0="unknown"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.out
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_double_expbit0" >&5
+$as_echo "$gl_cv_cc_double_expbit0" >&6; }
+ case "$gl_cv_cc_double_expbit0" in
+ word*bit*)
+ word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+ bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
+
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_WORD $word
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define DBL_EXPBIT0_BIT $bit
+_ACEOF
+
+ ;;
+ esac
+
+
+
+
+
+
+
+ for ac_func in snprintf strnlen wcslen wcsnlen mbrtowc wcrtomb
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ ac_fn_c_check_decl "$LINENO" "_snprintf" "ac_cv_have_decl__snprintf" "#include <stdio.h>
+"
+if test "x$ac_cv_have_decl__snprintf" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL__SNPRINTF $ac_have_decl
+_ACEOF
+
+
+
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+
+$as_echo "#define HAVE_SNPRINTF_RETVAL_C99 1" >>confdefs.h
+
+ ;;
+ esac
+
+ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" "$ac_includes_default"
+if test "x$ac_cv_have_decl_vsnprintf" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_VSNPRINTF $ac_have_decl
+_ACEOF
+
+
+
+
+
+
+ if false; then
+ GL_COND_LIBTOOL_TRUE=
+ GL_COND_LIBTOOL_FALSE='#'
+else
+ GL_COND_LIBTOOL_TRUE='#'
+ GL_COND_LIBTOOL_FALSE=
+fi
+
+ gl_cond_libtool=false
+ gl_libdeps=
+ gl_ltlibdeps=
+ gl_m4_base='m4'
+
+
+
+
+
+
+
+
+
+ gl_source_base='gnu'
+
+
+ if test $ac_cv_func_alloca_works = no; then
+ :
+ fi
+
+ # Define an additional variable used in the Makefile substitution.
+ if test $ac_cv_working_alloca_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca as a compiler built-in" >&5
+$as_echo_n "checking for alloca as a compiler built-in... " >&6; }
+if ${gl_cv_rpl_alloca+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
+ Need own alloca
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Need own alloca" >/dev/null 2>&1; then :
+ gl_cv_rpl_alloca=yes
+else
+ gl_cv_rpl_alloca=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_rpl_alloca" >&5
+$as_echo "$gl_cv_rpl_alloca" >&6; }
+ if test $gl_cv_rpl_alloca = yes; then
+
+$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
+
+ ALLOCA_H=alloca.h
+ else
+ ALLOCA_H=
+ fi
+ else
+ ALLOCA_H=alloca.h
+ fi
+
+ if test -n "$ALLOCA_H"; then
+ GL_GENERATE_ALLOCA_H_TRUE=
+ GL_GENERATE_ALLOCA_H_FALSE='#'
+else
+ GL_GENERATE_ALLOCA_H_TRUE='#'
+ GL_GENERATE_ALLOCA_H_FALSE=
+fi
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_AREADLINKAT 1
+_ACEOF
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then :
+
+$as_echo "#define HAVE_DECL_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+
+else
+
+$as_echo "#define GNULIB_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+
+fi
+
+ ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then :
+
+$as_echo "#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
+
+else
+
+$as_echo "#define GNULIB_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
+
+fi
+
+
+ # Check if program_invocation_name and program_invocation_short_name
+ # 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.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_name is defined" >&5
+$as_echo_n "checking whether program_invocation_name is defined... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <argp.h>
+int
+main ()
+{
+program_invocation_name = "test";
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+$as_echo "#define HAVE_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_short_name is defined" >&5
+$as_echo_n "checking whether program_invocation_short_name is defined... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <argp.h>
+int
+main ()
+{
+program_invocation_short_name = "test";
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+
+$as_echo "#define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_error:2:c-format"
+
+
+
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=argp_failure:4:c-format"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS openat-proc.$ac_objext"
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_btowc = no; then
+ HAVE_BTOWC=0
+ else
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(0) is correct" >&5
+$as_echo_n "checking whether btowc(0) is correct... " >&6; }
+if ${gl_cv_func_btowc_nul+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess no on Cygwin.
+ cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_nul="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <string.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>
+int main ()
+{
+ if (btowc ('\0') != 0)
+ return 1;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_btowc_nul=yes
+else
+ gl_cv_func_btowc_nul=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_nul" >&5
+$as_echo "$gl_cv_func_btowc_nul" >&6; }
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether btowc(EOF) is correct" >&5
+$as_echo_n "checking whether btowc(EOF) is correct... " >&6; }
+if ${gl_cv_func_btowc_eof+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on IRIX.
+ irix*) gl_cv_func_btowc_eof="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_eof="guessing yes" ;;
+ esac
+ if test $LOCALE_FR != none; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ if (btowc (EOF) != WEOF)
+ return 1;
+ }
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_btowc_eof=yes
+else
+ gl_cv_func_btowc_eof=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_btowc_eof" >&5
+$as_echo "$gl_cv_func_btowc_eof" >&6; }
+
+ case "$gl_cv_func_btowc_nul" in
+ *yes) ;;
+ *) REPLACE_BTOWC=1 ;;
+ esac
+ case "$gl_cv_func_btowc_eof" in
+ *yes) ;;
+ *) REPLACE_BTOWC=1 ;;
+ esac
+ fi
+
+if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS btowc.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_BTOWC=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_BTOWC 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_canonicalize_file_name = no; then
+ HAVE_CANONICALIZE_FILE_NAME=0
+ 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
+ REPLACE_CANONICALIZE_FILE_NAME=1
+ REPLACE_REALPATH=1
+ fi
+
+if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS canonicalize-lgpl.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_CANONICALIZE_LGPL 1
+_ACEOF
+
+
+
+
+
+
+
+ GNULIB_CANONICALIZE_FILE_NAME=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_CANONICALIZE_FILE_NAME 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ GNULIB_REALPATH=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_REALPATH 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ GNULIB_CHDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_CHDIR 1" >>confdefs.h
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_have_arbitrary_file_name_length_limit+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+
+#ifdef PATH_MAX
+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
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS chdir-long.$ac_objext"
+
+
+
+ :
+
+fi
+
+if test $HAVE_CHOWN = 0 || test $REPLACE_CHOWN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS chown.$ac_objext"
+
+fi
+if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fchown-stub.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_CHOWN=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_CHOWN 1" >>confdefs.h
+
+
+
+
+
+
+ # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
+ # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
+
+ # 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
+$as_echo_n "checking for library containing clock_gettime... " >&6; }
+if ${ac_cv_search_clock_gettime+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 clock_gettime ();
+int
+main ()
+{
+return clock_gettime ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' rt posix4; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_clock_gettime=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_clock_gettime+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_clock_gettime+:} false; then :
+
+else
+ ac_cv_search_clock_gettime=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+ test "$ac_cv_search_clock_gettime" = "none required" ||
+ LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime
+fi
+
+ for ac_func in clock_gettime clock_settime
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ LIBS=$gl_saved_libs
+
+
+
+$as_echo "#define GNULIB_TEST_CLOEXEC 1" >>confdefs.h
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_CLOSE=1
+ fi
+
+
+
+
+
+ if test $ac_cv_header_sys_socket_h != yes; then
+ for ac_header in winsock2.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+ fi
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ HAVE_WINSOCK2_H=1
+ UNISTD_H_HAVE_WINSOCK2_H=1
+ SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+ else
+ HAVE_WINSOCK2_H=0
+ fi
+
+
+ if test $UNISTD_H_HAVE_WINSOCK2_H = 1; then
+ REPLACE_CLOSE=1
+ fi
+
+
+ if test $REPLACE_CLOSE = 0; then
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_CLOSE=1
+ fi
+ fi
+
+
+if test $REPLACE_CLOSE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS close.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_CLOSE=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_CLOSE 1" >>confdefs.h
+
+
+
+
+ :
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_CLOSE_STREAM 1
+_ACEOF
+
+
+
+
+
+ for ac_func in closedir
+do :
+ ac_fn_c_check_func "$LINENO" "closedir" "ac_cv_func_closedir"
+if test "x$ac_cv_func_closedir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_CLOSEDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_closedir = no; then
+ HAVE_CLOSEDIR=0
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_CLOSEDIR = 1; then
+ REPLACE_CLOSEDIR=1
+ fi
+ fi
+
+
+if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS closedir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_CLOSEDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_CLOSEDIR 1" >>confdefs.h
+
+
+
+
+ :
+
+
+ if test "x$datarootdir" = x; then
+ datarootdir='${datadir}'
+
+ fi
+ if test "x$docdir" = x; then
+ docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+
+ fi
+ if test "x$htmldir" = x; then
+ htmldir='${docdir}'
+
+ fi
+ if test "x$dvidir" = x; then
+ dvidir='${docdir}'
+
+ fi
+ if test "x$pdfdir" = x; then
+ pdfdir='${docdir}'
+
+ fi
+ if test "x$psdir" = x; then
+ psdir='${docdir}'
+
+ fi
+ if test "x$lispdir" = x; then
+ lispdir='${datarootdir}/emacs/site-lisp'
+
+ fi
+ if test "x$localedir" = x; then
+ localedir='${datarootdir}/locale'
+
+ fi
+
+ pkglibexecdir='${libexecdir}/${PACKAGE}'
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for d_ino member in directory struct" >&5
+$as_echo_n "checking for d_ino member in directory struct... " >&6; }
+if ${gl_cv_struct_dirent_d_ino+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_struct_dirent_d_ino=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.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);
+ if (! e)
+ return 2;
+ if (stat (e->d_name, &st) != 0)
+ return 3;
+ if (e->d_ino != st.st_ino)
+ return 4;
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_struct_dirent_d_ino=yes
+else
+ gl_cv_struct_dirent_d_ino=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_struct_dirent_d_ino" >&5
+$as_echo "$gl_cv_struct_dirent_d_ino" >&6; }
+ if test $gl_cv_struct_dirent_d_ino = yes; then
+
+$as_echo "#define D_INO_IN_DIRENT 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_dirent_h='<'dirent.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <dirent.h>" >&5
+$as_echo_n "checking absolute name of <dirent.h>... " >&6; }
+if ${gl_cv_next_dirent_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_dirent_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <dirent.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'dirent.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_dirent_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_dirent_h='<'dirent.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_dirent_h = yes; then
+ HAVE_DIRENT_H=1
+ else
+ HAVE_DIRENT_H=0
+ fi
+
+
+
+ for gl_func in alphasort closedir dirfd fdopendir opendir readdir rewinddir scandir; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <dirent.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_DIRENT_SAFER 1
+_ACEOF
+
+
+
+
+
+
+
+ for ac_func in dirfd
+do :
+ ac_fn_c_check_func "$LINENO" "dirfd" "ac_cv_func_dirfd"
+if test "x$ac_cv_func_dirfd" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_DIRFD 1
+_ACEOF
+
+fi
+done
+
+ ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include <sys/types.h>
+ #include <dirent.h>
+"
+if test "x$ac_cv_have_decl_dirfd" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_DIRFD $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_dirfd = no; then
+ HAVE_DECL_DIRFD=0
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dirfd is a macro" >&5
+$as_echo_n "checking whether dirfd is a macro... " >&6; }
+if ${gl_cv_func_dirfd_macro+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h>
+#include <dirent.h>
+#ifdef dirfd
+ dirent_header_defines_dirfd
+#endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "dirent_header_defines_dirfd" >/dev/null 2>&1; then :
+ gl_cv_func_dirfd_macro=yes
+else
+ gl_cv_func_dirfd_macro=no
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 or macro with that name.
+ if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+ if test $ac_cv_have_decl_dirfd = yes; then
+ # If the system declares dirfd already, let's declare rpl_dirfd instead.
+ REPLACE_DIRFD=1
+ fi
+ fi
+
+if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS dirfd.$ac_objext"
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_sys_dir_fd_member_name+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ dir_fd_found=yes
+
+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:${as_lineno-$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
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_DIRFD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_DIRNAME 1
+_ACEOF
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether // is distinct from /" >&5
+$as_echo_n "checking whether // is distinct from /... " >&6; }
+if ${gl_cv_double_slash_root+:} false; 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:${as_lineno-$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
+
+$as_echo "#define DOUBLE_SLASH_IS_DISTINCT_ROOT 1" >>confdefs.h
+
+ fi
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_DUP=1
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_DUP=1
+ fi
+
+
+if test $REPLACE_DUP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS dup.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_DUP=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_DUP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+$as_echo "#define HAVE_DUP2 1" >>confdefs.h
+
+
+ if test $HAVE_DUP2 = 1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether dup2 works" >&5
+$as_echo_n "checking whether dup2 works... " >&6; }
+if ${gl_cv_func_dup2_works+:} false; 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;;
+ haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
+ gl_cv_func_dup2_works=no;;
+ *) gl_cv_func_dup2_works=yes;;
+ esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+int
+main ()
+{
+int result = 0;
+#ifdef FD_CLOEXEC
+ if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
+ result |= 1;
+#endif
+ if (dup2 (1, 1) == 0)
+ result |= 2;
+#ifdef FD_CLOEXEC
+ if (fcntl (1, F_GETFD) != FD_CLOEXEC)
+ result |= 4;
+#endif
+ close (0);
+ if (dup2 (0, 0) != -1)
+ result |= 8;
+ /* Many gnulib modules require POSIX conformance of EBADF. */
+ if (dup2 (2, 1000000) == -1 && errno != EBADF)
+ result |= 16;
+ return result;
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_dup2_works=yes
+else
+ gl_cv_func_dup2_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_DUP2=1
+ fi
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_DUP2 = 1; then
+ REPLACE_DUP2=1
+ fi
+ fi
+
+
+if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS dup2.$ac_objext"
+
+
+fi
+
+
+
+
+
+ GNULIB_DUP2=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_DUP2 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ GNULIB_ENVIRON=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_ENVIRON 1" >>confdefs.h
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
+$as_echo_n "checking for error_at_line... " >&6; }
+if ${ac_cv_lib_error_at_line+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <error.h>
+int
+main ()
+{
+error_at_line (0, 0, "", 0, "an error occurred");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_lib_error_at_line=yes
+else
+ ac_cv_lib_error_at_line=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+
+
+
+
+
+ if test $ac_cv_have_decl_fchdir = no; then
+ HAVE_DECL_FCHDIR=0
+ fi
+
+
+ if test $HAVE_FCHDIR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fchdir.$ac_objext"
+
+ :
+
+$as_echo "#define REPLACE_FCHDIR 1" >>confdefs.h
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open can visit directories" >&5
+$as_echo_n "checking whether open can visit directories... " >&6; }
+if ${gl_cv_func_open_directory_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_open_directory_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fcntl.h>
+
+int
+main ()
+{
+return open(".", O_RDONLY) < 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_open_directory_works=yes
+else
+ gl_cv_func_open_directory_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define REPLACE_OPEN_DIRECTORY 1" >>confdefs.h
+
+ fi
+ fi
+
+
+
+
+
+
+ GNULIB_FCHDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FCHDIR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl handles F_DUPFD correctly" >&5
+$as_echo_n "checking whether fcntl handles F_DUPFD correctly... " >&6; }
+if ${gl_cv_func_fcntl_f_dupfd_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <errno.h>
+
+int
+main ()
+{
+int result = 0;
+ if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
+ if (errno != EINVAL) result |= 2;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_fcntl_f_dupfd_works=yes
+else
+ gl_cv_func_fcntl_f_dupfd_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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) ;;
+ *)
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+
+$as_echo "#define FCNTL_DUPFD_BUGGY 1" >>confdefs.h
+ ;;
+ esac
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fcntl understands F_DUPFD_CLOEXEC" >&5
+$as_echo_n "checking whether fcntl understands F_DUPFD_CLOEXEC... " >&6; }
+if ${gl_cv_func_fcntl_f_dupfd_cloexec+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#ifndef F_DUPFD_CLOEXEC
+choke me
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_fcntl_f_dupfd_cloexec=yes
+else
+ gl_cv_func_fcntl_f_dupfd_cloexec="needs runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ 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:${as_lineno-$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
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+ fi
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+
+
+
+ if test $ac_cv_func_fcntl = no; then
+ HAVE_FCNTL=0
+ else
+ REPLACE_FCNTL=1
+ fi
+
+ fi
+
+
+if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fcntl.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FCNTL=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FCNTL 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_fcntl_h='<'fcntl.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <fcntl.h>" >&5
+$as_echo_n "checking absolute name of <fcntl.h>... " >&6; }
+if ${gl_cv_next_fcntl_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fcntl.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'fcntl.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_fcntl_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <fcntl.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "fdopendir" "ac_cv_have_decl_fdopendir" "
+#include <dirent.h>
+
+"
+if test "x$ac_cv_have_decl_fdopendir" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_FDOPENDIR $ac_have_decl
+_ACEOF
+if test $ac_have_decl = 1; then :
+
+else
+ HAVE_DECL_FDOPENDIR=0
+fi
+
+
+ if test $ac_cv_func_fdopendir = no; then
+ HAVE_FDOPENDIR=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fdopendir works" >&5
+$as_echo_n "checking whether fdopendir works... " >&6; }
+if ${gl_cv_func_fdopendir_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_fdopendir_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <dirent.h>
+#include <fcntl.h>
+#include <unistd.h>
+#if !HAVE_DECL_FDOPENDIR
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
+#endif
+
+int
+main ()
+{
+int result = 0;
+ int fd = open ("conftest.c", O_RDONLY);
+ if (fd < 0) result |= 1;
+ if (fdopendir (fd)) result |= 2;
+ if (close (fd)) result |= 4;
+ return result;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_fdopendir_works=yes
+else
+ gl_cv_func_fdopendir_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fdopendir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FDOPENDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FDOPENDIR 1" >>confdefs.h
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_FDOPENDIR 1
+_ACEOF
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_FDUTIMENSAT 1
+_ACEOF
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_blocks" "ac_cv_member_struct_stat_st_blocks" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_blocks" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLOCKS 1
+_ACEOF
+
+
+$as_echo "#define HAVE_ST_BLOCKS 1" >>confdefs.h
+
+else
+ :
+fi
+
+
+
+
+if test $ac_cv_member_struct_stat_st_blocks = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fileblocks.$ac_objext"
+
+
+
+ :
+
+fi
+
+
+
+
+
+
+ FLOAT_H=
+ REPLACE_FLOAT_LDBL=0
+ case "$host_os" in
+ aix* | beos* | openbsd* | mirbsd* | irix*)
+ FLOAT_H=float.h
+ ;;
+ freebsd*)
+ case "$host_cpu" in
+ i[34567]86 )
+ FLOAT_H=float.h
+ ;;
+ x86_64 )
+ # On x86_64 systems, the C compiler may still be generating
+ # 32-bit code.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+ yes
+ #endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+
+else
+ FLOAT_H=float.h
+fi
+rm -f conftest*
+
+ ;;
+ esac
+ ;;
+ linux*)
+ case "$host_cpu" in
+ powerpc*)
+ FLOAT_H=float.h
+ ;;
+ esac
+ ;;
+ esac
+ case "$host_os" in
+ aix* | freebsd* | linux*)
+ if test -n "$FLOAT_H"; then
+ REPLACE_FLOAT_LDBL=1
+ fi
+ ;;
+ esac
+
+ REPLACE_ITOLD=0
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether conversion from 'int' to 'long double' works" >&5
+$as_echo_n "checking whether conversion from 'int' to 'long double' works... " >&6; }
+if ${gl_cv_func_itold_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ case "$host" in
+ sparc*-*-linux*)
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined __LP64__ || defined __arch64__
+ yes
+ #endif
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "yes" >/dev/null 2>&1; then :
+ gl_cv_func_itold_works="guessing no"
+else
+ gl_cv_func_itold_works="guessing yes"
+fi
+rm -f conftest*
+
+ ;;
+ *) gl_cv_func_itold_works="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int i = -1;
+volatile long double ld;
+int main ()
+{
+ ld += i * 1.0L;
+ if (ld > 0)
+ return 1;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_itold_works=yes
+else
+ gl_cv_func_itold_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_itold_works" >&5
+$as_echo "$gl_cv_func_itold_works" >&6; }
+ case "$gl_cv_func_itold_works" in
+ *no)
+ REPLACE_ITOLD=1
+ FLOAT_H=float.h
+ ;;
+ esac
+
+ if test -n "$FLOAT_H"; then
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_float_h='<'float.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <float.h>" >&5
+$as_echo_n "checking absolute name of <float.h>... " >&6; }
+if ${gl_cv_next_float_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <float.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'float.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_float_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ fi
+
+ if test -n "$FLOAT_H"; then
+ GL_GENERATE_FLOAT_H_TRUE=
+ GL_GENERATE_FLOAT_H_FALSE='#'
+else
+ GL_GENERATE_FLOAT_H_TRUE='#'
+ GL_GENERATE_FLOAT_H_FALSE=
+fi
+
+
+
+if test $REPLACE_FLOAT_LDBL = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS float.$ac_objext"
+
+fi
+if test $REPLACE_ITOLD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS itold.$ac_objext"
+
+fi
+
+
+
+
+
+ FNMATCH_H=
+ 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:${as_lineno-$LINENO}: checking for working $gl_fnmatch_required fnmatch" >&5
+$as_echo_n "checking for working $gl_fnmatch_required fnmatch... " >&6; }
+if eval \${$gl_fnmatch_cache_var+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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;
+ }
+
+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 };
+ int result = 0;
+ if (!n ("a*", "", 0))
+ return 1;
+ if (!y ("a*", "abc", 0))
+ return 1;
+ if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
+ return 1;
+ if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
+ return 2;
+ if (!y ("a\\\\bc", "abc", 0))
+ return 3;
+ if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
+ return 3;
+ if (!y ("*x", ".x", 0))
+ return 4;
+ if (!n ("*x", ".x", FNM_PERIOD))
+ return 4;
+ if (!y (Apat, "\\\\", 0))
+ return 5;
+ if (!y (Apat, "A", 0))
+ return 5;
+ if (!y (apat, "\\\\", 0))
+ return 5;
+ if (!y (apat, "a", 0))
+ return 5;
+ if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, a01, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
+ return 5;
+ $gl_fnmatch_gnu_start
+ if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
+ result |= 8;
+ if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
+ result |= 16;
+ if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
+ result |= 32;
+ if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ $gl_fnmatch_gnu_end
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ eval "$gl_fnmatch_cache_var=yes"
+else
+ eval "$gl_fnmatch_cache_var=no"
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+eval ac_res=\$$gl_fnmatch_cache_var
+ { $as_echo "$as_me:${as_lineno-$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
+ fi
+
+ if test -n "$FNMATCH_H"; then
+ GL_GENERATE_FNMATCH_H_TRUE=
+ GL_GENERATE_FNMATCH_H_FALSE='#'
+else
+ GL_GENERATE_FNMATCH_H_TRUE='#'
+ GL_GENERATE_FNMATCH_H_FALSE=
+fi
+
+
+if test -n "$FNMATCH_H"; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
+_ACEOF
+
+
+ ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
+
+
+
+
+fi
+
+
+
+
+
+if test -n "$FNMATCH_H"; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext"
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch
+_ACEOF
+
+
+ ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
+
+
+
+
+fi
+
+
+
+ fp_headers='
+# include <stdio.h>
+# if HAVE_STDIO_EXT_H
+# include <stdio_ext.h>
+# endif
+'
+ ac_fn_c_check_decl "$LINENO" "__fpending" "ac_cv_have_decl___fpending" "$fp_headers
+"
+if test "x$ac_cv_have_decl___fpending" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL___FPENDING $ac_have_decl
+_ACEOF
+
+
+if test $ac_cv_func___fpending = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fpending.$ac_objext"
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${ac_cv_sys_pending_output_n_bytes+:} false; then :
+ $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' \
+ \
+ '# Minix' \
+ 'fp->_ptr - fp->_buf' \
+ \
+ '# 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main ()
+{
+FILE *fp = stdin; (void) ($ac_expr);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ fp_done=yes
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$fp_done" = yes && break
+ done
+
+ ac_cv_sys_pending_output_n_bytes=$ac_expr
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+_ACEOF
+
+
+fi
+
+
+
+ if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+ REPLACE_FSEEK=1
+ fi
+
+if test $REPLACE_FSEEK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fseek.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FSEEK=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FSEEK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fseeko" >&5
+$as_echo_n "checking for fseeko... " >&6; }
+if ${gl_cv_func_fseeko+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+int
+main ()
+{
+fseeko (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_func_fseeko=yes
+else
+ gl_cv_func_fseeko=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fseeko" >&5
+$as_echo "$gl_cv_func_fseeko" >&6; }
+
+
+ if test $ac_cv_have_decl_fseeko = no; then
+ HAVE_DECL_FSEEKO=0
+ fi
+
+ if test $gl_cv_func_fseeko = no; then
+ HAVE_FSEEKO=0
+ else
+ if test $gl_cv_var_stdin_large_offset = no; then
+ REPLACE_FSEEKO=1
+ fi
+
+ fi
+
+if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fseeko.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FSEEKO=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FSEEKO 1" >>confdefs.h
+
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_FSTAT=1
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0 \
+ && test "$gl_cv_func_open_directory_works" != yes; then
+ REPLACE_FSTAT=1
+ fi
+
+
+if test $REPLACE_FSTAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fstat.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_FSTAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FSTAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_fstatat = no; then
+ HAVE_FSTATAT=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether fstatat (..., 0) works" >&5
+$as_echo_n "checking whether fstatat (..., 0) works... " >&6; }
+if ${gl_cv_func_fstatat_zero_flag+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ aix*) gl_cv_func_fstatat_zero_flag="guessing no";;
+ *) gl_cv_func_fstatat_zero_flag="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ int
+ main (void)
+ {
+ struct stat a;
+ return fstatat (AT_FDCWD, ".", &a, 0) != 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_fstatat_zero_flag=yes
+else
+ gl_cv_func_fstatat_zero_flag=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_fstatat_zero_flag" >&5
+$as_echo "$gl_cv_func_fstatat_zero_flag" >&6; }
+
+ case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ *yes+yes) ;;
+ *) REPLACE_FSTATAT=1
+ case $gl_cv_func_fstatat_zero_flag in
+ *yes)
+
+$as_echo "#define HAVE_WORKING_FSTATAT_ZERO_FLAG 1" >>confdefs.h
+
+ ;;
+ esac
+ ;;
+ esac
+ fi
+
+if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS fstatat.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_FSTATAT 1
+_ACEOF
+
+
+
+
+
+
+ GNULIB_FSTATAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FSTATAT 1" >>confdefs.h
+
+
+
+
+
+
+
+ if test $ac_cv_func_futimens = no; then
+ HAVE_FUTIMENS=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether futimens works" >&5
+$as_echo_n "checking whether futimens works... " >&6; }
+if ${gl_cv_func_futimens_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_futimens_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <errno.h>
+
+int
+main ()
+{
+struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+ int fd = creat ("conftest.file", 0600);
+ struct stat st;
+ if (fd < 0) return 1;
+ errno = 0;
+ if (futimens (AT_FDCWD, NULL) == 0) return 2;
+ if (errno != EBADF) return 3;
+ if (futimens (fd, ts)) return 4;
+ sleep (1);
+ ts[0].tv_nsec = UTIME_NOW;
+ ts[1].tv_nsec = UTIME_OMIT;
+ if (futimens (fd, ts)) return 5;
+ if (fstat (fd, &st)) return 6;
+ if (st.st_ctime < st.st_atime) return 7;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __linux__
+/* The Linux kernel added futimens in 2.6.22, but has bugs with UTIME_OMIT
+ in several file systems as recently as 2.6.32. Always replace futimens
+ to support older kernels. */
+choke me
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_futimens_works=yes
+else
+ gl_cv_func_futimens_works="needs runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ gl_cv_func_futimens_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_futimens_works" >&5
+$as_echo "$gl_cv_func_futimens_works" >&6; }
+ if test "$gl_cv_func_futimens_works" != yes; then
+ REPLACE_FUTIMENS=1
+ fi
+ fi
+
+if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS futimens.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_FUTIMENS=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_FUTIMENS 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ gl_abort_bug=no
+ case "$host_os" in
+ mingw*)
+ gl_cv_func_getcwd_path_max=yes
+ ;;
+ *)
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether getcwd handles long file names properly" >&5
+$as_echo_n "checking whether getcwd handles long file names properly... " >&6; }
+if ${gl_cv_func_getcwd_path_max+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir3"
+ if test "$cross_compiling" = yes; then :
+ case "$host_os" in
+ aix*) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+ *) gl_cv_func_getcwd_path_max=no;;
+ esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else
+# include <direct.h>
+#endif
+#include <string.h>
+#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+
+
+#ifndef AT_FDCWD
+# define AT_FDCWD 0
+#endif
+#ifdef ENAMETOOLONG
+# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG)
+#else
+# define is_ENAMETOOLONG(x) 0
+#endif
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir. */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* The length of this name must be 8. */
+#define DIR_NAME "confdir3"
+#define DIR_NAME_LEN 8
+#define DIR_NAME_SIZE (DIR_NAME_LEN + 1)
+
+/* The length of "../". */
+#define DOTDOTSLASH_LEN 3
+
+/* Leftover bytes in the buffer, to work around library or OS bugs. */
+#define BUF_SLOP 20
+
+int
+main ()
+{
+#ifndef PATH_MAX
+ /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
+ at least not on a local file system. And if we were to start worrying
+ about remote file systems, we'd have to enable the wrapper function
+ all of the time, just to be safe. That's not worth the cost. */
+ exit (0);
+#elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
+ - DIR_NAME_SIZE - BUF_SLOP) \
+ <= PATH_MAX)
+ /* FIXME: Assuming there's a system for which this is true,
+ this should be done in a compile test. */
+ exit (0);
+#else
+ char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1)
+ + DIR_NAME_SIZE + BUF_SLOP];
+ char *cwd = getcwd (buf, PATH_MAX);
+ size_t initial_cwd_len;
+ size_t cwd_len;
+ int fail = 0;
+ size_t n_chdirs = 0;
+
+ if (cwd == NULL)
+ exit (10);
+
+ cwd_len = initial_cwd_len = strlen (cwd);
+
+ while (1)
+ {
+ size_t dotdot_max = PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN);
+ char *c = NULL;
+
+ 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. */
+ if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
+ {
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ fail = 20;
+ break;
+ }
+
+ if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE)
+ {
+ c = getcwd (buf, PATH_MAX);
+ if (!c && errno == ENOENT)
+ {
+ fail = 11;
+ break;
+ }
+ if (c)
+ {
+ fail = 31;
+ break;
+ }
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ {
+ fail = 21;
+ 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 = 22;
+ break;
+ }
+ if (AT_FDCWD || errno == ERANGE || errno == ENOENT)
+ {
+ fail = 12;
+ break;
+ }
+ }
+ }
+
+ if (c && strlen (c) != cwd_len)
+ {
+ fail = 23;
+ break;
+ }
+ ++n_chdirs;
+ }
+
+ /* Leaving behind such a deep directory is not polite.
+ So clean up here, right away, even though the driving
+ shell script would also clean up. */
+ {
+ size_t i;
+
+ /* Try rmdir first, in case the chdir failed. */
+ rmdir (DIR_NAME);
+ for (i = 0; i <= n_chdirs; i++)
+ {
+ if (chdir ("..") < 0)
+ break;
+ if (rmdir (DIR_NAME) != 0)
+ break;
+ }
+ }
+
+ exit (fail);
+#endif
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getcwd_path_max=yes
+else
+ case $? in
+ 10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
+ 31) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+ *) gl_cv_func_getcwd_path_max=no;;
+ esac
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getcwd_path_max" >&5
+$as_echo "$gl_cv_func_getcwd_path_max" >&6; }
+
+ case "$gl_cv_func_getcwd_null" in
+ *yes)
+
+
+
+
+ for ac_func in getpagesize
+do :
+ ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_GETPAGESIZE 1
+_ACEOF
+
+fi
+done
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_getcwd_abort_bug+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ # Remove any remnants of a previous test.
+ rm -rf confdir-14B---
+ # Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir-14B---"
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_getcwd_abort_bug=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <direct.h>
+#endif
+#include <string.h>
+#include <sys/stat.h>
+
+
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir. */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* FIXME: skip the run-test altogether on systems without getpagesize. */
+#if ! HAVE_GETPAGESIZE
+# define getpagesize() 0
+#endif
+
+/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than
+ the 16kB pagesize on ia64 linux. Those conditions make the code below
+ trigger a bug in glibc's getcwd implementation before 2.4.90-10. */
+#define TARGET_LEN (5 * 1024)
+
+int
+main ()
+{
+ char const *dir_name = "confdir-14B---";
+ char *cwd;
+ size_t initial_cwd_len;
+ int fail = 0;
+ size_t desired_depth;
+ size_t d;
+
+ /* The bug is triggered when PATH_MAX < getpagesize (), so skip
+ this relatively expensive and invasive test if that's not true. */
+ if (getpagesize () <= PATH_MAX)
+ return 0;
+
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ return 2;
+
+ initial_cwd_len = strlen (cwd);
+ free (cwd);
+ desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
+ / (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;
+ }
+ }
+
+ /* If libc has the bug in question, this invocation of getcwd
+ results in a failed assertion. */
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ fail = 4; /* getcwd failed: it refuses to return a string longer
+ than PATH_MAX. */
+ free (cwd);
+
+ /* Call rmdir first, in case the above chdir failed. */
+ rmdir (dir_name);
+ while (0 < d--)
+ {
+ if (chdir ("..") < 0)
+ {
+ fail = 5;
+ break;
+ }
+ rmdir (dir_name);
+ }
+
+ return fail;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_getcwd_abort_bug=no
+else
+ ret=$?
+ if test $ret -ge 128 || test $ret = 4; then
+ gl_cv_func_getcwd_abort_bug=yes
+ else
+ gl_cv_func_getcwd_abort_bug=no
+ fi
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_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
+
+ ;;
+ esac
+ ;;
+ esac
+ case "$gl_cv_func_getcwd_path_max" in
+ "no, it has the AIX bug") ;;
+ *)
+
+$as_echo "#define HAVE_MINIMALLY_WORKING_GETCWD 1" >>confdefs.h
+
+ ;;
+ esac
+ case "$gl_cv_func_getcwd_path_max" in
+ "no, but it is partly working")
+
+$as_echo "#define HAVE_PARTLY_WORKING_GETCWD 1" >>confdefs.h
+
+ ;;
+ esac
+
+ if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \
+ || test $gl_cv_func_getcwd_posix_signature != yes \
+ || test "$gl_cv_func_getcwd_path_max" != yes \
+ || test $gl_abort_bug = yes; then
+ REPLACE_GETCWD=1
+ fi
+
+if test $REPLACE_GETCWD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getcwd.$ac_objext"
+
+
+
+
+ :
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_GETCWD 1
+_ACEOF
+
+
+
+
+
+
+
+ GNULIB_GETCWD=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in
+ *yes,yes) ;;
+ *)
+ REPLACE_GETCWD=1
+ ;;
+ esac
+
+if test $REPLACE_GETCWD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getcwd-lgpl.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_GETCWD=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GETCWD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_getdelim = yes; then
+ HAVE_GETDELIM=1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getdelim function" >&5
+$as_echo_n "checking for working getdelim function... " >&6; }
+if ${gl_cv_func_working_getdelim+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+#endif
+
+_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*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 2;
+ }
+ {
+ /* 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 3;
+ }
+ return 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_getdelim=yes
+else
+ gl_cv_func_working_getdelim=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_getdelim" >&5
+$as_echo "$gl_cv_func_working_getdelim" >&6; }
+ if test $gl_cv_func_working_getdelim = no; then
+ REPLACE_GETDELIM=1
+ fi
+ else
+ HAVE_GETDELIM=0
+ fi
+
+ if test $ac_cv_have_decl_getdelim = no; then
+ HAVE_DECL_GETDELIM=0
+ fi
+
+if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getdelim.$ac_objext"
+
+
+ for ac_func in flockfile funlockfile
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+ ac_fn_c_check_decl "$LINENO" "getc_unlocked" "ac_cv_have_decl_getc_unlocked" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getc_unlocked" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETC_UNLOCKED $ac_have_decl
+_ACEOF
+
+
+fi
+
+
+
+
+
+ GNULIB_GETDELIM=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GETDELIM 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_getdtablesize != yes; then
+ HAVE_GETDTABLESIZE=0
+ fi
+
+if test $HAVE_GETDTABLESIZE = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getdtablesize.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_GETDTABLESIZE=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GETDTABLESIZE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+ gl_getline_needs_run_time_check=no
+ ac_fn_c_check_func "$LINENO" "getline" "ac_cv_func_getline"
+if test "x$ac_cv_func_getline" = xyes; 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working getline function" >&5
+$as_echo_n "checking for working getline function... " >&6; }
+if ${am_cv_func_working_getline+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ >= 2) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Lucky GNU user" >/dev/null 2>&1; then :
+ am_cv_func_working_getline=yes
+else
+ am_cv_func_working_getline=no
+fi
+rm -f conftest*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 = getline (&line, &siz, in);
+ if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
+ return 2;
+ }
+ {
+ /* 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 3;
+ }
+ return 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ am_cv_func_working_getline=yes
+else
+ am_cv_func_working_getline=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_working_getline" >&5
+$as_echo "$am_cv_func_working_getline" >&6; }
+ fi
+
+ if test $ac_cv_have_decl_getline = no; then
+ HAVE_DECL_GETLINE=0
+ fi
+
+ if test $am_cv_func_working_getline = no; then
+ REPLACE_GETLINE=1
+ fi
+
+if test $REPLACE_GETLINE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getline.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_GETLINE=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GETLINE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+if test $REPLACE_GETOPT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
+
+
+
+
+ GNULIB_GL_UNISTD_H_GETOPT=1
+fi
+
+
+
+$as_echo "#define GNULIB_TEST_GETOPT_GNU 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test -n "$gl_replace_getopt"; then :
+
+fi
+
+ REPLACE_GETOPT=1
+
+ if test $REPLACE_GETOPT = 1; then
+
+ GETOPT_H=getopt.h
+
+$as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h
+
+
+
+ fi
+
+if test $REPLACE_GETOPT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getopt1.$ac_objext"
+
+
+
+
+ GNULIB_GL_UNISTD_H_GETOPT=1
+fi
+
+
+
+
+ for ac_func in getpagesize
+do :
+ ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_GETPAGESIZE 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_getpagesize = no; then
+ HAVE_GETPAGESIZE=0
+ for ac_header in OS.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "OS.h" "ac_cv_header_OS_h" "$ac_includes_default"
+if test "x$ac_cv_header_OS_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_OS_H 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_OS_h = yes; then
+ HAVE_OS_H=1
+ fi
+ for ac_header in sys/param.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_param_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_PARAM_H 1
+_ACEOF
+
+fi
+
+done
+
+ if test $ac_cv_header_sys_param_h = yes; then
+ HAVE_SYS_PARAM_H=1
+ fi
+ fi
+ case "$host_os" in
+ mingw*)
+ REPLACE_GETPAGESIZE=1
+ ;;
+ esac
+ ac_fn_c_check_decl "$LINENO" "getpagesize" "ac_cv_have_decl_getpagesize" "$ac_includes_default"
+if test "x$ac_cv_have_decl_getpagesize" = xyes; then :
+
+else
+ HAVE_DECL_GETPAGESIZE=0
+fi
+
+
+if test $REPLACE_GETPAGESIZE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS getpagesize.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_GETPAGESIZE=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GETPAGESIZE 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ gl_gettimeofday_timezone=void
+ if test $ac_cv_func_gettimeofday != yes; then
+ HAVE_GETTIMEOFDAY=0
+ else
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gettimeofday clobbers localtime buffer" >&5
+$as_echo_n "checking whether gettimeofday clobbers localtime buffer... " >&6; }
+if ${gl_cv_func_gettimeofday_clobber+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_gettimeofday_clobber=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.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;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_gettimeofday_clobber=no
+else
+ gl_cv_func_gettimeofday_clobber=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_gettimeofday_clobber" >&5
+$as_echo "$gl_cv_func_gettimeofday_clobber" >&6; }
+
+ if test $gl_cv_func_gettimeofday_clobber = yes; then
+ REPLACE_GETTIMEOFDAY=1
+
+
+$as_echo "#define gmtime rpl_gmtime" >>confdefs.h
+
+
+$as_echo "#define localtime rpl_localtime" >>confdefs.h
+
+
+
+$as_echo "#define GETTIMEOFDAY_CLOBBERS_LOCALTIME 1" >>confdefs.h
+
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gettimeofday with POSIX signature" >&5
+$as_echo_n "checking for gettimeofday with POSIX signature... " >&6; }
+if ${gl_cv_func_gettimeofday_posix_signature+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_gettimeofday_posix_signature=yes
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/time.h>
+int gettimeofday (struct timeval *restrict, struct timezone *restrict);
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_gettimeofday_posix_signature=almost
+else
+ gl_cv_func_gettimeofday_posix_signature=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+
+ fi
+
+cat >>confdefs.h <<_ACEOF
+#define GETTIMEOFDAY_TIMEZONE $gl_gettimeofday_timezone
+_ACEOF
+
+
+if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS gettimeofday.$ac_objext"
+
+
+ for ac_header in sys/timeb.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/timeb.h" "ac_cv_header_sys_timeb_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_timeb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_TIMEB_H 1
+_ACEOF
+
+fi
+
+done
+
+ for ac_func in _ftime
+do :
+ ac_fn_c_check_func "$LINENO" "_ftime" "ac_cv_func__ftime"
+if test "x$ac_cv_func__ftime" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE__FTIME 1
+_ACEOF
+
+fi
+done
+
+
+fi
+
+
+
+
+
+ GNULIB_GETTIMEOFDAY=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_GETTIMEOFDAY 1" >>confdefs.h
+
+
+
+
+ :
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler generally respects inline" >&5
+$as_echo_n "checking whether the compiler generally respects inline... " >&6; }
+if ${gl_cv_c_inline_effective+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test $ac_cv_c_inline = no; then
+ gl_cv_c_inline_effective=no
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main ()
+{
+#ifdef __NO_INLINE__
+ #error "inline is not effective"
+ #endif
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_c_inline_effective=yes
+else
+ gl_cv_c_inline_effective=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define HAVE_INLINE 1" >>confdefs.h
+
+ fi
+
+
+
+
+ :
+
+ :
+ :
+ :
+ :
+
+
+
+
+
+
+ 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdint.h>
+ extern intptr_t foo;
+ extern $gltype1 foo;
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ PRIPTR_PREFIX='"'$glpfx'"'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test -n "$PRIPTR_PREFIX" && break
+ done
+ fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether INT32_MAX < INTMAX_MAX" >&5
+$as_echo_n "checking whether INT32_MAX < INTMAX_MAX... " >&6; }
+if ${gl_cv_test_INT32_MAX_LT_INTMAX_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_INT32_MAX_LT_INTMAX_MAX=yes
+else
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking whether INT64_MAX == LONG_MAX" >&5
+$as_echo_n "checking whether INT64_MAX == LONG_MAX... " >&6; }
+if ${gl_cv_test_INT64_MAX_EQ_LONG_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_INT64_MAX_EQ_LONG_MAX=yes
+else
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking whether UINT32_MAX < UINTMAX_MAX" >&5
+$as_echo_n "checking whether UINT32_MAX < UINTMAX_MAX... " >&6; }
+if ${gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_UINT32_MAX_LT_UINTMAX_MAX=yes
+else
+ 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:${as_lineno-$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:${as_lineno-$LINENO}: checking whether UINT64_MAX == ULONG_MAX" >&5
+$as_echo_n "checking whether UINT64_MAX == ULONG_MAX... " >&6; }
+if ${gl_cv_test_UINT64_MAX_EQ_ULONG_MAX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_test_UINT64_MAX_EQ_ULONG_MAX=yes
+else
+ 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:${as_lineno-$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
+
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "iswblank" "ac_cv_have_decl_iswblank" "
+/* 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 <wctype.h>
+
+"
+if test "x$ac_cv_have_decl_iswblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISWBLANK $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_func_iswblank = no; then
+ HAVE_ISWBLANK=0
+ if test $ac_cv_have_decl_iswblank = yes; then
+ REPLACE_ISWBLANK=1
+ fi
+ fi
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+ else
+ if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+ :
+ fi
+ fi
+
+
+if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+else
+ if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS iswblank.$ac_objext"
+
+ fi
+fi
+
+
+
+
+
+ GNULIB_ISWBLANK=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_ISWBLANK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_langinfo_h='<'langinfo.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <langinfo.h>" >&5
+$as_echo_n "checking absolute name of <langinfo.h>... " >&6; }
+if ${gl_cv_next_langinfo_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_langinfo_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'langinfo.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_langinfo_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_langinfo_h='<'langinfo.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 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
+
+
+
+
+
+ HAVE_LANGINFO_CODESET=0
+ HAVE_LANGINFO_T_FMT_AMPM=0
+ HAVE_LANGINFO_ERA=0
+ HAVE_LANGINFO_YESEXPR=0
+
+ if test $ac_cv_header_langinfo_h = yes; then
+ HAVE_LANGINFO_H=1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5
+$as_echo_n "checking whether langinfo.h defines CODESET... " >&6; }
+if ${gl_cv_header_langinfo_codeset+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = CODESET;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_codeset=yes
+else
+ gl_cv_header_langinfo_codeset=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines T_FMT_AMPM" >&5
+$as_echo_n "checking whether langinfo.h defines T_FMT_AMPM... " >&6; }
+if ${gl_cv_header_langinfo_t_fmt_ampm+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = T_FMT_AMPM;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_t_fmt_ampm=yes
+else
+ gl_cv_header_langinfo_t_fmt_ampm=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_t_fmt_ampm" >&5
+$as_echo "$gl_cv_header_langinfo_t_fmt_ampm" >&6; }
+ if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
+ HAVE_LANGINFO_T_FMT_AMPM=1
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines ERA" >&5
+$as_echo_n "checking whether langinfo.h defines ERA... " >&6; }
+if ${gl_cv_header_langinfo_era+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = ERA;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_era=yes
+else
+ gl_cv_header_langinfo_era=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether langinfo.h defines YESEXPR" >&5
+$as_echo_n "checking whether langinfo.h defines YESEXPR... " >&6; }
+if ${gl_cv_header_langinfo_yesexpr+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int a = YESEXPR;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_langinfo_yesexpr=yes
+else
+ gl_cv_header_langinfo_yesexpr=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_langinfo_yesexpr" >&5
+$as_echo "$gl_cv_header_langinfo_yesexpr" >&6; }
+ if test $gl_cv_header_langinfo_yesexpr = yes; then
+ HAVE_LANGINFO_YESEXPR=1
+ fi
+ else
+ HAVE_LANGINFO_H=0
+ fi
+
+
+
+
+
+
+
+ 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+ for ac_func in lchown
+do :
+ ac_fn_c_check_func "$LINENO" "lchown" "ac_cv_func_lchown"
+if test "x$ac_cv_func_lchown" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LCHOWN 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_lchown = no; then
+ HAVE_LCHOWN=0
+ elif test "$gl_cv_func_chown_slash_works" != yes \
+ || test "$gl_cv_func_chown_ctime_works" != yes; then
+ REPLACE_LCHOWN=1
+ fi
+
+if test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS lchown.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LCHOWN=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_LCHOWN 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_link = no; then
+ HAVE_LINK=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link obeys POSIX" >&5
+$as_echo_n "checking whether link obeys POSIX... " >&6; }
+if ${gl_cv_func_link_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ touch conftest.a
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.a conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_link_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ if (!link ("conftest.a", "conftest.b/"))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!link ("conftest.lnk/", "conftest.b"))
+ result |= 2;
+ if (rename ("conftest.a", "conftest.b"))
+ result |= 4;
+ if (!link ("conftest.b", "conftest.lnk"))
+ result |= 8;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_link_works=yes
+else
+ gl_cv_func_link_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.a conftest.b conftest.lnk
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_link_works" >&5
+$as_echo "$gl_cv_func_link_works" >&6; }
+ if test "$gl_cv_func_link_works" != yes; then
+ REPLACE_LINK=1
+ fi
+ fi
+
+if test $HAVE_LINK = 0 || test $REPLACE_LINK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS link.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LINK=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_LINK 1" >>confdefs.h
+
+
+
+
+ gl_link_follows_symlinks=0 # assume GNU behavior
+ if test $ac_cv_func_readlink = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __xpg4" >&5
+$as_echo_n "checking for __xpg4... " >&6; }
+if ${gl_cv_have___xpg4+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+extern int __xpg4;
+int
+main ()
+{
+return __xpg4;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_have___xpg4=yes
+else
+ gl_cv_have___xpg4=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_have___xpg4" >&5
+$as_echo "$gl_cv_have___xpg4" >&6; }
+ if test $gl_cv_have___xpg4 = yes; then
+ gl_link_follows_symlinks=-1
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether link(2) dereferences a symlink" >&5
+$as_echo_n "checking whether link(2) dereferences a symlink... " >&6; }
+if ${gl_cv_func_link_follows_symlink+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ # Create a regular file.
+ echo > conftest.file
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_link_follows_symlink=unknown
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <sys/types.h>
+# include <sys/stat.h>
+# include <unistd.h>
+# include <stdlib.h>
+
+# define SAME_INODE(Stat_buf_1, Stat_buf_2) \
+ ((Stat_buf_1).st_ino == (Stat_buf_2).st_ino \
+ && (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)
+
+ int
+ main ()
+ {
+ const char *file = "conftest.file";
+ const char *sym = "conftest.sym";
+ const char *hard = "conftest.hard";
+ struct stat sb_file, sb_hard;
+
+ /* Create a symlink to the regular file. */
+ if (symlink (file, sym))
+ return 2;
+
+ /* Create a hard link to that symlink. */
+ if (link (sym, hard))
+ return 3;
+
+ if (lstat (hard, &sb_hard))
+ return 4;
+ if (lstat (file, &sb_file))
+ return 5;
+
+ /* If the dev/inode of hard and file are the same, then
+ the link call followed the symlink. */
+ return SAME_INODE (sb_hard, sb_file) ? 1 : 0;
+ }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_link_follows_symlink=no
+else
+ gl_cv_func_link_follows_symlink=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file conftest.sym conftest.hard
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_link_follows_symlink" >&5
+$as_echo "$gl_cv_func_link_follows_symlink" >&6; }
+ case $gl_cv_func_link_follows_symlink in
+ yes) gl_link_follows_symlinks=1 ;;
+ no) ;; # already defaulted to 0
+ *) gl_link_follows_symlinks=-2 ;;
+ esac
+ fi
+ fi
+
+cat >>confdefs.h <<_ACEOF
+#define LINK_FOLLOWS_SYMLINKS $gl_link_follows_symlinks
+_ACEOF
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_linkat = no; then
+ HAVE_LINKAT=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linkat(,AT_SYMLINK_FOLLOW) works" >&5
+$as_echo_n "checking whether linkat(,AT_SYMLINK_FOLLOW) works... " >&6; }
+if ${gl_cv_func_linkat_follow+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f1 conftest.f2
+ touch conftest.f1
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <unistd.h>
+#ifdef __linux__
+/* Linux added linkat in 2.6.16, but did not add AT_SYMLINK_FOLLOW
+ until 2.6.18. Always replace linkat to support older kernels. */
+choke me
+#endif
+
+int
+main ()
+{
+return linkat (AT_FDCWD, "conftest.f1", AT_FDCWD, "conftest.f2",
+ AT_SYMLINK_FOLLOW);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_linkat_follow=yes
+else
+ gl_cv_func_linkat_follow="need runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ rm -rf conftest.f1 conftest.f2
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_linkat_follow" >&5
+$as_echo "$gl_cv_func_linkat_follow" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether linkat handles trailing slash correctly" >&5
+$as_echo_n "checking whether linkat handles trailing slash correctly... " >&6; }
+if ${gl_cv_func_linkat_slash+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.a conftest.b conftest.c conftest.d
+ if test "$cross_compiling" = yes; then :
+ # Guess yes on glibc systems, no otherwise.
+ case "$host_os" in
+ *-gnu*) gl_cv_func_linkat_slash="guessing yes";;
+ *) gl_cv_func_linkat_slash="guessing no";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <stdio.h>
+
+int
+main ()
+{
+int result;
+ int fd;
+ /* Create a regular file. */
+ fd = open ("conftest.a", O_CREAT | O_EXCL | O_WRONLY, 0600);
+ if (fd < 0)
+ return 1;
+ if (write (fd, "hello", 5) < 5)
+ return 2;
+ if (close (fd) < 0)
+ return 3;
+ /* Test whether hard links are supported on the current
+ device. */
+ if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.b",
+ AT_SYMLINK_FOLLOW) < 0)
+ return 0;
+ result = 0;
+ /* Test whether a trailing "/" is treated like "/.". */
+ if (linkat (AT_FDCWD, "conftest.a/", AT_FDCWD, "conftest.c",
+ AT_SYMLINK_FOLLOW) == 0)
+ result |= 4;
+ if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.d/",
+ AT_SYMLINK_FOLLOW) == 0)
+ result |= 8;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_linkat_slash=yes
+else
+ gl_cv_func_linkat_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.a conftest.b conftest.c conftest.d
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_linkat_slash" >&5
+$as_echo "$gl_cv_func_linkat_slash" >&6; }
+ case "$gl_cv_func_linkat_slash" in
+ *yes) gl_linkat_slash_bug=0 ;;
+ *) gl_linkat_slash_bug=1 ;;
+ esac
+ if test "$gl_cv_func_linkat_follow" != yes \
+ || test $gl_linkat_slash_bug = 1; then
+ REPLACE_LINKAT=1
+
+cat >>confdefs.h <<_ACEOF
+#define LINKAT_TRAILING_SLASH_BUG $gl_linkat_slash_bug
+_ACEOF
+
+ fi
+ fi
+
+if test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS linkat.$ac_objext"
+
+fi
+if test $HAVE_LINKAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LINKAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_LINKAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether lseek detects pipes" >&5
+$as_echo_n "checking whether lseek detects pipes... " >&6; }
+if ${gl_cv_func_lseek_pipe+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test $cross_compiling = no; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/types.h> /* for off_t */
+#include <stdio.h> /* for SEEK_CUR */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <io.h>
+#endif
+
+int
+main ()
+{
+
+ /* Exit with success only if stdin is seekable. */
+ return lseek (0, (off_t)0, SEEK_CUR) < 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ 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
+else
+ gl_cv_func_lseek_pipe=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) || defined __BEOS__
+/* mingw and BeOS mistakenly return 0 when trying to seek on pipes. */
+ Choke me.
+#endif
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_lseek_pipe=yes
+else
+ gl_cv_func_lseek_pipe=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_LSEEK=1
+
+$as_echo "#define LSEEK_PIPE_BROKEN 1" >>confdefs.h
+
+ fi
+
+if test $REPLACE_LSEEK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS lseek.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_LSEEK=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_LSEEK 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_lstat = yes; then
+
+ if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then
+ REPLACE_LSTAT=1
+ fi
+ else
+ HAVE_LSTAT=0
+ fi
+
+if test $REPLACE_LSTAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS lstat.$ac_objext"
+
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_LSTAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_LSTAT 1" >>confdefs.h
+
+
+
+
+
+ for ac_header in stdlib.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STDLIB_H 1
+_ACEOF
+
+fi
+
+done
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
+$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
+if ${ac_cv_func_malloc_0_nonnull+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ ac_cv_func_malloc_0_nonnull=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined STDC_HEADERS || defined HAVE_STDLIB_H
+# include <stdlib.h>
+#else
+char *malloc ();
+#endif
+
+int
+main ()
+{
+return ! malloc (0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_malloc_0_nonnull=yes
+else
+ ac_cv_func_malloc_0_nonnull=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $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 :
+
+$as_echo "#define HAVE_MALLOC_GNU 1" >>confdefs.h
+
+else
+ $as_echo "#define HAVE_MALLOC_GNU 0" >>confdefs.h
+
+ REPLACE_MALLOC=1
+
+fi
+
+
+if test $REPLACE_MALLOC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_MALLOC_GNU 1
+_ACEOF
+
+
+
+
+
+ if test $gl_cv_func_malloc_posix = yes; then
+
+$as_echo "#define HAVE_MALLOC_POSIX 1" >>confdefs.h
+
+ else
+ REPLACE_MALLOC=1
+ fi
+
+if test $REPLACE_MALLOC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS malloc.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MALLOC_POSIX=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MALLOC_POSIX 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_mbrtowc = no; then
+ HAVE_MBRTOWC=0
+ ac_fn_c_check_decl "$LINENO" "mbrtowc" "ac_cv_have_decl_mbrtowc" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_mbrtowc" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MBRTOWC $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_mbrtowc = yes; then
+ REPLACE_MBRTOWC=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBRTOWC=1
+ else
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL pwc argument" >&5
+$as_echo_n "checking whether mbrtowc handles a NULL pwc argument... " >&6; }
+if ${gl_cv_func_mbrtowc_null_arg1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on Solaris.
+ solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
+ esac
+ if test $LOCALE_FR_UTF8 != none; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+
+ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ {
+ char input[] = "\303\237er";
+ mbstate_t state;
+ wchar_t wc;
+ size_t ret;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input, 5, &state);
+ if (ret != 2)
+ result |= 1;
+ if (!mbsinit (&state))
+ result |= 2;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ ret = mbrtowc (NULL, input, 5, &state);
+ if (ret != 2) /* Solaris 7 fails here: ret is -1. */
+ result |= 4;
+ if (!mbsinit (&state))
+ result |= 8;
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_null_arg1=yes
+else
+ gl_cv_func_mbrtowc_null_arg1=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg1" >&5
+$as_echo "$gl_cv_func_mbrtowc_null_arg1" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles a NULL string argument" >&5
+$as_echo_n "checking whether mbrtowc handles a NULL string argument... " >&6; }
+if ${gl_cv_func_mbrtowc_null_arg2+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on OSF/1.
+ osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
+ esac
+ if test $LOCALE_FR_UTF8 != none; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_null_arg2=yes
+else
+ gl_cv_func_mbrtowc_null_arg2=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_null_arg2" >&5
+$as_echo "$gl_cv_func_mbrtowc_null_arg2" >&6; }
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc has a correct return value" >&5
+$as_echo_n "checking whether mbrtowc has a correct return value... " >&6; }
+if ${gl_cv_func_mbrtowc_retval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on HP-UX, Solaris, native Windows.
+ hpux* | solaris* | mingw*) 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 \
+ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then
+ if test "$cross_compiling" = yes; then :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ int found_some_locale = 0;
+ /* 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)
+ result |= 1;
+ }
+ found_some_locale = 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)
+ result |= 2;
+ }
+ found_some_locale = 1;
+ }
+ /* This fails on native Windows. */
+ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
+ {
+ char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 4;
+ }
+ found_some_locale = 1;
+ }
+ if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
+ {
+ char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 8;
+ }
+ found_some_locale = 1;
+ }
+ if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
+ {
+ char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 16;
+ }
+ found_some_locale = 1;
+ }
+ return (found_some_locale ? result : 77);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_retval=yes
+else
+ if test $? != 77; then
+ gl_cv_func_mbrtowc_retval=no
+ fi
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_retval" >&5
+$as_echo "$gl_cv_func_mbrtowc_retval" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_mbrtowc_nul_retval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ /* 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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_nul_retval=yes
+else
+ gl_cv_func_mbrtowc_nul_retval=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_nul_retval" >&5
+$as_echo "$gl_cv_func_mbrtowc_nul_retval" >&6; }
+
+ case "$gl_cv_func_mbrtowc_null_arg1" in
+ *yes) ;;
+ *)
+$as_echo "#define MBRTOWC_NULL_ARG1_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_null_arg2" in
+ *yes) ;;
+ *)
+$as_echo "#define MBRTOWC_NULL_ARG2_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_retval" in
+ *yes) ;;
+ *)
+$as_echo "#define MBRTOWC_RETVAL_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_nul_retval" in
+ *yes) ;;
+ *)
+$as_echo "#define MBRTOWC_NUL_RETVAL_BUG 1" >>confdefs.h
+
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBRTOWC=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MBRTOWC 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ GNULIB_MBSCASECMP=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MBSCASECMP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_mbsinit = no; then
+ HAVE_MBSINIT=0
+ ac_fn_c_check_decl "$LINENO" "mbsinit" "ac_cv_have_decl_mbsinit" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_mbsinit" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MBSINIT $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_mbsinit = yes; then
+ REPLACE_MBSINIT=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBSINIT=1
+ else
+ case "$host_os" in
+ mingw*) REPLACE_MBSINIT=1 ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbsinit.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBSINIT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MBSINIT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_mbsrtowcs = no; then
+ HAVE_MBSRTOWCS=0
+ ac_fn_c_check_decl "$LINENO" "mbsrtowcs" "ac_cv_have_decl_mbsrtowcs" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_mbsrtowcs" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_MBSRTOWCS $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_mbsrtowcs = yes; then
+ REPLACE_MBSRTOWCS=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBSRTOWCS=1
+ else
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbsrtowcs works" >&5
+$as_echo_n "checking whether mbsrtowcs works... " >&6; }
+if ${gl_cv_func_mbsrtowcs_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on HP-UX, Solaris, mingw.
+ hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbsrtowcs_works="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 :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ /* Test whether the function supports a NULL destination argument.
+ This fails on native Windows. */
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ const char input[] = "\337er";
+ const char *src = input;
+ mbstate_t state;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbsrtowcs (NULL, &src, 1, &state) != 3
+ || src != input)
+ result |= 1;
+ }
+ /* 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)
+ result |= 2;
+ }
+ }
+ 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)
+ result |= 4;
+ }
+ }
+ 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)
+ result |= 8;
+ }
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbsrtowcs_works=yes
+else
+ gl_cv_func_mbsrtowcs_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbsrtowcs_works" >&5
+$as_echo "$gl_cv_func_mbsrtowcs_works" >&6; }
+
+ case "$gl_cv_func_mbsrtowcs_works" in
+ *yes) ;;
+ *) REPLACE_MBSRTOWCS=1 ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbsrtowcs-state.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBSRTOWCS=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MBSRTOWCS 1" >>confdefs.h
+
+
+
+
+
+
+ if false; then
+ REPLACE_MBTOWC=1
+ fi
+
+if test $REPLACE_MBTOWC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mbtowc.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MBTOWC=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MBTOWC 1" >>confdefs.h
+
+
+
+
+
+
+ :
+
+
+if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS memchr.$ac_objext"
+
+
+ for ac_header in bp-sym.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "bp-sym.h" "ac_cv_header_bp_sym_h" "$ac_includes_default"
+if test "x$ac_cv_header_bp_sym_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_BP_SYM_H 1
+_ACEOF
+
+fi
+
+done
+
+
+fi
+
+
+
+
+
+ GNULIB_MEMCHR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MEMCHR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ for ac_func in mempcpy
+do :
+ ac_fn_c_check_func "$LINENO" "mempcpy" "ac_cv_func_mempcpy"
+if test "x$ac_cv_func_mempcpy" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_MEMPCPY 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_mempcpy = no; then
+ HAVE_MEMPCPY=0
+ fi
+
+if test $HAVE_MEMPCPY = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mempcpy.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MEMPCPY=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MEMPCPY 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_memrchr = no; then
+ HAVE_DECL_MEMRCHR=0
+ fi
+
+ for ac_func in memrchr
+do :
+ ac_fn_c_check_func "$LINENO" "memrchr" "ac_cv_func_memrchr"
+if test "x$ac_cv_func_memrchr" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_MEMRCHR 1
+_ACEOF
+
+fi
+done
+
+
+if test $ac_cv_func_memrchr = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS memrchr.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_MEMRCHR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MEMRCHR 1" >>confdefs.h
+
+
+
+
+
+ for ac_func in mkdtemp
+do :
+ ac_fn_c_check_func "$LINENO" "mkdtemp" "ac_cv_func_mkdtemp"
+if test "x$ac_cv_func_mkdtemp" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_MKDTEMP 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_mkdtemp = no; then
+ HAVE_MKDTEMP=0
+ fi
+
+if test $HAVE_MKDTEMP = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mkdtemp.$ac_objext"
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_MKDTEMP=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MKDTEMP 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_mkfifo = no; then
+ HAVE_MKFIFO=0
+ else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mkfifo rejects trailing slashes" >&5
+$as_echo_n "checking whether mkfifo rejects trailing slashes... " >&6; }
+if ${gl_cv_func_mkfifo_works+:} false; then :
+ $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
+ ln -s conftest.tmp conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_mkfifo_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+int result = 0;
+ if (!mkfifo ("conftest.tmp/", 0600))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!mkfifo ("conftest.lnk/", 0600))
+ result |= 2;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mkfifo_works=yes
+else
+ gl_cv_func_mkfifo_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.tmp conftest.lnk
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mkfifo_works" >&5
+$as_echo "$gl_cv_func_mkfifo_works" >&6; }
+ if test "$gl_cv_func_mkfifo_works" != yes; then
+
+$as_echo "#define MKFIFO_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_MKFIFO=1
+ fi
+ fi
+
+if test $HAVE_MKFIFO = 0 || test $REPLACE_MKFIFO = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mkfifo.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MKFIFO=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MKFIFO 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mkfifoat = no; then
+ # No known system has mkfifoat but not mknodat
+ HAVE_MKFIFOAT=0
+ HAVE_MKNODAT=0
+ fi
+
+if test $HAVE_MKFIFOAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mkfifoat.$ac_objext"
+
+fi
+if test $HAVE_MKNODAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mknodat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MKFIFOAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MKFIFOAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ GNULIB_MKNODAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MKNODAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_mknod = no; then
+ HAVE_MKNOD=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mknod can create fifo without root privileges" >&5
+$as_echo_n "checking whether mknod can create fifo without root privileges... " >&6; }
+if ${gl_cv_func_mknod_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_mknod_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+ #include <unistd.h>
+
+int
+main ()
+{
+/* Indeterminate for super-user, assume no. Why are you running
+ configure as root, anyway? */
+ if (!geteuid ()) return 99;
+ if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mknod_works=yes
+else
+ if test $? = 99 && test x"$FORCE_UNSAFE_CONFIGURE" = x; then
+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ gl_cv_func_mknod_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.fifo
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mknod_works" >&5
+$as_echo "$gl_cv_func_mknod_works" >&6; }
+ if test "$gl_cv_func_mknod_works" != yes; then
+
+$as_echo "#define MKNOD_FIFO_BUG 1" >>confdefs.h
+
+ fi
+ if test $REPLACE_MKFIFO = 1 || test "$gl_cv_func_mknod_works" != yes; then
+ REPLACE_MKNOD=1
+ fi
+ fi
+
+if test $HAVE_MKNOD = 0 || test $REPLACE_MKNOD = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mknod.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_MKNOD=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MKNOD 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $APPLE_UNIVERSAL_BUILD = 1; then
+ # A universal build on Apple MacOS X platforms.
+ # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
+ # But we need a configuration result that is valid in both modes.
+ gl_cv_func_working_mktime=no
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mktime" >&5
+$as_echo_n "checking for working mktime... " >&6; }
+if ${gl_cv_func_working_mktime+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_working_mktime=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Test program from Paul Eggert and Tony Leneis. */
+#include <limits.h>
+#include <stdlib.h>
+#include <time.h>
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#ifndef HAVE_ALARM
+# define alarm(X) /* empty */
+#endif
+
+/* Work around redefinition to rpl_putenv by other config tests. */
+#undef putenv
+
+static time_t time_t_max;
+static time_t time_t_min;
+
+/* Values we'll use to set the TZ environment variable. */
+static char *tz_strings[] = {
+ (char *) 0, "TZ=GMT0", "TZ=JST-9",
+ "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
+};
+#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
+
+/* Return 0 if mktime fails to convert a date in the spring-forward gap.
+ Based on a problem report from Andreas Jaeger. */
+static int
+spring_forward_gap ()
+{
+ /* glibc (up to about 1998-10-07) failed this test. */
+ struct tm tm;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ tm.tm_year = 98;
+ tm.tm_mon = 3;
+ tm.tm_mday = 5;
+ tm.tm_hour = 2;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+ return mktime (&tm) != (time_t) -1;
+}
+
+static int
+mktime_test1 (time_t now)
+{
+ struct tm *lt;
+ return ! (lt = localtime (&now)) || mktime (lt) == now;
+}
+
+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)));
+}
+
+static int
+irix_6_4_bug ()
+{
+ /* Based on code from Ariel Faigon. */
+ struct tm tm;
+ tm.tm_year = 96;
+ tm.tm_mon = 3;
+ tm.tm_mday = 0;
+ tm.tm_hour = 0;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+ mktime (&tm);
+ return tm.tm_mon == 2 && tm.tm_mday == 31;
+}
+
+static int
+bigtime_test (int j)
+{
+ struct tm tm;
+ time_t now;
+ tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
+ now = mktime (&tm);
+ if (now != (time_t) -1)
+ {
+ 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;
+ }
+ return 1;
+}
+
+static int
+year_2050_test ()
+{
+ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
+ ignoring leap seconds. */
+ unsigned long int answer = 2527315200UL;
+
+ struct tm tm;
+ time_t t;
+ tm.tm_year = 2050 - 1900;
+ tm.tm_mon = 2 - 1;
+ tm.tm_mday = 1;
+ tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ t = mktime (&tm);
+
+ /* Check that the result is either a failure, or close enough
+ 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));
+}
+
+int
+main ()
+{
+ int result = 0;
+ time_t t, delta;
+ int i, j;
+ int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1;
+ int time_t_signed = ! ((time_t) 0 < (time_t) -1);
+
+ /* This test makes some buggy mktime implementations loop.
+ Give up after 60 seconds; a mktime slower than that
+ isn't worth using anyway. */
+ alarm (60);
+
+ time_t_max = (! time_t_signed
+ ? (time_t) -1
+ : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
+ * 2 + 1));
+ time_t_min = (! time_t_signed
+ ? (time_t) 0
+ : time_t_signed_magnitude
+ ? ~ (time_t) 0
+ : ~ time_t_max);
+
+ delta = time_t_max / 997; /* a suitable prime number */
+ for (i = 0; i < N_STRINGS; i++)
+ {
+ if (tz_strings[i])
+ putenv (tz_strings[i]);
+
+ for (t = 0; t <= time_t_max - delta; t += delta)
+ if (! mktime_test (t))
+ result |= 1;
+ if (! (mktime_test ((time_t) 1)
+ && mktime_test ((time_t) (60 * 60))
+ && mktime_test ((time_t) (60 * 60 * 24))))
+ result |= 2;
+
+ for (j = 1; ; j <<= 1)
+ if (! bigtime_test (j))
+ result |= 4;
+ else if (INT_MAX / 2 < j)
+ break;
+ if (! bigtime_test (INT_MAX))
+ result |= 8;
+ }
+ if (! irix_6_4_bug ())
+ result |= 16;
+ if (! spring_forward_gap ())
+ result |= 32;
+ if (! year_2050_test ())
+ result |= 64;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_mktime=yes
+else
+ gl_cv_func_working_mktime=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_mktime" >&5
+$as_echo "$gl_cv_func_working_mktime" >&6; }
+
+ if test $gl_cv_func_working_mktime = no; then
+ REPLACE_MKTIME=1
+ else
+ REPLACE_MKTIME=0
+ fi
+
+if test $REPLACE_MKTIME = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS mktime.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_MKTIME=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_MKTIME 1" >>confdefs.h
+
+
+
+
+ :
+
+
+
+ if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+
+$as_echo "#define HAVE_MSVC_INVALID_PARAMETER_HANDLER 1" >>confdefs.h
+
+ else
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+ fi
+
+
+if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS msvc-inval.$ac_objext"
+
+fi
+
+
+
+if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS msvc-nothrow.$ac_objext"
+
+fi
+
+
+
+
+
+ if test $ac_cv_func_nl_langinfo = yes; then
+ # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether YESEXPR works" >&5
+$as_echo_n "checking whether YESEXPR works... " >&6; }
+if ${gl_cv_func_nl_langinfo_yesexpr_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess no on irix systems.
+ irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";;
+ # Guess yes elsewhere.
+ *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+
+int
+main ()
+{
+return !*nl_langinfo(YESEXPR);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_nl_langinfo_yesexpr_works=yes
+else
+ gl_cv_func_nl_langinfo_yesexpr_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_nl_langinfo_yesexpr_works" >&5
+$as_echo "$gl_cv_func_nl_langinfo_yesexpr_works" >&6; }
+ case $gl_cv_func_nl_langinfo_yesexpr_works in
+ *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;;
+ *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;;
+ esac
+
+cat >>confdefs.h <<_ACEOF
+#define FUNC_NL_LANGINFO_YESEXPR_WORKS $FUNC_NL_LANGINFO_YESEXPR_WORKS
+_ACEOF
+
+ if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \
+ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
+ :
+ else
+ REPLACE_NL_LANGINFO=1
+
+$as_echo "#define REPLACE_NL_LANGINFO 1" >>confdefs.h
+
+ fi
+ else
+ HAVE_NL_LANGINFO=0
+ fi
+
+if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS nl_langinfo.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_NL_LANGINFO=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_NL_LANGINFO 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for obstacks" >&5
+$as_echo_n "checking for obstacks... " >&6; }
+if ${ac_cv_func_obstack+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ #include "obstack.h"
+int
+main ()
+{
+struct obstack mem;
+ #define obstack_chunk_alloc malloc
+ #define obstack_chunk_free free
+ obstack_init (&mem);
+ obstack_free (&mem, 0);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_func_obstack=yes
+else
+ ac_cv_func_obstack=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_obstack" >&5
+$as_echo "$ac_cv_func_obstack" >&6; }
+if test $ac_cv_func_obstack = yes; then
+
+$as_echo "#define HAVE_OBSTACK 1" >>confdefs.h
+
+else
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS obstack.$ac_objext"
+
+fi
+
+
+
+ case "$host_os" in
+ mingw* | pw*)
+ REPLACE_OPEN=1
+ ;;
+ *)
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether open recognizes a trailing slash" >&5
+$as_echo_n "checking whether open recognizes a trailing slash... " >&6; }
+if ${gl_cv_func_open_slash+:} false; then :
+ $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* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
+ gl_cv_func_open_slash="guessing no" ;;
+ *)
+ gl_cv_func_open_slash="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+int main ()
+{
+ int result = 0;
+#if HAVE_LSTAT
+ if (open ("conftest.lnk/", O_RDONLY) != -1)
+ result |= 1;
+#endif
+ if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
+ result |= 2;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_open_slash=yes
+else
+ gl_cv_func_open_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.sl conftest.tmp conftest.lnk
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_open_slash" >&5
+$as_echo "$gl_cv_func_open_slash" >&6; }
+ case "$gl_cv_func_open_slash" in
+ *no)
+
+$as_echo "#define OPEN_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_OPEN=1
+ ;;
+ esac
+ ;;
+ esac
+
+ if test $REPLACE_OPEN = 0; then
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_OPEN=1
+ fi
+ fi
+
+
+
+if test $REPLACE_OPEN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS open.$ac_objext"
+
+
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_OPEN=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_OPEN 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ yes+yes)
+ ;;
+ yes+*)
+ # Solaris 9 has *at functions, but uniformly mishandles trailing
+ # slash in all of them.
+ REPLACE_OPENAT=1
+ ;;
+ *)
+ HAVE_OPENAT=0
+ ;;
+ esac
+
+if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS openat.$ac_objext"
+
+
+
+
+ :
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_OPENAT 1
+_ACEOF
+
+
+
+
+
+
+ GNULIB_OPENAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_OPENAT 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in opendir
+do :
+ ac_fn_c_check_func "$LINENO" "opendir" "ac_cv_func_opendir"
+if test "x$ac_cv_func_opendir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_OPENDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_opendir = no; then
+ HAVE_OPENDIR=0
+ fi
+
+
+
+
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_OPENDIR = 1; then
+ REPLACE_OPENDIR=1
+ fi
+ fi
+
+
+if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS opendir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_OPENDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_OPENDIR 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct tm" "tm_zone" "ac_cv_member_struct_tm_tm_zone" "#include <sys/types.h>
+#include <$ac_cv_struct_tm>
+
+"
+if test "x$ac_cv_member_struct_tm_tm_zone" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_TM_TM_ZONE 1
+_ACEOF
+
+
+fi
+
+if test "$ac_cv_member_struct_tm_tm_zone" = yes; then
+
+$as_echo "#define HAVE_TM_ZONE 1" >>confdefs.h
+
+else
+ ac_fn_c_check_decl "$LINENO" "tzname" "ac_cv_have_decl_tzname" "#include <time.h>
+"
+if test "x$ac_cv_have_decl_tzname" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_TZNAME $ac_have_decl
+_ACEOF
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for tzname" >&5
+$as_echo_n "checking for tzname... " >&6; }
+if ${ac_cv_var_tzname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+#if !HAVE_DECL_TZNAME
+extern char *tzname[];
+#endif
+
+int
+main ()
+{
+return tzname[0][0];
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_var_tzname=yes
+else
+ ac_cv_var_tzname=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5
+$as_echo "$ac_cv_var_tzname" >&6; }
+ if test $ac_cv_var_tzname = yes; then
+
+$as_echo "#define HAVE_TZNAME 1" >>confdefs.h
+
+ fi
+fi
+
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) ((t) 0 < (t) -1 \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 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
+if ac_fn_c_try_compile "$LINENO"; then :
+
+$as_echo "#define TIME_T_FITS_IN_LONG_INT 1" >>confdefs.h
+
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+
+
+
+
+
+ for ac_func in getppriv
+do :
+ ac_fn_c_check_func "$LINENO" "getppriv" "ac_cv_func_getppriv"
+if test "x$ac_cv_func_getppriv" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_GETPPRIV 1
+_ACEOF
+
+fi
+done
+
+
+
+ac_fn_c_check_decl "$LINENO" "program_invocation_name" "ac_cv_have_decl_program_invocation_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_name" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_NAME $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "program_invocation_short_name" "ac_cv_have_decl_program_invocation_short_name" "#include <errno.h>
+"
+if test "x$ac_cv_have_decl_program_invocation_short_name" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME $ac_have_decl
+_ACEOF
+
+
+ :
+
+
+ :
+
+
+
+
+
+ for ac_func in raise
+do :
+ ac_fn_c_check_func "$LINENO" "raise" "ac_cv_func_raise"
+if test "x$ac_cv_func_raise" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_RAISE 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_raise = no; then
+ HAVE_RAISE=0
+ else
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_RAISE=1
+ fi
+
+ fi
+
+if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS raise.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_RAISE=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_RAISE 1" >>confdefs.h
+
+
+
+
+
+
+
+ for ac_func in rawmemchr
+do :
+ ac_fn_c_check_func "$LINENO" "rawmemchr" "ac_cv_func_rawmemchr"
+if test "x$ac_cv_func_rawmemchr" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_RAWMEMCHR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_rawmemchr = no; then
+ HAVE_RAWMEMCHR=0
+ fi
+
+if test $HAVE_RAWMEMCHR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rawmemchr.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_RAWMEMCHR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_RAWMEMCHR 1" >>confdefs.h
+
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_READ=1
+ fi
+
+
+if test $REPLACE_READ = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS read.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_READ=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_READ 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in readdir
+do :
+ ac_fn_c_check_func "$LINENO" "readdir" "ac_cv_func_readdir"
+if test "x$ac_cv_func_readdir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_READDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_readdir = no; then
+ HAVE_READDIR=0
+ fi
+
+if test $HAVE_READDIR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS readdir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_READDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_READDIR 1" >>confdefs.h
+
+
+
+
+
+
+ if test $ac_cv_func_readlink = no; then
+ HAVE_READLINK=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink signature is correct" >&5
+$as_echo_n "checking whether readlink signature is correct... " >&6; }
+if ${gl_cv_decl_readlink_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_decl_readlink_works=yes
+else
+ gl_cv_decl_readlink_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_decl_readlink_works" >&5
+$as_echo "$gl_cv_decl_readlink_works" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether readlink handles trailing slash correctly" >&5
+$as_echo_n "checking whether readlink handles trailing slash correctly... " >&6; }
+if ${gl_cv_func_readlink_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+int
+main ()
+{
+char buf[20];
+ return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_readlink_works=yes
+else
+ gl_cv_func_readlink_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.link conftest.lnk2
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define READLINK_TRAILING_SLASH_BUG 1" >>confdefs.h
+
+ REPLACE_READLINK=1
+ elif test "$gl_cv_decl_readlink_works" != yes; then
+ REPLACE_READLINK=1
+ fi
+ fi
+
+if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS readlink.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_READLINK=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_READLINK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_readlinkat = no; then
+ HAVE_READLINKAT=0
+ fi
+
+if test $HAVE_READLINKAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS readlinkat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_READLINKAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_READLINKAT 1" >>confdefs.h
+
+
+
+
+
+
+ if test $gl_cv_func_malloc_posix = yes; then
+
+$as_echo "#define HAVE_REALLOC_POSIX 1" >>confdefs.h
+
+ else
+ REPLACE_REALLOC=1
+ fi
+
+if test $REPLACE_REALLOC = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS realloc.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_REALLOC_POSIX=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_REALLOC_POSIX 1" >>confdefs.h
+
+
+
+
+
+# Check whether --with-included-regex was given.
+if test "${with_included_regex+set}" = set; then :
+ withval=$with_included_regex;
+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.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working re_compile_pattern" >&5
+$as_echo_n "checking for working re_compile_pattern... " >&6; }
+if ${gl_cv_func_re_compile_pattern_working+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_re_compile_pattern_working=no
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ #include <locale.h>
+ #include <limits.h>
+ #include <regex.h>
+
+int
+main ()
+{
+int result = 0;
+ static struct re_pattern_buffer regex;
+ unsigned char folded_chars[UCHAR_MAX + 1];
+ int i;
+ const char *s;
+ struct re_registers regs;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern (pat, sizeof pat - 1, &regex);
+ if (s)
+ result |= 1;
+ else if (re_search (&regex, data, sizeof data - 1,
+ 0, sizeof data - 1, &regs)
+ != -1)
+ result |= 1;
+ if (! setlocale (LC_ALL, "C"))
+ return 1;
+ }
+
+ /* This test is from glibc bug 3957, reported by Andrew Mackey. */
+ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("a[^x]b", 6, &regex);
+ if (s)
+ result |= 2;
+ /* This should fail, but succeeds for glibc-2.5. */
+ else if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
+ result |= 2;
+
+ /* This regular expression is from Spencer ere test number 75
+ in grep-2.3. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+ memset (&regex, 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, &regex);
+ /* This should fail with _Invalid character class name_ error. */
+ if (!s)
+ result |= 4;
+
+ /* Ensure that [b-a] is diagnosed as invalid, when
+ using RE_NO_EMPTY_RANGES. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES);
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("a[b-a]", 6, &regex);
+ if (s == 0)
+ result |= 8;
+
+ /* This should succeed, but does not for glibc-2.1.3. */
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("{1", 2, &regex);
+ if (s)
+ result |= 8;
+
+ /* The following example is derived from a problem report
+ against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("[an\371]*n", 7, &regex);
+ if (s)
+ result |= 8;
+ /* This should match, but does not for glibc-2.2.1. */
+ else if (re_match (&regex, "an", 2, 0, &regs) != 2)
+ result |= 8;
+
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("x", 1, &regex);
+ if (s)
+ result |= 8;
+ /* glibc-2.2.93 does not work with a negative RANGE argument. */
+ else if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
+ result |= 8;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("x", 1, &regex);
+ if (s)
+ result |= 16;
+ else if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
+ result |= 16;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
+ if (s)
+ result |= 32;
+
+ /* REG_STARTEND was added to glibc on 2004-01-15.
+ Reject older versions. */
+ if (! REG_STARTEND)
+ result |= 64;
+
+#if 0
+ /* It would be nice to reject hosts whose regoff_t values are too
+ narrow (including glibc on hosts with 64-bit ptrdiff_t and
+ 32-bit int), but we should wait until glibc implements this
+ feature. Otherwise, support for equivalence classes and
+ multibyte collation symbols would always be broken except
+ when compiling --without-included-regex. */
+ if (sizeof (regoff_t) < sizeof (ptrdiff_t)
+ || sizeof (regoff_t) < sizeof (ssize_t))
+ result |= 64;
+#endif
+
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_re_compile_pattern_working=yes
+else
+ gl_cv_func_re_compile_pattern_working=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_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
+ ;;
+ *) as_fn_error $? "Invalid value for --with-included-regex: $with_included_regex" "$LINENO" 5
+ ;;
+ esac
+
+ if test $ac_use_included_regex = yes; then
+
+$as_echo "#define _REGEX_LARGE_OFFSETS 1" >>confdefs.h
+
+
+$as_echo "#define re_syntax_options rpl_re_syntax_options" >>confdefs.h
+
+
+$as_echo "#define re_set_syntax rpl_re_set_syntax" >>confdefs.h
+
+
+$as_echo "#define re_compile_pattern rpl_re_compile_pattern" >>confdefs.h
+
+
+$as_echo "#define re_compile_fastmap rpl_re_compile_fastmap" >>confdefs.h
+
+
+$as_echo "#define re_search rpl_re_search" >>confdefs.h
+
+
+$as_echo "#define re_search_2 rpl_re_search_2" >>confdefs.h
+
+
+$as_echo "#define re_match rpl_re_match" >>confdefs.h
+
+
+$as_echo "#define re_match_2 rpl_re_match_2" >>confdefs.h
+
+
+$as_echo "#define re_set_registers rpl_re_set_registers" >>confdefs.h
+
+
+$as_echo "#define re_comp rpl_re_comp" >>confdefs.h
+
+
+$as_echo "#define re_exec rpl_re_exec" >>confdefs.h
+
+
+$as_echo "#define regcomp rpl_regcomp" >>confdefs.h
+
+
+$as_echo "#define regexec rpl_regexec" >>confdefs.h
+
+
+$as_echo "#define regerror rpl_regerror" >>confdefs.h
+
+
+$as_echo "#define regfree rpl_regfree" >>confdefs.h
+
+ fi
+
+if test $ac_use_included_regex = yes; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS regex.$ac_objext"
+
+
+
+
+
+
+ for ac_header in libintl.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
+if test "x$ac_cv_header_libintl_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBINTL_H 1
+_ACEOF
+
+fi
+
+done
+
+
+ ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h>
+"
+if test "x$ac_cv_have_decl_isblank" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_ISBLANK $ac_have_decl
+_ACEOF
+
+
+fi
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on destination" >&5
+$as_echo_n "checking whether rename honors trailing slash on destination... " >&6; }
+if ${gl_cv_func_rename_slash_dst_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+ touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+ as_fn_error $? "cannot create temporary files" "$LINENO" 5
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.f conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_slash_dst_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.f1", "conftest.f2/") == 0)
+ result |= 1;
+ if (rename ("conftest.d1", "conftest.d2/") != 0)
+ result |= 2;
+#if HAVE_LSTAT
+ if (rename ("conftest.f", "conftest.lnk/") == 0)
+ result |= 4;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_slash_dst_works=yes
+else
+ gl_cv_func_rename_slash_dst_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_dst_works" >&5
+$as_echo "$gl_cv_func_rename_slash_dst_works" >&6; }
+ if test "x$gl_cv_func_rename_slash_dst_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "#define RENAME_TRAILING_SLASH_DEST_BUG 1" >>confdefs.h
+
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename honors trailing slash on source" >&5
+$as_echo_n "checking whether rename honors trailing slash on source... " >&6; }
+if ${gl_cv_func_rename_slash_src_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+ touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+ as_fn_error $? "cannot create temporary files" "$LINENO" 5
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.f conftest.lnk
+ fi
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_slash_src_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.f1/", "conftest.d3") == 0)
+ result |= 1;
+ if (rename ("conftest.d1/", "conftest.d2") != 0)
+ result |= 2;
+#if HAVE_LSTAT
+ if (rename ("conftest.lnk/", "conftest.f") == 0)
+ result |= 4;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_slash_src_works=yes
+else
+ gl_cv_func_rename_slash_src_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_slash_src_works" >&5
+$as_echo "$gl_cv_func_rename_slash_src_works" >&6; }
+ if test "x$gl_cv_func_rename_slash_src_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "#define RENAME_TRAILING_SLASH_SOURCE_BUG 1" >>confdefs.h
+
+ fi
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages hard links correctly" >&5
+$as_echo_n "checking whether rename manages hard links correctly... " >&6; }
+if ${gl_cv_func_rename_link_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test $ac_cv_func_link = yes; then
+ rm -rf conftest.f conftest.f1
+ if touch conftest.f && ln conftest.f conftest.f1 &&
+ set x `ls -i conftest.f conftest.f1` && test "" = ""; then
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_link_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+# include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.f", "conftest.f1"))
+ result |= 1;
+ if (unlink ("conftest.f1"))
+ result |= 2;
+ if (rename ("conftest.f", "conftest.f"))
+ result |= 4;
+ if (rename ("conftest.f1", "conftest.f1") == 0)
+ result |= 8;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_link_works=yes
+else
+ gl_cv_func_rename_link_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ else
+ gl_cv_func_rename_link_works="guessing no"
+ fi
+ rm -rf conftest.f conftest.f1
+ else
+ gl_cv_func_rename_link_works=yes
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_link_works" >&5
+$as_echo "$gl_cv_func_rename_link_works" >&6; }
+ if test "x$gl_cv_func_rename_link_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "#define RENAME_HARD_LINK_BUG 1" >>confdefs.h
+
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rename manages existing destinations correctly" >&5
+$as_echo_n "checking whether rename manages existing destinations correctly... " >&6; }
+if ${gl_cv_func_rename_dest_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ rm -rf conftest.f conftest.d1 conftest.d2
+ touch conftest.f && mkdir conftest.d1 conftest.d2 ||
+ as_fn_error $? "cannot create temporary files" "$LINENO" 5
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_rename_dest_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# include <stdio.h>
+# include <stdlib.h>
+
+int
+main ()
+{
+int result = 0;
+ if (rename ("conftest.d1", "conftest.d2") != 0)
+ result |= 1;
+ if (rename ("conftest.d2", "conftest.f") == 0)
+ result |= 2;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rename_dest_works=yes
+else
+ gl_cv_func_rename_dest_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.f conftest.d1 conftest.d2
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_rename_dest_works" >&5
+$as_echo "$gl_cv_func_rename_dest_works" >&6; }
+ if test "x$gl_cv_func_rename_dest_works" != xyes; then
+ REPLACE_RENAME=1
+
+$as_echo "#define RENAME_DEST_EXISTS_BUG 1" >>confdefs.h
+
+ fi
+
+if test $REPLACE_RENAME = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rename.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_RENAME=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_RENAME 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_renameat = no; then
+ HAVE_RENAMEAT=0
+ elif test $REPLACE_RENAME = 1; then
+ REPLACE_RENAMEAT=1
+ fi
+
+if test $HAVE_RENAMEAT = 0 || test $REPLACE_RENAMEAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS renameat.$ac_objext"
+
+fi
+if test $HAVE_RENAMEAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS at-func2.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_RENAMEAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_RENAMEAT 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in rewinddir
+do :
+ ac_fn_c_check_func "$LINENO" "rewinddir" "ac_cv_func_rewinddir"
+if test "x$ac_cv_func_rewinddir" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_REWINDDIR 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_rewinddir = no; then
+ HAVE_REWINDDIR=0
+ fi
+
+if test $HAVE_REWINDDIR = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rewinddir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_REWINDDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_REWINDDIR 1" >>confdefs.h
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether rmdir works" >&5
+$as_echo_n "checking whether rmdir works... " >&6; }
+if ${gl_cv_func_rmdir_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+ #include <errno.h>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <direct.h>
+ #endif
+
+int
+main ()
+{
+int result = 0;
+ if (!rmdir ("conftest.file/"))
+ result |= 1;
+ else if (errno != ENOTDIR)
+ result |= 2;
+ if (!rmdir ("conftest.dir/./"))
+ result |= 4;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_rmdir_works=yes
+else
+ gl_cv_func_rmdir_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -rf conftest.dir conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+
+if test $REPLACE_RMDIR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rmdir.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_RMDIR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_RMDIR 1" >>confdefs.h
+
+
+
+
+
+
+
+ for ac_func in rpmatch
+do :
+ ac_fn_c_check_func "$LINENO" "rpmatch" "ac_cv_func_rpmatch"
+if test "x$ac_cv_func_rpmatch" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_RPMATCH 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_rpmatch = no; then
+ HAVE_RPMATCH=0
+ fi
+
+if test $HAVE_RPMATCH = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS rpmatch.$ac_objext"
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for nl_langinfo and YESEXPR" >&5
+$as_echo_n "checking for nl_langinfo and YESEXPR... " >&6; }
+if ${gl_cv_langinfo_yesexpr+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(YESEXPR); return !cs;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gl_cv_langinfo_yesexpr=yes
+else
+ gl_cv_langinfo_yesexpr=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_langinfo_yesexpr" >&5
+$as_echo "$gl_cv_langinfo_yesexpr" >&6; }
+ if test $gl_cv_langinfo_yesexpr = yes; then
+
+$as_echo "#define HAVE_LANGINFO_YESEXPR 1" >>confdefs.h
+
+ fi
+
+fi
+
+
+
+
+
+ GNULIB_RPMATCH=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_RPMATCH 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ :
+
+
+
+ if test $ac_cv_func_setenv = no; then
+ HAVE_SETENV=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether setenv validates arguments" >&5
+$as_echo_n "checking whether setenv validates arguments... " >&6; }
+if ${gl_cv_func_setenv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_setenv_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <stdlib.h>
+ #include <errno.h>
+ #include <string.h>
+
+int
+main ()
+{
+
+ int result = 0;
+ {
+ if (setenv ("", "", 0) != -1)
+ result |= 1;
+ else if (errno != EINVAL)
+ result |= 2;
+ }
+ {
+ if (setenv ("a", "=", 1) != 0)
+ result |= 4;
+ else if (strcmp (getenv ("a"), "=") != 0)
+ result |= 8;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_setenv_works=yes
+else
+ gl_cv_func_setenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS setenv.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SETENV=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_SETENV 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_signal_h='<'signal.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <signal.h>" >&5
+$as_echo_n "checking absolute name of <signal.h>... " >&6; }
+if ${gl_cv_next_signal_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <signal.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'signal.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_signal_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_signal_h" >&5
+$as_echo "$gl_cv_next_signal_h" >&6; }
+ fi
+ NEXT_SIGNAL_H=$gl_cv_next_signal_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='<'signal.h'>'
+ else
+ # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+ gl_next_as_first_directive=$gl_cv_next_signal_h
+ fi
+ NEXT_AS_FIRST_DIRECTIVE_SIGNAL_H=$gl_next_as_first_directive
+
+
+
+
+
+# AIX declares sig_atomic_t to already include volatile, and C89 compilers
+# then choke on 'volatile sig_atomic_t'. C99 requires that it compile.
+ ac_fn_c_check_type "$LINENO" "volatile sig_atomic_t" "ac_cv_type_volatile_sig_atomic_t" "
+#include <signal.h>
+
+"
+if test "x$ac_cv_type_volatile_sig_atomic_t" = xyes; then :
+
+else
+ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0
+fi
+
+
+
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "sighandler_t" "ac_cv_type_sighandler_t" "
+#include <signal.h>
+
+"
+if test "x$ac_cv_type_sighandler_t" = xyes; then :
+
+else
+ HAVE_SIGHANDLER_T=0
+fi
+
+
+
+ for gl_func in pthread_sigmask sigaction sigaddset sigdelset sigemptyset sigfillset sigismember sigpending sigprocmask; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <signal.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+ for ac_header in stdint.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STDINT_H 1
+_ACEOF
+
+fi
+
+done
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SIZE_MAX" >&5
+$as_echo_n "checking for SIZE_MAX... " >&6; }
+if ${gl_cv_size_max+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ gl_cv_size_max=
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Found it" >/dev/null 2>&1; then :
+ gl_cv_size_max=yes
+fi
+rm -f conftest*
+
+ if test -z "$gl_cv_size_max"; then
+ if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) * CHAR_BIT - 1" "size_t_bits_minus_1" "#include <stddef.h>
+#include <limits.h>"; then :
+
+else
+ size_t_bits_minus_1=
+fi
+
+ if ac_fn_c_compute_int "$LINENO" "sizeof (size_t) <= sizeof (unsigned int)" "fits_in_uint" "#include <stddef.h>"; then :
+
+else
+ fits_in_uint=
+fi
+
+ if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
+ if test $fits_in_uint = 1; then
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ extern size_t foo;
+ extern unsigned long foo;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ fits_in_uint=0
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $fits_in_uint = 1; then
+ gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ else
+ gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ fi
+ else
+ gl_cv_size_max='((size_t)~(size_t)0)'
+ fi
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+#define SIZE_MAX $gl_cv_size_max
+_ACEOF
+
+ fi
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "sleep" "ac_cv_have_decl_sleep" "#include <unistd.h>
+"
+if test "x$ac_cv_have_decl_sleep" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_SLEEP $ac_have_decl
+_ACEOF
+
+
+ if test $ac_cv_have_decl_sleep != yes; then
+ HAVE_SLEEP=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working sleep" >&5
+$as_echo_n "checking for working sleep... " >&6; }
+if ${gl_cv_func_sleep_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_sleep_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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);
+ if (remaining > pentecost)
+ return 3;
+ if (remaining <= pentecost - 10)
+ return 4;
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_sleep_works=yes
+else
+ gl_cv_func_sleep_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS sleep.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SLEEP=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_SLEEP 1" >>confdefs.h
+
+
+
+
+
+ gl_cv_func_snprintf_usable=no
+ for ac_func in snprintf
+do :
+ ac_fn_c_check_func "$LINENO" "snprintf" "ac_cv_func_snprintf"
+if test "x$ac_cv_func_snprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SNPRINTF 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_snprintf = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5
+$as_echo_n "checking whether snprintf respects a size of 1... " >&6; }
+if ${gl_cv_func_snprintf_size1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_snprintf_size1="guessing yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+int main()
+{
+ static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+ my_snprintf (buf, 1, "%d", 12345);
+ return buf[1] != 'E';
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_snprintf_size1=yes
+else
+ gl_cv_func_snprintf_size1=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5
+$as_echo "$gl_cv_func_snprintf_size1" >&6; }
+
+ case "$gl_cv_func_snprintf_size1" in
+ *yes)
+
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5
+$as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; }
+if ${gl_cv_func_printf_positions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+ gl_cv_func_printf_positions="guessing no";;
+ beos*) gl_cv_func_printf_positions="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+ *) gl_cv_func_printf_positions="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+ dollar expansion (possibly an autoconf bug). */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, "55 33") != 0);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_printf_positions=yes
+else
+ gl_cv_func_printf_positions=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5
+$as_echo "$gl_cv_func_printf_positions" >&6; }
+
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_snprintf_usable=yes
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ if test $gl_cv_func_snprintf_usable = no; then
+
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS snprintf.$ac_objext"
+
+ if test $ac_cv_func_snprintf = yes; then
+ REPLACE_SNPRINTF=1
+ fi
+ :
+
+ fi
+
+ if test $ac_cv_have_decl_snprintf = no; then
+ HAVE_DECL_SNPRINTF=0
+ fi
+
+
+
+
+
+
+ GNULIB_SNPRINTF=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_SNPRINTF 1" >>confdefs.h
+
+
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_SNPRINTF 1
+_ACEOF
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ssize_t" >&5
+$as_echo_n "checking for ssize_t... " >&6; }
+if ${gt_cv_ssize_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+int
+main ()
+{
+int x = sizeof (ssize_t *) + sizeof (ssize_t);
+ return !x;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_ssize_t=yes
+else
+ gt_cv_ssize_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_ssize_t" >&5
+$as_echo "$gt_cv_ssize_t" >&6; }
+ if test $gt_cv_ssize_t = no; then
+
+$as_echo "#define ssize_t int" >>confdefs.h
+
+ fi
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on directories" >&5
+$as_echo_n "checking whether stat handles trailing slashes on directories... " >&6; }
+if ${gl_cv_func_stat_dir_slash+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+struct stat st; return stat (".", &st) != stat ("./", &st);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_stat_dir_slash=yes
+else
+ gl_cv_func_stat_dir_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_stat_dir_slash" >&5
+$as_echo "$gl_cv_func_stat_dir_slash" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stat handles trailing slashes on files" >&5
+$as_echo_n "checking whether stat handles trailing slashes on files... " >&6; }
+if ${gl_cv_func_stat_file_slash+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+int result = 0;
+ struct stat st;
+ if (!stat ("conftest.tmp/", &st))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!stat ("conftest.lnk/", &st))
+ result |= 2;
+#endif
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_stat_file_slash=yes
+else
+ gl_cv_func_stat_file_slash=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.tmp conftest.lnk
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define REPLACE_FUNC_STAT_DIR 1" >>confdefs.h
+;;
+ esac
+ case $gl_cv_func_stat_file_slash in
+ *no) REPLACE_STAT=1
+
+$as_echo "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h
+;;
+ esac
+
+if test $REPLACE_STAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS stat.$ac_objext"
+
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_STAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_STAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.tv_nsec" "ac_cv_member_struct_stat_st_atim_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_typeof_struct_stat_st_atim_is_struct_timespec+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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;
+
+int
+main ()
+{
+
+ st.st_atim = ts;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=yes
+else
+ ac_cv_typeof_struct_stat_st_atim_is_struct_timespec=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC 1" >>confdefs.h
+
+ fi
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atimespec.tv_nsec" "ac_cv_member_struct_stat_st_atimespec_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atimensec" "ac_cv_member_struct_stat_st_atimensec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atimensec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIMENSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_atim.st__tim.tv_nsec" "ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_atim_st__tim_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC 1
+_ACEOF
+
+
+fi
+
+fi
+
+fi
+
+fi
+
+
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimespec.tv_nsec" "ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_birthtimespec_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtimensec" "ac_cv_member_struct_stat_st_birthtimensec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_birthtimensec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC 1
+_ACEOF
+
+
+else
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_birthtim.tv_nsec" "ac_cv_member_struct_stat_st_birthtim_tv_nsec" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_member_struct_stat_st_birthtim_tv_nsec" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC 1
+_ACEOF
+
+
+fi
+
+fi
+
+fi
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working stdalign.h" >&5
+$as_echo_n "checking for working stdalign.h... " >&6; }
+if ${gl_cv_header_working_stdalign_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdalign.h>
+ int align_int = alignof (int) + _Alignof (double);
+
+ /* Test _Alignas only on platforms where gnulib can help. */
+ #if \
+ (__GNUC__ || __IBMC__ || __IBMCPP__ \
+ || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER)
+ int alignas (8) alignas_int = 1;
+ #endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_header_working_stdalign_h=yes
+else
+ gl_cv_header_working_stdalign_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_working_stdalign_h" >&5
+$as_echo "$gl_cv_header_working_stdalign_h" >&6; }
+
+ if test $gl_cv_header_working_stdalign_h = yes; then
+ STDALIGN_H=''
+ else
+ STDALIGN_H='stdalign.h'
+ fi
+
+
+ if test -n "$STDALIGN_H"; then
+ GL_GENERATE_STDALIGN_H_TRUE=
+ GL_GENERATE_STDALIGN_H_FALSE='#'
+else
+ GL_GENERATE_STDALIGN_H_TRUE='#'
+ GL_GENERATE_STDALIGN_H_FALSE=
+fi
+
+
+
+ STDARG_H=''
+ NEXT_STDARG_H='<stdarg.h>'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for va_copy" >&5
+$as_echo_n "checking for va_copy... " >&6; }
+ if ${gl_cv_func_va_copy+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+int
+main ()
+{
+
+#ifndef va_copy
+void (*func) (va_list, va_list) = va_copy;
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_va_copy=yes
+else
+ gl_cv_func_va_copy=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
+ { $as_echo "$as_me:${as_lineno-$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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#if defined _AIX && !defined __GNUC__
+ AIX vaccine
+ #endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "vaccine" >/dev/null 2>&1; then :
+ gl_aixcc=yes
+else
+ gl_aixcc=no
+fi
+rm -f conftest*
+
+ if test $gl_aixcc = yes; then
+ STDARG_H=stdarg.h
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_stdarg_h='<'stdarg.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdarg.h>" >&5
+$as_echo_n "checking absolute name of <stdarg.h>... " >&6; }
+if ${gl_cv_next_stdarg_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdarg.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdarg_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ gl_cv_next_stdarg_h='"///usr/include/stdarg.h"'
+ NEXT_STDARG_H="$gl_cv_next_stdarg_h"
+ fi
+ else
+
+ saved_as_echo_n="$as_echo_n"
+ as_echo_n=':'
+ if ${gl_cv_func___va_copy+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdarg.h>
+int
+main ()
+{
+
+#ifndef __va_copy
+error, bail out
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func___va_copy=yes
+else
+ gl_cv_func___va_copy=no
+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
+
+$as_echo "#define va_copy __va_copy" >>confdefs.h
+
+ else
+
+
+$as_echo "#define va_copy gl_va_copy" >>confdefs.h
+
+ fi
+ fi
+ fi
+
+ if test -n "$STDARG_H"; then
+ GL_GENERATE_STDARG_H_TRUE=
+ GL_GENERATE_STDARG_H_FALSE='#'
+else
+ GL_GENERATE_STDARG_H_TRUE='#'
+ GL_GENERATE_STDARG_H_FALSE=
+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 -n "$STDBOOL_H"; then
+ GL_GENERATE_STDBOOL_H_TRUE=
+ GL_GENERATE_STDBOOL_H_FALSE='#'
+else
+ GL_GENERATE_STDBOOL_H_TRUE='#'
+ GL_GENERATE_STDBOOL_H_FALSE=
+fi
+
+
+ if test "$ac_cv_type__Bool" = yes; then
+ HAVE__BOOL=1
+ else
+ HAVE__BOOL=0
+ fi
+
+
+
+
+
+ STDDEF_H=
+ if test $gt_cv_c_wchar_t = no; then
+ HAVE_WCHAR_T=0
+ STDDEF_H=stddef.h
+ fi
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_decl_null_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+ int test[2 * (sizeof NULL == sizeof (void *)) -1];
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_decl_null_works=yes
+else
+ gl_cv_decl_null_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ GL_GENERATE_STDDEF_H_TRUE=
+ GL_GENERATE_STDDEF_H_FALSE='#'
+else
+ GL_GENERATE_STDDEF_H_TRUE='#'
+ GL_GENERATE_STDDEF_H_FALSE=
+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:${as_lineno-$LINENO}: checking absolute name of <stddef.h>" >&5
+$as_echo_n "checking absolute name of <stddef.h>... " >&6; }
+if ${gl_cv_next_stddef_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stddef.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stddef.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stddef_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $gl_cv_have_include_next = yes; then
+ gl_cv_next_stdio_h='<'stdio.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdio.h>" >&5
+$as_echo_n "checking absolute name of <stdio.h>... " >&6; }
+if ${gl_cv_next_stdio_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdio.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdio_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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_FSCANF=1
+ GNULIB_SCANF=1
+ GNULIB_FGETC=1
+ GNULIB_GETC=1
+ GNULIB_GETCHAR=1
+ GNULIB_FGETS=1
+ GNULIB_GETS=1
+ GNULIB_FREAD=1
+
+
+ GNULIB_FPRINTF=1
+ GNULIB_PRINTF=1
+ GNULIB_VFPRINTF=1
+ GNULIB_VPRINTF=1
+ GNULIB_FPUTC=1
+ GNULIB_PUTC=1
+ GNULIB_PUTCHAR=1
+ GNULIB_FPUTS=1
+ GNULIB_PUTS=1
+ GNULIB_FWRITE=1
+
+
+
+
+ for gl_func in dprintf fpurge fseeko ftello getdelim getline pclose popen renameat snprintf tmpfile vdprintf vsnprintf; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <stdlib.h>" >&5
+$as_echo_n "checking absolute name of <stdlib.h>... " >&6; }
+if ${gl_cv_next_stdlib_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'stdlib.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_stdlib_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 gl_func in _Exit atoll canonicalize_file_name getloadavg getsubopt grantpt initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps posix_openpt ptsname ptsname_r random random_r realpath rpmatch setenv setstate setstate_r srandom srandom_r strtod strtoll strtoull unlockpt unsetenv; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#if HAVE_SYS_LOADAVG_H
+# include <sys/loadavg.h>
+#endif
+#if HAVE_RANDOM_H
+# include <random.h>
+#endif
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+
+ for ac_func in stpcpy
+do :
+ ac_fn_c_check_func "$LINENO" "stpcpy" "ac_cv_func_stpcpy"
+if test "x$ac_cv_func_stpcpy" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STPCPY 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_stpcpy = no; then
+ HAVE_STPCPY=0
+ fi
+
+if test $HAVE_STPCPY = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS stpcpy.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_STPCPY=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_STPCPY 1" >>confdefs.h
+
+
+
+
+
+
+ for ac_func in strcasecmp
+do :
+ ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
+if test "x$ac_cv_func_strcasecmp" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STRCASECMP 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strcasecmp = no; then
+ HAVE_STRCASECMP=0
+ fi
+
+
+
+ for ac_func in strncasecmp
+do :
+ ac_fn_c_check_func "$LINENO" "strncasecmp" "ac_cv_func_strncasecmp"
+if test "x$ac_cv_func_strncasecmp" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STRNCASECMP 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strncasecmp = yes; then
+ HAVE_STRNCASECMP=1
+ else
+ HAVE_STRNCASECMP=0
+ fi
+ ac_fn_c_check_decl "$LINENO" "strncasecmp" "ac_cv_have_decl_strncasecmp" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strncasecmp" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRNCASECMP $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_strncasecmp = no; then
+ HAVE_DECL_STRNCASECMP=0
+ fi
+
+
+if test $HAVE_STRCASECMP = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strcasecmp.$ac_objext"
+
+
+ :
+
+fi
+if test $HAVE_STRNCASECMP = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strncasecmp.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+ for ac_func in strchrnul
+do :
+ ac_fn_c_check_func "$LINENO" "strchrnul" "ac_cv_func_strchrnul"
+if test "x$ac_cv_func_strchrnul" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STRCHRNUL 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strchrnul = no; then
+ HAVE_STRCHRNUL=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether strchrnul works" >&5
+$as_echo_n "checking whether strchrnul works... " >&6; }
+if ${gl_cv_func_strchrnul_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9)
+ Lucky user
+ #endif
+#else
+ Lucky user
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "Lucky user" >/dev/null 2>&1; then :
+ gl_cv_func_strchrnul_works="guessing yes"
+else
+ gl_cv_func_strchrnul_works="guessing no"
+fi
+rm -f conftest*
+
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <string.h> /* for strchrnul */
+
+int
+main ()
+{
+const char *buf = "a";
+ return strchrnul (buf, 'b') != buf + 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_strchrnul_works=yes
+else
+ gl_cv_func_strchrnul_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_strchrnul_works" >&5
+$as_echo "$gl_cv_func_strchrnul_works" >&6; }
+ case "$gl_cv_func_strchrnul_works" in
+ *yes) ;;
+ *) REPLACE_STRCHRNUL=1 ;;
+ esac
+ fi
+
+if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strchrnul.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_STRCHRNUL=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_STRCHRNUL 1" >>confdefs.h
+
+
+
+
+
+
+
+ if test $ac_cv_func_strdup = yes; then
+ if test $gl_cv_func_malloc_posix != yes; then
+ REPLACE_STRDUP=1
+ fi
+ fi
+
+ if test $ac_cv_have_decl_strdup = no; then
+ HAVE_DECL_STRDUP=0
+ fi
+
+if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strdup.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_STRDUP=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_STRDUP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strerror function" >&5
+$as_echo_n "checking for working strerror function... " >&6; }
+if ${gl_cv_func_working_strerror+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_working_strerror="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <string.h>
+
+int
+main ()
+{
+if (!*strerror (-2)) return 1;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_working_strerror=yes
+else
+ gl_cv_func_working_strerror=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_working_strerror" >&5
+$as_echo "$gl_cv_func_working_strerror" >&6; }
+ if test "$gl_cv_func_working_strerror" != yes; then
+ REPLACE_STRERROR=1
+ fi
+
+ else
+ REPLACE_STRERROR=1
+ fi
+
+if test $REPLACE_STRERROR = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strerror.$ac_objext"
+
+fi
+
+
+cat >>confdefs.h <<_ACEOF
+#define GNULIB_STRERROR 1
+_ACEOF
+
+
+
+
+
+
+
+ GNULIB_STRERROR=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_STRERROR 1" >>confdefs.h
+
+
+
+
+
+if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strerror-override.$ac_objext"
+
+
+
+
+
+ if test $ac_cv_header_sys_socket_h != yes; then
+ for ac_header in winsock2.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default"
+if test "x$ac_cv_header_winsock2_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_WINSOCK2_H 1
+_ACEOF
+
+fi
+
+done
+
+ fi
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ HAVE_WINSOCK2_H=1
+ UNISTD_H_HAVE_WINSOCK2_H=1
+ SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+ else
+ HAVE_WINSOCK2_H=0
+ fi
+
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_strndup = no; then
+ HAVE_DECL_STRNDUP=0
+ fi
+
+ if test $ac_cv_func_strndup = yes; then
+ HAVE_STRNDUP=1
+ # AIX 4.3.3, AIX 5.1 have a function that fails to add the terminating '\0'.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strndup" >&5
+$as_echo_n "checking for working strndup... " >&6; }
+if ${gl_cv_func_strndup_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+
+ case $host_os in
+ aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";;
+ *) gl_cv_func_strndup_works="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <string.h>
+ #include <stdlib.h>
+int
+main ()
+{
+
+#ifndef HAVE_DECL_STRNDUP
+ extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *strndup (const char *, size_t);
+#endif
+ char *s;
+ s = strndup ("some longer string", 15);
+ free (s);
+ s = strndup ("shorter string", 13);
+ return s[13] != '\0';
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_strndup_works=yes
+else
+ gl_cv_func_strndup_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ HAVE_STRNDUP=0
+ fi
+
+if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strndup.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_STRNDUP=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_STRNDUP 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_strnlen = no; then
+ HAVE_DECL_STRNLEN=0
+ else
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working strnlen" >&5
+$as_echo_n "checking for working strnlen... " >&6; }
+if ${ac_cv_func_strnlen_working+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ # Guess no on AIX systems, yes otherwise.
+ case "$host_os" in
+ aix*) ac_cv_func_strnlen_working=no;;
+ *) ac_cv_func_strnlen_working=yes;;
+ esac
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+
+#define S "foobar"
+#define S_LEN (sizeof S - 1)
+
+ /* At least one implementation is buggy: that of AIX 4.3 would
+ give strnlen (S, 1) == 3. */
+
+ int i;
+ for (i = 0; i < S_LEN + 1; ++i)
+ {
+ int expected = i <= S_LEN ? i : S_LEN;
+ if (strnlen (S, i) != expected)
+ return 1;
+ }
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ ac_cv_func_strnlen_working=yes
+else
+ ac_cv_func_strnlen_working=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strnlen_working" >&5
+$as_echo "$ac_cv_func_strnlen_working" >&6; }
+test $ac_cv_func_strnlen_working = no && :
+
+
+ if test $ac_cv_func_strnlen_working = no; then
+ REPLACE_STRNLEN=1
+ fi
+ fi
+
+if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strnlen.$ac_objext"
+
+ :
+fi
+
+
+
+
+
+ GNULIB_STRNLEN=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_STRNLEN 1" >>confdefs.h
+
+
+
+
+ for ac_func in strtol
+do :
+ ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol"
+if test "x$ac_cv_func_strtol" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STRTOL 1
+_ACEOF
+
+fi
+done
+
+
+if test $ac_cv_func_strtol = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtol.$ac_objext"
+
+fi
+
+ for ac_func in strtoul
+do :
+ ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul"
+if test "x$ac_cv_func_strtoul" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STRTOUL 1
+_ACEOF
+
+fi
+done
+
+
+if test $ac_cv_func_strtoul = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtoul.$ac_objext"
+
+fi
+
+
+
+ if test "$ac_cv_type_unsigned_long_long_int" = yes; then
+ for ac_func in strtoull
+do :
+ ac_fn_c_check_func "$LINENO" "strtoull" "ac_cv_func_strtoull"
+if test "x$ac_cv_func_strtoull" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STRTOULL 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_strtoull = no; then
+ HAVE_STRTOULL=0
+ fi
+ fi
+
+if test $HAVE_STRTOULL = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtoull.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_STRTOULL=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_STRTOULL 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test "$ac_cv_have_decl_strtoumax" != yes; then
+ HAVE_DECL_STRTOUMAX=0
+ fi
+
+if test $ac_cv_func_strtoumax = no; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS strtoumax.$ac_objext"
+
+
+ ac_fn_c_check_decl "$LINENO" "strtoull" "ac_cv_have_decl_strtoull" "$ac_includes_default"
+if test "x$ac_cv_have_decl_strtoull" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_STRTOULL $ac_have_decl
+_ACEOF
+
+
+
+fi
+
+
+
+
+
+ GNULIB_STRTOUMAX=1
+
+
+
+
+
+
+
+ if test $ac_cv_func_symlink = no; then
+ HAVE_SYMLINK=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether symlink handles trailing slash correctly" >&5
+$as_echo_n "checking whether symlink handles trailing slash correctly... " >&6; }
+if ${gl_cv_func_symlink_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_symlink_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ if (!symlink ("a", "conftest.link/"))
+ result |= 1;
+ if (symlink ("conftest.f", "conftest.lnk2"))
+ result |= 2;
+ else if (!symlink ("a", "conftest.lnk2/"))
+ result |= 4;
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_symlink_works=yes
+else
+ gl_cv_func_symlink_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.f conftest.link conftest.lnk2
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_symlink_works" >&5
+$as_echo "$gl_cv_func_symlink_works" >&6; }
+ if test "$gl_cv_func_symlink_works" != yes; then
+ REPLACE_SYMLINK=1
+ fi
+ fi
+
+if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS symlink.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SYMLINK=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_SYMLINK 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_symlinkat = no; then
+ HAVE_SYMLINKAT=0
+ fi
+
+if test $HAVE_SYMLINKAT = 0; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS symlinkat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_SYMLINKAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_SYMLINKAT 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_sys_stat_h='<'sys/stat.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/stat.h>" >&5
+$as_echo_n "checking absolute name of <sys/stat.h>... " >&6; }
+if ${gl_cv_next_sys_stat_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_sys_stat_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sys/stat.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sys_stat_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_sys_stat_h='<'sys/stat.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "nlink_t" "ac_cv_type_nlink_t" "#include <sys/types.h>
+ #include <sys/stat.h>
+"
+if test "x$ac_cv_type_nlink_t" = xyes; then :
+
+else
+
+$as_echo "#define nlink_t int" >>confdefs.h
+
+fi
+
+
+
+ for gl_func in fchmodat fstat 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:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/stat.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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_sys_types_h='<'sys/types.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sys/types.h>" >&5
+$as_echo_n "checking absolute name of <sys/types.h>... " >&6; }
+if ${gl_cv_next_sys_types_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sys/types.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sys_types_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_sys_types_h" >&5
+$as_echo "$gl_cv_next_sys_types_h" >&6; }
+ fi
+ NEXT_SYS_TYPES_H=$gl_cv_next_sys_types_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/types.h'>'
+ else
+ # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include'
+ gl_next_as_first_directive=$gl_cv_next_sys_types_h
+ fi
+ NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_H=$gl_next_as_first_directive
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_header_sysexits_h = yes; then
+ HAVE_SYSEXITS_H=1
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_sysexits_h='<'sysexits.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <sysexits.h>" >&5
+$as_echo_n "checking absolute name of <sysexits.h>... " >&6; }
+if ${gl_cv_next_sysexits_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_sysexits_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sysexits.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'sysexits.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_sysexits_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_sysexits_h='<'sysexits.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sysexits.h>
+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;
+ }
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ SYSEXITS_H=
+else
+ SYSEXITS_H=sysexits.h
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ else
+ HAVE_SYSEXITS_H=0
+ SYSEXITS_H=sysexits.h
+ fi
+
+
+ if test -n "$SYSEXITS_H"; then
+ GL_GENERATE_SYSEXITS_H_TRUE=
+ GL_GENERATE_SYSEXITS_H_FALSE='#'
+else
+ GL_GENERATE_SYSEXITS_H_TRUE='#'
+ GL_GENERATE_SYSEXITS_H_FALSE=
+fi
+
+
+
+
+ :
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_localtime_r = no; then
+ HAVE_DECL_LOCALTIME_R=0
+ fi
+
+
+ if test $ac_cv_func_localtime_r = yes; then
+ HAVE_LOCALTIME_R=1
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_time_r_posix+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <time.h>
+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);
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_time_r_posix=yes
+else
+ gl_cv_time_r_posix=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ REPLACE_LOCALTIME_R=1
+ fi
+ else
+ HAVE_LOCALTIME_R=0
+ fi
+
+if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS time_r.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_TIME_R=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_TIME_R 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_unistd_h='<'unistd.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <unistd.h>" >&5
+$as_echo_n "checking absolute name of <unistd.h>... " >&6; }
+if ${gl_cv_next_unistd_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_unistd_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <unistd.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'unistd.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_unistd_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_unistd_h='<'unistd.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_unistd_h = yes; then
+ HAVE_UNISTD_H=1
+ else
+ HAVE_UNISTD_H=0
+ fi
+
+
+
+
+
+ for gl_func in chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups gethostname getlogin getlogin_r getpagesize getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r unlink unlinkat usleep; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+/* Some systems declare various items in the wrong headers. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# 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
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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 "$HAVE_LIBUNISTRING" != yes \
+ || {
+
+
+
+ test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+ }
+ }
+ }
+
+
+
+
+ }
+ }; then
+ LIBUNISTRING_UNITYPES_H='unitypes.h'
+ else
+ LIBUNISTRING_UNITYPES_H=
+ fi
+
+
+
+
+ if { test "$HAVE_LIBUNISTRING" != yes \
+ || {
+
+
+
+ test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 0
+ }
+ }
+ }
+
+
+
+
+ }
+ }; then
+ LIBUNISTRING_UNIWIDTH_H='uniwidth.h'
+ else
+ LIBUNISTRING_UNIWIDTH_H=
+ fi
+
+
+
+
+ if { test "$HAVE_LIBUNISTRING" != yes \
+ || {
+
+
+
+ test $LIBUNISTRING_VERSION_MAJOR -lt 0 \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt 4
+ }
+ }
+ }
+
+
+
+
+ }
+ }; then
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE=
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE='#'
+else
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE='#'
+ LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE=
+fi
+
+
+
+
+
+
+ # The Hurd, the Linux kernel, the FreeBSD kernel version 2.2 and later,
+ # 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_os in
+ gnu[0-9]* | \
+ linux-* | linux | \
+ freebsd2.2* | freebsd[3-9]* | freebsd[1-9][0-9]* | \
+ cygwin | \
+ mingw*)
+
+$as_echo "#define UNLINK_CANNOT_UNLINK_DIR 1" >>confdefs.h
+;;
+ esac
+
+
+
+$as_echo "#define USE_UNLOCKED_IO 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_have_decl_unsetenv = no; then
+ HAVE_DECL_UNSETENV=0
+ fi
+ for ac_func in unsetenv
+do :
+ ac_fn_c_check_func "$LINENO" "unsetenv" "ac_cv_func_unsetenv"
+if test "x$ac_cv_func_unsetenv" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_UNSETENV 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_unsetenv = no; then
+ HAVE_UNSETENV=0
+ else
+ HAVE_UNSETENV=1
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for unsetenv() return type" >&5
+$as_echo_n "checking for unsetenv() return type... " >&6; }
+if ${gt_cv_func_unsetenv_ret+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#undef _BSD
+#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
+#include <stdlib.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int unsetenv (const char *name);
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gt_cv_func_unsetenv_ret='int'
+else
+ gt_cv_func_unsetenv_ret='void'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+$as_echo "#define VOID_UNSETENV 1" >>confdefs.h
+
+ REPLACE_UNSETENV=1
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether unsetenv obeys POSIX" >&5
+$as_echo_n "checking whether unsetenv obeys POSIX... " >&6; }
+if ${gl_cv_func_unsetenv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_unsetenv_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <stdlib.h>
+ #include <errno.h>
+ extern char **environ;
+
+int
+main ()
+{
+
+ char entry1[] = "a=1";
+ char entry2[] = "b=2";
+ char *env[] = { entry1, entry2, NULL };
+ if (putenv ((char *) "a=1")) return 1;
+ if (putenv (entry2)) return 2;
+ entry2[0] = 'a';
+ unsetenv ("a");
+ if (getenv ("a")) return 3;
+ if (!unsetenv ("") || errno != EINVAL) return 4;
+ entry2[0] = 'b';
+ environ = env;
+ if (!getenv ("a")) return 5;
+ entry2[0] = 'a';
+ unsetenv ("a");
+ if (getenv ("a")) return 6;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_unsetenv_works=yes
+else
+ gl_cv_func_unsetenv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ fi
+ fi
+
+if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS unsetenv.$ac_objext"
+
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_UNSETENV=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_UNSETENV 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_futimens = no && test $ac_cv_func_futimesat = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether futimesat handles NULL file" >&5
+$as_echo_n "checking whether futimesat handles NULL file... " >&6; }
+if ${gl_cv_func_futimesat_works+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stddef.h>
+#include <sys/times.h>
+#include <fcntl.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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_futimesat_works=yes
+else
+ gl_cv_func_futimesat_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ rm -f conftest.file
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_futimesat_works" >&5
+$as_echo "$gl_cv_func_futimesat_works" >&6; }
+ if test "$gl_cv_func_futimesat_works" != yes; then
+
+$as_echo "#define FUTIMESAT_NULL_BUG 1" >>confdefs.h
+
+ fi
+ fi
+
+
+
+
+
+ if test $ac_cv_func_utimensat = no; then
+ HAVE_UTIMENSAT=0
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether utimensat works" >&5
+$as_echo_n "checking whether utimensat works... " >&6; }
+if ${gl_cv_func_utimensat_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_utimensat_works="guessing no"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+int
+main ()
+{
+int result = 0;
+ const char *f = "conftest.file";
+ if (close (creat (f, 0600)))
+ return 1;
+ /* Test whether the AT_SYMLINK_NOFOLLOW flag is supported. */
+ {
+ if (utimensat (AT_FDCWD, f, NULL, AT_SYMLINK_NOFOLLOW))
+ result |= 2;
+ }
+ /* Test whether UTIME_NOW and UTIME_OMIT work. */
+ {
+ struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+ if (utimensat (AT_FDCWD, f, ts, 0))
+ result |= 4;
+ }
+ sleep (1);
+ {
+ struct timespec ts[2] = { { 1, UTIME_NOW }, { 1, UTIME_OMIT } };
+ struct stat st;
+ if (utimensat (AT_FDCWD, f, ts, 0))
+ result |= 8;
+ if (stat (f, &st))
+ result |= 16;
+ else if (st.st_ctime < st.st_atime)
+ result |= 32;
+ }
+ return result;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef __linux__
+/* The Linux kernel added utimensat in 2.6.22, but has bugs with UTIME_OMIT
+ in several file systems as recently as 2.6.32. Always replace utimensat
+ to support older kernels. */
+choke me
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_utimensat_works=yes
+else
+ gl_cv_func_utimensat_works="needs runtime check"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ gl_cv_func_utimensat_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_utimensat_works" >&5
+$as_echo "$gl_cv_func_utimensat_works" >&6; }
+ if test "$gl_cv_func_utimensat_works" != yes; then
+ REPLACE_UTIMENSAT=1
+ fi
+ fi
+
+if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS utimensat.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_UTIMENSAT=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_UTIMENSAT 1" >>confdefs.h
+
+
+
+
+
+ if test $ac_cv_func_vasnprintf = no; then
+
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS vasnprintf.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS printf-args.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS printf-parse.$ac_objext"
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS asnprintf.$ac_objext"
+
+ if test $ac_cv_func_vasnprintf = yes; then
+
+$as_echo "#define REPLACE_VASNPRINTF 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ ac_fn_c_check_type "$LINENO" "ptrdiff_t" "ac_cv_type_ptrdiff_t" "$ac_includes_default"
+if test "x$ac_cv_type_ptrdiff_t" = xyes; then :
+
+else
+
+$as_echo "#define ptrdiff_t long" >>confdefs.h
+
+
+fi
+
+
+
+
+
+
+
+ fi
+
+
+ for ac_func in vasprintf
+do :
+ ac_fn_c_check_func "$LINENO" "vasprintf" "ac_cv_func_vasprintf"
+if test "x$ac_cv_func_vasprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_VASPRINTF 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_vasprintf = no; then
+
+
+
+
+
+
+
+
+
+ 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
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_VASPRINTF 1" >>confdefs.h
+
+
+
+
+
+ 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 PACKAGE_PACKAGER "$withval"
+_ACEOF
+ ;;
+ esac
+
+fi
+
+
+
+# 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_fn_error $? "The --with-packager-{bug-reports,version} options require --with-packager" "$LINENO" 5
+ fi
+
+
+
+ gl_cv_func_vsnprintf_usable=no
+ for ac_func in vsnprintf
+do :
+ ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
+if test "x$ac_cv_func_vsnprintf" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_VSNPRINTF 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_vsnprintf = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether snprintf respects a size of 1" >&5
+$as_echo_n "checking whether snprintf respects a size of 1... " >&6; }
+if ${gl_cv_func_snprintf_size1+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ gl_cv_func_snprintf_size1="guessing yes"
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+int main()
+{
+ static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+ my_snprintf (buf, 1, "%d", 12345);
+ return buf[1] != 'E';
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_snprintf_size1=yes
+else
+ gl_cv_func_snprintf_size1=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_snprintf_size1" >&5
+$as_echo "$gl_cv_func_snprintf_size1" >&6; }
+
+ case "$gl_cv_func_snprintf_size1" in
+ *yes)
+
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether printf supports POSIX/XSI format strings with positions" >&5
+$as_echo_n "checking whether printf supports POSIX/XSI format strings with positions... " >&6; }
+if ${gl_cv_func_printf_positions+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+ gl_cv_func_printf_positions="guessing no";;
+ beos*) gl_cv_func_printf_positions="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+ *) gl_cv_func_printf_positions="guessing yes";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+ dollar expansion (possibly an autoconf bug). */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, "55 33") != 0);
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_printf_positions=yes
+else
+ gl_cv_func_printf_positions=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_printf_positions" >&5
+$as_echo "$gl_cv_func_printf_positions" >&6; }
+
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_vsnprintf_usable=yes
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ if test $gl_cv_func_vsnprintf_usable = no; then
+
+
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS vsnprintf.$ac_objext"
+
+ if test $ac_cv_func_vsnprintf = yes; then
+ REPLACE_VSNPRINTF=1
+ fi
+ :
+
+ fi
+
+ if test $ac_cv_have_decl_vsnprintf = no; then
+ HAVE_DECL_VSNPRINTF=0
+ fi
+
+
+
+
+
+
+ GNULIB_VSNPRINTF=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_VSNPRINTF 1" >>confdefs.h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_wchar_h='<'wchar.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wchar.h>" >&5
+$as_echo_n "checking absolute name of <wchar.h>... " >&6; }
+if ${gl_cv_next_wchar_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_wchar_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <wchar.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'wchar.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_wchar_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_wchar_h='<'wchar.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 wmemchr wmemcmp wmemcpy wmemmove wmemset wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth ; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+#endif
+#include <wchar.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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 $ac_cv_func_mbsinit = yes && test $ac_cv_func_mbrtowc = yes; then
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc handles incomplete characters" >&5
+$as_echo_n "checking whether mbrtowc handles incomplete characters... " >&6; }
+if ${gl_cv_func_mbrtowc_incomplete_state+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_incomplete_state=yes
+else
+ gl_cv_func_mbrtowc_incomplete_state=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_mbrtowc_incomplete_state" >&5
+$as_echo "$gl_cv_func_mbrtowc_incomplete_state" >&6; }
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc works as well as mbtowc" >&5
+$as_echo_n "checking whether mbrtowc works as well as mbtowc... " >&6; }
+if ${gl_cv_func_mbrtowc_sanitycheck+:} false; 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 confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_mbrtowc_sanitycheck=yes
+else
+ gl_cv_func_mbrtowc_sanitycheck=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 $ac_cv_func_wcrtomb = no; then
+ HAVE_WCRTOMB=0
+ ac_fn_c_check_decl "$LINENO" "wcrtomb" "ac_cv_have_decl_wcrtomb" "
+/* 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>
+
+"
+if test "x$ac_cv_have_decl_wcrtomb" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_WCRTOMB $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_wcrtomb = yes; then
+ REPLACE_WCRTOMB=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_WCRTOMB=1
+ else
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether wcrtomb return value is correct" >&5
+$as_echo_n "checking whether wcrtomb return value is correct... " >&6; }
+if ${gl_cv_func_wcrtomb_retval+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ case "$host_os" in
+ # 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 :
+ :
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 1;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 2;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 4;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 8;
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_wcrtomb_retval=yes
+else
+ gl_cv_func_wcrtomb_retval=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ fi
+ fi
+
+if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS wcrtomb.$ac_objext"
+
+
+ :
+
+fi
+
+
+
+
+
+ GNULIB_WCRTOMB=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_WCRTOMB 1" >>confdefs.h
+
+
+
+
+
+
+
+
+ if test $ac_cv_func_iswcntrl = yes; then
+ HAVE_ISWCNTRL=1
+ else
+ HAVE_ISWCNTRL=0
+ fi
+
+
+
+
+
+ if test $gt_cv_c_wint_t = yes; then
+ HAVE_WINT_T=1
+ else
+ HAVE_WINT_T=0
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ if test $gl_cv_have_include_next = yes; then
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <wctype.h>" >&5
+$as_echo_n "checking absolute name of <wctype.h>... " >&6; }
+if ${gl_cv_next_wctype_h+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test $ac_cv_header_wctype_h = yes; then
+
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <wctype.h>
+
+_ACEOF
+ case "$host_os" in
+ aix*) gl_absname_cpp="$ac_cpp -C" ;;
+ *) gl_absname_cpp="$ac_cpp" ;;
+ esac
+
+ case "$host_os" in
+ mingw*)
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+
+ gl_header_literal_regex=`echo 'wctype.h' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+ s|^/[^/]|//&|
+ p
+ q
+ }'
+ gl_cv_next_wctype_h='"'`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 |
+ sed -n "$gl_absolute_header_sed"`'"'
+ else
+ gl_cv_next_wctype_h='<'wctype.h'>'
+ fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+ if test $ac_cv_header_wctype_h = yes; then
+ if test $ac_cv_func_iswcntrl = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether iswcntrl works" >&5
+$as_echo_n "checking whether iswcntrl works... " >&6; }
+if ${gl_cv_func_iswcntrl_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+ #if __GNU_LIBRARY__ == 1
+ Linux libc5 i18n is broken.
+ #endif
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ int main () { return iswprint ('x') == 0; }
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_iswcntrl_works=yes
+else
+ gl_cv_func_iswcntrl_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_iswcntrl_works" >&5
+$as_echo "$gl_cv_func_iswcntrl_works" >&6; }
+ fi
+ HAVE_WCTYPE_H=1
+ else
+ HAVE_WCTYPE_H=0
+ fi
+
+
+ if test "$gl_cv_func_iswcntrl_works" = no; then
+ REPLACE_ISWCNTRL=1
+ else
+ REPLACE_ISWCNTRL=0
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+ fi
+
+ if test $REPLACE_ISWCNTRL = 1; then
+ REPLACE_TOWLOWER=1
+ else
+ for ac_func in towlower
+do :
+ ac_fn_c_check_func "$LINENO" "towlower" "ac_cv_func_towlower"
+if test "x$ac_cv_func_towlower" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_TOWLOWER 1
+_ACEOF
+
+fi
+done
+
+ if test $ac_cv_func_towlower = yes; then
+ REPLACE_TOWLOWER=0
+ else
+ ac_fn_c_check_decl "$LINENO" "towlower" "ac_cv_have_decl_towlower" "/* 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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+
+"
+if test "x$ac_cv_have_decl_towlower" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_TOWLOWER $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_towlower = yes; then
+ REPLACE_TOWLOWER=1
+ else
+ REPLACE_TOWLOWER=0
+ fi
+ fi
+ fi
+
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+ :
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctype_t" >&5
+$as_echo_n "checking for wctype_t... " >&6; }
+if ${gl_cv_type_wctype_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ wctype_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctype_t=yes
+else
+ gl_cv_type_wctype_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctype_t" >&5
+$as_echo "$gl_cv_type_wctype_t" >&6; }
+ if test $gl_cv_type_wctype_t = no; then
+ HAVE_WCTYPE_T=0
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wctrans_t" >&5
+$as_echo_n "checking for wctrans_t... " >&6; }
+if ${gl_cv_type_wctrans_t+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>
+ #include <wctype.h>
+ wctrans_t a;
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ gl_cv_type_wctrans_t=yes
+else
+ gl_cv_type_wctrans_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_type_wctrans_t" >&5
+$as_echo "$gl_cv_type_wctrans_t" >&6; }
+ if test $gl_cv_type_wctrans_t = no; then
+ HAVE_WCTRANS_T=0
+ fi
+
+
+ for gl_func in wctype iswctype wctrans towctrans ; do
+ as_gl_Symbol=`$as_echo "gl_cv_have_raw_decl_$gl_func" | $as_tr_sh`
+ { $as_echo "$as_me:${as_lineno-$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 eval \${$as_gl_Symbol+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+
+int
+main ()
+{
+#undef $gl_func
+ (void) $gl_func;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ eval "$as_gl_Symbol=yes"
+else
+ eval "$as_gl_Symbol=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$as_gl_Symbol
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ if eval test \"x\$"$as_gl_Symbol"\" = 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
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_fn_c_check_decl "$LINENO" "wcwidth" "ac_cv_have_decl_wcwidth" "
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.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>
+
+"
+if test "x$ac_cv_have_decl_wcwidth" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_WCWIDTH $ac_have_decl
+_ACEOF
+
+ if test $ac_cv_have_decl_wcwidth != yes; then
+ HAVE_DECL_WCWIDTH=0
+ fi
+
+ if test $ac_cv_func_wcwidth = yes; then
+ HAVE_WCWIDTH=1
+ { $as_echo "$as_me:${as_lineno-$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 ${gl_cv_func_wcwidth_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ # Guess yes on glibc and AIX 7 systems.
+ *-gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";;
+ *) gl_cv_func_wcwidth_works="guessing no";;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <locale.h>
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.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>
+#if !HAVE_DECL_WCWIDTH
+extern
+# ifdef __cplusplus
+"C"
+# endif
+int wcwidth (int);
+#endif
+int main ()
+{
+ int result = 0;
+ if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
+ {
+ if (wcwidth (0x0301) > 0)
+ result |= 1;
+ if (wcwidth (0x200B) > 0)
+ result |= 2;
+ }
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ gl_cv_func_wcwidth_works=yes
+else
+ gl_cv_func_wcwidth_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ HAVE_WCWIDTH=0
+ fi
+
+if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext"
+
+fi
+
+
+
+
+
+ GNULIB_WCWIDTH=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_WCWIDTH 1" >>confdefs.h
+
+
+
+
+
+
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_WRITE=1
+ fi
+
+
+
+if test $REPLACE_WRITE = 1; then
+
+
+
+
+
+
+
+
+ gl_LIBOBJS="$gl_LIBOBJS write.$ac_objext"
+
+
+
+
+fi
+
+
+
+
+
+ GNULIB_WRITE=1
+
+
+
+
+
+$as_echo "#define GNULIB_TEST_WRITE 1" >>confdefs.h
+
+
+
+
+
+
+ :
+
+
+ :
+
+
+
+ :
+
+
+
+
+ for ac_header in stdint.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_STDINT_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+ :
+
+
+
+ :
+
+
+
+
+
+
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS --flag=xasprintf:1:c-format"
+
+ # End of code from modules
+
+
+
+
+
+
+
+
+
+ gltests_libdeps=
+ gltests_ltlibdeps=
+
+
+
+
+
+
+
+
+
+ gl_source_base='tests'
+ gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
+
+ gl_module_indicator_condition=$gltests_WITNESS
+
+
+
+
+
+
+
+
+
+ LIBGNU_LIBDEPS="$gl_libdeps"
+
+ LIBGNU_LTLIBDEPS="$gl_ltlibdeps"
+
+
+# paxutils modules
+
+
+
+
+
+
+
+
+{ $as_echo "$as_me:${as_lineno-$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 ${ac_cv_header_time+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+
+int
+main ()
+{
+if ((struct tm *) 0)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ ac_cv_header_time=yes
+else
+ ac_cv_header_time=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
+$as_echo "$ac_cv_header_time" >&6; }
+if test $ac_cv_header_time = yes; then
+
+$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
+
+fi
+
+ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+_ACEOF
+
+
+$as_echo "#define HAVE_ST_BLKSIZE 1" >>confdefs.h
+
+fi
+
+
+
+
+
+
+ # Set LIB_SETSOCKOPT to -lnsl -lsocket if necessary.
+ pu_save_LIBS=$LIBS
+ LIB_SETSOCKOPT=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' socket; 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' socket; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib -lnsl $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing setsockopt" >&5
+$as_echo_n "checking for library containing setsockopt... " >&6; }
+if ${ac_cv_search_setsockopt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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 setsockopt ();
+int
+main ()
+{
+return setsockopt ();
+ ;
+ 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_setsockopt=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_setsockopt+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_setsockopt+:} false; then :
+
+else
+ ac_cv_search_setsockopt=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+
+fi
+
+
+ case "$ac_cv_search_setsockopt" in
+ -l*) LIB_SETSOCKOPT=$ac_cv_search_setsockopt
+ esac
+
+ LIBS=$pu_save_LIBS
+
+ enable_rmt() {
+ if test $ac_cv_header_sys_mtio_h = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remote tape header files" >&5
+$as_echo_n "checking for remote tape header files... " >&6; }
+if ${pu_cv_header_rmt+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#if HAVE_SGTTY_H
+# include <sgtty.h>
+#endif
+#include <sys/socket.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+ pu_cv_header_rmt=yes
+else
+ pu_cv_header_rmt=no
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ }
+
+ for ac_header in sys/mtio.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "sys/mtio.h" "ac_cv_header_sys_mtio_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mtio_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_MTIO_H 1
+_ACEOF
+
+fi
+
+done
+
+ { $as_echo "$as_me:${as_lineno-$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 ${pu_cv_header_mtio_check_field+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/mtio.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "mt_model" >/dev/null 2>&1; then :
+ pu_cv_header_mtio_check_field=mt_model
+else
+ pu_cv_header_mtio_check_field=mt_type
+fi
+rm -f conftest*
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+_ACEOF
+
+
+
+
+ if test "x$DEFAULT_RMT_DIR" != x; then
+ DEFAULT_RMT_COMMAND=$DEFAULT_RMT_DIR/rmt
+ else
+ DEFAULT_RMT_DIR='$(libexecdir)'
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$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) as_fn_error $? "Invalid argument to --with-rmt" "$LINENO" 5;;
+ /*) DEFAULT_RMT_COMMAND=$withval
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, use $withval instead" >&5
+$as_echo "no, use $withval instead" >&6; };;
+ *) as_fn_error $? "Argument to --with-rmt must be an absolute file name" "$LINENO" 5;;
+ esac
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+ enable_rmt
+ if test "$PU_RMT_PROG" = ""; then
+ { $as_echo "$as_me:${as_lineno-$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
+
+
+
+ if test "x$DEFAULT_RMT_COMMAND" != x; then
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_RMT_COMMAND "$DEFAULT_RMT_COMMAND"
+_ACEOF
+
+ fi
+
+
+
+
+
+
+
+
+
+ for ac_header in sys/buf.h
+do :
+ ac_fn_c_check_header_compile "$LINENO" "sys/buf.h" "ac_cv_header_sys_buf_h" "#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+"
+if test "x$ac_cv_header_sys_buf_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SYS_BUF_H 1
+_ACEOF
+
+fi
+
+done
+
+
+
+
+ ac_fn_c_check_member "$LINENO" "struct stat" "st_blksize" "ac_cv_member_struct_stat_st_blksize" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_blksize" = xyes; then :
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_STRUCT_STAT_ST_BLKSIZE 1
+_ACEOF
+
+
+fi
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5
+$as_echo_n "checking for library containing gethostbyname... " >&6; }
+if ${ac_cv_search_gethostbyname+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* 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
+ if ac_fn_c_try_link "$LINENO"; then :
+ ac_cv_search_gethostbyname=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext
+ if ${ac_cv_search_gethostbyname+:} false; then :
+ break
+fi
+done
+if ${ac_cv_search_gethostbyname+:} false; then :
+
+else
+ ac_cv_search_gethostbyname=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+
+
+
+
+
+
+
+
+
+ac_fn_c_check_decl "$LINENO" "getgrgid" "ac_cv_have_decl_getgrgid" "#include <grp.h>
+"
+if test "x$ac_cv_have_decl_getgrgid" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETGRGID $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "getpwuid" "ac_cv_have_decl_getpwuid" "#include <pwd.h>
+"
+if test "x$ac_cv_have_decl_getpwuid" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_GETPWUID $ac_have_decl
+_ACEOF
+
+ac_fn_c_check_decl "$LINENO" "time" "ac_cv_have_decl_time" "#include <time.h>
+"
+if test "x$ac_cv_have_decl_time" = xyes; then :
+ ac_have_decl=1
+else
+ ac_have_decl=0
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_DECL_TIME $ac_have_decl
+_ACEOF
+
+
+ac_fn_c_check_func "$LINENO" "waitpid" "ac_cv_func_waitpid"
+if test "x$ac_cv_func_waitpid" = xyes; then :
+ $as_echo "#define HAVE_WAITPID 1" >>confdefs.h
+
+else
+ case " $LIBOBJS " in
+ *" waitpid.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS waitpid.$ac_objext"
+ ;;
+esac
+
+fi
+
+
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for remote shell" >&5
+$as_echo_n "checking for remote shell... " >&6; }
+if ${tar_cv_path_RSH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$RSH"; then
+ tar_cv_path_RSH=$RSH
+ else
+ tar_cv_path_RSH=no
+ for ac_file in /usr/ucb/rsh /usr/bin/remsh /usr/bin/rsh /usr/bsd/rsh \
+ /usr/bin/nsh /usr/bin/rcmd
+ do
+ # Prefer a non-symlink rsh to a symlink one, so that binaries built
+ # on AIX 4.1.4, where /usr/ucb/rsh is a symlink to /usr/bin/rsh
+ # will run on AIX 4.3.0, which has only /usr/bin/rsh.
+ if test -f $ac_file; then
+ if (test -h $ac_file) 2>/dev/null; then
+ test $tar_cv_path_RSH = no && tar_cv_path_RSH=$ac_file
+ else
+ tar_cv_path_RSH=$ac_file
+ break
+ fi
+ fi
+ done
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$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 :
+ ac_fn_c_check_header_mongrel "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default"
+if test "x$ac_cv_header_netdb_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_NETDB_H 1
+_ACEOF
+
+fi
+
+done
+
+else
+
+cat >>confdefs.h <<_ACEOF
+#define REMOTE_SHELL "$tar_cv_path_RSH"
+_ACEOF
+
+fi
+
+
+
+
+
+# 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:${as_lineno-$LINENO}: checking for default archive format" >&5
+$as_echo_n "checking for default archive format... " >&6; }
+
+
+
+if test -z "$DEFAULT_ARCHIVE_FORMAT"; then
+ DEFAULT_ARCHIVE_FORMAT="GNU"
+fi
+case $DEFAULT_ARCHIVE_FORMAT in
+ V7|OLDGNU|USTAR|POSIX|GNU) ;;
+ *) as_fn_error $? "Invalid format name" "$LINENO" 5;;
+esac
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_ARCHIVE_FORMAT ${DEFAULT_ARCHIVE_FORMAT}_FORMAT
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_ARCHIVE_FORMAT" >&5
+$as_echo "$DEFAULT_ARCHIVE_FORMAT" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$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.
+ # FIXME: Rearrange, here.
+ case $DEFAULT_ARCHIVE in
+ *[0-7][lmh])
+
+$as_echo "#define DENSITY_LETTER 1" >>confdefs.h
+
+ device_prefix=`echo $DEFAULT_ARCHIVE | sed 's/0-7lmh$//'`
+ ;;
+ *[0-7])
+ device_prefix=`echo $DEFAULT_ARCHIVE | sed 's/0-7$//'`
+ ;;
+ *)
+ device_prefix=
+ ;;
+ esac
+ case "$device_prefix" in
+ ?*)
+
+cat >>confdefs.h <<_ACEOF
+#define DEVICE_PREFIX "$device_prefix"
+_ACEOF
+
+ ;;
+ esac
+fi
+
+cat >>confdefs.h <<_ACEOF
+#define DEFAULT_ARCHIVE "$DEFAULT_ARCHIVE"
+_ACEOF
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_ARCHIVE" >&5
+$as_echo "$DEFAULT_ARCHIVE" >&6; }
+
+
+{ $as_echo "$as_me:${as_lineno-$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
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $DEFAULT_BLOCKING" >&5
+$as_echo "$DEFAULT_BLOCKING" >&6; }
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for default quoting style" >&5
+$as_echo_n "checking for default quoting style... " >&6; }
+
+
+DEFAULT_QUOTING_STYLE="escape"
+
+
+case $DEFAULT_QUOTING_STYLE in
+ literal|shell|shell-always|c|escape|locale|clocale) ;;
+*) as_fn_error $? "Invalid quoting style" "$LINENO" 5;;
+esac
+{ $as_echo "$as_me:${as_lineno-$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
+#define DEFAULT_QUOTING_STYLE $DEFAULT_QUOTING_STYLE
+_ACEOF
+
+
+# Iconv
+
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else
+ with_gnu_ld=no
+fi
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { $as_echo "$as_me:${as_lineno-$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
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # 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%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${acl_cv_path_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # 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" != yes && break ;;
+ esac
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${acl_cv_prog_gnu_ld+:} false; then :
+ $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
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes ;;
+*)
+ acl_cv_prog_gnu_ld=no ;;
+esac
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
+$as_echo "$acl_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$acl_cv_prog_gnu_ld
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
+$as_echo_n "checking for shared library run path origin... " >&6; }
+if ${acl_cv_rpath+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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"
+ acl_libname_spec="$acl_cv_libname_spec"
+ acl_library_names_spec="$acl_cv_library_names_spec"
+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ acl_hardcode_direct="$acl_cv_hardcode_direct"
+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ # Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then :
+ enableval=$enable_rpath; :
+else
+ enable_rpath=yes
+fi
+
+
+
+
+ acl_libdirstem=lib
+ acl_libdirstem2=
+ case "$host_os" in
+ solaris*)
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
+$as_echo_n "checking for 64-bit host... " >&6; }
+if ${gl_cv_solaris_64bit+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#ifdef _LP64
+sixtyfour bits
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
+ gl_cv_solaris_64bit=yes
+else
+ gl_cv_solaris_64bit=no
+fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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
+ sparc*) acl_libdirstem2=lib/sparcv9 ;;
+ i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
+ esac
+ fi
+ ;;
+ *)
+ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ 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 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ fi
+ ;;
+ esac
+ test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+
+
+
+
+
+
+
+
+
+
+
+
+ use_additional=yes
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+
+# Check whether --with-libiconv-prefix was given.
+if test "${with_libiconv_prefix+set}" = set; then :
+ withval=$with_libiconv_prefix;
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
+ fi
+ fi
+
+fi
+
+ LIBICONV=
+ LTLIBICONV=
+ INCICONV=
+ LIBICONV_PREFIX=
+ HAVE_LIBICONV=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='iconv '
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
+ else
+ :
+ fi
+ else
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ dir="$additional_libdir"
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ if test "$acl_hardcode_direct" = yes; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
+ fi
+ fi
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = 'iconv'; then
+ LIBICONV_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = 'iconv'; then
+ LIBICONV_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INCICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -n "$found_la"; then
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ else
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ for found_dir in $ltrpathdirs; do
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
+ done
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+ am_save_CPPFLAGS="$CPPFLAGS"
+
+ for element in $INCICONV; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if ${am_cv_func_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$am_save_LIBS"
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
+$as_echo_n "checking for working iconv... " >&6; }
+if ${am_cv_func_iconv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ int result = 0;
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ 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_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ result |= 1;
+ iconv_close (cd_utf8_to_88591);
+ }
+ }
+ /* 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)
+ result |= 2;
+ iconv_close (cd_ascii_to_88591);
+ }
+ }
+ /* Test against AIX 6.1..7.1 bug: Buffer overrun. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304";
+ static char buf[2] = { (char)0xDE, (char)0xAD };
+ const char *inptr = input;
+ size_t inbytesleft = 1;
+ char *outptr = buf;
+ size_t outbytesleft = 1;
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
+ result |= 4;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ result |= 8;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ result |= 16;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ am_cv_func_iconv_works=yes
+else
+ am_cv_func_iconv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ LIBS="$am_save_LIBS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+
+$as_echo "#define HAVE_ICONV 1" >>confdefs.h
+
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+ else
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+
+
+
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
+ if ${am_cv_proto_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+ am_cv_proto_iconv_arg1=""
+else
+ am_cv_proto_iconv_arg1="const"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ 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);"
+fi
+
+ am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ { $as_echo "$as_me:${as_lineno-$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
+_ACEOF
+
+
+ fi
+
+for ac_header in iconv.h
+do :
+ ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default"
+if test "x$ac_cv_header_iconv_h" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_ICONV_H 1
+_ACEOF
+
+fi
+
+done
+
+ac_fn_c_check_type "$LINENO" "iconv_t" "ac_cv_type_iconv_t" "
+#ifdef HAVE_ICONV_H
+# include <iconv.h>
+#endif
+
+"
+if test "x$ac_cv_type_iconv_t" = xyes; then :
+ :
+else
+
+$as_echo "#define iconv_t int" >>confdefs.h
+
+fi
+
+
+# Gettext.
+
+ { $as_echo "$as_me:${as_lineno-$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
+else
+ USE_NLS=yes
+fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+
+
+
+
+ GETTEXT_MACRO_VERSION=0.18
+
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGFMT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case "$MSGFMT" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+ ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GMSGFMT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GMSGFMT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ 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_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+
+ case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+ *) MSGFMT_015=$MSGFMT ;;
+ esac
+
+ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+ *) GMSGFMT_015=$GMSGFMT ;;
+ esac
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XGETTEXT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case "$XGETTEXT" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+ ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+ rm -f messages.po
+
+ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+ *) XGETTEXT_015=$XGETTEXT ;;
+ esac
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+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
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGMERGE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case "$MSGMERGE" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&5
+ if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
+ ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
+ ;;
+esac
+fi
+MSGMERGE="$ac_cv_path_MSGMERGE"
+if test "$MSGMERGE" != ":"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
+$as_echo "$MSGMERGE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$localedir" || localedir='${datadir}/locale'
+
+
+ test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+
+
+ ac_config_commands="$ac_config_commands po-directories"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
+$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
+if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <CoreFoundation/CFPreferences.h>
+int
+main ()
+{
+CFPreferencesCopyAppValue(NULL, NULL)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gt_cv_func_CFPreferencesCopyAppValue=yes
+else
+ gt_cv_func_CFPreferencesCopyAppValue=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$gt_save_LIBS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+
+$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
+
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
+$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
+if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <CoreFoundation/CFLocale.h>
+int
+main ()
+{
+CFLocaleCopyCurrent();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ gt_cv_func_CFLocaleCopyCurrent=yes
+else
+ gt_cv_func_CFLocaleCopyCurrent=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$gt_save_LIBS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
+ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+
+$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
+
+ fi
+ INTL_MACOSX_LIBS=
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+ fi
+
+
+
+
+
+
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ case " $gt_needs " in
+ *" need-formatstring-macros "*) gt_api_version=3 ;;
+ *" need-ngettext "*) gt_api_version=2 ;;
+ *) gt_api_version=1 ;;
+ esac
+ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+
+
+ if test $gt_api_version -ge 3; then
+ gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+'
+ else
+ gt_revision_test_code=
+ fi
+ if test $gt_api_version -ge 2; then
+ gt_expression_test_code=' + * ngettext ("", "", 0)'
+ else
+ gt_expression_test_code=
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
+$as_echo_n "checking for GNU gettext in libc... " >&6; }
+if eval \${$gt_func_gnugettext_libc+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+
+int
+main ()
+{
+
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$gt_func_gnugettext_libc=yes"
+else
+ eval "$gt_func_gnugettext_libc=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$gt_func_gnugettext_libc
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+
+
+
+
+
+ am_save_CPPFLAGS="$CPPFLAGS"
+
+ for element in $INCICONV; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if ${am_cv_func_iconv+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$am_save_LIBS"
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+ if test "$am_cv_func_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
+$as_echo_n "checking for working iconv... " >&6; }
+if ${am_cv_func_iconv_works+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ if test "$cross_compiling" = yes; then :
+
+ case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac
+
+else
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ int result = 0;
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ 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_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ result |= 1;
+ iconv_close (cd_utf8_to_88591);
+ }
+ }
+ /* 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)
+ result |= 2;
+ iconv_close (cd_ascii_to_88591);
+ }
+ }
+ /* Test against AIX 6.1..7.1 bug: Buffer overrun. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304";
+ static char buf[2] = { (char)0xDE, (char)0xAD };
+ const char *inptr = input;
+ size_t inbytesleft = 1;
+ char *outptr = buf;
+ size_t outbytesleft = 1;
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
+ result |= 4;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ result |= 8;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ result |= 16;
+ return result;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+ am_cv_func_iconv_works=yes
+else
+ am_cv_func_iconv_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ LIBS="$am_save_LIBS"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$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 ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+
+$as_echo "#define HAVE_ICONV 1" >>confdefs.h
+
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+ else
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+
+
+
+
+
+
+
+
+
+
+
+ use_additional=yes
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+
+# Check whether --with-libintl-prefix was given.
+if test "${with_libintl_prefix+set}" = set; then :
+ withval=$with_libintl_prefix;
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
+ fi
+ fi
+
+fi
+
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ LIBINTL_PREFIX=
+ HAVE_LIBINTL=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='intl '
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
+ else
+ :
+ fi
+ else
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ dir="$additional_libdir"
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ if test "$acl_hardcode_direct" = yes; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ haveit=
+ for x in $LDFLAGS $LIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
+ fi
+ fi
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = 'intl'; then
+ LIBINTL_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = 'intl'; then
+ LIBINTL_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INCINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -n "$found_la"; then
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+ else
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ for found_dir in $ltrpathdirs; do
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
+ done
+ fi
+
+
+
+
+
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
+$as_echo_n "checking for GNU gettext in libintl... " >&6; }
+if eval \${$gt_func_gnugettext_libintl+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+
+int
+main ()
+{
+
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$gt_func_gnugettext_libintl=yes"
+else
+ eval "$gt_func_gnugettext_libintl=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+
+int
+main ()
+{
+
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ eval "$gt_func_gnugettext_libintl=yes"
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"
+fi
+eval ac_res=\$$gt_func_gnugettext_libintl
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+ fi
+
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
+
+
+
+ if test -n "$INTL_MACOSX_LIBS"; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+ fi
+ fi
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
+
+ else
+ USE_NLS=no
+ fi
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
+$as_echo_n "checking whether to use NLS... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+ if test "$USE_NLS" = "yes"; then
+ { $as_echo "$as_me:${as_lineno-$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"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ { $as_echo "$as_me:${as_lineno-$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
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
+$as_echo_n "checking how to link with libintl... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
+$as_echo "$LIBINTL" >&6; }
+
+ for element in $INCINTL; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+ fi
+
+
+$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
+
+
+$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
+
+ fi
+
+ POSUB=po
+ fi
+
+
+
+ INTLLIBS="$LIBINTL"
+
+
+
+
+
+
+
+
+# Initialize the test suite.
+ac_config_commands="$ac_config_commands tests/atconfig"
+
+ac_config_files="$ac_config_files tests/Makefile tests/atlocal"
+ # FIXME: tests/preset?
+
+AUTOM4TE=${AUTOM4TE-"${am_missing_run}autom4te"}
+
+
+
+
+# Check whether --enable-backup-scripts was given.
+if test "${enable_backup_scripts+set}" = set; then :
+ enableval=$enable_backup_scripts; case $enableval in
+ yes) BACKUP_LIBEXEC_SCRIPTS='$(BACKUP_LIBEXEC_SCRIPTS_LIST)'
+ BACKUP_SBIN_SCRIPTS='$(BACKUP_SBIN_SCRIPTS_LIST)'
+ ;;
+ esac
+fi
+
+
+
+if date +%Y-%m-%d 2>/dev/null >&2; then
+ BACKUP_SED_COND='/^\#ELSE_DATE_FORMAT_OK/,/^\#ENDIF_DATE_FORMAT_OK/d;/^\#IF_DATE_FORMAT_OK/d'
+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 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
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { $as_echo "$as_me:${as_lineno-$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= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+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=`$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.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+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
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_COND_LIBTOOL_TRUE}" && test -z "${GL_COND_LIBTOOL_FALSE}"; then
+ as_fn_error $? "conditional \"GL_COND_LIBTOOL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ALLOCA_H_TRUE}" && test -z "${GL_GENERATE_ALLOCA_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_ALLOCA_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_ERRNO_H_TRUE}" && test -z "${GL_GENERATE_ERRNO_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_ERRNO_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_FLOAT_H_TRUE}" && test -z "${GL_GENERATE_FLOAT_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_FLOAT_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_FNMATCH_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDINT_H_TRUE}" && test -z "${GL_GENERATE_STDINT_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDINT_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDALIGN_H_TRUE}" && test -z "${GL_GENERATE_STDALIGN_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDALIGN_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDARG_H_TRUE}" && test -z "${GL_GENERATE_STDARG_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDARG_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDBOOL_H_TRUE}" && test -z "${GL_GENERATE_STDBOOL_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDBOOL_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_STDDEF_H_TRUE}" && test -z "${GL_GENERATE_STDDEF_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_STDDEF_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${GL_GENERATE_SYSEXITS_H_TRUE}" && test -z "${GL_GENERATE_SYSEXITS_H_FALSE}"; then
+ as_fn_error $? "conditional \"GL_GENERATE_SYSEXITS_H\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE}" && test -z "${LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_FALSE}"; then
+ as_fn_error $? "conditional \"LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+
+ gl_libobjs=
+ gl_ltlibobjs=
+ 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 -e "$sed_drop_objext" | sort | uniq`; do
+ gl_libobjs="$gl_libobjs $i.$ac_objext"
+ gl_ltlibobjs="$gl_ltlibobjs $i.lo"
+ done
+ fi
+ gl_LIBOBJS=$gl_libobjs
+
+ gl_LTLIBOBJS=$gl_ltlibobjs
+
+
+
+ gltests_libobjs=
+ gltests_ltlibobjs=
+ 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 -e "$sed_drop_objext" | sort | uniq`; do
+ gltests_libobjs="$gltests_libobjs $i.$ac_objext"
+ gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
+ done
+ fi
+ gltests_LIBOBJS=$gltests_libobjs
+
+ gltests_LTLIBOBJS=$gltests_ltlibobjs
+
+
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # 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
+else
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+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
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='print -r --'
+ as_echo_n='print -rn --'
+elif (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
+ 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
+
+
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# 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.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there. '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# NLS nuisances.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ $as_echo "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ 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'
+ fi
+else
+ as_ln_s='cp -p'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+if test -x / >/dev/null 2>&1; then
+ as_test_x='test -x'
+else
+ if ls -dL / >/dev/null 2>&1; then
+ as_ls_L_option=L
+ else
+ as_ls_L_option=
+ fi
+ as_test_x='
+ eval sh -c '\''
+ if test -d "$1"; then
+ test -d "$1/.";
+ else
+ case $1 in #(
+ -*)set "./$1";;
+ esac;
+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
+ ???[sx]*):;;*)false;;esac;fi
+ '\'' sh
+ '
+fi
+as_executable_p=$as_test_x
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# 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.26.90, which was
+generated by GNU Autoconf 2.68. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_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"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -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
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <bug-tar@gnu.org>.
+GNU tar home page: <http://www.gnu.org/software/tar/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
+ac_cs_version="\\
+GNU tar config.status 1.26.90
+configured by $0, generated by GNU Autoconf 2.68,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2010 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+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
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ $as_echo "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ $as_echo "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ $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.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ 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 "\$@"
+fi
+
+_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
+ $as_echo "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+ # from automake < 1.5.
+ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+
+
+
+_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" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
+ "tests/atconfig") CONFIG_COMMANDS="$CONFIG_COMMANDS tests/atconfig" ;;
+ "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;;
+ "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" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# 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
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+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
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ 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
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ 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 >>"\$ac_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 >>"\$ac_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
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+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 < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+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 >"$ac_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.
+
+# 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_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ 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_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+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*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append 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 '`
+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { $as_echo "$as_me:${as_lineno-$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 >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ 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/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_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=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { $as_echo "$as_me:${as_lineno-$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 || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_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 || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+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
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+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
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+$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 "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ $as_echo "/* $configure_input */" \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# 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
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { $as_echo "$as_me:${as_lineno-$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"" || {
+ # 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 ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ 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" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir=$dirpart/$fdir; as_fn_mkdir_p
+ # echo "creating $dirpart/$file"
+ echo '# dummy' > "$dirpart/$file"
+ done
+ done
+}
+ ;;
+ "po-directories":C)
+ for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ # Treat a directory as a PO directory if and only if it has a
+ # POTFILES.in file. This allows packages to have multiple PO
+ # directories under different names or in different locations.
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ gt_tab=`printf '\t'`
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ POMAKEFILEDEPS="POTFILES.in"
+ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+ # on $ac_dir but don't depend on user-specified configuration
+ # parameters.
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # The set of available languages was given in configure.in.
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+ fi
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+ fi
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+ if test -f "$f"; then
+ case "$f" in
+ *.orig | *.bak | *~) ;;
+ *) cat "$f" >> "$ac_dir/Makefile" ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done ;;
+ "tests/atconfig":C) cat >tests/atconfig <<ATEOF
+# Configurable variable values for building test suites.
+# Generated by $0.
+# Copyright (C) 2010 Free Software Foundation, Inc.
+
+# The test suite will define top_srcdir=$at_top_srcdir/../.. etc.
+at_testdir='tests'
+abs_builddir='$ac_abs_builddir'
+at_srcdir='$ac_srcdir'
+abs_srcdir='$ac_abs_srcdir'
+at_top_srcdir='$ac_top_srcdir'
+abs_top_srcdir='$ac_abs_top_srcdir'
+at_top_build_prefix='$ac_top_build_prefix'
+abs_top_builddir='$ac_abs_top_builddir'
+
+# Backward compatibility with Autotest <= 2.59b:
+at_top_builddir=\$at_top_build_prefix
+
+AUTOTEST_PATH='tests'
+
+SHELL=\${CONFIG_SHELL-'$SHELL'}
+ATEOF
+ ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
diff --git a/doc/.gitignore b/doc/.gitignore
index 5bcd27d8..e69de29b 100644
--- a/doc/.gitignore
+++ b/doc/.gitignore
@@ -1,26 +0,0 @@
-genfile.texi
-header.texi
-manual
-parse-datetime.texi
-stamp-vti
-tar.aux
-tar.cp
-tar.cps
-tar.fl
-tar.fn
-tar.info
-tar.info*
-tar.info-*
-tar.kw
-tar.ky
-tar.log
-tar.mt
-tar.op
-tar.pdf
-tar.pg
-tar.pr
-tar.t2d
-tar.toc
-tar.tp
-tar.vr
-version.texi
diff --git a/doc/Makefile.in b/doc/Makefile.in
new file mode 100644
index 00000000..a3b58c13
--- /dev/null
+++ b/doc/Makefile.in
@@ -0,0 +1,1611 @@
+# 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@
+
+# Makefile for GNU tar documentation.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006,
+# 2007 Free Software Foundation, Inc.
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@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 = doc
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/stamp-vti $(srcdir)/version.texi $(tar_TEXINFOS)
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+ $(top_srcdir)/m4/alloca.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/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+ $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.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/double-slash-root.m4 $(top_srcdir)/m4/dup.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/exponentd.m4 \
+ $(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fchdir.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/filenamecat.m4 \
+ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
+ $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+ $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
+ $(top_srcdir)/m4/getcwd-abort-bug.m4 \
+ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.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/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/iswblank.m4 \
+ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.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/libunistring-base.m4 \
+ $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
+ $(top_srcdir)/m4/linkat.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/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
+ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
+ $(top_srcdir)/m4/mkdtemp.m4 $(top_srcdir)/m4/mkfifo.m4 \
+ $(top_srcdir)/m4/mkfifoat.m4 $(top_srcdir)/m4/mknod.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/msvc-inval.m4 \
+ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/open.m4 \
+ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \
+ $(top_srcdir)/m4/parse-datetime.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/raise.m4 \
+ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/read.m4 \
+ $(top_srcdir)/m4/readdir.m4 $(top_srcdir)/m4/readlink.m4 \
+ $(top_srcdir)/m4/readlinkat.m4 $(top_srcdir)/m4/realloc.m4 \
+ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
+ $(top_srcdir)/m4/renameat.m4 $(top_srcdir)/m4/rewinddir.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/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
+ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stdalign.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/strtol.m4 \
+ $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
+ $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+ $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
+ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
+ $(top_srcdir)/m4/sys_types_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/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+ $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+ $(top_srcdir)/m4/utimensat.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 =
+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
+TEXINFO_TEX = $(top_srcdir)/build-aux/texinfo.tex
+am__TEXINFO_TEX_DIR = $(top_srcdir)/build-aux
+DVIS = tar.dvi
+PDFS = tar.pdf
+PSS = tar.ps
+HTMLS = tar.html
+TEXINFOS = tar.texi
+TEXI2PDF = $(TEXI2DVI) --pdf --batch
+MAKEINFOHTML = $(MAKEINFO) --html
+AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+DVIPS = dvips
+am__installdirs = "$(DESTDIR)$(infodir)"
+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'
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = @pkglibexecdir@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+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_CHDIR = @GNULIB_CHDIR@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@
+GNULIB_DIRFD = @GNULIB_DIRFD@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
+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_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+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_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
+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_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
+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_GETS = @GNULIB_GETS@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
+GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
+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_MBTOWC = @GNULIB_MBTOWC@
+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_NONBLOCKING = @GNULIB_NONBLOCKING@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
+GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
+GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
+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_REWINDDIR = @GNULIB_REWINDDIR@
+GNULIB_RMDIR = @GNULIB_RMDIR@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SIGACTION = @GNULIB_SIGACTION@
+GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
+GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+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_STRERROR_R = @GNULIB_STRERROR_R@
+GNULIB_STRNCAT = @GNULIB_STRNCAT@
+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_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TIMEGM = @GNULIB_TIMEGM@
+GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNLINK = @GNULIB_UNLINK@
+GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
+GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
+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_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
+GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
+GREP = @GREP@
+HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
+HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
+HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
+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_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_DUP3 = @HAVE_DUP3@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FACCESSAT = @HAVE_FACCESSAT@
+HAVE_FCHDIR = @HAVE_FCHDIR@
+HAVE_FCHMODAT = @HAVE_FCHMODAT@
+HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSTATAT = @HAVE_FSTATAT@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_FUTIMENS = @HAVE_FUTIMENS@
+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_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWBLANK = @HAVE_ISWBLANK@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
+HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
+HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
+HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
+HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
+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_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSLEN = @HAVE_MBSLEN@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMCHR = @HAVE_MEMCHR@
+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_MKSTEMP = @HAVE_MKSTEMP@
+HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
+HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
+HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
+HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
+HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
+HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
+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_SIGSET_T = @HAVE_SIGSET_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_STRINGS_H = @HAVE_STRINGS_H@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRPTIME = @HAVE_STRPTIME@
+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_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+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_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNLINKAT = @HAVE_UNLINKAT@
+HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
+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_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
+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@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+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_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_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_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_SIGNAL_H = @NEXT_SIGNAL_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_SYS_TYPES_H = @NEXT_SYS_TYPES_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_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PU_RMT_PROG = @PU_RMT_PROG@
+RANLIB = @RANLIB@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
+REPLACE_DIRFD = @REPLACE_DIRFD@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_DUP = @REPLACE_DUP@
+REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+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_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
+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_MALLOC = @REPLACE_MALLOC@
+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_MBTOWC = @REPLACE_MBTOWC@
+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_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
+REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
+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_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPNCPY = @REPLACE_STPNCPY@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
+REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNDUP = @REPLACE_STRNDUP@
+REPLACE_STRNLEN = @REPLACE_STRNLEN@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
+REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
+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_WCSWIDTH = @REPLACE_WCSWIDTH@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
+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@
+STDALIGN_H = @STDALIGN_H@
+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@
+gltests_WITNESS = @gltests_WITNESS@
+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@
+lispdir = @lispdir@
+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@
+info_TEXINFOS = tar.texi
+tar_TEXINFOS = \
+ dumpdir.texi\
+ tar-snapshot-edit.texi\
+ fdl.texi\
+ freemanuals.texi\
+ genfile.texi\
+ header.texi\
+ intern.texi\
+ parse-datetime.texi\
+ rendition.texi\
+ snapshot.texi\
+ sparse.texi\
+ value.texi
+
+EXTRA_DIST = gendocs_template mastermenu.el texify.sed untabify.el
+
+# The rendering level is anyone of PUBLISH, DISTRIB or PROOF.
+# Just call `make RENDITION=PROOF [target]' if you want PROOF rendition.
+RENDITION = DISTRIB
+MAKEINFOFLAGS = -D$(RENDITION)
+GENDOCS = gendocs.sh
+TEXI2DVI = texi2dvi -t '@set $(RENDITION)' -E
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .dvi .html .info .pdf .ps .texi
+$(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 doc/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnits doc/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):
+
+.texi.info:
+ restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+ 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 \
+ if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+ done; \
+ else :; fi && \
+ cd "$$am__cwd"; \
+ if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $@ $<; \
+ then \
+ rc=0; \
+ $(am__cd) $(srcdir); \
+ else \
+ rc=$$?; \
+ $(am__cd) $(srcdir) && \
+ $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+ fi; \
+ rm -rf $$backupdir; exit $$rc
+
+.texi.dvi:
+ TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ $(TEXI2DVI) $<
+
+.texi.pdf:
+ TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+ $(TEXI2PDF) $<
+
+.texi.html:
+ rm -rf $(@:.html=.htp)
+ if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+ -o $(@:.html=.htp) $<; \
+ then \
+ rm -rf $@; \
+ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+ else \
+ if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+ rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+ exit 1; \
+ fi
+$(srcdir)/tar.info: tar.texi $(srcdir)/version.texi $(tar_TEXINFOS)
+tar.dvi: tar.texi $(srcdir)/version.texi $(tar_TEXINFOS)
+tar.pdf: tar.texi $(srcdir)/version.texi $(tar_TEXINFOS)
+tar.html: tar.texi $(srcdir)/version.texi $(tar_TEXINFOS)
+$(srcdir)/version.texi: $(srcdir)/stamp-vti
+$(srcdir)/stamp-vti: tar.texi $(top_srcdir)/configure
+ @(dir=.; test -f ./tar.texi || dir=$(srcdir); \
+ set `$(SHELL) $(top_srcdir)/build-aux/mdate-sh $$dir/tar.texi`; \
+ echo "@set UPDATED $$1 $$2 $$3"; \
+ echo "@set UPDATED-MONTH $$2 $$3"; \
+ echo "@set EDITION $(VERSION)"; \
+ echo "@set VERSION $(VERSION)") > vti.tmp
+ @cmp -s vti.tmp $(srcdir)/version.texi \
+ || (echo "Updating $(srcdir)/version.texi"; \
+ cp vti.tmp $(srcdir)/version.texi)
+ -@rm -f vti.tmp
+ @cp $(srcdir)/version.texi $@
+
+mostlyclean-vti:
+ -rm -f vti.tmp
+
+maintainer-clean-vti:
+ -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
+.dvi.ps:
+ TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+ $(DVIPS) -o $@ $<
+
+uninstall-dvi-am:
+ @$(NORMAL_UNINSTALL)
+ @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)'; test -n "$(htmldir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " rm -rf '$(DESTDIR)$(htmldir)/$$f'"; \
+ rm -rf "$(DESTDIR)$(htmldir)/$$f"; \
+ done
+
+uninstall-info-am:
+ @$(PRE_UNINSTALL)
+ @if test -d '$(DESTDIR)$(infodir)' && \
+ (install-info --version && \
+ install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+ list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ echo " 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)
+ @list='$(INFO_DEPS)'; \
+ for file in $$list; do \
+ relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
+ (if test -d "$(DESTDIR)$(infodir)" && cd "$(DESTDIR)$(infodir)"; then \
+ echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
+ rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
+ else :; fi); \
+ done
+
+uninstall-pdf-am:
+ @$(NORMAL_UNINSTALL)
+ @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)'; test -n "$(psdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " rm -f '$(DESTDIR)$(psdir)/$$f'"; \
+ rm -f "$(DESTDIR)$(psdir)/$$f"; \
+ done
+
+dist-info: $(INFO_DEPS)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+ list='$(INFO_DEPS)'; \
+ for base in $$list; do \
+ case $$base in \
+ $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
+ esac; \
+ if test -f $$base; then d=.; else d=$(srcdir); fi; \
+ base_i=`echo "$$base" | sed 's|\.info$$||;s|$$|.i|'`; \
+ 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"; \
+ else :; fi; \
+ done; \
+ done
+
+mostlyclean-aminfo:
+ -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 \
+ i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
+ echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
+ rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
+ done
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+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
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-info
+check-am: all-am
+check: check-am
+all-am: Makefile $(INFO_DEPS)
+installdirs:
+ for dir in "$(DESTDIR)$(infodir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: 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-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:
+
+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-aminfo clean-generic clean-local mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am: $(DVIS)
+
+html: html-am
+
+html-am: $(HTMLS)
+
+info: info-am
+
+info-am: $(INFO_DEPS)
+
+install-data-am: install-info-am
+
+install-dvi: install-dvi-am
+
+install-dvi-am: $(DVIS)
+ @$(NORMAL_INSTALL)
+ test -z "$(dvidir)" || $(MKDIR_P) "$(DESTDIR)$(dvidir)"
+ @list='$(DVIS)'; test -n "$(dvidir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 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:
+
+install-html: install-html-am
+
+install-html-am: $(HTMLS)
+ @$(NORMAL_INSTALL)
+ test -z "$(htmldir)" || $(MKDIR_P) "$(DESTDIR)$(htmldir)"
+ @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; \
+ $(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" || exit $$?; \
+ else \
+ list2="$$list2 $$d$$p"; \
+ fi; \
+ 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)'; test -n "$(infodir)" || list=; \
+ for file in $$list; do \
+ case $$file in \
+ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+ esac; \
+ 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 \
+ if test -f $$ifile; then \
+ echo "$$ifile"; \
+ else : ; fi; \
+ 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)'; test -n "$(infodir)" || list=; \
+ for file in $$list; do \
+ relfile=`echo "$$file" | sed 's|^.*/||'`; \
+ echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
+ install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
+ done; \
+ else : ; fi
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am: $(PDFS)
+ @$(NORMAL_INSTALL)
+ test -z "$(pdfdir)" || $(MKDIR_P) "$(DESTDIR)$(pdfdir)"
+ @list='$(PDFS)'; test -n "$(pdfdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 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)'; test -n "$(psdir)" || list=; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ 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
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-aminfo \
+ maintainer-clean-generic maintainer-clean-vti
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-aminfo mostlyclean-generic mostlyclean-vti
+
+pdf: pdf-am
+
+pdf-am: $(PDFS)
+
+ps: ps-am
+
+ps-am: $(PSS)
+
+uninstall-am: uninstall-dvi-am uninstall-html-am uninstall-info-am \
+ uninstall-pdf-am uninstall-ps-am
+
+.MAKE: install-am install-strip
+
+.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 \
+ uninstall uninstall-am uninstall-dvi-am uninstall-html-am \
+ uninstall-info-am uninstall-pdf-am uninstall-ps-am
+
+
+header.texi: $(top_srcdir)/src/tar.h
+ sed -f $(srcdir)/texify.sed $(top_srcdir)/src/tar.h \
+ | expand >$@
+
+master-menu: $(tar_TEXINFOS)
+ emacs -batch -l mastermenu.el -f make-master-menu $(info_TEXINFOS)
+
+untabify:
+ emacs -batch -l untabify.el $(info_TEXINFOS) $(tar_TEXINFOS)
+
+final: untabify master-menu
+
+# Checking
+check-format:
+ @if test -n "`cat $(info_TEXINFOS) $(tar_TEXINFOS) | tr -d -c '\t'`"; then \
+ echo "Sources contain tabs; run make untabify"; \
+ false; \
+ 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' \
+ $(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.$$$$;\
+ 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); \
+ do \
+ sed -e = $$file | \
+ sed -n 'N;/@FIXME-.*ref/{s/\(^[0-9][0-9]*\).*@FIXME-.*ref{\([^}]*\).*/'$$file':\1: \2/gp}'; \
+ done > $@-t; \
+ if [ -s $@-t ]; then \
+ echo "Unresolved cross-references:"; \
+ cat $@-t;\
+ rm $@-t; \
+ else \
+ rm -f $@-t; \
+ fi
+
+check-fixmes:
+ @for file in $(info_TEXINFOS); \
+ do \
+ sed -e = $$file | \
+ sed -n 'N;/@FIXME{/{s/\(^[0-9][0-9]*\).*@FIXME{\([^}]*\).*/'$$file':\1: \2/gp}'; \
+ done > $@-t; \
+ if [ -s $@-t ]; then \
+ echo "Unresolved FIXMEs:"; \
+ cat $@-t; \
+ rm $@-t; \
+ false; \
+ else \
+ rm -f $@-t; \
+ fi
+
+check-unrevised:
+ @grep -Hn @UNREVISED $(info_TEXINFOS) > $@-t; \
+ if [ -s $@-t ]; then \
+ echo "Unrevised nodes:"; \
+ cat $@-t; \
+ rm $@-t; \
+ false;\
+ else \
+ rm $@-t; \
+ fi
+
+all-check-docs: check-format check-options check-refs check-fixmes check-unrevised
+
+check-docs:
+ $(MAKE) -k all-check-docs
+
+#
+
+clean-local:
+ rm -rf manual
+
+# Make sure you set TEXINPUTS
+# Usual value is:
+# /usr/share/texmf/pdftex/plain/misc:/usr/share/texmf/pdftex/config
+manual:
+ TEXINPUTS=$(srcdir):$(top_srcdir)/build-tex:$(TEXINPUTS) \
+ 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
new file mode 100644
index 00000000..b37e26ec
--- /dev/null
+++ b/doc/genfile.texi
@@ -0,0 +1,348 @@
+@c This is part of the paxutils manual.
+@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.
+
+@cindex genfile
+ This appendix describes @command{genfile}, an auxiliary program
+used in the GNU tar testsuite. If you are not interested in developing
+GNU tar, skip this appendix.
+
+ Initially, @command{genfile} was used to generate data files for
+the testsuite, hence its name. However, new operation modes were being
+implemented as the testsuite grew more sophisticated, and now
+@command{genfile} is a multi-purpose instrument.
+
+ There are three basic operation modes:
+
+@table @asis
+@item File Generation
+ This is the default mode. In this mode, @command{genfile}
+generates data files.
+
+@item File Status
+ In this mode @command{genfile} displays status of specified files.
+
+@item Synchronous Execution.
+ In this mode @command{genfile} executes the given program with
+@option{--checkpoint} option and executes a set of actions when
+specified checkpoints are reached.
+@end table
+
+@menu
+* Generate Mode:: File Generation Mode.
+* Status Mode:: File Status Mode.
+* Exec Mode:: Synchronous Execution mode.
+@end menu
+
+@node Generate Mode
+@appendixsec Generate Mode
+
+@cindex Generate Mode, @command{genfile}
+@cindex @command{genfile}, generate mode
+@cindex @command{genfile}, create file
+ In this mode @command{genfile} creates a data file for the test
+suite. The size of the file is given with the @option{--length}
+(@option{-l}) option. By default the file contents is written to the
+standard output, this can be changed using @option{--file}
+(@option{-f}) command line option. Thus, the following two commands
+are equivalent:
+
+@smallexample
+@group
+genfile --length 100 > outfile
+genfile --length 100 --file outfile
+@end group
+@end smallexample
+
+ If @option{--length} is not given, @command{genfile} will
+generate an empty (zero-length) file.
+
+@cindex @command{genfile}, seeking to a given offset
+ The command line option @option{--seek=@var{N}} istructs @command{genfile}
+to skip the given number of bytes (@var{N}) in the output file before
+writing to it. It is similar to the @option{seek=@var{N}} of the
+@command{dd} utility.
+
+@cindex @command{genfile}, reading a list of file names
+ You can instruct @command{genfile} to create several files at one
+go, by giving it @option{--files-from} (@option{-T}) option followed
+by a name of file containing a list of file names. Using dash
+(@samp{-}) instead of the file name causes @command{genfile} to read
+file list from the standard input. For example:
+
+@smallexample
+@group
+# Read file names from file @file{file.list}
+genfile --files-from file.list
+# Read file names from standard input
+genfile --files-from -
+@end group
+@end smallexample
+
+@cindex File lists separated by NUL characters
+ The list file is supposed to contain one file name per line. To
+use file lists separated by ASCII NUL character, use @option{--null}
+(@option{-0}) command line option:
+
+@smallexample
+genfile --null --files-from file.list
+@end smallexample
+
+@cindex pattern, @command{genfile}
+ The default data pattern for filling the generated file consists
+of first 256 letters of ASCII code, repeated enough times to fill the
+entire file. This behavior can be changed with @option{--pattern}
+option. This option takes a mandatory argument, specifying pattern
+name to use. Currently two patterns are implemented:
+
+@table @option
+@item --pattern=default
+ The default pattern as described above.
+
+@item --pattern=zero
+ Fills the file with zeroes.
+@end table
+
+ If no file name was given, the program exits with the code
+@code{0}. Otherwise, it exits with @code{0} only if it was able to
+create a file of the specified length.
+
+@cindex Sparse files, creating using @command{genfile}
+@cindex @command{genfile}, creating sparse files
+ Special option @option{--sparse} (@option{-s}) instructs
+@command{genfile} to create a sparse file. Sparse files consist of
+@dfn{data fragments}, separated by @dfn{holes} or blocks of zeros. On
+many operating systems, actual disk storage is not allocated for
+holes, but they are counted in the length of the file. To create a
+sparse file, @command{genfile} should know where to put data fragments,
+and what data to use to fill them. So, when @option{--sparse} is given
+the rest of the command line specifies a so-called @dfn{file map}.
+
+ The file map consists of any number of @dfn{fragment
+descriptors}. Each descriptor is composed of two values: a number,
+specifying fragment offset from the end of the previous fragment or,
+for the very first fragment, from the beginning of the file, and
+@dfn{contents string}, i.e., a string of characters, specifying the
+pattern to fill the fragment with. File offset can be suffixed with
+the following quantifiers:
+
+@table @samp
+@item k
+@itemx K
+The number is expressed in kilobytes.
+@item m
+@itemx M
+The number is expressed in megabytes.
+@item g
+@itemx G
+The number is expressed in gigabytes.
+@end table
+
+ For each letter in contents string @command{genfile} will generate
+a @dfn{block} of data, filled with this letter and will write it to
+the fragment. The size of block is given by @option{--block-size}
+option. It defaults to 512. Thus, if the string consists of @var{n}
+characters, the resulting file fragment will contain
+@code{@var{n}*@var{block-size}} of data.
+
+ Last fragment descriptor can have only file offset part. In this
+case @command{genfile} will create a hole at the end of the file up to
+the given offset.
+
+ For example, consider the following invocation:
+
+@smallexample
+genfile --sparse --file sparsefile 0 ABCD 1M EFGHI 2000K
+@end smallexample
+
+@noindent
+It will create 3101184-bytes long file of the following structure:
+
+@multitable @columnfractions .35 .20 .45
+@item Offset @tab Length @tab Contents
+@item 0 @tab 4*512=2048 @tab Four 512-byte blocks, filled with
+letters @samp{A}, @samp{B}, @samp{C} and @samp{D}.
+@item 2048 @tab 1046528 @tab Zero bytes
+@item 1050624 @tab 5*512=2560 @tab Five blocks, filled with letters
+@samp{E}, @samp{F}, @samp{G}, @samp{H}, @samp{I}.
+@item 1053184 @tab 2048000 @tab Zero bytes
+@end multitable
+
+ The exit code of @command{genfile --status} command is @code{0}
+only if created file is actually sparse.
+
+@node Status Mode
+@appendixsec Status Mode
+
+ In status mode, @command{genfile} prints file system status for
+each file specified in the command line. This mode is toggled by
+@option{--stat} (@option{-S}) command line option. An optional argument to this
+option specifies output @dfn{format}: a comma-separated list of
+@code{struct stat} fields to be displayed. This list can contain
+following identifiers @FIXME{should we also support @samp{%} notations
+as in stat(1)??}:
+
+@table @asis
+@item name
+ The file name.
+
+@item dev
+@itemx st_dev
+ Device number in decimal.
+
+@item ino
+@itemx st_ino
+ Inode number.
+
+@item mode[.@var{number}]
+@itemx st_mode[.@var{number}]
+ File mode in octal. Optional @var{number} specifies octal mask to
+be applied to the mode before outputting. For example, @code{--stat
+mode.777} will preserve lower nine bits of it. Notice, that you can
+use any punctuation character in place of @samp{.}.
+
+@item nlink
+@itemx st_nlink
+ Number of hard links.
+
+@item uid
+@itemx st_uid
+ User ID of owner.
+
+@item gid
+@itemx st_gid
+ Group ID of owner.
+
+@item size
+@itemx st_size
+ File size in decimal.
+
+@item blksize
+@itemx st_blksize
+ The size in bytes of each file block.
+
+@item blocks
+@itemx st_blocks
+ Number of blocks allocated.
+
+@item atime
+@itemx st_atime
+ Time of last access.
+
+@item mtime
+@itemx st_mtime
+ Time of last modification
+
+@item ctime
+@itemx st_ctime
+ Time of last status change
+
+@item sparse
+ A boolean value indicating whether the file is @samp{sparse}.
+@end table
+
+ Modification times are displayed in @acronym{UTC} as
+@acronym{UNIX} timestamps, unless suffixed with @samp{H} (for
+``human-readable''), as in @samp{ctimeH}, in which case usual
+@code{tar tv} output format is used.
+
+ The default output format is: @samp{name,dev,ino,mode,
+nlink,uid,gid,size,blksize,blocks,atime,mtime,ctime}.
+
+ For example, the following command will display file names and
+corresponding times of last access for each file in the current working
+directory:
+
+@smallexample
+genfile --stat=name,atime *
+@end smallexample
+
+@node Exec Mode
+@appendixsec Exec Mode
+
+@cindex Exec Mode, @command{genfile}
+ This mode is designed for testing the behavior of @code{paxutils}
+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 non-optional arguments to
+@command{getopt} give the command line to be executed. Normally,
+it should contain at least the @option{--checkpoint} option.
+
+ 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
+
+@table @option
+@item --cut @var{file}
+@itemx --truncate @var{file}
+ Truncate @var{file} to the size specified by previous
+@option{--length} option (or 0, if it is not given).
+
+@item --append @var{file}
+ Append data to @var{file}. The size of data and its pattern are
+given by previous @option{--length} and @option{pattern} options.
+
+@item --touch @var{file}
+ Update the access and modification times of @var{file}. These
+timestamps are changed to the current time, unless @option{--date}
+option was given, in which case they are changed to the specified
+time. Argument to @option{--date} option is a date specification in
+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
+standard output notifications about checkpoints being executed and to
+verbosely describe exit status of the command.
+
+ While the command is being executed its standard output remains
+connected to descriptor 1. All messages it prints to file descriptor
+2, except checkpoint notifications, are forwarded to standard
+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/parse-datetime.texi b/doc/parse-datetime.texi
new file mode 100644
index 00000000..d4ffd4ac
--- /dev/null
+++ b/doc/parse-datetime.texi
@@ -0,0 +1,588 @@
+@c GNU date syntax documentation
+
+@c Copyright (C) 1994-2006, 2009-2012 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
+@c any later version published by the Free Software Foundation; with no
+@c Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
+@c Texts. A copy of the license is included in the ``GNU Free
+@c Documentation License'' file as part of this distribution.
+
+@node Date input formats
+@chapter Date input formats
+
+@cindex date input formats
+@findex parse_datetime
+
+First, a quote:
+
+@quotation
+Our units of temporal measurement, from seconds on up to months, are so
+complicated, asymmetrical and disjunctive so as to make coherent mental
+reckoning in time all but impossible. Indeed, had some tyrannical god
+contrived to enslave our minds to time, to make it all but impossible
+for us to escape subjection to sodden routines and unpleasant surprises,
+he could hardly have done better than handing down our present system.
+It is like a set of trapezoidal building blocks, with no vertical or
+horizontal surfaces, like a language in which the simplest thought
+demands ornate constructions, useless particles and lengthy
+circumlocutions. Unlike the more successful patterns of language and
+science, which enable us to face experience boldly or at least
+level-headedly, our system of temporal calculation silently and
+persistently encourages our terror of time.
+
+@dots{} It is as though architects had to measure length in feet, width
+in meters and height in ells; as though basic instruction manuals
+demanded a knowledge of five different languages. It is no wonder then
+that we often look into our own immediate past or future, last Tuesday
+or a week from Sunday, with feelings of helpless confusion. @dots{}
+
+--- Robert Grudin, @cite{Time and the Art of Living}.
+@end quotation
+
+This section describes the textual date representations that @sc{gnu}
+programs accept. These are the strings you, as a user, can supply as
+arguments to the various programs. The C interface (via the
+@code{parse_datetime} function) is not described here.
+
+@menu
+* General date syntax:: Common rules.
+* Calendar date items:: 19 Dec 1994.
+* Time of day items:: 9:20pm.
+* Time zone items:: @sc{est}, @sc{pdt}, @sc{gmt}.
+* Combined date and time of day items:: 1972-09-24T20:02:00,000000-0500
+* Day of week items:: Monday and others.
+* Relative items in date strings:: next tuesday, 2 years ago.
+* Pure numbers in date strings:: 19931219, 1440.
+* Seconds since the Epoch:: @@1078100502.
+* Specifying time zone rules:: TZ="America/New_York", TZ="UTC0".
+* Authors of parse_datetime:: Bellovin, Eggert, Salz, Berets, et al.
+@end menu
+
+
+@node General date syntax
+@section General date syntax
+
+@cindex general date syntax
+
+@cindex items in date strings
+A @dfn{date} is a string, possibly empty, containing many items
+separated by whitespace. The whitespace may be omitted when no
+ambiguity arises. The empty string means the beginning of today (i.e.,
+midnight). Order of the items is immaterial. A date string may contain
+many flavors of items:
+
+@itemize @bullet
+@item calendar date items
+@item time of day items
+@item time zone items
+@item combined date and time of day items
+@item day of the week items
+@item relative items
+@item pure numbers.
+@end itemize
+
+@noindent We describe each of these item types in turn, below.
+
+@cindex numbers, written-out
+@cindex ordinal numbers
+@findex first @r{in date strings}
+@findex next @r{in date strings}
+@findex last @r{in date strings}
+A few ordinal numbers may be written out in words in some contexts. This is
+most useful for specifying day of the week items or relative items (see
+below). Among the most commonly used ordinal numbers, the word
+@samp{last} stands for @math{-1}, @samp{this} stands for 0, and
+@samp{first} and @samp{next} both stand for 1. Because the word
+@samp{second} stands for the unit of time there is no way to write the
+ordinal number 2, but for convenience @samp{third} stands for 3,
+@samp{fourth} for 4, @samp{fifth} for 5,
+@samp{sixth} for 6, @samp{seventh} for 7, @samp{eighth} for 8,
+@samp{ninth} for 9, @samp{tenth} for 10, @samp{eleventh} for 11 and
+@samp{twelfth} for 12.
+
+@cindex months, written-out
+When a month is written this way, it is still considered to be written
+numerically, instead of being ``spelled in full''; this changes the
+allowed strings.
+
+@cindex language, in dates
+In the current implementation, only English is supported for words and
+abbreviations like @samp{AM}, @samp{DST}, @samp{EST}, @samp{first},
+@samp{January}, @samp{Sunday}, @samp{tomorrow}, and @samp{year}.
+
+@cindex language, in dates
+@cindex time zone item
+The output of the @command{date} command
+is not always acceptable as a date string,
+not only because of the language problem, but also because there is no
+standard meaning for time zone items like @samp{IST}. When using
+@command{date} to generate a date string intended to be parsed later,
+specify a date format that is independent of language and that does not
+use time zone items other than @samp{UTC} and @samp{Z}. Here are some
+ways to do this:
+
+@example
+$ LC_ALL=C TZ=UTC0 date
+Mon Mar 1 00:21:42 UTC 2004
+$ TZ=UTC0 date +'%Y-%m-%d %H:%M:%SZ'
+2004-03-01 00:21:42Z
+$ date --rfc-3339=ns # --rfc-3339 is a GNU extension.
+2004-02-29 16:21:42.692722128-08:00
+$ date --rfc-2822 # a GNU extension
+Sun, 29 Feb 2004 16:21:42 -0800
+$ date +'%Y-%m-%d %H:%M:%S %z' # %z is a GNU extension.
+2004-02-29 16:21:42 -0800
+$ date +'@@%s.%N' # %s and %N are GNU extensions.
+@@1078100502.692722128
+@end example
+
+@cindex case, ignored in dates
+@cindex comments, in dates
+Alphabetic case is completely ignored in dates. Comments may be introduced
+between round parentheses, as long as included parentheses are properly
+nested. Hyphens not followed by a digit are currently ignored. Leading
+zeros on numbers are ignored.
+
+Invalid dates like @samp{2005-02-29} or times like @samp{24:00} are
+rejected. In the typical case of a host that does not support leap
+seconds, a time like @samp{23:59:60} is rejected even if it
+corresponds to a valid leap second.
+
+
+@node Calendar date items
+@section Calendar date items
+
+@cindex calendar date item
+
+A @dfn{calendar date item} specifies a day of the year. It is
+specified differently, depending on whether the month is specified
+numerically or literally. All these strings specify the same calendar date:
+
+@example
+1972-09-24 # @sc{iso} 8601.
+72-9-24 # Assume 19xx for 69 through 99,
+ # 20xx for 00 through 68.
+72-09-24 # Leading zeros are ignored.
+9/24/72 # Common U.S. writing.
+24 September 1972
+24 Sept 72 # September has a special abbreviation.
+24 Sep 72 # Three-letter abbreviations always allowed.
+Sep 24, 1972
+24-sep-72
+24sep72
+@end example
+
+The year can also be omitted. In this case, the last specified year is
+used, or the current year if none. For example:
+
+@example
+9/24
+sep 24
+@end example
+
+Here are the rules.
+
+@cindex @sc{iso} 8601 date format
+@cindex date format, @sc{iso} 8601
+For numeric months, the @sc{iso} 8601 format
+@samp{@var{year}-@var{month}-@var{day}} is allowed, where @var{year} is
+any positive number, @var{month} is a number between 01 and 12, and
+@var{day} is a number between 01 and 31. A leading zero must be present
+if a number is less than ten. If @var{year} is 68 or smaller, then 2000
+is added to it; otherwise, if @var{year} is less than 100,
+then 1900 is added to it. The construct
+@samp{@var{month}/@var{day}/@var{year}}, popular in the United States,
+is accepted. Also @samp{@var{month}/@var{day}}, omitting the year.
+
+@cindex month names in date strings
+@cindex abbreviations for months
+Literal months may be spelled out in full: @samp{January},
+@samp{February}, @samp{March}, @samp{April}, @samp{May}, @samp{June},
+@samp{July}, @samp{August}, @samp{September}, @samp{October},
+@samp{November} or @samp{December}. Literal months may be abbreviated
+to their first three letters, possibly followed by an abbreviating dot.
+It is also permitted to write @samp{Sept} instead of @samp{September}.
+
+When months are written literally, the calendar date may be given as any
+of the following:
+
+@example
+@var{day} @var{month} @var{year}
+@var{day} @var{month}
+@var{month} @var{day} @var{year}
+@var{day}-@var{month}-@var{year}
+@end example
+
+Or, omitting the year:
+
+@example
+@var{month} @var{day}
+@end example
+
+
+@node Time of day items
+@section Time of day items
+
+@cindex time of day item
+
+A @dfn{time of day item} in date strings specifies the time on a given
+day. Here are some examples, all of which represent the same time:
+
+@example
+20:02:00.000000
+20:02
+8:02pm
+20:02-0500 # In @sc{est} (U.S. Eastern Standard Time).
+@end example
+
+More generally, the time of day may be given as
+@samp{@var{hour}:@var{minute}:@var{second}}, where @var{hour} is
+a number between 0 and 23, @var{minute} is a number between 0 and
+59, and @var{second} is a number between 0 and 59 possibly followed by
+@samp{.} or @samp{,} and a fraction containing one or more digits.
+Alternatively,
+@samp{:@var{second}} can be omitted, in which case it is taken to
+be zero. On the rare hosts that support leap seconds, @var{second}
+may be 60.
+
+@findex am @r{in date strings}
+@findex pm @r{in date strings}
+@findex midnight @r{in date strings}
+@findex noon @r{in date strings}
+If the time is followed by @samp{am} or @samp{pm} (or @samp{a.m.}
+or @samp{p.m.}), @var{hour} is restricted to run from 1 to 12, and
+@samp{:@var{minute}} may be omitted (taken to be zero). @samp{am}
+indicates the first half of the day, @samp{pm} indicates the second
+half of the day. In this notation, 12 is the predecessor of 1:
+midnight is @samp{12am} while noon is @samp{12pm}.
+(This is the zero-oriented interpretation of @samp{12am} and @samp{12pm},
+as opposed to the old tradition derived from Latin
+which uses @samp{12m} for noon and @samp{12pm} for midnight.)
+
+@cindex time zone correction
+@cindex minutes, time zone correction by
+The time may alternatively be followed by a time zone correction,
+expressed as @samp{@var{s}@var{hh}@var{mm}}, where @var{s} is @samp{+}
+or @samp{-}, @var{hh} is a number of zone hours and @var{mm} is a number
+of zone minutes.
+The zone minutes term, @var{mm}, may be omitted, in which case
+the one- or two-digit correction is interpreted as a number of hours.
+You can also separate @var{hh} from @var{mm} with a colon.
+When a time zone correction is given this way, it
+forces interpretation of the time relative to
+Coordinated Universal Time (@sc{utc}), overriding any previous
+specification for the time zone or the local time zone. For example,
+@samp{+0530} and @samp{+05:30} both stand for the time zone 5.5 hours
+ahead of @sc{utc} (e.g., India).
+This is the best way to
+specify a time zone correction by fractional parts of an hour.
+The maximum zone correction is 24 hours.
+
+Either @samp{am}/@samp{pm} or a time zone correction may be specified,
+but not both.
+
+
+@node Time zone items
+@section Time zone items
+
+@cindex time zone item
+
+A @dfn{time zone item} specifies an international time zone, indicated
+by a small set of letters, e.g., @samp{UTC} or @samp{Z}
+for Coordinated Universal
+Time. Any included periods are ignored. By following a
+non-daylight-saving time zone by the string @samp{DST} in a separate
+word (that is, separated by some white space), the corresponding
+daylight saving time zone may be specified.
+Alternatively, a non-daylight-saving time zone can be followed by a
+time zone correction, to add the two values. This is normally done
+only for @samp{UTC}; for example, @samp{UTC+05:30} is equivalent to
+@samp{+05:30}.
+
+Time zone items other than @samp{UTC} and @samp{Z}
+are obsolescent and are not recommended, because they
+are ambiguous; for example, @samp{EST} has a different meaning in
+Australia than in the United States. Instead, it's better to use
+unambiguous numeric time zone corrections like @samp{-0500}, as
+described in the previous section.
+
+If neither a time zone item nor a time zone correction is supplied,
+time stamps are interpreted using the rules of the default time zone
+(@pxref{Specifying time zone rules}).
+
+
+@node Combined date and time of day items
+@section Combined date and time of day items
+
+@cindex combined date and time of day item
+
+A @dfn{combined date and time of day item} specifies the time on a
+specific day of the year. This type is needed for formats that cannot
+be represented by individual calendar date (@pxref{Calendar date items})
+and time of day (@pxref{Time of day items}) items due to ambiguity.
+
+@example
+# ISO 8601 extended date and time of day format
+1972-09-24T20:02:00,000000-0500
+@end example
+
+@cindex @sc{iso} 8601 date and time of day format
+@cindex date and time of day format, @sc{iso} 8601
+
+The @sc{iso} 8601 extended date and time of day format is an @sc{iso}
+8601 date, a @samp{T} character separator, followed by an @sc{iso} 8601 time
+of day.
+
+
+@node Day of week items
+@section Day of week items
+
+@cindex day of week item
+
+The explicit mention of a day of the week will forward the date
+(only if necessary) to reach that day of the week in the future.
+
+Days of the week may be spelled out in full: @samp{Sunday},
+@samp{Monday}, @samp{Tuesday}, @samp{Wednesday}, @samp{Thursday},
+@samp{Friday} or @samp{Saturday}. Days may be abbreviated to their
+first three letters, optionally followed by a period. The special
+abbreviations @samp{Tues} for @samp{Tuesday}, @samp{Wednes} for
+@samp{Wednesday} and @samp{Thur} or @samp{Thurs} for @samp{Thursday} are
+also allowed.
+
+@findex next @var{day}
+@findex last @var{day}
+A number may precede a day of the week item to move forward
+supplementary weeks. It is best used in expression like @samp{third
+monday}. In this context, @samp{last @var{day}} or @samp{next
+@var{day}} is also acceptable; they move one week before or after
+the day that @var{day} by itself would represent.
+
+A comma following a day of the week item is ignored.
+
+
+@node Relative items in date strings
+@section Relative items in date strings
+
+@cindex relative items in date strings
+@cindex displacement of dates
+
+@dfn{Relative items} adjust a date (or the current date if none) forward
+or backward. The effects of relative items accumulate. Here are some
+examples:
+
+@example
+1 year
+1 year ago
+3 years
+2 days
+@end example
+
+@findex year @r{in date strings}
+@findex month @r{in date strings}
+@findex fortnight @r{in date strings}
+@findex week @r{in date strings}
+@findex day @r{in date strings}
+@findex hour @r{in date strings}
+@findex minute @r{in date strings}
+The unit of time displacement may be selected by the string @samp{year}
+or @samp{month} for moving by whole years or months. These are fuzzy
+units, as years and months are not all of equal duration. More precise
+units are @samp{fortnight} which is worth 14 days, @samp{week} worth 7
+days, @samp{day} worth 24 hours, @samp{hour} worth 60 minutes,
+@samp{minute} or @samp{min} worth 60 seconds, and @samp{second} or
+@samp{sec} worth one second. An @samp{s} suffix on these units is
+accepted and ignored.
+
+@findex ago @r{in date strings}
+The unit of time may be preceded by a multiplier, given as an optionally
+signed number. Unsigned numbers are taken as positively signed. No
+number at all implies 1 for a multiplier. Following a relative item by
+the string @samp{ago} is equivalent to preceding the unit by a
+multiplier with value @math{-1}.
+
+@findex day @r{in date strings}
+@findex tomorrow @r{in date strings}
+@findex yesterday @r{in date strings}
+The string @samp{tomorrow} is worth one day in the future (equivalent
+to @samp{day}), the string @samp{yesterday} is worth
+one day in the past (equivalent to @samp{day ago}).
+
+@findex now @r{in date strings}
+@findex today @r{in date strings}
+@findex this @r{in date strings}
+The strings @samp{now} or @samp{today} are relative items corresponding
+to zero-valued time displacement, these strings come from the fact
+a zero-valued time displacement represents the current time when not
+otherwise changed by previous items. They may be used to stress other
+items, like in @samp{12:00 today}. The string @samp{this} also has
+the meaning of a zero-valued time displacement, but is preferred in
+date strings like @samp{this thursday}.
+
+When a relative item causes the resulting date to cross a boundary
+where the clocks were adjusted, typically for daylight saving time,
+the resulting date and time are adjusted accordingly.
+
+The fuzz in units can cause problems with relative items. For
+example, @samp{2003-07-31 -1 month} might evaluate to 2003-07-01,
+because 2003-06-31 is an invalid date. To determine the previous
+month more reliably, you can ask for the month before the 15th of the
+current month. For example:
+
+@example
+$ date -R
+Thu, 31 Jul 2003 13:02:39 -0700
+$ date --date='-1 month' +'Last month was %B?'
+Last month was July?
+$ date --date="$(date +%Y-%m-15) -1 month" +'Last month was %B!'
+Last month was June!
+@end example
+
+Also, take care when manipulating dates around clock changes such as
+daylight saving leaps. In a few cases these have added or subtracted
+as much as 24 hours from the clock, so it is often wise to adopt
+universal time by setting the @env{TZ} environment variable to
+@samp{UTC0} before embarking on calendrical calculations.
+
+@node Pure numbers in date strings
+@section Pure numbers in date strings
+
+@cindex pure numbers in date strings
+
+The precise interpretation of a pure decimal number depends
+on the context in the date string.
+
+If the decimal number is of the form @var{yyyy}@var{mm}@var{dd} and no
+other calendar date item (@pxref{Calendar date items}) appears before it
+in the date string, then @var{yyyy} is read as the year, @var{mm} as the
+month number and @var{dd} as the day of the month, for the specified
+calendar date.
+
+If the decimal number is of the form @var{hh}@var{mm} and no other time
+of day item appears before it in the date string, then @var{hh} is read
+as the hour of the day and @var{mm} as the minute of the hour, for the
+specified time of day. @var{mm} can also be omitted.
+
+If both a calendar date and a time of day appear to the left of a number
+in the date string, but no relative item, then the number overrides the
+year.
+
+
+@node Seconds since the Epoch
+@section Seconds since the Epoch
+
+If you precede a number with @samp{@@}, it represents an internal time
+stamp as a count of seconds. The number can contain an internal
+decimal point (either @samp{.} or @samp{,}); any excess precision not
+supported by the internal representation is truncated toward minus
+infinity. Such a number cannot be combined with any other date
+item, as it specifies a complete time stamp.
+
+@cindex beginning of time, for @acronym{POSIX}
+@cindex epoch, for @acronym{POSIX}
+Internally, computer times are represented as a count of seconds since
+an epoch---a well-defined point of time. On @acronym{GNU} and
+@acronym{POSIX} systems, the epoch is 1970-01-01 00:00:00 @sc{utc}, so
+@samp{@@0} represents this time, @samp{@@1} represents 1970-01-01
+00:00:01 @sc{utc}, and so forth. @acronym{GNU} and most other
+@acronym{POSIX}-compliant systems support such times as an extension
+to @acronym{POSIX}, using negative counts, so that @samp{@@-1}
+represents 1969-12-31 23:59:59 @sc{utc}.
+
+Traditional Unix systems count seconds with 32-bit two's-complement
+integers and can represent times from 1901-12-13 20:45:52 through
+2038-01-19 03:14:07 @sc{utc}. More modern systems use 64-bit counts
+of seconds with nanosecond subcounts, and can represent all the times
+in the known lifetime of the universe to a resolution of 1 nanosecond.
+
+On most hosts, these counts ignore the presence of leap seconds.
+For example, on most hosts @samp{@@915148799} represents 1998-12-31
+23:59:59 @sc{utc}, @samp{@@915148800} represents 1999-01-01 00:00:00
+@sc{utc}, and there is no way to represent the intervening leap second
+1998-12-31 23:59:60 @sc{utc}.
+
+@node Specifying time zone rules
+@section Specifying time zone rules
+
+@vindex TZ
+Normally, dates are interpreted using the rules of the current time
+zone, which in turn are specified by the @env{TZ} environment
+variable, or by a system default if @env{TZ} is not set. To specify a
+different set of default time zone rules that apply just to one date,
+start the date with a string of the form @samp{TZ="@var{rule}"}. The
+two quote characters (@samp{"}) must be present in the date, and any
+quotes or backslashes within @var{rule} must be escaped by a
+backslash.
+
+For example, with the @acronym{GNU} @command{date} command you can
+answer the question ``What time is it in New York when a Paris clock
+shows 6:30am on October 31, 2004?'' by using a date beginning with
+@samp{TZ="Europe/Paris"} as shown in the following shell transcript:
+
+@example
+$ export TZ="America/New_York"
+$ date --date='TZ="Europe/Paris" 2004-10-31 06:30'
+Sun Oct 31 01:30:00 EDT 2004
+@end example
+
+In this example, the @option{--date} operand begins with its own
+@env{TZ} setting, so the rest of that operand is processed according
+to @samp{Europe/Paris} rules, treating the string @samp{2004-10-31
+06:30} as if it were in Paris. However, since the output of the
+@command{date} command is processed according to the overall time zone
+rules, it uses New York time. (Paris was normally six hours ahead of
+New York in 2004, but this example refers to a brief Halloween period
+when the gap was five hours.)
+
+A @env{TZ} value is a rule that typically names a location in the
+@uref{http://www.twinsun.com/tz/tz-link.htm, @samp{tz} database}.
+A recent catalog of location names appears in the
+@uref{http://twiki.org/cgi-bin/xtra/tzdate, TWiki Date and Time
+Gateway}. A few non-@acronym{GNU} hosts require a colon before a
+location name in a @env{TZ} setting, e.g.,
+@samp{TZ=":America/New_York"}.
+
+The @samp{tz} database includes a wide variety of locations ranging
+from @samp{Arctic/Longyearbyen} to @samp{Antarctica/South_Pole}, but
+if you are at sea and have your own private time zone, or if you are
+using a non-@acronym{GNU} host that does not support the @samp{tz}
+database, you may need to use a @acronym{POSIX} rule instead. Simple
+@acronym{POSIX} rules like @samp{UTC0} specify a time zone without
+daylight saving time; other rules can specify simple daylight saving
+regimes. @xref{TZ Variable,, Specifying the Time Zone with @code{TZ},
+libc, The GNU C Library}.
+
+@node Authors of parse_datetime
+@section Authors of @code{parse_datetime}
+@c the anchor keeps the old node name, to try to avoid breaking links
+@anchor{Authors of get_date}
+
+@cindex authors of @code{parse_datetime}
+
+@cindex Bellovin, Steven M.
+@cindex Salz, Rich
+@cindex Berets, Jim
+@cindex MacKenzie, David
+@cindex Meyering, Jim
+@cindex Eggert, Paul
+@code{parse_datetime} started life as @code{getdate}, as originally
+implemented by Steven M. Bellovin
+(@email{smb@@research.att.com}) while at the University of North Carolina
+at Chapel Hill. The code was later tweaked by a couple of people on
+Usenet, then completely overhauled by Rich $alz (@email{rsalz@@bbn.com})
+and Jim Berets (@email{jberets@@bbn.com}) in August, 1990. Various
+revisions for the @sc{gnu} system were made by David MacKenzie, Jim Meyering,
+Paul Eggert and others, including renaming it to @code{get_date} to
+avoid a conflict with the alternative Posix function @code{getdate},
+and a later rename to @code{parse_datetime}. The Posix function
+@code{getdate} can parse more locale-specific dates using
+@code{strptime}, but relies on an environment variable and external
+file, and lacks the thread-safety of @code{parse_datetime}.
+
+@cindex Pinard, F.
+@cindex Berry, K.
+This chapter was originally produced by Fran@,{c}ois Pinard
+(@email{pinard@@iro.umontreal.ca}) from the @file{parse_datetime.y} source code,
+and then edited by K.@: Berry (@email{kb@@cs.umb.edu}).
diff --git a/gnu/.gitignore b/gnu/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/gnu/.gitignore
diff --git a/gnu/Makefile.am b/gnu/Makefile.am
new file mode 100644
index 00000000..748aa949
--- /dev/null
+++ b/gnu/Makefile.am
@@ -0,0 +1,3112 @@
+# -*- buffer-read-only: t -*- vi: set ro:
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+## DO NOT EDIT! GENERATED AUTOMATICALLY!
+## Process this file with automake to produce Makefile.in.
+# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+#
+# 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
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file 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 file. If not, see <http://www.gnu.org/licenses/>.
+#
+# 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-conditional-dependencies --no-libtool --macro-prefix=gl alloca argmatch argp argp-version-etc backupfile closeout configmake dirname error exclude exitfail fdopendir fdutimensat fileblocks fnmatch-gnu fseeko full-write futimens getline getopt-gnu getpagesize gettext gettime gitlog-to-changelog hash human inttostr inttypes lchown linkat localcharset mkdtemp mkfifoat modechange obstack openat parse-datetime priv-set progname quote quotearg readlinkat renameat rpmatch safe-read savedir setenv snprintf stat-time stdbool stdint stpcpy strdup-posix strerror strtol strtoul symlinkat timespec unlinkdir unlocked-io utimensat version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax xvasprintf
+
+AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects
+
+SUBDIRS =
+noinst_HEADERS =
+noinst_LIBRARIES =
+noinst_LTLIBRARIES =
+EXTRA_DIST =
+BUILT_SOURCES =
+SUFFIXES =
+MOSTLYCLEANFILES = core *.stackdump
+MOSTLYCLEANDIRS =
+CLEANFILES =
+DISTCLEANFILES =
+MAINTAINERCLEANFILES =
+
+AM_CPPFLAGS =
+AM_CFLAGS =
+
+noinst_LIBRARIES += libgnu.a
+
+libgnu_a_SOURCES =
+libgnu_a_LIBADD = $(gl_LIBOBJS)
+libgnu_a_DEPENDENCIES = $(gl_LIBOBJS)
+EXTRA_libgnu_a_SOURCES =
+
+## begin gnulib module alloca
+
+
+libgnu_a_LIBADD += @ALLOCA@
+libgnu_a_DEPENDENCIES += @ALLOCA@
+EXTRA_DIST += alloca.c
+
+EXTRA_libgnu_a_SOURCES += alloca.c
+
+## end gnulib module alloca
+
+## begin gnulib module alloca-opt
+
+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.
+if GL_GENERATE_ALLOCA_H
+alloca.h: alloca.in.h $(top_builddir)/config.status
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ cat $(srcdir)/alloca.in.h; \
+ } > $@-t && \
+ mv -f $@-t $@
+else
+alloca.h: $(top_builddir)/config.status
+ rm -f $@
+endif
+MOSTLYCLEANFILES += alloca.h alloca.h-t
+
+EXTRA_DIST += alloca.in.h
+
+## end gnulib module alloca-opt
+
+## begin gnulib module allocator
+
+libgnu_a_SOURCES += allocator.c
+
+EXTRA_DIST += allocator.h
+
+## end gnulib module allocator
+
+## begin gnulib module areadlink
+
+libgnu_a_SOURCES += areadlink.c
+
+EXTRA_DIST += areadlink.h
+
+## end gnulib module areadlink
+
+## begin gnulib module areadlinkat
+
+libgnu_a_SOURCES += areadlinkat.c
+
+EXTRA_DIST += areadlink.h at-func.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c
+
+## end gnulib module areadlinkat
+
+## begin gnulib module argmatch
+
+libgnu_a_SOURCES += argmatch.c
+
+EXTRA_DIST += argmatch.h
+
+## end gnulib module argmatch
+
+## begin gnulib module argp
+
+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 at-internal
+
+
+EXTRA_DIST += openat-priv.h openat-proc.c
+
+EXTRA_libgnu_a_SOURCES += openat-proc.c
+
+## end gnulib module at-internal
+
+## begin gnulib module backupfile
+
+libgnu_a_SOURCES += backupfile.c
+
+EXTRA_DIST += backupfile.h
+
+## 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_libgnu_a_SOURCES += btowc.c
+
+## end gnulib module btowc
+
+## begin gnulib module c-ctype
+
+libgnu_a_SOURCES += c-ctype.h c-ctype.c
+
+## end gnulib module c-ctype
+
+## begin gnulib module c-strcase
+
+libgnu_a_SOURCES += c-strcase.h c-strcasecmp.c c-strncasecmp.c
+
+## end gnulib module c-strcase
+
+## begin gnulib module c-strcaseeq
+
+
+EXTRA_DIST += c-strcaseeq.h
+
+## end gnulib module c-strcaseeq
+
+## begin gnulib module canonicalize-lgpl
+
+
+EXTRA_DIST += canonicalize-lgpl.c
+
+EXTRA_libgnu_a_SOURCES += canonicalize-lgpl.c
+
+## end gnulib module canonicalize-lgpl
+
+## begin gnulib module careadlinkat
+
+libgnu_a_SOURCES += careadlinkat.c
+
+EXTRA_DIST += careadlinkat.h
+
+## end gnulib module careadlinkat
+
+## begin gnulib module chdir-long
+
+
+EXTRA_DIST += chdir-long.c chdir-long.h
+
+EXTRA_libgnu_a_SOURCES += chdir-long.c
+
+## end gnulib module chdir-long
+
+## begin gnulib module chown
+
+
+EXTRA_DIST += chown.c fchown-stub.c
+
+EXTRA_libgnu_a_SOURCES += chown.c fchown-stub.c
+
+## end gnulib module chown
+
+## begin gnulib module cloexec
+
+libgnu_a_SOURCES += cloexec.c
+
+EXTRA_DIST += cloexec.h
+
+## end gnulib module cloexec
+
+## begin gnulib module close
+
+
+EXTRA_DIST += close.c
+
+EXTRA_libgnu_a_SOURCES += close.c
+
+## end gnulib module close
+
+## begin gnulib module close-stream
+
+libgnu_a_SOURCES += close-stream.c
+
+EXTRA_DIST += close-stream.h
+
+## end gnulib module close-stream
+
+## begin gnulib module closedir
+
+
+EXTRA_DIST += closedir.c dirent-private.h
+
+EXTRA_libgnu_a_SOURCES += closedir.c
+
+## end gnulib module closedir
+
+## begin gnulib module closeout
+
+libgnu_a_SOURCES += closeout.c
+
+EXTRA_DIST += closeout.h
+
+## end gnulib module closeout
+
+## begin gnulib module configmake
+
+# Listed in the same order as the GNU makefile conventions, and
+# provided by autoconf 2.59c+.
+# 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
+ mv -f $@-t $@
+
+BUILT_SOURCES += configmake.h
+CLEANFILES += configmake.h configmake.h-t
+
+## end gnulib module configmake
+
+## begin gnulib module dirent
+
+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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''HAVE_DIRENT_H''@|$(HAVE_DIRENT_H)|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \
+ -e 's/@''GNULIB_OPENDIR''@/$(GNULIB_OPENDIR)/g' \
+ -e 's/@''GNULIB_READDIR''@/$(GNULIB_READDIR)/g' \
+ -e 's/@''GNULIB_REWINDDIR''@/$(GNULIB_REWINDDIR)/g' \
+ -e 's/@''GNULIB_CLOSEDIR''@/$(GNULIB_CLOSEDIR)/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_OPENDIR''@/$(HAVE_OPENDIR)/g' \
+ -e 's/@''HAVE_READDIR''@/$(HAVE_READDIR)/g' \
+ -e 's/@''HAVE_REWINDDIR''@/$(HAVE_REWINDDIR)/g' \
+ -e 's/@''HAVE_CLOSEDIR''@/$(HAVE_CLOSEDIR)/g' \
+ -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \
+ -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|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_OPENDIR''@|$(REPLACE_OPENDIR)|g' \
+ -e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \
+ -e 's|@''REPLACE_DIRFD''@|$(REPLACE_DIRFD)|g' \
+ -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|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 $@
+MOSTLYCLEANFILES += dirent.h dirent.h-t
+
+EXTRA_DIST += dirent.in.h
+
+## end gnulib module dirent
+
+## begin gnulib module dirent-safer
+
+libgnu_a_SOURCES += opendir-safer.c
+
+EXTRA_DIST += dirent--.h dirent-safer.h
+
+## end gnulib module dirent-safer
+
+## begin gnulib module dirfd
+
+
+EXTRA_DIST += dirfd.c
+
+EXTRA_libgnu_a_SOURCES += dirfd.c
+
+## end gnulib module dirfd
+
+## begin gnulib module dirname
+
+libgnu_a_SOURCES += dirname.c basename.c
+
+EXTRA_DIST += stripslash.c
+
+EXTRA_libgnu_a_SOURCES += stripslash.c
+
+## end gnulib module dirname
+
+## begin gnulib module dirname-lgpl
+
+libgnu_a_SOURCES += dirname-lgpl.c basename-lgpl.c stripslash.c
+
+EXTRA_DIST += dirname.h
+
+## end gnulib module dirname-lgpl
+
+## begin gnulib module dosname
+
+
+EXTRA_DIST += dosname.h
+
+## end gnulib module dosname
+
+## begin gnulib module dup
+
+
+EXTRA_DIST += dup.c
+
+EXTRA_libgnu_a_SOURCES += dup.c
+
+## end gnulib module dup
+
+## begin gnulib module dup2
+
+
+EXTRA_DIST += dup2.c
+
+EXTRA_libgnu_a_SOURCES += dup2.c
+
+## end gnulib module dup2
+
+## begin gnulib module errno
+
+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.
+if GL_GENERATE_ERRNO_H
+errno.h: errno.in.h $(top_builddir)/config.status
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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 $@
+else
+errno.h: $(top_builddir)/config.status
+ rm -f $@
+endif
+MOSTLYCLEANFILES += errno.h errno.h-t
+
+EXTRA_DIST += errno.in.h
+
+## end gnulib module errno
+
+## begin gnulib module error
+
+
+EXTRA_DIST += error.c error.h
+
+EXTRA_libgnu_a_SOURCES += error.c
+
+## end gnulib module error
+
+## begin gnulib module exclude
+
+libgnu_a_SOURCES += exclude.c
+
+EXTRA_DIST += exclude.h
+
+## end gnulib module exclude
+
+## begin gnulib module exitfail
+
+libgnu_a_SOURCES += exitfail.c
+
+EXTRA_DIST += exitfail.h
+
+## end gnulib module exitfail
+
+## begin gnulib module fchdir
+
+
+EXTRA_DIST += fchdir.c
+
+EXTRA_libgnu_a_SOURCES += fchdir.c
+
+## end gnulib module fchdir
+
+## begin gnulib module fcntl
+
+
+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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
+ -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \
+ -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/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 $@
+MOSTLYCLEANFILES += fcntl.h fcntl.h-t
+
+EXTRA_DIST += fcntl.in.h
+
+## end gnulib module fcntl-h
+
+## begin gnulib module fd-hook
+
+libgnu_a_SOURCES += fd-hook.c
+
+EXTRA_DIST += fd-hook.h
+
+## end gnulib module fd-hook
+
+## begin gnulib module fdopendir
+
+
+EXTRA_DIST += fdopendir.c
+
+EXTRA_libgnu_a_SOURCES += fdopendir.c
+
+## end gnulib module fdopendir
+
+## begin gnulib module fdutimensat
+
+libgnu_a_SOURCES += fdutimensat.c
+
+EXTRA_DIST += utimens.h
+
+## end gnulib module fdutimensat
+
+## begin gnulib module fileblocks
+
+
+EXTRA_DIST += fileblocks.c
+
+EXTRA_libgnu_a_SOURCES += fileblocks.c
+
+## end gnulib module fileblocks
+
+## begin gnulib module filename
+
+
+EXTRA_DIST += filename.h
+
+## end gnulib module filename
+
+## begin gnulib module filenamecat-lgpl
+
+libgnu_a_SOURCES += filenamecat-lgpl.c
+
+EXTRA_DIST += filenamecat.h
+
+## end gnulib module filenamecat-lgpl
+
+## begin gnulib module float
+
+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.
+if GL_GENERATE_FLOAT_H
+float.h: float.in.h $(top_builddir)/config.status
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
+ < $(srcdir)/float.in.h; \
+ } > $@-t && \
+ mv $@-t $@
+else
+float.h: $(top_builddir)/config.status
+ rm -f $@
+endif
+MOSTLYCLEANFILES += float.h float.h-t
+
+EXTRA_DIST += float.c float.in.h itold.c
+
+EXTRA_libgnu_a_SOURCES += float.c itold.c
+
+## end gnulib module float
+
+## begin gnulib module fnmatch
+
+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.
+if GL_GENERATE_FNMATCH_H
+fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(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 $@
+else
+fnmatch.h: $(top_builddir)/config.status
+ rm -f $@
+endif
+MOSTLYCLEANFILES += fnmatch.h fnmatch.h-t
+
+EXTRA_DIST += fnmatch.c fnmatch.in.h fnmatch_loop.c
+
+EXTRA_libgnu_a_SOURCES += fnmatch.c fnmatch_loop.c
+
+## end gnulib module fnmatch
+
+## begin gnulib module fpending
+
+
+EXTRA_DIST += fpending.c fpending.h
+
+EXTRA_libgnu_a_SOURCES += fpending.c
+
+## end gnulib module fpending
+
+## begin gnulib module fseek
+
+
+EXTRA_DIST += fseek.c
+
+EXTRA_libgnu_a_SOURCES += fseek.c
+
+## end gnulib module fseek
+
+## begin gnulib module fseeko
+
+
+EXTRA_DIST += fseeko.c stdio-impl.h
+
+EXTRA_libgnu_a_SOURCES += fseeko.c
+
+## end gnulib module fseeko
+
+## begin gnulib module fstat
+
+
+EXTRA_DIST += fstat.c
+
+EXTRA_libgnu_a_SOURCES += fstat.c
+
+## end gnulib module fstat
+
+## begin gnulib module fstatat
+
+
+EXTRA_DIST += at-func.c fstatat.c openat-priv.h
+
+EXTRA_libgnu_a_SOURCES += at-func.c fstatat.c
+
+## end gnulib module fstatat
+
+## begin gnulib module full-write
+
+libgnu_a_SOURCES += full-write.h full-write.c
+
+## end gnulib module full-write
+
+## begin gnulib module futimens
+
+
+EXTRA_DIST += futimens.c
+
+EXTRA_libgnu_a_SOURCES += futimens.c
+
+## end gnulib module futimens
+
+## begin gnulib module getcwd
+
+
+EXTRA_DIST += getcwd.c
+
+EXTRA_libgnu_a_SOURCES += getcwd.c
+
+## end gnulib module getcwd
+
+## begin gnulib module getcwd-lgpl
+
+
+EXTRA_DIST += getcwd-lgpl.c
+
+EXTRA_libgnu_a_SOURCES += getcwd-lgpl.c
+
+## end gnulib module getcwd-lgpl
+
+## begin gnulib module getdelim
+
+
+EXTRA_DIST += 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_libgnu_a_SOURCES += getline.c
+
+## end gnulib module getline
+
+## 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 $(top_builddir)/config.status $(ARG_NONNULL_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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_libgnu_a_SOURCES += getopt.c getopt1.c
+
+## end gnulib module getopt-posix
+
+## begin gnulib module getpagesize
+
+
+EXTRA_DIST += getpagesize.c
+
+EXTRA_libgnu_a_SOURCES += getpagesize.c
+
+## end gnulib module getpagesize
+
+## begin gnulib module gettext
+
+# 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 += $(top_srcdir)/build-aux/config.rpath
+
+## end gnulib module gettext
+
+## begin gnulib module gettext-h
+
+libgnu_a_SOURCES += gettext.h
+
+## end gnulib module gettext-h
+
+## begin gnulib module gettime
+
+libgnu_a_SOURCES += gettime.c
+
+## end gnulib module gettime
+
+## begin gnulib module gettimeofday
+
+
+EXTRA_DIST += 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
+
+libgnu_a_SOURCES += hash.c
+
+EXTRA_DIST += hash.h
+
+## end gnulib module hash
+
+## begin gnulib module havelib
+
+
+EXTRA_DIST += $(top_srcdir)/build-aux/config.rpath
+
+## end gnulib module havelib
+
+## begin gnulib module human
+
+libgnu_a_SOURCES += human.c
+
+EXTRA_DIST += human.h
+
+## end gnulib module human
+
+## begin gnulib module intprops
+
+
+EXTRA_DIST += intprops.h
+
+## end gnulib module intprops
+
+## begin gnulib module inttostr
+
+libgnu_a_SOURCES += \
+ imaxtostr.c \
+ inttostr.c \
+ offtostr.c \
+ uinttostr.c \
+ umaxtostr.c
+
+EXTRA_DIST += anytostr.c inttostr.h
+
+EXTRA_libgnu_a_SOURCES += anytostr.c
+
+## end gnulib module inttostr
+
+## begin gnulib module inttypes-incomplete
+
+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 $(top_builddir)/config.status $(CXXDEFS_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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/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 '/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)/inttypes.in.h; \
+ } > $@-t && \
+ mv $@-t $@
+MOSTLYCLEANFILES += inttypes.h inttypes.h-t
+
+EXTRA_DIST += inttypes.in.h
+
+## end gnulib module inttypes-incomplete
+
+## begin gnulib module iswblank
+
+
+EXTRA_DIST += iswblank.c
+
+EXTRA_libgnu_a_SOURCES += iswblank.c
+
+## end gnulib module iswblank
+
+## begin gnulib module langinfo
+
+BUILT_SOURCES += langinfo.h
+
+# 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 $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \
+ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \
+ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|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_DIST += langinfo.in.h
+
+## end gnulib module langinfo
+
+## begin gnulib module lchown
+
+
+EXTRA_DIST += lchown.c
+
+EXTRA_libgnu_a_SOURCES += lchown.c
+
+## end gnulib module lchown
+
+## begin gnulib module link
+
+
+EXTRA_DIST += link.c
+
+EXTRA_libgnu_a_SOURCES += link.c
+
+## end gnulib module link
+
+## begin gnulib module linkat
+
+
+EXTRA_DIST += at-func2.c linkat.c
+
+EXTRA_libgnu_a_SOURCES += at-func2.c linkat.c
+
+## end gnulib module linkat
+
+## begin gnulib module localcharset
+
+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
+# 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
+
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+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-$@ $@
+
+SUFFIXES += .sed .sin
+.sin.sed:
+ $(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
+
+EXTRA_DIST += config.charset ref-add.sin ref-del.sin
+
+## end gnulib module localcharset
+
+## begin gnulib module lseek
+
+
+EXTRA_DIST += lseek.c
+
+EXTRA_libgnu_a_SOURCES += lseek.c
+
+## end gnulib module lseek
+
+## begin gnulib module lstat
+
+
+EXTRA_DIST += lstat.c
+
+EXTRA_libgnu_a_SOURCES += lstat.c
+
+## end gnulib module lstat
+
+## begin gnulib module malloc-gnu
+
+
+EXTRA_DIST += malloc.c
+
+EXTRA_libgnu_a_SOURCES += malloc.c
+
+## end gnulib module malloc-gnu
+
+## begin gnulib module malloc-posix
+
+
+EXTRA_DIST += malloc.c
+
+EXTRA_libgnu_a_SOURCES += malloc.c
+
+## end gnulib module malloc-posix
+
+## begin gnulib module malloca
+
+libgnu_a_SOURCES += malloca.c
+
+EXTRA_DIST += malloca.h malloca.valgrind
+
+## end gnulib module malloca
+
+## begin gnulib module mbchar
+
+libgnu_a_SOURCES += mbchar.c
+
+EXTRA_DIST += mbchar.h
+
+## end gnulib module mbchar
+
+## begin gnulib module mbrtowc
+
+
+EXTRA_DIST += mbrtowc.c
+
+EXTRA_libgnu_a_SOURCES += mbrtowc.c
+
+## end gnulib module mbrtowc
+
+## begin gnulib module mbscasecmp
+
+libgnu_a_SOURCES += mbscasecmp.c
+
+## end gnulib module mbscasecmp
+
+## begin gnulib module mbsinit
+
+
+EXTRA_DIST += mbsinit.c
+
+EXTRA_libgnu_a_SOURCES += mbsinit.c
+
+## end gnulib module mbsinit
+
+## begin gnulib module mbsrtowcs
+
+
+EXTRA_DIST += mbsrtowcs-impl.h mbsrtowcs-state.c mbsrtowcs.c
+
+EXTRA_libgnu_a_SOURCES += mbsrtowcs-state.c mbsrtowcs.c
+
+## end gnulib module mbsrtowcs
+
+## begin gnulib module mbtowc
+
+
+EXTRA_DIST += mbtowc-impl.h mbtowc.c
+
+EXTRA_libgnu_a_SOURCES += mbtowc.c
+
+## end gnulib module mbtowc
+
+## begin gnulib module mbuiter
+
+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_libgnu_a_SOURCES += mempcpy.c
+
+## end gnulib module mempcpy
+
+## begin gnulib module memrchr
+
+
+EXTRA_DIST += memrchr.c
+
+EXTRA_libgnu_a_SOURCES += memrchr.c
+
+## end gnulib module memrchr
+
+## begin gnulib module mkdtemp
+
+
+EXTRA_DIST += mkdtemp.c
+
+EXTRA_libgnu_a_SOURCES += mkdtemp.c
+
+## end gnulib module mkdtemp
+
+## begin gnulib module mkfifo
+
+
+EXTRA_DIST += mkfifo.c
+
+EXTRA_libgnu_a_SOURCES += mkfifo.c
+
+## end gnulib module mkfifo
+
+## begin gnulib module mkfifoat
+
+
+EXTRA_DIST += at-func.c mkfifoat.c mknodat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c mkfifoat.c mknodat.c
+
+## end gnulib module mkfifoat
+
+## begin gnulib module mknod
+
+
+EXTRA_DIST += mknod.c
+
+EXTRA_libgnu_a_SOURCES += mknod.c
+
+## end gnulib module mknod
+
+## begin gnulib module mktime
+
+
+EXTRA_DIST += mktime-internal.h mktime.c
+
+EXTRA_libgnu_a_SOURCES += mktime.c
+
+## end gnulib module mktime
+
+## begin gnulib module modechange
+
+libgnu_a_SOURCES += modechange.c
+
+EXTRA_DIST += modechange.h
+
+## end gnulib module modechange
+
+## begin gnulib module msvc-inval
+
+
+EXTRA_DIST += msvc-inval.c msvc-inval.h
+
+EXTRA_libgnu_a_SOURCES += msvc-inval.c
+
+## end gnulib module msvc-inval
+
+## begin gnulib module msvc-nothrow
+
+
+EXTRA_DIST += msvc-nothrow.c msvc-nothrow.h
+
+EXTRA_libgnu_a_SOURCES += msvc-nothrow.c
+
+## end gnulib module msvc-nothrow
+
+## 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_libgnu_a_SOURCES += obstack.c
+
+## end gnulib module obstack
+
+## begin gnulib module open
+
+
+EXTRA_DIST += open.c
+
+EXTRA_libgnu_a_SOURCES += open.c
+
+## end gnulib module open
+
+## begin gnulib module openat
+
+
+EXTRA_DIST += openat-priv.h openat.c
+
+EXTRA_libgnu_a_SOURCES += openat.c
+
+## end gnulib module openat
+
+## begin gnulib module openat-die
+
+libgnu_a_SOURCES += openat-die.c
+
+## end gnulib module openat-die
+
+## begin gnulib module openat-h
+
+
+EXTRA_DIST += openat.h
+
+## end gnulib module openat-h
+
+## begin gnulib module opendir
+
+
+EXTRA_DIST += dirent-private.h opendir.c
+
+EXTRA_libgnu_a_SOURCES += opendir.c
+
+## end gnulib module opendir
+
+## begin gnulib module parse-datetime
+
+# This rule overrides the Automake generated .y.c rule, to ensure that the
+# parse-datetime.c file gets generated in the source directory, not in the
+# build directory.
+parse-datetime.c: parse-datetime.y
+ $(AM_V_GEN)$(SHELL) $(YLWRAP) $(srcdir)/parse-datetime.y \
+ y.tab.c parse-datetime.c \
+ y.tab.h parse-datetime.h \
+ y.output parse-datetime.output \
+ -- $(YACC) $(YFLAGS) $(AM_YFLAGS) && \
+ mv parse-datetime.c parse-datetime.c-t && \
+ mv parse-datetime.c-t $(srcdir)/parse-datetime.c
+libgnu_a_SOURCES += parse-datetime.y
+BUILT_SOURCES += parse-datetime.c
+MOSTLYCLEANFILES += parse-datetime.c-t
+MAINTAINERCLEANFILES += parse-datetime.c
+EXTRA_DIST += parse-datetime.c
+
+EXTRA_DIST += parse-datetime.h
+
+## end gnulib module parse-datetime
+
+## begin gnulib module pathmax
+
+
+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
+
+libgnu_a_SOURCES += quote.c
+
+EXTRA_DIST += quote.h
+
+## end gnulib module quote
+
+## begin gnulib module quotearg
+
+libgnu_a_SOURCES += quotearg.c
+
+EXTRA_DIST += quotearg.h
+
+## end gnulib module quotearg
+
+## begin gnulib module raise
+
+
+EXTRA_DIST += raise.c
+
+EXTRA_libgnu_a_SOURCES += raise.c
+
+## end gnulib module raise
+
+## begin gnulib module rawmemchr
+
+
+EXTRA_DIST += rawmemchr.c rawmemchr.valgrind
+
+EXTRA_libgnu_a_SOURCES += rawmemchr.c
+
+## end gnulib module rawmemchr
+
+## begin gnulib module read
+
+
+EXTRA_DIST += read.c
+
+EXTRA_libgnu_a_SOURCES += read.c
+
+## end gnulib module read
+
+## begin gnulib module readdir
+
+
+EXTRA_DIST += dirent-private.h readdir.c
+
+EXTRA_libgnu_a_SOURCES += readdir.c
+
+## end gnulib module readdir
+
+## begin gnulib module readlink
+
+
+EXTRA_DIST += readlink.c
+
+EXTRA_libgnu_a_SOURCES += readlink.c
+
+## end gnulib module readlink
+
+## begin gnulib module readlinkat
+
+
+EXTRA_DIST += at-func.c readlinkat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c readlinkat.c
+
+## end gnulib module readlinkat
+
+## begin gnulib module realloc-posix
+
+
+EXTRA_DIST += realloc.c
+
+EXTRA_libgnu_a_SOURCES += realloc.c
+
+## end gnulib module realloc-posix
+
+## begin gnulib module regex
+
+
+EXTRA_DIST += regcomp.c regex.c regex.h regex_internal.c regex_internal.h regexec.c
+
+EXTRA_libgnu_a_SOURCES += regcomp.c regex.c regex_internal.c regexec.c
+
+## end gnulib module regex
+
+## begin gnulib module rename
+
+
+EXTRA_DIST += rename.c
+
+EXTRA_libgnu_a_SOURCES += rename.c
+
+## end gnulib module rename
+
+## begin gnulib module renameat
+
+
+EXTRA_DIST += at-func2.c renameat.c
+
+EXTRA_libgnu_a_SOURCES += at-func2.c renameat.c
+
+## end gnulib module renameat
+
+## begin gnulib module rewinddir
+
+
+EXTRA_DIST += dirent-private.h rewinddir.c
+
+EXTRA_libgnu_a_SOURCES += rewinddir.c
+
+## end gnulib module rewinddir
+
+## 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_libgnu_a_SOURCES += rpmatch.c
+
+## end gnulib module rpmatch
+
+## begin gnulib module safe-read
+
+libgnu_a_SOURCES += safe-read.c
+
+EXTRA_DIST += safe-read.h
+
+## end gnulib module safe-read
+
+## begin gnulib module safe-write
+
+libgnu_a_SOURCES += safe-write.c
+
+EXTRA_DIST += safe-read.c safe-write.h
+
+EXTRA_libgnu_a_SOURCES += safe-read.c
+
+## end gnulib module safe-write
+
+## begin gnulib module same-inode
+
+
+EXTRA_DIST += same-inode.h
+
+## end gnulib module same-inode
+
+## begin gnulib module save-cwd
+
+libgnu_a_SOURCES += save-cwd.c
+
+EXTRA_DIST += save-cwd.h
+
+## end gnulib module save-cwd
+
+## begin gnulib module savedir
+
+libgnu_a_SOURCES += savedir.c
+
+EXTRA_DIST += savedir.h
+
+## end gnulib module savedir
+
+## begin gnulib module setenv
+
+
+EXTRA_DIST += setenv.c
+
+EXTRA_libgnu_a_SOURCES += setenv.c
+
+## end gnulib module setenv
+
+## begin gnulib module signal-h
+
+BUILT_SOURCES += signal.h
+
+# We need the following in order to create <signal.h> when the system
+# doesn't have a complete one.
+signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \
+ -e 's|@''GNULIB_PTHREAD_SIGMASK''@|$(GNULIB_PTHREAD_SIGMASK)|g' \
+ -e 's|@''GNULIB_RAISE''@|$(GNULIB_RAISE)|g' \
+ -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \
+ -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \
+ -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \
+ -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \
+ -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \
+ -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \
+ -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \
+ -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \
+ -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \
+ -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \
+ -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \
+ -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \
+ -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \
+ -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|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)/signal.in.h; \
+ } > $@-t && \
+ mv $@-t $@
+MOSTLYCLEANFILES += signal.h signal.h-t
+
+EXTRA_DIST += signal.in.h
+
+## end gnulib module signal-h
+
+## begin gnulib module size_max
+
+libgnu_a_SOURCES += size_max.h
+
+## end gnulib module size_max
+
+## begin gnulib module sleep
+
+
+EXTRA_DIST += sleep.c
+
+EXTRA_libgnu_a_SOURCES += sleep.c
+
+## end gnulib module sleep
+
+## begin gnulib module snippet/_Noreturn
+
+# Because this Makefile snippet defines a variable used by other
+# gnulib Makefile snippets, it must be present in all Makefile.am that
+# need it. This is ensured by the applicability 'all' defined above.
+
+_NORETURN_H=$(top_srcdir)/build-aux/snippet/_Noreturn.h
+
+EXTRA_DIST += $(top_srcdir)/build-aux/snippet/_Noreturn.h
+
+## end gnulib module snippet/_Noreturn
+
+## begin gnulib module snippet/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/snippet/arg-nonnull.h, except that it has the copyright header cut
+# off.
+arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ sed -n -e '/GL_ARG_NONNULL/,$$p' \
+ < $(top_srcdir)/build-aux/snippet/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/snippet/arg-nonnull.h
+
+## end gnulib module snippet/arg-nonnull
+
+## begin gnulib module snippet/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/snippet/c++defs.h, except that it has the copyright header cut off.
+c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ sed -n -e '/_GL_CXXDEFS/,$$p' \
+ < $(top_srcdir)/build-aux/snippet/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/snippet/c++defs.h
+
+## end gnulib module snippet/c++defs
+
+## begin gnulib module snippet/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/snippet/warn-on-use.h, except that it has the copyright header cut
+# off.
+warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ sed -n -e '/^.ifndef/,$$p' \
+ < $(top_srcdir)/build-aux/snippet/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/snippet/warn-on-use.h
+
+## end gnulib module snippet/warn-on-use
+
+## begin gnulib module snprintf
+
+
+EXTRA_DIST += 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
+
+
+EXTRA_DIST += stat-macros.h
+
+## end gnulib module stat-macros
+
+## begin gnulib module stat-time
+
+
+EXTRA_DIST += stat-time.h
+
+## end gnulib module stat-time
+
+## begin gnulib module stdalign
+
+BUILT_SOURCES += $(STDALIGN_H)
+
+# We need the following in order to create <stdalign.h> when the system
+# doesn't have one that works.
+if GL_GENERATE_STDALIGN_H
+stdalign.h: stdalign.in.h $(top_builddir)/config.status
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ cat $(srcdir)/stdalign.in.h; \
+ } > $@-t && \
+ mv $@-t $@
+else
+stdalign.h: $(top_builddir)/config.status
+ rm -f $@
+endif
+MOSTLYCLEANFILES += stdalign.h stdalign.h-t
+
+EXTRA_DIST += stdalign.in.h
+
+## end gnulib module stdalign
+
+## begin gnulib module stdarg
+
+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.
+if GL_GENERATE_STDARG_H
+stdarg.h: stdarg.in.h $(top_builddir)/config.status
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \
+ < $(srcdir)/stdarg.in.h; \
+ } > $@-t && \
+ mv $@-t $@
+else
+stdarg.h: $(top_builddir)/config.status
+ rm -f $@
+endif
+MOSTLYCLEANFILES += stdarg.h stdarg.h-t
+
+EXTRA_DIST += stdarg.in.h
+
+## end gnulib module stdarg
+
+## begin gnulib module stdbool
+
+BUILT_SOURCES += $(STDBOOL_H)
+
+# We need the following in order to create <stdbool.h> when the system
+# doesn't have one that works.
+if GL_GENERATE_STDBOOL_H
+stdbool.h: stdbool.in.h $(top_builddir)/config.status
+ $(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 $@
+else
+stdbool.h: $(top_builddir)/config.status
+ rm -f $@
+endif
+MOSTLYCLEANFILES += stdbool.h stdbool.h-t
+
+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.
+if GL_GENERATE_STDDEF_H
+stddef.h: stddef.in.h $(top_builddir)/config.status
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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 $@
+else
+stddef.h: $(top_builddir)/config.status
+ rm -f $@
+endif
+MOSTLYCLEANFILES += stddef.h stddef.h-t
+
+EXTRA_DIST += stddef.in.h
+
+## end gnulib module stddef
+
+## begin gnulib module stdint
+
+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.
+if GL_GENERATE_STDINT_H
+stdint.h: stdint.in.h $(top_builddir)/config.status
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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_WCHAR_H''@/$(HAVE_WCHAR_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 $@
+else
+stdint.h: $(top_builddir)/config.status
+ rm -f $@
+endif
+MOSTLYCLEANFILES += stdint.h stdint.h-t
+
+EXTRA_DIST += stdint.in.h
+
+## end gnulib module stdint
+
+## begin gnulib module stdio
+
+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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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_FDOPEN''@/$(GNULIB_FDOPEN)/g' \
+ -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \
+ -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \
+ -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/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_FREAD''@/$(GNULIB_FREAD)/g' \
+ -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \
+ -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/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_GETC''@/$(GNULIB_GETC)/g' \
+ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \
+ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \
+ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \
+ -e 's/@''GNULIB_GETS''@/$(GNULIB_GETS)/g' \
+ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \
+ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \
+ -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/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_SCANF''@/$(GNULIB_SCANF)/g' \
+ -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \
+ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \
+ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \
+ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \
+ -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/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_VFSCANF''@/$(GNULIB_VFSCANF)/g' \
+ -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/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_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \
+ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|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_FSEEKO''@|$(HAVE_FSEEKO)|g' \
+ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \
+ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \
+ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|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_FDOPEN''@|$(REPLACE_FDOPEN)|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_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \
+ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \
+ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|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 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|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.in.h
+
+## end gnulib module stdio
+
+## begin gnulib module stdlib
+
+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 $(top_builddir)/config.status $(CXXDEFS_H) \
+ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
+ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/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_GRANTPT''@/$(GNULIB_GRANTPT)/g' \
+ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \
+ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/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_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \
+ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \
+ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \
+ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \
+ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/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_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
+ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \
+ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \
+ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \
+ < $(srcdir)/stdlib.in.h | \
+ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
+ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|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_GRANTPT''@|$(HAVE_GRANTPT)|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_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \
+ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \
+ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \
+ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \
+ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \
+ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \
+ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
+ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
+ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
+ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
+ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_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_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
+ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
+ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
+ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
+ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
+ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
+ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
+ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
+ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|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 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
+ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+ -e '/definition of _Noreturn/r $(_NORETURN_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 += stdlib.h stdlib.h-t
+
+EXTRA_DIST += stdlib.in.h
+
+## end gnulib module stdlib
+
+## begin gnulib module stpcpy
+
+
+EXTRA_DIST += stpcpy.c
+
+EXTRA_libgnu_a_SOURCES += stpcpy.c
+
+## end gnulib module stpcpy
+
+## begin gnulib module strcase
+
+
+EXTRA_DIST += strcasecmp.c strncasecmp.c
+
+EXTRA_libgnu_a_SOURCES += strcasecmp.c strncasecmp.c
+
+## end gnulib module strcase
+
+## begin gnulib module strchrnul
+
+
+EXTRA_DIST += strchrnul.c strchrnul.valgrind
+
+EXTRA_libgnu_a_SOURCES += strchrnul.c
+
+## end gnulib module strchrnul
+
+## begin gnulib module strdup-posix
+
+
+EXTRA_DIST += strdup.c
+
+EXTRA_libgnu_a_SOURCES += strdup.c
+
+## end gnulib module strdup-posix
+
+## begin gnulib module streq
+
+
+EXTRA_DIST += streq.h
+
+## end gnulib module streq
+
+## begin gnulib module strerror
+
+
+EXTRA_DIST += strerror.c
+
+EXTRA_libgnu_a_SOURCES += strerror.c
+
+## end gnulib module strerror
+
+## begin gnulib module strerror-override
+
+
+EXTRA_DIST += strerror-override.c strerror-override.h
+
+EXTRA_libgnu_a_SOURCES += strerror-override.c
+
+## end gnulib module strerror-override
+
+## begin gnulib module string
+
+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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
+ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
+ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/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_STRNCAT''@/$(GNULIB_STRNCAT)/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_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \
+ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
+ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
+ < $(srcdir)/string.in.h | \
+ sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
+ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
+ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
+ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|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_R''@|$(HAVE_DECL_STRERROR_R)|g' \
+ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
+ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
+ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|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_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|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_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
+ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
+ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
+ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|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 $@
+MOSTLYCLEANFILES += string.h string.h-t
+
+EXTRA_DIST += string.in.h
+
+## end gnulib module string
+
+## begin gnulib module strings
+
+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 $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \
+ -e 's|@''GNULIB_FFS''@|$(GNULIB_FFS)|g' \
+ -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \
+ -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
+ -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|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)/strings.in.h; \
+ } > $@-t && \
+ mv $@-t $@
+MOSTLYCLEANFILES += strings.h strings.h-t
+
+EXTRA_DIST += strings.in.h
+
+## end gnulib module strings
+
+## begin gnulib module strndup
+
+
+EXTRA_DIST += strndup.c
+
+EXTRA_libgnu_a_SOURCES += strndup.c
+
+## end gnulib module strndup
+
+## begin gnulib module strnlen
+
+
+EXTRA_DIST += strnlen.c
+
+EXTRA_libgnu_a_SOURCES += strnlen.c
+
+## end gnulib module strnlen
+
+## begin gnulib module strnlen1
+
+libgnu_a_SOURCES += strnlen1.h strnlen1.c
+
+## end gnulib module strnlen1
+
+## begin gnulib module strtol
+
+
+EXTRA_DIST += strtol.c
+
+EXTRA_libgnu_a_SOURCES += strtol.c
+
+## end gnulib module strtol
+
+## begin gnulib module strtoul
+
+
+EXTRA_DIST += strtol.c strtoul.c
+
+EXTRA_libgnu_a_SOURCES += strtol.c strtoul.c
+
+## end gnulib module strtoul
+
+## begin gnulib module strtoull
+
+
+EXTRA_DIST += strtol.c strtoul.c strtoull.c
+
+EXTRA_libgnu_a_SOURCES += strtol.c strtoul.c strtoull.c
+
+## end gnulib module strtoull
+
+## begin gnulib module strtoumax
+
+
+EXTRA_DIST += strtoimax.c strtoumax.c
+
+EXTRA_libgnu_a_SOURCES += strtoimax.c strtoumax.c
+
+## end gnulib module strtoumax
+
+## begin gnulib module symlink
+
+
+EXTRA_DIST += symlink.c
+
+EXTRA_libgnu_a_SOURCES += symlink.c
+
+## end gnulib module symlink
+
+## begin gnulib module symlinkat
+
+
+EXTRA_DIST += at-func.c symlinkat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c symlinkat.c
+
+## end gnulib module symlinkat
+
+## begin gnulib module sys_stat
+
+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 $(top_builddir)/config.status $(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|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
+ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \
+ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/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 $@
+MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t
+MOSTLYCLEANDIRS += sys
+
+EXTRA_DIST += sys_stat.in.h
+
+## end gnulib module sys_stat
+
+## begin gnulib module sys_time
+
+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 $(top_builddir)/config.status $(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|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \
+ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \
+ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|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 $@
+MOSTLYCLEANFILES += sys/time.h sys/time.h-t
+
+EXTRA_DIST += sys_time.in.h
+
+## end gnulib module sys_time
+
+## begin gnulib module sys_types
+
+BUILT_SOURCES += sys/types.h
+
+# We need the following in order to create <sys/types.h> when the system
+# doesn't have one that works with the given compiler.
+sys/types.h: sys_types.in.h $(top_builddir)/config.status
+ $(AM_V_at)$(MKDIR_P) sys
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \
+ < $(srcdir)/sys_types.in.h; \
+ } > $@-t && \
+ mv $@-t $@
+MOSTLYCLEANFILES += sys/types.h sys/types.h-t
+
+EXTRA_DIST += sys_types.in.h
+
+## end gnulib module sys_types
+
+## begin gnulib module sysexits
+
+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.
+if GL_GENERATE_SYSEXITS_H
+sysexits.h: sysexits.in.h $(top_builddir)/config.status
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_SYSEXITS_H''@|$(NEXT_SYSEXITS_H)|g' \
+ < $(srcdir)/sysexits.in.h; \
+ } > $@-t && \
+ mv -f $@-t $@
+else
+sysexits.h: $(top_builddir)/config.status
+ rm -f $@
+endif
+MOSTLYCLEANFILES += sysexits.h sysexits.h-t
+
+EXTRA_DIST += sysexits.in.h
+
+## end gnulib module sysexits
+
+## begin gnulib module tempname
+
+libgnu_a_SOURCES += tempname.c
+
+EXTRA_DIST += tempname.h
+
+## end gnulib module tempname
+
+## begin gnulib module time
+
+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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \
+ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \
+ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
+ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
+ -e 's|@''HAVE_TIMEGM''@|$(HAVE_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_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
+ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|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 $@
+MOSTLYCLEANFILES += time.h time.h-t
+
+EXTRA_DIST += time.in.h
+
+## end gnulib module time
+
+## begin gnulib module time_r
+
+
+EXTRA_DIST += time_r.c
+
+EXTRA_libgnu_a_SOURCES += time_r.c
+
+## end gnulib module time_r
+
+## begin gnulib module timespec
+
+
+EXTRA_DIST += timespec.h
+
+## end gnulib module timespec
+
+## begin gnulib module unistd
+
+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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
+ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
+ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
+ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
+ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/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_FDATASYNC''@/$(GNULIB_FDATASYNC)/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_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
+ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/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_PIPE''@/$(GNULIB_PIPE)/g' \
+ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \
+ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \
+ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \
+ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/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_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/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_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \
+ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \
+ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/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_FCHDIR''@|$(HAVE_FCHDIR)|g' \
+ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \
+ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \
+ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
+ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|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_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|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_PIPE''@|$(HAVE_PIPE)|g' \
+ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \
+ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \
+ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \
+ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \
+ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|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_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \
+ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \
+ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \
+ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
+ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
+ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \
+ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
+ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
+ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
+ | \
+ sed -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_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
+ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
+ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
+ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
+ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|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_PWRITE''@|$(REPLACE_PWRITE)|g' \
+ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|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_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|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 $@
+MOSTLYCLEANFILES += unistd.h unistd.h-t
+
+EXTRA_DIST += unistd.in.h
+
+## end gnulib module unistd
+
+## begin gnulib module unistd-safer
+
+libgnu_a_SOURCES += dup-safer.c fd-safer.c pipe-safer.c
+
+EXTRA_DIST += unistd--.h unistd-safer.h
+
+## end gnulib module unistd-safer
+
+## begin gnulib module unitypes
+
+BUILT_SOURCES += $(LIBUNISTRING_UNITYPES_H)
+
+unitypes.h: unitypes.in.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ cat $(srcdir)/unitypes.in.h; \
+ } > $@-t && \
+ mv -f $@-t $@
+MOSTLYCLEANFILES += unitypes.h unitypes.h-t
+
+EXTRA_DIST += unitypes.in.h
+
+## end gnulib module unitypes
+
+## begin gnulib module uniwidth/base
+
+BUILT_SOURCES += $(LIBUNISTRING_UNIWIDTH_H)
+
+uniwidth.h: uniwidth.in.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ cat $(srcdir)/uniwidth.in.h; \
+ } > $@-t && \
+ mv -f $@-t $@
+MOSTLYCLEANFILES += uniwidth.h uniwidth.h-t
+
+EXTRA_DIST += localcharset.h uniwidth.in.h
+
+## end gnulib module uniwidth/base
+
+## begin gnulib module uniwidth/width
+
+if LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH
+libgnu_a_SOURCES += uniwidth/width.c
+endif
+
+EXTRA_DIST += uniwidth/cjk.h
+
+## end gnulib module uniwidth/width
+
+## begin gnulib module unlinkdir
+
+libgnu_a_SOURCES += unlinkdir.c
+
+EXTRA_DIST += unlinkdir.h
+
+## end gnulib module unlinkdir
+
+## begin gnulib module unlocked-io
+
+
+EXTRA_DIST += unlocked-io.h
+
+## end gnulib module unlocked-io
+
+## begin gnulib module unsetenv
+
+
+EXTRA_DIST += unsetenv.c
+
+EXTRA_libgnu_a_SOURCES += unsetenv.c
+
+## end gnulib module unsetenv
+
+## begin gnulib module utimens
+
+libgnu_a_SOURCES += utimens.c
+
+EXTRA_DIST += utimens.h
+
+## end gnulib module utimens
+
+## begin gnulib module utimensat
+
+
+EXTRA_DIST += at-func.c utimensat.c
+
+EXTRA_libgnu_a_SOURCES += at-func.c utimensat.c
+
+## end gnulib module utimensat
+
+## begin gnulib module vasnprintf
+
+
+EXTRA_DIST += asnprintf.c float+.h printf-args.c printf-args.h printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h
+
+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
+
+
+EXTRA_DIST += verify.h
+
+## end gnulib module verify
+
+## begin gnulib module version-etc
+
+libgnu_a_SOURCES += version-etc.h version-etc.c
+
+## end gnulib module version-etc
+
+## begin gnulib module version-etc-fsf
+
+libgnu_a_SOURCES += version-etc-fsf.c
+
+## end gnulib module version-etc-fsf
+
+## begin gnulib module vsnprintf
+
+
+EXTRA_DIST += vsnprintf.c
+
+EXTRA_libgnu_a_SOURCES += vsnprintf.c
+
+## end gnulib module vsnprintf
+
+## begin gnulib module wchar
+
+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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|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/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \
+ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \
+ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \
+ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \
+ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \
+ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \
+ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \
+ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \
+ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \
+ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \
+ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \
+ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \
+ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \
+ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \
+ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \
+ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \
+ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \
+ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \
+ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \
+ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \
+ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \
+ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \
+ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \
+ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \
+ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \
+ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \
+ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \
+ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \
+ < $(srcdir)/wchar.in.h | \
+ sed -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_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \
+ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \
+ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \
+ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \
+ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \
+ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \
+ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \
+ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \
+ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \
+ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \
+ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \
+ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \
+ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \
+ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \
+ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \
+ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \
+ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \
+ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \
+ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \
+ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \
+ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \
+ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \
+ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \
+ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \
+ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \
+ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \
+ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \
+ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \
+ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
+ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
+ | \
+ sed -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 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|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 += wchar.h wchar.h-t
+
+EXTRA_DIST += wchar.in.h
+
+## end gnulib module wchar
+
+## begin gnulib module wcrtomb
+
+
+EXTRA_DIST += wcrtomb.c
+
+EXTRA_libgnu_a_SOURCES += wcrtomb.c
+
+## end gnulib module wcrtomb
+
+## begin gnulib module 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 $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+ -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \
+ -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \
+ -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \
+ -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \
+ -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \
+ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \
+ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \
+ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \
+ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
+ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/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 $@
+MOSTLYCLEANFILES += wctype.h wctype.h-t
+
+EXTRA_DIST += wctype.in.h
+
+## end gnulib module wctype-h
+
+## begin gnulib module wcwidth
+
+
+EXTRA_DIST += wcwidth.c
+
+EXTRA_libgnu_a_SOURCES += wcwidth.c
+
+## end gnulib module wcwidth
+
+## begin gnulib module write
+
+
+EXTRA_DIST += write.c
+
+EXTRA_libgnu_a_SOURCES += write.c
+
+## end gnulib module write
+
+## begin gnulib module xalloc
+
+libgnu_a_SOURCES += xmalloc.c
+
+EXTRA_DIST += xalloc.h
+
+## end gnulib module xalloc
+
+## begin gnulib module xalloc-die
+
+libgnu_a_SOURCES += xalloc-die.c
+
+## end gnulib module xalloc-die
+
+## begin gnulib module xalloc-oversized
+
+
+EXTRA_DIST += xalloc-oversized.h
+
+## end gnulib module xalloc-oversized
+
+## begin gnulib module xgetcwd
+
+libgnu_a_SOURCES += xgetcwd.c
+
+EXTRA_DIST += xgetcwd.h
+
+## end gnulib module xgetcwd
+
+## begin gnulib module xsize
+
+libgnu_a_SOURCES += xsize.h
+
+## end gnulib module xsize
+
+## begin gnulib module xstrndup
+
+libgnu_a_SOURCES += xstrndup.h xstrndup.c
+
+## end gnulib module xstrndup
+
+## begin gnulib module xstrtol
+
+libgnu_a_SOURCES += xstrtol.c xstrtoul.c xstrtol-error.c
+
+EXTRA_DIST += xstrtol.h
+
+## end gnulib module xstrtol
+
+## begin gnulib module xstrtoumax
+
+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 \
+ if test -n "$$dir" && test -d $$dir; then \
+ echo "rmdir $$dir"; rmdir $$dir; \
+ fi; \
+ done; \
+ :
diff --git a/gnu/Makefile.in b/gnu/Makefile.in
new file mode 100644
index 00000000..9d0c4481
--- /dev/null
+++ b/gnu/Makefile.in
@@ -0,0 +1,3171 @@
+# 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@
+
+# -*- buffer-read-only: t -*- vi: set ro:
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+#
+# 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
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file 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 file. If not, see <http://www.gnu.org/licenses/>.
+#
+# 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-conditional-dependencies --no-libtool --macro-prefix=gl alloca argmatch argp argp-version-etc backupfile closeout configmake dirname error exclude exitfail fdopendir fdutimensat fileblocks fnmatch-gnu fseeko full-write futimens getline getopt-gnu getpagesize gettext gettime gitlog-to-changelog hash human inttostr inttypes lchown linkat localcharset mkdtemp mkfifoat modechange obstack openat parse-datetime priv-set progname quote quotearg readlinkat renameat rpmatch safe-read savedir setenv snprintf stat-time stdbool stdint stpcpy strdup-posix strerror strtol strtoul symlinkat timespec unlinkdir unlocked-io utimensat version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax xvasprintf
+
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@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@
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_1 = uniwidth/width.c
+subdir = gnu
+DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in alloca.c parse-datetime.c
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+ $(top_srcdir)/m4/alloca.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/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+ $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.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/double-slash-root.m4 $(top_srcdir)/m4/dup.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/exponentd.m4 \
+ $(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fchdir.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/filenamecat.m4 \
+ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
+ $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+ $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
+ $(top_srcdir)/m4/getcwd-abort-bug.m4 \
+ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.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/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/iswblank.m4 \
+ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.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/libunistring-base.m4 \
+ $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
+ $(top_srcdir)/m4/linkat.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/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
+ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
+ $(top_srcdir)/m4/mkdtemp.m4 $(top_srcdir)/m4/mkfifo.m4 \
+ $(top_srcdir)/m4/mkfifoat.m4 $(top_srcdir)/m4/mknod.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/msvc-inval.m4 \
+ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/open.m4 \
+ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \
+ $(top_srcdir)/m4/parse-datetime.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/raise.m4 \
+ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/read.m4 \
+ $(top_srcdir)/m4/readdir.m4 $(top_srcdir)/m4/readlink.m4 \
+ $(top_srcdir)/m4/readlinkat.m4 $(top_srcdir)/m4/realloc.m4 \
+ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
+ $(top_srcdir)/m4/renameat.m4 $(top_srcdir)/m4/rewinddir.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/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
+ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stdalign.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/strtol.m4 \
+ $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
+ $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+ $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
+ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
+ $(top_srcdir)/m4/sys_types_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/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+ $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+ $(top_srcdir)/m4/utimensat.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)
+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__libgnu_a_SOURCES_DIST = allocator.c areadlink.c areadlinkat.c \
+ argmatch.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 backupfile.c bitrotate.h \
+ c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c c-strncasecmp.c \
+ careadlinkat.c cloexec.c close-stream.c closeout.c \
+ opendir-safer.c dirname.c basename.c dirname-lgpl.c \
+ basename-lgpl.c stripslash.c exclude.c exitfail.c fd-hook.c \
+ fdutimensat.c filenamecat-lgpl.c full-write.h full-write.c \
+ gettext.h gettime.c hash.c human.c imaxtostr.c inttostr.c \
+ offtostr.c uinttostr.c umaxtostr.c localcharset.h \
+ localcharset.c malloca.c mbchar.c mbscasecmp.c mbuiter.h \
+ modechange.c openat-die.c parse-datetime.y priv-set.c \
+ progname.h progname.c quote.c quotearg.c safe-read.c \
+ safe-write.c save-cwd.c savedir.c size_max.h strnlen1.h \
+ strnlen1.c tempname.c dup-safer.c fd-safer.c pipe-safer.c \
+ uniwidth/width.c unlinkdir.c utimens.c version-etc.h \
+ version-etc.c version-etc-fsf.c xmalloc.c xalloc-die.c \
+ xgetcwd.c xsize.h xstrndup.h xstrndup.c xstrtol.c xstrtoul.c \
+ xstrtol-error.c xstrtoumax.c xvasprintf.h xvasprintf.c \
+ xasprintf.c
+am__dirstamp = $(am__leading_dot)dirstamp
+@LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__objects_1 = uniwidth/width.$(OBJEXT)
+am_libgnu_a_OBJECTS = allocator.$(OBJEXT) areadlink.$(OBJEXT) \
+ areadlinkat.$(OBJEXT) argmatch.$(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) backupfile.$(OBJEXT) \
+ c-ctype.$(OBJEXT) c-strcasecmp.$(OBJEXT) \
+ c-strncasecmp.$(OBJEXT) careadlinkat.$(OBJEXT) \
+ cloexec.$(OBJEXT) close-stream.$(OBJEXT) closeout.$(OBJEXT) \
+ opendir-safer.$(OBJEXT) dirname.$(OBJEXT) basename.$(OBJEXT) \
+ dirname-lgpl.$(OBJEXT) basename-lgpl.$(OBJEXT) \
+ stripslash.$(OBJEXT) exclude.$(OBJEXT) exitfail.$(OBJEXT) \
+ fd-hook.$(OBJEXT) fdutimensat.$(OBJEXT) \
+ filenamecat-lgpl.$(OBJEXT) full-write.$(OBJEXT) \
+ gettime.$(OBJEXT) hash.$(OBJEXT) human.$(OBJEXT) \
+ imaxtostr.$(OBJEXT) inttostr.$(OBJEXT) offtostr.$(OBJEXT) \
+ uinttostr.$(OBJEXT) umaxtostr.$(OBJEXT) localcharset.$(OBJEXT) \
+ malloca.$(OBJEXT) mbchar.$(OBJEXT) mbscasecmp.$(OBJEXT) \
+ modechange.$(OBJEXT) openat-die.$(OBJEXT) \
+ parse-datetime.$(OBJEXT) priv-set.$(OBJEXT) progname.$(OBJEXT) \
+ quote.$(OBJEXT) quotearg.$(OBJEXT) safe-read.$(OBJEXT) \
+ safe-write.$(OBJEXT) save-cwd.$(OBJEXT) savedir.$(OBJEXT) \
+ strnlen1.$(OBJEXT) tempname.$(OBJEXT) dup-safer.$(OBJEXT) \
+ fd-safer.$(OBJEXT) pipe-safer.$(OBJEXT) $(am__objects_1) \
+ unlinkdir.$(OBJEXT) utimens.$(OBJEXT) version-etc.$(OBJEXT) \
+ version-etc-fsf.$(OBJEXT) xmalloc.$(OBJEXT) \
+ xalloc-die.$(OBJEXT) xgetcwd.$(OBJEXT) xstrndup.$(OBJEXT) \
+ xstrtol.$(OBJEXT) xstrtoul.$(OBJEXT) xstrtol-error.$(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 = $(am__libgnu_a_SOURCES_DIST) $(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"
+pkglibexecdir = @pkglibexecdir@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+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_CHDIR = @GNULIB_CHDIR@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@
+GNULIB_DIRFD = @GNULIB_DIRFD@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
+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_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+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_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
+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_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
+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_GETS = @GNULIB_GETS@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
+GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
+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_MBTOWC = @GNULIB_MBTOWC@
+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_NONBLOCKING = @GNULIB_NONBLOCKING@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
+GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
+GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
+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_REWINDDIR = @GNULIB_REWINDDIR@
+GNULIB_RMDIR = @GNULIB_RMDIR@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SIGACTION = @GNULIB_SIGACTION@
+GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
+GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+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_STRERROR_R = @GNULIB_STRERROR_R@
+GNULIB_STRNCAT = @GNULIB_STRNCAT@
+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_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TIMEGM = @GNULIB_TIMEGM@
+GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNLINK = @GNULIB_UNLINK@
+GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
+GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
+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_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
+GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
+GREP = @GREP@
+HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
+HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
+HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
+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_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_DUP3 = @HAVE_DUP3@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FACCESSAT = @HAVE_FACCESSAT@
+HAVE_FCHDIR = @HAVE_FCHDIR@
+HAVE_FCHMODAT = @HAVE_FCHMODAT@
+HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSTATAT = @HAVE_FSTATAT@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_FUTIMENS = @HAVE_FUTIMENS@
+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_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWBLANK = @HAVE_ISWBLANK@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
+HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
+HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
+HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
+HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
+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_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSLEN = @HAVE_MBSLEN@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMCHR = @HAVE_MEMCHR@
+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_MKSTEMP = @HAVE_MKSTEMP@
+HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
+HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
+HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
+HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
+HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
+HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
+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_SIGSET_T = @HAVE_SIGSET_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_STRINGS_H = @HAVE_STRINGS_H@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRPTIME = @HAVE_STRPTIME@
+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_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+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_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNLINKAT = @HAVE_UNLINKAT@
+HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
+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_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
+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@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+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_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_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_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_SIGNAL_H = @NEXT_SIGNAL_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_SYS_TYPES_H = @NEXT_SYS_TYPES_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_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PU_RMT_PROG = @PU_RMT_PROG@
+RANLIB = @RANLIB@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
+REPLACE_DIRFD = @REPLACE_DIRFD@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_DUP = @REPLACE_DUP@
+REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+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_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
+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_MALLOC = @REPLACE_MALLOC@
+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_MBTOWC = @REPLACE_MBTOWC@
+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_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
+REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
+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_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPNCPY = @REPLACE_STPNCPY@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
+REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNDUP = @REPLACE_STRNDUP@
+REPLACE_STRNLEN = @REPLACE_STRNLEN@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
+REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
+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_WCSWIDTH = @REPLACE_WCSWIDTH@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
+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@
+STDALIGN_H = @STDALIGN_H@
+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@
+gltests_WITNESS = @gltests_WITNESS@
+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@
+lispdir = @lispdir@
+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 =
+EXTRA_DIST = alloca.c alloca.in.h allocator.h areadlink.h areadlink.h \
+ at-func.c argmatch.h openat-priv.h openat-proc.c backupfile.h \
+ btowc.c c-strcaseeq.h canonicalize-lgpl.c careadlinkat.h \
+ chdir-long.c chdir-long.h chown.c fchown-stub.c cloexec.h \
+ close.c close-stream.h closedir.c dirent-private.h closeout.h \
+ dirent.in.h dirent--.h dirent-safer.h dirfd.c stripslash.c \
+ dirname.h dosname.h dup.c dup2.c errno.in.h error.c error.h \
+ exclude.h exitfail.h fchdir.c fcntl.c fcntl.in.h fd-hook.h \
+ fdopendir.c utimens.h fileblocks.c filename.h filenamecat.h \
+ float.c float.in.h itold.c fnmatch.c fnmatch.in.h \
+ fnmatch_loop.c fpending.c fpending.h fseek.c fseeko.c \
+ stdio-impl.h fstat.c at-func.c fstatat.c openat-priv.h \
+ futimens.c getcwd.c getcwd-lgpl.c getdelim.c getdtablesize.c \
+ getline.c getopt.c getopt.in.h getopt1.c getopt_int.h \
+ getpagesize.c $(top_srcdir)/build-aux/config.rpath \
+ gettimeofday.c $(top_srcdir)/build-aux/gitlog-to-changelog \
+ hash.h $(top_srcdir)/build-aux/config.rpath human.h intprops.h \
+ anytostr.c inttostr.h inttypes.in.h iswblank.c langinfo.in.h \
+ lchown.c link.c at-func2.c linkat.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-impl.h \
+ mbsrtowcs-state.c mbsrtowcs.c mbtowc-impl.h mbtowc.c memchr.c \
+ memchr.valgrind mempcpy.c memrchr.c mkdtemp.c mkfifo.c \
+ at-func.c mkfifoat.c mknodat.c mknod.c mktime-internal.h \
+ mktime.c modechange.h msvc-inval.c msvc-inval.h msvc-nothrow.c \
+ msvc-nothrow.h nl_langinfo.c obstack.c obstack.h open.c \
+ openat-priv.h openat.c openat.h dirent-private.h opendir.c \
+ parse-datetime.c parse-datetime.h pathmax.h priv-set.h quote.h \
+ quotearg.h raise.c rawmemchr.c rawmemchr.valgrind read.c \
+ dirent-private.h readdir.c readlink.c at-func.c readlinkat.c \
+ realloc.c regcomp.c regex.c regex.h regex_internal.c \
+ regex_internal.h regexec.c rename.c at-func2.c renameat.c \
+ dirent-private.h rewinddir.c rmdir.c rpmatch.c safe-read.h \
+ safe-read.c safe-write.h same-inode.h save-cwd.h savedir.h \
+ setenv.c signal.in.h sleep.c \
+ $(top_srcdir)/build-aux/snippet/_Noreturn.h \
+ $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
+ $(top_srcdir)/build-aux/snippet/c++defs.h \
+ $(top_srcdir)/build-aux/snippet/warn-on-use.h snprintf.c \
+ stat.c stat-macros.h stat-time.h stdalign.in.h stdarg.in.h \
+ stdbool.in.h stddef.in.h stdint.in.h stdio.in.h stdlib.in.h \
+ stpcpy.c strcasecmp.c strncasecmp.c strchrnul.c \
+ strchrnul.valgrind strdup.c streq.h strerror.c \
+ strerror-override.c strerror-override.h string.in.h \
+ strings.in.h strndup.c strnlen.c strtol.c strtol.c strtoul.c \
+ strtol.c strtoul.c strtoull.c strtoimax.c strtoumax.c \
+ symlink.c at-func.c symlinkat.c sys_stat.in.h sys_time.in.h \
+ sys_types.in.h sysexits.in.h tempname.h time.in.h time_r.c \
+ timespec.h unistd.in.h unistd--.h unistd-safer.h unitypes.in.h \
+ localcharset.h uniwidth.in.h uniwidth/cjk.h unlinkdir.h \
+ unlocked-io.h unsetenv.c utimens.h at-func.c utimensat.c \
+ asnprintf.c float+.h printf-args.c printf-args.h \
+ printf-parse.c printf-parse.h vasnprintf.c vasnprintf.h \
+ asprintf.c vasprintf.c verify.h vsnprintf.c wchar.in.h \
+ wcrtomb.c wctype.in.h wcwidth.c write.c xalloc.h \
+ xalloc-oversized.h xgetcwd.h xstrtol.h 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) configmake.h dirent.h $(ERRNO_H) fcntl.h \
+ $(FLOAT_H) $(FNMATCH_H) $(GETOPT_H) inttypes.h langinfo.h \
+ parse-datetime.c signal.h arg-nonnull.h c++defs.h \
+ warn-on-use.h $(STDALIGN_H) $(STDARG_H) $(STDBOOL_H) \
+ $(STDDEF_H) $(STDINT_H) stdio.h stdlib.h string.h strings.h \
+ sys/stat.h sys/time.h sys/types.h $(SYSEXITS_H) time.h \
+ unistd.h $(LIBUNISTRING_UNITYPES_H) $(LIBUNISTRING_UNIWIDTH_H) \
+ wchar.h wctype.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 langinfo.h langinfo.h-t parse-datetime.c-t \
+ signal.h signal.h-t arg-nonnull.h arg-nonnull.h-t c++defs.h \
+ c++defs.h-t warn-on-use.h warn-on-use.h-t stdalign.h \
+ stdalign.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 sys/types.h \
+ sys/types.h-t sysexits.h sysexits.h-t time.h time.h-t unistd.h \
+ unistd.h-t unitypes.h unitypes.h-t uniwidth.h uniwidth.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 = parse-datetime.c
+
+# 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
+AM_CFLAGS =
+libgnu_a_SOURCES = allocator.c areadlink.c areadlinkat.c argmatch.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 backupfile.c bitrotate.h \
+ c-ctype.h c-ctype.c c-strcase.h c-strcasecmp.c c-strncasecmp.c \
+ careadlinkat.c cloexec.c close-stream.c closeout.c \
+ opendir-safer.c dirname.c basename.c dirname-lgpl.c \
+ basename-lgpl.c stripslash.c exclude.c exitfail.c fd-hook.c \
+ fdutimensat.c filenamecat-lgpl.c full-write.h full-write.c \
+ gettext.h gettime.c hash.c human.c imaxtostr.c inttostr.c \
+ offtostr.c uinttostr.c umaxtostr.c localcharset.h \
+ localcharset.c malloca.c mbchar.c mbscasecmp.c mbuiter.h \
+ modechange.c openat-die.c parse-datetime.y priv-set.c \
+ progname.h progname.c quote.c quotearg.c safe-read.c \
+ safe-write.c save-cwd.c savedir.c size_max.h strnlen1.h \
+ strnlen1.c tempname.c dup-safer.c fd-safer.c pipe-safer.c \
+ $(am__append_1) unlinkdir.c utimens.c version-etc.h \
+ version-etc.c version-etc-fsf.c xmalloc.c xalloc-die.c \
+ xgetcwd.c xsize.h xstrndup.h xstrndup.c xstrtol.c xstrtoul.c \
+ xstrtol-error.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 at-func.c openat-proc.c btowc.c \
+ canonicalize-lgpl.c chdir-long.c chown.c fchown-stub.c close.c \
+ closedir.c dirfd.c stripslash.c dup.c dup2.c error.c fchdir.c \
+ fcntl.c fdopendir.c fileblocks.c float.c itold.c fnmatch.c \
+ fnmatch_loop.c fpending.c fseek.c fseeko.c fstat.c at-func.c \
+ fstatat.c futimens.c getcwd.c getcwd-lgpl.c getdelim.c \
+ getdtablesize.c getline.c getopt.c getopt1.c getpagesize.c \
+ gettimeofday.c anytostr.c iswblank.c lchown.c link.c \
+ at-func2.c linkat.c lseek.c lstat.c malloc.c malloc.c \
+ mbrtowc.c mbsinit.c mbsrtowcs-state.c mbsrtowcs.c mbtowc.c \
+ memchr.c mempcpy.c memrchr.c mkdtemp.c mkfifo.c at-func.c \
+ mkfifoat.c mknodat.c mknod.c mktime.c msvc-inval.c \
+ msvc-nothrow.c nl_langinfo.c obstack.c open.c openat.c \
+ opendir.c raise.c rawmemchr.c read.c readdir.c readlink.c \
+ at-func.c readlinkat.c realloc.c regcomp.c regex.c \
+ regex_internal.c regexec.c rename.c at-func2.c renameat.c \
+ rewinddir.c rmdir.c rpmatch.c safe-read.c setenv.c sleep.c \
+ snprintf.c stat.c stpcpy.c strcasecmp.c strncasecmp.c \
+ strchrnul.c strdup.c strerror.c strerror-override.c strndup.c \
+ strnlen.c strtol.c strtol.c strtoul.c strtol.c strtoul.c \
+ strtoull.c strtoimax.c strtoumax.c symlink.c at-func.c \
+ symlinkat.c time_r.c unsetenv.c at-func.c utimensat.c \
+ asnprintf.c printf-args.c printf-parse.c vasnprintf.c \
+ asprintf.c vasprintf.c vsnprintf.c wcrtomb.c wcwidth.c write.c
+charset_alias = $(DESTDIR)$(libdir)/charset.alias
+charset_tmp = $(DESTDIR)$(libdir)/charset.tmp
+
+# Because this Makefile snippet defines a variable used by other
+# gnulib Makefile snippets, it must be present in all Makefile.am that
+# need it. This is ensured by the applicability 'all' defined above.
+_NORETURN_H = $(top_srcdir)/build-aux/snippet/_Noreturn.h
+ARG_NONNULL_H = arg-nonnull.h
+CXXDEFS_H = c++defs.h
+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)/allocator.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/anytostr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/areadlink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/areadlinkat.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)/at-func2.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)/c-strcasecmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/c-strncasecmp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/canonicalize-lgpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/careadlinkat.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)/cloexec.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)/closedir.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)/dup.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)/fchown-stub.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fcntl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fd-hook.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)/fdutimensat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fileblocks.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/filenamecat-lgpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/float.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)/fseek.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fseeko.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fstatat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/full-write.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/futimens.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd-lgpl.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getcwd.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.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)/iswblank.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/itold.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lchown.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/linkat.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)/mbtowc.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)/mkdtemp.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkfifo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mkfifoat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mknod.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mknodat.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)/msvc-inval.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/msvc-nothrow.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)/opendir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse-datetime.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)/raise.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rawmemchr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/read.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readdir.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/readlinkat.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)/rename.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/renameat.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rewinddir.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)/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)/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-override.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)/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)/symlink.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/symlinkat.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)/utimens.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/utimensat.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 parse-datetime.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.
+@GL_GENERATE_ALLOCA_H_TRUE@alloca.h: alloca.in.h $(top_builddir)/config.status
+@GL_GENERATE_ALLOCA_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_ALLOCA_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_ALLOCA_H_TRUE@ cat $(srcdir)/alloca.in.h; \
+@GL_GENERATE_ALLOCA_H_TRUE@ } > $@-t && \
+@GL_GENERATE_ALLOCA_H_TRUE@ mv -f $@-t $@
+@GL_GENERATE_ALLOCA_H_FALSE@alloca.h: $(top_builddir)/config.status
+@GL_GENERATE_ALLOCA_H_FALSE@ rm -f $@
+
+# Listed in the same order as the GNU makefile conventions, and
+# provided by autoconf 2.59c+.
+# 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
+ mv -f $@-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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''HAVE_DIRENT_H''@|$(HAVE_DIRENT_H)|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_DIRENT_H''@|$(NEXT_DIRENT_H)|g' \
+ -e 's/@''GNULIB_OPENDIR''@/$(GNULIB_OPENDIR)/g' \
+ -e 's/@''GNULIB_READDIR''@/$(GNULIB_READDIR)/g' \
+ -e 's/@''GNULIB_REWINDDIR''@/$(GNULIB_REWINDDIR)/g' \
+ -e 's/@''GNULIB_CLOSEDIR''@/$(GNULIB_CLOSEDIR)/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_OPENDIR''@/$(HAVE_OPENDIR)/g' \
+ -e 's/@''HAVE_READDIR''@/$(HAVE_READDIR)/g' \
+ -e 's/@''HAVE_REWINDDIR''@/$(HAVE_REWINDDIR)/g' \
+ -e 's/@''HAVE_CLOSEDIR''@/$(HAVE_CLOSEDIR)/g' \
+ -e 's|@''HAVE_DECL_DIRFD''@|$(HAVE_DECL_DIRFD)|g' \
+ -e 's|@''HAVE_DECL_FDOPENDIR''@|$(HAVE_DECL_FDOPENDIR)|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_OPENDIR''@|$(REPLACE_OPENDIR)|g' \
+ -e 's|@''REPLACE_CLOSEDIR''@|$(REPLACE_CLOSEDIR)|g' \
+ -e 's|@''REPLACE_DIRFD''@|$(REPLACE_DIRFD)|g' \
+ -e 's|@''REPLACE_FDOPENDIR''@|$(REPLACE_FDOPENDIR)|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.
+@GL_GENERATE_ERRNO_H_TRUE@errno.h: errno.in.h $(top_builddir)/config.status
+@GL_GENERATE_ERRNO_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_ERRNO_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_ERRNO_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''NEXT_ERRNO_H''@|$(NEXT_ERRNO_H)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_HIDDEN''@|$(EMULTIHOP_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EMULTIHOP_VALUE''@|$(EMULTIHOP_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_HIDDEN''@|$(ENOLINK_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''ENOLINK_VALUE''@|$(ENOLINK_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_HIDDEN''@|$(EOVERFLOW_HIDDEN)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@ -e 's|@''EOVERFLOW_VALUE''@|$(EOVERFLOW_VALUE)|g' \
+@GL_GENERATE_ERRNO_H_TRUE@ < $(srcdir)/errno.in.h; \
+@GL_GENERATE_ERRNO_H_TRUE@ } > $@-t && \
+@GL_GENERATE_ERRNO_H_TRUE@ mv $@-t $@
+@GL_GENERATE_ERRNO_H_FALSE@errno.h: $(top_builddir)/config.status
+@GL_GENERATE_ERRNO_H_FALSE@ rm -f $@
+
+# 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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_FCNTL_H''@|$(NEXT_FCNTL_H)|g' \
+ -e 's/@''GNULIB_FCNTL''@/$(GNULIB_FCNTL)/g' \
+ -e 's/@''GNULIB_NONBLOCKING''@/$(GNULIB_NONBLOCKING)/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.
+@GL_GENERATE_FLOAT_H_TRUE@float.h: float.in.h $(top_builddir)/config.status
+@GL_GENERATE_FLOAT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_FLOAT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_FLOAT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''NEXT_FLOAT_H''@|$(NEXT_FLOAT_H)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@ -e 's|@''REPLACE_ITOLD''@|$(REPLACE_ITOLD)|g' \
+@GL_GENERATE_FLOAT_H_TRUE@ < $(srcdir)/float.in.h; \
+@GL_GENERATE_FLOAT_H_TRUE@ } > $@-t && \
+@GL_GENERATE_FLOAT_H_TRUE@ mv $@-t $@
+@GL_GENERATE_FLOAT_H_FALSE@float.h: $(top_builddir)/config.status
+@GL_GENERATE_FLOAT_H_FALSE@ rm -f $@
+
+# We need the following in order to create <fnmatch.h> when the system
+# doesn't have one that supports the required API.
+@GL_GENERATE_FNMATCH_H_TRUE@fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(ARG_NONNULL_H)
+@GL_GENERATE_FNMATCH_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_FNMATCH_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_FNMATCH_H_TRUE@ sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \
+@GL_GENERATE_FNMATCH_H_TRUE@ < $(srcdir)/fnmatch.in.h; \
+@GL_GENERATE_FNMATCH_H_TRUE@ } > $@-t && \
+@GL_GENERATE_FNMATCH_H_TRUE@ mv -f $@-t $@
+@GL_GENERATE_FNMATCH_H_FALSE@fnmatch.h: $(top_builddir)/config.status
+@GL_GENERATE_FNMATCH_H_FALSE@ rm -f $@
+
+# 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 $(top_builddir)/config.status $(ARG_NONNULL_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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 $(top_builddir)/config.status $(CXXDEFS_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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/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 '/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)/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 $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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_T_FMT_AMPM''@|$(HAVE_LANGINFO_T_FMT_AMPM)|g' \
+ -e 's|@''HAVE_LANGINFO_ERA''@|$(HAVE_LANGINFO_ERA)|g' \
+ -e 's|@''HAVE_LANGINFO_YESEXPR''@|$(HAVE_LANGINFO_YESEXPR)|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-$@ $@
+
+# This rule overrides the Automake generated .y.c rule, to ensure that the
+# parse-datetime.c file gets generated in the source directory, not in the
+# build directory.
+parse-datetime.c: parse-datetime.y
+ $(AM_V_GEN)$(SHELL) $(YLWRAP) $(srcdir)/parse-datetime.y \
+ y.tab.c parse-datetime.c \
+ y.tab.h parse-datetime.h \
+ y.output parse-datetime.output \
+ -- $(YACC) $(YFLAGS) $(AM_YFLAGS) && \
+ mv parse-datetime.c parse-datetime.c-t && \
+ mv parse-datetime.c-t $(srcdir)/parse-datetime.c
+
+# We need the following in order to create <signal.h> when the system
+# doesn't have a complete one.
+signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \
+ -e 's|@''GNULIB_PTHREAD_SIGMASK''@|$(GNULIB_PTHREAD_SIGMASK)|g' \
+ -e 's|@''GNULIB_RAISE''@|$(GNULIB_RAISE)|g' \
+ -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' \
+ -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \
+ -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \
+ -e 's|@''HAVE_POSIX_SIGNALBLOCKING''@|$(HAVE_POSIX_SIGNALBLOCKING)|g' \
+ -e 's|@''HAVE_PTHREAD_SIGMASK''@|$(HAVE_PTHREAD_SIGMASK)|g' \
+ -e 's|@''HAVE_RAISE''@|$(HAVE_RAISE)|g' \
+ -e 's|@''HAVE_SIGSET_T''@|$(HAVE_SIGSET_T)|g' \
+ -e 's|@''HAVE_SIGINFO_T''@|$(HAVE_SIGINFO_T)|g' \
+ -e 's|@''HAVE_SIGACTION''@|$(HAVE_SIGACTION)|g' \
+ -e 's|@''HAVE_STRUCT_SIGACTION_SA_SIGACTION''@|$(HAVE_STRUCT_SIGACTION_SA_SIGACTION)|g' \
+ -e 's|@''HAVE_TYPE_VOLATILE_SIG_ATOMIC_T''@|$(HAVE_TYPE_VOLATILE_SIG_ATOMIC_T)|g' \
+ -e 's|@''HAVE_SIGHANDLER_T''@|$(HAVE_SIGHANDLER_T)|g' \
+ -e 's|@''REPLACE_PTHREAD_SIGMASK''@|$(REPLACE_PTHREAD_SIGMASK)|g' \
+ -e 's|@''REPLACE_RAISE''@|$(REPLACE_RAISE)|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)/signal.in.h; \
+ } > $@-t && \
+ mv $@-t $@
+# The arg-nonnull.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/arg-nonnull.h, except that it has the copyright header cut
+# off.
+arg-nonnull.h: $(top_srcdir)/build-aux/snippet/arg-nonnull.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ sed -n -e '/GL_ARG_NONNULL/,$$p' \
+ < $(top_srcdir)/build-aux/snippet/arg-nonnull.h \
+ > $@-t && \
+ mv $@-t $@
+# The c++defs.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/c++defs.h, except that it has the copyright header cut off.
+c++defs.h: $(top_srcdir)/build-aux/snippet/c++defs.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ sed -n -e '/_GL_CXXDEFS/,$$p' \
+ < $(top_srcdir)/build-aux/snippet/c++defs.h \
+ > $@-t && \
+ mv $@-t $@
+# The warn-on-use.h that gets inserted into generated .h files is the same as
+# build-aux/snippet/warn-on-use.h, except that it has the copyright header cut
+# off.
+warn-on-use.h: $(top_srcdir)/build-aux/snippet/warn-on-use.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ sed -n -e '/^.ifndef/,$$p' \
+ < $(top_srcdir)/build-aux/snippet/warn-on-use.h \
+ > $@-t && \
+ mv $@-t $@
+
+# We need the following in order to create <stdalign.h> when the system
+# doesn't have one that works.
+@GL_GENERATE_STDALIGN_H_TRUE@stdalign.h: stdalign.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDALIGN_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDALIGN_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_STDALIGN_H_TRUE@ cat $(srcdir)/stdalign.in.h; \
+@GL_GENERATE_STDALIGN_H_TRUE@ } > $@-t && \
+@GL_GENERATE_STDALIGN_H_TRUE@ mv $@-t $@
+@GL_GENERATE_STDALIGN_H_FALSE@stdalign.h: $(top_builddir)/config.status
+@GL_GENERATE_STDALIGN_H_FALSE@ rm -f $@
+
+# We need the following in order to create <stdarg.h> when the system
+# doesn't have one that works with the given compiler.
+@GL_GENERATE_STDARG_H_TRUE@stdarg.h: stdarg.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDARG_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDARG_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_STDARG_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_STDARG_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_STDARG_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_STDARG_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_STDARG_H_TRUE@ -e 's|@''NEXT_STDARG_H''@|$(NEXT_STDARG_H)|g' \
+@GL_GENERATE_STDARG_H_TRUE@ < $(srcdir)/stdarg.in.h; \
+@GL_GENERATE_STDARG_H_TRUE@ } > $@-t && \
+@GL_GENERATE_STDARG_H_TRUE@ mv $@-t $@
+@GL_GENERATE_STDARG_H_FALSE@stdarg.h: $(top_builddir)/config.status
+@GL_GENERATE_STDARG_H_FALSE@ rm -f $@
+
+# We need the following in order to create <stdbool.h> when the system
+# doesn't have one that works.
+@GL_GENERATE_STDBOOL_H_TRUE@stdbool.h: stdbool.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDBOOL_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDBOOL_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_STDBOOL_H_TRUE@ sed -e 's/@''HAVE__BOOL''@/$(HAVE__BOOL)/g' < $(srcdir)/stdbool.in.h; \
+@GL_GENERATE_STDBOOL_H_TRUE@ } > $@-t && \
+@GL_GENERATE_STDBOOL_H_TRUE@ mv $@-t $@
+@GL_GENERATE_STDBOOL_H_FALSE@stdbool.h: $(top_builddir)/config.status
+@GL_GENERATE_STDBOOL_H_FALSE@ rm -f $@
+
+# We need the following in order to create <stddef.h> when the system
+# doesn't have one that works with the given compiler.
+@GL_GENERATE_STDDEF_H_TRUE@stddef.h: stddef.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDDEF_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDDEF_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+@GL_GENERATE_STDDEF_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''NEXT_STDDEF_H''@|$(NEXT_STDDEF_H)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''HAVE_WCHAR_T''@|$(HAVE_WCHAR_T)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@ -e 's|@''REPLACE_NULL''@|$(REPLACE_NULL)|g' \
+@GL_GENERATE_STDDEF_H_TRUE@ < $(srcdir)/stddef.in.h; \
+@GL_GENERATE_STDDEF_H_TRUE@ } > $@-t && \
+@GL_GENERATE_STDDEF_H_TRUE@ mv $@-t $@
+@GL_GENERATE_STDDEF_H_FALSE@stddef.h: $(top_builddir)/config.status
+@GL_GENERATE_STDDEF_H_FALSE@ rm -f $@
+
+# We need the following in order to create <stdint.h> when the system
+# doesn't have one that works with the given compiler.
+@GL_GENERATE_STDINT_H_TRUE@stdint.h: stdint.in.h $(top_builddir)/config.status
+@GL_GENERATE_STDINT_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_STDINT_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_STDINT_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_STDINT_H''@/$(HAVE_STDINT_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's|@''NEXT_STDINT_H''@|$(NEXT_STDINT_H)|g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_TYPES_H''@/$(HAVE_SYS_TYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_INTTYPES_H''@/$(HAVE_INTTYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_INTTYPES_H''@/$(HAVE_SYS_INTTYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SYS_BITYPES_H''@/$(HAVE_SYS_BITYPES_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_WCHAR_H''@/$(HAVE_WCHAR_H)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_LONG_LONG_INT''@/$(HAVE_LONG_LONG_INT)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_UNSIGNED_LONG_LONG_INT''@/$(HAVE_UNSIGNED_LONG_LONG_INT)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''APPLE_UNIVERSAL_BUILD''@/$(APPLE_UNIVERSAL_BUILD)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_PTRDIFF_T''@/$(BITSIZEOF_PTRDIFF_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''PTRDIFF_T_SUFFIX''@/$(PTRDIFF_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIG_ATOMIC_T''@/$(BITSIZEOF_SIG_ATOMIC_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_SIG_ATOMIC_T''@/$(HAVE_SIGNED_SIG_ATOMIC_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIG_ATOMIC_T_SUFFIX''@/$(SIG_ATOMIC_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_SIZE_T''@/$(BITSIZEOF_SIZE_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''SIZE_T_SUFFIX''@/$(SIZE_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WCHAR_T''@/$(BITSIZEOF_WCHAR_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WCHAR_T''@/$(HAVE_SIGNED_WCHAR_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WCHAR_T_SUFFIX''@/$(WCHAR_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''BITSIZEOF_WINT_T''@/$(BITSIZEOF_WINT_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''HAVE_SIGNED_WINT_T''@/$(HAVE_SIGNED_WINT_T)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ -e 's/@''WINT_T_SUFFIX''@/$(WINT_T_SUFFIX)/g' \
+@GL_GENERATE_STDINT_H_TRUE@ < $(srcdir)/stdint.in.h; \
+@GL_GENERATE_STDINT_H_TRUE@ } > $@-t && \
+@GL_GENERATE_STDINT_H_TRUE@ mv $@-t $@
+@GL_GENERATE_STDINT_H_FALSE@stdint.h: $(top_builddir)/config.status
+@GL_GENERATE_STDINT_H_FALSE@ rm -f $@
+
+# 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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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_FDOPEN''@/$(GNULIB_FDOPEN)/g' \
+ -e 's/@''GNULIB_FFLUSH''@/$(GNULIB_FFLUSH)/g' \
+ -e 's/@''GNULIB_FGETC''@/$(GNULIB_FGETC)/g' \
+ -e 's/@''GNULIB_FGETS''@/$(GNULIB_FGETS)/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_FREAD''@/$(GNULIB_FREAD)/g' \
+ -e 's/@''GNULIB_FREOPEN''@/$(GNULIB_FREOPEN)/g' \
+ -e 's/@''GNULIB_FSCANF''@/$(GNULIB_FSCANF)/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_GETC''@/$(GNULIB_GETC)/g' \
+ -e 's/@''GNULIB_GETCHAR''@/$(GNULIB_GETCHAR)/g' \
+ -e 's/@''GNULIB_GETDELIM''@/$(GNULIB_GETDELIM)/g' \
+ -e 's/@''GNULIB_GETLINE''@/$(GNULIB_GETLINE)/g' \
+ -e 's/@''GNULIB_GETS''@/$(GNULIB_GETS)/g' \
+ -e 's/@''GNULIB_OBSTACK_PRINTF''@/$(GNULIB_OBSTACK_PRINTF)/g' \
+ -e 's/@''GNULIB_OBSTACK_PRINTF_POSIX''@/$(GNULIB_OBSTACK_PRINTF_POSIX)/g' \
+ -e 's/@''GNULIB_PCLOSE''@/$(GNULIB_PCLOSE)/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_SCANF''@/$(GNULIB_SCANF)/g' \
+ -e 's/@''GNULIB_SNPRINTF''@/$(GNULIB_SNPRINTF)/g' \
+ -e 's/@''GNULIB_SPRINTF_POSIX''@/$(GNULIB_SPRINTF_POSIX)/g' \
+ -e 's/@''GNULIB_STDIO_H_NONBLOCKING''@/$(GNULIB_STDIO_H_NONBLOCKING)/g' \
+ -e 's/@''GNULIB_STDIO_H_SIGPIPE''@/$(GNULIB_STDIO_H_SIGPIPE)/g' \
+ -e 's/@''GNULIB_TMPFILE''@/$(GNULIB_TMPFILE)/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_VFSCANF''@/$(GNULIB_VFSCANF)/g' \
+ -e 's/@''GNULIB_VSCANF''@/$(GNULIB_VSCANF)/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_FSEEKO''@|$(HAVE_DECL_FSEEKO)|g' \
+ -e 's|@''HAVE_DECL_FTELLO''@|$(HAVE_DECL_FTELLO)|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_FSEEKO''@|$(HAVE_FSEEKO)|g' \
+ -e 's|@''HAVE_FTELLO''@|$(HAVE_FTELLO)|g' \
+ -e 's|@''HAVE_PCLOSE''@|$(HAVE_PCLOSE)|g' \
+ -e 's|@''HAVE_POPEN''@|$(HAVE_POPEN)|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_FDOPEN''@|$(REPLACE_FDOPEN)|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_READ_FUNCS''@|$(REPLACE_STDIO_READ_FUNCS)|g' \
+ -e 's|@''REPLACE_STDIO_WRITE_FUNCS''@|$(REPLACE_STDIO_WRITE_FUNCS)|g' \
+ -e 's|@''REPLACE_TMPFILE''@|$(REPLACE_TMPFILE)|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 's|@''ASM_SYMBOL_PREFIX''@|$(ASM_SYMBOL_PREFIX)|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 $(top_builddir)/config.status $(CXXDEFS_H) \
+ $(_NORETURN_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_STDLIB_H''@|$(NEXT_STDLIB_H)|g' \
+ -e 's/@''GNULIB__EXIT''@/$(GNULIB__EXIT)/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_GRANTPT''@/$(GNULIB_GRANTPT)/g' \
+ -e 's/@''GNULIB_MALLOC_POSIX''@/$(GNULIB_MALLOC_POSIX)/g' \
+ -e 's/@''GNULIB_MBTOWC''@/$(GNULIB_MBTOWC)/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_POSIX_OPENPT''@/$(GNULIB_POSIX_OPENPT)/g' \
+ -e 's/@''GNULIB_PTSNAME''@/$(GNULIB_PTSNAME)/g' \
+ -e 's/@''GNULIB_PTSNAME_R''@/$(GNULIB_PTSNAME_R)/g' \
+ -e 's/@''GNULIB_PUTENV''@/$(GNULIB_PUTENV)/g' \
+ -e 's/@''GNULIB_RANDOM''@/$(GNULIB_RANDOM)/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_SYSTEM_POSIX''@/$(GNULIB_SYSTEM_POSIX)/g' \
+ -e 's/@''GNULIB_UNLOCKPT''@/$(GNULIB_UNLOCKPT)/g' \
+ -e 's/@''GNULIB_UNSETENV''@/$(GNULIB_UNSETENV)/g' \
+ -e 's/@''GNULIB_WCTOMB''@/$(GNULIB_WCTOMB)/g' \
+ < $(srcdir)/stdlib.in.h | \
+ sed -e 's|@''HAVE__EXIT''@|$(HAVE__EXIT)|g' \
+ -e 's|@''HAVE_ATOLL''@|$(HAVE_ATOLL)|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_GRANTPT''@|$(HAVE_GRANTPT)|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_MKSTEMP''@|$(HAVE_MKSTEMP)|g' \
+ -e 's|@''HAVE_MKSTEMPS''@|$(HAVE_MKSTEMPS)|g' \
+ -e 's|@''HAVE_POSIX_OPENPT''@|$(HAVE_POSIX_OPENPT)|g' \
+ -e 's|@''HAVE_PTSNAME''@|$(HAVE_PTSNAME)|g' \
+ -e 's|@''HAVE_PTSNAME_R''@|$(HAVE_PTSNAME_R)|g' \
+ -e 's|@''HAVE_RANDOM''@|$(HAVE_RANDOM)|g' \
+ -e 's|@''HAVE_RANDOM_H''@|$(HAVE_RANDOM_H)|g' \
+ -e 's|@''HAVE_RANDOM_R''@|$(HAVE_RANDOM_R)|g' \
+ -e 's|@''HAVE_REALPATH''@|$(HAVE_REALPATH)|g' \
+ -e 's|@''HAVE_RPMATCH''@|$(HAVE_RPMATCH)|g' \
+ -e 's|@''HAVE_DECL_SETENV''@|$(HAVE_DECL_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_UNLOCKPT''@|$(HAVE_UNLOCKPT)|g' \
+ -e 's|@''HAVE_DECL_UNSETENV''@|$(HAVE_DECL_UNSETENV)|g' \
+ -e 's|@''REPLACE_CALLOC''@|$(REPLACE_CALLOC)|g' \
+ -e 's|@''REPLACE_CANONICALIZE_FILE_NAME''@|$(REPLACE_CANONICALIZE_FILE_NAME)|g' \
+ -e 's|@''REPLACE_MALLOC''@|$(REPLACE_MALLOC)|g' \
+ -e 's|@''REPLACE_MBTOWC''@|$(REPLACE_MBTOWC)|g' \
+ -e 's|@''REPLACE_MKSTEMP''@|$(REPLACE_MKSTEMP)|g' \
+ -e 's|@''REPLACE_PTSNAME_R''@|$(REPLACE_PTSNAME_R)|g' \
+ -e 's|@''REPLACE_PUTENV''@|$(REPLACE_PUTENV)|g' \
+ -e 's|@''REPLACE_RANDOM_R''@|$(REPLACE_RANDOM_R)|g' \
+ -e 's|@''REPLACE_REALLOC''@|$(REPLACE_REALLOC)|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 's|@''REPLACE_WCTOMB''@|$(REPLACE_WCTOMB)|g' \
+ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \
+ -e '/definition of _Noreturn/r $(_NORETURN_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 <string.h> when the system
+# doesn't have one that works with the given compiler.
+string.h: string.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_STRING_H''@|$(NEXT_STRING_H)|g' \
+ -e 's/@''GNULIB_FFSL''@/$(GNULIB_FFSL)/g' \
+ -e 's/@''GNULIB_FFSLL''@/$(GNULIB_FFSLL)/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_STRNCAT''@/$(GNULIB_STRNCAT)/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_STRERROR_R''@/$(GNULIB_STRERROR_R)/g' \
+ -e 's/@''GNULIB_STRSIGNAL''@/$(GNULIB_STRSIGNAL)/g' \
+ -e 's/@''GNULIB_STRVERSCMP''@/$(GNULIB_STRVERSCMP)/g' \
+ < $(srcdir)/string.in.h | \
+ sed -e 's|@''HAVE_FFSL''@|$(HAVE_FFSL)|g' \
+ -e 's|@''HAVE_FFSLL''@|$(HAVE_FFSLL)|g' \
+ -e 's|@''HAVE_MBSLEN''@|$(HAVE_MBSLEN)|g' \
+ -e 's|@''HAVE_MEMCHR''@|$(HAVE_MEMCHR)|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_R''@|$(HAVE_DECL_STRERROR_R)|g' \
+ -e 's|@''HAVE_DECL_STRSIGNAL''@|$(HAVE_DECL_STRSIGNAL)|g' \
+ -e 's|@''HAVE_STRVERSCMP''@|$(HAVE_STRVERSCMP)|g' \
+ -e 's|@''REPLACE_STPNCPY''@|$(REPLACE_STPNCPY)|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_STRCHRNUL''@|$(REPLACE_STRCHRNUL)|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_STRERROR_R''@|$(REPLACE_STRERROR_R)|g' \
+ -e 's|@''REPLACE_STRNCAT''@|$(REPLACE_STRNCAT)|g' \
+ -e 's|@''REPLACE_STRNDUP''@|$(REPLACE_STRNDUP)|g' \
+ -e 's|@''REPLACE_STRNLEN''@|$(REPLACE_STRNLEN)|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 $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H) $(ARG_NONNULL_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''HAVE_STRINGS_H''@|$(HAVE_STRINGS_H)|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_STRINGS_H''@|$(NEXT_STRINGS_H)|g' \
+ -e 's|@''GNULIB_FFS''@|$(GNULIB_FFS)|g' \
+ -e 's|@''HAVE_FFS''@|$(HAVE_FFS)|g' \
+ -e 's|@''HAVE_STRCASECMP''@|$(HAVE_STRCASECMP)|g' \
+ -e 's|@''HAVE_DECL_STRNCASECMP''@|$(HAVE_DECL_STRNCASECMP)|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)/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 $(top_builddir)/config.status $(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|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \
+ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \
+ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/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 $(top_builddir)/config.status $(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|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \
+ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \
+ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|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 <sys/types.h> when the system
+# doesn't have one that works with the given compiler.
+sys/types.h: sys_types.in.h $(top_builddir)/config.status
+ $(AM_V_at)$(MKDIR_P) sys
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_SYS_TYPES_H''@|$(NEXT_SYS_TYPES_H)|g' \
+ < $(srcdir)/sys_types.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.
+@GL_GENERATE_SYSEXITS_H_TRUE@sysexits.h: sysexits.in.h $(top_builddir)/config.status
+@GL_GENERATE_SYSEXITS_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \
+@GL_GENERATE_SYSEXITS_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+@GL_GENERATE_SYSEXITS_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@ -e 's|@''HAVE_SYSEXITS_H''@|$(HAVE_SYSEXITS_H)|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@ -e 's|@''NEXT_SYSEXITS_H''@|$(NEXT_SYSEXITS_H)|g' \
+@GL_GENERATE_SYSEXITS_H_TRUE@ < $(srcdir)/sysexits.in.h; \
+@GL_GENERATE_SYSEXITS_H_TRUE@ } > $@-t && \
+@GL_GENERATE_SYSEXITS_H_TRUE@ mv -f $@-t $@
+@GL_GENERATE_SYSEXITS_H_FALSE@sysexits.h: $(top_builddir)/config.status
+@GL_GENERATE_SYSEXITS_H_FALSE@ rm -f $@
+
+# 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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|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/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \
+ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \
+ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \
+ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \
+ -e 's|@''HAVE_TIMEGM''@|$(HAVE_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_TIMEGM''@|$(REPLACE_TIMEGM)|g' \
+ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|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 $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_UNISTD_H''@|$(NEXT_UNISTD_H)|g' \
+ -e 's/@''GNULIB_CHDIR''@/$(GNULIB_CHDIR)/g' \
+ -e 's/@''GNULIB_CHOWN''@/$(GNULIB_CHOWN)/g' \
+ -e 's/@''GNULIB_CLOSE''@/$(GNULIB_CLOSE)/g' \
+ -e 's/@''GNULIB_DUP''@/$(GNULIB_DUP)/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_FDATASYNC''@/$(GNULIB_FDATASYNC)/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_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \
+ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/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_PIPE''@/$(GNULIB_PIPE)/g' \
+ -e 's/@''GNULIB_PIPE2''@/$(GNULIB_PIPE2)/g' \
+ -e 's/@''GNULIB_PREAD''@/$(GNULIB_PREAD)/g' \
+ -e 's/@''GNULIB_PWRITE''@/$(GNULIB_PWRITE)/g' \
+ -e 's/@''GNULIB_READ''@/$(GNULIB_READ)/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_SETHOSTNAME''@/$(GNULIB_SETHOSTNAME)/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_TTYNAME_R''@/$(GNULIB_TTYNAME_R)/g' \
+ -e 's/@''GNULIB_UNISTD_H_GETOPT''@/0$(GNULIB_GL_UNISTD_H_GETOPT)/g' \
+ -e 's/@''GNULIB_UNISTD_H_NONBLOCKING''@/$(GNULIB_UNISTD_H_NONBLOCKING)/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_FCHDIR''@|$(HAVE_FCHDIR)|g' \
+ -e 's|@''HAVE_FCHOWNAT''@|$(HAVE_FCHOWNAT)|g' \
+ -e 's|@''HAVE_FDATASYNC''@|$(HAVE_FDATASYNC)|g' \
+ -e 's|@''HAVE_FSYNC''@|$(HAVE_FSYNC)|g' \
+ -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|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_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|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_PIPE''@|$(HAVE_PIPE)|g' \
+ -e 's|@''HAVE_PIPE2''@|$(HAVE_PIPE2)|g' \
+ -e 's|@''HAVE_PREAD''@|$(HAVE_PREAD)|g' \
+ -e 's|@''HAVE_PWRITE''@|$(HAVE_PWRITE)|g' \
+ -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
+ -e 's|@''HAVE_READLINKAT''@|$(HAVE_READLINKAT)|g' \
+ -e 's|@''HAVE_SETHOSTNAME''@|$(HAVE_SETHOSTNAME)|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_FCHDIR''@|$(HAVE_DECL_FCHDIR)|g' \
+ -e 's|@''HAVE_DECL_FDATASYNC''@|$(HAVE_DECL_FDATASYNC)|g' \
+ -e 's|@''HAVE_DECL_GETDOMAINNAME''@|$(HAVE_DECL_GETDOMAINNAME)|g' \
+ -e 's|@''HAVE_DECL_GETLOGIN_R''@|$(HAVE_DECL_GETLOGIN_R)|g' \
+ -e 's|@''HAVE_DECL_GETPAGESIZE''@|$(HAVE_DECL_GETPAGESIZE)|g' \
+ -e 's|@''HAVE_DECL_GETUSERSHELL''@|$(HAVE_DECL_GETUSERSHELL)|g' \
+ -e 's|@''HAVE_DECL_SETHOSTNAME''@|$(HAVE_DECL_SETHOSTNAME)|g' \
+ -e 's|@''HAVE_DECL_TTYNAME_R''@|$(HAVE_DECL_TTYNAME_R)|g' \
+ -e 's|@''HAVE_OS_H''@|$(HAVE_OS_H)|g' \
+ -e 's|@''HAVE_SYS_PARAM_H''@|$(HAVE_SYS_PARAM_H)|g' \
+ | \
+ sed -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_FCHOWNAT''@|$(REPLACE_FCHOWNAT)|g' \
+ -e 's|@''REPLACE_GETCWD''@|$(REPLACE_GETCWD)|g' \
+ -e 's|@''REPLACE_GETDOMAINNAME''@|$(REPLACE_GETDOMAINNAME)|g' \
+ -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \
+ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \
+ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \
+ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|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_PWRITE''@|$(REPLACE_PWRITE)|g' \
+ -e 's|@''REPLACE_READ''@|$(REPLACE_READ)|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_TTYNAME_R''@|$(REPLACE_TTYNAME_R)|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 $@
+
+unitypes.h: unitypes.in.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ cat $(srcdir)/unitypes.in.h; \
+ } > $@-t && \
+ mv -f $@-t $@
+
+uniwidth.h: uniwidth.in.h
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ cat $(srcdir)/uniwidth.in.h; \
+ } > $@-t && \
+ mv -f $@-t $@
+
+# We need the following in order to create <wchar.h> when the system
+# version does not work standalone.
+wchar.h: wchar.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \
+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''HAVE_FEATURES_H''@|$(HAVE_FEATURES_H)|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/@''GNULIB_WMEMCHR''@/$(GNULIB_WMEMCHR)/g' \
+ -e 's/@''GNULIB_WMEMCMP''@/$(GNULIB_WMEMCMP)/g' \
+ -e 's/@''GNULIB_WMEMCPY''@/$(GNULIB_WMEMCPY)/g' \
+ -e 's/@''GNULIB_WMEMMOVE''@/$(GNULIB_WMEMMOVE)/g' \
+ -e 's/@''GNULIB_WMEMSET''@/$(GNULIB_WMEMSET)/g' \
+ -e 's/@''GNULIB_WCSLEN''@/$(GNULIB_WCSLEN)/g' \
+ -e 's/@''GNULIB_WCSNLEN''@/$(GNULIB_WCSNLEN)/g' \
+ -e 's/@''GNULIB_WCSCPY''@/$(GNULIB_WCSCPY)/g' \
+ -e 's/@''GNULIB_WCPCPY''@/$(GNULIB_WCPCPY)/g' \
+ -e 's/@''GNULIB_WCSNCPY''@/$(GNULIB_WCSNCPY)/g' \
+ -e 's/@''GNULIB_WCPNCPY''@/$(GNULIB_WCPNCPY)/g' \
+ -e 's/@''GNULIB_WCSCAT''@/$(GNULIB_WCSCAT)/g' \
+ -e 's/@''GNULIB_WCSNCAT''@/$(GNULIB_WCSNCAT)/g' \
+ -e 's/@''GNULIB_WCSCMP''@/$(GNULIB_WCSCMP)/g' \
+ -e 's/@''GNULIB_WCSNCMP''@/$(GNULIB_WCSNCMP)/g' \
+ -e 's/@''GNULIB_WCSCASECMP''@/$(GNULIB_WCSCASECMP)/g' \
+ -e 's/@''GNULIB_WCSNCASECMP''@/$(GNULIB_WCSNCASECMP)/g' \
+ -e 's/@''GNULIB_WCSCOLL''@/$(GNULIB_WCSCOLL)/g' \
+ -e 's/@''GNULIB_WCSXFRM''@/$(GNULIB_WCSXFRM)/g' \
+ -e 's/@''GNULIB_WCSDUP''@/$(GNULIB_WCSDUP)/g' \
+ -e 's/@''GNULIB_WCSCHR''@/$(GNULIB_WCSCHR)/g' \
+ -e 's/@''GNULIB_WCSRCHR''@/$(GNULIB_WCSRCHR)/g' \
+ -e 's/@''GNULIB_WCSCSPN''@/$(GNULIB_WCSCSPN)/g' \
+ -e 's/@''GNULIB_WCSSPN''@/$(GNULIB_WCSSPN)/g' \
+ -e 's/@''GNULIB_WCSPBRK''@/$(GNULIB_WCSPBRK)/g' \
+ -e 's/@''GNULIB_WCSSTR''@/$(GNULIB_WCSSTR)/g' \
+ -e 's/@''GNULIB_WCSTOK''@/$(GNULIB_WCSTOK)/g' \
+ -e 's/@''GNULIB_WCSWIDTH''@/$(GNULIB_WCSWIDTH)/g' \
+ < $(srcdir)/wchar.in.h | \
+ sed -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_WMEMCHR''@|$(HAVE_WMEMCHR)|g' \
+ -e 's|@''HAVE_WMEMCMP''@|$(HAVE_WMEMCMP)|g' \
+ -e 's|@''HAVE_WMEMCPY''@|$(HAVE_WMEMCPY)|g' \
+ -e 's|@''HAVE_WMEMMOVE''@|$(HAVE_WMEMMOVE)|g' \
+ -e 's|@''HAVE_WMEMSET''@|$(HAVE_WMEMSET)|g' \
+ -e 's|@''HAVE_WCSLEN''@|$(HAVE_WCSLEN)|g' \
+ -e 's|@''HAVE_WCSNLEN''@|$(HAVE_WCSNLEN)|g' \
+ -e 's|@''HAVE_WCSCPY''@|$(HAVE_WCSCPY)|g' \
+ -e 's|@''HAVE_WCPCPY''@|$(HAVE_WCPCPY)|g' \
+ -e 's|@''HAVE_WCSNCPY''@|$(HAVE_WCSNCPY)|g' \
+ -e 's|@''HAVE_WCPNCPY''@|$(HAVE_WCPNCPY)|g' \
+ -e 's|@''HAVE_WCSCAT''@|$(HAVE_WCSCAT)|g' \
+ -e 's|@''HAVE_WCSNCAT''@|$(HAVE_WCSNCAT)|g' \
+ -e 's|@''HAVE_WCSCMP''@|$(HAVE_WCSCMP)|g' \
+ -e 's|@''HAVE_WCSNCMP''@|$(HAVE_WCSNCMP)|g' \
+ -e 's|@''HAVE_WCSCASECMP''@|$(HAVE_WCSCASECMP)|g' \
+ -e 's|@''HAVE_WCSNCASECMP''@|$(HAVE_WCSNCASECMP)|g' \
+ -e 's|@''HAVE_WCSCOLL''@|$(HAVE_WCSCOLL)|g' \
+ -e 's|@''HAVE_WCSXFRM''@|$(HAVE_WCSXFRM)|g' \
+ -e 's|@''HAVE_WCSDUP''@|$(HAVE_WCSDUP)|g' \
+ -e 's|@''HAVE_WCSCHR''@|$(HAVE_WCSCHR)|g' \
+ -e 's|@''HAVE_WCSRCHR''@|$(HAVE_WCSRCHR)|g' \
+ -e 's|@''HAVE_WCSCSPN''@|$(HAVE_WCSCSPN)|g' \
+ -e 's|@''HAVE_WCSSPN''@|$(HAVE_WCSSPN)|g' \
+ -e 's|@''HAVE_WCSPBRK''@|$(HAVE_WCSPBRK)|g' \
+ -e 's|@''HAVE_WCSSTR''@|$(HAVE_WCSSTR)|g' \
+ -e 's|@''HAVE_WCSTOK''@|$(HAVE_WCSTOK)|g' \
+ -e 's|@''HAVE_WCSWIDTH''@|$(HAVE_WCSWIDTH)|g' \
+ -e 's|@''HAVE_DECL_WCTOB''@|$(HAVE_DECL_WCTOB)|g' \
+ -e 's|@''HAVE_DECL_WCWIDTH''@|$(HAVE_DECL_WCWIDTH)|g' \
+ | \
+ sed -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 's|@''REPLACE_WCSWIDTH''@|$(REPLACE_WCSWIDTH)|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 <wctype.h> when the system
+# doesn't have one that works with the given compiler.
+wctype.h: wctype.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE_H)
+ $(AM_V_GEN)rm -f $@-t $@ && \
+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \
+ -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|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
+ -e 's|@''NEXT_WCTYPE_H''@|$(NEXT_WCTYPE_H)|g' \
+ -e 's/@''GNULIB_ISWBLANK''@/$(GNULIB_ISWBLANK)/g' \
+ -e 's/@''GNULIB_WCTYPE''@/$(GNULIB_WCTYPE)/g' \
+ -e 's/@''GNULIB_ISWCTYPE''@/$(GNULIB_ISWCTYPE)/g' \
+ -e 's/@''GNULIB_WCTRANS''@/$(GNULIB_WCTRANS)/g' \
+ -e 's/@''GNULIB_TOWCTRANS''@/$(GNULIB_TOWCTRANS)/g' \
+ -e 's/@''HAVE_ISWBLANK''@/$(HAVE_ISWBLANK)/g' \
+ -e 's/@''HAVE_ISWCNTRL''@/$(HAVE_ISWCNTRL)/g' \
+ -e 's/@''HAVE_WCTYPE_T''@/$(HAVE_WCTYPE_T)/g' \
+ -e 's/@''HAVE_WCTRANS_T''@/$(HAVE_WCTRANS_T)/g' \
+ -e 's/@''HAVE_WINT_T''@/$(HAVE_WINT_T)/g' \
+ -e 's/@''REPLACE_ISWBLANK''@/$(REPLACE_ISWBLANK)/g' \
+ -e 's/@''REPLACE_ISWCNTRL''@/$(REPLACE_ISWCNTRL)/g' \
+ -e 's/@''REPLACE_TOWLOWER''@/$(REPLACE_TOWLOWER)/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/gnu/alloca.c b/gnu/alloca.c
new file mode 100644
index 00000000..b14bba75
--- /dev/null
+++ b/gnu/alloca.c
@@ -0,0 +1,480 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* alloca.c -- allocate automatically reclaimed memory
+ (Mostly) portable public-domain implementation -- D A Gwyn
+
+ This implementation of the PWB library alloca function,
+ which is used to allocate space off the run-time stack so
+ that it is automatically reclaimed upon procedure exit,
+ was inspired by discussions with J. Q. Johnson of Cornell.
+ J.Otto Tennant <jot@cray.com> contributed the Cray support.
+
+ There are some preprocessor constants that can
+ be defined when compiling for your specific system, for
+ improved efficiency; however, the defaults should be okay.
+
+ The general concept of this implementation is to keep
+ track of all alloca-allocated blocks, and reclaim any
+ that are found to be deeper in the stack than the current
+ invocation. This heuristic does not reclaim storage as
+ soon as it becomes invalid, but it will do so eventually.
+
+ As a special case, alloca(0) reclaims storage without
+ allocating any. It is a good idea to use alloca(0) in
+ your main control loop, etc. to force garbage collection. */
+
+#include <config.h>
+
+#include <alloca.h>
+
+#include <string.h>
+#include <stdlib.h>
+
+#ifdef emacs
+# include "lisp.h"
+# include "blockinput.h"
+# ifdef EMACS_FREE
+# undef free
+# define free EMACS_FREE
+# endif
+#else
+# define memory_full() abort ()
+#endif
+
+/* If compiling with GCC 2, this file's not needed. */
+#if !defined (__GNUC__) || __GNUC__ < 2
+
+/* If someone has defined alloca as a macro,
+ there must be some other way alloca is supposed to work. */
+# ifndef alloca
+
+# ifdef emacs
+# ifdef static
+/* actually, only want this if static is defined as ""
+ -- this is for usg, in which emacs must undefine static
+ in order to make unexec workable
+ */
+# ifndef STACK_DIRECTION
+you
+lose
+-- must know STACK_DIRECTION at compile-time
+/* Using #error here is not wise since this file should work for
+ old and obscure compilers. */
+# endif /* STACK_DIRECTION undefined */
+# endif /* static */
+# endif /* emacs */
+
+/* If your stack is a linked list of frames, you have to
+ provide an "address metric" ADDRESS_FUNCTION macro. */
+
+# if defined (CRAY) && defined (CRAY_STACKSEG_END)
+long i00afunc ();
+# define ADDRESS_FUNCTION(arg) (char *) i00afunc (&(arg))
+# else
+# define ADDRESS_FUNCTION(arg) &(arg)
+# endif
+
+/* Define STACK_DIRECTION if you know the direction of stack
+ growth for your system; otherwise it will be automatically
+ deduced at run-time.
+
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
+
+# ifndef STACK_DIRECTION
+# define STACK_DIRECTION 0 /* Direction unknown. */
+# endif
+
+# if STACK_DIRECTION != 0
+
+# 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
+find_stack_direction (int *addr, int depth)
+{
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
+}
+
+# endif /* STACK_DIRECTION == 0 */
+
+/* An "alloca header" is used to:
+ (a) chain together all alloca'ed blocks;
+ (b) keep track of stack depth.
+
+ 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)
+# endif
+
+typedef union hdr
+{
+ char align[ALIGN_SIZE]; /* To force sizeof(header). */
+ struct
+ {
+ union hdr *next; /* For chaining headers. */
+ char *deep; /* For stack depth measure. */
+ } h;
+} 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
+ the procedure that called alloca. Originally, this space
+ was supposed to be taken from the current stack frame of the
+ caller, but that method cannot be made to work for some
+ implementations of C, for example under Gould's UTX/32. */
+
+void *
+alloca (size_t size)
+{
+ auto char probe; /* Probes stack depth: */
+ register char *depth = ADDRESS_FUNCTION (probe);
+
+# if STACK_DIRECTION == 0
+ if (STACK_DIR == 0) /* Unknown growth direction. */
+ STACK_DIR = find_stack_direction (NULL, (size & 1) + 20);
+# endif
+
+ /* Reclaim garbage, defined as all alloca'd storage that
+ was allocated from deeper in the stack than currently. */
+
+ {
+ register header *hp; /* Traverses linked list. */
+
+# ifdef emacs
+ BLOCK_INPUT;
+# endif
+
+ 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;
+
+ free (hp); /* Collect garbage. */
+
+ hp = np; /* -> next header. */
+ }
+ else
+ break; /* Rest are not deeper. */
+
+ last_alloca_header = hp; /* -> last valid storage. */
+
+# ifdef emacs
+ UNBLOCK_INPUT;
+# endif
+ }
+
+ if (size == 0)
+ return NULL; /* No allocation required. */
+
+ /* Allocate combined header + user data storage. */
+
+ {
+ /* Address of header. */
+ register header *new;
+
+ size_t combined_size = sizeof (header) + size;
+ if (combined_size < sizeof (header))
+ memory_full ();
+
+ new = malloc (combined_size);
+
+ if (! new)
+ memory_full ();
+
+ new->h.next = last_alloca_header;
+ new->h.deep = depth;
+
+ last_alloca_header = new;
+
+ /* User storage begins just after header. */
+
+ return (void *) (new + 1);
+ }
+}
+
+# if defined (CRAY) && defined (CRAY_STACKSEG_END)
+
+# ifdef DEBUG_I00AFUNC
+# include <stdio.h>
+# endif
+
+# ifndef CRAY_STACK
+# define CRAY_STACK
+# ifndef CRAY2
+/* 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). */
+ };
+
+/* The stack segment linkage control information occurs at
+ the high-address end of a stack segment. (The stack
+ grows from low addresses to high addresses.) The initial
+ part of the stack segment linkage control information is
+ 0200 (octal) words. This provides for register storage
+ for the routine which overflows the stack. */
+
+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:32;
+ 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 ssa0;
+ long ssa1;
+ long ssa2;
+ long ssa3;
+ long ssa4;
+ long ssa5;
+ long ssa6;
+ long ssa7;
+ long sss0;
+ long sss1;
+ long sss2;
+ long sss3;
+ long sss4;
+ long sss5;
+ long sss6;
+ long sss7;
+ };
+
+# else /* CRAY2 */
+/* The following structure defines the vector of words
+ 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. */
+ };
+
+/* The following structure describes the data structure which trails
+ any stack segment. I think that the description in 'asdef' is
+ out of date. I only describe the parts that I am sure about. */
+
+struct stk_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 unknown5;
+ long unknown6;
+ long unknown7;
+ long unknown8;
+ long unknown9;
+ long unknown10;
+ long unknown11;
+ long unknown12;
+ long unknown13;
+ long unknown14;
+ };
+
+# endif /* CRAY2 */
+# endif /* not CRAY_STACK */
+
+# ifdef CRAY2
+/* Determine a "stack measure" for an arbitrary ADDRESS.
+ I doubt that "lint" will like this much. */
+
+static long
+i00afunc (long *address)
+{
+ struct stk_stat status;
+ struct stk_trailer *trailer;
+ long *block, size;
+ long result = 0;
+
+ /* We want to iterate through all of the segments. The first
+ step is to get the stack status structure. We could do this
+ more quickly and more directly, perhaps, by referencing the
+ $LM00 common block, but I know that this works. */
+
+ STKSTAT (&status);
+
+ /* Set up the iteration. */
+
+ trailer = (struct stk_trailer *) (status.current_address
+ + status.current_size
+ - 15);
+
+ /* There must be at least one stack segment. Therefore it is
+ a fatal error if "trailer" is null. */
+
+ if (trailer == 0)
+ abort ();
+
+ /* Discard segments that do not contain our argument address. */
+
+ while (trailer != 0)
+ {
+ block = (long *) trailer->this_address;
+ size = trailer->this_size;
+ if (block == 0 || size == 0)
+ abort ();
+ trailer = (struct stk_trailer *) trailer->link;
+ if ((block <= address) && (address < (block + size)))
+ break;
+ }
+
+ /* Set the result to the offset in this segment and add the sizes
+ of all predecessor segments. */
+
+ result = address - block;
+
+ if (trailer == 0)
+ {
+ return result;
+ }
+
+ do
+ {
+ if (trailer->this_size <= 0)
+ abort ();
+ result += trailer->this_size;
+ trailer = (struct stk_trailer *) trailer->link;
+ }
+ while (trailer != 0);
+
+ /* We are done. Note that if you present a bogus address (one
+ not in any segment), you will get a different number back, formed
+ from subtracting the address of the first block. This is probably
+ not what you want. */
+
+ return (result);
+}
+
+# else /* not CRAY2 */
+/* Stack address function for a CRAY-1, CRAY X-MP, or CRAY Y-MP.
+ Determine the number of the cell within the stack,
+ given the address of the cell. The purpose of this
+ routine is to linearize, in some sense, stack addresses
+ for alloca. */
+
+static long
+i00afunc (long address)
+{
+ long stkl = 0;
+
+ long size, pseg, this_segment, stack;
+ long result = 0;
+
+ struct stack_segment_linkage *ssptr;
+
+ /* Register B67 contains the address of the end of the
+ current stack segment. If you (as a subprogram) store
+ your registers on the stack and find that you are past
+ the contents of B67, you have overflowed the segment.
+
+ B67 also points to the stack segment linkage control
+ area, which is what we are really interested in. */
+
+ stkl = CRAY_STACKSEG_END ();
+ ssptr = (struct stack_segment_linkage *) stkl;
+
+ /* If one subtracts 'size' from the end of the segment,
+ one has the address of the first word of the segment.
+
+ If this is not the first segment, 'pseg' will be
+ nonzero. */
+
+ pseg = ssptr->sspseg;
+ size = ssptr->sssize;
+
+ this_segment = stkl - size;
+
+ /* It is possible that calling this routine itself caused
+ a stack overflow. Discard stack segments which do not
+ contain the target address. */
+
+ while (!(this_segment <= address && address <= stkl))
+ {
+# ifdef DEBUG_I00AFUNC
+ fprintf (stderr, "%011o %011o %011o\n", this_segment, address, stkl);
+# endif
+ if (pseg == 0)
+ break;
+ stkl = stkl - pseg;
+ ssptr = (struct stack_segment_linkage *) stkl;
+ size = ssptr->sssize;
+ pseg = ssptr->sspseg;
+ this_segment = stkl - size;
+ }
+
+ result = address - this_segment;
+
+ /* If you subtract pseg from the current end of the stack,
+ you get the address of the previous stack segment's end.
+ This seems a little convoluted to me, but I'll bet you save
+ a cycle somewhere. */
+
+ while (pseg != 0)
+ {
+# ifdef DEBUG_I00AFUNC
+ fprintf (stderr, "%011o %011o\n", pseg, size);
+# endif
+ stkl = stkl - pseg;
+ ssptr = (struct stack_segment_linkage *) stkl;
+ size = ssptr->sssize;
+ pseg = ssptr->sspseg;
+ result += size;
+ }
+ return (result);
+}
+
+# endif /* not CRAY2 */
+# endif /* CRAY */
+
+# endif /* no alloca */
+#endif /* not GCC 2 */
diff --git a/gnu/alloca.in.h b/gnu/alloca.in.h
new file mode 100644
index 00000000..9967338b
--- /dev/null
+++ b/gnu/alloca.in.h
@@ -0,0 +1,58 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Memory allocation on the stack.
+
+ Copyright (C) 1995, 1999, 2001-2004, 2006-2012 Free Software Foundation,
+ Inc.
+
+ This 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. */
+
+/* Avoid using the symbol _ALLOCA_H here, as Bison assumes _ALLOCA_H
+ means there is a real alloca function. */
+#ifndef _GL_ALLOCA_H
+#define _GL_ALLOCA_H
+
+/* alloca (N) returns a pointer to N bytes of memory
+ allocated on the stack, which will last until the function returns.
+ Use of alloca should be avoided:
+ - inside arguments of function calls - undefined behaviour,
+ - in inline functions - the allocation may actually last until the
+ calling function returns,
+ - for huge N (say, N >= 65536) - you never know how large (or small)
+ the stack is, and when the stack cannot fulfill the memory allocation
+ request, the program just crashes.
+ */
+
+#ifndef alloca
+# ifdef __GNUC__
+# define alloca __builtin_alloca
+# elif defined _AIX
+# define alloca __alloca
+# elif defined _MSC_VER
+# include <malloc.h>
+# define alloca _alloca
+# elif defined __DECC && defined __VMS
+# define alloca __ALLOCA
+# else
+# include <stddef.h>
+# ifdef __cplusplus
+extern "C"
+# endif
+void *alloca (size_t);
+# endif
+#endif
+
+#endif /* _GL_ALLOCA_H */
diff --git a/gnu/allocator.c b/gnu/allocator.c
new file mode 100644
index 00000000..c512d4bb
--- /dev/null
+++ b/gnu/allocator.c
@@ -0,0 +1,7 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#define _GL_USE_STDLIB_ALLOC 1
+#include <config.h>
+#include "allocator.h"
+#include <stdlib.h>
+struct allocator const stdlib_allocator = { malloc, realloc, free, NULL };
diff --git a/gnu/allocator.h b/gnu/allocator.h
new file mode 100644
index 00000000..7e176637
--- /dev/null
+++ b/gnu/allocator.h
@@ -0,0 +1,60 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Memory allocators such as malloc+free.
+
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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. */
+
+#ifndef _GL_ALLOCATOR_H
+#define _GL_ALLOCATOR_H
+
+#include <stddef.h>
+
+/* An object describing a memory allocator family. */
+
+struct allocator
+{
+ /* Do not use GCC attributes such as __attribute__ ((malloc)) with
+ the function types pointed at by these members, because these
+ attributes do not work with pointers to functions. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-04/msg00007.html>. */
+
+ /* Call ALLOCATE to allocate memory, like 'malloc'. On failure ALLOCATE
+ should return NULL, though not necessarily set errno. When given
+ a zero size it may return NULL even if successful. */
+ void *(*allocate) (size_t);
+
+ /* If nonnull, call REALLOCATE to reallocate memory, like 'realloc'.
+ On failure REALLOCATE should return NULL, though not necessarily set
+ errno. When given a zero size it may return NULL even if
+ successful. */
+ void *(*reallocate) (void *, size_t);
+
+ /* Call FREE to free memory, like 'free'. */
+ void (*free) (void *);
+
+ /* If nonnull, call DIE (SIZE) if MALLOC (SIZE) or REALLOC (...,
+ SIZE) fails. DIE should not return. SIZE should equal SIZE_MAX
+ if size_t overflow was detected while calculating sizes to be
+ passed to MALLOC or REALLOC. */
+ void (*die) (size_t);
+};
+
+/* An allocator using the stdlib functions and a null DIE function. */
+extern struct allocator const stdlib_allocator;
+
+#endif /* _GL_ALLOCATOR_H */
diff --git a/gnu/anytostr.c b/gnu/anytostr.c
new file mode 100644
index 00000000..ef6b9f19
--- /dev/null
+++ b/gnu/anytostr.c
@@ -0,0 +1,57 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* anytostr.c -- convert integers to printable strings
+
+ Copyright (C) 2001, 2006, 2008-2012 Free Software Foundation, Inc.
+
+ This 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 */
+
+/* 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"
+
+/* Convert I to a printable string in BUF, which must be at least
+ INT_BUFSIZE_BOUND (INTTYPE) bytes long. Return the address of the
+ printable string, which need not start at BUF. */
+
+char * __attribute_warn_unused_result__
+anytostr (inttype i, char *buf)
+{
+ char *p = buf + INT_STRLEN_BOUND (inttype);
+ *p = 0;
+
+ if (i < 0)
+ {
+ do
+ *--p = '0' - i % 10;
+ while ((i /= 10) != 0);
+
+ *--p = '-';
+ }
+ else
+ {
+ do
+ *--p = '0' + i % 10;
+ while ((i /= 10) != 0);
+ }
+
+ return p;
+}
diff --git a/gnu/areadlink.c b/gnu/areadlink.c
new file mode 100644
index 00000000..233611e2
--- /dev/null
+++ b/gnu/areadlink.c
@@ -0,0 +1,41 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* areadlink.c -- 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-2012 Free Software Foundation, Inc.
+
+ This 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>
+ and Bruno Haible <bruno@clisp.org>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "areadlink.h"
+
+#include "careadlinkat.h"
+
+/* Call readlink to get the symbolic link value of FILENAME.
+ Return a pointer to that NUL-terminated string in malloc'd storage.
+ If readlink fails, return NULL and set errno.
+ If allocation fails, or if the link value is longer than SIZE_MAX :-),
+ return NULL and set errno to ENOMEM. */
+
+char *
+areadlink (char const *filename)
+{
+ return careadlinkat (AT_FDCWD, filename, NULL, 0, NULL, careadlinkatcwd);
+}
diff --git a/gnu/areadlink.h b/gnu/areadlink.h
new file mode 100644
index 00000000..000ace87
--- /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-2012 Free Software Foundation,
+ Inc.
+
+ This 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/gnu/areadlinkat.c b/gnu/areadlinkat.c
new file mode 100644
index 00000000..de311080
--- /dev/null
+++ b/gnu/areadlinkat.c
@@ -0,0 +1,67 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* areadlinkat.c -- readlinkat wrapper to return malloc'd link name
+ Unlike xreadlinkat, only call exit on failure to change directory.
+
+ Copyright (C) 2001, 2003-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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>,
+ and Bruno Haible <bruno@clisp.org>,
+ and Eric Blake <ebb9@byu.net>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "areadlink.h"
+
+#include "careadlinkat.h"
+
+#if HAVE_READLINKAT
+
+/* Call readlinkat to get the symbolic link value of FILENAME relative to FD.
+ Return a pointer to that NUL-terminated string in malloc'd storage.
+ If readlinkat fails, return NULL and set errno (although failure to
+ change directory will issue a diagnostic and exit).
+ If allocation fails, or if the link value is longer than SIZE_MAX :-),
+ return NULL and set errno to ENOMEM. */
+
+char *
+areadlinkat (int fd, char const *filename)
+{
+ return careadlinkat (fd, filename, NULL, 0, NULL, readlinkat);
+}
+
+#else /* !HAVE_READLINKAT */
+
+/* It is more efficient to change directories only once and call
+ areadlink, rather than repeatedly call the replacement
+ readlinkat. */
+
+# define AT_FUNC_NAME areadlinkat
+# define AT_FUNC_F1 areadlink
+# define AT_FUNC_POST_FILE_PARAM_DECLS /* empty */
+# define AT_FUNC_POST_FILE_ARGS /* empty */
+# define AT_FUNC_RESULT char *
+# define AT_FUNC_FAIL NULL
+# 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
+# undef AT_FUNC_RESULT
+# undef AT_FUNC_FAIL
+
+#endif /* !HAVE_READLINKAT */
diff --git a/gnu/argmatch.c b/gnu/argmatch.c
new file mode 100644
index 00000000..306348b4
--- /dev/null
+++ b/gnu/argmatch.c
@@ -0,0 +1,279 @@
+/* -*- 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-2007, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 MacKenzie <djm@ai.mit.edu>
+ Modified by Akim Demaille <demaille@inf.enst.fr> */
+
+#include <config.h>
+
+/* Specification. */
+#include "argmatch.h"
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+#include "error.h"
+#include "quotearg.h"
+#include "quote.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
+/* When reporting an invalid argument, show nonprinting characters
+ by using the quoting style ARGMATCH_QUOTING_STYLE. Do not use
+ literal_quoting_style. */
+#ifndef ARGMATCH_QUOTING_STYLE
+# define ARGMATCH_QUOTING_STYLE locale_quoting_style
+#endif
+
+/* Non failing version of argmatch call this function after failing. */
+#ifndef ARGMATCH_DIE
+# include "exitfail.h"
+# define ARGMATCH_DIE exit (exit_failure)
+#endif
+
+#ifdef ARGMATCH_DIE_DECL
+ARGMATCH_DIE_DECL;
+#endif
+
+static void
+__argmatch_die (void)
+{
+ ARGMATCH_DIE;
+}
+
+/* Used by XARGMATCH and XARGCASEMATCH. See description in argmatch.h.
+ Default to __argmatch_die, but allow caller to change this at run-time. */
+argmatch_exit_fn argmatch_die = __argmatch_die;
+
+
+/* If ARG is an unambiguous match for an element of the
+ NULL-terminated array ARGLIST, return the index in ARGLIST
+ of the matched element, else -1 if it does not match any element
+ or -2 if it is ambiguous (is a prefix of more than one element).
+
+ If VALLIST is none null, use it to resolve ambiguities limited to
+ synonyms, i.e., for
+ "yes", "yop" -> 0
+ "no", "nope" -> 1
+ "y" is a valid argument, for 0, and "n" for 1. */
+
+ptrdiff_t
+argmatch (const char *arg, const char *const *arglist,
+ 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). */
+
+ arglen = strlen (arg);
+
+ /* Test all elements for either exact match or abbreviated matches. */
+ 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 (ambiguous)
+ return -2;
+ else
+ return matchind;
+}
+
+/* Error reporting for argmatch.
+ CONTEXT is a description of the type of entity that was being matched.
+ VALUE is the invalid value that was given.
+ PROBLEM is the return value from argmatch. */
+
+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"));
+
+ error (0, 0, format, quotearg_n_style (0, ARGMATCH_QUOTING_STYLE, value),
+ quote_n (1, context));
+}
+
+/* List the valid arguments for argmatch.
+ ARGLIST is the same as in argmatch.
+ VALLIST is a pointer to an array of values.
+ VALSIZE is the size of the elements of VALLIST */
+void
+argmatch_valid (const char *const *arglist,
+ const char *vallist, size_t valsize)
+{
+ size_t i;
+ const char *last_val = NULL;
+
+ /* We try to put synonyms on the same line. The assumption is that
+ synonyms follow each other */
+ fputs (_("Valid arguments are:"), stderr);
+ for (i = 0; arglist[i]; i++)
+ if ((i == 0)
+ || memcmp (last_val, vallist + valsize * i, valsize))
+ {
+ fprintf (stderr, "\n - %s", quote (arglist[i]));
+ last_val = vallist + valsize * i;
+ }
+ else
+ {
+ fprintf (stderr, ", %s", quote (arglist[i]));
+ }
+ putc ('\n', stderr);
+}
+
+/* Never failing versions of the previous functions.
+
+ CONTEXT is the context for which argmatch is called (e.g.,
+ "--version-control", or "$VERSION_CONTROL" etc.). Upon failure,
+ calls the (supposed never to return) function EXIT_FN. */
+
+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)
+{
+ ptrdiff_t res = argmatch (arg, arglist, vallist, valsize);
+ if (res >= 0)
+ /* Success. */
+ return res;
+
+ /* We failed. Explain why. */
+ argmatch_invalid (context, arg, res);
+ argmatch_valid (arglist, vallist, valsize);
+ (*exit_fn) ();
+
+ return -1; /* To please the compilers. */
+}
+
+/* Look for VALUE in VALLIST, an array of objects of size VALSIZE and
+ 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)
+{
+ size_t i;
+
+ for (i = 0; arglist[i]; i++)
+ if (!memcmp (value, vallist + valsize * i, valsize))
+ return arglist[i];
+ return NULL;
+}
+
+#ifdef TEST
+/*
+ * Based on "getversion.c" by David MacKenzie <djm@gnu.ai.mit.edu>
+ */
+char *program_name;
+
+/* When to make backup files. */
+enum backup_type
+{
+ /* Never make backups. */
+ no_backups,
+
+ /* Make simple backups of every file. */
+ simple_backups,
+
+ /* Make numbered backups of files that already have numbered backups,
+ and simple backups of the others. */
+ numbered_existing_backups,
+
+ /* Make numbered backups of every file. */
+ numbered_backups
+};
+
+/* Two tables describing arguments (keys) and their corresponding
+ values */
+static const char *const backup_args[] =
+{
+ "no", "none", "off",
+ "simple", "never",
+ "existing", "nil",
+ "numbered", "t",
+ 0
+};
+
+static const enum backup_type backup_vals[] =
+{
+ no_backups, no_backups, no_backups,
+ simple_backups, simple_backups,
+ numbered_existing_backups, numbered_existing_backups,
+ numbered_backups, numbered_backups
+};
+
+int
+main (int argc, const char *const *argv)
+{
+ const char *cp;
+ enum backup_type backup_type = no_backups;
+
+ program_name = (char *) argv[0];
+
+ if (argc > 2)
+ {
+ fprintf (stderr, "Usage: %s [VERSION_CONTROL]\n", program_name);
+ exit (1);
+ }
+
+ if ((cp = getenv ("VERSION_CONTROL")))
+ backup_type = XARGMATCH ("$VERSION_CONTROL", cp,
+ backup_args, backup_vals);
+
+ if (argc == 2)
+ backup_type = XARGMATCH (program_name, argv[1],
+ backup_args, backup_vals);
+
+ printf ("The version control is '%s'\n",
+ ARGMATCH_TO_ARGUMENT (backup_type, backup_args, backup_vals));
+
+ return 0;
+}
+#endif
diff --git a/gnu/argmatch.h b/gnu/argmatch.h
new file mode 100644
index 00000000..61020127
--- /dev/null
+++ b/gnu/argmatch.h
@@ -0,0 +1,105 @@
+/* -*- 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, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 MacKenzie <djm@ai.mit.edu>
+ Modified by Akim Demaille <demaille@inf.enst.fr> */
+
+#ifndef ARGMATCH_H_
+# define ARGMATCH_H_ 1
+
+# include <stddef.h>
+
+# include "verify.h"
+
+# define ARRAY_CARDINALITY(Array) (sizeof (Array) / sizeof *(Array))
+
+/* Assert there are as many real arguments as there are values
+ (argument list ends with a NULL guard). */
+
+# define ARGMATCH_VERIFY(Arglist, Vallist) \
+ verify (ARRAY_CARDINALITY (Arglist) == ARRAY_CARDINALITY (Vallist) + 1)
+
+/* Return the index of the element of ARGLIST (NULL terminated) that
+ matches with ARG. If VALLIST is not NULL, then use it to resolve
+ false ambiguities (i.e., different matches of ARG but corresponding
+ to the same values in VALLIST). */
+
+ptrdiff_t argmatch (char const *arg, char const *const *arglist,
+ char const *vallist, size_t valsize) _GL_ATTRIBUTE_PURE;
+
+# define ARGMATCH(Arg, Arglist, Vallist) \
+ argmatch (Arg, Arglist, (char const *) (Vallist), sizeof *(Vallist))
+
+/* xargmatch calls this function when it fails. This function should not
+ return. By default, this is a function that calls ARGMATCH_DIE which
+ in turn defaults to 'exit (exit_failure)'. */
+typedef void (*argmatch_exit_fn) (void);
+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);
+
+/* Left for compatibility with the old name invalid_arg */
+
+# define invalid_arg(Context, Value, Problem) \
+ argmatch_invalid (Context, Value, Problem)
+
+
+
+/* Report on stderr the list of possible arguments. */
+
+void argmatch_valid (char const *const *arglist,
+ char const *vallist, size_t valsize);
+
+# define ARGMATCH_VALID(Arglist, Vallist) \
+ argmatch_valid (Arglist, (char const *) (Vallist), sizeof *(Vallist))
+
+
+
+/* Same as argmatch, but upon failure, report an explanation of the
+ failure, and exit 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);
+
+/* 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)])
+
+/* 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)
+ _GL_ATTRIBUTE_PURE;
+
+# define ARGMATCH_TO_ARGUMENT(Value, Arglist, Vallist) \
+ argmatch_to_argument (Value, Arglist, \
+ (char const *) (Vallist), sizeof *(Vallist))
+
+#endif /* ARGMATCH_H_ */
diff --git a/gnu/argp-ba.c b/gnu/argp-ba.c
new file mode 100644
index 00000000..5767cf1e
--- /dev/null
+++ b/gnu/argp-ba.c
@@ -0,0 +1,36 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Default definition for ARGP_PROGRAM_BUG_ADDRESS.
+ Copyright (C) 1996-1997, 1999, 2009-2012 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/>. */
+
+/* If set by the user program, it should point to string that is the
+ bug-reporting address for the program. It will be printed by argp_help if
+ 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
+/* 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/gnu/argp-eexst.c b/gnu/argp-eexst.c
new file mode 100644
index 00000000..ef336093
--- /dev/null
+++ b/gnu/argp-eexst.c
@@ -0,0 +1,32 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Default definition for ARGP_ERR_EXIT_STATUS
+ Copyright (C) 1997, 2009-2012 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/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <sysexits.h>
+
+#include "argp.h"
+
+/* The exit status that argp will use when exiting due to a parsing error.
+ If not defined or set by the user program, this defaults to EX_USAGE from
+ <sysexits.h>. */
+error_t argp_err_exit_status = EX_USAGE;
diff --git a/gnu/argp-fmtstream.c b/gnu/argp-fmtstream.c
new file mode 100644
index 00000000..524ff32f
--- /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-2012 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/gnu/argp-fmtstream.h b/gnu/argp-fmtstream.h
new file mode 100644
index 00000000..d8ff776f
--- /dev/null
+++ b/gnu/argp-fmtstream.h
@@ -0,0 +1,356 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Word-wrapping and line-truncating streams.
+ Copyright (C) 1997, 2006-2012 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. If the system does have it, it is just a wrapper for
+ that. This header file is only used internally while compiling argp, and
+ shouldn't be installed. */
+
+#ifndef _ARGP_FMTSTREAM_H
+#define _ARGP_FMTSTREAM_H
+
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+/* 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 _GL_ATTRIBUTE_FORMAT 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 _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+#else
+# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
+#endif
+
+#if (_LIBC - 0 && !defined (USE_IN_LIBIO)) \
+ || (defined (__GNU_LIBRARY__) && defined (HAVE_LINEWRAP_H))
+/* line_wrap_stream is available, so use that. */
+#define ARGP_FMTSTREAM_USE_LINEWRAP
+#endif
+
+#ifdef ARGP_FMTSTREAM_USE_LINEWRAP
+/* Just be a simple wrapper for line_wrap_stream; the semantics are
+ *slightly* different, as line_wrap_stream doesn't actually make a new
+ object, it just modifies the given stream (reversibly) to do
+ line-wrapping. Since we control who uses this code, it doesn't matter. */
+
+#include <linewrap.h>
+
+typedef FILE *argp_fmtstream_t;
+
+#define argp_make_fmtstream line_wrap_stream
+#define __argp_make_fmtstream line_wrap_stream
+#define argp_fmtstream_free line_unwrap_stream
+#define __argp_fmtstream_free line_unwrap_stream
+
+#define __argp_fmtstream_putc(fs,ch) putc(ch,fs)
+#define argp_fmtstream_putc(fs,ch) putc(ch,fs)
+#define __argp_fmtstream_puts(fs,str) fputs(str,fs)
+#define argp_fmtstream_puts(fs,str) fputs(str,fs)
+#define __argp_fmtstream_write(fs,str,len) fwrite(str,1,len,fs)
+#define argp_fmtstream_write(fs,str,len) fwrite(str,1,len,fs)
+#define __argp_fmtstream_printf fprintf
+#define argp_fmtstream_printf fprintf
+
+#define __argp_fmtstream_lmargin line_wrap_lmargin
+#define argp_fmtstream_lmargin line_wrap_lmargin
+#define __argp_fmtstream_set_lmargin line_wrap_set_lmargin
+#define argp_fmtstream_set_lmargin line_wrap_set_lmargin
+#define __argp_fmtstream_rmargin line_wrap_rmargin
+#define argp_fmtstream_rmargin line_wrap_rmargin
+#define __argp_fmtstream_set_rmargin line_wrap_set_rmargin
+#define argp_fmtstream_set_rmargin line_wrap_set_rmargin
+#define __argp_fmtstream_wmargin line_wrap_wmargin
+#define argp_fmtstream_wmargin line_wrap_wmargin
+#define __argp_fmtstream_set_wmargin line_wrap_set_wmargin
+#define argp_fmtstream_set_wmargin line_wrap_set_wmargin
+#define __argp_fmtstream_point line_wrap_point
+#define argp_fmtstream_point line_wrap_point
+
+#else /* !ARGP_FMTSTREAM_USE_LINEWRAP */
+/* Guess we have to define our own version. */
+
+struct argp_fmtstream
+{
+ 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. */
+
+ /* 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. */
+};
+
+typedef struct argp_fmtstream *argp_fmtstream_t;
+
+/* 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. */
+extern argp_fmtstream_t __argp_make_fmtstream (FILE *__stream,
+ 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);
+
+/* 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, ...)
+ _GL_ATTRIBUTE_FORMAT ((printf, 2, 3));
+extern ssize_t argp_fmtstream_printf (argp_fmtstream_t __fs,
+ const char *__fmt, ...)
+ _GL_ATTRIBUTE_FORMAT ((printf, 2, 3));
+
+#if _LIBC || !defined __OPTIMIZE__
+extern int __argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
+extern int argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch);
+
+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);
+extern size_t argp_fmtstream_write (argp_fmtstream_t __fs,
+ const char *__str, size_t __len);
+#endif
+
+/* Access macros for various bits of state. */
+#define argp_fmtstream_lmargin(__fs) ((__fs)->lmargin)
+#define argp_fmtstream_rmargin(__fs) ((__fs)->rmargin)
+#define argp_fmtstream_wmargin(__fs) ((__fs)->wmargin)
+#define __argp_fmtstream_lmargin argp_fmtstream_lmargin
+#define __argp_fmtstream_rmargin argp_fmtstream_rmargin
+#define __argp_fmtstream_wmargin argp_fmtstream_wmargin
+
+#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);
+extern size_t __argp_fmtstream_set_lmargin (argp_fmtstream_t __fs,
+ 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);
+extern size_t __argp_fmtstream_set_rmargin (argp_fmtstream_t __fs,
+ 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);
+extern size_t __argp_fmtstream_set_wmargin (argp_fmtstream_t __fs,
+ size_t __wmargin);
+
+/* Return the column number of the current output point in __FS. */
+extern size_t argp_fmtstream_point (argp_fmtstream_t __fs);
+extern size_t __argp_fmtstream_point (argp_fmtstream_t __fs);
+#endif
+
+/* Internal routines. */
+extern void _argp_fmtstream_update (argp_fmtstream_t __fs);
+extern void __argp_fmtstream_update (argp_fmtstream_t __fs);
+extern int _argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
+extern int __argp_fmtstream_ensure (argp_fmtstream_t __fs, size_t __amount);
+
+#ifdef __OPTIMIZE__
+/* Inline versions of above routines. */
+
+#if !_LIBC
+#define __argp_fmtstream_putc argp_fmtstream_putc
+#define __argp_fmtstream_puts argp_fmtstream_puts
+#define __argp_fmtstream_write argp_fmtstream_write
+#define __argp_fmtstream_set_lmargin argp_fmtstream_set_lmargin
+#define __argp_fmtstream_set_rmargin argp_fmtstream_set_rmargin
+#define __argp_fmtstream_set_wmargin argp_fmtstream_set_wmargin
+#define __argp_fmtstream_point argp_fmtstream_point
+#define __argp_fmtstream_update _argp_fmtstream_update
+#define __argp_fmtstream_ensure _argp_fmtstream_ensure
+#endif
+
+#ifndef ARGP_FS_EI
+# ifdef __GNUC__
+ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+ inline semantics, unless -fgnu89-inline is used. It defines a macro
+ __GNUC_STDC_INLINE__ to indicate this situation or a macro
+ __GNUC_GNU_INLINE__ to indicate the opposite situation.
+
+ GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
+ semantics but warns, unless -fgnu89-inline is used:
+ warning: C99 inline functions are not supported; using GNU89
+ warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
+ It defines a macro __GNUC_GNU_INLINE__ to indicate this situation.
+
+ Whereas Apple GCC 4.0.1 build 5479 without -std=c99 or -std=gnu99
+ implements the GNU C inline semantics and defines the macro
+ __GNUC_GNU_INLINE__, but it does not warn and does not support
+ __attribute__ ((__gnu_inline__)).
+
+ All in all, these are the possible combinations. For every compiler,
+ we need to choose ARGP_FS_EI so that the corresponding table cell
+ contains an "ok".
+
+ \ ARGP_FS_EI inline extern extern
+ \ inline inline
+ CC \ __attribute__
+ ((gnu_inline))
+
+ gcc 4.3.0 error ok ok
+ gcc 4.3.0 -std=gnu99 -fgnu89-inline error ok ok
+ gcc 4.3.0 -std=gnu99 ok error ok
+
+ gcc 4.2.2 error ok ok
+ gcc 4.2.2 -std=gnu99 -fgnu89-inline error ok ok
+ gcc 4.2.2 -std=gnu99 error warning ok
+
+ gcc 4.1.2 error ok warning
+ gcc 4.1.2 -std=gnu99 error ok warning
+
+ Apple gcc 4.0.1 error ok warning
+ Apple gcc 4.0.1 -std=gnu99 ok error warning
+ */
+# if defined __GNUC_STDC_INLINE__
+# define ARGP_FS_EI inline
+# elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)
+# define ARGP_FS_EI extern inline __attribute__ ((__gnu_inline__))
+# else
+# define ARGP_FS_EI extern inline
+# endif
+# else
+ /* With other compilers, assume the ISO C99 meaning of 'inline', if
+ the compiler supports 'inline' at all. */
+# define ARGP_FS_EI inline
+# endif
+#endif
+
+ARGP_FS_EI size_t
+__argp_fmtstream_write (argp_fmtstream_t __fs,
+ const char *__str, size_t __len)
+{
+ if (__fs->p + __len <= __fs->end || __argp_fmtstream_ensure (__fs, __len))
+ {
+ memcpy (__fs->p, __str, __len);
+ __fs->p += __len;
+ return __len;
+ }
+ else
+ return 0;
+}
+
+ARGP_FS_EI int
+__argp_fmtstream_puts (argp_fmtstream_t __fs, const char *__str)
+{
+ size_t __len = strlen (__str);
+ if (__len)
+ {
+ size_t __wrote = __argp_fmtstream_write (__fs, __str, __len);
+ return __wrote == __len ? 0 : -1;
+ }
+ else
+ return 0;
+}
+
+ARGP_FS_EI int
+__argp_fmtstream_putc (argp_fmtstream_t __fs, int __ch)
+{
+ if (__fs->p < __fs->end || __argp_fmtstream_ensure (__fs, 1))
+ return *__fs->p++ = __ch;
+ else
+ return EOF;
+}
+
+/* Set __FS's left margin to __LMARGIN and return the old value. */
+ARGP_FS_EI size_t
+__argp_fmtstream_set_lmargin (argp_fmtstream_t __fs, size_t __lmargin)
+{
+ size_t __old;
+ if ((size_t) (__fs->p - __fs->buf) > __fs->point_offs)
+ __argp_fmtstream_update (__fs);
+ __old = __fs->lmargin;
+ __fs->lmargin = __lmargin;
+ return __old;
+}
+
+/* Set __FS's right margin to __RMARGIN and return the old value. */
+ARGP_FS_EI size_t
+__argp_fmtstream_set_rmargin (argp_fmtstream_t __fs, size_t __rmargin)
+{
+ size_t __old;
+ if ((size_t) (__fs->p - __fs->buf) > __fs->point_offs)
+ __argp_fmtstream_update (__fs);
+ __old = __fs->rmargin;
+ __fs->rmargin = __rmargin;
+ return __old;
+}
+
+/* Set FS's wrap margin to __WMARGIN and return the old value. */
+ARGP_FS_EI size_t
+__argp_fmtstream_set_wmargin (argp_fmtstream_t __fs, size_t __wmargin)
+{
+ size_t __old;
+ if ((size_t) (__fs->p - __fs->buf) > __fs->point_offs)
+ __argp_fmtstream_update (__fs);
+ __old = __fs->wmargin;
+ __fs->wmargin = __wmargin;
+ return __old;
+}
+
+/* Return the column number of the current output point in __FS. */
+ARGP_FS_EI size_t
+__argp_fmtstream_point (argp_fmtstream_t __fs)
+{
+ if ((size_t) (__fs->p - __fs->buf) > __fs->point_offs)
+ __argp_fmtstream_update (__fs);
+ return __fs->point_col >= 0 ? __fs->point_col : 0;
+}
+
+#if !_LIBC
+#undef __argp_fmtstream_putc
+#undef __argp_fmtstream_puts
+#undef __argp_fmtstream_write
+#undef __argp_fmtstream_set_lmargin
+#undef __argp_fmtstream_set_rmargin
+#undef __argp_fmtstream_set_wmargin
+#undef __argp_fmtstream_point
+#undef __argp_fmtstream_update
+#undef __argp_fmtstream_ensure
+#endif
+
+#endif /* __OPTIMIZE__ */
+
+#endif /* ARGP_FMTSTREAM_USE_LINEWRAP */
+
+#endif /* argp-fmtstream.h */
diff --git a/gnu/argp-fs-xinl.c b/gnu/argp-fs-xinl.c
new file mode 100644
index 00000000..15d1f027
--- /dev/null
+++ b/gnu/argp-fs-xinl.c
@@ -0,0 +1,44 @@
+/* -*- 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, 2009-2012 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/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#define ARGP_FS_EI
+#undef __OPTIMIZE__
+#define __OPTIMIZE__ 1
+#include "argp-fmtstream.h"
+
+#if 0
+/* Not exported. */
+/* Add weak aliases. */
+#if _LIBC - 0 && !defined (ARGP_FMTSTREAM_USE_LINEWRAP) && defined (weak_alias)
+
+weak_alias (__argp_fmtstream_putc, argp_fmtstream_putc)
+weak_alias (__argp_fmtstream_puts, argp_fmtstream_puts)
+weak_alias (__argp_fmtstream_write, argp_fmtstream_write)
+weak_alias (__argp_fmtstream_set_lmargin, argp_fmtstream_set_lmargin)
+weak_alias (__argp_fmtstream_set_rmargin, argp_fmtstream_set_rmargin)
+weak_alias (__argp_fmtstream_set_wmargin, argp_fmtstream_set_wmargin)
+weak_alias (__argp_fmtstream_point, argp_fmtstream_point)
+
+#endif
+#endif
diff --git a/gnu/argp-help.c b/gnu/argp-help.c
new file mode 100644
index 00000000..eea7aa1b
--- /dev/null
+++ b/gnu/argp-help.c
@@ -0,0 +1,1956 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Hierarchial argument parsing help output
+ Copyright (C) 1995-2005, 2007, 2009-2012 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/>. */
+
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <alloca.h>
+#include <errno.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <stdarg.h>
+#include <ctype.h>
+#include <limits.h>
+#ifdef USE_IN_LIBIO
+# include <wchar.h>
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+# undef dgettext
+# define dgettext(domain, msgid) \
+ INTUSE(__dcgettext) (domain, msgid, LC_MESSAGES)
+#else
+# include "gettext.h"
+#endif
+
+#include "argp.h"
+#include "argp-fmtstream.h"
+#include "argp-namefrob.h"
+
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+/* User-selectable (using an environment variable) formatting parameters.
+
+ These may be specified in an environment variable called 'ARGP_HELP_FMT',
+ with a contents like: VAR1=VAL1,VAR2=VAL2,BOOLVAR2,no-BOOLVAR2
+ Where VALn must be a positive integer. The list of variables is in the
+ 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 */
+
+/* User-selectable (using an environment variable) formatting parameters.
+ They must all be of type 'int' for the parsing code to work. */
+struct uparams
+{
+ /* If true, arguments for an option are shown with both short and long
+ options, even when a given option has both, e.g. '-x ARG, --longx=ARG'.
+ If false, then if an option has both, the argument is only shown with
+ the long one, e.g., '-x, --longx=ARG', and a message indicating that
+ this really means both is printed below the options. */
+ int dup_args;
+
+ /* This is true if when DUP_ARGS is false, and some duplicate arguments have
+ been suppressed, an explanatory message should be printed. */
+ int dup_args_note;
+
+ /* Various output columns. */
+ int short_opt_col; /* column in which short options start */
+ int long_opt_col; /* column in which long options start */
+ int doc_opt_col; /* column in which doc options start */
+ int opt_doc_col; /* column in which option text starts */
+ int header_col; /* column in which group headers are printed */
+ 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. */
+};
+
+/* This is a global variable, as user options are only ever read once. */
+static struct uparams uparams = {
+ DUP_ARGS, DUP_ARGS_NOTE,
+ SHORT_OPT_COL, LONG_OPT_COL, DOC_OPT_COL, OPT_DOC_COL, HEADER_COL,
+ USAGE_INDENT, RMARGIN,
+ 0
+};
+
+/* 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. */
+};
+
+/* The name-field mappings we know about. */
+static const struct uparam_name uparam_names[] =
+{
+ { "dup-args", 1, offsetof (struct uparams, dup_args) },
+ { "dup-args-note", 1, offsetof (struct uparams, dup_args_note) },
+ { "short-opt-col", 0, offsetof (struct uparams, short_opt_col) },
+ { "long-opt-col", 0, offsetof (struct uparams, long_opt_col) },
+ { "doc-opt-col", 0, offsetof (struct uparams, doc_opt_col) },
+ { "opt-doc-col", 0, offsetof (struct uparams, opt_doc_col) },
+ { "header-col", 0, offsetof (struct uparams, header_col) },
+ { "usage-indent", 0, offsetof (struct uparams, usage_indent) },
+ { "rmargin", 0, offsetof (struct uparams, rmargin) },
+ { 0 }
+};
+
+static void
+validate_uparams (const struct argp_state *state, struct uparams *upptr)
+{
+ const struct uparam_name *up;
+
+ for (up = uparam_names; up->name; up++)
+ {
+ if (up->is_bool
+ || 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_HELP_FMT: %s value is less than or equal to %s"),
+ "rmargin", up->name);
+ return;
+ }
+ }
+ uparams = *upptr;
+ uparams.valid = 1;
+}
+
+/* Read user options from the environment, and fill in UPARAMS appropiately. */
+static void
+fill_in_uparams (const struct argp_state *state)
+{
+ const char *var = getenv ("ARGP_HELP_FMT");
+ struct uparams new_params = uparams;
+
+#define SKIPWS(p) do { while (isspace ((unsigned char) *p)) p++; } while (0);
+
+ if (var)
+ {
+ /* 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,
+ "\
+%.*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,
+ "\
+%.*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, "\
+%.*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;
+ }
+ }
+ validate_uparams (state, &new_params);
+ }
+}
+
+/* Returns true if OPT hasn't been marked invisible. Visibility only affects
+ whether OPT is displayed or used in sorting, not option shadowing. */
+#define ovisible(opt) (! ((opt)->flags & OPTION_HIDDEN))
+
+/* Returns true if OPT is an alias for an earlier option. */
+#define oalias(opt) ((opt)->flags & OPTION_ALIAS)
+
+/* Returns true if OPT is a documentation-only entry. */
+#define odoc(opt) ((opt)->flags & OPTION_DOC)
+
+/* Returns true if OPT should not be translated */
+#define onotrans(opt) ((opt)->flags & OPTION_NO_TRANS)
+
+/* Returns true if OPT is the end-of-list marker for a list of options. */
+#define oend(opt) __option_is_end (opt)
+
+/* Returns true if OPT has a short option. */
+#define oshort(opt) __option_is_short (opt)
+
+/*
+ The help format for a particular option is like:
+
+ -xARG, -yARG, --long1=ARG, --long2=ARG Documentation...
+
+ Where ARG will be omitted if there's no argument, for this option, or
+ will be surrounded by "[" and "]" appropiately if the argument is
+ optional. The documentation string is word-wrapped appropiately, and if
+ the list of options is long enough, it will be started on a separate line.
+ If there are no short options for a given option, the first long option is
+ indented slighly in a way that's supposed to make most long options appear
+ to be in a separate column.
+
+ For example, the following output (from ps):
+
+ -p PID, --pid=PID List the process PID
+ --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)
+ -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)
+
+ 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
+ -V, --version Print program version
+
+ The struct argp_option array for the above could look like:
+
+ {
+ {"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"},
+ {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"
+ " 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)" },
+
+ {0,0,0,0, "Here are some more options:"},
+ {"foonly", 'f', "ZOT", 0, "Glork a foonly"},
+ {"zaza", 'z', 0, 0, "Snit a zar"},
+
+ {0}
+ }
+
+ Note that the last three options are automatically supplied by argp_parse,
+ unless you tell it not to with ARGP_NO_HELP.
+
+*/
+
+/* Returns true if CH occurs between BEG and END. */
+static int
+find_char (char ch, char *beg, char *end)
+{
+ while (beg < end)
+ if (*beg == ch)
+ return 1;
+ else
+ beg++;
+ return 0;
+}
+
+struct hol_cluster; /* fwd decl */
+
+struct hol_entry
+{
+ /* First option. */
+ const struct argp_option *opt;
+ /* Number of options (including aliases). */
+ unsigned num;
+
+ /* A pointers into the HOL's short_options field, to the first short option
+ letter for this entry. The order of the characters following this point
+ corresponds to the order of options pointed to by OPT, and there are at
+ most NUM. A short option recorded in an option following OPT is only
+ valid if it occurs in the right place in SHORT_OPTIONS (otherwise it's
+ probably been shadowed by some other entry). */
+ char *short_options;
+
+ /* Entries are sorted by their group first, in the order:
+ 1, 2, ..., n, 0, -m, ..., -2, -1
+ and then alphabetically within each group. The default is 0. */
+ int group;
+
+ /* The cluster of options this entry belongs to, or 0 if none. */
+ struct hol_cluster *cluster;
+
+ /* The argp from which this option came. */
+ const struct argp *argp;
+
+ /* Position in the array */
+ unsigned ord;
+};
+
+/* A cluster of entries to reflect the argp tree structure. */
+struct hol_cluster
+{
+ /* A descriptive header printed before options in this cluster. */
+ const char *header;
+
+ /* Used to order clusters within the same group with the same parent,
+ according to the order in which they occurred in the parent argp's child
+ list. */
+ int index;
+
+ /* How to sort this cluster with respect to options and other clusters at the
+ same depth (clusters always follow options in the same group). */
+ int group;
+
+ /* The cluster to which this cluster belongs, or 0 if it's at the base
+ level. */
+ struct hol_cluster *parent;
+
+ /* The argp from which this cluster is (eventually) derived. */
+ const struct argp *argp;
+
+ /* The distance this cluster is from the root. */
+ int depth;
+
+ /* Clusters in a given hol are kept in a linked list, to make freeing them
+ possible. */
+ struct hol_cluster *next;
+};
+
+/* A list of options for help. */
+struct hol
+{
+ /* An array of hol_entry's. */
+ struct hol_entry *entries;
+ /* The number of entries in this hol. If this field is zero, the others
+ are undefined. */
+ unsigned num_entries;
+
+ /* A string containing all short options in this HOL. Each entry contains
+ pointers into this string, so the order can't be messed with blindly. */
+ char *short_options;
+
+ /* Clusters of entries in this hol. */
+ struct hol_cluster *clusters;
+};
+
+/* Create a struct hol from the options in ARGP. CLUSTER is the
+ hol_cluster in which these entries occur, or 0, if at the root. */
+static struct hol *
+make_hol (const struct argp *argp, struct hol_cluster *cluster)
+{
+ char *so;
+ const struct argp_option *o;
+ const struct argp_option *opts = argp->options;
+ struct hol_entry *entry;
+ unsigned num_short_options = 0;
+ struct hol *hol = malloc (sizeof (struct hol));
+
+ assert (hol);
+
+ hol->num_entries = 0;
+ hol->clusters = 0;
+
+ if (opts)
+ {
+ int cur_group = 0;
+
+ /* The first option must not be an alias. */
+ assert (! oalias (opts));
+
+ /* 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. */
+ }
+
+ 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));
+
+ /* 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 */
+ }
+
+ return hol;
+}
+
+/* Add a new cluster to HOL, with the given GROUP and HEADER (taken from the
+ associated argp child list entry), INDEX, and PARENT, and return a pointer
+ 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 *cl = malloc (sizeof (struct hol_cluster));
+ if (cl)
+ {
+ cl->group = group;
+ cl->header = header;
+
+ cl->index = index;
+ cl->parent = parent;
+ cl->argp = argp;
+ cl->depth = parent ? parent->depth + 1 : 0;
+
+ cl->next = hol->clusters;
+ hol->clusters = cl;
+ }
+ return cl;
+}
+
+/* Free HOL and any resources it uses. */
+static void
+hol_free (struct hol *hol)
+{
+ struct hol_cluster *cl = hol->clusters;
+
+ while (cl)
+ {
+ struct hol_cluster *next = cl->next;
+ free (cl);
+ cl = next;
+ }
+
+ if (hol->num_entries > 0)
+ {
+ free (hol->entries);
+ free (hol->short_options);
+ }
+
+ free (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)
+{
+ unsigned nopts;
+ int val = 0;
+ const struct argp_option *opt, *real = entry->opt;
+ char *so = entry->short_options;
+
+ 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++;
+ }
+
+ return val;
+}
+
+static inline int
+#if __GNUC__ >= 3
+__attribute__ ((always_inline))
+#endif
+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)
+{
+ unsigned nopts;
+ int val = 0;
+ const struct argp_option *opt, *real = entry->opt;
+
+ 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);
+ }
+
+ return val;
+}
+
+/* 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)
+{
+ return oshort (opt) ? opt->key : 0;
+}
+
+/* Returns the first valid short option in ENTRY, or 0 if there is none. */
+static char
+hol_entry_first_short (const struct hol_entry *entry)
+{
+ return hol_entry_short_iterate (entry, until_short,
+ entry->argp->argp_domain, 0);
+}
+
+/* Returns the first valid long option in ENTRY, or 0 if there is none. */
+static const char *
+hol_entry_first_long (const struct hol_entry *entry)
+{
+ const struct argp_option *opt;
+ unsigned num;
+ for (opt = entry->opt, num = entry->num; num > 0; opt++, num--)
+ if (opt->name && ovisible (opt))
+ return opt->name;
+ return 0;
+}
+
+/* Returns the entry in HOL with the long option name NAME, or 0 if there is
+ none. */
+static struct hol_entry *
+hol_find_entry (struct hol *hol, const char *name)
+{
+ struct hol_entry *entry = hol->entries;
+ unsigned num_entries = hol->num_entries;
+
+ while (num_entries-- > 0)
+ {
+ const struct argp_option *opt = entry->opt;
+ unsigned num_opts = entry->num;
+
+ while (num_opts-- > 0)
+ if (opt->name && ovisible (opt) && strcmp (opt->name, name) == 0)
+ return entry;
+ else
+ opt++;
+
+ entry++;
+ }
+
+ return 0;
+}
+
+/* If an entry with the long option NAME occurs in HOL, set it's special
+ sort position to GROUP. */
+static void
+hol_set_group (struct hol *hol, const char *name, int group)
+{
+ struct hol_entry *entry = hol_find_entry (hol, name);
+ if (entry)
+ entry->group = group;
+}
+
+/* Order by group: 0, 1, 2, ..., n, -m, ..., -2, -1.
+ EQ is what to return if GROUP1 and GROUP2 are the same. */
+static int
+group_cmp (int group1, int group2, int eq)
+{
+ if (group1 == group2)
+ return eq;
+ else if ((group1 < 0 && group2 < 0) || (group1 >= 0 && group2 >= 0))
+ return group1 - group2;
+ else
+ return group2 - group1;
+}
+
+/* Compare clusters CL1 & CL2 by the order that they should appear in
+ output. */
+static int
+hol_cluster_cmp (const struct hol_cluster *cl1, const struct hol_cluster *cl2)
+{
+ /* If one cluster is deeper than the other, use its ancestor at the same
+ level, so that finding the common ancestor is straightforward.
+
+ clN->depth > 0 means that clN->parent != NULL (see hol_add_cluster) */
+ while (cl1->depth > cl2->depth)
+ cl1 = cl1->parent;
+ while (cl2->depth > cl1->depth)
+ cl2 = cl2->parent;
+
+ /* Now reduce both clusters to their ancestors at the point where both have
+ a common parent; these can be directly compared. */
+ while (cl1->parent != cl2->parent)
+ cl1 = cl1->parent, cl2 = cl2->parent;
+
+ return group_cmp (cl1->group, cl2->group, cl2->index - cl1->index);
+}
+
+/* Return the ancestor of CL that's just below the root (i.e., has a parent
+ of 0). */
+static struct hol_cluster *
+hol_cluster_base (struct hol_cluster *cl)
+{
+ while (cl->parent)
+ cl = cl->parent;
+ return 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)
+{
+ while (cl1 && cl1 != cl2)
+ cl1 = cl1->parent;
+ return cl1 == cl2;
+}
+
+/* Given the name of an OPTION_DOC option, modifies NAME to start at the tail
+ that should be used for comparisons, and returns true iff it should be
+ treated as a non-option. */
+static int
+canon_doc_option (const char **name)
+{
+ int non_opt;
+
+ if (!*name)
+ non_opt = 1;
+ else
+ {
+ /* Skip initial whitespace. */
+ while (isspace ((unsigned char) **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)++;
+ }
+ return non_opt;
+}
+
+#define HOL_ENTRY_PTRCMP(a,b) ((a)->ord < (b)->ord ? -1 : 1)
+
+/* Order ENTRY1 & ENTRY2 by the order which they should appear in a help
+ listing. */
+static int
+hol_entry_cmp (const struct hol_entry *entry1,
+ 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. */
+ int group1 = entry1->group, group2 = entry2->group;
+ int rc;
+
+ 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. */
+ 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);
+ else if (! entry2->cluster)
+ /* 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);
+ }
+ else if (group1 == group2)
+ /* The entries are both in the same cluster and group, so compare them
+ alphabetically. */
+ {
+ int short1 = hol_entry_first_short (entry1);
+ int short2 = hol_entry_first_short (entry2);
+ int doc1 = odoc (entry1->opt);
+ int doc2 = odoc (entry2->opt);
+ const char *long1 = hol_entry_first_long (entry1);
+ const char *long2 = hol_entry_first_long (entry2);
+
+ if (doc1)
+ doc1 = canon_doc_option (&long1);
+ if (doc2)
+ 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;
+ else if (!short1 && !short2 && 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. */
+ {
+ 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);
+ }
+ }
+ else
+ /* Within the same cluster, but not the same group, so just compare
+ groups. */
+ return group_cmp (group1, group2, HOL_ENTRY_PTRCMP (entry1, entry2));
+}
+
+/* Version of hol_entry_cmp with correct signature for qsort. */
+static int
+hol_entry_qcmp (const void *entry1_v, const void *entry2_v)
+{
+ return hol_entry_cmp (entry1_v, entry2_v);
+}
+
+/* Sort HOL by group and alphabetically by option name (with short options
+ taking precedence over long). Since the sorting is for display purposes
+ only, the shadowing of options isn't effected. */
+static void
+hol_sort (struct hol *hol)
+{
+ if (hol->num_entries > 0)
+ {
+ unsigned i;
+ struct hol_entry *e;
+ for (i = 0, e = hol->entries; i < hol->num_entries; i++, e++)
+ e->ord = i;
+ qsort (hol->entries, hol->num_entries, sizeof (struct hol_entry),
+ hol_entry_qcmp);
+ }
+}
+
+/* Append MORE to HOL, destroying MORE in the process. Options in HOL shadow
+ any in MORE with the same name. */
+static void
+hol_append (struct hol *hol, struct hol *more)
+{
+ struct hol_cluster **cl_end = &hol->clusters;
+
+ /* Steal MORE's cluster list, and add it to the end of HOL's. */
+ while (*cl_end)
+ cl_end = &(*cl_end)->next;
+ *cl_end = more->clusters;
+ more->clusters = 0;
+
+ /* Merge entries. */
+ 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. */
+ }
+ 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 + (e->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);
+}
+
+/* Inserts enough spaces to make sure STREAM is at column COL. */
+static void
+indent_to (argp_fmtstream_t stream, unsigned col)
+{
+ int needed = col - __argp_fmtstream_point (stream);
+ while (needed-- > 0)
+ __argp_fmtstream_putc (stream, ' ');
+}
+
+/* Output to STREAM either a space, or a newline if there isn't room for at
+ least ENSURE characters before the right margin. */
+static void
+space (argp_fmtstream_t stream, size_t ensure)
+{
+ if (__argp_fmtstream_point (stream) + ensure
+ >= __argp_fmtstream_rmargin (stream))
+ __argp_fmtstream_putc (stream, '\n');
+ else
+ __argp_fmtstream_putc (stream, ' ');
+}
+
+/* If the option REAL has an argument, we print it in using the printf
+ format REQ_FMT or OPT_FMT depending on whether it's a required or
+ optional argument. */
+static void
+arg (const struct argp_option *real, const char *req_fmt, const char *opt_fmt,
+ const char *domain, argp_fmtstream_t stream)
+{
+ if (real->arg)
+ {
+ if (real->flags & OPTION_ARG_OPTIONAL)
+ __argp_fmtstream_printf (stream, opt_fmt,
+ dgettext (domain, real->arg));
+ else
+ __argp_fmtstream_printf (stream, req_fmt,
+ dgettext (domain, real->arg));
+ }
+}
+
+/* Helper functions for hol_entry_help. */
+
+/* State used during the execution of hol_help. */
+struct hol_help_state
+{
+ /* PREV_ENTRY should contain the previous entry printed, or 0. */
+ struct hol_entry *prev_entry;
+
+ /* If an entry is in a different group from the previous one, and SEP_GROUPS
+ is true, then a blank line will be printed before any output. */
+ int sep_groups;
+
+ /* True if a duplicate option argument was suppressed (only ever set if
+ UPARAMS.dup_args is false). */
+ int suppressed_dup_arg;
+};
+
+/* Some state used while printing a help entry (used to communicate with
+ helper functions). See the doc for hol_entry_help for more info, as most
+ of the fields are copied from its arguments. */
+struct pentry_state
+{
+ const struct hol_entry *entry;
+ argp_fmtstream_t stream;
+ struct hol_help_state *hhstate;
+
+ /* True if nothing's been printed so far. */
+ int first;
+
+ /* If non-zero, the state that was used to print this help. */
+ const struct argp_state *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)
+{
+ if (argp->help_filter)
+ /* We must apply a user filter to this output. */
+ {
+ void *input = __argp_input (argp, state);
+ return (*argp->help_filter) (key, doc, input);
+ }
+ else
+ /* No filter. */
+ return doc;
+}
+
+/* Prints STR as a header line, with the margin lines set appropiately, and
+ notes the fact that groups should be separated with a blank line. ARGP is
+ the argp that should dictate any user doc filtering to take place. Note
+ that the previous wrap margin isn't restored, but the left margin is reset
+ to 0. */
+static void
+print_header (const char *str, const struct argp *argp,
+ struct pentry_state *pest)
+{
+ const char *tstr = dgettext (argp->argp_domain, str);
+ const char *fstr = filter_doc (tstr, ARGP_KEY_HELP_HEADER, argp, pest->state);
+
+ 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');
+ }
+
+ pest->hhstate->sep_groups = 1; /* Separate subsequent groups. */
+ }
+
+ if (fstr != tstr)
+ free ((char *) fstr);
+}
+
+/* Inserts a comma if this isn't the first item on the line, and then makes
+ sure we're at least to column COL. If this *is* the first item on a line,
+ prints any pending whitespace/headers that should precede this line. Also
+ clears FIRST. */
+static void
+comma (unsigned col, struct pentry_state *pest)
+{
+ if (pest->first)
+ {
+ const struct hol_entry *pe = pest->hhstate->prev_entry;
+ 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');
+
+ 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);
+ }
+
+ pest->first = 0;
+ }
+ else
+ __argp_fmtstream_puts (pest->stream, ", ");
+
+ indent_to (pest->stream, col);
+}
+
+/* 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)
+{
+ 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. */
+ /* Saved margins. */
+ int old_lm = __argp_fmtstream_set_lmargin (stream, 0);
+ int old_wm = __argp_fmtstream_wmargin (stream);
+ /* PEST is a state block holding some of our variables that we'd like to
+ share with helper functions. */
+ struct pentry_state pest;
+
+ pest.entry = entry;
+ pest.stream = stream;
+ pest.hhstate = hhstate;
+ pest.first = 1;
+ pest.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;
+ }
+
+ /* First emit short options. */
+ __argp_fmtstream_set_wmargin (stream, uparams.short_opt_col); /* For truly bizarre cases. */
+ for (opt = real, num = entry->num; num > 0; opt++, num--)
+ 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++;
+ }
+
+ /* Now, long options. */
+ if (odoc (real))
+ /* A "documentation" option. */
+ {
+ __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));
+ }
+ }
+ else
+ /* A real long option. */
+ {
+ int first_long_opt = 1;
+
+ __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;
+ }
+ }
+
+ /* Next, documentation strings. */
+ __argp_fmtstream_set_lmargin (stream, 0);
+
+ if (pest.first)
+ {
+ /* 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);
+ else
+ /* 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;
+ const char *fstr = filter_doc (tstr, real->key, entry->argp, state);
+ if (fstr && *fstr)
+ {
+ 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);
+
+ 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);
+ }
+ if (fstr && fstr != tstr)
+ free ((char *) fstr);
+
+ /* Reset the left margin. */
+ __argp_fmtstream_set_lmargin (stream, 0);
+ __argp_fmtstream_putc (stream, '\n');
+ }
+
+ hhstate->prev_entry = entry;
+
+cleanup:
+ __argp_fmtstream_set_lmargin (stream, old_lm);
+ __argp_fmtstream_set_wmargin (stream, old_wm);
+}
+
+/* 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)
+{
+ unsigned num;
+ struct hol_entry *entry;
+ struct hol_help_state hhstate = { 0, 0, 0 };
+
+ for (entry = hol->entries, num = hol->num_entries; num > 0; entry++, num--)
+ hol_entry_help (entry, state, stream, &hhstate);
+
+ if (hhstate.suppressed_dup_arg && uparams.dup_args_note)
+ {
+ const char *tstr = dgettext (state->root_argp->argp_domain, "\
+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);
+ if (fstr && *fstr)
+ {
+ __argp_fmtstream_putc (stream, '\n');
+ __argp_fmtstream_puts (stream, fstr);
+ __argp_fmtstream_putc (stream, '\n');
+ }
+ if (fstr && fstr != tstr)
+ free ((char *) fstr);
+ }
+}
+
+/* Helper functions for hol_usage. */
+
+/* If OPT is a short option without an arg, append its key to the string
+ 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)
+{
+ char **snao_end = cookie;
+ if (!(opt->arg || real->arg)
+ && !((opt->flags | real->flags) & OPTION_NO_USAGE))
+ *(*snao_end)++ = opt->key;
+ return 0;
+}
+
+/* If OPT is a short option with an arg, output a usage entry for it to the
+ 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)
+{
+ argp_fmtstream_t stream = cookie;
+ const char *arg = opt->arg;
+ int flags = opt->flags | real->flags;
+
+ if (! arg)
+ arg = real->arg;
+
+ if (arg && !(flags & OPTION_NO_USAGE))
+ {
+ arg = dgettext (domain, arg);
+
+ if (flags & OPTION_ARG_OPTIONAL)
+ __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);
+ }
+ }
+
+ return 0;
+}
+
+/* Output a usage entry for the long option opt to the stream pointed at by
+ COOKIE. */
+static int
+usage_long_opt (const struct argp_option *opt,
+ const struct argp_option *real,
+ const char *domain, void *cookie)
+{
+ argp_fmtstream_t stream = cookie;
+ const char *arg = opt->arg;
+ int flags = opt->flags | real->flags;
+
+ if (! arg)
+ arg = real->arg;
+
+ 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);
+ }
+ else
+ __argp_fmtstream_printf (stream, " [--%s]", opt->name);
+ }
+
+ return 0;
+}
+
+/* Print a short usage description for the arguments in HOL to STREAM. */
+static void
+hol_usage (struct hol *hol, argp_fmtstream_t stream)
+{
+ if (hol->num_entries > 0)
+ {
+ unsigned nentries;
+ struct hol_entry *entry;
+ char *short_no_arg_opts = alloca (strlen (hol->short_options) + 1);
+ char *snao_end = short_no_arg_opts;
+
+ /* 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);
+ if (snao_end > 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);
+
+ /* 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);
+ }
+}
+
+/* Make a HOL containing all levels of options in ARGP. CLUSTER is the
+ cluster in which ARGP's entries should be clustered, or 0. */
+static struct hol *
+argp_hol (const struct argp *argp, struct hol_cluster *cluster)
+{
+ const struct argp_child *child = argp->children;
+ struct hol *hol = make_hol (argp, 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++;
+ }
+ return hol;
+}
+
+/* Calculate how many different levels with alternative args strings exist in
+ ARGP. */
+static size_t
+argp_args_levels (const struct argp *argp)
+{
+ size_t levels = 0;
+ const struct argp_child *child = argp->children;
+
+ if (argp->args_doc && strchr (argp->args_doc, '\n'))
+ levels++;
+
+ if (child)
+ while (child->argp)
+ levels += argp_args_levels ((child++)->argp);
+
+ return levels;
+}
+
+/* Print all the non-option args documented in ARGP to STREAM. Any output is
+ preceded by a space. LEVELS is a pointer to a byte vector the length
+ returned by argp_args_levels; it should be initialized to zero, and
+ updated by this routine for the next call if ADVANCE is true. True is
+ 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 *our_level = *levels;
+ int multiple = 0;
+ const struct argp_child *child = argp->children;
+ const char *tdoc = dgettext (argp->argp_domain, argp->args_doc), *nl = 0;
+ const char *fdoc = filter_doc (tdoc, ARGP_KEY_HELP_ARGS_DOC, argp, state);
+
+ if (fdoc)
+ {
+ 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)++;
+ }
+
+ /* Manually do line wrapping so that it (probably) won't get wrapped at
+ 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. */
+
+ if (child)
+ while (child->argp)
+ advance = !argp_args_usage ((child++)->argp, state, levels, advance, stream);
+
+ if (advance && multiple)
+ {
+ /* Need to increment our level. */
+ if (*nl)
+ /* 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;
+ }
+
+ return !advance;
+}
+
+/* Print the documentation for ARGP to STREAM; if POST is false, then
+ everything preceeding a '\v' character in the documentation strings (or
+ the whole string, for those with none) is printed, otherwise, everything
+ following the '\v' character (nothing for strings without). Each separate
+ bit of documentation is separated a blank line, and if PRE_BLANK is true,
+ then the first is as well. If FIRST_ONLY is true, only the first
+ 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)
+{
+ const char *text;
+ const char *inp_text;
+ size_t inp_text_len = 0;
+ const char *trans_text;
+ void *input = 0;
+ int anything = 0;
+ const struct argp_child *child = argp->children;
+
+ if (argp->doc)
+ {
+ 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);
+ }
+ }
+ else
+ inp_text = post ? 0 : argp->doc;
+ trans_text = inp_text ? dgettext (argp->argp_domain, inp_text) : NULL;
+ }
+ else
+ trans_text = inp_text = 0;
+
+ if (argp->help_filter)
+ /* We have to filter the doc strings. */
+ {
+ input = __argp_input (argp, state);
+ text =
+ (*argp->help_filter) (post
+ ? ARGP_KEY_HELP_POST_DOC
+ : ARGP_KEY_HELP_PRE_DOC,
+ trans_text, input);
+ }
+ else
+ text = (const char *) trans_text;
+
+ if (text)
+ {
+ if (pre_blank)
+ __argp_fmtstream_putc (stream, '\n');
+
+ __argp_fmtstream_puts (stream, text);
+
+ if (__argp_fmtstream_point (stream) > __argp_fmtstream_lmargin (stream))
+ __argp_fmtstream_putc (stream, '\n');
+
+ anything = 1;
+ }
+
+ if (text && text != trans_text)
+ 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. */
+
+ if (post && argp->help_filter)
+ /* Now see if we have to output an 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 (child)
+ while (child->argp && !(first_only && anything))
+ anything |=
+ argp_doc ((child++)->argp, state,
+ post, anything || pre_blank, first_only,
+ stream);
+
+ return anything;
+}
+
+/* Output a usage message for ARGP to STREAM. If called from
+ argp_state_help, STATE is the relevent parsing state. FLAGS are from the
+ set ARGP_HELP_*. NAME is what to use wherever a "program name" is
+ needed. */
+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. */
+ struct hol *hol = 0;
+ argp_fmtstream_t fs;
+
+ if (! stream)
+ return;
+
+#if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)
+ __flockfile (stream);
+#endif
+
+ if (! uparams.valid)
+ fill_in_uparams (state);
+
+ fs = __argp_make_fmtstream (stream, 0, uparams.rmargin, 0);
+ if (! fs)
+ {
+#if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)
+ __funlockfile (stream);
+#endif
+ return;
+ }
+
+ if (flags & (ARGP_HELP_USAGE | ARGP_HELP_SHORT_USAGE | ARGP_HELP_LONG))
+ {
+ hol = argp_hol (argp, 0);
+
+ /* If present, these options always come last. */
+ hol_set_group (hol, "help", -1);
+ hol_set_group (hol, "version", -1);
+
+ hol_sort (hol);
+ }
+
+ if (flags & (ARGP_HELP_USAGE | ARGP_HELP_SHORT_USAGE))
+ /* Print a short "Usage:" message. */
+ {
+ int first_pattern = 1, more_patterns;
+ size_t num_pattern_levels = argp_args_levels (argp);
+ char *pattern_levels = alloca (num_pattern_levels);
+
+ 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;
+ }
+ while (more_patterns);
+ }
+
+ if (flags & ARGP_HELP_PRE_DOC)
+ anything |= argp_doc (argp, state, 0, 0, 1, fs);
+
+ if (flags & ARGP_HELP_SEE)
+ {
+ __argp_fmtstream_printf (fs, dgettext (argp->argp_domain, "\
+Try '%s --help' or '%s --usage' for more information.\n"),
+ name, name);
+ anything = 1;
+ }
+
+ if (flags & ARGP_HELP_LONG)
+ /* Print a long, detailed help message. */
+ {
+ /* 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 (flags & ARGP_HELP_POST_DOC)
+ /* Print any documentation strings at the end. */
+ anything |= argp_doc (argp, state, 1, anything, 0, fs);
+
+ if ((flags & ARGP_HELP_BUG_ADDR) && argp_program_bug_address)
+ {
+ if (anything)
+ __argp_fmtstream_putc (fs, '\n');
+ __argp_fmtstream_printf (fs, dgettext (argp->argp_domain,
+ "Report bugs to %s.\n"),
+ argp_program_bug_address);
+ anything = 1;
+ }
+
+#if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)
+ __funlockfile (stream);
+#endif
+
+ if (hol)
+ hol_free (hol);
+
+ __argp_fmtstream_free (fs);
+}
+
+/* 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)
+{
+ struct argp_state state;
+ memset (&state, 0, sizeof state);
+ state.root_argp = argp;
+ _help (argp, &state, stream, flags, name);
+}
+#ifdef weak_alias
+weak_alias (__argp_help, argp_help)
+#endif
+
+#if ! (defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME)
+char *
+__argp_short_program_name (void)
+{
+# if HAVE_DECL_PROGRAM_INVOCATION_NAME
+ return __argp_base_name (program_invocation_name);
+# else
+ /* FIXME: What now? Miles suggests that it is better to use NULL,
+ but currently the value is passed on directly to fputs_unlocked,
+ so that requires more changes. */
+# if __GNUC__
+# warning No reasonable value to return
+# endif /* __GNUC__ */
+ return "";
+# endif
+}
+#endif
+
+/* Output, if appropriate, a usage message for STATE to STREAM. FLAGS are
+ from the set ARGP_HELP_*. */
+void
+__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;
+
+ _help (state ? state->root_argp : 0, state, stream, flags,
+ 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);
+ }
+ }
+}
+#ifdef weak_alias
+weak_alias (__argp_state_help, argp_state_help)
+#endif
+
+/* If appropriate, print the printf string FMT and following args, preceded
+ by the program name and ':', to stderr, and followed by a "Try ... --help"
+ message, then exit (1). */
+void
+__argp_error (const struct argp_state *state, const char *fmt, ...)
+{
+ if (!state || !(state->flags & ARGP_NO_ERRS))
+ {
+ FILE *stream = state ? state->err_stream : stderr;
+
+ if (stream)
+ {
+ va_list ap;
+
+#if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)
+ __flockfile (stream);
+#endif
+
+ va_start (ap, fmt);
+
+#ifdef USE_IN_LIBIO
+ if (_IO_fwide (stream, 0) > 0)
+ {
+ char *buf;
+
+ if (__asprintf (&buf, fmt, ap) < 0)
+ buf = NULL;
+
+ __fwprintf (stream, L"%s: %s\n",
+ state ? state->name : __argp_short_program_name (),
+ buf);
+
+ free (buf);
+ }
+ else
+#endif
+ {
+ fputs_unlocked (state
+ ? state->name : __argp_short_program_name (),
+ stream);
+ putc_unlocked (':', stream);
+ putc_unlocked (' ', stream);
+
+ vfprintf (stream, fmt, ap);
+
+ putc_unlocked ('\n', stream);
+ }
+
+ __argp_state_help (state, stream, ARGP_HELP_STD_ERR);
+
+ va_end (ap);
+
+#if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)
+ __funlockfile (stream);
+#endif
+ }
+ }
+}
+#ifdef weak_alias
+weak_alias (__argp_error, argp_error)
+#endif
+
+/* Similar to the standard gnu error-reporting function error(), but will
+ respect the ARGP_NO_EXIT and ARGP_NO_ERRS flags in STATE, and will print
+ to STATE->err_stream. This is useful for argument parsing code that is
+ shared between program startup (when exiting is desired) and runtime
+ option parsing (when typically an error code is returned instead). The
+ difference between this function and argp_error is that the latter is for
+ *parsing errors*, and the former is for other problems that occur during
+ 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, ...)
+{
+ if (!state || !(state->flags & ARGP_NO_ERRS))
+ {
+ FILE *stream = state ? state->err_stream : stderr;
+
+ if (stream)
+ {
+#if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)
+ __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
+#endif
+ fputs_unlocked (state
+ ? state->name : __argp_short_program_name (),
+ stream);
+
+ if (fmt)
+ {
+ va_list ap;
+
+ va_start (ap, fmt);
+#ifdef USE_IN_LIBIO
+ if (_IO_fwide (stream, 0) > 0)
+ {
+ char *buf;
+
+ if (__asprintf (&buf, fmt, ap) < 0)
+ buf = NULL;
+
+ __fwprintf (stream, L": %s", buf);
+
+ free (buf);
+ }
+ else
+#endif
+ {
+ putc_unlocked (':', stream);
+ putc_unlocked (' ', stream);
+
+ vfprintf (stream, fmt, ap);
+ }
+
+ va_end (ap);
+ }
+
+ 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
+#endif
+ {
+ char const *s = NULL;
+ putc_unlocked (':', stream);
+ putc_unlocked (' ', stream);
+#if _LIBC || (HAVE_DECL_STRERROR_R && STRERROR_R_CHAR_P && !defined strerror_r)
+ s = __strerror_r (errnum, buf, sizeof buf);
+#elif HAVE_DECL_STRERROR_R
+ 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");
+#endif
+ fputs (s, stream);
+ }
+ }
+
+#ifdef USE_IN_LIBIO
+ if (_IO_fwide (stream, 0) > 0)
+ putwc_unlocked (L'\n', stream);
+ else
+#endif
+ putc_unlocked ('\n', stream);
+
+#if _LIBC || (HAVE_FLOCKFILE && HAVE_FUNLOCKFILE)
+ __funlockfile (stream);
+#endif
+
+ if (status && (!state || !(state->flags & ARGP_NO_EXIT)))
+ exit (status);
+ }
+ }
+}
+#ifdef weak_alias
+weak_alias (__argp_failure, argp_failure)
+#endif
diff --git a/gnu/argp-namefrob.h b/gnu/argp-namefrob.h
new file mode 100644
index 00000000..8bb30a8d
--- /dev/null
+++ b/gnu/argp-namefrob.h
@@ -0,0 +1,159 @@
+/* -*- 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, 2009-2012 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/>. */
+
+#if !_LIBC
+/* This code is written for inclusion in gnu-libc, and uses names in the
+ namespace reserved for libc. If we're not compiling in libc, define those
+ names to be the normal ones instead. */
+
+/* argp-parse functions */
+#undef __argp_parse
+#define __argp_parse argp_parse
+#undef __option_is_end
+#define __option_is_end _option_is_end
+#undef __option_is_short
+#define __option_is_short _option_is_short
+#undef __argp_input
+#define __argp_input _argp_input
+
+/* argp-help functions */
+#undef __argp_help
+#define __argp_help argp_help
+#undef __argp_error
+#define __argp_error argp_error
+#undef __argp_failure
+#define __argp_failure argp_failure
+#undef __argp_state_help
+#define __argp_state_help argp_state_help
+#undef __argp_usage
+#define __argp_usage argp_usage
+
+/* argp-fmtstream functions */
+#undef __argp_make_fmtstream
+#define __argp_make_fmtstream argp_make_fmtstream
+#undef __argp_fmtstream_free
+#define __argp_fmtstream_free argp_fmtstream_free
+#undef __argp_fmtstream_putc
+#define __argp_fmtstream_putc argp_fmtstream_putc
+#undef __argp_fmtstream_puts
+#define __argp_fmtstream_puts argp_fmtstream_puts
+#undef __argp_fmtstream_write
+#define __argp_fmtstream_write argp_fmtstream_write
+#undef __argp_fmtstream_printf
+#define __argp_fmtstream_printf argp_fmtstream_printf
+#undef __argp_fmtstream_set_lmargin
+#define __argp_fmtstream_set_lmargin argp_fmtstream_set_lmargin
+#undef __argp_fmtstream_set_rmargin
+#define __argp_fmtstream_set_rmargin argp_fmtstream_set_rmargin
+#undef __argp_fmtstream_set_wmargin
+#define __argp_fmtstream_set_wmargin argp_fmtstream_set_wmargin
+#undef __argp_fmtstream_point
+#define __argp_fmtstream_point argp_fmtstream_point
+#undef __argp_fmtstream_update
+#define __argp_fmtstream_update _argp_fmtstream_update
+#undef __argp_fmtstream_ensure
+#define __argp_fmtstream_ensure _argp_fmtstream_ensure
+#undef __argp_fmtstream_lmargin
+#define __argp_fmtstream_lmargin argp_fmtstream_lmargin
+#undef __argp_fmtstream_rmargin
+#define __argp_fmtstream_rmargin argp_fmtstream_rmargin
+#undef __argp_fmtstream_wmargin
+#define __argp_fmtstream_wmargin argp_fmtstream_wmargin
+
+/* normal libc functions we call */
+#undef __flockfile
+#define __flockfile flockfile
+#undef __funlockfile
+#define __funlockfile funlockfile
+#undef __mempcpy
+#define __mempcpy mempcpy
+#undef __sleep
+#define __sleep sleep
+#undef __strcasecmp
+#define __strcasecmp strcasecmp
+#undef __strchrnul
+#define __strchrnul strchrnul
+#undef __strerror_r
+#define __strerror_r strerror_r
+#undef __strndup
+#define __strndup strndup
+#undef __vsnprintf
+#define __vsnprintf vsnprintf
+
+#if defined(HAVE_DECL_CLEARERR_UNLOCKED) && !HAVE_DECL_CLEARERR_UNLOCKED
+# define clearerr_unlocked(x) clearerr (x)
+#endif
+#if defined(HAVE_DECL_FEOF_UNLOCKED) && !HAVE_DECL_FEOF_UNLOCKED
+# define feof_unlocked(x) feof (x)
+#endif
+#if defined(HAVE_DECL_FERROR_UNLOCKED) && !HAVE_DECL_FERROR_UNLOCKED
+# define ferror_unlocked(x) ferror (x)
+#endif
+#if defined(HAVE_DECL_FFLUSH_UNLOCKED) && !HAVE_DECL_FFLUSH_UNLOCKED
+# define fflush_unlocked(x) fflush (x)
+#endif
+#if defined(HAVE_DECL_FGETS_UNLOCKED) && !HAVE_DECL_FGETS_UNLOCKED
+# define fgets_unlocked(x,y,z) fgets (x,y,z)
+#endif
+#if defined(HAVE_DECL_FPUTC_UNLOCKED) && !HAVE_DECL_FPUTC_UNLOCKED
+# define fputc_unlocked(x,y) fputc (x,y)
+#endif
+#if defined(HAVE_DECL_FPUTS_UNLOCKED) && !HAVE_DECL_FPUTS_UNLOCKED
+# define fputs_unlocked(x,y) fputs (x,y)
+#endif
+#if defined(HAVE_DECL_FREAD_UNLOCKED) && !HAVE_DECL_FREAD_UNLOCKED
+# define fread_unlocked(w,x,y,z) fread (w,x,y,z)
+#endif
+#if defined(HAVE_DECL_FWRITE_UNLOCKED) && !HAVE_DECL_FWRITE_UNLOCKED
+# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z)
+#endif
+#if defined(HAVE_DECL_GETC_UNLOCKED) && !HAVE_DECL_GETC_UNLOCKED
+# define getc_unlocked(x) getc (x)
+#endif
+#if defined(HAVE_DECL_GETCHAR_UNLOCKED) && !HAVE_DECL_GETCHAR_UNLOCKED
+# define getchar_unlocked() getchar ()
+#endif
+#if defined(HAVE_DECL_PUTC_UNLOCKED) && !HAVE_DECL_PUTC_UNLOCKED
+# define putc_unlocked(x,y) putc (x,y)
+#endif
+#if defined(HAVE_DECL_PUTCHAR_UNLOCKED) && !HAVE_DECL_PUTCHAR_UNLOCKED
+# define putchar_unlocked(x) putchar (x)
+#endif
+
+#endif /* !_LIBC */
+
+#ifndef __set_errno
+# define __set_errno(e) (errno = (e))
+#endif
+
+#if defined GNULIB_ARGP_DISABLE_DIRNAME
+# define __argp_base_name(arg) arg
+#elif defined GNULIB_ARGP_EXTERN_BASENAME
+extern char *__argp_base_name (const char *arg);
+#else
+# include "dirname.h"
+# 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)
+#else
+extern char *__argp_short_program_name (void);
+#endif
diff --git a/gnu/argp-parse.c b/gnu/argp-parse.c
new file mode 100644
index 00000000..5f8a1f42
--- /dev/null
+++ b/gnu/argp-parse.c
@@ -0,0 +1,955 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Hierarchial argument parsing, layered over getopt
+ Copyright (C) 1995-2000, 2002-2004, 2009-2012 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/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <alloca.h>
+#include <stdalign.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <limits.h>
+#include <getopt.h>
+#include <getopt_int.h>
+
+#ifdef _LIBC
+# include <libintl.h>
+# undef dgettext
+# define dgettext(domain, msgid) \
+ INTUSE(__dcgettext) (domain, msgid, LC_MESSAGES)
+#else
+# include "gettext.h"
+#endif
+#define N_(msgid) msgid
+
+#include "argp.h"
+#include "argp-namefrob.h"
+
+#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. */
+
+/* The meta-argument used to prevent any further arguments being interpreted
+ as options. */
+#define QUOTE "--"
+
+/* The number of bits we steal in a long-option value for our own use. */
+#define GROUP_BITS CHAR_BIT
+
+/* The number of bits available for the user value. */
+#define USER_BITS ((sizeof ((struct option *)0)->val * CHAR_BIT) - GROUP_BITS)
+#define USER_MASK ((1 << USER_BITS) - 1)
+
+/* EZ alias for ARGP_ERR_UNKNOWN. */
+#define EBADKEY ARGP_ERR_UNKNOWN
+
+/* Default options. */
+
+/* When argp is given the --HANG switch, _ARGP_HANG is set and argp will sleep
+ for one second intervals, decrementing _ARGP_HANG until it's zero. Thus
+ you can force the program to continue by attaching a debugger and setting
+ it to 0 yourself. */
+static volatile int _argp_hang;
+
+#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},
+ {"program-name",OPT_PROGNAME,N_("NAME"), OPTION_HIDDEN, N_("set the program name"), 0},
+ {"HANG", OPT_HANG, N_("SECS"), OPTION_ARG_OPTIONAL | OPTION_HIDDEN,
+ N_("hang for SECS seconds (default 3600)"), 0},
+ {NULL, 0, 0, 0, NULL, 0}
+};
+
+static error_t
+argp_default_parser (int key, char *arg, struct argp_state *state)
+{
+ switch (key)
+ {
+ case '?':
+ __argp_state_help (state, state->out_stream, ARGP_HELP_STD_HELP);
+ break;
+ case OPT_USAGE:
+ __argp_state_help (state, state->out_stream,
+ ARGP_HELP_USAGE | ARGP_HELP_EXIT_OK);
+ break;
+
+ 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.] */
+
+ /* Update what we use for messages. */
+ state->name = __argp_base_name (arg);
+
+#if defined _LIBC || HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
+ program_invocation_short_name = state->name;
+#endif
+
+ if ((state->flags & (ARGP_PARSE_ARGV0 | ARGP_NO_ERRS))
+ == 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);
+ break;
+
+ default:
+ return EBADKEY;
+ }
+ return 0;
+}
+
+static const struct argp argp_default_argp =
+ {argp_default_options, &argp_default_parser, NULL, NULL, NULL, NULL, "libc"};
+
+
+static const struct argp_option argp_version_options[] =
+{
+ {"version", 'V', 0, 0, N_("print program version"), -1},
+ {NULL, 0, 0, 0, NULL, 0}
+};
+
+static error_t
+argp_version_parser (int key, char *arg, struct argp_state *state)
+{
+ switch (key)
+ {
+ case 'V':
+ if (argp_program_version_hook)
+ (*argp_program_version_hook) (state->out_stream, state);
+ else if (argp_program_version)
+ fprintf (state->out_stream, "%s\n", argp_program_version);
+ else
+ __argp_error (state, "%s",
+ dgettext (state->root_argp->argp_domain,
+ "(PROGRAM ERROR) No version known!?"));
+ if (! (state->flags & ARGP_NO_EXIT))
+ exit (0);
+ break;
+ default:
+ return EBADKEY;
+ }
+ return 0;
+}
+
+static const struct argp argp_version_argp =
+ {argp_version_options, &argp_version_parser, NULL, NULL, NULL, NULL, "libc"};
+
+/* Returns the offset into the getopt long options array LONG_OPTIONS of a
+ long option with called NAME, or -1 if none is found. Passing NULL as
+ NAME will return the number of options. */
+static int
+find_long_option (struct option *long_options, const char *name)
+{
+ struct option *l = long_options;
+ while (l->name != NULL)
+ if (name != NULL && strcmp (l->name, name) == 0)
+ return l - long_options;
+ else
+ l++;
+ if (name == NULL)
+ return l - long_options;
+ else
+ return -1;
+}
+
+
+/* The state of a "group" during parsing. Each group corresponds to a
+ particular argp structure from the tree of such descending from the top
+ level argp passed to argp_parse. */
+struct group
+{
+ /* This group's parsing function. */
+ argp_parser_t parser;
+
+ /* Which argp this group is from. */
+ const struct argp *argp;
+
+ /* Points to the point in SHORT_OPTS corresponding to the end of the short
+ options for this group. We use it to determine from which group a
+ particular short options is from. */
+ char *short_end;
+
+ /* The number of non-option args sucessfully handled by this parser. */
+ unsigned args_processed;
+
+ /* This group's parser's parent's group. */
+ struct group *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. */
+ void *input, **child_inputs;
+ void *hook;
+};
+
+/* Call GROUP's parser with KEY and ARG, swapping any group-specific info
+ from STATE before calling, and back into state afterwards. If GROUP has
+ no parser, EBADKEY is returned. */
+static error_t
+group_parse (struct group *group, struct argp_state *state, int key, char *arg)
+{
+ if (group->parser)
+ {
+ error_t err;
+ state->hook = group->hook;
+ state->input = group->input;
+ state->child_inputs = group->child_inputs;
+ state->arg_num = group->args_processed;
+ err = (*group->parser)(key, arg, state);
+ group->hook = state->hook;
+ return err;
+ }
+ else
+ return EBADKEY;
+}
+
+struct parser
+{
+ const struct argp *argp;
+
+ /* SHORT_OPTS is the getopt short options string for the union of all the
+ groups of options. */
+ char *short_opts;
+ /* LONG_OPTS is the array of getop long option structures for the union of
+ all the groups of options. */
+ struct option *long_opts;
+ /* OPT_DATA is the getopt data used for the re-entrant getopt. */
+ struct _getopt_data opt_data;
+
+ /* States of the various parsing groups. */
+ struct group *groups;
+ /* The end of the GROUPS array. */
+ struct group *egroup;
+ /* A vector containing storage for the CHILD_INPUTS field in all groups. */
+ void **child_inputs;
+
+ /* True if we think using getopt is still useful; if false, then
+ remaining arguments are just passed verbatim with ARGP_KEY_ARG. This is
+ cleared whenever getopt returns KEY_END, but may be set again if the user
+ moves the next argument pointer backwards. */
+ int try_getopt;
+
+ /* State block supplied to parsing routines. */
+ struct argp_state state;
+
+ /* Memory used by this parser. */
+ void *storage;
+};
+
+/* The next usable entries in the various parser tables being filled in by
+ convert_options. */
+struct parser_convert_state
+{
+ struct parser *parser;
+ char *short_end;
+ struct option *long_end;
+ void **child_inputs_end;
+};
+
+/* Converts all options in ARGP (which is put in GROUP) and ancestors
+ into getopt options stored in SHORT_OPTS and LONG_OPTS; SHORT_END and
+ CVT->LONG_END are the points at which new options are added. Returns the
+ 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)
+{
+ /* REAL is the most recent non-alias value of OPT. */
+ const struct argp_option *real = argp->options;
+ const struct argp_child *children = argp->children;
+
+ if (real || argp->parser)
+ {
+ 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 ? 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;
+ group->short_end = cvt->short_end;
+ group->args_processed = 0;
+ group->parent = parent;
+ group->parent_index = parent_index;
+ group->input = 0;
+ group->hook = 0;
+ group->child_inputs = 0;
+
+ if (children)
+ /* 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;
+ }
+
+ parent = group++;
+ }
+ else
+ parent = 0;
+
+ if (children)
+ {
+ unsigned index = 0;
+ while (children->argp)
+ group =
+ convert_options (children++->argp, parent, index++, group, cvt);
+ }
+
+ return group;
+}
+
+/* Find the merged set of getopt options, with keys appropiately prefixed. */
+static void
+parser_convert (struct parser *parser, const struct argp *argp, int flags)
+{
+ struct parser_convert_state cvt;
+
+ cvt.parser = parser;
+ cvt.short_end = parser->short_opts;
+ cvt.long_end = parser->long_opts;
+ cvt.child_inputs_end = parser->child_inputs;
+
+ if (flags & ARGP_IN_ORDER)
+ *cvt.short_end++ = '-';
+ else if (flags & ARGP_NO_ARGS)
+ *cvt.short_end++ = '+';
+ *cvt.short_end = '\0';
+
+ cvt.long_end->name = NULL;
+
+ parser->argp = argp;
+
+ if (argp)
+ parser->egroup = convert_options (argp, 0, 0, parser->groups, &cvt);
+ else
+ parser->egroup = parser->groups; /* No parsers at all! */
+}
+
+/* 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. */
+};
+
+/* For ARGP, increments the NUM_GROUPS field in SZS by the total number of
+ argp structures descended from it, and the SHORT_LEN & LONG_LEN fields by
+ the maximum lengths of the resulting merged getopt short options string and
+ long-options array, respectively. */
+static void
+calc_sizes (const struct argp *argp, struct parser_sizes *szs)
+{
+ const struct argp_child *child = argp->children;
+ const struct argp_option *opt = argp->options;
+
+ if (opt || argp->parser)
+ {
+ 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;
+ }
+ }
+
+ if (child)
+ while (child->argp)
+ {
+ 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)
+{
+ error_t err = 0;
+ struct group *group;
+ struct parser_sizes szs;
+ struct _getopt_data opt_data = _GETOPT_DATA_INITIALIZER;
+ char *storage;
+ size_t glen, gsum;
+ size_t clen, csum;
+ size_t llen, lsum;
+ size_t slen, ssum;
+
+ szs.short_len = (flags & ARGP_NO_ARGS) ? 0 : 1;
+ szs.long_len = 0;
+ szs.num_groups = 0;
+ szs.num_child_inputs = 0;
+
+ if (argp)
+ calc_sizes (argp, &szs);
+
+ /* Lengths of the various bits of storage used by PARSER. */
+ glen = (szs.num_groups + 1) * sizeof (struct group);
+ clen = szs.num_child_inputs * sizeof (void *);
+ llen = (szs.long_len + 1) * sizeof (struct option);
+ slen = szs.short_len + 1;
+
+ /* Sums of previous lengths, properly aligned. There's no need to
+ align gsum, since struct group is aligned at least as strictly as
+ void * (since it contains a void * member). And there's no need
+ to align lsum, since struct option is aligned at least as
+ strictly as char. */
+ gsum = glen;
+ csum = alignto (gsum + clen, alignof (struct option));
+ lsum = csum + llen;
+ ssum = lsum + slen;
+
+ parser->storage = malloc (ssum);
+ if (! parser->storage)
+ return ENOMEM;
+
+ storage = parser->storage;
+ parser->groups = parser->storage;
+ parser->child_inputs = (void **) (storage + gsum);
+ parser->long_opts = (struct option *) (storage + csum);
+ parser->short_opts = storage + lsum;
+ parser->opt_data = opt_data;
+
+ memset (parser->child_inputs, 0, clen);
+ parser_convert (parser, argp, flags);
+
+ memset (&parser->state, 0, sizeof (struct argp_state));
+ parser->state.root_argp = parser->argp;
+ parser->state.argc = argc;
+ parser->state.argv = argv;
+ parser->state.flags = flags;
+ parser->state.err_stream = stderr;
+ parser->state.out_stream = stdout;
+ parser->state.next = 0; /* Tell getopt to initialize. */
+ parser->state.pstate = parser;
+
+ parser->try_getopt = 1;
+
+ /* Call each parser for the first time, giving it a chance to propagate
+ values to child parsers. */
+ if (parser->groups < parser->egroup)
+ parser->groups->input = input;
+ for (group = parser->groups;
+ group < parser->egroup && (!err || err == EBADKEY);
+ 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 (!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;
+
+ err = group_parse (group, &parser->state, ARGP_KEY_INIT, 0);
+ }
+ if (err == EBADKEY)
+ err = 0; /* Some parser didn't understand. */
+
+ if (err)
+ return err;
+
+ if (parser->state.flags & ARGP_NO_ERRS)
+ {
+ 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++;
+ }
+ else
+ parser->opt_data.opterr = 1; /* Print error messages. */
+
+ if (parser->state.argv == argv && argv[0])
+ /* There's an argv[0]; use it for messages. */
+ parser->state.name = __argp_base_name (argv[0]);
+ else
+ parser->state.name = __argp_short_program_name ();
+
+ return 0;
+}
+
+/* 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)
+{
+ struct group *group;
+
+ if (err == EBADKEY && arg_ebadkey)
+ /* Suppress errors generated by unparsed arguments. */
+ err = 0;
+
+ 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;
+ }
+ else if (end_index)
+ /* 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;
+ }
+ }
+
+ /* Okay, we're all done, with either an error or success; call the parsers
+ to indicate which one. */
+
+ if (err)
+ {
+ /* 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);
+
+ /* 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);
+ }
+ 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. */
+ for (group = parser->egroup - 1
+ ; 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. */
+ }
+
+ /* Call parsers once more, to do any final cleanup. Errors are ignored. */
+ for (group = parser->egroup - 1; group >= parser->groups; group--)
+ group_parse (group, &parser->state, ARGP_KEY_FINI, 0);
+
+ if (err == EBADKEY)
+ err = EINVAL;
+
+ free (parser->storage);
+
+ return err;
+}
+
+/* Call the user parsers to parse the non-option argument VAL, at the current
+ position, returning any error. The state NEXT pointer is assumed to have
+ been adjusted (by getopt) to point after this argument; this function will
+ adjust it correctly to reflect however many args actually end up being
+ consumed. */
+static error_t
+parser_parse_arg (struct parser *parser, char *val)
+{
+ /* Save the starting value of NEXT, first adjusting it so that the arg
+ we're parsing is again the front of the arg vector. */
+ int index = --parser->state.next;
+ error_t err = EBADKEY;
+ struct group *group;
+ 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. */
+ 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);
+ }
+ }
+
+ 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;
+
+ 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);
+ else
+ /* The user wants to reparse some args, give getopt another try. */
+ parser->try_getopt = 1;
+ }
+
+ return err;
+}
+
+/* Call the user parsers to parse the option OPT, with argument VAL, at the
+ current position, returning any error. */
+static error_t
+parser_parse_opt (struct parser *parser, int opt, char *val)
+{
+ /* The group key encoded in the high bits; 0 for short opts or
+ group_number + 1 for long opts. */
+ int group_key = opt >> USER_BITS;
+ error_t err = EBADKEY;
+
+ if (group_key == 0)
+ /* A short option. By comparing OPT's position in SHORT_OPTS to the
+ various starting positions in each group's SHORT_END field, we can
+ determine which group OPT came from. */
+ {
+ struct group *group;
+ 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;
+ }
+ }
+ 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);
+
+ if (err == EBADKEY)
+ /* At least currently, an option not recognized is an error in the
+ parser, because we pre-compute which parser is supposed to deal
+ with each option. */
+ {
+ static const char bad_key_err[] =
+ 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));
+ 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));
+ }
+ }
+
+ return err;
+}
+
+/* Parse the next argument in PARSER (as indicated by PARSER->state.next).
+ Any error from the parsers is returned, and *ARGP_EBADKEY indicates
+ whether a value of EBADKEY is due to an unrecognized argument (which is
+ generally not fatal). */
+static error_t
+parser_parse_next (struct parser *parser, int *arg_ebadkey)
+{
+ int opt;
+ error_t err = 0;
+
+ if (parser->state.quoted && parser->state.next < parser->state.quoted)
+ /* The next argument pointer has been moved to before the quoted
+ region, so pretend we never saw the quoting "--", and give getopt
+ another chance. If the user hasn't removed it, getopt will just
+ process it again. */
+ parser->state.quoted = 0;
+
+ if (parser->try_getopt && !parser->state.quoted)
+ /* Give getopt a chance to parse this. */
+ {
+ /* Put it back in OPTIND for getopt. */
+ parser->opt_data.optind = parser->state.next;
+ /* 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);
+ else
+ 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;
+ }
+ 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;
+ }
+ }
+ else
+ opt = KEY_END;
+
+ if (opt == KEY_END)
+ {
+ /* 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;
+ }
+ else
+ /* 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)
+ /* A non-option argument; try each parser in turn. */
+ err = parser_parse_arg (parser, parser->opt_data.optarg);
+ else
+ err = parser_parse_opt (parser, opt, parser->opt_data.optarg);
+
+ if (err == EBADKEY)
+ *arg_ebadkey = (opt == KEY_END || opt == KEY_ARG);
+
+ return err;
+}
+
+/* Parse the options strings in ARGC & ARGV according to the argp in ARGP.
+ FLAGS is one of the ARGP_ flags above. If END_INDEX is non-NULL, the
+ index in ARGV of the first unparsed option is returned in it. If an
+ unknown option is present, EINVAL is returned; if some parser routine
+ 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)
+{
+ error_t err;
+ struct parser parser;
+
+ /* If true, then err == EBADKEY is a result of a non-option argument failing
+ to be parsed (which in some cases isn't actually an error). */
+ int arg_ebadkey = 0;
+
+#ifndef _LIBC
+ if (!(flags & ARGP_PARSE_ARGV0))
+ {
+#ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME
+ if (!program_invocation_name)
+ 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]);
+#endif
+ }
+#endif
+
+ if (! (flags & ARGP_NO_HELP))
+ /* Add our own options. */
+ {
+ struct argp_child *child = alloca (4 * sizeof (struct argp_child));
+ struct argp *top_argp = alloca (sizeof (struct argp));
+
+ /* TOP_ARGP has no options, it just serves to group the user & default
+ 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_default_argp;
+ if (argp_program_version || argp_program_version_hook)
+ (child++)->argp = &argp_version_argp;
+ child->argp = 0;
+
+ argp = top_argp;
+ }
+
+ /* Construct a parser for these arguments. */
+ err = parser_init (&parser, argp, argc, argv, flags, input);
+
+ if (! err)
+ /* Parse! */
+ {
+ while (! err)
+ err = parser_parse_next (&parser, &arg_ebadkey);
+ err = parser_finalize (&parser, err, arg_ebadkey, end_index);
+ }
+
+ return err;
+}
+#ifdef weak_alias
+weak_alias (__argp_parse, argp_parse)
+#endif
+
+/* Return the input field for ARGP in the parser corresponding to STATE; used
+ by the help routines. */
+void *
+__argp_input (const struct argp *argp, const struct argp_state *state)
+{
+ if (state)
+ {
+ struct group *group;
+ struct parser *parser = state->pstate;
+
+ for (group = parser->groups; group < parser->egroup; group++)
+ if (group->argp == argp)
+ return group->input;
+ }
+
+ return 0;
+}
+#ifdef weak_alias
+weak_alias (__argp_input, _argp_input)
+#endif
diff --git a/gnu/argp-pin.c b/gnu/argp-pin.c
new file mode 100644
index 00000000..83eee63d
--- /dev/null
+++ b/gnu/argp-pin.c
@@ -0,0 +1,29 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Full and short program names for argp module
+ Copyright (C) 2005, 2009-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#ifndef HAVE_PROGRAM_INVOCATION_SHORT_NAME
+char *program_invocation_short_name = 0;
+#endif
+#ifndef HAVE_PROGRAM_INVOCATION_NAME
+char *program_invocation_name = 0;
+#endif
+
diff --git a/gnu/argp-pv.c b/gnu/argp-pv.c
new file mode 100644
index 00000000..e4e899f5
--- /dev/null
+++ b/gnu/argp-pv.c
@@ -0,0 +1,36 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Default definition for ARGP_PROGRAM_VERSION.
+ Copyright (C) 1996-1997, 1999, 2006, 2009-2012 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/>. */
+
+/* If set by the user program to a non-zero value, then a default option
+ --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
+/* 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/gnu/argp-pvh.c b/gnu/argp-pvh.c
new file mode 100644
index 00000000..67f8f7af
--- /dev/null
+++ b/gnu/argp-pvh.c
@@ -0,0 +1,33 @@
+/* -*- 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, 2009-2012 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/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "argp.h"
+
+/* If set by the user program to a non-zero value, then a default option
+ --version is added (unless the ARGP_NO_HELP flag is used), which calls
+ this function with a stream to print the version to and a pointer to the
+ current parsing state, and then exits (unless the ARGP_NO_EXIT flag is
+ used). This variable takes precedent over ARGP_PROGRAM_VERSION. */
+void (*argp_program_version_hook) (FILE *stream, struct argp_state *state) = NULL;
diff --git a/gnu/argp-version-etc.c b/gnu/argp-version-etc.c
new file mode 100644
index 00000000..117fa077
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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 00000000..450f58c0
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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/gnu/argp-xinl.c b/gnu/argp-xinl.c
new file mode 100644
index 00000000..366f5582
--- /dev/null
+++ b/gnu/argp-xinl.c
@@ -0,0 +1,44 @@
+/* -*- 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, 2009-2012 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/>. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#if defined _LIBC || defined HAVE_FEATURES_H
+# include <features.h>
+#endif
+
+#ifndef __USE_EXTERN_INLINES
+# define __USE_EXTERN_INLINES 1
+#endif
+#define ARGP_EI
+#undef __OPTIMIZE__
+#define __OPTIMIZE__ 1
+#include "argp.h"
+
+/* Add weak aliases. */
+#if _LIBC - 0 && defined (weak_alias)
+
+weak_alias (__argp_usage, argp_usage)
+weak_alias (__option_is_short, _option_is_short)
+weak_alias (__option_is_end, _option_is_end)
+
+#endif
diff --git a/gnu/argp.h b/gnu/argp.h
new file mode 100644
index 00000000..bf80aa85
--- /dev/null
+++ b/gnu/argp.h
@@ -0,0 +1,647 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Hierarchial argument parsing, layered over getopt.
+ Copyright (C) 1995-1999, 2003-2012 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/>. */
+
+#ifndef _ARGP_H
+#define _ARGP_H
+
+#include <stdio.h>
+#include <ctype.h>
+#include <getopt.h>
+#include <limits.h>
+
+#define __need_error_t
+#include <errno.h>
+
+#ifndef __THROW
+# define __THROW
+#endif
+#ifndef __NTH
+# define __NTH(fct) fct __THROW
+#endif
+
+/* 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 _GL_ATTRIBUTE_FORMAT 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 _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+#else
+# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
+#endif
+
+/* GCC 2.95 and later have "__restrict"; C99 compilers have
+ "restrict", and "configure" may have defined "restrict".
+ Other compilers use __restrict, __restrict__, and _Restrict, and
+ 'configure' might #define 'restrict' to those words. */
+#ifndef __restrict
+# if ! (2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__))
+# if 199901L <= __STDC_VERSION__
+# define __restrict restrict
+# else
+# define __restrict
+# endif
+# endif
+#endif
+
+#ifndef __error_t_defined
+typedef int error_t;
+# define __error_t_defined
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* A description of a particular option. A pointer to an array of
+ these is passed in the OPTIONS field of an argp structure. Each option
+ entry can correspond to one long option and/or one short option; more
+ names for the same option can be added by following an entry in an option
+ array with options having the OPTION_ALIAS flag set. */
+struct argp_option
+{
+ /* The long option name. For more than one name for the same option, you
+ can use following options with the OPTION_ALIAS flag set. */
+ const char *name;
+
+ /* What key is returned for this option. If > 0 and printable, then it's
+ also accepted as a short option. */
+ int key;
+
+ /* If non-NULL, this is the name of the argument associated with this
+ option, which is required unless the OPTION_ARG_OPTIONAL flag is set. */
+ const char *arg;
+
+ /* OPTION_ flags. */
+ int flags;
+
+ /* The doc string for this option. If both NAME and KEY are 0, This string
+ will be printed outdented from the normal option column, making it
+ useful as a group header (it will be the first thing printed in its
+ group); in this usage, it's conventional to end the string with a ':'.
+
+ Write the initial value as N_("TEXT") if you want xgettext to collect
+ it into a POT file. */
+ const char *doc;
+
+ /* The group this option is in. In a long help message, options are sorted
+ alphabetically within each group, and the groups presented in the order
+ 0, 1, 2, ..., n, -m, ..., -2, -1. Every entry in an options array with
+ if this field 0 will inherit the group number of the previous entry, or
+ zero if it's the first one, unless its a group header (NAME and KEY both
+ 0), in which case, the previous entry + 1 is the default. Automagic
+ options such as --help are put into group -1. */
+ int group;
+};
+
+/* The argument associated with this option is optional. */
+#define OPTION_ARG_OPTIONAL 0x1
+
+/* This option isn't displayed in any help messages. */
+#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
+
+/* 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
+ should be displayed in much the same manner as the options. If this flag
+ is set, then the option NAME field is displayed unmodified (e.g., no '--'
+ prefix is added) at the left-margin (where a *short* option would normally
+ be displayed), and the documentation string in the normal place. The NAME
+ field will be translated using gettext, unless OPTION_NO_TRANS is set (see
+ below). For purposes of sorting, any leading whitespace and punctuation is
+ 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
+
+/* 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
+ completely documented in an argp's ARGS_DOC field, in which case including
+ the option in the generic usage list would be redundant. For instance,
+ 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
+
+/* 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; /* " */
+
+/* The type of a pointer to an argp parsing function. */
+typedef error_t (*argp_parser_t) (int key, char *arg,
+ 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 */
+
+/* Special values for the KEY argument to an argument parsing function.
+ ARGP_ERR_UNKNOWN should be returned if they aren't understood.
+
+ The sequence of keys to a parsing function is either (where each
+ uppercased word should be prefixed by 'ARGP_KEY_' and opt is a user key):
+
+ INIT opt... NO_ARGS END SUCCESS -- No non-option arguments at all
+ or INIT (opt | ARG)... END SUCCESS -- All non-option args parsed
+ or INIT (opt | ARG)... SUCCESS -- Some non-option arg unrecognized
+
+ The third case is where every parser returned ARGP_KEY_UNKNOWN for an
+ argument, in which case parsing stops at that argument (returning the
+ unparsed arguments to the caller of argp_parse if requested, or stopping
+ with an error message if not).
+
+ If an error occurs (either detected by argp, or because the parsing
+ function returned an error value), then the parser is called with
+ ARGP_KEY_ERROR, and no further calls are made. */
+
+/* This is not an option at all, but rather a command line argument. If a
+ parser receiving this key returns success, the fact is recorded, and the
+ ARGP_KEY_NO_ARGS case won't be used. HOWEVER, if while processing the
+ argument, a parser function decrements the NEXT field of the state it's
+ 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
+/* 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
+/* There are no more command line arguments at all. */
+#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
+/* 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
+/* Use after all other keys, including SUCCESS & END. */
+#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
+/* Passed in if an error occurs. */
+#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
+ argp's, and perhaps a function to filter help output. When actually
+ parsing options, getopt is called with the union of all the argp
+ structures chained together through their CHILD pointers, with conflicts
+ being resolved in favor of the first occurrence in the chain. */
+struct argp
+{
+ /* An array of argp_option structures, terminated by an entry with both
+ NAME and KEY having a value of 0. */
+ const struct argp_option *options;
+
+ /* What to do with an option from this structure. KEY is the key
+ associated with the option, and ARG is any associated argument (NULL if
+ none was supplied). If KEY isn't understood, ARGP_ERR_UNKNOWN should be
+ returned. If a non-zero, non-ARGP_ERR_UNKNOWN value is returned, then
+ parsing is stopped immediately, and that value is returned from
+ argp_parse(). For special (non-user-supplied) values of KEY, see the
+ ARGP_KEY_ definitions below. */
+ argp_parser_t parser;
+
+ /* A string describing what other arguments are wanted by this program. It
+ is only used by argp_usage to print the "Usage:" message. If it
+ contains newlines, the strings separated by them are considered
+ alternative usage patterns, and printed on separate lines (lines after
+ the first are prefix by " or: " instead of "Usage:"). */
+ const char *args_doc;
+
+ /* If non-NULL, a string containing extra text to be printed before and
+ after the options in a long help message (separated by a vertical tab
+ '\v' character).
+ Write the initial value as N_("BEFORE-TEXT") "\v" N_("AFTER-TEXT") if
+ you want xgettext to collect the two pieces of text into a POT file. */
+ const char *doc;
+
+ /* A vector of argp_children structures, terminated by a member with a 0
+ argp field, pointing to child argps should be parsed with this one. Any
+ conflicts are resolved in favor of this argp, or early argps in the
+ CHILDREN list. This field is useful if you use libraries that supply
+ their own argp structure, which you want to use in conjunction with your
+ own. */
+ const struct argp_child *children;
+
+ /* If non-zero, this should be a function to filter the output of help
+ messages. KEY is either a key from an option, in which case TEXT is
+ that option's help text, or a special key from the ARGP_KEY_HELP_
+ defines, below, describing which other help text TEXT is. The function
+ should return either TEXT, if it should be used as-is, a replacement
+ string, which should be malloced, and will be freed by argp, or NULL,
+ meaning "print nothing". The value for TEXT is *after* any translation
+ has been done, so if any of the replacement text also needs translation,
+ that should be done by the filter function. INPUT is either the input
+ supplied to argp_parse, or NULL, if argp_help was called directly. */
+ char *(*help_filter) (int __key, const char *__text, void *__input);
+
+ /* If non-zero the strings used in the argp library are translated using
+ the domain described by this string. Otherwise the currently installed
+ default domain is used. */
+ const char *argp_domain;
+};
+
+/* 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. */
+/* 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. */
+
+/* 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. */
+struct argp_child
+{
+ /* The child parser. */
+ const struct argp *argp;
+
+ /* Flags for this child. */
+ int flags;
+
+ /* If non-zero, an optional header to be printed in help output before the
+ child options. As a side-effect, a non-zero value forces the child
+ options to be grouped together; to achieve this effect without actually
+ printing a header string, use a value of "". */
+ const char *header;
+
+ /* Where to group the child options relative to the other ("consolidated")
+ options in the parent argp; the values are the same as the GROUP field
+ in argp_option structs, but all child-groupings follow parent options at
+ a particular group level. If both this field and HEADER are zero, then
+ they aren't grouped at all, but rather merged with the parent options
+ (merging the child's grouping levels with the parents). */
+ int group;
+};
+
+/* Parsing state. This is provided to parsing functions called by argp,
+ which may examine and, as noted, modify fields. */
+struct argp_state
+{
+ /* The top level ARGP being parsed. */
+ const struct argp *root_argp;
+
+ /* The argument vector being parsed. May be modified. */
+ int argc;
+ char **argv;
+
+ /* The index in ARGV of the next arg that to be parsed. May be modified. */
+ int next;
+
+ /* The flags supplied to argp_parse. May be modified. */
+ unsigned flags;
+
+ /* While calling a parsing function with a key of ARGP_KEY_ARG, this is the
+ number of the current arg, starting at zero, and incremented after each
+ such call returns. At all other times, this is the number of such
+ arguments that have been processed. */
+ unsigned arg_num;
+
+ /* If non-zero, the index in ARGV of the first argument following a special
+ '--' argument (which prevents anything following being interpreted as an
+ option). Only set once argument parsing has proceeded past this point. */
+ int quoted;
+
+ /* An arbitrary pointer passed in from the user. */
+ void *input;
+ /* Values to pass to child parsers. This vector will be the same length as
+ the number of children for the current parser. */
+ void **child_inputs;
+
+ /* For the parser's use. Initialized to 0. */
+ void *hook;
+
+ /* The name used when printing messages. This is initialized to ARGV[0],
+ or PROGRAM_INVOCATION_NAME if that is unavailable. */
+ char *name;
+
+ /* Streams used when argp prints something. */
+ FILE *err_stream; /* For errors; initialized to stderr. */
+ FILE *out_stream; /* For information; initialized to stdout. */
+
+ void *pstate; /* Private, for use by argp. */
+};
+
+/* Flags for argp_parse (note that the defaults are those that are
+ convenient for program command line parsing): */
+
+/* Don't ignore the first element of ARGV. Normally (and always unless
+ ARGP_NO_ERRS is set) the first element of the argument vector is
+ skipped for option parsing purposes, as it corresponds to the program name
+ in a command line. */
+#define ARGP_PARSE_ARGV0 0x01
+
+/* Don't print error messages for unknown options to stderr; unless this flag
+ 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
+
+/* 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
+ as the value. Since it's impossible to know which parse function wants to
+ handle it, each one is called in turn, until one returns 0 or an error
+ other than ARGP_ERR_UNKNOWN; if an argument is handled by no one, the
+ argp_parse returns prematurely (but with a return value of 0). If all
+ args have been parsed without error, all parsing functions are called one
+ 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
+
+/* 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
+
+/* 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
+
+/* Don't exit on errors (they may still result in error messages). */
+#define ARGP_NO_EXIT 0x20
+
+/* Use the gnu getopt "long-only" rules for parsing arguments. */
+#define ARGP_LONG_ONLY 0x40
+
+/* Turns off any message-printing/exiting options. */
+#define ARGP_SILENT (ARGP_NO_EXIT | ARGP_NO_ERRS | ARGP_NO_HELP)
+
+/* Parse the options strings in ARGC & ARGV according to the options in ARGP.
+ FLAGS is one of the ARGP_ flags above. If ARG_INDEX is non-NULL, the
+ index in ARGV of the first unparsed option is returned in it. If an
+ unknown option is present, ARGP_ERR_UNKNOWN is returned; if some parser
+ routine returned a non-zero value, it is returned; otherwise 0 is
+ 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);
+extern error_t __argp_parse (const struct argp *__restrict __argp,
+ int /*argc*/, char **__restrict /*argv*/,
+ unsigned __flags, int *__restrict __arg_index,
+ void *__restrict __input);
+
+/* Global variables. */
+
+/* GNULIB makes sure both program_invocation_name and
+ program_invocation_short_name are available */
+#ifdef GNULIB_PROGRAM_INVOCATION_NAME
+extern char *program_invocation_name;
+# undef HAVE_DECL_PROGRAM_INVOCATION_NAME
+# define HAVE_DECL_PROGRAM_INVOCATION_NAME 1
+#endif
+
+#ifdef GNULIB_PROGRAM_INVOCATION_SHORT_NAME
+extern char *program_invocation_short_name;
+# undef HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME
+# define HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME 1
+#endif
+
+/* If defined or set by the user program to a non-zero value, then a default
+ option --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. */
+extern const char *argp_program_version;
+
+/* If defined or set by the user program to a non-zero value, then a default
+ option --version is added (unless the ARGP_NO_HELP flag is used), which
+ calls this function with a stream to print the version to and a pointer to
+ 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);
+
+/* 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
+ argp_help if 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." */
+extern const char *argp_program_bug_address;
+
+/* The exit status that argp will use when exiting due to a parsing error.
+ If not defined or set by the user program, this defaults to EX_USAGE from
+ <sysexits.h>. */
+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. */
+
+/* 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. */
+
+/* The standard thing to do after a program command line parsing error, if an
+ error message has already been printed. */
+#define ARGP_HELP_STD_ERR \
+ (ARGP_HELP_SEE | ARGP_HELP_EXIT_ERR)
+/* The standard thing to do after a program command line parsing error, if no
+ more specific error message has been printed. */
+#define ARGP_HELP_STD_USAGE \
+ (ARGP_HELP_SHORT_USAGE | ARGP_HELP_SEE | ARGP_HELP_EXIT_ERR)
+/* The standard thing to do in response to a --help option. */
+#define ARGP_HELP_STD_HELP \
+ (ARGP_HELP_SHORT_USAGE | ARGP_HELP_LONG | ARGP_HELP_EXIT_OK \
+ | ARGP_HELP_DOC | ARGP_HELP_BUG_ADDR)
+
+/* 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);
+extern void __argp_help (const struct argp *__restrict __argp,
+ 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
+ argument). They may or may not print an error message and exit, depending
+ on the flags in STATE -- in any case, the caller should be prepared for
+ them *not* to exit, and should return an appropiate error after calling
+ them. [argp_usage & argp_error should probably be called argp_state_...,
+ but they're used often enough that they should be short] */
+
+/* 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);
+extern void __argp_state_help (const struct argp_state *__restrict __state,
+ FILE *__restrict __stream,
+ unsigned int __flags);
+
+#if _LIBC || !defined __USE_EXTERN_INLINES
+/* Possibly output the standard usage message for ARGP to stderr and exit. */
+extern void argp_usage (const struct argp_state *__state);
+extern void __argp_usage (const struct argp_state *__state);
+#endif
+
+/* If appropriate, print the printf string FMT and following args, preceded
+ 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, ...)
+ _GL_ATTRIBUTE_FORMAT ((__printf__, 2, 3));
+extern void __argp_error (const struct argp_state *__restrict __state,
+ const char *__restrict __fmt, ...)
+ _GL_ATTRIBUTE_FORMAT ((__printf__, 2, 3));
+
+/* Similar to the standard gnu error-reporting function error(), but will
+ respect the ARGP_NO_EXIT and ARGP_NO_ERRS flags in STATE, and will print
+ to STATE->err_stream. This is useful for argument parsing code that is
+ shared between program startup (when exiting is desired) and runtime
+ option parsing (when typically an error code is returned instead). The
+ difference between this function and argp_error is that the latter is for
+ *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, ...)
+ _GL_ATTRIBUTE_FORMAT ((__printf__, 4, 5));
+extern void __argp_failure (const struct argp_state *__restrict __state,
+ int __status, int __errnum,
+ const char *__restrict __fmt, ...)
+ _GL_ATTRIBUTE_FORMAT ((__printf__, 4, 5));
+
+#if _LIBC || !defined __USE_EXTERN_INLINES
+/* Returns true if the option OPT is a valid short option. */
+extern int _option_is_short (const struct argp_option *__opt) __THROW;
+extern int __option_is_short (const struct argp_option *__opt) __THROW;
+
+/* Returns true if the option OPT is in fact the last (unused) entry in an
+ options array. */
+extern int _option_is_end (const struct argp_option *__opt) __THROW;
+extern int __option_is_end (const struct argp_option *__opt) __THROW;
+#endif
+
+/* 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)
+ __THROW;
+extern void *__argp_input (const struct argp *__restrict __argp,
+ const struct argp_state *__restrict __state)
+ __THROW;
+
+#ifdef __USE_EXTERN_INLINES
+
+# if !_LIBC
+# define __argp_usage argp_usage
+# define __argp_state_help argp_state_help
+# define __option_is_short _option_is_short
+# define __option_is_end _option_is_end
+# endif
+
+# ifndef ARGP_EI
+# ifdef __GNUC__
+ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+ inline semantics, unless -fgnu89-inline is used. It defines a macro
+ __GNUC_STDC_INLINE__ to indicate this situation or a macro
+ __GNUC_GNU_INLINE__ to indicate the opposite situation.
+ GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline
+ semantics but warns, unless -fgnu89-inline is used:
+ warning: C99 inline functions are not supported; using GNU89
+ warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
+ It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. */
+# if defined __GNUC_STDC_INLINE__
+# define ARGP_EI __inline__
+# elif defined __GNUC_GNU_INLINE__
+# define ARGP_EI extern __inline__ __attribute__ ((__gnu_inline__))
+# else
+# define ARGP_EI extern __inline__
+# endif
+# else
+ /* With other compilers, assume the ISO C99 meaning of 'inline', if
+ the compiler supports 'inline' at all. */
+# define ARGP_EI inline
+# endif
+# endif
+
+ARGP_EI void
+__argp_usage (const struct argp_state *__state)
+{
+ __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
+}
+
+ARGP_EI int
+__NTH (__option_is_short (const struct argp_option *__opt))
+{
+ if (__opt->flags & OPTION_DOC)
+ return 0;
+ else
+ {
+ int __key = __opt->key;
+ return __key > 0 && __key <= UCHAR_MAX && isprint (__key);
+ }
+}
+
+ARGP_EI int
+__NTH (__option_is_end (const struct argp_option *__opt))
+{
+ return !__opt->key && !__opt->name && !__opt->doc && !__opt->group;
+}
+
+# if !_LIBC
+# undef __argp_usage
+# undef __argp_state_help
+# undef __option_is_short
+# undef __option_is_end
+# endif
+#endif /* Use extern inlines. */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* argp.h */
diff --git a/gnu/asnprintf.c b/gnu/asnprintf.c
new file mode 100644
index 00000000..f7a9ca3f
--- /dev/null
+++ b/gnu/asnprintf.c
@@ -0,0 +1,37 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Formatted output to strings.
+ Copyright (C) 1999, 2002, 2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#include "vasnprintf.h"
+
+#include <stdarg.h>
+
+char *
+asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
+{
+ va_list args;
+ char *result;
+
+ va_start (args, format);
+ result = vasnprintf (resultbuf, lengthp, format, args);
+ va_end (args);
+ return result;
+}
diff --git a/gnu/asprintf.c b/gnu/asprintf.c
new file mode 100644
index 00000000..82cf26a8
--- /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-2012 Free Software Foundation,
+ Inc.
+
+ This 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 00000000..2230147f
--- /dev/null
+++ b/gnu/at-func.c
@@ -0,0 +1,133 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Define at-style functions like fstatat, unlinkat, fchownat, etc.
+ Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 "dosname.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/gnu/at-func2.c b/gnu/at-func2.c
new file mode 100644
index 00000000..c9ffae09
--- /dev/null
+++ b/gnu/at-func2.c
@@ -0,0 +1,284 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Define 2-FD at-style functions like linkat or renameat.
+ Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 and Eric Blake */
+
+#include <config.h>
+
+#include "openat-priv.h"
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "dosname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
+#include "filenamecat.h"
+#include "openat.h"
+#include "same-inode.h"
+#include "save-cwd.h"
+
+/* Call FUNC to operate on a pair of files, where FILE1 is relative to FD1,
+ and FILE2 is relative to FD2. If possible, do it without changing the
+ working directory. Otherwise, resort to using save_cwd/fchdir,
+ FUNC, restore_cwd (up to two times). If either the save_cwd or the
+ restore_cwd fails, then give a diagnostic and exit nonzero. */
+int
+at_func2 (int fd1, char const *file1,
+ int fd2, char const *file2,
+ int (*func) (char const *file1, char const *file2))
+{
+ struct saved_cwd saved_cwd;
+ int saved_errno;
+ int err;
+ char *file1_alt;
+ char *file2_alt;
+ struct stat st1;
+ struct stat st2;
+
+ /* There are 16 possible scenarios, based on whether an fd is
+ AT_FDCWD or real, and whether a file is absolute or relative:
+
+ fd1 file1 fd2 file2 action
+ 0 cwd abs cwd abs direct call
+ 1 cwd abs cwd rel direct call
+ 2 cwd abs fd abs direct call
+ 3 cwd abs fd rel chdir to fd2
+ 4 cwd rel cwd abs direct call
+ 5 cwd rel cwd rel direct call
+ 6 cwd rel fd abs direct call
+ 7 cwd rel fd rel convert file1 to abs, then case 3
+ 8 fd abs cwd abs direct call
+ 9 fd abs cwd rel direct call
+ 10 fd abs fd abs direct call
+ 11 fd abs fd rel chdir to fd2
+ 12 fd rel cwd abs chdir to fd1
+ 13 fd rel cwd rel convert file2 to abs, then case 12
+ 14 fd rel fd abs chdir to fd1
+ 15a fd1 rel fd1 rel chdir to fd1
+ 15b fd1 rel fd2 rel chdir to fd1, then case 7
+
+ Try some optimizations to reduce fd to AT_FDCWD, or to at least
+ avoid converting an absolute name or doing a double chdir. */
+
+ if ((fd1 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file1))
+ && (fd2 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file2)))
+ return func (file1, file2); /* Case 0-2, 4-6, 8-10. */
+
+ /* If /proc/self/fd works, we don't need any stat or chdir. */
+ {
+ char proc_buf1[OPENAT_BUFFER_SIZE];
+ char *proc_file1 = ((fd1 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file1))
+ ? (char *) file1
+ : openat_proc_name (proc_buf1, fd1, file1));
+ if (proc_file1)
+ {
+ char proc_buf2[OPENAT_BUFFER_SIZE];
+ char *proc_file2 = ((fd2 == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file2))
+ ? (char *) file2
+ : openat_proc_name (proc_buf2, fd2, file2));
+ if (proc_file2)
+ {
+ int proc_result = func (proc_file1, proc_file2);
+ int proc_errno = errno;
+ if (proc_file1 != proc_buf1 && proc_file1 != file1)
+ free (proc_file1);
+ if (proc_file2 != proc_buf2 && proc_file2 != file2)
+ free (proc_file2);
+ /* 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;
+ }
+ }
+ else if (proc_file1 != proc_buf1 && proc_file1 != file1)
+ free (proc_file1);
+ }
+ }
+
+ /* Cases 3, 7, 11-15 remain. Time to normalize directory fds, if
+ possible. */
+ if (IS_ABSOLUTE_FILE_NAME (file1))
+ fd1 = AT_FDCWD; /* Case 11 reduced to 3. */
+ else if (IS_ABSOLUTE_FILE_NAME (file2))
+ fd2 = AT_FDCWD; /* Case 14 reduced to 12. */
+
+ /* Cases 3, 7, 12, 13, 15 remain. */
+
+ if (fd1 == AT_FDCWD) /* Cases 3, 7. */
+ {
+ if (stat (".", &st1) == -1 || fstat (fd2, &st2) == -1)
+ return -1;
+ if (!S_ISDIR (st2.st_mode))
+ {
+ errno = ENOTDIR;
+ return -1;
+ }
+ if (SAME_INODE (st1, st2)) /* Reduced to cases 1, 5. */
+ return func (file1, file2);
+ }
+ else if (fd2 == AT_FDCWD) /* Cases 12, 13. */
+ {
+ if (stat (".", &st2) == -1 || fstat (fd1, &st1) == -1)
+ return -1;
+ if (!S_ISDIR (st1.st_mode))
+ {
+ errno = ENOTDIR;
+ return -1;
+ }
+ if (SAME_INODE (st1, st2)) /* Reduced to cases 4, 5. */
+ return func (file1, file2);
+ }
+ else if (fd1 != fd2) /* Case 15b. */
+ {
+ if (fstat (fd1, &st1) == -1 || fstat (fd2, &st2) == -1)
+ return -1;
+ if (!S_ISDIR (st1.st_mode) || !S_ISDIR (st2.st_mode))
+ {
+ errno = ENOTDIR;
+ return -1;
+ }
+ if (SAME_INODE (st1, st2)) /* Reduced to case 15a. */
+ {
+ fd2 = fd1;
+ if (stat (".", &st1) == 0 && SAME_INODE (st1, st2))
+ return func (file1, file2); /* Further reduced to case 5. */
+ }
+ }
+ else /* Case 15a. */
+ {
+ if (fstat (fd1, &st1) == -1)
+ return -1;
+ if (!S_ISDIR (st1.st_mode))
+ {
+ errno = ENOTDIR;
+ return -1;
+ }
+ if (stat (".", &st2) == 0 && SAME_INODE (st1, st2))
+ return func (file1, file2); /* Reduced to case 5. */
+ }
+
+ /* Cases 3, 7, 12, 13, 15a, 15b remain. With all reductions in
+ place, it is time to start changing directories. */
+
+ if (save_cwd (&saved_cwd) != 0)
+ openat_save_fail (errno);
+
+ if (fd1 != AT_FDCWD && fd2 != AT_FDCWD && fd1 != fd2) /* Case 15b. */
+ {
+ if (fchdir (fd1) != 0)
+ {
+ saved_errno = errno;
+ free_cwd (&saved_cwd);
+ errno = saved_errno;
+ return -1;
+ }
+ fd1 = AT_FDCWD; /* Reduced to case 7. */
+ }
+
+ /* Cases 3, 7, 12, 13, 15a remain. Convert one relative name to
+ absolute, if necessary. */
+
+ file1_alt = (char *) file1;
+ file2_alt = (char *) file2;
+
+ if (fd1 == AT_FDCWD && !IS_ABSOLUTE_FILE_NAME (file1)) /* Case 7. */
+ {
+ /* It would be nicer to use:
+ file1_alt = file_name_concat (xgetcwd (), file1, NULL);
+ but libraries should not call xalloc_die. */
+ char *cwd = getcwd (NULL, 0);
+ if (!cwd)
+ {
+ saved_errno = errno;
+ free_cwd (&saved_cwd);
+ errno = saved_errno;
+ return -1;
+ }
+ file1_alt = mfile_name_concat (cwd, file1, NULL);
+ if (!file1_alt)
+ {
+ saved_errno = errno;
+ free (cwd);
+ free_cwd (&saved_cwd);
+ errno = saved_errno;
+ return -1;
+ }
+ free (cwd); /* Reduced to case 3. */
+ }
+ else if (fd2 == AT_FDCWD && !IS_ABSOLUTE_FILE_NAME (file2)) /* Case 13. */
+ {
+ char *cwd = getcwd (NULL, 0);
+ if (!cwd)
+ {
+ saved_errno = errno;
+ free_cwd (&saved_cwd);
+ errno = saved_errno;
+ return -1;
+ }
+ file2_alt = mfile_name_concat (cwd, file2, NULL);
+ if (!file2_alt)
+ {
+ saved_errno = errno;
+ free (cwd);
+ free_cwd (&saved_cwd);
+ errno = saved_errno;
+ return -1;
+ }
+ free (cwd); /* Reduced to case 12. */
+ }
+
+ /* Cases 3, 12, 15a remain. Change to the correct directory. */
+ if (fchdir (fd1 == AT_FDCWD ? fd2 : fd1) != 0)
+ {
+ saved_errno = errno;
+ free_cwd (&saved_cwd);
+ if (file1 != file1_alt)
+ free (file1_alt);
+ else if (file2 != file2_alt)
+ free (file2_alt);
+ errno = saved_errno;
+ return -1;
+ }
+
+ /* Finally safe to perform the user's function, then clean up. */
+
+ err = func (file1_alt, file2_alt);
+ saved_errno = (err < 0 ? errno : 0);
+
+ if (file1 != file1_alt)
+ free (file1_alt);
+ else if (file2 != file2_alt)
+ free (file2_alt);
+
+ 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
diff --git a/gnu/backupfile.c b/gnu/backupfile.c
new file mode 100644
index 00000000..5ec5f7b5
--- /dev/null
+++ b/gnu/backupfile.c
@@ -0,0 +1,357 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* backupfile.c -- make Emacs style backup file names
+
+ Copyright (C) 1990-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 David MacKenzie.
+ Some algorithms adapted from GNU Emacs. */
+
+#include <config.h>
+
+#include "backupfile.h"
+
+#include "argmatch.h"
+#include "dirname.h"
+#include "xalloc.h"
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <limits.h>
+
+#include <unistd.h>
+
+#include "dirent--.h"
+#ifndef _D_EXACT_NAMLEN
+# define _D_EXACT_NAMLEN(dp) strlen ((dp)->d_name)
+#endif
+#if D_INO_IN_DIRENT
+# define REAL_DIR_ENTRY(dp) ((dp)->d_ino != 0)
+#else
+# define REAL_DIR_ENTRY(dp) 1
+#endif
+
+#if ! (HAVE_PATHCONF && defined _PC_NAME_MAX)
+# define pathconf(file, option) (errno = -1)
+#endif
+
+#ifndef _POSIX_NAME_MAX
+# define _POSIX_NAME_MAX 14
+#endif
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+#if defined _XOPEN_NAME_MAX
+# define NAME_MAX_MINIMUM _XOPEN_NAME_MAX
+#else
+# define NAME_MAX_MINIMUM _POSIX_NAME_MAX
+#endif
+
+#ifndef HAVE_DOS_FILE_NAMES
+# define HAVE_DOS_FILE_NAMES 0
+#endif
+#ifndef HAVE_LONG_FILE_NAMES
+# define HAVE_LONG_FILE_NAMES 0
+#endif
+
+/* ISDIGIT differs from isdigit, as follows:
+ - Its arg may be any int or unsigned int; it need not be an unsigned char
+ or EOF.
+ - It's typically faster.
+ POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to
+ ISDIGIT unless it's important to use the locale's definition
+ of "digit" even when the host does not conform to POSIX. */
+#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
+
+/* The extension added to file names to produce a simple (as opposed
+ to numbered) backup file name. */
+char const *simple_backup_suffix = "~";
+
+
+/* If FILE (which was of length FILELEN before an extension was
+ appended to it) is too long, replace the extension with the single
+ char E. If the result is still too long, remove the char just
+ before E. */
+
+static void
+check_extension (char *file, size_t filelen, char e)
+{
+ char *base = last_component (file);
+ size_t baselen = base_len (base);
+ size_t baselen_max = HAVE_LONG_FILE_NAMES ? 255 : NAME_MAX_MINIMUM;
+
+ if (HAVE_DOS_FILE_NAMES || NAME_MAX_MINIMUM < baselen)
+ {
+ /* The new base name is long enough to require a pathconf check. */
+ long name_max;
+
+ /* Temporarily modify the buffer into its parent directory name,
+ 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;
+ }
+ memcpy (base, tmp, sizeof ".");
+ }
+
+ if (HAVE_DOS_FILE_NAMES && baselen_max <= 12)
+ {
+ /* Live within DOS's 8.3 limit. */
+ char *dot = strchr (base, '.');
+ if (!dot)
+ baselen_max = 8;
+ else
+ {
+ 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;
+ base[baselen] = e;
+ base[baselen + 1] = '\0';
+ }
+}
+
+/* Returned values for NUMBERED_BACKUP. */
+
+enum numbered_backup_result
+ {
+ /* The new backup name is the same length as an existing backup
+ name, so it's valid for that directory. */
+ BACKUP_IS_SAME_LENGTH,
+
+ /* Some backup names already exist, but the returned name is longer
+ than any of them, and its length should be checked. */
+ BACKUP_IS_LONGER,
+
+ /* There are no existing backup names. The new name's length
+ should be checked. */
+ BACKUP_IS_NEW
+ };
+
+/* *BUFFER contains a file name. Store into *BUFFER the next backup
+ name for the named file, with a version number greater than all the
+ existing numbered backups. Reallocate *BUFFER as necessary; its
+ initial allocated size is BUFFER_SIZE, which must be at least 4
+ bytes longer than the file name to make room for the initially
+ appended ".~1". FILELEN is the length of the original file name.
+ The returned value indicates what kind of backup was found. If an
+ I/O or other read error occurs, use the highest backup number that
+ was found. */
+
+static enum numbered_backup_result
+numbered_backup (char **buffer, size_t buffer_size, size_t filelen)
+{
+ enum numbered_backup_result result = BACKUP_IS_NEW;
+ DIR *dirp;
+ struct dirent *dp;
+ char *buf = *buffer;
+ size_t versionlenmax = 1;
+ char *base = last_component (buf);
+ size_t base_offset = base - buf;
+ size_t baselen = base_len (base);
+
+ /* Temporarily modify the buffer into its parent directory name,
+ open the directory, and then restore the buffer. */
+ char tmp[sizeof "."];
+ memcpy (tmp, base, sizeof ".");
+ strcpy (base, ".");
+ dirp = opendir (buf);
+ memcpy (base, tmp, sizeof ".");
+ strcpy (base + baselen, ".~1~");
+
+ if (!dirp)
+ return result;
+
+ while ((dp = readdir (dirp)) != NULL)
+ {
+ char const *p;
+ char *q;
+ bool all_9s;
+ size_t versionlen;
+ size_t new_buflen;
+
+ if (! REAL_DIR_ENTRY (dp) || _D_EXACT_NAMLEN (dp) < baselen + 4)
+ continue;
+
+ if (memcmp (buf + base_offset, dp->d_name, baselen + 2) != 0)
+ 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. */
+
+ if (! ('1' <= *p && *p <= '9'))
+ continue;
+ all_9s = (*p == '9');
+ for (versionlen = 1; ISDIGIT (p[versionlen]); versionlen++)
+ all_9s &= (p[versionlen] == '9');
+
+ if (! (p[versionlen] == '~' && !p[versionlen + 1]
+ && (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. */
+
+ 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;
+ }
+ q = buf + filelen;
+ *q++ = '.';
+ *q++ = '~';
+ *q = '0';
+ q += all_9s;
+ memcpy (q, p, versionlen + 2);
+
+ /* Add 1 to the version number. */
+
+ q += versionlen;
+ while (*--q == '9')
+ *q = '0';
+ ++*q;
+ }
+
+ closedir (dirp);
+ *buffer = buf;
+ return result;
+}
+
+/* Return the name of the new backup file for the existing file FILE,
+ allocated with malloc. Report an error and fail if out of memory.
+ Do not call this function if backup_type == no_backups. */
+
+char *
+find_backup_file_name (char const *file, enum backup_type backup_type)
+{
+ size_t filelen = strlen (file);
+ char *s;
+ size_t ssize;
+ bool simple = true;
+
+ /* Allow room for simple or ".~N~" backups. The guess must be at
+ least sizeof ".~1~", but otherwise will be adjusted as needed. */
+ size_t simple_backup_suffix_size = strlen (simple_backup_suffix) + 1;
+ size_t backup_suffix_size_guess = simple_backup_suffix_size;
+ enum { GUESS = sizeof ".~12345~" };
+ if (backup_suffix_size_guess < GUESS)
+ backup_suffix_size_guess = GUESS;
+
+ ssize = filelen + backup_suffix_size_guess + 1;
+ s = xmalloc (ssize);
+ memcpy (s, file, filelen + 1);
+
+ if (backup_type != simple_backups)
+ switch (numbered_backup (&s, ssize, filelen))
+ {
+ case BACKUP_IS_SAME_LENGTH:
+ return s;
+
+ case BACKUP_IS_LONGER:
+ simple = false;
+ break;
+
+ case BACKUP_IS_NEW:
+ simple = (backup_type == numbered_existing_backups);
+ break;
+ }
+
+ if (simple)
+ memcpy (s + filelen, simple_backup_suffix, simple_backup_suffix_size);
+ check_extension (s, filelen, '~');
+ return s;
+}
+
+static char const * const backup_args[] =
+{
+ /* In a series of synonyms, present the most meaningful first, so
+ that argmatch_valid be more readable. */
+ "none", "off",
+ "simple", "never",
+ "existing", "nil",
+ "numbered", "t",
+ NULL
+};
+
+static const enum backup_type backup_types[] =
+{
+ no_backups, no_backups,
+ simple_backups, simple_backups,
+ numbered_existing_backups, numbered_existing_backups,
+ numbered_backups, numbered_backups
+};
+
+/* Ensure that these two vectors have the same number of elements,
+ not counting the final NULL in the first one. */
+ARGMATCH_VERIFY (backup_args, backup_types);
+
+/* Return the type of backup specified by VERSION.
+ If VERSION is NULL or the empty string, return numbered_existing_backups.
+ If VERSION is invalid or ambiguous, fail with a diagnostic appropriate
+ for the specified CONTEXT. Unambiguous abbreviations are accepted. */
+
+enum backup_type
+get_version (char const *context, char const *version)
+{
+ if (version == 0 || *version == 0)
+ return numbered_existing_backups;
+ else
+ return XARGMATCH (context, version, backup_args, backup_types);
+}
+
+
+/* Return the type of backup specified by VERSION.
+ If VERSION is NULL, use the value of the envvar VERSION_CONTROL.
+ If the specified string is invalid or ambiguous, fail with a diagnostic
+ appropriate for the specified CONTEXT.
+ Unambiguous abbreviations are accepted. */
+
+enum backup_type
+xget_version (char const *context, char const *version)
+{
+ if (version && *version)
+ return get_version (context, version);
+ else
+ return get_version ("$VERSION_CONTROL", getenv ("VERSION_CONTROL"));
+}
diff --git a/gnu/backupfile.h b/gnu/backupfile.h
new file mode 100644
index 00000000..6ff35a8d
--- /dev/null
+++ b/gnu/backupfile.h
@@ -0,0 +1,61 @@
+/* -*- 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-1992, 1997-1999, 2003-2004, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 BACKUPFILE_H_
+# define BACKUPFILE_H_
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+
+/* When to make backup files. */
+enum backup_type
+{
+ /* Never make backups. */
+ no_backups,
+
+ /* Make simple backups of every file. */
+ simple_backups,
+
+ /* Make numbered backups of files that already have numbered backups,
+ and simple backups of the others. */
+ numbered_existing_backups,
+
+ /* Make numbered backups of every file. */
+ numbered_backups
+};
+
+# define VALID_BACKUP_TYPE(Type) \
+ ((unsigned int) (Type) <= numbered_backups)
+
+extern char const *simple_backup_suffix;
+
+char *find_backup_file_name (char const *, enum backup_type);
+enum backup_type get_version (char const *context, char const *arg);
+enum backup_type xget_version (char const *context, char const *arg);
+void addext (char *, char const *, int);
+
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif /* ! BACKUPFILE_H_ */
diff --git a/gnu/basename-lgpl.c b/gnu/basename-lgpl.c
new file mode 100644
index 00000000..e81ea6a7
--- /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-2012 Free Software
+ Foundation, Inc.
+
+ This 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 00000000..c516bea3
--- /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-2012 Free Software
+ Foundation, Inc.
+
+ This 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 00000000..0fa07b0a
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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/gnu/btowc.c b/gnu/btowc.c
new file mode 100644
index 00000000..02f1907a
--- /dev/null
+++ b/gnu/btowc.c
@@ -0,0 +1,41 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Convert unibyte character to wide character.
+ Copyright (C) 2008, 2010-2012 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 <stdio.h>
+#include <stdlib.h>
+
+wint_t
+btowc (int c)
+{
+ if (c != EOF)
+ {
+ char buf[1];
+ wchar_t wc;
+
+ buf[0] = c;
+ if (mbtowc (&wc, buf, 1) >= 0)
+ return wc;
+ }
+ return WEOF;
+}
diff --git a/gnu/c-ctype.c b/gnu/c-ctype.c
new file mode 100644
index 00000000..cd935a39
--- /dev/null
+++ b/gnu/c-ctype.c
@@ -0,0 +1,398 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Character handling in C locale.
+
+ Copyright 2000-2003, 2006, 2009-2012 Free Software Foundation, Inc.
+
+This 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, write to the Free Software Foundation,
+Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#include <config.h>
+
+/* Specification. */
+#define NO_C_CTYPE_MACROS
+#include "c-ctype.h"
+
+/* The function isascii is not locale dependent. Its use in EBCDIC is
+ questionable. */
+bool
+c_isascii (int c)
+{
+ return (c >= 0x00 && c <= 0x7f);
+}
+
+bool
+c_isalnum (int c)
+{
+#if C_CTYPE_CONSECUTIVE_DIGITS \
+ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+ return ((c >= '0' && c <= '9')
+ || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z'));
+#else
+ return ((c >= '0' && c <= '9')
+ || (c >= 'A' && c <= 'Z')
+ || (c >= 'a' && c <= 'z'));
+#endif
+#else
+ switch (c)
+ {
+ case '0': case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ 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 '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':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isalpha (int c)
+{
+#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+ return ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z');
+#else
+ return ((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'));
+#endif
+#else
+ switch (c)
+ {
+ 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 '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':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isblank (int c)
+{
+ return (c == ' ' || c == '\t');
+}
+
+bool
+c_iscntrl (int c)
+{
+#if C_CTYPE_ASCII
+ return ((c & ~0x1f) == 0 || c == 0x7f);
+#else
+ switch (c)
+ {
+ case ' ': case '!': case '"': case '#': case '$': case '%':
+ case '&': case '\'': case '(': case ')': 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 ';': case '<': case '=': case '>': 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':
+ case '[': case '\\': case ']': case '^': 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':
+ case '{': case '|': case '}': case '~':
+ return 0;
+ default:
+ return 1;
+ }
+#endif
+}
+
+bool
+c_isdigit (int c)
+{
+#if C_CTYPE_CONSECUTIVE_DIGITS
+ return (c >= '0' && c <= '9');
+#else
+ switch (c)
+ {
+ case '0': case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_islower (int c)
+{
+#if C_CTYPE_CONSECUTIVE_LOWERCASE
+ return (c >= 'a' && c <= 'z');
+#else
+ switch (c)
+ {
+ 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':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isgraph (int c)
+{
+#if C_CTYPE_ASCII
+ return (c >= '!' && c <= '~');
+#else
+ switch (c)
+ {
+ case '!': case '"': case '#': case '$': case '%': case '&':
+ case '\'': case '(': case ')': 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 ';': case '<': case '=': case '>': 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':
+ case '[': case '\\': case ']': case '^': 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':
+ case '{': case '|': case '}': case '~':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isprint (int c)
+{
+#if C_CTYPE_ASCII
+ return (c >= ' ' && c <= '~');
+#else
+ switch (c)
+ {
+ case ' ': case '!': case '"': case '#': case '$': case '%':
+ case '&': case '\'': case '(': case ')': 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 ';': case '<': case '=': case '>': 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':
+ case '[': case '\\': case ']': case '^': 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':
+ case '{': case '|': case '}': case '~':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_ispunct (int c)
+{
+#if C_CTYPE_ASCII
+ return ((c >= '!' && c <= '~')
+ && !((c >= '0' && c <= '9')
+ || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'Z')));
+#else
+ switch (c)
+ {
+ case '!': case '"': case '#': case '$': case '%': case '&':
+ case '\'': case '(': case ')': case '*': case '+': case ',':
+ case '-': case '.': case '/':
+ case ':': case ';': case '<': case '=': case '>': case '?':
+ case '@':
+ case '[': case '\\': case ']': case '^': case '_': case '`':
+ case '{': case '|': case '}': case '~':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isspace (int c)
+{
+ return (c == ' ' || c == '\t'
+ || c == '\n' || c == '\v' || c == '\f' || c == '\r');
+}
+
+bool
+c_isupper (int c)
+{
+#if C_CTYPE_CONSECUTIVE_UPPERCASE
+ return (c >= 'A' && c <= 'Z');
+#else
+ switch (c)
+ {
+ 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':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+bool
+c_isxdigit (int c)
+{
+#if C_CTYPE_CONSECUTIVE_DIGITS \
+ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+ return ((c >= '0' && c <= '9')
+ || ((c & ~0x20) >= 'A' && (c & ~0x20) <= 'F'));
+#else
+ return ((c >= '0' && c <= '9')
+ || (c >= 'A' && c <= 'F')
+ || (c >= 'a' && c <= 'f'));
+#endif
+#else
+ switch (c)
+ {
+ case '0': case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
+ case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
+ return 1;
+ default:
+ return 0;
+ }
+#endif
+}
+
+int
+c_tolower (int c)
+{
+#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+ return (c >= 'A' && c <= 'Z' ? c - 'A' + 'a' : c);
+#else
+ switch (c)
+ {
+ case 'A': return 'a';
+ case 'B': return 'b';
+ case 'C': return 'c';
+ case 'D': return 'd';
+ case 'E': return 'e';
+ case 'F': return 'f';
+ case 'G': return 'g';
+ case 'H': return 'h';
+ case 'I': return 'i';
+ case 'J': return 'j';
+ case 'K': return 'k';
+ case 'L': return 'l';
+ case 'M': return 'm';
+ case 'N': return 'n';
+ case 'O': return 'o';
+ case 'P': return 'p';
+ case 'Q': return 'q';
+ case 'R': return 'r';
+ case 'S': return 's';
+ case 'T': return 't';
+ case 'U': return 'u';
+ case 'V': return 'v';
+ case 'W': return 'w';
+ case 'X': return 'x';
+ case 'Y': return 'y';
+ case 'Z': return 'z';
+ default: return c;
+ }
+#endif
+}
+
+int
+c_toupper (int c)
+{
+#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+ return (c >= 'a' && c <= 'z' ? c - 'a' + 'A' : c);
+#else
+ switch (c)
+ {
+ case 'a': return 'A';
+ case 'b': return 'B';
+ case 'c': return 'C';
+ case 'd': return 'D';
+ case 'e': return 'E';
+ case 'f': return 'F';
+ case 'g': return 'G';
+ case 'h': return 'H';
+ case 'i': return 'I';
+ case 'j': return 'J';
+ case 'k': return 'K';
+ case 'l': return 'L';
+ case 'm': return 'M';
+ case 'n': return 'N';
+ case 'o': return 'O';
+ case 'p': return 'P';
+ case 'q': return 'Q';
+ case 'r': return 'R';
+ case 's': return 'S';
+ case 't': return 'T';
+ case 'u': return 'U';
+ case 'v': return 'V';
+ case 'w': return 'W';
+ case 'x': return 'X';
+ case 'y': return 'Y';
+ case 'z': return 'Z';
+ default: return c;
+ }
+#endif
+}
diff --git a/gnu/c-ctype.h b/gnu/c-ctype.h
new file mode 100644
index 00000000..e33c606e
--- /dev/null
+++ b/gnu/c-ctype.h
@@ -0,0 +1,297 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Character handling in C locale.
+
+ These functions work like the corresponding functions in <ctype.h>,
+ except that they have the C (POSIX) locale hardwired, whereas the
+ <ctype.h> functions' behaviour depends on the current locale set via
+ setlocale.
+
+ Copyright (C) 2000-2003, 2006, 2008-2012 Free Software Foundation, Inc.
+
+This 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, write to the Free Software Foundation,
+Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef C_CTYPE_H
+#define C_CTYPE_H
+
+#include <stdbool.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* The functions defined in this file assume the "C" locale and a character
+ set without diacritics (ASCII-US or EBCDIC-US or something like that).
+ Even if the "C" locale on a particular system is an extension of the ASCII
+ character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it
+ is ISO-8859-1), the functions in this file recognize only the ASCII
+ characters. */
+
+
+/* Check whether the ASCII optimizations apply. */
+
+/* ANSI C89 (and ISO C99 5.2.1.3 too) already guarantees that
+ '0', '1', ..., '9' have consecutive integer values. */
+#define C_CTYPE_CONSECUTIVE_DIGITS 1
+
+#if ('A' <= 'Z') \
+ && ('A' + 1 == 'B') && ('B' + 1 == 'C') && ('C' + 1 == 'D') \
+ && ('D' + 1 == 'E') && ('E' + 1 == 'F') && ('F' + 1 == 'G') \
+ && ('G' + 1 == 'H') && ('H' + 1 == 'I') && ('I' + 1 == 'J') \
+ && ('J' + 1 == 'K') && ('K' + 1 == 'L') && ('L' + 1 == 'M') \
+ && ('M' + 1 == 'N') && ('N' + 1 == 'O') && ('O' + 1 == 'P') \
+ && ('P' + 1 == 'Q') && ('Q' + 1 == 'R') && ('R' + 1 == 'S') \
+ && ('S' + 1 == 'T') && ('T' + 1 == 'U') && ('U' + 1 == 'V') \
+ && ('V' + 1 == 'W') && ('W' + 1 == 'X') && ('X' + 1 == 'Y') \
+ && ('Y' + 1 == 'Z')
+#define C_CTYPE_CONSECUTIVE_UPPERCASE 1
+#endif
+
+#if ('a' <= 'z') \
+ && ('a' + 1 == 'b') && ('b' + 1 == 'c') && ('c' + 1 == 'd') \
+ && ('d' + 1 == 'e') && ('e' + 1 == 'f') && ('f' + 1 == 'g') \
+ && ('g' + 1 == 'h') && ('h' + 1 == 'i') && ('i' + 1 == 'j') \
+ && ('j' + 1 == 'k') && ('k' + 1 == 'l') && ('l' + 1 == 'm') \
+ && ('m' + 1 == 'n') && ('n' + 1 == 'o') && ('o' + 1 == 'p') \
+ && ('p' + 1 == 'q') && ('q' + 1 == 'r') && ('r' + 1 == 's') \
+ && ('s' + 1 == 't') && ('t' + 1 == 'u') && ('u' + 1 == 'v') \
+ && ('v' + 1 == 'w') && ('w' + 1 == 'x') && ('x' + 1 == 'y') \
+ && ('y' + 1 == 'z')
+#define C_CTYPE_CONSECUTIVE_LOWERCASE 1
+#endif
+
+#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
+/* The character set is ASCII or one of its variants or extensions, not EBCDIC.
+ Testing the value of '\n' and '\r' is not relevant. */
+#define C_CTYPE_ASCII 1
+#endif
+
+
+/* Function declarations. */
+
+/* Unlike the functions in <ctype.h>, which require an argument in the range
+ of the 'unsigned char' type, the functions here operate on values that are
+ in the 'unsigned char' range or in the 'char' range. In other words,
+ when you have a 'char' value, you need to cast it before using it as
+ argument to a <ctype.h> function:
+
+ const char *s = ...;
+ if (isalpha ((unsigned char) *s)) ...
+
+ but you don't need to cast it for the functions defined in this file:
+
+ const char *s = ...;
+ if (c_isalpha (*s)) ...
+ */
+
+extern bool c_isascii (int c) _GL_ATTRIBUTE_CONST; /* not locale dependent */
+
+extern bool c_isalnum (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isalpha (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isblank (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_iscntrl (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isdigit (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_islower (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isgraph (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isprint (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_ispunct (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isspace (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isupper (int c) _GL_ATTRIBUTE_CONST;
+extern bool c_isxdigit (int c) _GL_ATTRIBUTE_CONST;
+
+extern int c_tolower (int c) _GL_ATTRIBUTE_CONST;
+extern int c_toupper (int c) _GL_ATTRIBUTE_CONST;
+
+
+#if defined __GNUC__ && defined __OPTIMIZE__ && !defined __OPTIMIZE_SIZE__ && !defined NO_C_CTYPE_MACROS
+
+/* ASCII optimizations. */
+
+#undef c_isascii
+#define c_isascii(c) \
+ ({ int __c = (c); \
+ (__c >= 0x00 && __c <= 0x7f); \
+ })
+
+#if C_CTYPE_CONSECUTIVE_DIGITS \
+ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+#undef c_isalnum
+#define c_isalnum(c) \
+ ({ int __c = (c); \
+ ((__c >= '0' && __c <= '9') \
+ || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z')); \
+ })
+#else
+#undef c_isalnum
+#define c_isalnum(c) \
+ ({ int __c = (c); \
+ ((__c >= '0' && __c <= '9') \
+ || (__c >= 'A' && __c <= 'Z') \
+ || (__c >= 'a' && __c <= 'z')); \
+ })
+#endif
+#endif
+
+#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+#undef c_isalpha
+#define c_isalpha(c) \
+ ({ int __c = (c); \
+ ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'Z'); \
+ })
+#else
+#undef c_isalpha
+#define c_isalpha(c) \
+ ({ int __c = (c); \
+ ((__c >= 'A' && __c <= 'Z') || (__c >= 'a' && __c <= 'z')); \
+ })
+#endif
+#endif
+
+#undef c_isblank
+#define c_isblank(c) \
+ ({ int __c = (c); \
+ (__c == ' ' || __c == '\t'); \
+ })
+
+#if C_CTYPE_ASCII
+#undef c_iscntrl
+#define c_iscntrl(c) \
+ ({ int __c = (c); \
+ ((__c & ~0x1f) == 0 || __c == 0x7f); \
+ })
+#endif
+
+#if C_CTYPE_CONSECUTIVE_DIGITS
+#undef c_isdigit
+#define c_isdigit(c) \
+ ({ int __c = (c); \
+ (__c >= '0' && __c <= '9'); \
+ })
+#endif
+
+#if C_CTYPE_CONSECUTIVE_LOWERCASE
+#undef c_islower
+#define c_islower(c) \
+ ({ int __c = (c); \
+ (__c >= 'a' && __c <= 'z'); \
+ })
+#endif
+
+#if C_CTYPE_ASCII
+#undef c_isgraph
+#define c_isgraph(c) \
+ ({ int __c = (c); \
+ (__c >= '!' && __c <= '~'); \
+ })
+#endif
+
+#if C_CTYPE_ASCII
+#undef c_isprint
+#define c_isprint(c) \
+ ({ int __c = (c); \
+ (__c >= ' ' && __c <= '~'); \
+ })
+#endif
+
+#if C_CTYPE_ASCII
+#undef c_ispunct
+#define c_ispunct(c) \
+ ({ int _c = (c); \
+ (c_isgraph (_c) && ! c_isalnum (_c)); \
+ })
+#endif
+
+#undef c_isspace
+#define c_isspace(c) \
+ ({ int __c = (c); \
+ (__c == ' ' || __c == '\t' \
+ || __c == '\n' || __c == '\v' || __c == '\f' || __c == '\r'); \
+ })
+
+#if C_CTYPE_CONSECUTIVE_UPPERCASE
+#undef c_isupper
+#define c_isupper(c) \
+ ({ int __c = (c); \
+ (__c >= 'A' && __c <= 'Z'); \
+ })
+#endif
+
+#if C_CTYPE_CONSECUTIVE_DIGITS \
+ && C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#if C_CTYPE_ASCII
+#undef c_isxdigit
+#define c_isxdigit(c) \
+ ({ int __c = (c); \
+ ((__c >= '0' && __c <= '9') \
+ || ((__c & ~0x20) >= 'A' && (__c & ~0x20) <= 'F')); \
+ })
+#else
+#undef c_isxdigit
+#define c_isxdigit(c) \
+ ({ int __c = (c); \
+ ((__c >= '0' && __c <= '9') \
+ || (__c >= 'A' && __c <= 'F') \
+ || (__c >= 'a' && __c <= 'f')); \
+ })
+#endif
+#endif
+
+#if C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+#undef c_tolower
+#define c_tolower(c) \
+ ({ int __c = (c); \
+ (__c >= 'A' && __c <= 'Z' ? __c - 'A' + 'a' : __c); \
+ })
+#undef c_toupper
+#define c_toupper(c) \
+ ({ int __c = (c); \
+ (__c >= 'a' && __c <= 'z' ? __c - 'a' + 'A' : __c); \
+ })
+#endif
+
+#endif /* optimizing for speed */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* C_CTYPE_H */
diff --git a/gnu/c-strcase.h b/gnu/c-strcase.h
new file mode 100644
index 00000000..1383a8b4
--- /dev/null
+++ b/gnu/c-strcase.h
@@ -0,0 +1,59 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Case-insensitive string comparison functions in C locale.
+ Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 C_STRCASE_H
+#define C_STRCASE_H
+
+#include <stddef.h>
+
+
+/* The functions defined in this file assume the "C" locale and a character
+ set without diacritics (ASCII-US or EBCDIC-US or something like that).
+ Even if the "C" locale on a particular system is an extension of the ASCII
+ character set (like on BeOS, where it is UTF-8, or on AmigaOS, where it
+ is ISO-8859-1), the functions in this file recognize only the ASCII
+ characters. More precisely, one of the string arguments must be an ASCII
+ string; the other one can also contain non-ASCII characters (but then
+ the comparison result will be nonzero). */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Compare 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. */
+extern int c_strcasecmp (const char *s1, const char *s2) _GL_ATTRIBUTE_PURE;
+
+/* Compare no more than N characters of 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. */
+extern int c_strncasecmp (const char *s1, const char *s2, size_t n)
+ _GL_ATTRIBUTE_PURE;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* C_STRCASE_H */
diff --git a/gnu/c-strcasecmp.c b/gnu/c-strcasecmp.c
new file mode 100644
index 00000000..028e5f82
--- /dev/null
+++ b/gnu/c-strcasecmp.c
@@ -0,0 +1,59 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* c-strcasecmp.c -- case insensitive string comparator in C locale
+ Copyright (C) 1998-1999, 2005-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#include "c-strcase.h"
+
+#include <limits.h>
+
+#include "c-ctype.h"
+
+int
+c_strcasecmp (const char *s1, const char *s2)
+{
+ register const unsigned char *p1 = (const unsigned char *) s1;
+ register const unsigned char *p2 = (const unsigned char *) s2;
+ unsigned char c1, c2;
+
+ if (p1 == p2)
+ return 0;
+
+ do
+ {
+ c1 = c_tolower (*p1);
+ c2 = c_tolower (*p2);
+
+ if (c1 == '\0')
+ break;
+
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ if (UCHAR_MAX <= INT_MAX)
+ 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);
+}
diff --git a/gnu/c-strcaseeq.h b/gnu/c-strcaseeq.h
new file mode 100644
index 00000000..17e6f042
--- /dev/null
+++ b/gnu/c-strcaseeq.h
@@ -0,0 +1,186 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Optimized case-insensitive string comparison in C locale.
+ Copyright (C) 2001-2002, 2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Bruno Haible <bruno@clisp.org>. */
+
+#include "c-strcase.h"
+#include "c-ctype.h"
+
+/* STRCASEEQ allows to optimize string comparison with a small literal string.
+ STRCASEEQ (s, "UTF-8", 'U','T','F','-','8',0,0,0,0)
+ is semantically equivalent to
+ c_strcasecmp (s, "UTF-8") == 0
+ just faster. */
+
+/* Help GCC to generate good code for string comparisons with
+ immediate strings. */
+#if defined (__GNUC__) && defined (__OPTIMIZE__)
+
+/* Case insensitive comparison of ASCII characters. */
+# if C_CTYPE_ASCII
+# define CASEEQ(other,upper) \
+ (c_isupper (upper) ? ((other) & ~0x20) == (upper) : (other) == (upper))
+# elif C_CTYPE_CONSECUTIVE_UPPERCASE && C_CTYPE_CONSECUTIVE_LOWERCASE
+# define CASEEQ(other,upper) \
+ (c_isupper (upper) ? (other) == (upper) || (other) == (upper) - 'A' + 'a' : (other) == (upper))
+# else
+# define CASEEQ(other,upper) \
+ (c_toupper (other) == (upper))
+# endif
+
+static inline int
+strcaseeq9 (const char *s1, const char *s2)
+{
+ return c_strcasecmp (s1 + 9, s2 + 9) == 0;
+}
+
+static inline int
+strcaseeq8 (const char *s1, const char *s2, char s28)
+{
+ if (CASEEQ (s1[8], s28))
+ {
+ if (s28 == 0)
+ return 1;
+ else
+ return strcaseeq9 (s1, s2);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq7 (const char *s1, const char *s2, char s27, char s28)
+{
+ if (CASEEQ (s1[7], s27))
+ {
+ if (s27 == 0)
+ return 1;
+ else
+ return strcaseeq8 (s1, s2, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq6 (const char *s1, const char *s2, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[6], s26))
+ {
+ if (s26 == 0)
+ return 1;
+ else
+ return strcaseeq7 (s1, s2, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[5], s25))
+ {
+ if (s25 == 0)
+ return 1;
+ else
+ return strcaseeq6 (s1, s2, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[4], s24))
+ {
+ if (s24 == 0)
+ return 1;
+ else
+ return strcaseeq5 (s1, s2, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[3], s23))
+ {
+ if (s23 == 0)
+ return 1;
+ else
+ return strcaseeq4 (s1, s2, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[2], s22))
+ {
+ if (s22 == 0)
+ return 1;
+ else
+ return strcaseeq3 (s1, s2, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[1], s21))
+ {
+ if (s21 == 0)
+ return 1;
+ else
+ return strcaseeq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+strcaseeq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (CASEEQ (s1[0], s20))
+ {
+ if (s20 == 0)
+ return 1;
+ else
+ return strcaseeq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+#define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+ strcaseeq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28)
+
+#else
+
+#define STRCASEEQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+ (c_strcasecmp (s1, s2) == 0)
+
+#endif
diff --git a/gnu/c-strncasecmp.c b/gnu/c-strncasecmp.c
new file mode 100644
index 00000000..f974cdf8
--- /dev/null
+++ b/gnu/c-strncasecmp.c
@@ -0,0 +1,59 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* c-strncasecmp.c -- case insensitive string comparator in C locale
+ Copyright (C) 1998-1999, 2005-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#include "c-strcase.h"
+
+#include <limits.h>
+
+#include "c-ctype.h"
+
+int
+c_strncasecmp (const char *s1, const char *s2, size_t n)
+{
+ register const unsigned char *p1 = (const unsigned char *) s1;
+ register const unsigned char *p2 = (const unsigned char *) s2;
+ unsigned char c1, c2;
+
+ if (p1 == p2 || n == 0)
+ return 0;
+
+ do
+ {
+ c1 = c_tolower (*p1);
+ c2 = c_tolower (*p2);
+
+ if (--n == 0 || c1 == '\0')
+ break;
+
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ if (UCHAR_MAX <= INT_MAX)
+ 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);
+}
diff --git a/gnu/canonicalize-lgpl.c b/gnu/canonicalize-lgpl.c
new file mode 100644
index 00000000..7a2cc03b
--- /dev/null
+++ b/gnu/canonicalize-lgpl.c
@@ -0,0 +1,380 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Return the canonical absolute name of a given file.
+ Copyright (C) 1996-2012 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
+# define _GL_USE_STDLIB_ALLOC 1
+# include <config.h>
+#endif
+
+#if !HAVE_CANONICALIZE_FILE_NAME || !FUNC_REALPATH_WORKS || defined _LIBC
+
+/* 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>
+
+#include <alloca.h>
+#include <string.h>
+#include <unistd.h>
+#include <limits.h>
+#if HAVE_SYS_PARAM_H || defined _LIBC
+# include <sys/param.h>
+#endif
+#include <sys/stat.h>
+#include <errno.h>
+#include <stddef.h>
+
+#ifdef _LIBC
+# include <shlib-compat.h>
+#else
+# define SHLIB_COMPAT(lib, introduced, obsoleted) 0
+# define versioned_symbol(lib, local, symbol, version) extern int dummy
+# define compat_symbol(lib, local, symbol, version)
+# define weak_alias(local, symbol)
+# define __canonicalize_file_name canonicalize_file_name
+# define __realpath realpath
+# include "pathmax.h"
+# include "malloca.h"
+# if HAVE_GETCWD
+# if IN_RELOCWRAPPER
+ /* When building the relocatable program wrapper, use the system's getcwd
+ function, not the gnulib override, otherwise we would get a link error.
+ */
+# undef getcwd
+# endif
+# 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
+# define __set_errno(e) errno = (e)
+# ifndef MAXSYMLINKS
+# ifdef SYMLOOP_MAX
+# define MAXSYMLINKS SYMLOOP_MAX
+# else
+# define MAXSYMLINKS 20
+# endif
+# endif
+#endif
+
+#ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT
+# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0
+#endif
+
+#if !FUNC_REALPATH_WORKS || defined _LIBC
+/* 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;
+ int num_links = 0;
+
+ 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 = 8192;
+#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;
+ if (DOUBLE_SLASH_IS_DISTINCT_ROOT && name[1] == '/')
+ *dest++ = '/';
+ }
+
+ for (start = end = name; *start; start = end)
+ {
+#ifdef _LIBC
+ struct stat64 st;
+#else
+ struct stat st;
+#endif
+ int n;
+
+ /* 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] != '/');
+ if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1
+ && *dest == '/')
+ dest++;
+ }
+ 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 (S_ISLNK (st.st_mode))
+ {
+ char *buf;
+ size_t len;
+
+ 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 */
+ if (DOUBLE_SLASH_IS_DISTINCT_ROOT && buf[1] == '/')
+ *dest++ = '/';
+ }
+ else
+ {
+ /* Back up to previous component, ignore if at root
+ already: */
+ if (dest > rpath + 1)
+ while ((--dest)[-1] != '/');
+ if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1
+ && *dest == '/')
+ dest++;
+ }
+ }
+ else if (!S_ISDIR (st.st_mode) && *end != '\0')
+ {
+ __set_errno (ENOTDIR);
+ goto error;
+ }
+ }
+ }
+ if (dest > rpath + 1 && dest[-1] == '/')
+ --dest;
+ if (DOUBLE_SLASH_IS_DISTINCT_ROOT && dest == rpath + 1 && *dest == '/')
+ dest++;
+ *dest = '\0';
+
+ if (extra_buf)
+ freea (extra_buf);
+
+ return rpath;
+
+error:
+ {
+ int saved_errno = errno;
+ if (extra_buf)
+ freea (extra_buf);
+ if (resolved == NULL)
+ free (rpath);
+ errno = saved_errno;
+ }
+ return NULL;
+}
+versioned_symbol (libc, __realpath, realpath, GLIBC_2_3);
+#endif /* !FUNC_REALPATH_WORKS || defined _LIBC */
+
+
+#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3)
+char *
+attribute_compat_text_section
+__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/gnu/careadlinkat.c b/gnu/careadlinkat.c
new file mode 100644
index 00000000..0d31614b
--- /dev/null
+++ b/gnu/careadlinkat.c
@@ -0,0 +1,177 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Read symbolic links into a buffer without size limitation, relative to fd.
+
+ Copyright (C) 2001, 2003-2004, 2007, 2009-2012 Free Software Foundation,
+ Inc.
+
+ This 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, Bruno Haible, and Jim Meyering. */
+
+#include <config.h>
+
+#include "careadlinkat.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+/* Define this independently so that stdint.h is not a prerequisite. */
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+#ifndef SSIZE_MAX
+# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
+#endif
+
+#include "allocator.h"
+
+/* Get the symbolic link value of FILENAME and put it into BUFFER, with
+ size BUFFER_SIZE. This function acts like readlink but has
+ readlinkat's signature. */
+ssize_t
+careadlinkatcwd (int fd, char const *filename, char *buffer,
+ size_t buffer_size)
+{
+ /* FD must be AT_FDCWD here, otherwise the caller is using this
+ function in contexts for which it was not meant for. */
+ if (fd != AT_FDCWD)
+ abort ();
+ return readlink (filename, buffer, buffer_size);
+}
+
+/* Assuming the current directory is FD, get the symbolic link value
+ of FILENAME as a null-terminated string and put it into a buffer.
+ If FD is AT_FDCWD, FILENAME is interpreted relative to the current
+ working directory, as in openat.
+
+ If the link is small enough to fit into BUFFER put it there.
+ BUFFER's size is BUFFER_SIZE, and BUFFER can be null
+ if BUFFER_SIZE is zero.
+
+ If the link is not small, put it into a dynamically allocated
+ buffer managed by ALLOC. It is the caller's responsibility to free
+ the returned value if it is nonnull and is not BUFFER. A null
+ ALLOC stands for the standard allocator.
+
+ The PREADLINKAT function specifies how to read links. It operates
+ like POSIX readlinkat()
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>
+ but can assume that its first argument is the same as FD.
+
+ If successful, return the buffer address; otherwise return NULL and
+ set errno. */
+
+char *
+careadlinkat (int fd, char const *filename,
+ char *buffer, size_t buffer_size,
+ struct allocator const *alloc,
+ ssize_t (*preadlinkat) (int, char const *, char *, size_t))
+{
+ char *buf;
+ size_t buf_size;
+ size_t buf_size_max =
+ SSIZE_MAX < SIZE_MAX ? (size_t) SSIZE_MAX + 1 : SIZE_MAX;
+ char stack_buf[1024];
+
+ if (! alloc)
+ alloc = &stdlib_allocator;
+
+ if (! buffer_size)
+ {
+ /* Allocate the initial buffer on the stack. This way, in the
+ common case of a symlink of small size, we get away with a
+ single small malloc() instead of a big malloc() followed by a
+ shrinking realloc(). */
+ buffer = stack_buf;
+ buffer_size = sizeof stack_buf;
+ }
+
+ buf = buffer;
+ buf_size = buffer_size;
+
+ do
+ {
+ /* Attempt to read the link into the current buffer. */
+ ssize_t link_length = preadlinkat (fd, filename, buf, buf_size);
+ size_t link_size;
+ if (link_length < 0)
+ {
+ /* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1
+ with errno == ERANGE if the buffer is too small. */
+ int readlinkat_errno = errno;
+ if (readlinkat_errno != ERANGE)
+ {
+ if (buf != buffer)
+ {
+ alloc->free (buf);
+ errno = readlinkat_errno;
+ }
+ return NULL;
+ }
+ }
+
+ link_size = link_length;
+
+ if (link_size < buf_size)
+ {
+ buf[link_size++] = '\0';
+
+ if (buf == stack_buf)
+ {
+ char *b = (char *) alloc->allocate (link_size);
+ buf_size = link_size;
+ if (! b)
+ break;
+ memcpy (b, buf, link_size);
+ buf = b;
+ }
+ else if (link_size < buf_size && buf != buffer && alloc->reallocate)
+ {
+ /* Shrink BUF before returning it. */
+ char *b = (char *) alloc->reallocate (buf, link_size);
+ if (b)
+ buf = b;
+ }
+
+ return buf;
+ }
+
+ if (buf != buffer)
+ alloc->free (buf);
+
+ if (buf_size <= buf_size_max / 2)
+ buf_size *= 2;
+ else if (buf_size < buf_size_max)
+ buf_size = buf_size_max;
+ else if (buf_size_max < SIZE_MAX)
+ {
+ errno = ENAMETOOLONG;
+ return NULL;
+ }
+ else
+ break;
+ buf = (char *) alloc->allocate (buf_size);
+ }
+ while (buf);
+
+ if (alloc->die)
+ alloc->die (buf_size);
+ errno = ENOMEM;
+ return NULL;
+}
diff --git a/gnu/careadlinkat.h b/gnu/careadlinkat.h
new file mode 100644
index 00000000..7edd6dbf
--- /dev/null
+++ b/gnu/careadlinkat.h
@@ -0,0 +1,74 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Read symbolic links into a buffer without size limitation, relative to fd.
+
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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, Bruno Haible, and Jim Meyering. */
+
+#ifndef _GL_CAREADLINKAT_H
+#define _GL_CAREADLINKAT_H
+
+#include <fcntl.h>
+#include <unistd.h>
+
+struct allocator;
+
+/* Assuming the current directory is FD, get the symbolic link value
+ of FILENAME as a null-terminated string and put it into a buffer.
+ If FD is AT_FDCWD, FILENAME is interpreted relative to the current
+ working directory, as in openat.
+
+ If the link is small enough to fit into BUFFER put it there.
+ BUFFER's size is BUFFER_SIZE, and BUFFER can be null
+ if BUFFER_SIZE is zero.
+
+ If the link is not small, put it into a dynamically allocated
+ buffer managed by ALLOC. It is the caller's responsibility to free
+ the returned value if it is nonnull and is not BUFFER.
+
+ The PREADLINKAT function specifies how to read links. It operates
+ like POSIX readlinkat()
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/readlink.html>
+ but can assume that its first argument is the same as FD.
+
+ If successful, return the buffer address; otherwise return NULL and
+ set errno. */
+
+char *careadlinkat (int fd, char const *filename,
+ char *buffer, size_t buffer_size,
+ struct allocator const *alloc,
+ ssize_t (*preadlinkat) (int, char const *,
+ char *, size_t));
+
+/* Suitable values for careadlinkat's FD and PREADLINKAT arguments,
+ when doing a plain readlink:
+ Pass FD = AT_FDCWD and PREADLINKAT = careadlinkatcwd. */
+#if HAVE_READLINKAT
+/* AT_FDCWD is declared in <fcntl.h>. */
+#else
+/* Define AT_FDCWD independently, so that the careadlinkat module does
+ not depend on the fcntl-h module. The value does not matter, since
+ careadlinkatcwd ignores it, but we might as well use the same value
+ as fcntl-h. */
+# ifndef AT_FDCWD
+# define AT_FDCWD (-3041965)
+# endif
+#endif
+ssize_t careadlinkatcwd (int fd, char const *filename,
+ char *buffer, size_t buffer_size);
+
+#endif /* _GL_CAREADLINKAT_H */
diff --git a/gnu/chdir-long.c b/gnu/chdir-long.c
new file mode 100644
index 00000000..0517b6c2
--- /dev/null
+++ b/gnu/chdir-long.c
@@ -0,0 +1,268 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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 "chdir-long.h"
+
+#include <assert.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+#include <stdio.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;
+};
+
+static inline void
+cdb_init (struct cd_buf *cdb)
+{
+ cdb->fd = AT_FDCWD;
+}
+
+static inline int
+cdb_fchdir (struct cd_buf const *cdb)
+{
+ return fchdir (cdb->fd);
+}
+
+static inline void
+cdb_free (struct cd_buf const *cdb)
+{
+ if (0 <= cdb->fd)
+ {
+ bool close_fail = close (cdb->fd);
+ assert (! close_fail);
+ }
+}
+
+/* Given a file descriptor of an open directory (or AT_FDCWD), CDB->fd,
+ try to open the CDB->fd-relative directory, DIR. If the open succeeds,
+ update CDB->fd with the resulting descriptor, close the incoming file
+ descriptor, and return zero. Upon failure, return -1 and set errno. */
+static int
+cdb_advance_fd (struct cd_buf *cdb, char const *dir)
+{
+ int new_fd = openat (cdb->fd, dir,
+ O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK);
+ if (new_fd < 0)
+ return -1;
+
+ cdb_free (cdb);
+ cdb->fd = new_fd;
+
+ return 0;
+}
+
+/* Return a pointer to the first non-slash in S. */
+static inline char * _GL_ATTRIBUTE_PURE
+find_non_slash (char const *s)
+{
+ size_t n_slash = strspn (s, "/");
+ return (char *) s + n_slash;
+}
+
+/* This is a function much like chdir, but without the PATH_MAX limitation
+ on the length of the directory name. A significant difference is that
+ it must be able to modify (albeit only temporarily) the directory
+ name. It handles an arbitrarily long directory name by operating
+ on manageable portions of the name. On systems without the openat
+ syscall, this means changing the working directory to more and more
+ "distant" points along the long directory name and then restoring
+ the working directory. If any of those attempts to save or restore
+ the working directory fails, this function exits nonzero.
+
+ Note that this function may still fail with errno == ENAMETOOLONG, but
+ only if the specified directory name contains a component that is long
+ enough to provoke such a failure all by itself (e.g. if the component
+ has length PATH_MAX or greater on systems that define PATH_MAX). */
+
+int
+chdir_long (char *dir)
+{
+ int e = chdir (dir);
+ if (e == 0 || errno != ENAMETOOLONG)
+ return e;
+
+ {
+ size_t len = strlen (dir);
+ char *dir_end = dir + len;
+ struct cd_buf cdb;
+ size_t n_leading_slash;
+
+ cdb_init (&cdb);
+
+ /* If DIR is the empty string, then the chdir above
+ must have failed and set errno to ENOENT. */
+ assert (0 < len);
+ assert (PATH_MAX <= len);
+
+ /* Count leading slashes. */
+ n_leading_slash = strspn (dir, "/");
+
+ /* Handle any leading slashes as well as any name that matches
+ the regular expression, m!^//hostname[/]*! . Handling this
+ prefix separately usually results in a single additional
+ cdb_advance_fd call, but it's worthwhile, since it makes the
+ 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);
+ }
+ else if (n_leading_slash)
+ {
+ if (cdb_advance_fd (&cdb, "/") != 0)
+ goto Fail;
+ dir += n_leading_slash;
+ }
+
+ assert (*dir != '/');
+ assert (dir <= dir_end);
+
+ 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);
+ }
+
+ if (dir < dir_end)
+ {
+ if (cdb_advance_fd (&cdb, dir) != 0)
+ goto Fail;
+ }
+
+ if (cdb_fchdir (&cdb) != 0)
+ goto Fail;
+
+ cdb_free (&cdb);
+ return 0;
+
+ Fail:
+ {
+ int saved_errno = errno;
+ cdb_free (&cdb);
+ errno = saved_errno;
+ return -1;
+ }
+ }
+}
+
+#if TEST_CHDIR
+
+# include "closeout.h"
+# include "error.h"
+
+char *program_name;
+
+int
+main (int argc, char *argv[])
+{
+ char *line = NULL;
+ size_t n = 0;
+ int len;
+
+ program_name = argv[0];
+ atexit (close_stdout);
+
+ len = getline (&line, &n, stdin);
+ if (len < 0)
+ {
+ int saved_errno = errno;
+ if (feof (stdin))
+ exit (0);
+
+ error (EXIT_FAILURE, saved_errno,
+ "reading standard input");
+ }
+ else if (len == 0)
+ exit (0);
+
+ if (line[len-1] == '\n')
+ line[len-1] = '\0';
+
+ if (chdir_long (line) != 0)
+ error (EXIT_FAILURE, errno,
+ "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. */
+ char const *cmd = "pwd";
+ execlp (cmd, (char *) NULL);
+ error (EXIT_FAILURE, errno, "%s", cmd);
+ }
+
+ fclose (stdin);
+ fclose (stderr);
+
+ exit (EXIT_SUCCESS);
+}
+#endif
+
+/*
+Local Variables:
+compile-command: "gcc -DTEST_CHDIR=1 -g -O -W -Wall chdir-long.c libcoreutils.a"
+End:
+*/
diff --git a/gnu/chdir-long.h b/gnu/chdir-long.h
new file mode 100644
index 00000000..336811c3
--- /dev/null
+++ b/gnu/chdir-long.h
@@ -0,0 +1,32 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <unistd.h>
+#include <limits.h>
+
+#include "pathmax.h"
+
+/* On systems without PATH_MAX, presume that chdir accepts
+ arbitrarily long directory names. */
+#ifndef PATH_MAX
+# define chdir_long(Dir) chdir (Dir)
+#else
+int chdir_long (char *dir);
+#endif
diff --git a/gnu/chown.c b/gnu/chown.c
new file mode 100644
index 00000000..b75eb5d2
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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/cloexec.c b/gnu/cloexec.c
new file mode 100644
index 00000000..5fe42bd8
--- /dev/null
+++ b/gnu/cloexec.c
@@ -0,0 +1,85 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* closexec.c - set or clear the close-on-exec descriptor flag
+
+ Copyright (C) 1991, 2004-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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/>.
+
+ The code is taken from glibc/manual/llio.texi */
+
+#include <config.h>
+
+#include "cloexec.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
+ or clear the flag if VALUE is false.
+ Return 0 on success, or -1 on error with 'errno' set.
+
+ Note that on MingW, this function does NOT protect DESC from being
+ inherited into spawned children. Instead, either use dup_cloexec
+ followed by closing the original DESC, or use interfaces such as
+ open or pipe2 that accept flags like O_CLOEXEC to create DESC
+ non-inheritable in the first place. */
+
+int
+set_cloexec_flag (int desc, bool value)
+{
+#ifdef F_SETFD
+
+ int flags = fcntl (desc, F_GETFD, 0);
+
+ if (0 <= flags)
+ {
+ int newflags = (value ? flags | FD_CLOEXEC : flags & ~FD_CLOEXEC);
+
+ if (flags == newflags
+ || fcntl (desc, F_SETFD, newflags) != -1)
+ return 0;
+ }
+
+ return -1;
+
+#else /* !F_SETFD */
+
+ /* Use dup2 to reject invalid file descriptors; the cloexec flag
+ will be unaffected. */
+ if (desc < 0)
+ {
+ errno = EBADF;
+ return -1;
+ }
+ if (dup2 (desc, desc) < 0)
+ /* errno is EBADF here. */
+ return -1;
+
+ /* There is nothing we can do on this kind of platform. Punt. */
+ return 0;
+#endif /* !F_SETFD */
+}
+
+
+/* Duplicates a file handle FD, while marking the copy to be closed
+ prior to exec or spawn. Returns -1 and sets errno if FD could not
+ be duplicated. */
+
+int
+dup_cloexec (int fd)
+{
+ return fcntl (fd, F_DUPFD_CLOEXEC, 0);
+}
diff --git a/gnu/cloexec.h b/gnu/cloexec.h
new file mode 100644
index 00000000..91084e50
--- /dev/null
+++ b/gnu/cloexec.h
@@ -0,0 +1,40 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* closexec.c - set or clear the close-on-exec descriptor flag
+
+ Copyright (C) 2004, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <stdbool.h>
+
+/* Set the 'FD_CLOEXEC' flag of DESC if VALUE is true,
+ or clear the flag if VALUE is false.
+ Return 0 on success, or -1 on error with 'errno' set.
+
+ Note that on MingW, this function does NOT protect DESC from being
+ inherited into spawned children. Instead, either use dup_cloexec
+ followed by closing the original DESC, or use interfaces such as
+ open or pipe2 that accept flags like O_CLOEXEC to create DESC
+ non-inheritable in the first place. */
+
+int set_cloexec_flag (int desc, bool value);
+
+/* Duplicates a file handle FD, while marking the copy to be closed
+ prior to exec or spawn. Returns -1 and sets errno if FD could not
+ be duplicated. */
+
+int dup_cloexec (int fd);
diff --git a/gnu/close-stream.c b/gnu/close-stream.c
new file mode 100644
index 00000000..1ce72afc
--- /dev/null
+++ b/gnu/close-stream.c
@@ -0,0 +1,80 @@
+/* -*- 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-2002, 2004, 2006-2012 Free Software Foundation, Inc.
+
+ This 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 "close-stream.h"
+
+#include <errno.h>
+#include <stdbool.h>
+
+#include "fpending.h"
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
+/* Close STREAM. Return 0 if successful, EOF (setting errno)
+ otherwise. A failure might set errno to 0 if the error number
+ cannot be determined.
+
+ A failure with errno set to EPIPE may or may not indicate an error
+ situation worth signaling to the user. See the documentation of the
+ close_stdout_set_ignore_EPIPE function for details.
+
+ If a program writes *anything* to STREAM, that program should close
+ STREAM and make sure that it succeeds before exiting. Otherwise,
+ suppose that you go to the extreme of checking the return status
+ of every function that does an explicit write to STREAM. The last
+ printf can succeed in writing to the internal stream buffer, and yet
+ the fclose(STREAM) could still fail (due e.g., to a disk full error)
+ when it tries to write out that buffered data. Thus, you would be
+ left with an incomplete output file and the offending program would
+ exit successfully. Even calling fflush is not always sufficient,
+ since some file systems (NFS and CODA) buffer written/flushed data
+ until an actual close call.
+
+ Besides, it's wasteful to check the return value from every call
+ that writes to STREAM -- just let the internal stream state record
+ the failure. That's what the ferror test is checking below. */
+
+int
+close_stream (FILE *stream)
+{
+ const bool some_pending = (__fpending (stream) != 0);
+ const bool prev_fail = (ferror (stream) != 0);
+ const bool fclose_fail = (fclose (stream) != 0);
+
+ /* Return an error indication if there was a previous failure or if
+ fclose failed, with one exception: ignore an fclose failure if
+ there was no previous error, no data remains to be flushed, and
+ fclose failed with EBADF. That can happen when a program like cp
+ is invoked like this 'cp a b >&-' (i.e., with standard output
+ closed) and doesn't generate any output (hence no previous error
+ and nothing to be flushed). */
+
+ if (prev_fail || (fclose_fail && (some_pending || errno != EBADF)))
+ {
+ if (! fclose_fail)
+ errno = 0;
+ return EOF;
+ }
+
+ return 0;
+}
diff --git a/gnu/close-stream.h b/gnu/close-stream.h
new file mode 100644
index 00000000..d8cad179
--- /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 00000000..4ad947c3
--- /dev/null
+++ b/gnu/close.c
@@ -0,0 +1,71 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* close replacement.
+ Copyright (C) 2008-2012 Free Software Foundation, Inc.
+
+ This 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 "fd-hook.h"
+#include "msvc-inval.h"
+
+#undef close
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static int
+close_nothrow (int fd)
+{
+ int result;
+
+ TRY_MSVC_INVAL
+ {
+ result = close (fd);
+ }
+ CATCH_MSVC_INVAL
+ {
+ result = -1;
+ errno = EBADF;
+ }
+ DONE_MSVC_INVAL;
+
+ return result;
+}
+#else
+# define close_nothrow close
+#endif
+
+/* Override close() to call into other gnulib modules. */
+
+int
+rpl_close (int fd)
+{
+#if WINDOWS_SOCKETS
+ int retval = execute_all_close_hooks (close_nothrow, fd);
+#else
+ int retval = close_nothrow (fd);
+#endif
+
+#if REPLACE_FCHDIR
+ if (retval >= 0)
+ _gl_unregister_fd (fd);
+#endif
+
+ return retval;
+}
diff --git a/gnu/closedir.c b/gnu/closedir.c
new file mode 100644
index 00000000..999240d1
--- /dev/null
+++ b/gnu/closedir.c
@@ -0,0 +1,69 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Stop reading the entries of a directory.
+ Copyright (C) 2006-2012 Free Software Foundation, Inc.
+
+ This 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 <dirent.h>
+
+#if REPLACE_FCHDIR
+# include <unistd.h>
+#endif
+
+#if HAVE_CLOSEDIR
+
+/* Override closedir(), to keep track of the open file descriptors.
+ Needed because there is a function dirfd(). */
+
+#else
+
+# include <stdlib.h>
+
+# include "dirent-private.h"
+
+#endif
+
+int
+closedir (DIR *dirp)
+{
+# if REPLACE_FCHDIR
+ int fd = dirfd (dirp);
+# endif
+ int retval;
+
+#if HAVE_CLOSEDIR
+# undef closedir
+
+ retval = closedir (dirp);
+
+#else
+
+ if (dirp->current != INVALID_HANDLE_VALUE)
+ FindClose (dirp->current);
+ free (dirp);
+
+ retval = 0;
+
+#endif
+
+#if REPLACE_FCHDIR
+ if (retval >= 0)
+ _gl_unregister_fd (fd);
+#endif
+ return retval;
+}
diff --git a/gnu/closeout.c b/gnu/closeout.c
new file mode 100644
index 00000000..835820f9
--- /dev/null
+++ b/gnu/closeout.c
@@ -0,0 +1,126 @@
+/* -*- 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-2002, 2004, 2006, 2008-2012 Free Software Foundation,
+ Inc.
+
+ This 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 "closeout.h"
+
+#include <errno.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <unistd.h>
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+#include "close-stream.h"
+#include "error.h"
+#include "exitfail.h"
+#include "quotearg.h"
+
+static const char *file_name;
+
+/* Set the file name to be reported in the event an error is detected
+ by close_stdout. */
+void
+close_stdout_set_file_name (const char *file)
+{
+ file_name = file;
+}
+
+static bool ignore_EPIPE /* = false */;
+
+/* Specify the reaction to an EPIPE error during the closing of stdout:
+ - If ignore = true, it shall be ignored.
+ - If ignore = false, it shall evoke a diagnostic, along with a nonzero
+ exit status.
+ The default is ignore = false.
+
+ This setting matters only if the SIGPIPE signal is ignored (i.e. its
+ handler set to SIG_IGN) or blocked. Only particular programs need to
+ temporarily ignore SIGPIPE. If SIGPIPE is ignored or blocked because
+ it was ignored or blocked in the parent process when it created the
+ child process, it usually is a bug in the parent process: It is bad
+ practice to have SIGPIPE ignored or blocked while creating a child
+ process.
+
+ EPIPE occurs when writing to a pipe or socket that has no readers now,
+ when SIGPIPE is ignored or blocked.
+
+ The ignore = false setting is suitable for a scenario where it is normally
+ guaranteed that the pipe writer terminates before the pipe reader. In
+ this case, an EPIPE is an indication of a premature termination of the
+ pipe reader and should lead to a diagnostic and a nonzero exit status.
+
+ The ignore = true setting is suitable for a scenario where you don't know
+ ahead of time whether the pipe writer or the pipe reader will terminate
+ first. In this case, an EPIPE is an indication that the pipe writer can
+ stop doing useless write() calls; this is what close_stdout does anyway.
+ EPIPE is part of the normal pipe/socket shutdown protocol in this case,
+ and should not lead to a diagnostic message. */
+
+void
+close_stdout_set_ignore_EPIPE (bool ignore)
+{
+ ignore_EPIPE = ignore;
+}
+
+/* Close standard output. On error, issue a diagnostic and _exit
+ with status 'exit_failure'.
+
+ Also close standard error. On error, _exit with status 'exit_failure'.
+
+ Since close_stdout is commonly registered via 'atexit', POSIX
+ and the C standard both say that it should not call 'exit',
+ because the behavior is undefined if 'exit' is called more than
+ once. So it calls '_exit' instead of 'exit'. If close_stdout
+ is registered via atexit before other functions are registered,
+ the other functions can act before this _exit is invoked.
+
+ Applications that use close_stdout should flush any streams
+ other than stdout and stderr before exiting, since the call to
+ _exit will bypass other buffer flushing. Applications should
+ be flushing and closing other streams anyway, to check for I/O
+ errors. Also, applications should not use tmpfile, since _exit
+ can bypass the removal of these files.
+
+ It's important to detect such failures and exit nonzero because many
+ tools (most notably 'make' and other build-management systems) depend
+ on being able to detect failure in other tools via their exit status. */
+
+void
+close_stdout (void)
+{
+ if (close_stream (stdout) != 0
+ && !(ignore_EPIPE && errno == EPIPE))
+ {
+ char const *write_error = _("write error");
+ if (file_name)
+ error (0, errno, "%s: %s", quotearg_colon (file_name),
+ write_error);
+ else
+ error (0, errno, "%s", write_error);
+
+ _exit (exit_failure);
+ }
+
+ if (close_stream (stderr) != 0)
+ _exit (exit_failure);
+}
diff --git a/gnu/closeout.h b/gnu/closeout.h
new file mode 100644
index 00000000..ffeb5e20
--- /dev/null
+++ b/gnu/closeout.h
@@ -0,0 +1,38 @@
+/* -*- 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-2012 Free Software
+ Foundation, Inc.
+
+ This 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 CLOSEOUT_H
+# define CLOSEOUT_H 1
+
+# include <stdbool.h>
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+void close_stdout_set_file_name (const char *file);
+void close_stdout_set_ignore_EPIPE (bool ignore);
+void close_stdout (void);
+
+# ifdef __cplusplus
+}
+# endif
+
+#endif
diff --git a/gnu/config.charset b/gnu/config.charset
new file mode 100644
index 00000000..1383d9b4
--- /dev/null
+++ b/gnu/config.charset
@@ -0,0 +1,685 @@
+#! /bin/sh
+# Output a system dependent table of character encoding aliases.
+#
+# Copyright (C) 2000-2004, 2006-2012 Free Software Foundation, Inc.
+#
+# This 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
+# (darwin = MacOS X, woe32 = native Windows)
+#
+# ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin cygwin
+# ISO-8859-1 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
+# ISO-8859-2 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
+# ISO-8859-3 Y glibc solaris cygwin
+# ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin
+# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin
+# ISO-8859-6 Y glibc aix hpux solaris cygwin
+# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin cygwin
+# ISO-8859-8 Y glibc aix hpux osf solaris cygwin
+# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin cygwin
+# ISO-8859-13 glibc netbsd openbsd darwin cygwin
+# ISO-8859-14 glibc cygwin
+# ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin cygwin
+# KOI8-R Y glibc solaris freebsd netbsd openbsd darwin
+# KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin
+# 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 cygwin 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 cygwin 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 cygwin
+# EUC-TW glibc aix hpux irix osf solaris netbsd
+# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin
+# BIG5-HKSCS glibc solaris darwin
+# GBK glibc aix osf solaris darwin cygwin 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 cygwin
+# VISCII Y glibc
+# TCVN5712-1 glibc
+# ARMSCII-8 glibc darwin
+# GEORGIAN-PS glibc cygwin
+# 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 cygwin
+#
+# 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/gnu/dirent--.h b/gnu/dirent--.h
new file mode 100644
index 00000000..42941f6d
--- /dev/null
+++ b/gnu/dirent--.h
@@ -0,0 +1,25 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Like dirent.h, but redefine some names to avoid glitches.
+
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 "dirent-safer.h"
+
+#undef opendir
+#define opendir opendir_safer
diff --git a/gnu/dirent-private.h b/gnu/dirent-private.h
new file mode 100644
index 00000000..44f8d142
--- /dev/null
+++ b/gnu/dirent-private.h
@@ -0,0 +1,42 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Private details of the DIR type.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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 _DIRENT_PRIVATE_H
+#define _DIRENT_PRIVATE_H 1
+
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+struct gl_directory
+{
+ /* Status, or error code to produce in next readdir() call.
+ -2 means the end of the directory is already reached,
+ -1 means the entry was already filled by FindFirstFile,
+ 0 means the entry needs to be filled using FindNextFile.
+ A positive value is an error code. */
+ int status;
+ /* Handle, reading the directory, at current position. */
+ HANDLE current;
+ /* Found directory entry. */
+ WIN32_FIND_DATA entry;
+ /* Argument to pass to FindFirstFile. It consists of the absolutized
+ directory name, followed by a directory separator and the wildcards. */
+ char dir_name_mask[1];
+};
+
+#endif /* _DIRENT_PRIVATE_H */
diff --git a/gnu/dirent-safer.h b/gnu/dirent-safer.h
new file mode 100644
index 00000000..91d1d501
--- /dev/null
+++ b/gnu/dirent-safer.h
@@ -0,0 +1,24 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Invoke dirent-like functions, but avoid some glitches.
+
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <dirent.h>
+
+DIR *opendir_safer (const char *name);
diff --git a/gnu/dirent.in.h b/gnu/dirent.in.h
new file mode 100644
index 00000000..a06130f0
--- /dev/null
+++ b/gnu/dirent.in.h
@@ -0,0 +1,251 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A GNU-like <dirent.h>.
+ Copyright (C) 2006-2012 Free Software Foundation, Inc.
+
+ This 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 _@GUARD_PREFIX@_DIRENT_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* The include_next requires a split double-inclusion guard. */
+#if @HAVE_DIRENT_H@
+# @INCLUDE_NEXT@ @NEXT_DIRENT_H@
+#endif
+
+#ifndef _@GUARD_PREFIX@_DIRENT_H
+#define _@GUARD_PREFIX@_DIRENT_H
+
+/* Get ino_t. Needed on some systems, including glibc 2.8. */
+#include <sys/types.h>
+
+#if !@HAVE_DIRENT_H@
+/* Define types DIR and 'struct dirent'. */
+# if !GNULIB_defined_struct_dirent
+struct dirent
+{
+ char d_type;
+ char d_name[1];
+};
+/* Possible values for 'd_type'. */
+# define DT_UNKNOWN 0
+# define DT_FIFO 1 /* FIFO */
+# define DT_CHR 2 /* character device */
+# define DT_DIR 4 /* directory */
+# define DT_BLK 6 /* block device */
+# define DT_REG 8 /* regular file */
+# define DT_LNK 10 /* symbolic link */
+# define DT_SOCK 12 /* socket */
+# define DT_WHT 14 /* whiteout */
+typedef struct gl_directory DIR;
+# define GNULIB_defined_struct_dirent 1
+# 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. */
+
+
+/* Declare overridden functions. */
+
+#if @GNULIB_OPENDIR@
+# if @REPLACE_OPENDIR@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef opendir
+# define opendir rpl_opendir
+# endif
+_GL_FUNCDECL_RPL (opendir, DIR *, (const char *dir_name) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (opendir, DIR *, (const char *dir_name));
+# else
+# if !@HAVE_OPENDIR@
+_GL_FUNCDECL_SYS (opendir, DIR *, (const char *dir_name) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (opendir, DIR *, (const char *dir_name));
+# endif
+_GL_CXXALIASWARN (opendir);
+#elif defined GNULIB_POSIXCHECK
+# undef opendir
+# if HAVE_RAW_DECL_OPENDIR
+_GL_WARN_ON_USE (opendir, "opendir is not portable - "
+ "use gnulib module opendir for portability");
+# endif
+#endif
+
+#if @GNULIB_READDIR@
+# if !@HAVE_READDIR@
+_GL_FUNCDECL_SYS (readdir, struct dirent *, (DIR *dirp) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (readdir, struct dirent *, (DIR *dirp));
+_GL_CXXALIASWARN (readdir);
+#elif defined GNULIB_POSIXCHECK
+# undef readdir
+# if HAVE_RAW_DECL_READDIR
+_GL_WARN_ON_USE (readdir, "readdir is not portable - "
+ "use gnulib module readdir for portability");
+# endif
+#endif
+
+#if @GNULIB_REWINDDIR@
+# if !@HAVE_REWINDDIR@
+_GL_FUNCDECL_SYS (rewinddir, void, (DIR *dirp) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (rewinddir, void, (DIR *dirp));
+_GL_CXXALIASWARN (rewinddir);
+#elif defined GNULIB_POSIXCHECK
+# undef rewinddir
+# if HAVE_RAW_DECL_REWINDDIR
+_GL_WARN_ON_USE (rewinddir, "rewinddir is not portable - "
+ "use gnulib module rewinddir for portability");
+# endif
+#endif
+
+#if @GNULIB_CLOSEDIR@
+# if @REPLACE_CLOSEDIR@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef closedir
+# define closedir rpl_closedir
+# endif
+_GL_FUNCDECL_RPL (closedir, int, (DIR *dirp) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (closedir, int, (DIR *dirp));
+# else
+# if !@HAVE_CLOSEDIR@
+_GL_FUNCDECL_SYS (closedir, int, (DIR *dirp) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (closedir, int, (DIR *dirp));
+# endif
+_GL_CXXALIASWARN (closedir);
+#elif defined GNULIB_POSIXCHECK
+# undef closedir
+# if HAVE_RAW_DECL_CLOSEDIR
+_GL_WARN_ON_USE (closedir, "closedir is not portable - "
+ "use gnulib module closedir for portability");
+# endif
+#endif
+
+#if @GNULIB_DIRFD@
+/* Return the file descriptor associated with the given directory stream,
+ or -1 if none exists. */
+# if @REPLACE_DIRFD@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef dirfd
+# define dirfd rpl_dirfd
+# endif
+_GL_FUNCDECL_RPL (dirfd, int, (DIR *) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (dirfd, int, (DIR *));
+# else
+# if defined __cplusplus && defined GNULIB_NAMESPACE && defined dirfd
+ /* dirfd is defined as a macro and not as a function.
+ Turn it into a function and get rid of the macro. */
+static inline int (dirfd) (DIR *dp) { return dirfd (dp); }
+# undef dirfd
+# endif
+# if !(@HAVE_DECL_DIRFD@ || defined dirfd)
+_GL_FUNCDECL_SYS (dirfd, int, (DIR *) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (dirfd, int, (DIR *));
+# endif
+_GL_CXXALIASWARN (dirfd);
+#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@ || !@HAVE_DECL_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 @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 /* _@GUARD_PREFIX@_DIRENT_H */
+#endif /* _@GUARD_PREFIX@_DIRENT_H */
diff --git a/gnu/dirfd.c b/gnu/dirfd.c
new file mode 100644
index 00000000..9b37b7b5
--- /dev/null
+++ b/gnu/dirfd.c
@@ -0,0 +1,34 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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 <errno.h>
+
+int
+dirfd (DIR *dir_p)
+{
+ int fd = DIR_TO_FD (dir_p);
+ if (fd == -1)
+ errno = ENOTSUP;
+ return fd;
+}
diff --git a/gnu/dirname-lgpl.c b/gnu/dirname-lgpl.c
new file mode 100644
index 00000000..f2dac633
--- /dev/null
+++ b/gnu/dirname-lgpl.c
@@ -0,0 +1,88 @@
+/* -*- 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-2012 Free Software
+ Foundation, Inc.
+
+ This 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>
+
+/* 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
+ even though 'dir_name (FILE)' will return ".". Works properly even
+ if there are trailing slashes (by effectively ignoring them). */
+
+size_t
+dir_len (char const *file)
+{
+ size_t prefix_length = FILE_SYSTEM_PREFIX_LEN (file);
+ size_t length;
+
+ /* 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));
+
+ /* Strip the basename and any redundant slashes before it. */
+ for (length = last_component (file) - file;
+ prefix_length < length; length--)
+ if (! ISSLASH (file[length - 1]))
+ break;
+ return length;
+}
+
+
+/* In general, we can't use the builtin 'dirname' function if available,
+ 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 malloc.
+ Works properly even if there are trailing slashes (by effectively
+ 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,
+ if the sequence { chdir (dir_name (FILE));
+ rename (base_name (FILE), "foo"); } succeeds, you have renamed FILE
+ to "foo" in the same directory FILE was in. */
+
+char *
+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 = malloc (length + append_dot + 1);
+ if (!dir)
+ return NULL;
+ memcpy (dir, file, length);
+ if (append_dot)
+ dir[length++] = '.';
+ dir[length] = '\0';
+ return dir;
+}
diff --git a/gnu/dirname.c b/gnu/dirname.c
new file mode 100644
index 00000000..f99a7d21
--- /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-2012 Free Software
+ Foundation, Inc.
+
+ This 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/gnu/dirname.h b/gnu/dirname.h
new file mode 100644
index 00000000..ee44a204
--- /dev/null
+++ b/gnu/dirname.h
@@ -0,0 +1,48 @@
+/* -*- 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, 2009-2012 Free Software Foundation,
+ Inc.
+
+ This 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 DIRNAME_H_
+# define DIRNAME_H_ 1
+
+# include <stdbool.h>
+# include <stddef.h>
+# include "dosname.h"
+
+# ifndef DIRECTORY_SEPARATOR
+# define DIRECTORY_SEPARATOR '/'
+# endif
+
+# ifndef DOUBLE_SLASH_IS_DISTINCT_ROOT
+# define DOUBLE_SLASH_IS_DISTINCT_ROOT 0
+# endif
+
+# 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) _GL_ATTRIBUTE_PURE;
+size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE;
+char *last_component (char const *file) _GL_ATTRIBUTE_PURE;
+
+bool strip_trailing_slashes (char *file);
+
+#endif /* not DIRNAME_H_ */
diff --git a/gnu/dosname.h b/gnu/dosname.h
new file mode 100644
index 00000000..f28f0ba5
--- /dev/null
+++ b/gnu/dosname.h
@@ -0,0 +1,55 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* File names on MS-DOS/Windows systems.
+
+ Copyright (C) 2000-2001, 2004-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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/>.
+
+ From Paul Eggert and Jim Meyering. */
+
+#ifndef _DOSNAME_H
+#define _DOSNAME_H
+
+#if (defined _WIN32 || defined __WIN32__ || \
+ defined __MSDOS__ || defined __CYGWIN__ || \
+ defined __EMX__ || defined __DJGPP__)
+ /* 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')
+# define FILE_SYSTEM_PREFIX_LEN(Filename) \
+ (_IS_DRIVE_LETTER ((Filename)[0]) && (Filename)[1] == ':' ? 2 : 0)
+# ifndef __CYGWIN__
+# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 1
+# endif
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+#else
+# define FILE_SYSTEM_PREFIX_LEN(Filename) 0
+# define ISSLASH(C) ((C) == '/')
+#endif
+
+#ifndef FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
+# define FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE 0
+#endif
+
+#if FILE_SYSTEM_DRIVE_PREFIX_CAN_BE_RELATIVE
+# define IS_ABSOLUTE_FILE_NAME(F) ISSLASH ((F)[FILE_SYSTEM_PREFIX_LEN (F)])
+# else
+# define IS_ABSOLUTE_FILE_NAME(F) \
+ (ISSLASH ((F)[0]) || FILE_SYSTEM_PREFIX_LEN (F) != 0)
+#endif
+#define IS_RELATIVE_FILE_NAME(F) (! IS_ABSOLUTE_FILE_NAME (F))
+
+#endif /* DOSNAME_H_ */
diff --git a/gnu/dup-safer.c b/gnu/dup-safer.c
new file mode 100644
index 00000000..9752637b
--- /dev/null
+++ b/gnu/dup-safer.c
@@ -0,0 +1,36 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Invoke dup, but avoid some glitches.
+
+ Copyright (C) 2001, 2004-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 "unistd-safer.h"
+
+#include <fcntl.h>
+#include <unistd.h>
+
+/* Like dup, but do not return STDIN_FILENO, STDOUT_FILENO, or
+ STDERR_FILENO. */
+
+int
+dup_safer (int fd)
+{
+ return fcntl (fd, F_DUPFD, STDERR_FILENO + 1);
+}
diff --git a/gnu/dup.c b/gnu/dup.c
new file mode 100644
index 00000000..797c7966
--- /dev/null
+++ b/gnu/dup.c
@@ -0,0 +1,63 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Duplicate an open file descriptor.
+
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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 "msvc-inval.h"
+
+#undef dup
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static inline int
+dup_nothrow (int fd)
+{
+ int result;
+
+ TRY_MSVC_INVAL
+ {
+ result = dup (fd);
+ }
+ CATCH_MSVC_INVAL
+ {
+ result = -1;
+ errno = EBADF;
+ }
+ DONE_MSVC_INVAL;
+
+ return result;
+}
+#else
+# define dup_nothrow dup
+#endif
+
+int
+rpl_dup (int fd)
+{
+ int result = dup_nothrow (fd);
+#if REPLACE_FCHDIR
+ if (result >= 0)
+ result = _gl_register_dup (fd, result);
+#endif
+ return result;
+}
diff --git a/gnu/dup2.c b/gnu/dup2.c
new file mode 100644
index 00000000..372e5061
--- /dev/null
+++ b/gnu/dup2.c
@@ -0,0 +1,159 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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 HAVE_DUP2
+
+# undef dup2
+
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+/* Get declarations of the native Windows API functions. */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+
+# include "msvc-inval.h"
+
+/* Get _get_osfhandle. */
+# include "msvc-nothrow.h"
+
+static int
+ms_windows_dup2 (int fd, int desired_fd)
+{
+ int result;
+
+ /* 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;
+ }
+
+ TRY_MSVC_INVAL
+ {
+ result = dup2 (fd, desired_fd);
+ }
+ CATCH_MSVC_INVAL
+ {
+ errno = EBADF;
+ result = -1;
+ }
+ DONE_MSVC_INVAL;
+
+ if (result == 0)
+ result = desired_fd;
+
+ return result;
+}
+
+# define dup2 ms_windows_dup2
+
+# endif
+
+int
+rpl_dup2 (int fd, int desired_fd)
+{
+ int result;
+
+# ifdef F_GETFL
+ /* On Linux kernels 2.6.26-2.6.29, dup2 (fd, fd) returns -EBADF.
+ On Cygwin 1.5.x, dup2 (1, 1) returns 0.
+ On Haiku, dup2 (fd, fd) mistakenly clears FD_CLOEXEC. */
+ if (fd == desired_fd)
+ return fcntl (fd, F_GETFL) == -1 ? -1 : fd;
+# endif
+
+ result = dup2 (fd, desired_fd);
+
+ /* Correct an errno value on FreeBSD 6.1 and Cygwin 1.5.x. */
+ 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/gnu/errno.in.h b/gnu/errno.in.h
new file mode 100644
index 00000000..275491a3
--- /dev/null
+++ b/gnu/errno.in.h
@@ -0,0 +1,235 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A POSIX-like <errno.h>.
+
+ Copyright (C) 2008-2012 Free Software Foundation, Inc.
+
+ This 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 _@GUARD_PREFIX@_ERRNO_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_ERRNO_H@
+
+#ifndef _@GUARD_PREFIX@_ERRNO_H
+#define _@GUARD_PREFIX@_ERRNO_H
+
+
+/* On native Windows platforms, many macros are not defined. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+/* These are the same values as defined by MSVC 10, for interoperability. */
+
+# ifndef ENOMSG
+# define ENOMSG 122
+# define GNULIB_defined_ENOMSG 1
+# endif
+
+# ifndef EIDRM
+# define EIDRM 111
+# define GNULIB_defined_EIDRM 1
+# endif
+
+# ifndef ENOLINK
+# define ENOLINK 121
+# define GNULIB_defined_ENOLINK 1
+# endif
+
+# ifndef EPROTO
+# define EPROTO 134
+# define GNULIB_defined_EPROTO 1
+# endif
+
+# ifndef EBADMSG
+# define EBADMSG 104
+# define GNULIB_defined_EBADMSG 1
+# endif
+
+# ifndef EOVERFLOW
+# define EOVERFLOW 132
+# define GNULIB_defined_EOVERFLOW 1
+# endif
+
+# ifndef ENOTSUP
+# define ENOTSUP 129
+# define GNULIB_defined_ENOTSUP 1
+# endif
+
+# ifndef ENETRESET
+# define ENETRESET 117
+# define GNULIB_defined_ENETRESET 1
+# endif
+
+# ifndef ECONNABORTED
+# define ECONNABORTED 106
+# define GNULIB_defined_ECONNABORTED 1
+# endif
+
+# ifndef ECANCELED
+# define ECANCELED 105
+# define GNULIB_defined_ECANCELED 1
+# endif
+
+# ifndef EINPROGRESS
+# define EINPROGRESS 112
+# define EALREADY 103
+# define ENOTSOCK 128
+# define EDESTADDRREQ 109
+# define EMSGSIZE 115
+# define EPROTOTYPE 136
+# define ENOPROTOOPT 123
+# define EPROTONOSUPPORT 135
+# define EOPNOTSUPP 130
+# define EAFNOSUPPORT 102
+# define EADDRINUSE 100
+# define EADDRNOTAVAIL 101
+# define ENETDOWN 116
+# define ENETUNREACH 118
+# define ECONNRESET 108
+# define ENOBUFS 119
+# define EISCONN 113
+# define ENOTCONN 126
+# define ETIMEDOUT 138
+# define ECONNREFUSED 107
+# define ELOOP 114
+# define EHOSTUNREACH 110
+# define EWOULDBLOCK 140
+# define ETXTBSY 139
+# define ENODATA 120 /* not required by POSIX */
+# define ENOSR 124 /* not required by POSIX */
+# define ENOSTR 125 /* not required by POSIX */
+# define ENOTRECOVERABLE 127 /* not required by POSIX */
+# define EOWNERDEAD 133 /* not required by POSIX */
+# define ETIME 137 /* not required by POSIX */
+# define EOTHER 131 /* not required by POSIX */
+# define GNULIB_defined_ESOCK 1
+# endif
+
+/* These are intentionally the same values as the WSA* error numbers, defined
+ in <winsock2.h>. */
+# define ESOCKTNOSUPPORT 10044 /* not required by POSIX */
+# define EPFNOSUPPORT 10046 /* not required by POSIX */
+# define ESHUTDOWN 10058 /* not required by POSIX */
+# define ETOOMANYREFS 10059 /* not required by POSIX */
+# define EHOSTDOWN 10064 /* not required by POSIX */
+# define EPROCLIM 10067 /* not required by POSIX */
+# define EUSERS 10068 /* not required by POSIX */
+# define EDQUOT 10069
+# define ESTALE 10070
+# define EREMOTE 10071 /* not required by POSIX */
+# define GNULIB_defined_EWINSOCK 1
+
+# endif
+
+
+/* On OSF/1 5.1, when _XOPEN_SOURCE_EXTENDED is not defined, the macros
+ EMULTIHOP, ENOLINK, EOVERFLOW are not defined. */
+# if @EMULTIHOP_HIDDEN@
+# define EMULTIHOP @EMULTIHOP_VALUE@
+# define GNULIB_defined_EMULTIHOP 1
+# endif
+# if @ENOLINK_HIDDEN@
+# define ENOLINK @ENOLINK_VALUE@
+# define GNULIB_defined_ENOLINK 1
+# endif
+# if @EOVERFLOW_HIDDEN@
+# define EOVERFLOW @EOVERFLOW_VALUE@
+# define GNULIB_defined_EOVERFLOW 1
+# endif
+
+
+/* On OpenBSD 4.0 and on native Windows, the macros ENOMSG, EIDRM, ENOLINK,
+ EPROTO, EMULTIHOP, EBADMSG, EOVERFLOW, ENOTSUP, ECANCELED are not defined.
+ Likewise, on NonStop Kernel, EDQUOT is not defined.
+ Define them here. Values >= 2000 seem safe to use: Solaris ESTALE = 151,
+ HP-UX EWOULDBLOCK = 246, IRIX EDQUOT = 1133.
+
+ Note: When one of these systems defines some of these macros some day,
+ binaries will have to be recompiled so that they recognizes the new
+ errno values from the system. */
+
+# ifndef ENOMSG
+# define ENOMSG 2000
+# define GNULIB_defined_ENOMSG 1
+# endif
+
+# ifndef EIDRM
+# define EIDRM 2001
+# define GNULIB_defined_EIDRM 1
+# endif
+
+# ifndef ENOLINK
+# define ENOLINK 2002
+# define GNULIB_defined_ENOLINK 1
+# endif
+
+# ifndef EPROTO
+# define EPROTO 2003
+# define GNULIB_defined_EPROTO 1
+# endif
+
+# ifndef EMULTIHOP
+# define EMULTIHOP 2004
+# define GNULIB_defined_EMULTIHOP 1
+# endif
+
+# ifndef EBADMSG
+# define EBADMSG 2005
+# define GNULIB_defined_EBADMSG 1
+# endif
+
+# ifndef EOVERFLOW
+# define EOVERFLOW 2006
+# define GNULIB_defined_EOVERFLOW 1
+# endif
+
+# ifndef ENOTSUP
+# define ENOTSUP 2007
+# define GNULIB_defined_ENOTSUP 1
+# endif
+
+# ifndef ENETRESET
+# define ENETRESET 2011
+# define GNULIB_defined_ENETRESET 1
+# endif
+
+# ifndef ECONNABORTED
+# define ECONNABORTED 2012
+# define GNULIB_defined_ECONNABORTED 1
+# endif
+
+# ifndef ESTALE
+# define ESTALE 2009
+# define GNULIB_defined_ESTALE 1
+# endif
+
+# ifndef EDQUOT
+# define EDQUOT 2010
+# define GNULIB_defined_EDQUOT 1
+# endif
+
+# ifndef ECANCELED
+# define ECANCELED 2008
+# define GNULIB_defined_ECANCELED 1
+# endif
+
+
+#endif /* _@GUARD_PREFIX@_ERRNO_H */
+#endif /* _@GUARD_PREFIX@_ERRNO_H */
diff --git a/gnu/error.c b/gnu/error.c
new file mode 100644
index 00000000..68d29f40
--- /dev/null
+++ b/gnu/error.c
@@ -0,0 +1,403 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Error handler for noninteractive utilities
+ Copyright (C) 1990-1998, 2000-2007, 2009-2012 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/>. */
+
+/* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
+
+#if !_LIBC
+# include <config.h>
+#endif
+
+#include "error.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if !_LIBC && ENABLE_NLS
+# include "gettext.h"
+# define _(msgid) gettext (msgid)
+#endif
+
+#ifdef _LIBC
+# include <libintl.h>
+# include <stdbool.h>
+# include <stdint.h>
+# include <wchar.h>
+# define mbsrtowcs __mbsrtowcs
+#endif
+
+#if USE_UNLOCKED_IO
+# include "unlocked-io.h"
+#endif
+
+#ifndef _
+# define _(String) String
+#endif
+
+/* If NULL, error will flush stdout, then print on stderr the program
+ name, a colon and a space. Otherwise, error will call this
+ function without parameters instead. */
+void (*error_print_progname) (void);
+
+/* This variable is incremented each time 'error' is called. */
+unsigned int error_message_count;
+
+#ifdef _LIBC
+/* In the GNU C library, there is a predefined variable for this. */
+
+# define program_name program_invocation_name
+# include <errno.h>
+# include <limits.h>
+# include <libio/libioP.h>
+
+/* In GNU libc we want do not want to use the common name 'error' directly.
+ Instead make it a weak alias. */
+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,
+ ...)
+ __attribute__ ((__format__ (__printf__, 5, 6)));;
+# define error __error
+# define error_at_line __error_at_line
+
+# include <libio/iolibio.h>
+# define fflush(s) INTUSE(_IO_fflush) (s)
+# undef putc
+# define putc(c, fp) INTUSE(_IO_putc) (c, fp)
+
+# include <bits/libc-lock.h>
+
+#else /* not _LIBC */
+
+# include <fcntl.h>
+# include <unistd.h>
+
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Get declarations of the native Windows API functions. */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+/* Get _get_osfhandle. */
+# include "msvc-nothrow.h"
+# endif
+
+/* The gnulib override of fcntl is not needed in this file. */
+# undef fcntl
+
+# if !HAVE_DECL_STRERROR_R
+# ifndef HAVE_DECL_STRERROR_R
+"this configure-time declaration test was not run"
+# endif
+# if STRERROR_R_CHAR_P
+char *strerror_r ();
+# else
+int strerror_r ();
+# endif
+# endif
+
+/* The calling program should define program_name and set it to the
+ name of the executing program. */
+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 */
+
+#if !_LIBC
+/* Return non-zero if FD is open. */
+static inline int
+is_open (int fd)
+{
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ /* On native Windows: The initial state of unassigned standard file
+ descriptors is that they are open but point to an INVALID_HANDLE_VALUE.
+ There is no fcntl, and the gnulib replacement fcntl does not support
+ F_GETFL. */
+ return (HANDLE) _get_osfhandle (fd) != INVALID_HANDLE_VALUE;
+# else
+# ifndef F_GETFL
+# error Please port fcntl to your platform
+# endif
+ return 0 <= fcntl (fd, F_GETFL);
+# endif
+}
+#endif
+
+static inline void
+flush_stdout (void)
+{
+#if !_LIBC
+ 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 && is_open (stdout_fd))
+#endif
+ fflush (stdout);
+}
+
+static void
+print_errno_message (int errnum)
+{
+ char const *s;
+
+#if defined HAVE_STRERROR_R || _LIBC
+ char errbuf[1024];
+# if STRERROR_R_CHAR_P || _LIBC
+ s = __strerror_r (errnum, errbuf, sizeof errbuf);
+# else
+ if (__strerror_r (errnum, errbuf, sizeof errbuf) == 0)
+ s = errbuf;
+ else
+ s = 0;
+# endif
+#else
+ s = strerror (errnum);
+#endif
+
+#if !_LIBC
+ if (! s)
+ s = _("Unknown system error");
+#endif
+
+#if _LIBC
+ __fxprintf (NULL, ": %s", s);
+#else
+ fprintf (stderr, ": %s", s);
+#endif
+}
+
+static void
+error_tail (int status, int errnum, const char *message, va_list args)
+{
+#if _LIBC
+ if (_IO_fwide (stderr, 0) > 0)
+ {
+# define ALLOCA_LIMIT 2000
+ size_t len = strlen (message) + 1;
+ wchar_t *wmessage = NULL;
+ mbstate_t st;
+ size_t res;
+ const char *tmp;
+ 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 (res == (size_t) -1)
+ {
+ /* 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);
+ }
+ else
+#endif
+ vfprintf (stderr, message, args);
+ va_end (args);
+
+ ++error_message_count;
+ if (errnum)
+ print_errno_message (errnum);
+#if _LIBC
+ __fxprintf (NULL, "\n");
+#else
+ putc ('\n', stderr);
+#endif
+ fflush (stderr);
+ if (status)
+ exit (status);
+}
+
+
+/* Print the program name and error message MESSAGE, which is a printf-style
+ format string with optional args.
+ If ERRNUM is nonzero, print its corresponding system error message.
+ Exit with status STATUS if it is nonzero. */
+void
+error (int status, int errnum, const char *message, ...)
+{
+ va_list args;
+
+#if defined _LIBC && defined __libc_ptf_call
+ /* We do not want this call to be cut short by a thread
+ cancellation. Therefore disable cancellation for now. */
+ int state = PTHREAD_CANCEL_ENABLE;
+ __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
+ 0);
+#endif
+
+ flush_stdout ();
+#ifdef _LIBC
+ _IO_flockfile (stderr);
+#endif
+ if (error_print_progname)
+ (*error_print_progname) ();
+ else
+ {
+#if _LIBC
+ __fxprintf (NULL, "%s: ", program_name);
+#else
+ fprintf (stderr, "%s: ", program_name);
+#endif
+ }
+
+ va_start (args, message);
+ error_tail (status, errnum, message, args);
+
+#ifdef _LIBC
+ _IO_funlockfile (stderr);
+# ifdef __libc_ptf_call
+ __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+# endif
+#endif
+}
+
+/* Sometimes we want to have at most one error per line. This
+ variable controls whether this mode is selected or not. */
+int error_one_per_line;
+
+void
+error_at_line (int status, int errnum, const char *file_name,
+ unsigned int line_number, const char *message, ...)
+{
+ va_list args;
+
+ if (error_one_per_line)
+ {
+ static const char *old_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;
+
+ old_file_name = file_name;
+ old_line_number = line_number;
+ }
+
+#if defined _LIBC && defined __libc_ptf_call
+ /* We do not want this call to be cut short by a thread
+ cancellation. Therefore disable cancellation for now. */
+ int state = PTHREAD_CANCEL_ENABLE;
+ __libc_ptf_call (pthread_setcancelstate, (PTHREAD_CANCEL_DISABLE, &state),
+ 0);
+#endif
+
+ flush_stdout ();
+#ifdef _LIBC
+ _IO_flockfile (stderr);
+#endif
+ if (error_print_progname)
+ (*error_print_progname) ();
+ else
+ {
+#if _LIBC
+ __fxprintf (NULL, "%s:", program_name);
+#else
+ fprintf (stderr, "%s:", program_name);
+#endif
+ }
+
+#if _LIBC
+ __fxprintf (NULL, file_name != NULL ? "%s:%d: " : " ",
+ file_name, line_number);
+#else
+ fprintf (stderr, file_name != NULL ? "%s:%d: " : " ",
+ file_name, line_number);
+#endif
+
+ va_start (args, message);
+ error_tail (status, errnum, message, args);
+
+#ifdef _LIBC
+ _IO_funlockfile (stderr);
+# ifdef __libc_ptf_call
+ __libc_ptf_call (pthread_setcancelstate, (state, NULL), 0);
+# endif
+#endif
+}
+
+#ifdef _LIBC
+/* Make the weak alias. */
+# undef error
+# undef error_at_line
+weak_alias (__error, error)
+weak_alias (__error_at_line, error_at_line)
+#endif
diff --git a/gnu/error.h b/gnu/error.h
new file mode 100644
index 00000000..80ad99b7
--- /dev/null
+++ b/gnu/error.h
@@ -0,0 +1,67 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Declaration for error-reporting function
+ Copyright (C) 1995-1997, 2003, 2006, 2008-2012 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 _ERROR_H
+#define _ERROR_H 1
+
+/* 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 _GL_ATTRIBUTE_FORMAT 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 _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+#else
+# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Print a message with 'fprintf (stderr, FORMAT, ...)';
+ if ERRNUM is nonzero, follow it with ": " and strerror (ERRNUM).
+ If STATUS is nonzero, terminate the program with 'exit (STATUS)'. */
+
+extern void error (int __status, int __errnum, const char *__format, ...)
+ _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4));
+
+extern void error_at_line (int __status, int __errnum, const char *__fname,
+ unsigned int __lineno, const char *__format, ...)
+ _GL_ATTRIBUTE_FORMAT ((__printf__, 5, 6));
+
+/* If NULL, error will flush stdout, then print on stderr the program
+ name, a colon and a space. Otherwise, error will call this
+ function without parameters instead. */
+extern void (*error_print_progname) (void);
+
+/* This variable is incremented each time 'error' is called. */
+extern unsigned int error_message_count;
+
+/* Sometimes we want to have at most one error per line. This
+ variable controls whether this mode is selected or not. */
+extern int error_one_per_line;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* error.h */
diff --git a/gnu/exclude.c b/gnu/exclude.c
new file mode 100644
index 00000000..977dccd7
--- /dev/null
+++ b/gnu/exclude.c
@@ -0,0 +1,580 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* exclude.c -- exclude file names
+
+ Copyright (C) 1992-1994, 1997, 1999-2007, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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;
+}
+
+static void
+unescape_pattern (char *str)
+{
+ int inset = 0;
+ char *q = str;
+ do
+ {
+ if (inset)
+ {
+ if (*q == ']')
+ inset = 0;
+ }
+ else if (*q == '[')
+ inset = 1;
+ else if (*q == '\\')
+ q++;
+ }
+ while ((*str++ = *q++));
+}
+
+/* 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 (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);
+ if (options & EXCLUDE_WILDCARDS)
+ unescape_pattern (str);
+ 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/gnu/exclude.h b/gnu/exclude.h
new file mode 100644
index 00000000..bd5c2ebf
--- /dev/null
+++ b/gnu/exclude.h
@@ -0,0 +1,54 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* exclude.h -- declarations for excluding file names
+
+ Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2012 Free
+ Software Foundation, Inc.
+
+ This 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_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. */
+
+/* Patterns must match the start of file names, instead of matching
+ anywhere after a '/'. */
+#define EXCLUDE_ANCHORED (1 << 30)
+
+/* Include instead of exclude. */
+#define EXCLUDE_INCLUDE (1 << 29)
+
+/* '?', '*', '[', and '\\' are special in patterns. Without this
+ option, these characters are ordinary and fnmatch is not used. */
+#define EXCLUDE_WILDCARDS (1 << 28)
+
+struct exclude;
+
+bool fnmatch_pattern_has_wildcards (const char *, int) _GL_ATTRIBUTE_PURE;
+
+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);
+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/gnu/exitfail.c b/gnu/exitfail.c
new file mode 100644
index 00000000..64d27668
--- /dev/null
+++ b/gnu/exitfail.c
@@ -0,0 +1,26 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Failure exit status
+
+ Copyright (C) 2002-2003, 2005-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 "exitfail.h"
+
+#include <stdlib.h>
+
+int volatile exit_failure = EXIT_FAILURE;
diff --git a/gnu/exitfail.h b/gnu/exitfail.h
new file mode 100644
index 00000000..0f63bc57
--- /dev/null
+++ b/gnu/exitfail.h
@@ -0,0 +1,20 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Failure exit status
+
+ Copyright (C) 2002, 2009-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+extern int volatile exit_failure;
diff --git a/gnu/fchdir.c b/gnu/fchdir.c
new file mode 100644
index 00000000..90f76568
--- /dev/null
+++ b/gnu/fchdir.c
@@ -0,0 +1,210 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* fchdir replacement.
+ Copyright (C) 2006-2012 Free Software Foundation, Inc.
+
+ This 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>
+
+#include "dosname.h"
+#include "filenamecat.h"
+
+#ifndef REPLACE_OPEN_DIRECTORY
+# define REPLACE_OPEN_DIRECTORY 0
+#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 an absolute name of DIR in malloc'd storage. */
+static char *
+get_name (char const *dir)
+{
+ char *cwd;
+ char *result;
+ int saved_errno;
+
+ if (IS_ABSOLUTE_FILE_NAME (dir))
+ return strdup (dir);
+
+ /* We often encounter "."; treat it as a special case. */
+ cwd = getcwd (NULL, 0);
+ if (!cwd || (dir[0] == '.' && dir[1] == '\0'))
+ return cwd;
+
+ result = mfile_name_concat (cwd, dir, NULL);
+ saved_errno = errno;
+ free (cwd);
+ errno = saved_errno;
+ 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;
+}
+
+
+/* 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/gnu/fchown-stub.c b/gnu/fchown-stub.c
new file mode 100644
index 00000000..b4650031
--- /dev/null
+++ b/gnu/fchown-stub.c
@@ -0,0 +1,18 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#include <config.h>
+
+#include <sys/types.h>
+#include <errno.h>
+
+/* A trivial substitute for 'fchown'.
+
+ DJGPP 2.03 and earlier (and perhaps later) don't have 'fchown',
+ so we pretend no-one has permission for this operation. */
+
+int
+fchown (int fd, uid_t uid, gid_t gid)
+{
+ errno = EPERM;
+ return -1;
+}
diff --git a/gnu/fcntl.c b/gnu/fcntl.c
new file mode 100644
index 00000000..21bd291e
--- /dev/null
+++ b/gnu/fcntl.c
@@ -0,0 +1,313 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Provide file descriptor control.
+
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 native Windows API functions. */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+
+/* Get _get_osfhandle. */
+# include "msvc-nothrow.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
+ {
+ /* Haiku alpha 2 loses fd flags on original. */
+ int flags = fcntl (fd, F_GETFD);
+ if (flags < 0)
+ {
+ result = -1;
+ break;
+ }
+ result = fcntl (fd, action, target);
+ if (0 <= result && fcntl (fd, F_SETFD, flags) == -1)
+ {
+ int saved_errno = errno;
+ close (result);
+ result = -1;
+ errno = saved_errno;
+ }
+# 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 00000000..57a561ef
--- /dev/null
+++ b/gnu/fcntl.in.h
@@ -0,0 +1,333 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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
+@PRAGMA_COLUMNS@
+
+#if defined __need_system_fcntl_h
+/* Special invocation convention. */
+
+#include <sys/types.h>
+/* On some systems other than glibc, <sys/stat.h> is a prerequisite of
+ <fcntl.h>. On glibc systems, we would like to avoid namespace pollution.
+ But on glibc systems, <fcntl.h> includes <sys/stat.h> inside an
+ extern "C" { ... } block, which leads to errors in C++ mode with the
+ overridden <sys/stat.h> from gnulib. These errors are known to be gone
+ with g++ version >= 4.3. */
+#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))
+# include <sys/stat.h>
+#endif
+#@INCLUDE_NEXT@ @NEXT_FCNTL_H@
+
+#else
+/* Normal invocation convention. */
+
+#ifndef _@GUARD_PREFIX@_FCNTL_H
+
+#include <sys/types.h>
+/* On some systems other than glibc, <sys/stat.h> is a prerequisite of
+ <fcntl.h>. On glibc systems, we would like to avoid namespace pollution.
+ But on glibc systems, <fcntl.h> includes <sys/stat.h> inside an
+ extern "C" { ... } block, which leads to errors in C++ mode with the
+ overridden <sys/stat.h> from gnulib. These errors are known to be gone
+ with g++ version >= 4.3. */
+#if !(defined __GLIBC__ || defined __UCLIBC__) || (defined __cplusplus && defined GNULIB_NAMESPACE && !(__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)))
+# include <sys/stat.h>
+#endif
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_FCNTL_H@
+
+#ifndef _@GUARD_PREFIX@_FCNTL_H
+#define _@GUARD_PREFIX@_FCNTL_H
+
+#ifndef __GLIBC__ /* Avoid namespace pollution on glibc systems. */
+# include <unistd.h>
+#endif
+
+/* Native Windows platforms declare open(), creat() in <io.h>. */
+#if (@GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \
+ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+# include <io.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
+/* On HP-UX 11, in C++ mode, open() is defined as an inline function with a
+ default argument. _GL_CXXALIASWARN does not work in this case. */
+# if !defined __hpux
+_GL_CXXALIASWARN (open);
+# endif
+#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'. */
+# define O_CLOEXEC O_NOINHERIT
+#endif
+
+#ifndef O_CLOEXEC
+# define O_CLOEXEC 0
+#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_EXEC
+# define O_EXEC O_RDONLY /* This is often close enough in older systems. */
+#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
+
+/* If the gnulib module 'nonblocking' is in use, guarantee a working non-zero
+ value of O_NONBLOCK. Otherwise, O_NONBLOCK is defined (above) to O_NDELAY
+ or to 0 as fallback. */
+#if @GNULIB_NONBLOCKING@
+# if O_NONBLOCK
+# define GNULIB_defined_O_NONBLOCK 0
+# else
+# define GNULIB_defined_O_NONBLOCK 1
+# undef O_NONBLOCK
+# define O_NONBLOCK 0x40000000
+# endif
+#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_SEARCH
+# define O_SEARCH O_RDONLY /* This is often close enough in older systems. */
+#endif
+
+#ifndef O_SYNC
+# define O_SYNC 0
+#endif
+
+#ifndef O_TTY_INIT
+# define O_TTY_INIT 0
+#endif
+
+#if O_ACCMODE != (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH)
+# undef O_ACCMODE
+# define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR | O_EXEC | O_SEARCH)
+#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 /* _@GUARD_PREFIX@_FCNTL_H */
+#endif /* _@GUARD_PREFIX@_FCNTL_H */
+#endif
diff --git a/gnu/fd-hook.c b/gnu/fd-hook.c
new file mode 100644
index 00000000..86f79e34
--- /dev/null
+++ b/gnu/fd-hook.c
@@ -0,0 +1,118 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Hook for making making file descriptor functions close(), ioctl() extensible.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2009.
+
+ This program is free software: you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published
+ by the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <config.h>
+
+/* Specification. */
+#include "fd-hook.h"
+
+#include <stdlib.h>
+
+/* 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 fd_hook anchor = { &anchor, &anchor, NULL, NULL };
+
+int
+execute_close_hooks (const struct fd_hook *remaining_list, gl_close_fn primary,
+ int fd)
+{
+ if (remaining_list == &anchor)
+ /* End of list reached. */
+ return primary (fd);
+ else
+ return remaining_list->private_close_fn (remaining_list->private_next,
+ primary, fd);
+}
+
+int
+execute_all_close_hooks (gl_close_fn primary, int fd)
+{
+ return execute_close_hooks (anchor.private_next, primary, fd);
+}
+
+int
+execute_ioctl_hooks (const struct fd_hook *remaining_list, gl_ioctl_fn primary,
+ int fd, int request, void *arg)
+{
+ if (remaining_list == &anchor)
+ /* End of list reached. */
+ return primary (fd, request, arg);
+ else
+ return remaining_list->private_ioctl_fn (remaining_list->private_next,
+ primary, fd, request, arg);
+}
+
+int
+execute_all_ioctl_hooks (gl_ioctl_fn primary,
+ int fd, int request, void *arg)
+{
+ return execute_ioctl_hooks (anchor.private_next, primary, fd, request, arg);
+}
+
+void
+register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook, struct fd_hook *link)
+{
+ if (close_hook == NULL)
+ close_hook = execute_close_hooks;
+ if (ioctl_hook == NULL)
+ ioctl_hook = execute_ioctl_hooks;
+
+ 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_close_fn = close_hook;
+ link->private_ioctl_fn = ioctl_hook;
+ anchor.private_next->private_prev = link;
+ anchor.private_next = link;
+ }
+ else
+ {
+ /* The link is already in use. */
+ if (link->private_close_fn != close_hook
+ || link->private_ioctl_fn != ioctl_hook)
+ abort ();
+ }
+}
+
+void
+unregister_fd_hook (struct fd_hook *link)
+{
+ struct fd_hook *next = link->private_next;
+ struct fd_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_close_fn = NULL;
+ link->private_ioctl_fn = NULL;
+ }
+}
+
+#endif
diff --git a/gnu/fd-hook.h b/gnu/fd-hook.h
new file mode 100644
index 00000000..a109df75
--- /dev/null
+++ b/gnu/fd-hook.h
@@ -0,0 +1,121 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Hook for making making file descriptor functions close(), ioctl() extensible.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 FD_HOOK_H
+#define FD_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
+
+
+/* Type of function that closes FD. */
+typedef int (*gl_close_fn) (int fd);
+
+/* Type of function that applies a control request to FD. */
+typedef int (*gl_ioctl_fn) (int fd, int request, void *arg);
+
+/* An element of the list of file descriptor hooks.
+ In CLOS (Common Lisp Object System) speak, it consists of an "around"
+ method for the close() function and an "around" method for the ioctl()
+ function.
+ The fields of this structure are considered private. */
+struct fd_hook
+{
+ /* Doubly linked list. */
+ struct fd_hook *private_next;
+ struct fd_hook *private_prev;
+ /* Function that treats the types of FD that it knows about and calls
+ execute_close_hooks (REMAINING_LIST, PRIMARY, FD) as a fallback. */
+ int (*private_close_fn) (const struct fd_hook *remaining_list,
+ gl_close_fn primary,
+ int fd);
+ /* Function that treats the types of FD that it knows about and calls
+ execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG) as a
+ fallback. */
+ int (*private_ioctl_fn) (const struct fd_hook *remaining_list,
+ gl_ioctl_fn primary,
+ int fd, int request, void *arg);
+};
+
+/* This type of function closes FD, applying special knowledge for the FD
+ types it knows about, and calls
+ execute_close_hooks (REMAINING_LIST, PRIMARY, FD)
+ for the other FD types.
+ In CLOS speak, REMAINING_LIST is the remaining list of "around" methods,
+ and PRIMARY is the "primary" method for close(). */
+typedef int (*close_hook_fn) (const struct fd_hook *remaining_list,
+ gl_close_fn primary,
+ int fd);
+
+/* Execute the close hooks in REMAINING_LIST, with PRIMARY as "primary" method.
+ Return 0 or -1, like close() would do. */
+extern int execute_close_hooks (const struct fd_hook *remaining_list,
+ gl_close_fn primary,
+ int fd);
+
+/* Execute all close hooks, with PRIMARY as "primary" method.
+ Return 0 or -1, like close() would do. */
+extern int execute_all_close_hooks (gl_close_fn primary, int fd);
+
+/* This type of function applies a control request to FD, applying special
+ knowledge for the FD types it knows about, and calls
+ execute_ioctl_hooks (REMAINING_LIST, PRIMARY, FD, REQUEST, ARG)
+ for the other FD types.
+ In CLOS speak, REMAINING_LIST is the remaining list of "around" methods,
+ and PRIMARY is the "primary" method for ioctl(). */
+typedef int (*ioctl_hook_fn) (const struct fd_hook *remaining_list,
+ gl_ioctl_fn primary,
+ int fd, int request, void *arg);
+
+/* Execute the ioctl hooks in REMAINING_LIST, with PRIMARY as "primary" method.
+ Return 0 or -1, like ioctl() would do. */
+extern int execute_ioctl_hooks (const struct fd_hook *remaining_list,
+ gl_ioctl_fn primary,
+ int fd, int request, void *arg);
+
+/* Execute all ioctl hooks, with PRIMARY as "primary" method.
+ Return 0 or -1, like ioctl() would do. */
+extern int execute_all_ioctl_hooks (gl_ioctl_fn primary,
+ int fd, int request, void *arg);
+
+/* Add a function pair to the list of file descriptor hooks.
+ CLOSE_HOOK and IOCTL_HOOK may be NULL, indicating no change.
+ The LINK variable points to a piece of memory which is guaranteed to be
+ accessible until the corresponding call to unregister_fd_hook. */
+extern void register_fd_hook (close_hook_fn close_hook, ioctl_hook_fn ioctl_hook,
+ struct fd_hook *link);
+
+/* Removes a hook from the list of file descriptor hooks. */
+extern void unregister_fd_hook (struct fd_hook *link);
+
+
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* FD_HOOK_H */
diff --git a/gnu/fd-safer.c b/gnu/fd-safer.c
new file mode 100644
index 00000000..e3ccd8e7
--- /dev/null
+++ b/gnu/fd-safer.c
@@ -0,0 +1,51 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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 "unistd-safer.h"
+
+#include <errno.h>
+#include <unistd.h>
+
+/* Return FD, unless FD would be a copy of standard input, output, or
+ error; in that case, return a duplicate of FD, closing FD. On
+ failure to duplicate, close FD, set errno, and return -1. Preserve
+ errno if FD is negative, so that the caller can always inspect
+ errno when the returned value is negative.
+
+ This function is usefully wrapped around functions that return file
+ descriptors, e.g., fd_safer (open ("file", O_RDONLY)). */
+
+int
+fd_safer (int fd)
+{
+ if (STDIN_FILENO <= fd && fd <= STDERR_FILENO)
+ {
+ int f = dup_safer (fd);
+ int e = errno;
+ close (fd);
+ errno = e;
+ fd = f;
+ }
+
+ return fd;
+}
diff --git a/gnu/fdopendir.c b/gnu/fdopendir.c
new file mode 100644
index 00000000..ca3a8ccc
--- /dev/null
+++ b/gnu/fdopendir.c
@@ -0,0 +1,206 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* provide a replacement fdopendir function
+ Copyright (C) 2004-2012 Free Software Foundation, Inc.
+
+ This 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
+
+# ifndef REPLACE_FCHDIR
+# define REPLACE_FCHDIR 0
+# endif
+
+static DIR *fdopendir_with_dup (int, int, struct saved_cwd const *);
+static DIR *fd_clone_opendir (int, struct saved_cwd const *);
+
+/* Replacement for POSIX fdopendir.
+
+ First, try to simulate it via opendir ("/proc/self/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.
+
+ If successful, the resulting stream is based on FD in
+ implementations where streams are based on file descriptors and in
+ applications where no other thread or signal handler allocates or
+ frees file descriptors. In other cases, consult dirfd on the result
+ to find out whether FD is still being used.
+
+ Otherwise, this function works just like POSIX fdopendir.
+
+ W A R N I N G:
+
+ Unlike other fd-related functions, this one places constraints on FD.
+ If this function returns successfully, FD is under control of the
+ dirent.h system, and the caller should not close or modify the state of
+ FD other than by the dirent.h functions. */
+DIR *
+fdopendir (int fd)
+{
+ DIR *dir = fdopendir_with_dup (fd, -1, NULL);
+
+ if (! REPLACE_FCHDIR && ! dir)
+ {
+ int saved_errno = errno;
+ if (EXPECTED_ERRNO (saved_errno))
+ {
+ struct saved_cwd cwd;
+ if (save_cwd (&cwd) != 0)
+ openat_save_fail (errno);
+ dir = fdopendir_with_dup (fd, -1, &cwd);
+ saved_errno = errno;
+ free_cwd (&cwd);
+ errno = saved_errno;
+ }
+ }
+
+ return dir;
+}
+
+/* Like fdopendir, except that if OLDER_DUPFD is not -1, it is known
+ to be a dup of FD which is less than FD - 1 and which will be
+ closed by the caller and not otherwise used by the caller. This
+ function makes sure that FD is closed and all file descriptors less
+ than FD are open, and then calls fd_clone_opendir on a dup of FD.
+ That way, barring race conditions, fd_clone_opendir returns a
+ stream whose file descriptor is FD.
+
+ If REPLACE_CHDIR or CWD is null, use opendir ("/proc/self/fd/...",
+ falling back on fchdir metadata. Otherwise, CWD is a saved version
+ of the working directory; use fchdir/opendir(".")/restore_cwd(CWD). */
+static DIR *
+fdopendir_with_dup (int fd, int older_dupfd, struct saved_cwd const *cwd)
+{
+ int dupfd = dup (fd);
+ if (dupfd < 0 && errno == EMFILE)
+ dupfd = older_dupfd;
+ if (dupfd < 0)
+ return NULL;
+ else
+ {
+ DIR *dir;
+ int saved_errno;
+ if (dupfd < fd - 1 && dupfd != older_dupfd)
+ {
+ dir = fdopendir_with_dup (fd, dupfd, cwd);
+ saved_errno = errno;
+ }
+ else
+ {
+ close (fd);
+ dir = fd_clone_opendir (dupfd, cwd);
+ saved_errno = errno;
+ if (! dir)
+ {
+ int fd1 = dup (dupfd);
+ if (fd1 != fd)
+ openat_save_fail (fd1 < 0 ? errno : EBADF);
+ }
+ }
+
+ if (dupfd != older_dupfd)
+ close (dupfd);
+ errno = saved_errno;
+ return dir;
+ }
+}
+
+/* Like fdopendir, except the result controls a clone of FD. It is
+ the caller's responsibility both to close FD and (if the result is
+ not null) to closedir the result. */
+static DIR *
+fd_clone_opendir (int fd, struct saved_cwd const *cwd)
+{
+ if (REPLACE_FCHDIR || ! cwd)
+ {
+ DIR *dir = NULL;
+ int saved_errno = EOPNOTSUPP;
+ char buf[OPENAT_BUFFER_SIZE];
+ char *proc_file = openat_proc_name (buf, fd, ".");
+ if (proc_file)
+ {
+ dir = opendir (proc_file);
+ saved_errno = errno;
+ if (proc_file != buf)
+ free (proc_file);
+ }
+# if REPLACE_FCHDIR
+ if (! dir && EXPECTED_ERRNO (saved_errno))
+ {
+ char const *name = _gl_directory_name (fd);
+ return (name ? opendir (name) : NULL);
+ }
+# endif
+ errno = saved_errno;
+ return dir;
+ }
+ else
+ {
+ if (fchdir (fd) != 0)
+ return NULL;
+ else
+ {
+ DIR *dir = opendir (".");
+ int saved_errno = errno;
+ if (restore_cwd (cwd) != 0)
+ openat_restore_fail (errno);
+ 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/fdutimensat.c b/gnu/fdutimensat.c
new file mode 100644
index 00000000..7ee140e5
--- /dev/null
+++ b/gnu/fdutimensat.c
@@ -0,0 +1,59 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Set file access and modification times.
+
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Eric Blake. */
+
+/* derived from a function in utimens.c */
+
+#include <config.h>
+
+#include "utimens.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+/* Set the access and modification time stamps of FD (a.k.a. FILE) to be
+ TIMESPEC[0] and TIMESPEC[1], respectively; relative to directory DIR.
+ 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.
+ ATFLAG is passed to utimensat if FD is negative or futimens was
+ unsupported, which can allow operation on FILE as a symlink.
+ Return 0 on success, -1 (setting errno) on failure. */
+
+int
+fdutimensat (int fd, int dir, char const *file, struct timespec const ts[2],
+ int atflag)
+{
+ int result = 1;
+ if (0 <= fd)
+ result = futimens (fd, ts);
+ if (file && (fd < 0 || (result == -1 && errno == ENOSYS)))
+ result = utimensat (dir, file, ts, atflag);
+ if (result == 1)
+ {
+ errno = EBADF;
+ result = -1;
+ }
+ return result;
+}
diff --git a/gnu/fileblocks.c b/gnu/fileblocks.c
new file mode 100644
index 00000000..49b0eb6a
--- /dev/null
+++ b/gnu/fileblocks.c
@@ -0,0 +1,76 @@
+/* -*- 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-1999, 2004-2006, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 Brian L. Matthews, blm@6sceng.UUCP. */
+
+#include <config.h>
+
+#include <sys/types.h>
+
+#if HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+
+#if !HAVE_STRUCT_STAT_ST_BLOCKS && !defined _POSIX_SOURCE && defined BSIZE
+
+# include <unistd.h>
+
+# ifndef NINDIR
+
+# if defined __DJGPP__
+typedef long daddr_t; /* for disk address */
+# endif
+
+/* Some SysV's, like Irix, seem to lack this. Hope it's correct. */
+/* Number of inode pointers per indirect block. */
+# define NINDIR (BSIZE / sizeof (daddr_t))
+# endif /* !NINDIR */
+
+/* Number of direct block addresses in an inode. */
+# define NDIR 10
+
+/* Return the number of 512-byte blocks in a file of SIZE bytes. */
+
+off_t
+st_blocks (off_t size)
+{
+ off_t datablks = size / 512 + (size % 512 != 0);
+ off_t indrblks = 0;
+
+ if (datablks > NDIR)
+ {
+ indrblks = (datablks - NDIR - 1) / NINDIR + 1;
+
+ if (datablks > NDIR + NINDIR)
+ {
+ indrblks += (datablks - NDIR - NINDIR - 1) / (NINDIR * NINDIR) + 1;
+
+ if (datablks > NDIR + NINDIR + NINDIR * NINDIR)
+ indrblks++;
+ }
+ }
+
+ return datablks + indrblks;
+}
+#else
+/* This declaration is solely to ensure that after preprocessing
+ this file is never empty. */
+typedef int textutils_fileblocks_unused;
+#endif
diff --git a/gnu/filename.h b/gnu/filename.h
new file mode 100644
index 00000000..bc17d2db
--- /dev/null
+++ b/gnu/filename.h
@@ -0,0 +1,56 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Basic filename support macros.
+ Copyright (C) 2001-2004, 2007-2012 Free Software Foundation, Inc.
+
+ This 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 _FILENAME_H
+#define _FILENAME_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Pathname support.
+ ISSLASH(C) tests whether C is a directory separator character.
+ IS_ABSOLUTE_PATH(P) tests whether P is an absolute path. If it is not,
+ it may be concatenated to a directory pathname.
+ IS_PATH_WITH_DIR(P) tests whether P contains a directory specification.
+ */
+#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__
+ /* Native Windows, Cygwin, OS/2, DOS */
+# define ISSLASH(C) ((C) == '/' || (C) == '\\')
+# define HAS_DEVICE(P) \
+ ((((P)[0] >= 'A' && (P)[0] <= 'Z') || ((P)[0] >= 'a' && (P)[0] <= 'z')) \
+ && (P)[1] == ':')
+# define IS_ABSOLUTE_PATH(P) (ISSLASH ((P)[0]) || HAS_DEVICE (P))
+# define IS_PATH_WITH_DIR(P) \
+ (strchr (P, '/') != NULL || strchr (P, '\\') != NULL || HAS_DEVICE (P))
+# define FILE_SYSTEM_PREFIX_LEN(P) (HAS_DEVICE (P) ? 2 : 0)
+#else
+ /* Unix */
+# define ISSLASH(C) ((C) == '/')
+# define IS_ABSOLUTE_PATH(P) ISSLASH ((P)[0])
+# define IS_PATH_WITH_DIR(P) (strchr (P, '/') != NULL)
+# define FILE_SYSTEM_PREFIX_LEN(P) 0
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _FILENAME_H */
diff --git a/gnu/filenamecat-lgpl.c b/gnu/filenamecat-lgpl.c
new file mode 100644
index 00000000..deddcccd
--- /dev/null
+++ b/gnu/filenamecat-lgpl.c
@@ -0,0 +1,90 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Concatenate two arbitrary file names.
+
+ Copyright (C) 1996-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 "filenamecat.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "dirname.h"
+
+#if ! HAVE_MEMPCPY && ! defined mempcpy
+# define mempcpy(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N)))
+#endif
+
+/* Return the longest suffix of F that is a relative file name.
+ If it has no such suffix, return the empty string. */
+
+static char const * _GL_ATTRIBUTE_PURE
+longest_relative_suffix (char const *f)
+{
+ for (f += FILE_SYSTEM_PREFIX_LEN (f); ISSLASH (*f); f++)
+ continue;
+ return f;
+}
+
+/* Concatenate two file name components, DIR and ABASE, in
+ newly-allocated storage and return the result.
+ The resulting file name F is such that the commands "ls F" and "(cd
+ DIR; ls BASE)" refer to the same file, where BASE is ABASE with any
+ file system prefixes and leading separators removed.
+ Arrange for a directory separator if necessary between DIR and BASE
+ in the result, removing any redundant separators.
+ In any case, if BASE_IN_RESULT is non-NULL, set
+ *BASE_IN_RESULT to point to the copy of ABASE in the returned
+ concatenation. However, if ABASE begins with more than one slash,
+ set *BASE_IN_RESULT to point to the sole corresponding slash that
+ is copied into the result buffer.
+
+ Return NULL if malloc fails. */
+
+char *
+mfile_name_concat (char const *dir, char const *abase, char **base_in_result)
+{
+ char const *dirbase = last_component (dir);
+ size_t dirbaselen = base_len (dirbase);
+ size_t dirlen = dirbase - dir + dirbaselen;
+ size_t needs_separator = (dirbaselen && ! ISSLASH (dirbase[dirbaselen - 1]));
+
+ char const *base = longest_relative_suffix (abase);
+ size_t baselen = strlen (base);
+
+ char *p_concat = malloc (dirlen + needs_separator + baselen + 1);
+ char *p;
+
+ if (p_concat == NULL)
+ return NULL;
+
+ p = mempcpy (p_concat, dir, dirlen);
+ *p = DIRECTORY_SEPARATOR;
+ p += needs_separator;
+
+ if (base_in_result)
+ *base_in_result = p - IS_ABSOLUTE_FILE_NAME (abase);
+
+ p = mempcpy (p, base, baselen);
+ *p = '\0';
+
+ return p_concat;
+}
diff --git a/gnu/filenamecat.h b/gnu/filenamecat.h
new file mode 100644
index 00000000..a9088627
--- /dev/null
+++ b/gnu/filenamecat.h
@@ -0,0 +1,29 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Concatenate two arbitrary file names.
+
+ Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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. */
+
+#if GNULIB_FILENAMECAT
+char *file_name_concat (char const *dir, char const *base,
+ char **base_in_result);
+#endif
+
+char *mfile_name_concat (char const *dir, char const *base,
+ char **base_in_result);
diff --git a/gnu/float+.h b/gnu/float+.h
new file mode 100644
index 00000000..0b72de9d
--- /dev/null
+++ b/gnu/float+.h
@@ -0,0 +1,150 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Supplemental information about the floating-point formats.
+ Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ This 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 _FLOATPLUS_H
+#define _FLOATPLUS_H
+
+#include <float.h>
+#include <limits.h>
+
+/* Number of bits in the mantissa of a floating-point number, including the
+ "hidden bit". */
+#if FLT_RADIX == 2
+# define FLT_MANT_BIT FLT_MANT_DIG
+# define DBL_MANT_BIT DBL_MANT_DIG
+# define LDBL_MANT_BIT LDBL_MANT_DIG
+#elif FLT_RADIX == 4
+# define FLT_MANT_BIT (FLT_MANT_DIG * 2)
+# define DBL_MANT_BIT (DBL_MANT_DIG * 2)
+# define LDBL_MANT_BIT (LDBL_MANT_DIG * 2)
+#elif FLT_RADIX == 16
+# define FLT_MANT_BIT (FLT_MANT_DIG * 4)
+# define DBL_MANT_BIT (DBL_MANT_DIG * 4)
+# define LDBL_MANT_BIT (LDBL_MANT_DIG * 4)
+#endif
+
+/* Bit mask that can be used to mask the exponent, as an unsigned number. */
+#define FLT_EXP_MASK ((FLT_MAX_EXP - FLT_MIN_EXP) | 7)
+#define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7)
+#define LDBL_EXP_MASK ((LDBL_MAX_EXP - LDBL_MIN_EXP) | 7)
+
+/* Number of bits used for the exponent of a floating-point number, including
+ the exponent's sign. */
+#define FLT_EXP_BIT \
+ (FLT_EXP_MASK < 0x100 ? 8 : \
+ FLT_EXP_MASK < 0x200 ? 9 : \
+ FLT_EXP_MASK < 0x400 ? 10 : \
+ FLT_EXP_MASK < 0x800 ? 11 : \
+ FLT_EXP_MASK < 0x1000 ? 12 : \
+ FLT_EXP_MASK < 0x2000 ? 13 : \
+ FLT_EXP_MASK < 0x4000 ? 14 : \
+ FLT_EXP_MASK < 0x8000 ? 15 : \
+ FLT_EXP_MASK < 0x10000 ? 16 : \
+ FLT_EXP_MASK < 0x20000 ? 17 : \
+ FLT_EXP_MASK < 0x40000 ? 18 : \
+ FLT_EXP_MASK < 0x80000 ? 19 : \
+ FLT_EXP_MASK < 0x100000 ? 20 : \
+ FLT_EXP_MASK < 0x200000 ? 21 : \
+ FLT_EXP_MASK < 0x400000 ? 22 : \
+ FLT_EXP_MASK < 0x800000 ? 23 : \
+ FLT_EXP_MASK < 0x1000000 ? 24 : \
+ FLT_EXP_MASK < 0x2000000 ? 25 : \
+ FLT_EXP_MASK < 0x4000000 ? 26 : \
+ FLT_EXP_MASK < 0x8000000 ? 27 : \
+ FLT_EXP_MASK < 0x10000000 ? 28 : \
+ FLT_EXP_MASK < 0x20000000 ? 29 : \
+ FLT_EXP_MASK < 0x40000000 ? 30 : \
+ FLT_EXP_MASK <= 0x7fffffff ? 31 : \
+ 32)
+#define DBL_EXP_BIT \
+ (DBL_EXP_MASK < 0x100 ? 8 : \
+ DBL_EXP_MASK < 0x200 ? 9 : \
+ DBL_EXP_MASK < 0x400 ? 10 : \
+ DBL_EXP_MASK < 0x800 ? 11 : \
+ DBL_EXP_MASK < 0x1000 ? 12 : \
+ DBL_EXP_MASK < 0x2000 ? 13 : \
+ DBL_EXP_MASK < 0x4000 ? 14 : \
+ DBL_EXP_MASK < 0x8000 ? 15 : \
+ DBL_EXP_MASK < 0x10000 ? 16 : \
+ DBL_EXP_MASK < 0x20000 ? 17 : \
+ DBL_EXP_MASK < 0x40000 ? 18 : \
+ DBL_EXP_MASK < 0x80000 ? 19 : \
+ DBL_EXP_MASK < 0x100000 ? 20 : \
+ DBL_EXP_MASK < 0x200000 ? 21 : \
+ DBL_EXP_MASK < 0x400000 ? 22 : \
+ DBL_EXP_MASK < 0x800000 ? 23 : \
+ DBL_EXP_MASK < 0x1000000 ? 24 : \
+ DBL_EXP_MASK < 0x2000000 ? 25 : \
+ DBL_EXP_MASK < 0x4000000 ? 26 : \
+ DBL_EXP_MASK < 0x8000000 ? 27 : \
+ DBL_EXP_MASK < 0x10000000 ? 28 : \
+ DBL_EXP_MASK < 0x20000000 ? 29 : \
+ DBL_EXP_MASK < 0x40000000 ? 30 : \
+ DBL_EXP_MASK <= 0x7fffffff ? 31 : \
+ 32)
+#define LDBL_EXP_BIT \
+ (LDBL_EXP_MASK < 0x100 ? 8 : \
+ LDBL_EXP_MASK < 0x200 ? 9 : \
+ LDBL_EXP_MASK < 0x400 ? 10 : \
+ LDBL_EXP_MASK < 0x800 ? 11 : \
+ LDBL_EXP_MASK < 0x1000 ? 12 : \
+ LDBL_EXP_MASK < 0x2000 ? 13 : \
+ LDBL_EXP_MASK < 0x4000 ? 14 : \
+ LDBL_EXP_MASK < 0x8000 ? 15 : \
+ LDBL_EXP_MASK < 0x10000 ? 16 : \
+ LDBL_EXP_MASK < 0x20000 ? 17 : \
+ LDBL_EXP_MASK < 0x40000 ? 18 : \
+ LDBL_EXP_MASK < 0x80000 ? 19 : \
+ LDBL_EXP_MASK < 0x100000 ? 20 : \
+ LDBL_EXP_MASK < 0x200000 ? 21 : \
+ LDBL_EXP_MASK < 0x400000 ? 22 : \
+ LDBL_EXP_MASK < 0x800000 ? 23 : \
+ LDBL_EXP_MASK < 0x1000000 ? 24 : \
+ LDBL_EXP_MASK < 0x2000000 ? 25 : \
+ LDBL_EXP_MASK < 0x4000000 ? 26 : \
+ LDBL_EXP_MASK < 0x8000000 ? 27 : \
+ LDBL_EXP_MASK < 0x10000000 ? 28 : \
+ LDBL_EXP_MASK < 0x20000000 ? 29 : \
+ LDBL_EXP_MASK < 0x40000000 ? 30 : \
+ LDBL_EXP_MASK <= 0x7fffffff ? 31 : \
+ 32)
+
+/* Number of bits used for a floating-point number: the mantissa (not
+ counting the "hidden bit", since it may or may not be explicit), the
+ exponent, and the sign. */
+#define FLT_TOTAL_BIT ((FLT_MANT_BIT - 1) + FLT_EXP_BIT + 1)
+#define DBL_TOTAL_BIT ((DBL_MANT_BIT - 1) + DBL_EXP_BIT + 1)
+#define LDBL_TOTAL_BIT ((LDBL_MANT_BIT - 1) + LDBL_EXP_BIT + 1)
+
+/* Number of bytes used for a floating-point number.
+ This can be smaller than the 'sizeof'. For example, on i386 systems,
+ 'long double' most often have LDBL_MANT_BIT = 64, LDBL_EXP_BIT = 16, hence
+ LDBL_TOTAL_BIT = 80 bits, i.e. 10 bytes of consecutive memory, but
+ sizeof (long double) = 12 or = 16. */
+#define SIZEOF_FLT ((FLT_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
+#define SIZEOF_DBL ((DBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
+#define SIZEOF_LDBL ((LDBL_TOTAL_BIT + CHAR_BIT - 1) / CHAR_BIT)
+
+/* Verify that SIZEOF_FLT <= sizeof (float) etc. */
+typedef int verify_sizeof_flt[SIZEOF_FLT <= sizeof (float) ? 1 : -1];
+typedef int verify_sizeof_dbl[SIZEOF_DBL <= sizeof (double) ? 1 : - 1];
+typedef int verify_sizeof_ldbl[SIZEOF_LDBL <= sizeof (long double) ? 1 : - 1];
+
+#endif /* _FLOATPLUS_H */
diff --git a/gnu/float.c b/gnu/float.c
new file mode 100644
index 00000000..656a972d
--- /dev/null
+++ b/gnu/float.c
@@ -0,0 +1,35 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Auxiliary definitions for <float.h>.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+ This 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 <float.h>
+
+#if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__
+const union gl_long_double_union gl_LDBL_MAX =
+ { { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL } };
+#elif defined __i386__
+const union gl_long_double_union gl_LDBL_MAX =
+ { { 0xFFFFFFFF, 0xFFFFFFFF, 32766 } };
+#else
+/* This declaration is solely to ensure that after preprocessing
+ this file is never empty. */
+typedef int dummy;
+#endif
diff --git a/gnu/float.in.h b/gnu/float.in.h
new file mode 100644
index 00000000..0afc8dd0
--- /dev/null
+++ b/gnu/float.in.h
@@ -0,0 +1,190 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A correct <float.h>.
+
+ Copyright (C) 2007-2012 Free Software Foundation, Inc.
+
+ This 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 _@GUARD_PREFIX@_FLOAT_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_FLOAT_H@
+
+#ifndef _@GUARD_PREFIX@_FLOAT_H
+#define _@GUARD_PREFIX@_FLOAT_H
+
+/* 'long double' properties. */
+
+#if defined __i386__ && (defined __BEOS__ || defined __OpenBSD__)
+/* Number of mantissa units, in base FLT_RADIX. */
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG 64
+/* Number of decimal digits that is sufficient for representing a number. */
+# undef LDBL_DIG
+# define LDBL_DIG 18
+/* x-1 where x is the smallest representable number > 1. */
+# undef LDBL_EPSILON
+# define LDBL_EPSILON 1.0842021724855044340E-19L
+/* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP (-16381)
+/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */
+# undef LDBL_MAX_EXP
+# define LDBL_MAX_EXP 16384
+/* Minimum positive normalized number. */
+# undef LDBL_MIN
+# define LDBL_MIN 3.3621031431120935063E-4932L
+/* Maximum representable finite number. */
+# undef LDBL_MAX
+# define LDBL_MAX 1.1897314953572317650E+4932L
+/* Minimum e such that 10^e is in the range of normalized numbers. */
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP (-4931)
+/* Maximum e such that 10^e is in the range of representable finite numbers. */
+# undef LDBL_MAX_10_EXP
+# define LDBL_MAX_10_EXP 4932
+#endif
+
+/* On FreeBSD/x86 6.4, the 'long double' type really has only 53 bits of
+ precision in the compiler but 64 bits of precision at runtime. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2008-07/msg00063.html>. */
+#if defined __i386__ && defined __FreeBSD__
+/* Number of mantissa units, in base FLT_RADIX. */
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG 64
+/* Number of decimal digits that is sufficient for representing a number. */
+# undef LDBL_DIG
+# define LDBL_DIG 18
+/* x-1 where x is the smallest representable number > 1. */
+# undef LDBL_EPSILON
+# define LDBL_EPSILON 1.084202172485504434007452800869941711426e-19L /* 2^-63 */
+/* Minimum e such that FLT_RADIX^(e-1) is a normalized number. */
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP (-16381)
+/* Maximum e such that FLT_RADIX^(e-1) is a representable finite number. */
+# undef LDBL_MAX_EXP
+# define LDBL_MAX_EXP 16384
+/* Minimum positive normalized number. */
+# undef LDBL_MIN
+# define LDBL_MIN 3.3621031431120935E-4932L /* = 0x1p-16382L */
+/* Maximum representable finite number. */
+# undef LDBL_MAX
+/* LDBL_MAX is represented as { 0xFFFFFFFF, 0xFFFFFFFF, 32766 }.
+ But the largest literal that GCC allows us to write is
+ 0x0.fffffffffffff8p16384L = { 0xFFFFF800, 0xFFFFFFFF, 32766 }.
+ So, define it like this through a reference to an external variable
+
+ const unsigned int LDBL_MAX[3] = { 0xFFFFFFFF, 0xFFFFFFFF, 32766 };
+ extern const long double LDBL_MAX;
+
+ Unfortunately, this is not a constant expression. */
+union gl_long_double_union
+ {
+ struct { unsigned int lo; unsigned int hi; unsigned int exponent; } xd;
+ long double ld;
+ };
+extern const union gl_long_double_union gl_LDBL_MAX;
+# define LDBL_MAX (gl_LDBL_MAX.ld)
+/* Minimum e such that 10^e is in the range of normalized numbers. */
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP (-4931)
+/* Maximum e such that 10^e is in the range of representable finite numbers. */
+# undef LDBL_MAX_10_EXP
+# define LDBL_MAX_10_EXP 4932
+#endif
+
+/* On AIX 7.1 with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_MAX are
+ wrong.
+ On Linux/PowerPC with gcc 4.4, the value of LDBL_MAX is wrong. */
+#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP DBL_MIN_10_EXP
+# undef LDBL_MIN
+# define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */
+#endif
+#if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__
+# undef LDBL_MAX
+/* LDBL_MAX is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xFFFFFFFF }.
+ It is not easy to define:
+ #define LDBL_MAX 1.79769313486231580793728971405302307166e308L
+ is too small, whereas
+ #define LDBL_MAX 1.79769313486231580793728971405302307167e308L
+ is too large. Apparently a bug in GCC decimal-to-binary conversion.
+ Also, I can't get values larger than
+ #define LDBL63 ((long double) (1ULL << 63))
+ #define LDBL882 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+ #define LDBL945 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+ #define LDBL1008 (LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63 * LDBL63)
+ #define LDBL_MAX (LDBL1008 * 65535.0L + LDBL945 * (long double) 9223372036821221375ULL + LDBL882 * (long double) 4611686018427387904ULL)
+ which is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xF8000000 }.
+ So, define it like this through a reference to an external variable
+
+ const double LDBL_MAX[2] = { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL };
+ extern const long double LDBL_MAX;
+
+ or through a pointer cast
+
+ #define LDBL_MAX \
+ (*(const long double *) (double[]) { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL })
+
+ Unfortunately, this is not a constant expression, and the latter expression
+ does not work well when GCC is optimizing.. */
+union gl_long_double_union
+ {
+ struct { double hi; double lo; } dd;
+ long double ld;
+ };
+extern const union gl_long_double_union gl_LDBL_MAX;
+# define LDBL_MAX (gl_LDBL_MAX.ld)
+#endif
+
+/* On IRIX 6.5, with cc, the value of LDBL_MANT_DIG is wrong.
+ On IRIX 6.5, with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_EPSILON
+ are wrong. */
+#if defined __sgi && (LDBL_MANT_DIG >= 106)
+# undef LDBL_MANT_DIG
+# define LDBL_MANT_DIG 106
+# if defined __GNUC__
+# undef LDBL_MIN_EXP
+# define LDBL_MIN_EXP DBL_MIN_EXP
+# undef LDBL_MIN_10_EXP
+# define LDBL_MIN_10_EXP DBL_MIN_10_EXP
+# undef LDBL_MIN
+# define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */
+# undef LDBL_EPSILON
+# define LDBL_EPSILON 2.46519032881566189191165176650870696773e-32L /* 2^-105 */
+# endif
+#endif
+
+#if @REPLACE_ITOLD@
+/* Pull in a function that fixes the 'int' to 'long double' conversion
+ of glibc 2.7. */
+extern
+# ifdef __cplusplus
+"C"
+# endif
+void _Qp_itoq (long double *, int);
+static void (*_gl_float_fix_itold) (long double *, int) = _Qp_itoq;
+#endif
+
+#endif /* _@GUARD_PREFIX@_FLOAT_H */
+#endif /* _@GUARD_PREFIX@_FLOAT_H */
diff --git a/gnu/fnmatch.c b/gnu/fnmatch.c
new file mode 100644
index 00000000..b9c8f3f7
--- /dev/null
+++ b/gnu/fnmatch.c
@@ -0,0 +1,353 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 1991-1993, 1996-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 _LIBC
+# include <config.h>
+#endif
+
+/* Enable GNU extensions in fnmatch.h. */
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE 1
+#endif
+
+#if ! defined __builtin_expect && __GNUC__ < 3
+# define __builtin_expect(expr, expected) (expr)
+#endif
+
+#include <fnmatch.h>
+
+#include <alloca.h>
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <stddef.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define WIDE_CHAR_SUPPORT \
+ (HAVE_WCTYPE_H && HAVE_BTOWC && HAVE_ISWCTYPE \
+ && HAVE_WMEMCHR && (HAVE_WMEMCPY || HAVE_WMEMPCPY))
+
+/* For platform which support the ISO C amendement 1 functionality we
+ support user defined character classes. */
+#if defined _LIBC || WIDE_CHAR_SUPPORT
+# include <wctype.h>
+# include <wchar.h>
+#endif
+
+/* We need some of the locale data (the collation sequence information)
+ but there is no interface to get this information in general. Therefore
+ we support a correct implementation only in glibc. */
+#ifdef _LIBC
+# include "../locale/localeinfo.h"
+# include "../locale/elem-hash.h"
+# include "../locale/coll-lookup.h"
+# include <shlib-compat.h>
+
+# define CONCAT(a,b) __CONCAT(a,b)
+# define mbsrtowcs __mbsrtowcs
+# define fnmatch __fnmatch
+extern int fnmatch (const char *pattern, const char *string, int flags);
+#endif
+
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+/* We often have to test for FNM_FILE_NAME and FNM_PERIOD being both set. */
+#define NO_LEADING_PERIOD(flags) \
+ ((flags & (FNM_FILE_NAME | FNM_PERIOD)) == (FNM_FILE_NAME | FNM_PERIOD))
+
+/* Comment out all this code if we are using the GNU C Library, and are not
+ actually compiling the library itself, and have not detected a bug
+ in the library. This code is part of the GNU C
+ Library, but also included in many other GNU distributions. Compiling
+ and linking in this code is a waste when using the GNU C library
+ (especially if it is a shared library). Rather than having every GNU
+ 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. */
+
+#if defined _LIBC || !defined __GNU_LIBRARY__ || !HAVE_FNMATCH_GNU
+
+
+# if ! (defined isblank || (HAVE_ISBLANK && HAVE_DECL_ISBLANK))
+# define isblank(c) ((c) == ' ' || (c) == '\t')
+# endif
+
+# 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
+ and the functions from ISO C amendement 1. */
+# ifdef CHARCLASS_NAME_MAX
+# define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX
+# else
+/* This shouldn't happen but some implementation might still have this
+ problem. Use a reasonable default value. */
+# define CHAR_CLASS_MAX_LENGTH 256
+# endif
+
+# ifdef _LIBC
+# define IS_CHAR_CLASS(string) __wctype (string)
+# else
+# define IS_CHAR_CLASS(string) wctype (string)
+# endif
+
+# ifdef _LIBC
+# define ISWCTYPE(WC, WT) __iswctype (WC, WT)
+# else
+# 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
+# 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") \
+ || STREQ (string, "cntrl") || STREQ (string, "blank"))
+# endif
+
+/* Avoid depending on library functions or files
+ whose names are inconsistent. */
+
+/* Global variable. */
+static int posixly_correct;
+
+# ifndef internal_function
+/* Inside GNU libc we mark some function in a special way. In other
+ environments simply ignore the marking. */
+# define internal_function
+# endif
+
+/* 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
+# ifdef _LIBC
+# define BTOWC(C) __btowc (C)
+# else
+# define BTOWC(C) btowc (C)
+# endif
+# define STRLEN(S) strlen (S)
+# define STRCAT(D, S) strcat (D, S)
+# ifdef _LIBC
+# define MEMPCPY(D, S, N) __mempcpy (D, S, N)
+# else
+# if HAVE_MEMPCPY
+# define MEMPCPY(D, S, N) mempcpy (D, S, N)
+# else
+# define MEMPCPY(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N)))
+# endif
+# endif
+# define MEMCHR(S, C, N) memchr (S, C, N)
+# include "fnmatch_loop.c"
+
+
+# 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)
+# ifdef _LIBC
+# define STRLEN(S) __wcslen (S)
+# define STRCAT(D, S) __wcscat (D, S)
+# define MEMPCPY(D, S, N) __wmempcpy (D, S, N)
+# else
+# define STRLEN(S) wcslen (S)
+# define STRCAT(D, S) wcscat (D, S)
+# if HAVE_WMEMPCPY
+# define MEMPCPY(D, S, N) wmempcpy (D, S, N)
+# else
+# define MEMPCPY(D, S, N) (wmemcpy (D, S, N) + (N))
+# endif
+# endif
+# define MEMCHR(S, C, N) wmemchr (S, C, N)
+# define WIDE_CHAR_VERSION 1
+
+# undef IS_CHAR_CLASS
+/* We have to convert the wide character string in a multibyte string. But
+ we know that the character class names consist of alphanumeric characters
+ from the portable character set, and since the wide character encoding
+ for a member of the portable character set is the same code point as
+ its single-byte encoding, we can use a simplified method to convert the
+ string to a multibyte character string. */
+static wctype_t
+is_char_class (const wchar_t *wcs)
+{
+ char s[CHAR_CLASS_MAX_LENGTH + 1];
+ char *cp = s;
+
+ do
+ {
+ /* 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;
+# 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;
+ }
+# endif
+
+ /* Avoid overrunning the buffer. */
+ if (cp == s + CHAR_CLASS_MAX_LENGTH)
+ return (wctype_t) 0;
+
+ *cp++ = (char) *wcs++;
+ }
+ while (*wcs != L'\0');
+
+ *cp = '\0';
+
+# ifdef _LIBC
+ return __wctype (s);
+# else
+ return wctype (s);
+# endif
+}
+# define IS_CHAR_CLASS(string) is_char_class (string)
+
+# include "fnmatch_loop.c"
+# endif
+
+
+int
+fnmatch (const char *pattern, const char *string, int flags)
+{
+# if HANDLE_MULTIBYTE
+# define ALLOCA_LIMIT 2000
+ if (__builtin_expect (MB_CUR_MAX, 1) != 1)
+ {
+ mbstate_t ps;
+ size_t patsize;
+ size_t strsize;
+ size_t totsize;
+ wchar_t *wpattern;
+ wchar_t *wstring;
+ int res;
+
+ /* Calculate the size needed to convert the strings to
+ 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;
+ }
+ }
+ }
+
+# endif /* HANDLE_MULTIBYTE */
+
+ return internal_fnmatch (pattern, string, string + strlen (string),
+ flags & FNM_PERIOD, flags);
+}
+
+# ifdef _LIBC
+# undef fnmatch
+versioned_symbol (libc, __fnmatch, fnmatch, GLIBC_2_2_3);
+# if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_2_3)
+strong_alias (__fnmatch, __fnmatch_old)
+compat_symbol (libc, __fnmatch_old, fnmatch, GLIBC_2_0);
+# endif
+libc_hidden_ver (__fnmatch, fnmatch)
+# endif
+
+#endif /* _LIBC or not __GNU_LIBRARY__. */
diff --git a/gnu/fnmatch.in.h b/gnu/fnmatch.in.h
new file mode 100644
index 00000000..839533ba
--- /dev/null
+++ b/gnu/fnmatch.in.h
@@ -0,0 +1,70 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 1991-1993, 1996-1999, 2001-2003, 2005, 2007, 2009-2012 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. */
+
+#ifndef _FNMATCH_H
+#define _FNMATCH_H 1
+
+/* The definition of _GL_ARG_NONNULL is copied here. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* 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
+
+/* 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. */
+
+#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. */
+#endif
+
+/* Value returned by 'fnmatch' if STRING does not match PATTERN. */
+#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)
+#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)
+ _GL_ARG_NONNULL ((1, 2));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* fnmatch.h */
diff --git a/gnu/fnmatch_loop.c b/gnu/fnmatch_loop.c
new file mode 100644
index 00000000..f22741b6
--- /dev/null
+++ b/gnu/fnmatch_loop.c
@@ -0,0 +1,1222 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 1991-1993, 1996-2006, 2009-2012 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. */
+ const CHAR *p_init = p;
+ const CHAR *n_init = n;
+ 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, treat as normal character. */
+ p = p_init;
+ n = n_init;
+ c = L_('[');
+ goto normal_match;
+ }
+ 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 STRLEN
+#undef STRCAT
+#undef L_
+#undef BTOWC
diff --git a/gnu/fpending.c b/gnu/fpending.c
new file mode 100644
index 00000000..2a171654
--- /dev/null
+++ b/gnu/fpending.c
@@ -0,0 +1,32 @@
+/* -*- 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, 2009-2012 Free Software Foundation,
+ Inc.
+
+ This 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 "fpending.h"
+
+/* Return the number of pending (aka buffered, unflushed)
+ bytes on the stream, FP, that is open for writing. */
+size_t
+__fpending (FILE *fp)
+{
+ return PENDING_OUTPUT_N_BYTES;
+}
diff --git a/gnu/fpending.h b/gnu/fpending.h
new file mode 100644
index 00000000..b227d140
--- /dev/null
+++ b/gnu/fpending.h
@@ -0,0 +1,36 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Declare __fpending.
+
+ Copyright (C) 2000, 2003, 2005-2006, 2009-2012 Free Software Foundation,
+ Inc.
+
+ This 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 <stddef.h>
+#include <stdio.h>
+
+#ifndef HAVE_DECL___FPENDING
+"this configure-time declaration test was not run"
+#endif
+
+#if HAVE_DECL___FPENDING
+# if HAVE_STDIO_EXT_H
+# include <stdio_ext.h>
+# endif
+#else
+size_t __fpending (FILE *);
+#endif
diff --git a/gnu/fseek.c b/gnu/fseek.c
new file mode 100644
index 00000000..234b6cd2
--- /dev/null
+++ b/gnu/fseek.c
@@ -0,0 +1,32 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* An fseek() function that, together with fflush(), is POSIX compliant.
+ Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <stdio.h>
+
+/* Get off_t. */
+#include <unistd.h>
+
+int
+fseek (FILE *fp, long offset, int whence)
+{
+ /* Use the replacement fseeko function with all its workarounds. */
+ return fseeko (fp, (off_t)offset, whence);
+}
diff --git a/gnu/fseeko.c b/gnu/fseeko.c
new file mode 100644
index 00000000..e0f06d7d
--- /dev/null
+++ b/gnu/fseeko.c
@@ -0,0 +1,145 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#include <stdio.h>
+
+/* Get off_t and lseek. */
+#include <unistd.h>
+
+#include "stdio-impl.h"
+
+int
+fseeko (FILE *fp, off_t offset, int whence)
+#undef fseeko
+#if !HAVE_FSEEKO
+# undef fseek
+# define fseeko fseek
+#endif
+{
+#if LSEEK_PIPE_BROKEN
+ /* mingw gives bogus answers rather than failure on non-seekable files. */
+ if (lseek (fileno (fp), 0, SEEK_CUR) == -1)
+ return EOF;
+#endif
+
+ /* These tests are based on fpurge.c. */
+#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ if (fp->_IO_read_end == fp->_IO_read_ptr
+ && fp->_IO_write_ptr == fp->_IO_write_base
+ && fp->_IO_save_base == NULL)
+#elif defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+# if defined __SL64 && defined __SCLE /* Cygwin */
+ 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. */
+ FILE *tmp = fopen ("/dev/null", "r");
+ if (!tmp)
+ return -1;
+ fp->_flags |= __SL64;
+ fp->_seek64 = tmp->_seek64;
+ fclose (tmp);
+ }
+# endif
+ 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_ub._base == NULL)
+#elif defined __EMX__ /* emx+gcc */
+ if (fp->_ptr == fp->_buffer
+ && fp->_rcount == 0
+ && fp->_wcount == 0
+ && fp->_ungetc_count == 0)
+#elif defined __minix /* Minix */
+ if (fp_->_ptr == fp_->_buf
+ && (fp_->_ptr == NULL || fp_->_count == 0))
+#elif defined _IOERR /* AIX, HP-UX, IRIX, OSF/1, Solaris, OpenServer, mingw, NonStop Kernel */
+ if (fp_->_ptr == fp_->_base
+ && (fp_->_ptr == NULL || fp_->_cnt == 0))
+#elif defined __UCLIBC__ /* uClibc */
+ if (((fp->__modeflags & __FLAG_WRITING) == 0
+ || fp->__bufpos == fp->__bufstart)
+ && ((fp->__modeflags & (__FLAG_READONLY | __FLAG_READING)) == 0
+ || fp->__bufpos == fp->__bufread))
+#elif defined __QNX__ /* QNX */
+ 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 (or
+ if ftell() has created buffers but no I/O has occurred on a
+ newly-opened stream). We know there are no buffers. */
+ off_t pos = lseek (fileno (fp), offset, whence);
+ if (pos == -1)
+ {
+#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+ fp_->_flags &= ~__SOFF;
+#endif
+ return -1;
+ }
+
+#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */
+ fp->_flags &= ~_IO_EOF_SEEN;
+ fp->_offset = pos;
+#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, NonStop Kernel */
+ fp->_flag &= ~_IOEOF;
+#elif defined __MINT__ /* Atari FreeMiNT */
+ fp->__offset = pos;
+ fp->__eof = 0;
+#endif
+ return 0;
+ }
+ return fseeko (fp, offset, whence);
+}
diff --git a/gnu/fstat.c b/gnu/fstat.c
new file mode 100644
index 00000000..f509b4e8
--- /dev/null
+++ b/gnu/fstat.c
@@ -0,0 +1,84 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* fstat() replacement.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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 the user's config.h happens to include <sys/stat.h>, let it include only
+ the system's <sys/stat.h> here, so that orig_fstat doesn't recurse to
+ rpl_fstat. */
+#define __need_system_sys_stat_h
+#include <config.h>
+
+/* Get the original definition of fstat. It might be defined as a macro. */
+#include <sys/types.h>
+#include <sys/stat.h>
+#undef __need_system_sys_stat_h
+
+static inline int
+orig_fstat (int fd, struct stat *buf)
+{
+ return fstat (fd, buf);
+}
+
+/* Specification. */
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+ eliminates this include because of the preliminary #include <sys/stat.h>
+ above. */
+#include "sys/stat.h"
+
+#include <errno.h>
+#include <unistd.h>
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+# include "msvc-inval.h"
+#endif
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static inline int
+fstat_nothrow (int fd, struct stat *buf)
+{
+ int result;
+
+ TRY_MSVC_INVAL
+ {
+ result = orig_fstat (fd, buf);
+ }
+ CATCH_MSVC_INVAL
+ {
+ result = -1;
+ errno = EBADF;
+ }
+ DONE_MSVC_INVAL;
+
+ return result;
+}
+#else
+# define fstat_nothrow orig_fstat
+#endif
+
+int
+rpl_fstat (int fd, struct stat *buf)
+{
+#if REPLACE_FCHDIR && REPLACE_OPEN_DIRECTORY
+ /* Handle the case when rpl_open() used a dummy file descriptor to work
+ around an open() that can't normally visit directories. */
+ const char *name = _gl_directory_name (fd);
+ if (name != NULL)
+ return stat (name, buf);
+#endif
+
+ return fstat_nothrow (fd, buf);
+}
diff --git a/gnu/fstatat.c b/gnu/fstatat.c
new file mode 100644
index 00000000..9d8a57e8
--- /dev/null
+++ b/gnu/fstatat.c
@@ -0,0 +1,137 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Work around an fstatat bug on Solaris 9.
+
+ Copyright (C) 2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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. */
+
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+ the system's <sys/stat.h> here, so that orig_fstatat doesn't recurse to
+ rpl_fstatat. */
+#define __need_system_sys_stat_h
+#include <config.h>
+
+/* Get the original definition of fstatat. It might be defined as a macro. */
+#include <sys/types.h>
+#include <sys/stat.h>
+#undef __need_system_sys_stat_h
+
+#if HAVE_FSTATAT
+static inline int
+orig_fstatat (int fd, char const *filename, struct stat *buf, int flags)
+{
+ return fstatat (fd, filename, buf, flags);
+}
+#endif
+
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+ eliminates this include because of the preliminary #include <sys/stat.h>
+ above. */
+#include "sys/stat.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <string.h>
+
+#if HAVE_FSTATAT && HAVE_WORKING_FSTATAT_ZERO_FLAG
+
+# ifndef LSTAT_FOLLOWS_SLASHED_SYMLINK
+# define LSTAT_FOLLOWS_SLASHED_SYMLINK 0
+# endif
+
+/* 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.
+
+ AIX 7.1 fstatat (AT_FDCWD, ..., 0) always fails, which is a bug.
+ Work around this bug if FSTATAT_AT_FDCWD_0_BROKEN is nonzero. */
+
+int
+rpl_fstatat (int fd, char const *file, struct stat *st, int flag)
+{
+ int result = orig_fstatat (fd, file, st, flag);
+ size_t len;
+
+ if (LSTAT_FOLLOWS_SLASHED_SYMLINK || 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 = orig_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 && HAVE_WORKING_FSTATAT_ZERO_FLAG) */
+
+/* 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/gnu/full-write.c b/gnu/full-write.c
new file mode 100644
index 00000000..5bca726f
--- /dev/null
+++ b/gnu/full-write.c
@@ -0,0 +1,81 @@
+/* -*- 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-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#ifdef FULL_READ
+# include "full-read.h"
+#else
+# include "full-write.h"
+#endif
+
+#include <errno.h>
+
+#ifdef FULL_READ
+# include "safe-read.h"
+# define safe_rw safe_read
+# define full_rw full_read
+# undef const
+# define const /* empty */
+#else
+# include "safe-write.h"
+# define safe_rw safe_write
+# define full_rw full_write
+#endif
+
+#ifdef FULL_READ
+/* Set errno to zero upon EOF. */
+# define ZERO_BYTE_TRANSFER_ERRNO 0
+#else
+/* Some buggy drivers return 0 when one tries to write beyond
+ a device's end. (Example: Linux 1.2.13 on /dev/fd0.)
+ Set errno to ENOSPC so they get a sensible diagnostic. */
+# define ZERO_BYTE_TRANSFER_ERRNO ENOSPC
+#endif
+
+/* Write(read) COUNT bytes at BUF to(from) descriptor FD, retrying if
+ interrupted or if a partial write(read) occurs. Return the number
+ of bytes transferred.
+ When writing, set errno if fewer than COUNT bytes are written.
+ When reading, if fewer than COUNT bytes are read, you must examine
+ errno to distinguish failure from EOF (errno == 0). */
+size_t
+full_rw (int fd, const void *buf, size_t count)
+{
+ size_t total = 0;
+ const char *ptr = (const char *) buf;
+
+ while (count > 0)
+ {
+ size_t n_rw = safe_rw (fd, ptr, count);
+ if (n_rw == (size_t) -1)
+ break;
+ if (n_rw == 0)
+ {
+ errno = ZERO_BYTE_TRANSFER_ERRNO;
+ break;
+ }
+ total += n_rw;
+ ptr += n_rw;
+ count -= n_rw;
+ }
+
+ return total;
+}
diff --git a/gnu/full-write.h b/gnu/full-write.h
new file mode 100644
index 00000000..30e4efb8
--- /dev/null
+++ b/gnu/full-write.h
@@ -0,0 +1,36 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Write COUNT bytes at BUF to descriptor FD, retrying if interrupted
+ or if partial writes occur. Return the number of bytes successfully
+ written, setting errno if that is less than COUNT. */
+extern size_t full_write (int fd, const void *buf, size_t count);
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/gnu/futimens.c b/gnu/futimens.c
new file mode 100644
index 00000000..99556a5b
--- /dev/null
+++ b/gnu/futimens.c
@@ -0,0 +1,39 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Set the access and modification time of an open fd.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <sys/stat.h>
+
+#include "utimens.h"
+
+/* Set the access and modification time stamps of FD to be
+ TIMESPEC[0] and TIMESPEC[1], respectively.
+ Fail with ENOSYS on systems 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
+futimens (int fd, struct timespec const times[2])
+{
+ /* fdutimens also works around bugs in native futimens, when running
+ with glibc compiled against newer headers but on a Linux kernel
+ older than 2.6.32. */
+ return fdutimens (fd, NULL, times);
+}
diff --git a/gnu/getcwd-lgpl.c b/gnu/getcwd-lgpl.c
new file mode 100644
index 00000000..a27be830
--- /dev/null
+++ b/gnu/getcwd-lgpl.c
@@ -0,0 +1,127 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 2011-2012 Free Software Foundation, Inc.
+ This file is part of gnulib.
+
+ This 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>
+
+#if GNULIB_GETCWD
+/* Favor GPL getcwd.c if both getcwd and getcwd-lgpl modules are in use. */
+typedef int dummy;
+#else
+
+/* Get the name of the current working directory, and put it in SIZE
+ bytes of BUF. Returns NULL if the directory couldn't be determined
+ (perhaps because the absolute name was longer than PATH_MAX, or
+ because of missing read/search permissions on parent directories)
+ or SIZE was too small. If successful, returns BUF. 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. */
+
+# undef getcwd
+char *
+rpl_getcwd (char *buf, size_t size)
+{
+ char *ptr;
+ char *result;
+
+ /* Handle single size operations. */
+ if (buf)
+ {
+ if (!size)
+ {
+ errno = EINVAL;
+ return NULL;
+ }
+ return getcwd (buf, size);
+ }
+
+ if (size)
+ {
+ buf = malloc (size);
+ if (!buf)
+ {
+ errno = ENOMEM;
+ return NULL;
+ }
+ result = getcwd (buf, size);
+ if (!result)
+ {
+ int saved_errno = errno;
+ free (buf);
+ errno = saved_errno;
+ }
+ return result;
+ }
+
+ /* Flexible sizing requested. Avoid over-allocation for the common
+ case of a name that fits within a 4k page, minus some space for
+ local variables, to be sure we don't skip over a guard page. */
+ {
+ char tmp[4032];
+ size = sizeof tmp;
+ ptr = getcwd (tmp, size);
+ if (ptr)
+ {
+ result = strdup (ptr);
+ if (!result)
+ errno = ENOMEM;
+ return result;
+ }
+ if (errno != ERANGE)
+ return NULL;
+ }
+
+ /* My what a large directory name we have. */
+ do
+ {
+ size <<= 1;
+ ptr = realloc (buf, size);
+ if (ptr == NULL)
+ {
+ free (buf);
+ errno = ENOMEM;
+ return NULL;
+ }
+ buf = ptr;
+ result = getcwd (buf, size);
+ }
+ while (!result && errno == ERANGE);
+
+ if (!result)
+ {
+ int saved_errno = errno;
+ free (buf);
+ errno = saved_errno;
+ }
+ else
+ {
+ /* Trim to fit, if possible. */
+ result = realloc (buf, strlen (buf) + 1);
+ if (!result)
+ result = buf;
+ }
+ return result;
+}
+
+#endif
diff --git a/gnu/getcwd.c b/gnu/getcwd.c
new file mode 100644
index 00000000..0982cd9b
--- /dev/null
+++ b/gnu/getcwd.c
@@ -0,0 +1,444 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 1991-1999, 2004-2012 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>
+# include <unistd.h>
+#endif
+
+#include <errno.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <stdbool.h>
+#include <stddef.h>
+
+#include <fcntl.h> /* For AT_FDCWD on Solaris 9. */
+
+/* If this host provides the openat function or if we're using the
+ gnulib replacement function, then enable code below to make getcwd
+ more efficient and robust. */
+#if defined HAVE_OPENAT || defined GNULIB_OPENAT
+# define HAVE_OPENAT_SUPPORT 1
+#else
+# define HAVE_OPENAT_SUPPORT 0
+#endif
+
+#ifndef __set_errno
+# define __set_errno(val) (errno = (val))
+#endif
+
+#include <dirent.h>
+#ifndef _D_EXACT_NAMLEN
+# define _D_EXACT_NAMLEN(d) strlen ((d)->d_name)
+#endif
+#ifndef _D_ALLOC_NAMLEN
+# define _D_ALLOC_NAMLEN(d) (_D_EXACT_NAMLEN (d) + 1)
+#endif
+
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+#if _LIBC
+# ifndef mempcpy
+# define mempcpy __mempcpy
+# endif
+#endif
+
+#ifndef MAX
+# define MAX(a, b) ((a) < (b) ? (b) : (a))
+#endif
+#ifndef MIN
+# define MIN(a, b) ((a) < (b) ? (a) : (b))
+#endif
+
+#include "pathmax.h"
+
+/* In this file, PATH_MAX only serves as a threshold for choosing among two
+ algorithms. */
+#ifndef PATH_MAX
+# define PATH_MAX 8192
+#endif
+
+#if D_INO_IN_DIRENT
+# define MATCHING_INO(dp, ino) ((dp)->d_ino == (ino))
+#else
+# define MATCHING_INO(dp, ino) true
+#endif
+
+#if !_LIBC
+# define __getcwd rpl_getcwd
+# define __lstat lstat
+# define __closedir closedir
+# define __opendir opendir
+# define __readdir readdir
+#endif
+
+/* The results of opendir() in this file are not used with dirfd and fchdir,
+ 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
+
+/* Get the name of the current working directory, and put it in SIZE
+ bytes of BUF. Returns NULL if the directory couldn't be determined or
+ SIZE was too small. If successful, returns BUF. In GNU, 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. */
+
+char *
+__getcwd (char *buf, size_t size)
+{
+ /* Lengths of big file name components and entire file names, and a
+ deep level of file name nesting. These numbers are not upper
+ bounds; they are merely large values suitable for initial
+ allocations, designed to be large enough for most real-world
+ uses. */
+ enum
+ {
+ BIG_FILE_NAME_COMPONENT_LENGTH = 255,
+ BIG_FILE_NAME_LENGTH = MIN (4095, PATH_MAX - 1),
+ DEEP_NESTING = 100
+ };
+
+#if HAVE_OPENAT_SUPPORT
+ int fd = AT_FDCWD;
+ bool fd_needs_closing = false;
+#else
+ char dots[DEEP_NESTING * sizeof ".." + BIG_FILE_NAME_COMPONENT_LENGTH + 1];
+ char *dotlist = dots;
+ size_t dotsize = sizeof dots;
+ size_t dotlen = 0;
+#endif
+ DIR *dirstream = NULL;
+ dev_t rootdev, thisdev;
+ ino_t rootino, thisino;
+ char *dir;
+ register char *dirp;
+ struct stat st;
+ size_t allocated = size;
+ size_t used;
+
+#if HAVE_RAW_DECL_GETCWD && HAVE_MINIMALLY_WORKING_GETCWD
+ /* If AT_FDCWD is not defined, the algorithm below is O(N**2) and
+ this is much slower than the system getcwd (at least on
+ GNU/Linux). So trust the system getcwd's results unless they
+ look suspicious.
+
+ Use the system getcwd even if we have openat support, since the
+ system getcwd works even when a parent is unreadable, while the
+ openat-based approach does not.
+
+ But on AIX 5.1..7.1, the system getcwd is not even minimally
+ working: If the current directory name is slightly longer than
+ PATH_MAX, it omits the first directory component and returns
+ this wrong result with errno = 0. */
+
+# undef getcwd
+ dir = getcwd (buf, size);
+ if (dir || (size && errno == ERANGE))
+ return dir;
+
+ /* Solaris getcwd (NULL, 0) fails with errno == EINVAL, but it has
+ internal magic that lets it work even if an ancestor directory is
+ inaccessible, which is better in many cases. So in this case try
+ again with a buffer that's almost always big enough. */
+ if (errno == EINVAL && buf == NULL && size == 0)
+ {
+ char big_buffer[BIG_FILE_NAME_LENGTH + 1];
+ dir = getcwd (big_buffer, sizeof big_buffer);
+ if (dir)
+ return strdup (dir);
+ }
+
+# if HAVE_PARTLY_WORKING_GETCWD
+ /* The system getcwd works, except it sometimes fails when it
+ shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT. */
+ if (errno != ERANGE && errno != ENAMETOOLONG && errno != ENOENT)
+ return NULL;
+# endif
+#endif
+
+ if (size == 0)
+ {
+ if (buf != NULL)
+ {
+ __set_errno (EINVAL);
+ return NULL;
+ }
+
+ allocated = BIG_FILE_NAME_LENGTH + 1;
+ }
+
+ if (buf == NULL)
+ {
+ dir = malloc (allocated);
+ if (dir == NULL)
+ return NULL;
+ }
+ else
+ dir = buf;
+
+ dirp = dir + allocated;
+ *--dirp = '\0';
+
+ if (__lstat (".", &st) < 0)
+ goto lose;
+ thisdev = st.st_dev;
+ thisino = st.st_ino;
+
+ if (__lstat ("/", &st) < 0)
+ goto lose;
+ rootdev = st.st_dev;
+ rootino = st.st_ino;
+
+ while (!(thisdev == rootdev && thisino == rootino))
+ {
+ struct dirent *d;
+ dev_t dotdev;
+ ino_t dotino;
+ bool mount_point;
+ int parent_status;
+ size_t dirroom;
+ size_t namlen;
+ bool use_d_ino = true;
+
+ /* Look at the parent directory. */
+#if HAVE_OPENAT_SUPPORT
+ fd = openat (fd, "..", O_RDONLY);
+ if (fd < 0)
+ goto lose;
+ fd_needs_closing = true;
+ parent_status = fstat (fd, &st);
+#else
+ dotlist[dotlen++] = '.';
+ dotlist[dotlen++] = '.';
+ dotlist[dotlen] = '\0';
+ parent_status = __lstat (dotlist, &st);
+#endif
+ if (parent_status != 0)
+ goto lose;
+
+ if (dirstream && __closedir (dirstream) != 0)
+ {
+ dirstream = NULL;
+ goto lose;
+ }
+
+ /* Figure out if this directory is a mount point. */
+ dotdev = st.st_dev;
+ dotino = st.st_ino;
+ mount_point = dotdev != thisdev;
+
+ /* Search for the last directory. */
+#if HAVE_OPENAT_SUPPORT
+ dirstream = fdopendir (fd);
+ if (dirstream == NULL)
+ goto lose;
+ fd_needs_closing = false;
+#else
+ dirstream = __opendir (dotlist);
+ if (dirstream == NULL)
+ 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;
+#if HAVE_OPENAT_SUPPORT
+ 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);
+#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;
+ }
+ }
+
+ 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;
+ }
+ }
+ dirp -= namlen;
+ memcpy (dirp, d->d_name, namlen);
+ *--dirp = '/';
+
+ thisdev = dotdev;
+ thisino = dotino;
+ }
+
+ if (dirstream && __closedir (dirstream) != 0)
+ {
+ dirstream = NULL;
+ goto lose;
+ }
+
+ if (dirp == &dir[allocated - 1])
+ *--dirp = '/';
+
+#if ! HAVE_OPENAT_SUPPORT
+ if (dotlist != dots)
+ free (dotlist);
+#endif
+
+ used = dir + allocated - dirp;
+ memmove (dir, dirp, used);
+
+ if (size == 0)
+ /* Ensure that the buffer is only as large as necessary. */
+ buf = realloc (dir, used);
+
+ if (buf == NULL)
+ /* Either buf was NULL all along, or 'realloc' failed but
+ we still have the original string. */
+ buf = dir;
+
+ return buf;
+
+ memory_exhausted:
+ __set_errno (ENOMEM);
+ lose:
+ {
+ int save = errno;
+ if (dirstream)
+ __closedir (dirstream);
+#if HAVE_OPENAT_SUPPORT
+ if (fd_needs_closing)
+ close (fd);
+#else
+ if (dotlist != dots)
+ free (dotlist);
+#endif
+ if (buf == NULL)
+ free (dir);
+ __set_errno (save);
+ }
+ return NULL;
+}
+
+#ifdef weak_alias
+weak_alias (__getcwd, getcwd)
+#endif
diff --git a/gnu/getdelim.c b/gnu/getdelim.c
new file mode 100644
index 00000000..5736076d
--- /dev/null
+++ b/gnu/getdelim.c
@@ -0,0 +1,139 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* getdelim.c --- Implementation of replacement getdelim function.
+ Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2012 Free Software
+ Foundation, Inc.
+
+ This 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. */
+
+/* Ported from glibc by Simon Josefsson. */
+
+#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 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)
+#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)
+#else
+# define getc_maybe_unlocked(fp) getc_unlocked(fp)
+#endif
+
+/* Read up to (and including) a DELIMITER from FP into *LINEPTR (and
+ NUL-terminate it). *LINEPTR is a pointer returned from malloc (or
+ NULL), pointing to *N characters of space. It is realloc'ed as
+ necessary. Returns the number of characters read (not including
+ the null terminator), or -1 on error or EOF. */
+
+ssize_t
+getdelim (char **lineptr, size_t *n, int delimiter, FILE *fp)
+{
+ ssize_t result;
+ size_t cur_len = 0;
+
+ if (lineptr == NULL || n == NULL || fp == NULL)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+ flockfile (fp);
+
+ if (*lineptr == NULL || *n == 0)
+ {
+ char *new_lineptr;
+ *n = 120;
+ new_lineptr = (char *) realloc (*lineptr, *n);
+ if (new_lineptr == NULL)
+ {
+ result = -1;
+ goto unlock_return;
+ }
+ *lineptr = new_lineptr;
+ }
+
+ for (;;)
+ {
+ int i;
+
+ i = getc_maybe_unlocked (fp);
+ if (i == EOF)
+ {
+ 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;
+ }
+
+ (*lineptr)[cur_len] = i;
+ cur_len++;
+
+ if (i == delimiter)
+ break;
+ }
+ (*lineptr)[cur_len] = '\0';
+ result = cur_len ? cur_len : result;
+
+ unlock_return:
+ funlockfile (fp); /* doesn't set errno */
+
+ return result;
+}
diff --git a/gnu/getdtablesize.c b/gnu/getdtablesize.c
new file mode 100644
index 00000000..10603694
--- /dev/null
+++ b/gnu/getdtablesize.c
@@ -0,0 +1,88 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* getdtablesize() function for platforms that don't have it.
+ Copyright (C) 2008-2012 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>
+
+#include "msvc-inval.h"
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static inline int
+_setmaxstdio_nothrow (int newmax)
+{
+ int result;
+
+ TRY_MSVC_INVAL
+ {
+ result = _setmaxstdio (newmax);
+ }
+ CATCH_MSVC_INVAL
+ {
+ result = -1;
+ }
+ DONE_MSVC_INVAL;
+
+ return result;
+}
+# define _setmaxstdio _setmaxstdio_nothrow
+#endif
+
+/* 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/gnu/getline.c b/gnu/getline.c
new file mode 100644
index 00000000..01a9329f
--- /dev/null
+++ b/gnu/getline.c
@@ -0,0 +1,31 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* getline.c --- Implementation of replacement getline function.
+ Copyright (C) 2005-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Simon Josefsson. */
+
+#include <config.h>
+
+#include <stdio.h>
+
+ssize_t
+getline (char **lineptr, size_t *n, FILE *stream)
+{
+ return getdelim (lineptr, n, '\n', stream);
+}
diff --git a/gnu/getopt.c b/gnu/getopt.c
new file mode 100644
index 00000000..afe9f640
--- /dev/null
+++ b/gnu/getopt.c
@@ -0,0 +1,1247 @@
+/* -*- 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-2012 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
+
+/* 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 (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;
+ }
+ else if (optstring[0] == '-' || optstring[0] == '+')
+ optstring++;
+ if (optstring[0] == ':')
+ print_errors = 0;
+
+ /* 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;
+ unsigned int namelen;
+ const struct option *p;
+ const struct option *pfound = NULL;
+ struct option_list
+ {
+ const struct option *p;
+ struct option_list *next;
+ } *ambig_list = NULL;
+ int exact = 0;
+ int indfound = -1;
+ int option_index;
+
+ for (nameend = d->__nextchar; *nameend && *nameend != '='; nameend++)
+ /* Do nothing. */ ;
+ namelen = nameend - d->__nextchar;
+
+ /* 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, namelen))
+ {
+ if (namelen == (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. */
+ struct option_list *newp = malloc (sizeof (*newp));
+ newp->p = p;
+ newp->next = ambig_list;
+ ambig_list = newp;
+ }
+ }
+
+ if (ambig_list != NULL && !exact)
+ {
+ if (print_errors)
+ {
+ struct option_list first;
+ first.p = pfound;
+ first.next = ambig_list;
+ ambig_list = &first;
+
+#if defined _LIBC && defined USE_IN_LIBIO
+ char *buf = NULL;
+ size_t buflen = 0;
+
+ FILE *fp = open_memstream (&buf, &buflen);
+ if (fp != NULL)
+ {
+ fprintf (fp,
+ _("%s: option '%s' is ambiguous; possibilities:"),
+ argv[0], argv[d->optind]);
+
+ do
+ {
+ fprintf (fp, " '--%s'", ambig_list->p->name);
+ ambig_list = ambig_list->next;
+ }
+ while (ambig_list != NULL);
+
+ fputc_unlocked ('\n', fp);
+
+ if (__builtin_expect (fclose (fp) != EOF, 1))
+ {
+ _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; possibilities:"),
+ argv[0], argv[d->optind]);
+ do
+ {
+ fprintf (stderr, " '--%s'", ambig_list->p->name);
+ ambig_list = ambig_list->next;
+ }
+ while (ambig_list != NULL);
+
+ fputc ('\n', stderr);
+#endif
+ }
+ d->__nextchar += strlen (d->__nextchar);
+ d->optind++;
+ d->optopt = 0;
+ return '?';
+ }
+
+ while (ambig_list != NULL)
+ {
+ struct option_list *pn = ambig_list->next;
+ free (ambig_list);
+ ambig_list = pn;
+ }
+
+ 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], 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 '--%s' requires an argument\n"),
+ argv[0], pfound->name);
+#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++;
+ const 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 == ':' || 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;
+
+ if (longopts == NULL)
+ goto no_longs;
+
+ /* 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 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 '-W %s' is ambiguous\n"),
+ argv[0], d->optarg) >= 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], d->optarg);
+#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 '-W %s' requires 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' requires an argument\n"),
+ argv[0], pfound->name);
+#endif
+ }
+ d->__nextchar += strlen (d->__nextchar);
+ return optstring[0] == ':' ? ':' : '?';
+ }
+ }
+ else
+ d->optarg = NULL;
+ d->__nextchar += strlen (d->__nextchar);
+ if (longind != NULL)
+ *longind = option_index;
+ if (pfound->flag)
+ {
+ *(pfound->flag) = pfound->val;
+ return 0;
+ }
+ return pfound->val;
+ }
+
+ no_longs:
+ 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/gnu/getopt.in.h b/gnu/getopt.in.h
new file mode 100644
index 00000000..c27f99a9
--- /dev/null
+++ b/gnu/getopt.in.h
@@ -0,0 +1,255 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Declarations for getopt.
+ Copyright (C) 1989-1994, 1996-1999, 2001, 2003-2007, 2009-2012 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 _@GUARD_PREFIX@_GETOPT_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* 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 _@GUARD_PREFIX@_GETOPT_H
+
+#ifndef __need_getopt
+# define _@GUARD_PREFIX@_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 (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
+# if !@HAVE_GETOPT_H@
+# include <stdlib.h>
+# include <stdio.h>
+# include <unistd.h>
+# endif
+# undef __need_getopt
+# undef getopt
+# undef getopt_long
+# undef getopt_long_only
+# undef optarg
+# 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)
+# define getopt __GETOPT_ID (getopt)
+# define getopt_long __GETOPT_ID (getopt_long)
+# define getopt_long_only __GETOPT_ID (getopt_long_only)
+# define optarg __GETOPT_ID (optarg)
+# 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
+ getopt_long_only; they declare "char **argv". libc uses prototypes
+ with "char *const *argv" that are incorrect because getopt_long and
+ getopt_long_only can permute argv; this is required for backward
+ compatibility (e.g., for LSB 2.0.1).
+
+ This used to be '#if defined __GETOPT_PREFIX && !defined __need_getopt',
+ but it caused redefinition warnings if both unistd.h and getopt.h were
+ included, since unistd.h includes getopt.h having previously defined
+ __need_getopt.
+
+ The only place where __getopt_argv_const is used is in definitions
+ of getopt_long and getopt_long_only below, but these are visible
+ only if __need_getopt is not defined, so it is quite safe to rewrite
+ the conditional as follows:
+*/
+#if !defined __need_getopt
+# if defined __GETOPT_PREFIX
+# define __getopt_argv_const /* empty */
+# else
+# define __getopt_argv_const const
+# endif
+#endif
+
+/* If __GNU_LIBRARY__ is not already defined, either we are being used
+ standalone, or this is the first header included in the source file.
+ If we are being used with glibc, we need to include <features.h>, but
+ that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
+ not defined, include <ctype.h>, which will pull in <features.h> for us
+ if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
+ doesn't flood the namespace with stuff the way some other headers do.) */
+#if !defined __GNU_LIBRARY__
+# include <ctype.h>
+#endif
+
+#ifndef __THROW
+# ifndef __GNUC_PREREQ
+# define __GNUC_PREREQ(maj, min) (0)
+# endif
+# if defined __cplusplus && __GNUC_PREREQ (2,8)
+# define __THROW throw ()
+# else
+# define __THROW
+# endif
+#endif
+
+/* The definition of _GL_ARG_NONNULL is copied here. */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* 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. */
+
+extern 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. */
+
+extern int optind;
+
+/* Callers store zero here to inhibit the error message 'getopt' prints
+ for unrecognized options. */
+
+extern int opterr;
+
+/* Set to an option character which was unrecognized. */
+
+extern int optopt;
+
+#ifndef __need_getopt
+/* Describe the long-named options requested by the application.
+ The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
+ of 'struct option' terminated by an element containing a name which is
+ 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.
+
+ 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
+ left unchanged if the option is not found.
+
+ To have a long-named option do something other than set an 'int' to
+ a compiled-in constant, such as set a value from 'optarg', set the
+ option's 'flag' field to zero and its 'val' field to a nonzero
+ value (the equivalent single-letter option character, if there is
+ one). For long options that have a zero 'flag' field, 'getopt'
+ returns the contents of the 'val' field. */
+
+# if !GNULIB_defined_struct_option
+struct option
+{
+ const char *name;
+ /* has_arg can't be an enum because some compilers complain about
+ type mismatches in all the code that assumes it is an int. */
+ int has_arg;
+ int *flag;
+ int val;
+};
+# define GNULIB_defined_struct_option 1
+# endif
+
+/* 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 */
+
+
+/* Get definitions and prototypes for functions to process the
+ arguments in ARGV (ARGC of them, minus the program name) for
+ options given in OPTS.
+
+ Return the option character from OPTS just read. Return -1 when
+ there are no more options. For unrecognized options, or options
+ missing arguments, 'optopt' is set to the option letter, and '?' is
+ returned.
+
+ The OPTS string is a list of characters which are recognized option
+ letters, optionally followed by colons, specifying that that letter
+ takes an argument, to be placed in 'optarg'.
+
+ If a letter in OPTS is followed by two colons, its argument is
+ optional. This behavior is specific to the GNU 'getopt'.
+
+ The argument '--' causes premature termination of argument
+ scanning, explicitly telling 'getopt' that there are no more
+ options.
+
+ If OPTS begins with '-', then non-option arguments are treated as
+ arguments to the option '\1'. This behavior is specific to the GNU
+ 'getopt'. If OPTS begins with '+', or POSIXLY_CORRECT is set in
+ the environment, then do not permute arguments. */
+
+extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
+ __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 _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 _GL_ARG_NONNULL ((2, 3));
+
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+/* Make sure we later can get all the definitions and declarations. */
+#undef __need_getopt
+
+#endif /* _@GUARD_PREFIX@_GETOPT_H */
+#endif /* _@GUARD_PREFIX@_GETOPT_H */
diff --git a/gnu/getopt1.c b/gnu/getopt1.c
new file mode 100644
index 00000000..a769430d
--- /dev/null
+++ b/gnu/getopt1.c
@@ -0,0 +1,172 @@
+/* -*- 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-1994, 1996-1998, 2004, 2006, 2009-2012 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/>. */
+
+#ifdef _LIBC
+# include <getopt.h>
+#else
+# include <config.h>
+# include "getopt.h"
+#endif
+#include "getopt_int.h"
+
+#include <stdio.h>
+
+/* This needs to come after some library #include
+ to get __GNU_LIBRARY__ defined. */
+#ifdef __GNU_LIBRARY__
+#include <stdlib.h>
+#endif
+
+#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)
+{
+ return _getopt_internal (argc, (char **) argv, options, long_options,
+ 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)
+{
+ return _getopt_internal_r (argc, argv, options, long_options, opt_index,
+ 0, d, 0);
+}
+
+/* Like getopt_long, but '-' as well as '--' can indicate a long option.
+ If an option that starts with '-' (not '--') doesn't match a long option,
+ but does match a short option, it is parsed as a short option
+ instead. */
+
+int
+getopt_long_only (int argc, char *__getopt_argv_const *argv,
+ const char *options,
+ const struct option *long_options, int *opt_index)
+{
+ return _getopt_internal (argc, (char **) argv, options, long_options,
+ 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)
+{
+ return _getopt_internal_r (argc, argv, options, long_options, opt_index,
+ 1, d, 0);
+}
+
+
+#ifdef TEST
+
+#include <stdio.h>
+
+int
+main (int argc, char **argv)
+{
+ int c;
+ int digit_optind = 0;
+
+ while (1)
+ {
+ int this_option_optind = optind ? optind : 1;
+ int option_index = 0;
+ 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}
+ };
+
+ c = getopt_long (argc, argv, "abc:d:0123456789",
+ long_options, &option_index);
+ if (c == -1)
+ 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);
+ }
+ }
+
+ if (optind < argc)
+ {
+ printf ("non-option ARGV-elements: ");
+ while (optind < argc)
+ printf ("%s ", argv[optind++]);
+ printf ("\n");
+ }
+
+ exit (0);
+}
+
+#endif /* TEST */
diff --git a/gnu/getopt_int.h b/gnu/getopt_int.h
new file mode 100644
index 00000000..b93a5384
--- /dev/null
+++ b/gnu/getopt_int.h
@@ -0,0 +1,137 @@
+/* -*- 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, 2009-2012 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 _GETOPT_INT_H
+#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);
+
+
+/* Reentrant versions which can handle parsing multiple argument
+ vectors at the same time. */
+
+/* Describe how to deal with options that follow non-option ARGV-elements.
+
+ If the caller did not specify anything,
+ the default is REQUIRE_ORDER if the environment variable
+ POSIXLY_CORRECT is defined, PERMUTE otherwise.
+
+ REQUIRE_ORDER means don't recognize them as options;
+ stop option processing when the first non-option is seen.
+ This is what Unix does.
+ This mode of operation is selected by either setting the environment
+ variable POSIXLY_CORRECT, or using '+' as the first character
+ of the list of option characters, or by calling getopt.
+
+ PERMUTE is the default. We permute the contents of ARGV as we
+ scan, so that eventually all the non-options are at the end.
+ This allows options to be given in any order, even with programs
+ that were not written to expect this.
+
+ RETURN_IN_ORDER is an option available to programs that were
+ written to expect options and other ARGV-elements in any order
+ and that care about the ordering of the two. We describe each
+ non-option ARGV-element as if it were the argument of an option
+ with character code 1. Using '-' as the first character of the
+ list of option characters selects this mode of operation.
+
+ The special argument '--' forces an end of option-scanning regardless
+ of the value of 'ordering'. In the case of RETURN_IN_ORDER, only
+ '--' can cause 'getopt' to return -1 with 'optind' != ARGC. */
+
+enum __ord
+ {
+ REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
+ };
+
+/* Data type for reentrant functions. */
+struct _getopt_data
+{
+ /* These have exactly the same meaning as the corresponding global
+ variables, except that they are used for the reentrant
+ versions of getopt. */
+ int optind;
+ int opterr;
+ int optopt;
+ char *optarg;
+
+ /* Internal members. */
+
+ /* True if the internal members have been initialized. */
+ int __initialized;
+
+ /* The next char to be scanned in the option-element
+ in which the last option character we returned was found.
+ This allows us to pick up the scan where we left off.
+
+ If this is zero, or a null string, it means resume the scan
+ by advancing to the next ARGV-element. */
+ char *__nextchar;
+
+ /* See __ord above. */
+ enum __ord __ordering;
+
+ /* If the POSIXLY_CORRECT environment variable is set
+ or getopt was called. */
+ int __posixly_correct;
+
+
+ /* Handle permutation of arguments. */
+
+ /* Describe the part of ARGV that contains non-options that have
+ been skipped. 'first_nonopt' is the index in ARGV of the first
+ of them; 'last_nonopt' is the index after the last of them. */
+
+ int __first_nonopt;
+ int __last_nonopt;
+
+#if defined _LIBC && defined USE_NONOPTION_FLAGS
+ int __nonoption_flags_max_len;
+ int __nonoption_flags_len;
+#endif
+};
+
+/* 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 }
+
+extern int _getopt_internal_r (int ___argc, char **___argv,
+ 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);
+
+extern int _getopt_long_only_r (int ___argc, char **___argv,
+ const char *__shortopts,
+ const struct option *__longopts,
+ int *__longind,
+ struct _getopt_data *__data);
+
+#endif /* getopt_int.h */
diff --git a/gnu/getpagesize.c b/gnu/getpagesize.c
new file mode 100644
index 00000000..61ba89c5
--- /dev/null
+++ b/gnu/getpagesize.c
@@ -0,0 +1,41 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Bruno Haible and Martin Lambers. */
+
+#include <config.h>
+
+/* Specification. */
+#include <unistd.h>
+
+/* This implementation is only for native Windows systems. */
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+
+int
+getpagesize (void)
+{
+ SYSTEM_INFO system_info;
+ GetSystemInfo (&system_info);
+ return system_info.dwPageSize;
+}
+
+#endif
diff --git a/gnu/gettext.h b/gnu/gettext.h
new file mode 100644
index 00000000..f9274c3b
--- /dev/null
+++ b/gnu/gettext.h
@@ -0,0 +1,288 @@
+/* -*- 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, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 _LIBGETTEXT_H
+#define _LIBGETTEXT_H 1
+
+/* NLS can be disabled through the configure --disable-nls option. */
+#if ENABLE_NLS
+
+/* Get declarations of GNU message catalog functions. */
+# include <libintl.h>
+
+/* You can set the DEFAULT_TEXT_DOMAIN macro to specify the domain used by
+ the gettext() and ngettext() macros. This is an alternative to calling
+ textdomain(), and is useful for libraries. */
+# ifdef DEFAULT_TEXT_DOMAIN
+# undef gettext
+# define gettext(Msgid) \
+ dgettext (DEFAULT_TEXT_DOMAIN, Msgid)
+# undef ngettext
+# define ngettext(Msgid1, Msgid2, N) \
+ dngettext (DEFAULT_TEXT_DOMAIN, Msgid1, Msgid2, N)
+# endif
+
+#else
+
+/* Solaris /usr/include/locale.h includes /usr/include/libintl.h, which
+ chokes if dcgettext is defined as a macro. So include it now, to make
+ later inclusions of <locale.h> a NOP. We don't include <libintl.h>
+ as well because people using "gettext.h" will not include <libintl.h>,
+ and also including <libintl.h> would fail on SunOS 4, whereas <locale.h>
+ is OK. */
+#if defined(__sun)
+# include <locale.h>
+#endif
+
+/* Many header files from the libstdc++ coming with g++ 3.3 or newer include
+ <libintl.h>, which chokes if dcgettext is defined as a macro. So include
+ it now, to make later inclusions of <libintl.h> a NOP. */
+#if defined(__cplusplus) && defined(__GNUG__) && (__GNUC__ >= 3)
+# include <cstdlib>
+# if (__GLIBC__ >= 2 && !defined __UCLIBC__) || _GLIBCXX_HAVE_LIBINTL_H
+# include <libintl.h>
+# endif
+#endif
+
+/* Disabled NLS.
+ The casts to 'const char *' serve the purpose of producing warnings
+ 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))
+
+#endif
+
+/* Prefer gnulib's setlocale override over libintl's setlocale override. */
+#ifdef GNULIB_defined_setlocale
+# undef setlocale
+# define setlocale rpl_setlocale
+#endif
+
+/* A pseudo function call that serves as a marker for the automated
+ extraction of messages, but does not call gettext(). The run-time
+ translation is done at a different place in the code.
+ The argument, String, should be a literal string. Concatenated strings
+ and other string expressions won't work.
+ The macro's expansion is not parenthesized, so that it is suitable as
+ initializer for static 'char[]' or 'const char[]' variables. */
+#define gettext_noop(String) String
+
+/* The separator between msgctxt and msgid in a .mo file. */
+#define GETTEXT_CONTEXT_GLUE "\004"
+
+/* Pseudo function calls, taking a MSGCTXT and a MSGID instead of just a
+ MSGID. MSGCTXT and MSGID must be string literals. MSGCTXT should be
+ short and rarely need to change.
+ The letter 'p' stands for 'particular' or 'special'. */
+#ifdef DEFAULT_TEXT_DOMAIN
+# define pgettext(Msgctxt, Msgid) \
+ pgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#else
+# define pgettext(Msgctxt, Msgid) \
+ pgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#endif
+#define dpgettext(Domainname, Msgctxt, Msgid) \
+ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, LC_MESSAGES)
+#define dcpgettext(Domainname, Msgctxt, Msgid, Category) \
+ pgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, Category)
+#ifdef DEFAULT_TEXT_DOMAIN
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+ npgettext_aux (DEFAULT_TEXT_DOMAIN, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#else
+# define npgettext(Msgctxt, Msgid, MsgidPlural, N) \
+ npgettext_aux (NULL, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#endif
+#define dnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dcnpgettext(Domainname, Msgctxt, Msgid, MsgidPlural, N, Category) \
+ npgettext_aux (Domainname, Msgctxt GETTEXT_CONTEXT_GLUE Msgid, Msgid, MsgidPlural, N, Category)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+pgettext_aux (const char *domain,
+ const char *msg_ctxt_id, const char *msgid,
+ int category)
+{
+ const char *translation = dcgettext (domain, msg_ctxt_id, category);
+ if (translation == msg_ctxt_id)
+ return msgid;
+ else
+ return translation;
+}
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#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 *translation =
+ dcngettext (domain, msg_ctxt_id, msgid_plural, n, category);
+ if (translation == msg_ctxt_id || translation == msgid_plural)
+ return (n == 1 ? msgid : msgid_plural);
+ else
+ return translation;
+}
+
+/* The same thing extended for non-constant arguments. Here MSGCTXT and MSGID
+ can be arbitrary expressions. But for string literals these macros are
+ less efficient than those above. */
+
+#include <string.h>
+
+#define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS \
+ (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \
+ /* || __STDC_VERSION__ >= 199901L */ )
+
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+#include <stdlib.h>
+#endif
+
+#define pgettext_expr(Msgctxt, Msgid) \
+ dcpgettext_expr (NULL, Msgctxt, Msgid, LC_MESSAGES)
+#define dpgettext_expr(Domainname, Msgctxt, Msgid) \
+ dcpgettext_expr (Domainname, Msgctxt, Msgid, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#endif
+static const char *
+dcpgettext_expr (const char *domain,
+ const char *msgctxt, const char *msgid,
+ int category)
+{
+ size_t msgctxt_len = strlen (msgctxt) + 1;
+ size_t msgid_len = strlen (msgid) + 1;
+ const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+ char buf[1024];
+ char *msg_ctxt_id =
+ (msgctxt_len + msgid_len <= sizeof (buf)
+ ? buf
+ : (char *) malloc (msgctxt_len + msgid_len));
+ if (msg_ctxt_id != NULL)
+#endif
+ {
+ memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+ msg_ctxt_id[msgctxt_len - 1] = '\004';
+ memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+ translation = dcgettext (domain, msg_ctxt_id, category);
+#if !_LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ if (msg_ctxt_id != buf)
+ free (msg_ctxt_id);
+#endif
+ if (translation != msg_ctxt_id)
+ return translation;
+ }
+ return msgid;
+}
+
+#define npgettext_expr(Msgctxt, Msgid, MsgidPlural, N) \
+ dcnpgettext_expr (NULL, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+#define dnpgettext_expr(Domainname, Msgctxt, Msgid, MsgidPlural, N) \
+ dcnpgettext_expr (Domainname, Msgctxt, Msgid, MsgidPlural, N, LC_MESSAGES)
+
+#ifdef __GNUC__
+__inline
+#else
+#ifdef __cplusplus
+inline
+#endif
+#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)
+{
+ size_t msgctxt_len = strlen (msgctxt) + 1;
+ size_t msgid_len = strlen (msgid) + 1;
+ const char *translation;
+#if _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS
+ char msg_ctxt_id[msgctxt_len + msgid_len];
+#else
+ char buf[1024];
+ char *msg_ctxt_id =
+ (msgctxt_len + msgid_len <= sizeof (buf)
+ ? buf
+ : (char *) malloc (msgctxt_len + msgid_len));
+ if (msg_ctxt_id != NULL)
+#endif
+ {
+ memcpy (msg_ctxt_id, msgctxt, msgctxt_len - 1);
+ msg_ctxt_id[msgctxt_len - 1] = '\004';
+ memcpy (msg_ctxt_id + msgctxt_len, msgid, msgid_len);
+ 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);
+#endif
+ if (!(translation == msg_ctxt_id || translation == msgid_plural))
+ return translation;
+ }
+ return (n == 1 ? msgid : msgid_plural);
+}
+
+#endif /* _LIBGETTEXT_H */
diff --git a/gnu/gettime.c b/gnu/gettime.c
new file mode 100644
index 00000000..4fc74064
--- /dev/null
+++ b/gnu/gettime.c
@@ -0,0 +1,50 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* gettime -- get the system clock
+
+ Copyright (C) 2002, 2004-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 "timespec.h"
+
+#include <sys/time.h>
+
+/* Get the system time into *TS. */
+
+void
+gettime (struct timespec *ts)
+{
+#if HAVE_NANOTIME
+ nanotime (ts);
+#else
+
+# if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME
+ if (clock_gettime (CLOCK_REALTIME, ts) == 0)
+ return;
+# endif
+
+ {
+ struct timeval tv;
+ gettimeofday (&tv, NULL);
+ ts->tv_sec = tv.tv_sec;
+ ts->tv_nsec = tv.tv_usec * 1000;
+ }
+
+#endif
+}
diff --git a/gnu/gettimeofday.c b/gnu/gettimeofday.c
new file mode 100644
index 00000000..85462ea9
--- /dev/null
+++ b/gnu/gettimeofday.c
@@ -0,0 +1,146 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Provide gettimeofday for systems that don't have it or for which it's broken.
+
+ Copyright (C) 2001-2003, 2005-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Jim Meyering */
+
+#include <config.h>
+
+/* Specification. */
+#include <sys/time.h>
+
+#include <time.h>
+
+#if HAVE_SYS_TIMEB_H
+# include <sys/timeb.h>
+#endif
+
+#if GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME
+
+/* Work around the bug in some systems whereby gettimeofday clobbers
+ the static buffer that localtime uses for its return value. The
+ gettimeofday function from Mac OS X 10.0.4 (i.e., Darwin 1.3.7) has
+ this problem. The tzset replacement is necessary for at least
+ Solaris 2.5, 2.5.1, and 2.6. */
+
+static struct tm tm_zero_buffer;
+static struct tm *localtime_buffer_addr = &tm_zero_buffer;
+
+# undef localtime
+extern struct tm *localtime (time_t const *);
+
+# undef gmtime
+extern struct tm *gmtime (time_t const *);
+
+/* This is a wrapper for localtime. It is used only on systems for which
+ gettimeofday clobbers the static buffer used for localtime's result.
+
+ On the first call, record the address of the static buffer that
+ localtime uses for its result. */
+
+struct tm *
+rpl_localtime (time_t const *timep)
+{
+ struct tm *tm = localtime (timep);
+
+ if (localtime_buffer_addr == &tm_zero_buffer)
+ localtime_buffer_addr = tm;
+
+ return tm;
+}
+
+/* Same as above, since gmtime and localtime use the same buffer. */
+struct tm *
+rpl_gmtime (time_t const *timep)
+{
+ struct tm *tm = gmtime (timep);
+
+ if (localtime_buffer_addr == &tm_zero_buffer)
+ localtime_buffer_addr = tm;
+
+ return tm;
+}
+
+#endif /* GETTIMEOFDAY_CLOBBERS_LOCALTIME || TZSET_CLOBBERS_LOCALTIME */
+
+#if TZSET_CLOBBERS_LOCALTIME
+
+# undef tzset
+extern void tzset (void);
+
+/* This is a wrapper for tzset, for systems on which tzset may clobber
+ the static buffer used for localtime's result. */
+void
+rpl_tzset (void)
+{
+ /* Save and restore the contents of the buffer used for localtime's
+ result around the call to tzset. */
+ struct tm save = *localtime_buffer_addr;
+ tzset ();
+ *localtime_buffer_addr = save;
+}
+#endif
+
+/* This is a wrapper for gettimeofday. It is used only on systems
+ that lack this function, or whose implementation of this function
+ causes problems. */
+
+int
+gettimeofday (struct timeval *restrict tv, void *restrict tz)
+{
+#undef gettimeofday
+#if HAVE_GETTIMEOFDAY
+# if GETTIMEOFDAY_CLOBBERS_LOCALTIME
+ /* Save and restore the contents of the buffer used for localtime's
+ result around the call to gettimeofday. */
+ struct tm save = *localtime_buffer_addr;
+# endif
+
+ int result = gettimeofday (tv, (struct timezone *) tz);
+
+# if GETTIMEOFDAY_CLOBBERS_LOCALTIME
+ *localtime_buffer_addr = save;
+# endif
+
+ return result;
+
+#else
+
+# if HAVE__FTIME
+
+ struct _timeb timebuf;
+ _ftime (&timebuf);
+ tv->tv_sec = timebuf.time;
+ tv->tv_usec = timebuf.millitm * 1000;
+
+# else
+
+# if !defined OK_TO_USE_1S_CLOCK
+# error "Only 1-second nominal clock resolution found. Is that intended?" \
+ "If so, compile with the -DOK_TO_USE_1S_CLOCK option."
+# endif
+ tv->tv_sec = time (NULL);
+ tv->tv_usec = 0;
+
+# endif
+
+ return 0;
+
+#endif
+}
diff --git a/gnu/hash.c b/gnu/hash.c
new file mode 100644
index 00000000..66df08dd
--- /dev/null
+++ b/gnu/hash.c
@@ -0,0 +1,1235 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* hash - hashing table processing.
+
+ Copyright (C) 1998-2004, 2006-2007, 2009-2012 Free Software Foundation, Inc.
+
+ Written by Jim Meyering, 1992.
+
+ This 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/>. */
+
+/* A generic hash table package. */
+
+/* Define USE_OBSTACK to 1 if you want the allocator to use obstacks instead
+ of malloc. If you change USE_OBSTACK, you have to recompile! */
+
+#include <config.h>
+
+#include "hash.h"
+
+#include "bitrotate.h"
+#include "xalloc-oversized.h"
+
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#if USE_OBSTACK
+# include "obstack.h"
+# ifndef obstack_chunk_alloc
+# define obstack_chunk_alloc malloc
+# endif
+# ifndef obstack_chunk_free
+# define obstack_chunk_free free
+# endif
+#endif
+
+struct hash_entry
+ {
+ void *data;
+ struct hash_entry *next;
+ };
+
+struct hash_table
+ {
+ /* The array of buckets starts at BUCKET and extends to BUCKET_LIMIT-1,
+ for a possibility of N_BUCKETS. Among those, N_BUCKETS_USED buckets
+ are not empty, there are N_ENTRIES active entries in the table. */
+ struct hash_entry *bucket;
+ struct hash_entry const *bucket_limit;
+ size_t n_buckets;
+ size_t n_buckets_used;
+ size_t n_entries;
+
+ /* Tuning arguments, kept in a physically separate structure. */
+ const Hash_tuning *tuning;
+
+ /* Three functions are given to 'hash_initialize', see the documentation
+ block for this function. In a word, HASHER randomizes a user entry
+ into a number up from 0 up to some maximum minus 1; COMPARATOR returns
+ true if two user entries compare equally; and DATA_FREER is the cleanup
+ function for a user entry. */
+ Hash_hasher hasher;
+ Hash_comparator comparator;
+ Hash_data_freer data_freer;
+
+ /* A linked list of freed struct hash_entry structs. */
+ struct hash_entry *free_entry_list;
+
+#if USE_OBSTACK
+ /* Whenever obstacks are used, it is possible to allocate all overflowed
+ entries into a single stack, so they all can be freed in a single
+ operation. It is not clear if the speedup is worth the trouble. */
+ struct obstack entry_stack;
+#endif
+ };
+
+/* A hash table contains many internal entries, each holding a pointer to
+ 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
+ and the current table size. At each slot position in the hash table,
+ starts a linked chain of entries for which the user data all hash to this
+ slot. A bucket is the collection of all entries hashing to the same slot.
+
+ A good "hasher" function will distribute entries rather evenly in buckets.
+ In the ideal case, the length of each bucket is roughly the number of
+ entries divided by the table size. Finding the slot for a data is usually
+ done in constant time by the "hasher", and the later finding of a precise
+ entry is linear in time with the size of the bucket. Consequently, a
+ larger hash table size (that is, a larger number of buckets) is prone to
+ yielding shorter chains, *given* the "hasher" function behaves properly.
+
+ Long buckets slow down the lookup algorithm. One might use big hash table
+ sizes in hope to reduce the average length of buckets, but this might
+ become inordinate, as unused slots in the hash table take some space. The
+ best bet is to make sure you are using a good "hasher" function (beware
+ that those are not that easy to write! :-), and to use a table size
+ larger than the actual number of entries. */
+
+/* If an insertion makes the ratio of nonempty buckets to table size larger
+ than the growth threshold (a number between 0.0 and 1.0), then increase
+ the table size by multiplying by the growth factor (a number greater than
+ 1.0). The growth threshold defaults to 0.8, and the growth factor
+ defaults to 1.414, meaning that the table will have doubled its size
+ every second time 80% of the buckets get used. */
+#define DEFAULT_GROWTH_THRESHOLD 0.8f
+#define DEFAULT_GROWTH_FACTOR 1.414f
+
+/* If a deletion empties a bucket and causes the ratio of used buckets to
+ table size to become smaller than the shrink threshold (a number between
+ 0.0 and 1.0), then shrink the table by multiplying by the shrink factor (a
+ number greater than the shrink threshold but smaller than 1.0). The shrink
+ threshold and factor default to 0.0 and 1.0, meaning that the table never
+ shrinks. */
+#define DEFAULT_SHRINK_THRESHOLD 0.0f
+#define DEFAULT_SHRINK_FACTOR 1.0f
+
+/* Use this to initialize or reset a TUNING structure to
+ some sensible values. */
+static const Hash_tuning default_tuning =
+ {
+ DEFAULT_SHRINK_THRESHOLD,
+ DEFAULT_SHRINK_FACTOR,
+ DEFAULT_GROWTH_THRESHOLD,
+ DEFAULT_GROWTH_FACTOR,
+ false
+ };
+
+/* Information and lookup. */
+
+/* The following few functions provide information about the overall hash
+ table organization: the number of entries, number of buckets and maximum
+ length of buckets. */
+
+/* Return the number of buckets in the hash table. The table size, the total
+ number of buckets (used plus unused), or the maximum number of slots, are
+ the same quantity. */
+
+size_t
+hash_get_n_buckets (const Hash_table *table)
+{
+ return table->n_buckets;
+}
+
+/* Return the number of slots in use (non-empty buckets). */
+
+size_t
+hash_get_n_buckets_used (const Hash_table *table)
+{
+ return table->n_buckets_used;
+}
+
+/* Return the number of active entries. */
+
+size_t
+hash_get_n_entries (const Hash_table *table)
+{
+ return table->n_entries;
+}
+
+/* Return the length of the longest chain (bucket). */
+
+size_t
+hash_get_max_bucket_length (const Hash_table *table)
+{
+ struct hash_entry const *bucket;
+ size_t max_bucket_length = 0;
+
+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
+ {
+ if (bucket->data)
+ {
+ struct hash_entry const *cursor = bucket;
+ size_t bucket_length = 1;
+
+ while (cursor = cursor->next, cursor)
+ bucket_length++;
+
+ if (bucket_length > max_bucket_length)
+ max_bucket_length = bucket_length;
+ }
+ }
+
+ return max_bucket_length;
+}
+
+/* Do a mild validation of a hash table, by traversing it and checking two
+ statistics. */
+
+bool
+hash_table_ok (const Hash_table *table)
+{
+ struct hash_entry const *bucket;
+ size_t n_buckets_used = 0;
+ size_t n_entries = 0;
+
+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
+ {
+ if (bucket->data)
+ {
+ struct hash_entry const *cursor = bucket;
+
+ /* Count bucket head. */
+ n_buckets_used++;
+ 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)
+ return true;
+
+ return false;
+}
+
+void
+hash_print_statistics (const Hash_table *table, FILE *stream)
+{
+ size_t n_entries = hash_get_n_entries (table);
+ size_t n_buckets = hash_get_n_buckets (table);
+ size_t n_buckets_used = hash_get_n_buckets_used (table);
+ size_t max_bucket_length = hash_get_max_bucket_length (table);
+
+ 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);
+ fprintf (stream, "max bucket length: %lu\n",
+ (unsigned long int) max_bucket_length);
+}
+
+/* Hash KEY and return a pointer to the selected bucket.
+ If TABLE->hasher misbehaves, abort. */
+static struct hash_entry *
+safe_hasher (const Hash_table *table, const void *key)
+{
+ size_t n = table->hasher (key, table->n_buckets);
+ if (! (n < table->n_buckets))
+ abort ();
+ return table->bucket + n;
+}
+
+/* If ENTRY matches an entry already in the hash table, return the
+ entry from the table. Otherwise, return NULL. */
+
+void *
+hash_lookup (const Hash_table *table, const void *entry)
+{
+ struct hash_entry const *bucket = safe_hasher (table, entry);
+ struct hash_entry const *cursor;
+
+ if (bucket->data == NULL)
+ return NULL;
+
+ for (cursor = bucket; cursor; cursor = cursor->next)
+ if (entry == cursor->data || table->comparator (entry, cursor->data))
+ return cursor->data;
+
+ return NULL;
+}
+
+/* Walking. */
+
+/* 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, 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. */
+
+void *
+hash_get_first (const Hash_table *table)
+{
+ struct hash_entry const *bucket;
+
+ if (table->n_entries == 0)
+ return NULL;
+
+ for (bucket = table->bucket; ; bucket++)
+ if (! (bucket < table->bucket_limit))
+ abort ();
+ else if (bucket->data)
+ return bucket->data;
+}
+
+/* Return the user data for the entry following ENTRY, where ENTRY has been
+ returned by a previous call to either 'hash_get_first' or 'hash_get_next'.
+ Return NULL if there are no more entries. */
+
+void *
+hash_get_next (const Hash_table *table, const void *entry)
+{
+ struct hash_entry const *bucket = safe_hasher (table, entry);
+ struct hash_entry const *cursor;
+
+ /* Find next entry in the same bucket. */
+ cursor = bucket;
+ do
+ {
+ if (cursor->data == entry && cursor->next)
+ return cursor->next->data;
+ cursor = cursor->next;
+ }
+ while (cursor != NULL);
+
+ /* Find first entry in any subsequent bucket. */
+ while (++bucket < table->bucket_limit)
+ if (bucket->data)
+ return bucket->data;
+
+ /* None found. */
+ return NULL;
+}
+
+/* Fill BUFFER with pointers to active user entries in the hash table, then
+ return the number of pointers copied. Do not copy more than BUFFER_SIZE
+ pointers. */
+
+size_t
+hash_get_entries (const Hash_table *table, void **buffer,
+ size_t buffer_size)
+{
+ size_t counter = 0;
+ struct hash_entry const *bucket;
+ struct hash_entry const *cursor;
+
+ 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;
+ }
+ }
+ }
+
+ return counter;
+}
+
+/* Call a PROCESSOR function for each entry of a hash table, and return the
+ number of entries for which the processor function returned success. A
+ pointer to some PROCESSOR_DATA which will be made available to each call to
+ the processor function. The PROCESSOR accepts two arguments: the first is
+ the user entry being walked into, the second is the value of PROCESSOR_DATA
+ as received. The walking continue for as long as the PROCESSOR function
+ returns nonzero. When it returns zero, the walking is interrupted. */
+
+size_t
+hash_do_for_each (const Hash_table *table, Hash_processor processor,
+ void *processor_data)
+{
+ size_t counter = 0;
+ struct hash_entry const *bucket;
+ struct hash_entry const *cursor;
+
+ 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++;
+ }
+ }
+ }
+
+ return counter;
+}
+
+/* Allocation and clean-up. */
+
+/* Return a hash index for a NUL-terminated STRING between 0 and N_BUCKETS-1.
+ This is a convenience routine for constructing other hashing functions. */
+
+#if USE_DIFF_HASH
+
+/* About hashings, Paul Eggert writes to me (FP), on 1994-01-01: "Please see
+ B. J. McKenzie, R. Harries & T. Bell, Selecting a hashing algorithm,
+ Software--practice & experience 20, 2 (Feb 1990), 209-224. Good hash
+ algorithms tend to be domain-specific, so what's good for [diffutils'] io.c
+ may not be good for your application." */
+
+size_t
+hash_string (const char *string, size_t n_buckets)
+{
+# define HASH_ONE_CHAR(Value, Byte) \
+ ((Byte) + rotl_sz (Value, 7))
+
+ size_t value = 0;
+ unsigned char ch;
+
+ for (; (ch = *string); string++)
+ value = HASH_ONE_CHAR (value, ch);
+ return value % n_buckets;
+
+# undef HASH_ONE_CHAR
+}
+
+#else /* not USE_DIFF_HASH */
+
+/* This one comes from 'recode', and performs a bit better than the above as
+ per a few experiments. It is inspired from a hashing routine found in the
+ very old Cyber 'snoop', itself written in typical Greg Mansfield style.
+ (By the way, what happened to this excellent man? Is he still alive?) */
+
+size_t
+hash_string (const char *string, size_t n_buckets)
+{
+ size_t value = 0;
+ unsigned char ch;
+
+ for (; (ch = *string); string++)
+ value = (value * 31 + ch) % n_buckets;
+ return value;
+}
+
+#endif /* not USE_DIFF_HASH */
+
+/* Return true if CANDIDATE is a prime number. CANDIDATE should be an odd
+ number at least equal to 11. */
+
+static bool _GL_ATTRIBUTE_CONST
+is_prime (size_t candidate)
+{
+ size_t divisor = 3;
+ size_t square = divisor * divisor;
+
+ while (square < candidate && (candidate % divisor))
+ {
+ divisor++;
+ square += 4 * divisor;
+ divisor++;
+ }
+
+ return (candidate % divisor ? true : false);
+}
+
+/* Round a given CANDIDATE number up to the nearest prime, and return that
+ prime. Primes lower than 10 are merely skipped. */
+
+static size_t _GL_ATTRIBUTE_CONST
+next_prime (size_t candidate)
+{
+ /* Skip small primes. */
+ if (candidate < 10)
+ candidate = 10;
+
+ /* Make it definitely odd. */
+ candidate |= 1;
+
+ while (SIZE_MAX != candidate && !is_prime (candidate))
+ candidate += 2;
+
+ return candidate;
+}
+
+void
+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
+ in the hash table (that is, the user loses the right of further modifying
+ tuning arguments), and return false. */
+
+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. */
+ epsilon = 0.1f;
+
+ if (epsilon < tuning->growth_threshold
+ && tuning->growth_threshold < 1 - epsilon
+ && 1 + epsilon < tuning->growth_factor
+ && 0 <= tuning->shrink_threshold
+ && tuning->shrink_threshold + epsilon < tuning->shrink_factor
+ && tuning->shrink_factor <= 1
+ && tuning->shrink_threshold + epsilon < tuning->growth_threshold)
+ return true;
+
+ table->tuning = &default_tuning;
+ 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 _GL_ATTRIBUTE_PURE
+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
+ the hash table size occurs. So, if have a reasonably tight a-priori upper
+ bound on the number of entries you intend to insert in the hash table, you
+ may save some table memory and insertion time, by specifying it here. If
+ the IS_N_BUCKETS field of the TUNING structure is true, the CANDIDATE
+ argument has its meaning changed to the wanted number of buckets.
+
+ 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. If TUNING is
+ provided but the values requested are out of bounds or might cause
+ rounding errors, return NULL.
+
+ 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, 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,
+ 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
+ data gets freed. This happens from within 'hash_free' or 'hash_clear'.
+ You should specify this function only if you want these functions to free
+ all of your 'data' data. This is typically the case when your data is
+ simply an auxiliary struct that you have malloc'd to aggregate several
+ values. */
+
+Hash_table *
+hash_initialize (size_t candidate, const Hash_tuning *tuning,
+ Hash_hasher hasher, Hash_comparator comparator,
+ Hash_data_freer data_freer)
+{
+ Hash_table *table;
+
+ if (hasher == NULL)
+ hasher = raw_hasher;
+ if (comparator == NULL)
+ comparator = raw_comparator;
+
+ table = malloc (sizeof *table);
+ if (table == NULL)
+ return NULL;
+
+ if (!tuning)
+ tuning = &default_tuning;
+ table->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. */
+ goto fail;
+ }
+
+ table->n_buckets = compute_bucket_size (candidate, tuning);
+ if (!table->n_buckets)
+ goto fail;
+
+ table->bucket = calloc (table->n_buckets, sizeof *table->bucket);
+ if (table->bucket == NULL)
+ goto fail;
+ table->bucket_limit = table->bucket + table->n_buckets;
+ table->n_buckets_used = 0;
+ table->n_entries = 0;
+
+ table->hasher = hasher;
+ table->comparator = comparator;
+ table->data_freer = data_freer;
+
+ table->free_entry_list = NULL;
+#if USE_OBSTACK
+ obstack_init (&table->entry_stack);
+#endif
+ return table;
+
+ fail:
+ free (table);
+ return NULL;
+}
+
+/* Make all buckets empty, placing any chained entries on the free list.
+ Apply the user-specified function data_freer (if any) to the datas of any
+ affected entries. */
+
+void
+hash_clear (Hash_table *table)
+{
+ struct hash_entry *bucket;
+
+ 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;
+ }
+ }
+
+ table->n_buckets_used = 0;
+ table->n_entries = 0;
+}
+
+/* Reclaim all storage associated with a hash table. If a data_freer
+ function has been supplied by the user when the hash table was created,
+ this function applies it to the data of each entry before freeing that
+ entry. */
+
+void
+hash_free (Hash_table *table)
+{
+ struct hash_entry *bucket;
+ struct hash_entry *cursor;
+ struct hash_entry *next;
+
+ /* Call the user data_freer function. */
+ 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 USE_OBSTACK
+
+ obstack_free (&table->entry_stack, NULL);
+
+#else
+
+ /* Free all bucket overflowed entries. */
+ for (bucket = table->bucket; bucket < table->bucket_limit; bucket++)
+ {
+ for (cursor = bucket->next; cursor; cursor = next)
+ {
+ next = cursor->next;
+ free (cursor);
+ }
+ }
+
+ /* Also reclaim the internal list of previously freed entries. */
+ for (cursor = table->free_entry_list; cursor; cursor = next)
+ {
+ next = cursor->next;
+ free (cursor);
+ }
+
+#endif
+
+ /* Free the remainder of the hash table structure. */
+ free (table->bucket);
+ free (table);
+}
+
+/* Insertion and deletion. */
+
+/* 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 *
+allocate_entry (Hash_table *table)
+{
+ struct hash_entry *new;
+
+ if (table->free_entry_list)
+ {
+ new = table->free_entry_list;
+ table->free_entry_list = new->next;
+ }
+ else
+ {
+#if USE_OBSTACK
+ new = obstack_alloc (&table->entry_stack, sizeof *new);
+#else
+ new = malloc (sizeof *new);
+#endif
+ }
+
+ return new;
+}
+
+/* Free a hash entry which was part of some bucket overflow,
+ saving it for later recycling. */
+
+static void
+free_entry (Hash_table *table, struct hash_entry *entry)
+{
+ entry->data = NULL;
+ entry->next = table->free_entry_list;
+ table->free_entry_list = entry;
+}
+
+/* This private function is used to help with insertion and deletion. When
+ ENTRY matches an entry in the table, return a pointer to the corresponding
+ user data and set *BUCKET_HEAD to the head of the selected bucket.
+ Otherwise, return NULL. When DELETE is true and ENTRY matches an entry in
+ the table, unlink the matching entry. */
+
+static void *
+hash_find_entry (Hash_table *table, const void *entry,
+ struct hash_entry **bucket_head, bool delete)
+{
+ struct hash_entry *bucket = safe_hasher (table, entry);
+ struct hash_entry *cursor;
+
+ *bucket_head = bucket;
+
+ /* Test for empty bucket. */
+ if (bucket->data == NULL)
+ return NULL;
+
+ /* See if the entry is the first in the bucket. */
+ 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;
+ }
+ }
+
+ return data;
+ }
+
+ /* Scan the bucket overflow. */
+ for (cursor = bucket; cursor->next; cursor = cursor->next)
+ {
+ 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 = safe_hasher (dst, data);
+
+ 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 = safe_hasher (dst, data);
+
+ 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. Return true iff the rehash succeeded. */
+
+bool
+hash_rehash (Hash_table *table, size_t candidate)
+{
+ Hash_table storage;
+ Hash_table *new_table;
+ size_t new_size = compute_bucket_size (candidate, table->tuning);
+
+ 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
+ new_table->entry_stack = table->entry_stack;
+#endif
+ new_table->free_entry_list = table->free_entry_list;
+
+ 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;
+ }
+
+ /* 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. */
+ free (new_table->bucket);
+ return false;
+}
+
+/* Insert ENTRY into hash TABLE if there is not already a matching entry.
+
+ Return -1 upon memory allocation failure.
+ Return 1 if insertion succeeded.
+ Return 0 if there is already a matching entry in the table,
+ and in that case, if MATCHED_ENT is non-NULL, set *MATCHED_ENT
+ to that entry.
+
+ This interface is easier to use than hash_insert when you must
+ distinguish between the latter two cases. More importantly,
+ hash_insert is unusable for some types of ENTRY values. When using
+ hash_insert, the only way to distinguish those cases is to compare
+ the return value and ENTRY. That works only when you can have two
+ different ENTRY values that point to data that compares "equal". Thus,
+ when the ENTRY value is a simple scalar, you must use
+ hash_insert_if_absent. ENTRY must not be NULL. */
+int
+hash_insert_if_absent (Hash_table *table, void const *entry,
+ void const **matched_ent)
+{
+ void *data;
+ struct hash_entry *bucket;
+
+ /* The caller cannot insert a NULL entry, since hash_lookup returns NULL
+ to indicate "not found", and hash_find_entry uses "bucket->data == NULL"
+ to indicate an empty bucket. */
+ if (! entry)
+ abort ();
+
+ /* If there's a matching entry already in the table, return that. */
+ if ((data = hash_find_entry (table, entry, &bucket, false)) != NULL)
+ {
+ if (matched_ent)
+ *matched_ent = data;
+ return 0;
+ }
+
+ /* 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 -1;
+
+ /* If the rehash fails, arrange to return NULL. */
+ if (!hash_rehash (table, candidate))
+ return -1;
+
+ /* 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)
+ {
+ struct hash_entry *new_entry = allocate_entry (table);
+
+ if (new_entry == NULL)
+ return -1;
+
+ /* Add ENTRY in the overflow of the bucket. */
+
+ new_entry->data = (void *) entry;
+ new_entry->next = bucket->next;
+ bucket->next = new_entry;
+ table->n_entries++;
+ return 1;
+ }
+
+ /* Add ENTRY right in the bucket head. */
+
+ bucket->data = (void *) entry;
+ table->n_entries++;
+ table->n_buckets_used++;
+
+ return 1;
+}
+
+/* hash_insert0 is the deprecated name for hash_insert_if_absent.
+ . */
+int
+hash_insert0 (Hash_table *table, void const *entry, void const **matched_ent)
+{
+ return hash_insert_if_absent (table, entry, matched_ent);
+}
+
+/* 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.
+ This implementation does not support duplicate entries or insertion of
+ NULL. */
+
+void *
+hash_insert (Hash_table *table, void const *entry)
+{
+ void const *matched_ent;
+ int err = hash_insert_if_absent (table, entry, &matched_ent);
+ return (err == -1
+ ? NULL
+ : (void *) (err == 0 ? matched_ent : entry));
+}
+
+/* If ENTRY is already in the table, remove it and return the just-deleted
+ data (the user may want to deallocate its storage). If ENTRY is not in the
+ table, don't modify the table and return NULL. */
+
+void *
+hash_delete (Hash_table *table, const void *entry)
+{
+ void *data;
+ struct hash_entry *bucket;
+
+ data = hash_find_entry (table, entry, &bucket, true);
+ if (!data)
+ return NULL;
+
+ table->n_entries--;
+ if (!bucket->data)
+ {
+ table->n_buckets_used--;
+
+ /* If the shrink threshold of the buckets in use has been reached,
+ 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));
+
+ 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;
+}
+
+/* Testing. */
+
+#if TESTING
+
+void
+hash_print (const Hash_table *table)
+{
+ struct hash_entry *bucket = (struct hash_entry *) table->bucket;
+
+ for ( ; bucket < table->bucket_limit; bucket++)
+ {
+ struct hash_entry *cursor;
+
+ if (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);
+ }
+ }
+}
+
+#endif /* TESTING */
diff --git a/gnu/hash.h b/gnu/hash.h
new file mode 100644
index 00000000..27aa86a6
--- /dev/null
+++ b/gnu/hash.h
@@ -0,0 +1,109 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* hash - hashing table processing.
+ Copyright (C) 1998-1999, 2001, 2003, 2009-2012 Free Software Foundation,
+ Inc.
+ Written by Jim Meyering <meyering@ascend.com>, 1998.
+
+ This 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/>. */
+
+/* A generic hash table package. */
+
+/* Make sure USE_OBSTACK is defined to 1 if you want the allocator to use
+ obstacks instead of malloc, and recompile 'hash.c' with same setting. */
+
+#ifndef HASH_H_
+# define HASH_H_
+
+# include <stdio.h>
+# include <stdbool.h>
+
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+ The warn_unused_result attribute appeared first in gcc-3.4.0. */
+# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+# define _GL_ATTRIBUTE_WUR __attribute__ ((__warn_unused_result__))
+# else
+# define _GL_ATTRIBUTE_WUR /* empty */
+# endif
+
+# ifndef _GL_ATTRIBUTE_DEPRECATED
+/* The __attribute__((__deprecated__)) feature
+ is available in gcc versions 3.1 and newer. */
+# if __GNUC__ < 3 || (__GNUC__ == 3 && __GNUC_MINOR__ < 1)
+# define _GL_ATTRIBUTE_DEPRECATED /* empty */
+# else
+# define _GL_ATTRIBUTE_DEPRECATED __attribute__ ((__deprecated__))
+# endif
+# 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_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 */
+ };
+
+typedef struct hash_tuning Hash_tuning;
+
+struct hash_table;
+
+typedef struct hash_table Hash_table;
+
+/* Information and lookup. */
+size_t hash_get_n_buckets (const Hash_table *) _GL_ATTRIBUTE_PURE;
+size_t hash_get_n_buckets_used (const Hash_table *) _GL_ATTRIBUTE_PURE;
+size_t hash_get_n_entries (const Hash_table *) _GL_ATTRIBUTE_PURE;
+size_t hash_get_max_bucket_length (const Hash_table *) _GL_ATTRIBUTE_PURE;
+bool hash_table_ok (const Hash_table *) _GL_ATTRIBUTE_PURE;
+void hash_print_statistics (const Hash_table *, FILE *);
+void *hash_lookup (const Hash_table *, const void *);
+
+/* Walking. */
+void *hash_get_first (const Hash_table *) _GL_ATTRIBUTE_PURE;
+void *hash_get_next (const Hash_table *, const void *);
+size_t hash_get_entries (const Hash_table *, void **, size_t);
+size_t hash_do_for_each (const Hash_table *, Hash_processor, void *);
+
+/* Allocation and clean-up. */
+size_t hash_string (const char *, size_t) _GL_ATTRIBUTE_PURE;
+void hash_reset_tuning (Hash_tuning *);
+Hash_table *hash_initialize (size_t, const Hash_tuning *,
+ Hash_hasher, Hash_comparator,
+ Hash_data_freer) _GL_ATTRIBUTE_WUR;
+void hash_clear (Hash_table *);
+void hash_free (Hash_table *);
+
+/* Insertion and deletion. */
+bool hash_rehash (Hash_table *, size_t) _GL_ATTRIBUTE_WUR;
+void *hash_insert (Hash_table *, const void *) _GL_ATTRIBUTE_WUR;
+
+/* Deprecate this interface. It has been renamed to hash_insert_if_absent. */
+int hash_insert0 (Hash_table *table, /* FIXME: remove in 2013 */
+ const void *entry,
+ const void **matched_ent) _GL_ATTRIBUTE_DEPRECATED;
+int hash_insert_if_absent (Hash_table *table, const void *entry,
+ const void **matched_ent);
+void *hash_delete (Hash_table *, const void *);
+
+#endif
diff --git a/gnu/human.c b/gnu/human.c
new file mode 100644
index 00000000..41dcb444
--- /dev/null
+++ b/gnu/human.c
@@ -0,0 +1,472 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* human.c -- print human readable file size
+
+ Copyright (C) 1996-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Larry McVoy. */
+
+#include <config.h>
+
+#include "human.h"
+
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <argmatch.h>
+#include <error.h>
+#include <intprops.h>
+
+/* The maximum length of a suffix like "KiB". */
+#define HUMAN_READABLE_SUFFIX_LENGTH_MAX 3
+
+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 */
+};
+
+
+/* If INEXACT_STYLE is not human_round_to_nearest, and if easily
+ possible, adjust VALUE according to the style. */
+
+static long double
+adjust_value (int inexact_style, long double value)
+{
+ /* Do not use the floorl or ceill functions, as that would mean
+ checking for their presence and possibly linking with the
+ standard math library, which is a porting pain. So leave the
+ value alone if it is too large to easily round. */
+ if (inexact_style != human_round_to_nearest && value < UINTMAX_MAX)
+ {
+ uintmax_t u = value;
+ value = u + (inexact_style == human_ceiling && u != value);
+ }
+
+ return value;
+}
+
+/* Group the digits of NUMBER according to the grouping rules of the
+ current locale. NUMBER contains NUMBERLEN digits. Modify the
+ bytes pointed to by NUMBER in place, subtracting 1 from NUMBER for
+ each byte inserted. Return the starting address of the modified
+ number.
+
+ To group the digits, use GROUPING and THOUSANDS_SEP as in 'struct
+ lconv' from <locale.h>. */
+
+static char *
+group_number (char *number, size_t numberlen,
+ char const *grouping, char const *thousands_sep)
+{
+ register char *d;
+ size_t grouplen = SIZE_MAX;
+ size_t thousands_seplen = strlen (thousands_sep);
+ size_t i = numberlen;
+
+ /* The maximum possible value for NUMBERLEN is the number of digits
+ in the square of the largest uintmax_t, so double the size needed. */
+ char buf[2 * INT_STRLEN_BOUND (uintmax_t) + 1];
+
+ memcpy (buf, number, numberlen);
+ d = number + numberlen;
+
+ for (;;)
+ {
+ unsigned char g = *grouping;
+
+ if (g)
+ {
+ grouplen = g < CHAR_MAX ? g : i;
+ grouping++;
+ }
+
+ if (i < grouplen)
+ grouplen = i;
+
+ d -= grouplen;
+ i -= grouplen;
+ memcpy (d, buf + i, grouplen);
+ if (i == 0)
+ return d;
+
+ d -= thousands_seplen;
+ memcpy (d, thousands_sep, thousands_seplen);
+ }
+}
+
+/* Convert N to a human readable format in BUF, using the options OPTS.
+
+ N is expressed in units of FROM_BLOCK_SIZE. FROM_BLOCK_SIZE must
+ be nonnegative.
+
+ Use units of TO_BLOCK_SIZE in the output number. TO_BLOCK_SIZE
+ must be positive.
+
+ Use (OPTS & (human_round_to_nearest | human_floor | human_ceiling))
+ to determine whether to take the ceiling or floor of any result
+ that cannot be expressed exactly.
+
+ If (OPTS & human_group_digits), group the thousands digits
+ according to the locale, e.g., "1,000,000" in an American English
+ locale.
+
+ If (OPTS & human_autoscale), deduce the output block size
+ automatically; TO_BLOCK_SIZE must be 1 but it has no effect on the
+ output. Use powers of 1024 if (OPTS & human_base_1024), and powers
+ of 1000 otherwise. For example, assuming powers of 1024, 8500
+ would be converted to 8.3, 133456345 to 127, 56990456345 to 53, and
+ so on. Numbers smaller than the power aren't modified.
+ human_autoscale is normally used together with human_SI.
+
+ If (OPTS & human_space_before_unit), use a space to separate the
+ number from any suffix that is appended as described below.
+
+ If (OPTS & human_SI), append an SI prefix indicating which power is
+ being used. If in addition (OPTS & human_B), append "B" (if base
+ 1000) or "iB" (if base 1024) to the SI prefix. When ((OPTS &
+ human_SI) && ! (OPTS & human_autoscale)), TO_BLOCK_SIZE must be a
+ power of 1024 or of 1000, depending on (OPTS &
+ human_base_1024). */
+
+char *
+human_readable (uintmax_t n, char *buf, int opts,
+ uintmax_t from_block_size, uintmax_t to_block_size)
+{
+ int inexact_style =
+ opts & (human_round_to_nearest | human_floor | human_ceiling);
+ unsigned int base = opts & human_base_1024 ? 1024 : 1000;
+ uintmax_t amt;
+ int tenths;
+ int exponent = -1;
+ int exponent_max = sizeof power_letter - 1;
+ char *p;
+ char *psuffix;
+ char const *integerlim;
+
+ /* 0 means adjusted N == AMT.TENTHS;
+ 1 means AMT.TENTHS < adjusted N < AMT.TENTHS + 0.05;
+ 2 means adjusted N == AMT.TENTHS + 0.05;
+ 3 means AMT.TENTHS + 0.05 < adjusted N < AMT.TENTHS + 0.1. */
+ int rounding;
+
+ char const *decimal_point = ".";
+ size_t decimal_pointlen = 1;
+ char const *grouping = "";
+ char const *thousands_sep = "";
+ struct lconv const *l = localeconv ();
+ size_t pointlen = strlen (l->decimal_point);
+ if (0 < pointlen && pointlen <= MB_LEN_MAX)
+ {
+ decimal_point = l->decimal_point;
+ decimal_pointlen = pointlen;
+ }
+ grouping = l->grouping;
+ if (strlen (l->thousands_sep) <= MB_LEN_MAX)
+ thousands_sep = l->thousands_sep;
+
+ psuffix = buf + LONGEST_HUMAN_READABLE - HUMAN_READABLE_SUFFIX_LENGTH_MAX;
+ p = psuffix;
+
+ /* Adjust AMT out of FROM_BLOCK_SIZE units and into TO_BLOCK_SIZE
+ units. If this can be done exactly with integer arithmetic, do
+ not use floating point operations. */
+ 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;
+ }
+ }
+ }
+ else if (from_block_size != 0 && to_block_size % from_block_size == 0)
+ {
+ uintmax_t divisor = to_block_size / from_block_size;
+ uintmax_t r10 = (n % divisor) * 10;
+ uintmax_t r2 = (r10 % divisor) * 2;
+ amt = n / divisor;
+ tenths = r10 / divisor;
+ rounding = r2 < divisor ? 0 < r2 : 2 + (divisor < r2);
+ goto use_integer_arithmetic;
+ }
+
+ {
+ /* Either the result cannot be computed easily using uintmax_t,
+ or from_block_size is zero. Fall back on floating point.
+ FIXME: This can yield answers that are slightly off. */
+
+ long double dto_block_size = to_block_size;
+ long double damt = n * (from_block_size / dto_block_size);
+ size_t buflen;
+ size_t nonintegerlen;
+
+ if (! (opts & human_autoscale))
+ {
+ 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;
+ }
+ }
+
+ p = psuffix - buflen;
+ memmove (p, buf, buflen);
+ integerlim = p + buflen - nonintegerlen;
+ }
+ goto do_grouping;
+
+ use_integer_arithmetic:
+ {
+ /* The computation can be done exactly, with integer arithmetic.
+
+ Use power of BASE notation if requested and if adjusted AMT is
+ large enough. */
+
+ 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;
+ }
+ }
+ }
+ }
+
+ if (inexact_style == human_round_to_nearest
+ ? 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;
+ }
+ }
+
+ integerlim = p;
+
+ do
+ {
+ int digit = amt % 10;
+ *--p = digit + '0';
+ }
+ while ((amt /= 10) != 0);
+ }
+
+ do_grouping:
+ if (opts & human_group_digits)
+ p = group_number (p, integerlim - p, grouping, thousands_sep);
+
+ 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;
+ }
+
+ if ((exponent | (opts & human_B)) && (opts & human_space_before_unit))
+ *psuffix++ = ' ';
+
+ if (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';
+ }
+ }
+
+ *psuffix = '\0';
+
+ return p;
+}
+
+
+/* The default block size used for output. This number may change in
+ the future as disks get larger. */
+#ifndef DEFAULT_BLOCK_SIZE
+# define DEFAULT_BLOCK_SIZE 1024
+#endif
+
+static char const *const block_size_args[] = { "human-readable", "si", 0 };
+static int const block_size_opts[] =
+ {
+ human_autoscale + human_SI + human_base_1024,
+ human_autoscale + human_SI
+ };
+
+static uintmax_t
+default_block_size (void)
+{
+ return getenv ("POSIXLY_CORRECT") ? 512 : DEFAULT_BLOCK_SIZE;
+}
+
+static strtol_error
+humblock (char const *spec, uintmax_t *block_size, int *options)
+{
+ int i;
+ int opts = 0;
+
+ if (! spec
+ && ! (spec = getenv ("BLOCK_SIZE"))
+ && ! (spec = getenv ("BLOCKSIZE")))
+ *block_size = default_block_size ();
+ else
+ {
+ if (*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;
+ }
+ 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;
+ }
+ }
+ }
+
+ *options = opts;
+ return LONGINT_OK;
+}
+
+enum strtol_error
+human_options (char const *spec, int *opts, uintmax_t *block_size)
+{
+ strtol_error e = humblock (spec, block_size, opts);
+ if (*block_size == 0)
+ {
+ *block_size = default_block_size ();
+ e = LONGINT_INVALID;
+ }
+ return e;
+}
diff --git a/gnu/human.h b/gnu/human.h
new file mode 100644
index 00000000..6dbc40b6
--- /dev/null
+++ b/gnu/human.h
@@ -0,0 +1,85 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* human.h -- print human readable file size
+
+ Copyright (C) 1996-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Larry McVoy. */
+
+#ifndef HUMAN_H_
+# define HUMAN_H_ 1
+
+# include <limits.h>
+# include <stdbool.h>
+# include <stdint.h>
+# include <unistd.h>
+
+# include <xstrtol.h>
+
+/* A conservative bound on the maximum length of a human-readable string.
+ The output can be the square of the largest uintmax_t, so double
+ its size before converting to a bound.
+ log10 (2.0) < 146/485. Add 1 for integer division truncation.
+ Also, the output can have a thousands separator between every digit,
+ so multiply by MB_LEN_MAX + 1 and then subtract MB_LEN_MAX.
+ Append 1 for a space before the suffix.
+ Finally, append 3, the maximum length of a suffix. */
+# define LONGEST_HUMAN_READABLE \
+ ((2 * sizeof (uintmax_t) * CHAR_BIT * 146 / 485 + 1) * (MB_LEN_MAX + 1) \
+ - MB_LEN_MAX + 1 + 3)
+
+/* Options for human_readable. */
+enum
+{
+ /* Unless otherwise specified these options may be ORed together. */
+
+ /* The following three options are mutually exclusive. */
+ /* Round to plus infinity (default). */
+ human_ceiling = 0,
+ /* Round to nearest, ties to even. */
+ human_round_to_nearest = 1,
+ /* Round to minus infinity. */
+ human_floor = 2,
+
+ /* Group digits together, e.g. "1,000,000". This uses the
+ locale-defined grouping; the traditional C locale does not group,
+ so this has effect only if some other locale is in use. */
+ human_group_digits = 4,
+
+ /* When autoscaling, suppress ".0" at end. */
+ human_suppress_point_zero = 8,
+
+ /* Scale output and use SI-style units, ignoring the output block size. */
+ human_autoscale = 16,
+
+ /* Prefer base 1024 to base 1000. */
+ human_base_1024 = 32,
+
+ /* Prepend " " before unit symbol. */
+ human_space_before_unit = 64,
+
+ /* Append SI prefix, e.g. "k" or "M". */
+ human_SI = 128,
+
+ /* Append "B" (if base 1000) or "iB" (if base 1024) to SI prefix. */
+ human_B = 256
+};
+
+char *human_readable (uintmax_t, char *, int, uintmax_t, uintmax_t);
+
+enum strtol_error human_options (char const *, int *, uintmax_t *);
+
+#endif /* HUMAN_H_ */
diff --git a/gnu/imaxtostr.c b/gnu/imaxtostr.c
new file mode 100644
index 00000000..68c18a53
--- /dev/null
+++ b/gnu/imaxtostr.c
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#define anytostr imaxtostr
+#define inttype intmax_t
+#include "anytostr.c"
diff --git a/gnu/intprops.h b/gnu/intprops.h
new file mode 100644
index 00000000..b1f703bb
--- /dev/null
+++ b/gnu/intprops.h
@@ -0,0 +1,321 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* intprops.h -- properties of integer types
+
+ Copyright (C) 2001-2005, 2009-2012 Free Software Foundation, Inc.
+
+ This 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. */
+
+#ifndef _GL_INTPROPS_H
+#define _GL_INTPROPS_H
+
+#include <limits.h>
+
+/* Return an integer value, converted to the same type as the integer
+ expression E after integer type promotion. V is the unconverted value. */
+#define _GL_INT_CONVERT(e, v) (0 * (e) + (v))
+
+/* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00406.html>. */
+#define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v))
+
+/* 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)
+
+/* 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)
+
+/* True if the signed integer expression E uses two's complement. */
+#define _GL_INT_TWOS_COMPLEMENT(e) (~ _GL_INT_CONVERT (e, 0) == -1)
+
+/* True if the arithmetic type T is signed. */
+#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
+
+/* Return 1 if the integer expression E, after integer promotion, has
+ a signed type. */
+#define _GL_INT_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
+
+
+/* Minimum and maximum values for integer types and expressions. 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. */
+
+/* The maximum and minimum values for the integer type T. */
+#define TYPE_MINIMUM(t) \
+ ((t) (! TYPE_SIGNED (t) \
+ ? (t) 0 \
+ : TYPE_SIGNED_MAGNITUDE (t) \
+ ? ~ (t) 0 \
+ : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) (! TYPE_SIGNED (t) \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+
+/* The maximum and minimum values for the type of the expression E,
+ after integer promotion. E should not have side effects. */
+#define _GL_INT_MINIMUM(e) \
+ (_GL_INT_SIGNED (e) \
+ ? - _GL_INT_TWOS_COMPLEMENT (e) - _GL_SIGNED_INT_MAXIMUM (e) \
+ : _GL_INT_CONVERT (e, 0))
+#define _GL_INT_MAXIMUM(e) \
+ (_GL_INT_SIGNED (e) \
+ ? _GL_SIGNED_INT_MAXIMUM (e) \
+ : _GL_INT_NEGATE_CONVERT (e, 1))
+#define _GL_SIGNED_INT_MAXIMUM(e) \
+ (((_GL_INT_CONVERT (e, 1) << (sizeof ((e) + 0) * CHAR_BIT - 2)) - 1) * 2 + 1)
+
+
+/* Return 1 if the __typeof__ keyword works. This could be done by
+ 'configure', but for now it's easier to do it by hand. */
+#if 2 <= __GNUC__ || 0x5110 <= __SUNPRO_C
+# define _GL_HAVE___TYPEOF__ 1
+#else
+# define _GL_HAVE___TYPEOF__ 0
+#endif
+
+/* Return 1 if the integer type or expression T might be signed. Return 0
+ if it is definitely unsigned. This macro does not evaluate its argument,
+ and expands to an integer constant expression. */
+#if _GL_HAVE___TYPEOF__
+# define _GL_SIGNED_TYPE_OR_EXPR(t) TYPE_SIGNED (__typeof__ (t))
+#else
+# define _GL_SIGNED_TYPE_OR_EXPR(t) 1
+#endif
+
+/* Bound on length of the string representing an unsigned integer
+ value representable in B bits. log10 (2.0) < 146/485. The
+ smallest value of B where this bound is not tight is 2621. */
+#define INT_BITS_STRLEN_BOUND(b) (((b) * 146 + 484) / 485)
+
+/* Bound on length of the string representing an integer type or expression T.
+ Subtract 1 for the sign bit if T is signed, and then add 1 more for
+ a minus sign if needed.
+
+ Because _GL_SIGNED_TYPE_OR_EXPR sometimes returns 0 when its argument is
+ signed, this macro may overestimate the true bound by one byte when
+ applied to unsigned types of size 2, 4, 16, ... bytes. */
+#define INT_STRLEN_BOUND(t) \
+ (INT_BITS_STRLEN_BOUND (sizeof (t) * CHAR_BIT \
+ - _GL_SIGNED_TYPE_OR_EXPR (t)) \
+ + _GL_SIGNED_TYPE_OR_EXPR (t))
+
+/* 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)
+
+
+/* Range overflow checks.
+
+ The INT_<op>_RANGE_OVERFLOW macros return 1 if the corresponding C
+ operators might not yield numerically correct answers due to
+ arithmetic overflow. They do not rely on undefined or
+ implementation-defined behavior. Their implementations are simple
+ and straightforward, but they are a bit harder to use than the
+ INT_<op>_OVERFLOW macros described below.
+
+ Example usage:
+
+ long int i = ...;
+ long int j = ...;
+ if (INT_MULTIPLY_RANGE_OVERFLOW (i, j, LONG_MIN, LONG_MAX))
+ printf ("multiply would overflow");
+ else
+ printf ("product is %ld", i * j);
+
+ Restrictions on *_RANGE_OVERFLOW macros:
+
+ These macros do not check for all possible numerical problems or
+ undefined or unspecified behavior: they do not check for division
+ by zero, for bad shift counts, or for shifting negative numbers.
+
+ These macros may evaluate their arguments zero or multiple times,
+ so the arguments should not have side effects. The arithmetic
+ arguments (including the MIN and MAX arguments) must be of the same
+ integer type after the usual arithmetic conversions, and the type
+ must have minimum value MIN and maximum MAX. Unsigned types should
+ use a zero MIN of the proper type.
+
+ These macros are tuned for constant MIN and MAX. For commutative
+ operations such as A + B, they are also tuned for constant B. */
+
+/* Return 1 if A + B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. */
+#define INT_ADD_RANGE_OVERFLOW(a, b, min, max) \
+ ((b) < 0 \
+ ? (a) < (min) - (b) \
+ : (max) - (b) < (a))
+
+/* Return 1 if A - B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. */
+#define INT_SUBTRACT_RANGE_OVERFLOW(a, b, min, max) \
+ ((b) < 0 \
+ ? (max) + (b) < (a) \
+ : (a) < (min) + (b))
+
+/* Return 1 if - A would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. */
+#define INT_NEGATE_RANGE_OVERFLOW(a, min, max) \
+ ((min) < 0 \
+ ? (a) < - (max) \
+ : 0 < (a))
+
+/* Return 1 if A * B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. Avoid && and || as they tickle
+ bugs in Sun C 5.11 2010/08/13 and other compilers; see
+ <http://lists.gnu.org/archive/html/bug-gnulib/2011-05/msg00401.html>. */
+#define INT_MULTIPLY_RANGE_OVERFLOW(a, b, min, max) \
+ ((b) < 0 \
+ ? ((a) < 0 \
+ ? (a) < (max) / (b) \
+ : (b) == -1 \
+ ? 0 \
+ : (min) / (b) < (a)) \
+ : (b) == 0 \
+ ? 0 \
+ : ((a) < 0 \
+ ? (a) < (min) / (b) \
+ : (max) / (b) < (a)))
+
+/* Return 1 if A / B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. Do not check for division by zero. */
+#define INT_DIVIDE_RANGE_OVERFLOW(a, b, min, max) \
+ ((min) < 0 && (b) == -1 && (a) < - (max))
+
+/* Return 1 if A % B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. Do not check for division by zero.
+ Mathematically, % should never overflow, but on x86-like hosts
+ INT_MIN % -1 traps, and the C standard permits this, so treat this
+ as an overflow too. */
+#define INT_REMAINDER_RANGE_OVERFLOW(a, b, min, max) \
+ INT_DIVIDE_RANGE_OVERFLOW (a, b, min, max)
+
+/* Return 1 if A << B would overflow in [MIN,MAX] arithmetic.
+ See above for restrictions. Here, MIN and MAX are for A only, and B need
+ not be of the same type as the other arguments. The C standard says that
+ behavior is undefined for shifts unless 0 <= B < wordwidth, and that when
+ A is negative then A << B has undefined behavior and A >> B has
+ implementation-defined behavior, but do not check these other
+ restrictions. */
+#define INT_LEFT_SHIFT_RANGE_OVERFLOW(a, b, min, max) \
+ ((a) < 0 \
+ ? (a) < (min) >> (b) \
+ : (max) >> (b) < (a))
+
+
+/* The _GL*_OVERFLOW macros have the same restrictions as the
+ *_RANGE_OVERFLOW macros, except that they do not assume that operands
+ (e.g., A and B) have the same type as MIN and MAX. Instead, they assume
+ that the result (e.g., A + B) has that type. */
+#define _GL_ADD_OVERFLOW(a, b, min, max) \
+ ((min) < 0 ? INT_ADD_RANGE_OVERFLOW (a, b, min, max) \
+ : (a) < 0 ? (b) <= (a) + (b) \
+ : (b) < 0 ? (a) <= (a) + (b) \
+ : (a) + (b) < (b))
+#define _GL_SUBTRACT_OVERFLOW(a, b, min, max) \
+ ((min) < 0 ? INT_SUBTRACT_RANGE_OVERFLOW (a, b, min, max) \
+ : (a) < 0 ? 1 \
+ : (b) < 0 ? (a) - (b) <= (a) \
+ : (a) < (b))
+#define _GL_MULTIPLY_OVERFLOW(a, b, min, max) \
+ (((min) == 0 && (((a) < 0 && 0 < (b)) || ((b) < 0 && 0 < (a)))) \
+ || INT_MULTIPLY_RANGE_OVERFLOW (a, b, min, max))
+#define _GL_DIVIDE_OVERFLOW(a, b, min, max) \
+ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \
+ : (a) < 0 ? (b) <= (a) + (b) - 1 \
+ : (b) < 0 && (a) + (b) <= (a))
+#define _GL_REMAINDER_OVERFLOW(a, b, min, max) \
+ ((min) < 0 ? (b) == _GL_INT_NEGATE_CONVERT (min, 1) && (a) < - (max) \
+ : (a) < 0 ? (a) % (b) != ((max) - (b) + 1) % (b) \
+ : (b) < 0 && ! _GL_UNSIGNED_NEG_MULTIPLE (a, b, max))
+
+/* Return a nonzero value if A is a mathematical multiple of B, where
+ A is unsigned, B is negative, and MAX is the maximum value of A's
+ type. A's type must be the same as (A % B)'s type. Normally (A %
+ -B == 0) suffices, but things get tricky if -B would overflow. */
+#define _GL_UNSIGNED_NEG_MULTIPLE(a, b, max) \
+ (((b) < -_GL_SIGNED_INT_MAXIMUM (b) \
+ ? (_GL_SIGNED_INT_MAXIMUM (b) == (max) \
+ ? (a) \
+ : (a) % (_GL_INT_CONVERT (a, _GL_SIGNED_INT_MAXIMUM (b)) + 1)) \
+ : (a) % - (b)) \
+ == 0)
+
+
+/* Integer overflow checks.
+
+ The INT_<op>_OVERFLOW macros return 1 if the corresponding C operators
+ might not yield numerically correct answers due to arithmetic overflow.
+ They work correctly on all known practical hosts, and do not rely
+ on undefined behavior due to signed arithmetic overflow.
+
+ Example usage:
+
+ long int i = ...;
+ long int j = ...;
+ if (INT_MULTIPLY_OVERFLOW (i, j))
+ printf ("multiply would overflow");
+ else
+ printf ("product is %ld", i * j);
+
+ These macros do not check for all possible numerical problems or
+ undefined or unspecified behavior: they do not check for division
+ by zero, for bad shift counts, or for shifting negative numbers.
+
+ These macros may evaluate their arguments zero or multiple times, so the
+ arguments should not have side effects.
+
+ These macros are tuned for their last argument being a constant.
+
+ Return 1 if the integer expressions A * B, A - B, -A, A * B, A / B,
+ A % B, and A << B would overflow, respectively. */
+
+#define INT_ADD_OVERFLOW(a, b) \
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_ADD_OVERFLOW)
+#define INT_SUBTRACT_OVERFLOW(a, b) \
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_SUBTRACT_OVERFLOW)
+#define INT_NEGATE_OVERFLOW(a) \
+ INT_NEGATE_RANGE_OVERFLOW (a, _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
+#define INT_MULTIPLY_OVERFLOW(a, b) \
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_MULTIPLY_OVERFLOW)
+#define INT_DIVIDE_OVERFLOW(a, b) \
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_DIVIDE_OVERFLOW)
+#define INT_REMAINDER_OVERFLOW(a, b) \
+ _GL_BINARY_OP_OVERFLOW (a, b, _GL_REMAINDER_OVERFLOW)
+#define INT_LEFT_SHIFT_OVERFLOW(a, b) \
+ INT_LEFT_SHIFT_RANGE_OVERFLOW (a, b, \
+ _GL_INT_MINIMUM (a), _GL_INT_MAXIMUM (a))
+
+/* Return 1 if the expression A <op> B would overflow,
+ where OP_RESULT_OVERFLOW (A, B, MIN, MAX) does the actual test,
+ assuming MIN and MAX are the minimum and maximum for the result type.
+ Arguments should be free of side effects. */
+#define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow) \
+ op_result_overflow (a, b, \
+ _GL_INT_MINIMUM (0 * (b) + (a)), \
+ _GL_INT_MAXIMUM (0 * (b) + (a)))
+
+#endif /* _GL_INTPROPS_H */
diff --git a/gnu/inttostr.c b/gnu/inttostr.c
new file mode 100644
index 00000000..696b03c7
--- /dev/null
+++ b/gnu/inttostr.c
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#define anytostr inttostr
+#define inttype int
+#include "anytostr.c"
diff --git a/gnu/inttostr.h b/gnu/inttostr.h
new file mode 100644
index 00000000..3804d92a
--- /dev/null
+++ b/gnu/inttostr.h
@@ -0,0 +1,48 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* inttostr.h -- convert integers to printable strings
+
+ Copyright (C) 2001-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <stdint.h>
+#include <sys/types.h>
+
+#include "intprops.h"
+
+#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
+
+char *imaxtostr (intmax_t, char *) __attribute_warn_unused_result__;
+char *inttostr (int, char *) __attribute_warn_unused_result__;
+char *offtostr (off_t, char *) __attribute_warn_unused_result__;
+char *uinttostr (unsigned int, char *) __attribute_warn_unused_result__;
+char *umaxtostr (uintmax_t, char *) __attribute_warn_unused_result__;
diff --git a/gnu/inttypes.in.h b/gnu/inttypes.in.h
new file mode 100644
index 00000000..d9f3df3d
--- /dev/null
+++ b/gnu/inttypes.in.h
@@ -0,0 +1,1132 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 2006-2012 Free Software Foundation, Inc.
+ Written by Paul Eggert, Bruno Haible, Derek Price.
+ This file is part of gnulib.
+
+ This 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/>. */
+
+/*
+ * ISO C 99 <inttypes.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/inttypes.h.html>
+ */
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* Include the original <inttypes.h> if it exists, and if this file
+ has not been included yet or if this file includes gnulib stdint.h
+ which in turn includes this file.
+ The include_next requires a split double-inclusion guard. */
+#if ! defined INTTYPES_H || defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+# if @HAVE_INTTYPES_H@
+
+ /* Some pre-C++11 <stdint.h> implementations need this. */
+# if defined __cplusplus && ! defined __STDC_FORMAT_MACROS
+# define __STDC_FORMAT_MACROS 1
+# endif
+
+# @INCLUDE_NEXT@ @NEXT_INTTYPES_H@
+# endif
+#endif
+
+#if ! defined INTTYPES_H && ! defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+#define INTTYPES_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>
+
+#if !(INT_MIN == INT32_MIN && INT_MAX == INT32_MAX)
+# error "This file assumes that 'int' has exactly 32 bits. Please report your platform and compiler to <bug-gnulib@gnu.org>."
+#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. */
+
+/* 7.8.1 Macros for format specifiers */
+
+#if defined _TNS_R_TARGET
+ /* Tandem NonStop R series and compatible platforms released before
+ July 2005 support %Ld but not %lld. */
+# define _LONG_LONG_FORMAT_PREFIX "L"
+#else
+# define _LONG_LONG_FORMAT_PREFIX "ll"
+#endif
+
+#if !defined PRId8 || @PRI_MACROS_BROKEN@
+# undef PRId8
+# ifdef INT8_MAX
+# define PRId8 "d"
+# endif
+#endif
+#if !defined PRIi8 || @PRI_MACROS_BROKEN@
+# undef PRIi8
+# ifdef INT8_MAX
+# define PRIi8 "i"
+# endif
+#endif
+#if !defined PRIo8 || @PRI_MACROS_BROKEN@
+# undef PRIo8
+# ifdef UINT8_MAX
+# define PRIo8 "o"
+# endif
+#endif
+#if !defined PRIu8 || @PRI_MACROS_BROKEN@
+# undef PRIu8
+# ifdef UINT8_MAX
+# define PRIu8 "u"
+# endif
+#endif
+#if !defined PRIx8 || @PRI_MACROS_BROKEN@
+# undef PRIx8
+# ifdef UINT8_MAX
+# define PRIx8 "x"
+# endif
+#endif
+#if !defined PRIX8 || @PRI_MACROS_BROKEN@
+# undef PRIX8
+# ifdef UINT8_MAX
+# define PRIX8 "X"
+# endif
+#endif
+#if !defined PRId16 || @PRI_MACROS_BROKEN@
+# undef PRId16
+# ifdef INT16_MAX
+# define PRId16 "d"
+# endif
+#endif
+#if !defined PRIi16 || @PRI_MACROS_BROKEN@
+# undef PRIi16
+# ifdef INT16_MAX
+# define PRIi16 "i"
+# endif
+#endif
+#if !defined PRIo16 || @PRI_MACROS_BROKEN@
+# undef PRIo16
+# ifdef UINT16_MAX
+# define PRIo16 "o"
+# endif
+#endif
+#if !defined PRIu16 || @PRI_MACROS_BROKEN@
+# undef PRIu16
+# ifdef UINT16_MAX
+# define PRIu16 "u"
+# endif
+#endif
+#if !defined PRIx16 || @PRI_MACROS_BROKEN@
+# undef PRIx16
+# ifdef UINT16_MAX
+# define PRIx16 "x"
+# endif
+#endif
+#if !defined PRIX16 || @PRI_MACROS_BROKEN@
+# undef PRIX16
+# ifdef UINT16_MAX
+# define PRIX16 "X"
+# endif
+#endif
+#if !defined PRId32 || @PRI_MACROS_BROKEN@
+# undef PRId32
+# ifdef INT32_MAX
+# define PRId32 "d"
+# endif
+#endif
+#if !defined PRIi32 || @PRI_MACROS_BROKEN@
+# undef PRIi32
+# ifdef INT32_MAX
+# define PRIi32 "i"
+# endif
+#endif
+#if !defined PRIo32 || @PRI_MACROS_BROKEN@
+# undef PRIo32
+# ifdef UINT32_MAX
+# define PRIo32 "o"
+# endif
+#endif
+#if !defined PRIu32 || @PRI_MACROS_BROKEN@
+# undef PRIu32
+# ifdef UINT32_MAX
+# define PRIu32 "u"
+# endif
+#endif
+#if !defined PRIx32 || @PRI_MACROS_BROKEN@
+# undef PRIx32
+# ifdef UINT32_MAX
+# define PRIx32 "x"
+# endif
+#endif
+#if !defined PRIX32 || @PRI_MACROS_BROKEN@
+# undef PRIX32
+# ifdef UINT32_MAX
+# define PRIX32 "X"
+# endif
+#endif
+#ifdef INT64_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"
+# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+# define _PRI64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined PRId64 || @PRI_MACROS_BROKEN@
+# undef PRId64
+# define PRId64 _PRI64_PREFIX "d"
+# endif
+# if !defined PRIi64 || @PRI_MACROS_BROKEN@
+# undef PRIi64
+# define PRIi64 _PRI64_PREFIX "i"
+# endif
+#endif
+#ifdef UINT64_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"
+# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+# define _PRIu64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined PRIo64 || @PRI_MACROS_BROKEN@
+# undef PRIo64
+# define PRIo64 _PRIu64_PREFIX "o"
+# endif
+# if !defined PRIu64 || @PRI_MACROS_BROKEN@
+# undef PRIu64
+# define PRIu64 _PRIu64_PREFIX "u"
+# endif
+# if !defined PRIx64 || @PRI_MACROS_BROKEN@
+# undef PRIx64
+# define PRIx64 _PRIu64_PREFIX "x"
+# endif
+# if !defined PRIX64 || @PRI_MACROS_BROKEN@
+# undef PRIX64
+# define PRIX64 _PRIu64_PREFIX "X"
+# endif
+#endif
+
+#if !defined PRIdLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIdLEAST8
+# define PRIdLEAST8 "d"
+#endif
+#if !defined PRIiLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIiLEAST8
+# define PRIiLEAST8 "i"
+#endif
+#if !defined PRIoLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIoLEAST8
+# define PRIoLEAST8 "o"
+#endif
+#if !defined PRIuLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIuLEAST8
+# define PRIuLEAST8 "u"
+#endif
+#if !defined PRIxLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIxLEAST8
+# define PRIxLEAST8 "x"
+#endif
+#if !defined PRIXLEAST8 || @PRI_MACROS_BROKEN@
+# undef PRIXLEAST8
+# define PRIXLEAST8 "X"
+#endif
+#if !defined PRIdLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIdLEAST16
+# define PRIdLEAST16 "d"
+#endif
+#if !defined PRIiLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIiLEAST16
+# define PRIiLEAST16 "i"
+#endif
+#if !defined PRIoLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIoLEAST16
+# define PRIoLEAST16 "o"
+#endif
+#if !defined PRIuLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIuLEAST16
+# define PRIuLEAST16 "u"
+#endif
+#if !defined PRIxLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIxLEAST16
+# define PRIxLEAST16 "x"
+#endif
+#if !defined PRIXLEAST16 || @PRI_MACROS_BROKEN@
+# undef PRIXLEAST16
+# define PRIXLEAST16 "X"
+#endif
+#if !defined PRIdLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIdLEAST32
+# define PRIdLEAST32 "d"
+#endif
+#if !defined PRIiLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIiLEAST32
+# define PRIiLEAST32 "i"
+#endif
+#if !defined PRIoLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIoLEAST32
+# define PRIoLEAST32 "o"
+#endif
+#if !defined PRIuLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIuLEAST32
+# define PRIuLEAST32 "u"
+#endif
+#if !defined PRIxLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIxLEAST32
+# define PRIxLEAST32 "x"
+#endif
+#if !defined PRIXLEAST32 || @PRI_MACROS_BROKEN@
+# undef PRIXLEAST32
+# define PRIXLEAST32 "X"
+#endif
+#ifdef INT64_MAX
+# if !defined PRIdLEAST64 || @PRI_MACROS_BROKEN@
+# undef PRIdLEAST64
+# define PRIdLEAST64 PRId64
+# endif
+# if !defined PRIiLEAST64 || @PRI_MACROS_BROKEN@
+# undef PRIiLEAST64
+# define PRIiLEAST64 PRIi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined PRIoLEAST64 || @PRI_MACROS_BROKEN@
+# undef PRIoLEAST64
+# define PRIoLEAST64 PRIo64
+# endif
+# if !defined PRIuLEAST64 || @PRI_MACROS_BROKEN@
+# undef PRIuLEAST64
+# define PRIuLEAST64 PRIu64
+# endif
+# if !defined PRIxLEAST64 || @PRI_MACROS_BROKEN@
+# undef PRIxLEAST64
+# define PRIxLEAST64 PRIx64
+# endif
+# if !defined PRIXLEAST64 || @PRI_MACROS_BROKEN@
+# undef PRIXLEAST64
+# define PRIXLEAST64 PRIX64
+# endif
+#endif
+
+#if !defined PRIdFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIdFAST8
+# if INT_FAST8_MAX > INT32_MAX
+# define PRIdFAST8 PRId64
+# else
+# define PRIdFAST8 "d"
+# endif
+#endif
+#if !defined PRIiFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIiFAST8
+# if INT_FAST8_MAX > INT32_MAX
+# define PRIiFAST8 PRIi64
+# else
+# define PRIiFAST8 "i"
+# endif
+#endif
+#if !defined PRIoFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIoFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+# define PRIoFAST8 PRIo64
+# else
+# define PRIoFAST8 "o"
+# endif
+#endif
+#if !defined PRIuFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIuFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+# define PRIuFAST8 PRIu64
+# else
+# define PRIuFAST8 "u"
+# endif
+#endif
+#if !defined PRIxFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIxFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+# define PRIxFAST8 PRIx64
+# else
+# define PRIxFAST8 "x"
+# endif
+#endif
+#if !defined PRIXFAST8 || @PRI_MACROS_BROKEN@
+# undef PRIXFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+# define PRIXFAST8 PRIX64
+# else
+# define PRIXFAST8 "X"
+# endif
+#endif
+#if !defined PRIdFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIdFAST16
+# if INT_FAST16_MAX > INT32_MAX
+# define PRIdFAST16 PRId64
+# else
+# define PRIdFAST16 "d"
+# endif
+#endif
+#if !defined PRIiFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIiFAST16
+# if INT_FAST16_MAX > INT32_MAX
+# define PRIiFAST16 PRIi64
+# else
+# define PRIiFAST16 "i"
+# endif
+#endif
+#if !defined PRIoFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIoFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+# define PRIoFAST16 PRIo64
+# else
+# define PRIoFAST16 "o"
+# endif
+#endif
+#if !defined PRIuFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIuFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+# define PRIuFAST16 PRIu64
+# else
+# define PRIuFAST16 "u"
+# endif
+#endif
+#if !defined PRIxFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIxFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+# define PRIxFAST16 PRIx64
+# else
+# define PRIxFAST16 "x"
+# endif
+#endif
+#if !defined PRIXFAST16 || @PRI_MACROS_BROKEN@
+# undef PRIXFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+# define PRIXFAST16 PRIX64
+# else
+# define PRIXFAST16 "X"
+# endif
+#endif
+#if !defined PRIdFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIdFAST32
+# if INT_FAST32_MAX > INT32_MAX
+# define PRIdFAST32 PRId64
+# else
+# define PRIdFAST32 "d"
+# endif
+#endif
+#if !defined PRIiFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIiFAST32
+# if INT_FAST32_MAX > INT32_MAX
+# define PRIiFAST32 PRIi64
+# else
+# define PRIiFAST32 "i"
+# endif
+#endif
+#if !defined PRIoFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIoFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+# define PRIoFAST32 PRIo64
+# else
+# define PRIoFAST32 "o"
+# endif
+#endif
+#if !defined PRIuFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIuFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+# define PRIuFAST32 PRIu64
+# else
+# define PRIuFAST32 "u"
+# endif
+#endif
+#if !defined PRIxFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIxFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+# define PRIxFAST32 PRIx64
+# else
+# define PRIxFAST32 "x"
+# endif
+#endif
+#if !defined PRIXFAST32 || @PRI_MACROS_BROKEN@
+# undef PRIXFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+# define PRIXFAST32 PRIX64
+# else
+# define PRIXFAST32 "X"
+# endif
+#endif
+#ifdef INT64_MAX
+# if !defined PRIdFAST64 || @PRI_MACROS_BROKEN@
+# undef PRIdFAST64
+# define PRIdFAST64 PRId64
+# endif
+# if !defined PRIiFAST64 || @PRI_MACROS_BROKEN@
+# undef PRIiFAST64
+# define PRIiFAST64 PRIi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined PRIoFAST64 || @PRI_MACROS_BROKEN@
+# undef PRIoFAST64
+# define PRIoFAST64 PRIo64
+# endif
+# if !defined PRIuFAST64 || @PRI_MACROS_BROKEN@
+# undef PRIuFAST64
+# define PRIuFAST64 PRIu64
+# endif
+# if !defined PRIxFAST64 || @PRI_MACROS_BROKEN@
+# undef PRIxFAST64
+# define PRIxFAST64 PRIx64
+# endif
+# if !defined PRIXFAST64 || @PRI_MACROS_BROKEN@
+# undef PRIXFAST64
+# define PRIXFAST64 PRIX64
+# endif
+#endif
+
+#if !defined PRIdMAX || @PRI_MACROS_BROKEN@
+# undef PRIdMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+# define PRIdMAX PRId64
+# else
+# define PRIdMAX "ld"
+# endif
+#endif
+#if !defined PRIiMAX || @PRI_MACROS_BROKEN@
+# undef PRIiMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+# define PRIiMAX PRIi64
+# else
+# define PRIiMAX "li"
+# endif
+#endif
+#if !defined PRIoMAX || @PRI_MACROS_BROKEN@
+# undef PRIoMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+# define PRIoMAX PRIo64
+# else
+# define PRIoMAX "lo"
+# endif
+#endif
+#if !defined PRIuMAX || @PRI_MACROS_BROKEN@
+# undef PRIuMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+# define PRIuMAX PRIu64
+# else
+# define PRIuMAX "lu"
+# endif
+#endif
+#if !defined PRIxMAX || @PRI_MACROS_BROKEN@
+# undef PRIxMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+# define PRIxMAX PRIx64
+# else
+# define PRIxMAX "lx"
+# endif
+#endif
+#if !defined PRIXMAX || @PRI_MACROS_BROKEN@
+# undef PRIXMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+# define PRIXMAX PRIX64
+# else
+# define PRIXMAX "lX"
+# endif
+#endif
+
+#if !defined PRIdPTR || @PRI_MACROS_BROKEN@
+# undef PRIdPTR
+# ifdef INTPTR_MAX
+# define PRIdPTR @PRIPTR_PREFIX@ "d"
+# endif
+#endif
+#if !defined PRIiPTR || @PRI_MACROS_BROKEN@
+# undef PRIiPTR
+# ifdef INTPTR_MAX
+# define PRIiPTR @PRIPTR_PREFIX@ "i"
+# endif
+#endif
+#if !defined PRIoPTR || @PRI_MACROS_BROKEN@
+# undef PRIoPTR
+# ifdef UINTPTR_MAX
+# define PRIoPTR @PRIPTR_PREFIX@ "o"
+# endif
+#endif
+#if !defined PRIuPTR || @PRI_MACROS_BROKEN@
+# undef PRIuPTR
+# ifdef UINTPTR_MAX
+# define PRIuPTR @PRIPTR_PREFIX@ "u"
+# endif
+#endif
+#if !defined PRIxPTR || @PRI_MACROS_BROKEN@
+# undef PRIxPTR
+# ifdef UINTPTR_MAX
+# define PRIxPTR @PRIPTR_PREFIX@ "x"
+# endif
+#endif
+#if !defined PRIXPTR || @PRI_MACROS_BROKEN@
+# undef PRIXPTR
+# ifdef UINTPTR_MAX
+# define PRIXPTR @PRIPTR_PREFIX@ "X"
+# endif
+#endif
+
+#if !defined SCNd8 || @PRI_MACROS_BROKEN@
+# undef SCNd8
+# ifdef INT8_MAX
+# define SCNd8 "hhd"
+# endif
+#endif
+#if !defined SCNi8 || @PRI_MACROS_BROKEN@
+# undef SCNi8
+# ifdef INT8_MAX
+# define SCNi8 "hhi"
+# endif
+#endif
+#if !defined SCNo8 || @PRI_MACROS_BROKEN@
+# undef SCNo8
+# ifdef UINT8_MAX
+# define SCNo8 "hho"
+# endif
+#endif
+#if !defined SCNu8 || @PRI_MACROS_BROKEN@
+# undef SCNu8
+# ifdef UINT8_MAX
+# define SCNu8 "hhu"
+# endif
+#endif
+#if !defined SCNx8 || @PRI_MACROS_BROKEN@
+# undef SCNx8
+# ifdef UINT8_MAX
+# define SCNx8 "hhx"
+# endif
+#endif
+#if !defined SCNd16 || @PRI_MACROS_BROKEN@
+# undef SCNd16
+# ifdef INT16_MAX
+# define SCNd16 "hd"
+# endif
+#endif
+#if !defined SCNi16 || @PRI_MACROS_BROKEN@
+# undef SCNi16
+# ifdef INT16_MAX
+# define SCNi16 "hi"
+# endif
+#endif
+#if !defined SCNo16 || @PRI_MACROS_BROKEN@
+# undef SCNo16
+# ifdef UINT16_MAX
+# define SCNo16 "ho"
+# endif
+#endif
+#if !defined SCNu16 || @PRI_MACROS_BROKEN@
+# undef SCNu16
+# ifdef UINT16_MAX
+# define SCNu16 "hu"
+# endif
+#endif
+#if !defined SCNx16 || @PRI_MACROS_BROKEN@
+# undef SCNx16
+# ifdef UINT16_MAX
+# define SCNx16 "hx"
+# endif
+#endif
+#if !defined SCNd32 || @PRI_MACROS_BROKEN@
+# undef SCNd32
+# ifdef INT32_MAX
+# define SCNd32 "d"
+# endif
+#endif
+#if !defined SCNi32 || @PRI_MACROS_BROKEN@
+# undef SCNi32
+# ifdef INT32_MAX
+# define SCNi32 "i"
+# endif
+#endif
+#if !defined SCNo32 || @PRI_MACROS_BROKEN@
+# undef SCNo32
+# ifdef UINT32_MAX
+# define SCNo32 "o"
+# endif
+#endif
+#if !defined SCNu32 || @PRI_MACROS_BROKEN@
+# undef SCNu32
+# ifdef UINT32_MAX
+# define SCNu32 "u"
+# endif
+#endif
+#if !defined SCNx32 || @PRI_MACROS_BROKEN@
+# undef SCNx32
+# ifdef UINT32_MAX
+# define SCNx32 "x"
+# endif
+#endif
+#ifdef INT64_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"
+# elif @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+# define _SCN64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined SCNd64 || @PRI_MACROS_BROKEN@
+# undef SCNd64
+# define SCNd64 _SCN64_PREFIX "d"
+# endif
+# if !defined SCNi64 || @PRI_MACROS_BROKEN@
+# undef SCNi64
+# define SCNi64 _SCN64_PREFIX "i"
+# endif
+#endif
+#ifdef UINT64_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"
+# elif @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+# define _SCNu64_PREFIX _LONG_LONG_FORMAT_PREFIX
+# endif
+# if !defined SCNo64 || @PRI_MACROS_BROKEN@
+# undef SCNo64
+# define SCNo64 _SCNu64_PREFIX "o"
+# endif
+# if !defined SCNu64 || @PRI_MACROS_BROKEN@
+# undef SCNu64
+# define SCNu64 _SCNu64_PREFIX "u"
+# endif
+# if !defined SCNx64 || @PRI_MACROS_BROKEN@
+# undef SCNx64
+# define SCNx64 _SCNu64_PREFIX "x"
+# endif
+#endif
+
+#if !defined SCNdLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNdLEAST8
+# define SCNdLEAST8 "hhd"
+#endif
+#if !defined SCNiLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNiLEAST8
+# define SCNiLEAST8 "hhi"
+#endif
+#if !defined SCNoLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNoLEAST8
+# define SCNoLEAST8 "hho"
+#endif
+#if !defined SCNuLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNuLEAST8
+# define SCNuLEAST8 "hhu"
+#endif
+#if !defined SCNxLEAST8 || @PRI_MACROS_BROKEN@
+# undef SCNxLEAST8
+# define SCNxLEAST8 "hhx"
+#endif
+#if !defined SCNdLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNdLEAST16
+# define SCNdLEAST16 "hd"
+#endif
+#if !defined SCNiLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNiLEAST16
+# define SCNiLEAST16 "hi"
+#endif
+#if !defined SCNoLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNoLEAST16
+# define SCNoLEAST16 "ho"
+#endif
+#if !defined SCNuLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNuLEAST16
+# define SCNuLEAST16 "hu"
+#endif
+#if !defined SCNxLEAST16 || @PRI_MACROS_BROKEN@
+# undef SCNxLEAST16
+# define SCNxLEAST16 "hx"
+#endif
+#if !defined SCNdLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNdLEAST32
+# define SCNdLEAST32 "d"
+#endif
+#if !defined SCNiLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNiLEAST32
+# define SCNiLEAST32 "i"
+#endif
+#if !defined SCNoLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNoLEAST32
+# define SCNoLEAST32 "o"
+#endif
+#if !defined SCNuLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNuLEAST32
+# define SCNuLEAST32 "u"
+#endif
+#if !defined SCNxLEAST32 || @PRI_MACROS_BROKEN@
+# undef SCNxLEAST32
+# define SCNxLEAST32 "x"
+#endif
+#ifdef INT64_MAX
+# if !defined SCNdLEAST64 || @PRI_MACROS_BROKEN@
+# undef SCNdLEAST64
+# define SCNdLEAST64 SCNd64
+# endif
+# if !defined SCNiLEAST64 || @PRI_MACROS_BROKEN@
+# undef SCNiLEAST64
+# define SCNiLEAST64 SCNi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined SCNoLEAST64 || @PRI_MACROS_BROKEN@
+# undef SCNoLEAST64
+# define SCNoLEAST64 SCNo64
+# endif
+# if !defined SCNuLEAST64 || @PRI_MACROS_BROKEN@
+# undef SCNuLEAST64
+# define SCNuLEAST64 SCNu64
+# endif
+# if !defined SCNxLEAST64 || @PRI_MACROS_BROKEN@
+# undef SCNxLEAST64
+# define SCNxLEAST64 SCNx64
+# endif
+#endif
+
+#if !defined SCNdFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNdFAST8
+# if INT_FAST8_MAX > INT32_MAX
+# define SCNdFAST8 SCNd64
+# elif INT_FAST8_MAX == 0x7fff
+# define SCNdFAST8 "hd"
+# elif INT_FAST8_MAX == 0x7f
+# define SCNdFAST8 "hhd"
+# else
+# define SCNdFAST8 "d"
+# endif
+#endif
+#if !defined SCNiFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNiFAST8
+# if INT_FAST8_MAX > INT32_MAX
+# define SCNiFAST8 SCNi64
+# elif INT_FAST8_MAX == 0x7fff
+# define SCNiFAST8 "hi"
+# elif INT_FAST8_MAX == 0x7f
+# define SCNiFAST8 "hhi"
+# else
+# define SCNiFAST8 "i"
+# endif
+#endif
+#if !defined SCNoFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNoFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+# define SCNoFAST8 SCNo64
+# elif UINT_FAST8_MAX == 0xffff
+# define SCNoFAST8 "ho"
+# elif UINT_FAST8_MAX == 0xff
+# define SCNoFAST8 "hho"
+# else
+# define SCNoFAST8 "o"
+# endif
+#endif
+#if !defined SCNuFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNuFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+# define SCNuFAST8 SCNu64
+# elif UINT_FAST8_MAX == 0xffff
+# define SCNuFAST8 "hu"
+# elif UINT_FAST8_MAX == 0xff
+# define SCNuFAST8 "hhu"
+# else
+# define SCNuFAST8 "u"
+# endif
+#endif
+#if !defined SCNxFAST8 || @PRI_MACROS_BROKEN@
+# undef SCNxFAST8
+# if UINT_FAST8_MAX > UINT32_MAX
+# define SCNxFAST8 SCNx64
+# elif UINT_FAST8_MAX == 0xffff
+# define SCNxFAST8 "hx"
+# elif UINT_FAST8_MAX == 0xff
+# define SCNxFAST8 "hhx"
+# else
+# define SCNxFAST8 "x"
+# endif
+#endif
+#if !defined SCNdFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNdFAST16
+# if INT_FAST16_MAX > INT32_MAX
+# define SCNdFAST16 SCNd64
+# elif INT_FAST16_MAX == 0x7fff
+# define SCNdFAST16 "hd"
+# else
+# define SCNdFAST16 "d"
+# endif
+#endif
+#if !defined SCNiFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNiFAST16
+# if INT_FAST16_MAX > INT32_MAX
+# define SCNiFAST16 SCNi64
+# elif INT_FAST16_MAX == 0x7fff
+# define SCNiFAST16 "hi"
+# else
+# define SCNiFAST16 "i"
+# endif
+#endif
+#if !defined SCNoFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNoFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+# define SCNoFAST16 SCNo64
+# elif UINT_FAST16_MAX == 0xffff
+# define SCNoFAST16 "ho"
+# else
+# define SCNoFAST16 "o"
+# endif
+#endif
+#if !defined SCNuFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNuFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+# define SCNuFAST16 SCNu64
+# elif UINT_FAST16_MAX == 0xffff
+# define SCNuFAST16 "hu"
+# else
+# define SCNuFAST16 "u"
+# endif
+#endif
+#if !defined SCNxFAST16 || @PRI_MACROS_BROKEN@
+# undef SCNxFAST16
+# if UINT_FAST16_MAX > UINT32_MAX
+# define SCNxFAST16 SCNx64
+# elif UINT_FAST16_MAX == 0xffff
+# define SCNxFAST16 "hx"
+# else
+# define SCNxFAST16 "x"
+# endif
+#endif
+#if !defined SCNdFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNdFAST32
+# if INT_FAST32_MAX > INT32_MAX
+# define SCNdFAST32 SCNd64
+# else
+# define SCNdFAST32 "d"
+# endif
+#endif
+#if !defined SCNiFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNiFAST32
+# if INT_FAST32_MAX > INT32_MAX
+# define SCNiFAST32 SCNi64
+# else
+# define SCNiFAST32 "i"
+# endif
+#endif
+#if !defined SCNoFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNoFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+# define SCNoFAST32 SCNo64
+# else
+# define SCNoFAST32 "o"
+# endif
+#endif
+#if !defined SCNuFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNuFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+# define SCNuFAST32 SCNu64
+# else
+# define SCNuFAST32 "u"
+# endif
+#endif
+#if !defined SCNxFAST32 || @PRI_MACROS_BROKEN@
+# undef SCNxFAST32
+# if UINT_FAST32_MAX > UINT32_MAX
+# define SCNxFAST32 SCNx64
+# else
+# define SCNxFAST32 "x"
+# endif
+#endif
+#ifdef INT64_MAX
+# if !defined SCNdFAST64 || @PRI_MACROS_BROKEN@
+# undef SCNdFAST64
+# define SCNdFAST64 SCNd64
+# endif
+# if !defined SCNiFAST64 || @PRI_MACROS_BROKEN@
+# undef SCNiFAST64
+# define SCNiFAST64 SCNi64
+# endif
+#endif
+#ifdef UINT64_MAX
+# if !defined SCNoFAST64 || @PRI_MACROS_BROKEN@
+# undef SCNoFAST64
+# define SCNoFAST64 SCNo64
+# endif
+# if !defined SCNuFAST64 || @PRI_MACROS_BROKEN@
+# undef SCNuFAST64
+# define SCNuFAST64 SCNu64
+# endif
+# if !defined SCNxFAST64 || @PRI_MACROS_BROKEN@
+# undef SCNxFAST64
+# define SCNxFAST64 SCNx64
+# endif
+#endif
+
+#if !defined SCNdMAX || @PRI_MACROS_BROKEN@
+# undef SCNdMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+# define SCNdMAX SCNd64
+# else
+# define SCNdMAX "ld"
+# endif
+#endif
+#if !defined SCNiMAX || @PRI_MACROS_BROKEN@
+# undef SCNiMAX
+# if @INT32_MAX_LT_INTMAX_MAX@
+# define SCNiMAX SCNi64
+# else
+# define SCNiMAX "li"
+# endif
+#endif
+#if !defined SCNoMAX || @PRI_MACROS_BROKEN@
+# undef SCNoMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+# define SCNoMAX SCNo64
+# else
+# define SCNoMAX "lo"
+# endif
+#endif
+#if !defined SCNuMAX || @PRI_MACROS_BROKEN@
+# undef SCNuMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+# define SCNuMAX SCNu64
+# else
+# define SCNuMAX "lu"
+# endif
+#endif
+#if !defined SCNxMAX || @PRI_MACROS_BROKEN@
+# undef SCNxMAX
+# if @UINT32_MAX_LT_UINTMAX_MAX@
+# define SCNxMAX SCNx64
+# else
+# define SCNxMAX "lx"
+# endif
+#endif
+
+#if !defined SCNdPTR || @PRI_MACROS_BROKEN@
+# undef SCNdPTR
+# ifdef INTPTR_MAX
+# define SCNdPTR @PRIPTR_PREFIX@ "d"
+# endif
+#endif
+#if !defined SCNiPTR || @PRI_MACROS_BROKEN@
+# undef SCNiPTR
+# ifdef INTPTR_MAX
+# define SCNiPTR @PRIPTR_PREFIX@ "i"
+# endif
+#endif
+#if !defined SCNoPTR || @PRI_MACROS_BROKEN@
+# undef SCNoPTR
+# ifdef UINTPTR_MAX
+# define SCNoPTR @PRIPTR_PREFIX@ "o"
+# endif
+#endif
+#if !defined SCNuPTR || @PRI_MACROS_BROKEN@
+# undef SCNuPTR
+# ifdef UINTPTR_MAX
+# define SCNuPTR @PRIPTR_PREFIX@ "u"
+# endif
+#endif
+#if !defined SCNxPTR || @PRI_MACROS_BROKEN@
+# undef SCNxPTR
+# ifdef UINTPTR_MAX
+# define SCNxPTR @PRIPTR_PREFIX@ "x"
+# endif
+#endif
+
+/* 7.8.2 Functions for greatest-width integer types */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if @GNULIB_IMAXABS@
+# if !@HAVE_DECL_IMAXABS@
+extern intmax_t imaxabs (intmax_t);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef imaxabs
+# if HAVE_RAW_DECL_IMAXABS
+_GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - "
+ "use gnulib module imaxabs for portability");
+# endif
+#endif
+
+#if @GNULIB_IMAXDIV@
+# if !@HAVE_DECL_IMAXDIV@
+# if !GNULIB_defined_imaxdiv_t
+typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t;
+# define GNULIB_defined_imaxdiv_t 1
+# endif
+extern imaxdiv_t imaxdiv (intmax_t, intmax_t);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef imaxdiv
+# 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 @REPLACE_STRTOIMAX@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef strtoimax
+# define strtoimax rpl_strtoimax
+# endif
+_GL_FUNCDECL_RPL (strtoimax, intmax_t,
+ (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strtoimax, intmax_t, (const char *, char **, int));
+# else
+# if !@HAVE_DECL_STRTOIMAX@
+# undef strtoimax
+_GL_FUNCDECL_SYS (strtoimax, intmax_t,
+ (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (strtoimax, intmax_t, (const char *, char **, int));
+# endif
+_GL_CXXALIASWARN (strtoimax);
+#elif defined GNULIB_POSIXCHECK
+# undef strtoimax
+# 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@
+# undef strtoumax
+_GL_FUNCDECL_SYS (strtoumax, uintmax_t,
+ (const char *, char **, int) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (strtoumax, uintmax_t, (const char *, char **, int));
+_GL_CXXALIASWARN (strtoumax);
+#elif defined GNULIB_POSIXCHECK
+# undef strtoumax
+# 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
+ wide-character functions like this are hardly ever useful. */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* !defined INTTYPES_H && !defined _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H */
diff --git a/gnu/iswblank.c b/gnu/iswblank.c
new file mode 100644
index 00000000..2c689708
--- /dev/null
+++ b/gnu/iswblank.c
@@ -0,0 +1,29 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test wide character for being blank.
+ Copyright (C) 2008-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#include <wctype.h>
+
+int
+iswblank (wint_t wc)
+{
+ return wc == ' ' || wc == '\t';
+}
diff --git a/gnu/itold.c b/gnu/itold.c
new file mode 100644
index 00000000..ecdeaa6a
--- /dev/null
+++ b/gnu/itold.c
@@ -0,0 +1,30 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Replacement for 'int' to 'long double' conversion routine.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+ This 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 <float.h>
+
+void
+_Qp_itoq (long double *result, int a)
+{
+ /* Convert from 'int' to 'double', then from 'double' to 'long double'. */
+ *result = (double) a;
+}
diff --git a/gnu/langinfo.in.h b/gnu/langinfo.in.h
new file mode 100644
index 00000000..d92332d5
--- /dev/null
+++ b/gnu/langinfo.in.h
@@ -0,0 +1,179 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Substitute for and wrapper around <langinfo.h>.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 _@GUARD_PREFIX@_LANGINFO_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* The include_next requires a split double-inclusion guard. */
+#if @HAVE_LANGINFO_H@
+# @INCLUDE_NEXT@ @NEXT_LANGINFO_H@
+#endif
+
+#ifndef _@GUARD_PREFIX@_LANGINFO_H
+#define _@GUARD_PREFIX@_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. */
+# if !GNULIB_defined_nl_item
+typedef int nl_item;
+# define GNULIB_defined_nl_item 1
+# endif
+
+/* 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_T_FMT_AMPM@
+# define T_FMT_AMPM 10006
+# define GNULIB_defined_T_FMT_AMPM 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
+
+# if !@HAVE_LANGINFO_YESEXPR@
+# define YESEXPR 10053
+# define NOEXPR 10054
+# define GNULIB_defined_YESEXPR 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 /* _@GUARD_PREFIX@_LANGINFO_H */
+#endif /* _@GUARD_PREFIX@_LANGINFO_H */
diff --git a/gnu/lchown.c b/gnu/lchown.c
new file mode 100644
index 00000000..350d1654
--- /dev/null
+++ b/gnu/lchown.c
@@ -0,0 +1,119 @@
+/* -*- 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-2012 Free Software
+ Foundation, Inc.
+
+ This 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)
+{
+ bool stat_valid = false;
+ int result;
+
+# if CHOWN_CHANGE_TIME_BUG
+ struct stat st;
+
+ if (gid != (gid_t) -1 || uid != (uid_t) -1)
+ {
+ if (lstat (file, &st))
+ return -1;
+ stat_valid = true;
+ if (!S_ISLNK (st.st_mode))
+ return chown (file, uid, gid);
+ }
+# endif
+
+# if CHOWN_TRAILING_SLASH_BUG
+ if (!stat_valid)
+ {
+ size_t len = strlen (file);
+ if (len && file[len - 1] == '/')
+ return chown (file, uid, gid);
+ }
+# endif
+
+ result = lchown (file, uid, gid);
+
+# if CHOWN_CHANGE_TIME_BUG && HAVE_LCHMOD
+ if (result == 0 && stat_valid
+ && (uid == st.st_uid || uid == (uid_t) -1)
+ && (gid == st.st_gid || gid == (gid_t) -1))
+ {
+ /* No change in ownership, but at least one argument was not -1,
+ so we are required to update ctime. Since lchown succeeded,
+ we assume that lchmod will do likewise. But if the system
+ lacks lchmod and lutimes, we are out of luck. Oh well. */
+ result = lchmod (file, st.st_mode & (S_IRWXU | S_IRWXG | S_IRWXO
+ | S_ISUID | S_ISGID | S_ISVTX));
+ }
+# endif
+
+ return result;
+}
+
+#endif /* HAVE_LCHOWN */
diff --git a/gnu/link.c b/gnu/link.c
new file mode 100644
index 00000000..8460a5f3
--- /dev/null
+++ b/gnu/link.c
@@ -0,0 +1,214 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Emulate link on platforms that lack it, namely native Windows platforms.
+
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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>
+
+#include <unistd.h>
+
+#include <errno.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#if !HAVE_LINK
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+
+/* CreateHardLink was introduced only in Windows 2000. */
+typedef BOOL (WINAPI * CreateHardLinkFuncType) (LPCTSTR lpFileName,
+ LPCTSTR lpExistingFileName,
+ LPSECURITY_ATTRIBUTES lpSecurityAttributes);
+static CreateHardLinkFuncType CreateHardLinkFunc = NULL;
+static BOOL initialized = FALSE;
+
+static void
+initialize (void)
+{
+ HMODULE kernel32 = GetModuleHandle ("kernel32.dll");
+ if (kernel32 != NULL)
+ {
+ CreateHardLinkFunc =
+ (CreateHardLinkFuncType) GetProcAddress (kernel32, "CreateHardLinkA");
+ }
+ initialized = TRUE;
+}
+
+int
+link (const char *file1, const char *file2)
+{
+ char *dir;
+ size_t len1 = strlen (file1);
+ size_t len2 = strlen (file2);
+ if (!initialized)
+ initialize ();
+ if (CreateHardLinkFunc == NULL)
+ {
+ /* System does not support hard links. */
+ errno = EPERM;
+ return -1;
+ }
+ /* Reject trailing slashes on non-directories; mingw does not
+ support hard-linking directories. */
+ if ((len1 && (file1[len1 - 1] == '/' || file1[len1 - 1] == '\\'))
+ || (len2 && (file2[len2 - 1] == '/' || file2[len2 - 1] == '\\')))
+ {
+ struct stat st;
+ if (stat (file1, &st) == 0 && S_ISDIR (st.st_mode))
+ errno = EPERM;
+ else
+ errno = ENOTDIR;
+ return -1;
+ }
+ /* CreateHardLink("b/.","a",NULL) creates file "b", so we must check
+ that dirname(file2) exists. */
+ dir = strdup (file2);
+ if (!dir)
+ return -1;
+ {
+ struct stat st;
+ char *p = strchr (dir, '\0');
+ while (dir < p && (*--p != '/' && *p != '\\'));
+ *p = '\0';
+ if (p != dir && stat (dir, &st) == -1)
+ {
+ int saved_errno = errno;
+ free (dir);
+ errno = saved_errno;
+ return -1;
+ }
+ free (dir);
+ }
+ /* Now create the link. */
+ if (CreateHardLinkFunc (file2, file1, NULL) == 0)
+ {
+ /* It is not documented which errors CreateHardLink() can produce.
+ * The following conversions are based on tests on a Windows XP SP2
+ * system. */
+ DWORD err = GetLastError ();
+ switch (err)
+ {
+ case ERROR_ACCESS_DENIED:
+ errno = EACCES;
+ break;
+
+ case ERROR_INVALID_FUNCTION: /* fs does not support hard links */
+ errno = EPERM;
+ break;
+
+ case ERROR_NOT_SAME_DEVICE:
+ errno = EXDEV;
+ break;
+
+ case ERROR_PATH_NOT_FOUND:
+ case ERROR_FILE_NOT_FOUND:
+ errno = ENOENT;
+ break;
+
+ case ERROR_INVALID_PARAMETER:
+ errno = ENAMETOOLONG;
+ break;
+
+ case ERROR_TOO_MANY_LINKS:
+ errno = EMLINK;
+ break;
+
+ case ERROR_ALREADY_EXISTS:
+ errno = EEXIST;
+ break;
+
+ default:
+ errno = EIO;
+ }
+ return -1;
+ }
+
+ return 0;
+}
+
+# else /* !Windows */
+
+# error "This platform lacks a link function, and Gnulib doesn't provide a replacement. This is a bug in Gnulib."
+
+# endif /* !Windows */
+#else /* HAVE_LINK */
+
+# undef link
+
+/* Create a hard link from FILE1 to FILE2, working around platform bugs. */
+int
+rpl_link (char const *file1, char const *file2)
+{
+ size_t len1;
+ size_t len2;
+ struct stat st;
+
+ /* Don't allow IRIX to dereference dangling file2 symlink. */
+ if (!lstat (file2, &st))
+ {
+ errno = EEXIST;
+ return -1;
+ }
+
+ /* Reject trailing slashes on non-directories. */
+ len1 = strlen (file1);
+ len2 = strlen (file2);
+ if ((len1 && file1[len1 - 1] == '/')
+ || (len2 && file2[len2 - 1] == '/'))
+ {
+ /* Let link() decide whether hard-linking directories is legal.
+ If stat() fails, then link() should fail for the same reason
+ (although on Solaris 9, link("file/","oops") mistakenly
+ succeeds); if stat() succeeds, require a directory. */
+ if (stat (file1, &st))
+ return -1;
+ if (!S_ISDIR (st.st_mode))
+ {
+ errno = ENOTDIR;
+ return -1;
+ }
+ }
+ else
+ {
+ /* Fix Cygwin 1.5.x bug where link("a","b/.") creates file "b". */
+ char *dir = strdup (file2);
+ char *p;
+ if (!dir)
+ return -1;
+ /* We already know file2 does not end in slash. Strip off the
+ basename, then check that the dirname exists. */
+ p = strrchr (dir, '/');
+ if (p)
+ {
+ *p = '\0';
+ if (stat (dir, &st) == -1)
+ {
+ int saved_errno = errno;
+ free (dir);
+ errno = saved_errno;
+ return -1;
+ }
+ }
+ free (dir);
+ }
+ return link (file1, file2);
+}
+#endif /* HAVE_LINK */
diff --git a/gnu/linkat.c b/gnu/linkat.c
new file mode 100644
index 00000000..d4ae7678
--- /dev/null
+++ b/gnu/linkat.c
@@ -0,0 +1,345 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Create a hard link relative to open directories.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <limits.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#include "areadlink.h"
+#include "dirname.h"
+#include "filenamecat.h"
+#include "openat-priv.h"
+
+#if HAVE_SYS_PARAM_H
+# include <sys/param.h>
+#endif
+#ifndef MAXSYMLINKS
+# ifdef SYMLOOP_MAX
+# define MAXSYMLINKS SYMLOOP_MAX
+# else
+# define MAXSYMLINKS 20
+# endif
+#endif
+
+#if !HAVE_LINKAT
+
+/* Create a link. If FILE1 is a symlink, either create a hardlink to
+ that symlink, or fake it by creating an identical symlink. */
+# if LINK_FOLLOWS_SYMLINKS == 0
+# define link_immediate link
+# else
+static int
+link_immediate (char const *file1, char const *file2)
+{
+ char *target = areadlink (file1);
+ if (target)
+ {
+ /* A symlink cannot be modified in-place. Therefore, creating
+ an identical symlink behaves like a hard link to a symlink,
+ except for incorrect st_ino and st_nlink. However, we must
+ be careful of EXDEV. */
+ struct stat st1;
+ struct stat st2;
+ char *dir = mdir_name (file2);
+ if (!dir)
+ {
+ free (target);
+ errno = ENOMEM;
+ return -1;
+ }
+ if (lstat (file1, &st1) == 0 && stat (dir, &st2) == 0)
+ {
+ if (st1.st_dev == st2.st_dev)
+ {
+ int result = symlink (target, file2);
+ int saved_errno = errno;
+ free (target);
+ free (dir);
+ errno = saved_errno;
+ return result;
+ }
+ free (target);
+ free (dir);
+ errno = EXDEV;
+ return -1;
+ }
+ free (target);
+ free (dir);
+ }
+ if (errno == ENOMEM)
+ return -1;
+ return link (file1, file2);
+}
+# endif /* LINK_FOLLOWS_SYMLINKS == 0 */
+
+/* Create a link. If FILE1 is a symlink, create a hardlink to the
+ canonicalized file. */
+# if 0 < LINK_FOLLOWS_SYMLINKS
+# define link_follow link
+# else
+static int
+link_follow (char const *file1, char const *file2)
+{
+ char *name = (char *) file1;
+ char *target;
+ int result;
+ int i = MAXSYMLINKS;
+
+ /* Using realpath or canonicalize_file_name is too heavy-handed: we
+ don't need an absolute name, and we don't need to resolve
+ intermediate symlinks, just the basename of each iteration. */
+ while (i-- && (target = areadlink (name)))
+ {
+ if (IS_ABSOLUTE_FILE_NAME (target))
+ {
+ if (name != file1)
+ free (name);
+ name = target;
+ }
+ else
+ {
+ char *dir = mdir_name (name);
+ if (name != file1)
+ free (name);
+ if (!dir)
+ {
+ free (target);
+ errno = ENOMEM;
+ return -1;
+ }
+ name = mfile_name_concat (dir, target, NULL);
+ free (dir);
+ free (target);
+ if (!name)
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+ }
+ }
+ if (i < 0)
+ {
+ target = NULL;
+ errno = ELOOP;
+ }
+ if (!target && errno != EINVAL)
+ {
+ if (name != file1)
+ {
+ int saved_errno = errno;
+ free (name);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+ result = link (name, file2);
+ if (name != file1)
+ {
+ int saved_errno = errno;
+ free (name);
+ errno = saved_errno;
+ }
+ return result;
+}
+# endif /* 0 < LINK_FOLLOWS_SYMLINKS */
+
+/* On Solaris, link() doesn't follow symlinks by default, but does so as soon
+ as a library or executable takes part in the program that has been compiled
+ with "c99" or "cc -xc99=all" or "cc ... /usr/lib/values-xpg4.o ...". */
+# if LINK_FOLLOWS_SYMLINKS == -1
+
+/* Reduce the penalty of link_immediate and link_follow by incorporating the
+ knowledge that link()'s behaviour depends on the __xpg4 variable. */
+extern int __xpg4;
+
+static int
+solaris_optimized_link_immediate (char const *file1, char const *file2)
+{
+ if (__xpg4 == 0)
+ return link (file1, file2);
+ return link_immediate (file1, file2);
+}
+
+static int
+solaris_optimized_link_follow (char const *file1, char const *file2)
+{
+ if (__xpg4 != 0)
+ return link (file1, file2);
+ return link_follow (file1, file2);
+}
+
+# define link_immediate solaris_optimized_link_immediate
+# define link_follow solaris_optimized_link_follow
+
+# endif
+
+/* Create a link to FILE1, in the directory open on descriptor FD1, to FILE2,
+ in the directory open on descriptor FD2. If FILE1 is a symlink, FLAG
+ controls whether to dereference FILE1 first. If possible, do it without
+ changing the working directory. Otherwise, resort to using
+ save_cwd/fchdir, then rename/restore_cwd. If either the save_cwd or
+ the restore_cwd fails, then give a diagnostic and exit nonzero. */
+
+int
+linkat (int fd1, char const *file1, int fd2, char const *file2, int flag)
+{
+ if (flag & ~AT_SYMLINK_FOLLOW)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+ return at_func2 (fd1, file1, fd2, file2,
+ flag ? link_follow : link_immediate);
+}
+
+#else /* HAVE_LINKAT */
+
+# undef linkat
+
+/* Create a link. If FILE1 is a symlink, create a hardlink to the
+ canonicalized file. */
+
+static int
+linkat_follow (int fd1, char const *file1, int fd2, char const *file2)
+{
+ char *name = (char *) file1;
+ char *target;
+ int result;
+ int i = MAXSYMLINKS;
+
+ /* There is no realpathat. */
+ while (i-- && (target = areadlinkat (fd1, name)))
+ {
+ if (IS_ABSOLUTE_FILE_NAME (target))
+ {
+ if (name != file1)
+ free (name);
+ name = target;
+ }
+ else
+ {
+ char *dir = mdir_name (name);
+ if (name != file1)
+ free (name);
+ if (!dir)
+ {
+ free (target);
+ errno = ENOMEM;
+ return -1;
+ }
+ name = mfile_name_concat (dir, target, NULL);
+ free (dir);
+ free (target);
+ if (!name)
+ {
+ errno = ENOMEM;
+ return -1;
+ }
+ }
+ }
+ if (i < 0)
+ {
+ target = NULL;
+ errno = ELOOP;
+ }
+ if (!target && errno != EINVAL)
+ {
+ if (name != file1)
+ {
+ int saved_errno = errno;
+ free (name);
+ errno = saved_errno;
+ }
+ return -1;
+ }
+ result = linkat (fd1, name, fd2, file2, 0);
+ if (name != file1)
+ {
+ int saved_errno = errno;
+ free (name);
+ errno = saved_errno;
+ }
+ return result;
+}
+
+
+/* Like linkat, but guarantee that AT_SYMLINK_FOLLOW works even on
+ older Linux kernels. */
+
+int
+rpl_linkat (int fd1, char const *file1, int fd2, char const *file2, int flag)
+{
+ if (flag & ~AT_SYMLINK_FOLLOW)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+
+# if LINKAT_TRAILING_SLASH_BUG
+ /* Reject trailing slashes on non-directories. */
+ {
+ size_t len1 = strlen (file1);
+ size_t len2 = strlen (file2);
+ if ((len1 && file1[len1 - 1] == '/')
+ || (len2 && file2[len2 - 1] == '/'))
+ {
+ /* Let linkat() decide whether hard-linking directories is legal.
+ If fstatat() fails, then linkat() should fail for the same reason;
+ if fstatat() succeeds, require a directory. */
+ struct stat st;
+ if (fstatat (fd1, file1, &st, flag ? 0 : AT_SYMLINK_NOFOLLOW))
+ return -1;
+ if (!S_ISDIR (st.st_mode))
+ {
+ errno = ENOTDIR;
+ return -1;
+ }
+ }
+ }
+# endif
+
+ if (!flag)
+ return linkat (fd1, file1, fd2, file2, flag);
+
+ /* Cache the information on whether the system call really works. */
+ {
+ static int have_follow_really; /* 0 = unknown, 1 = yes, -1 = no */
+ if (0 <= have_follow_really)
+ {
+ int result = linkat (fd1, file1, fd2, file2, flag);
+ if (!(result == -1 && errno == EINVAL))
+ {
+ have_follow_really = 1;
+ return result;
+ }
+ have_follow_really = -1;
+ }
+ }
+ return linkat_follow (fd1, file1, fd2, file2);
+}
+
+#endif /* HAVE_LINKAT */
diff --git a/gnu/localcharset.c b/gnu/localcharset.c
new file mode 100644
index 00000000..f645c18c
--- /dev/null
+++ b/gnu/localcharset.c
@@ -0,0 +1,549 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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 WINDOWS_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 WINDOWS_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 WINDOWS_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__
+ /* Native Windows, 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 WINDOWS_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;
+ 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 WINDOWS_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 WINDOWS_NATIVE || defined OS2)
+
+# if HAVE_LANGINFO_CODESET
+
+ /* Most systems support nl_langinfo (CODESET) nowadays. */
+ codeset = nl_langinfo (CODESET);
+
+# ifdef __CYGWIN__
+ /* Cygwin < 1.7 does not have locales. nl_langinfo (CODESET) always
+ returns "US-ASCII". 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;
+ }
+ }
+ }
+
+ /* The Windows API 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 WINDOWS_NATIVE
+
+ static char buf[2 + 10 + 1];
+
+ /* The Windows API 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/gnu/localcharset.h b/gnu/localcharset.h
new file mode 100644
index 00000000..ed36b00a
--- /dev/null
+++ b/gnu/localcharset.h
@@ -0,0 +1,43 @@
+/* -*- 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, 2009-2012 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
+ 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 _LOCALCHARSET_H
+#define _LOCALCHARSET_H
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* 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. */
+extern const char * locale_charset (void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _LOCALCHARSET_H */
diff --git a/gnu/lseek.c b/gnu/lseek.c
new file mode 100644
index 00000000..9928769d
--- /dev/null
+++ b/gnu/lseek.c
@@ -0,0 +1,66 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* An lseek() function that detects pipes.
+ Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#include <unistd.h>
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Windows platforms. */
+/* Get GetFileType. */
+# include <windows.h>
+/* Get _get_osfhandle. */
+# include "msvc-nothrow.h"
+#else
+# include <sys/stat.h>
+#endif
+#include <errno.h>
+
+#undef lseek
+
+off_t
+rpl_lseek (int fd, off_t offset, int whence)
+{
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ /* mingw lseek mistakenly succeeds on pipes, sockets, and terminals. */
+ HANDLE h = (HANDLE) _get_osfhandle (fd);
+ if (h == INVALID_HANDLE_VALUE)
+ {
+ errno = EBADF;
+ return -1;
+ }
+ if (GetFileType (h) != FILE_TYPE_DISK)
+ {
+ errno = ESPIPE;
+ return -1;
+ }
+#else
+ /* BeOS lseek mistakenly succeeds on pipes... */
+ struct stat statbuf;
+ if (fstat (fd, &statbuf) < 0)
+ return -1;
+ if (!S_ISREG (statbuf.st_mode))
+ {
+ errno = ESPIPE;
+ return -1;
+ }
+#endif
+ return lseek (fd, offset, whence);
+}
diff --git a/gnu/lstat.c b/gnu/lstat.c
new file mode 100644
index 00000000..93579951
--- /dev/null
+++ b/gnu/lstat.c
@@ -0,0 +1,99 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Work around a bug of lstat on some systems
+
+ Copyright (C) 1997-2006, 2008-2012 Free Software Foundation, Inc.
+
+ This 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 */
+
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+ the system's <sys/stat.h> here, so that orig_lstat doesn't recurse to
+ rpl_lstat. */
+#define __need_system_sys_stat_h
+#include <config.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. */
+# 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)
+{
+ return lstat (filename, buf);
+}
+
+/* Specification. */
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+ eliminates this include because of the preliminary #include <sys/stat.h>
+ above. */
+# include "sys/stat.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
+ 'ls' take into consideration the fact that FILE has a trailing slash
+ when FILE is a symbolic link. On Linux and Solaris 10 systems, the
+ lstat function already has the desired semantics (in treating
+ 'lstat ("symlink/", sbuf)' just like 'lstat ("symlink/.", sbuf)',
+ but on Solaris 9 and earlier it does not.
+
+ If FILE has a trailing slash and specifies a symbolic link,
+ then use stat() to get more info on the referent of FILE.
+ If the referent is a non-directory, then set errno to ENOTDIR
+ and return -1. Otherwise, return stat's result. */
+
+int
+rpl_lstat (const char *file, struct stat *sbuf)
+{
+ size_t len;
+ int lstat_result = orig_lstat (file, sbuf);
+
+ 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 (file[len - 1] != '/' || S_ISDIR (sbuf->st_mode))
+ return 0;
+
+ /* 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/gnu/malloc.c b/gnu/malloc.c
new file mode 100644
index 00000000..bf75a300
--- /dev/null
+++ b/gnu/malloc.c
@@ -0,0 +1,59 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* malloc() function that is glibc compatible.
+
+ Copyright (C) 1997-1998, 2006-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Jim Meyering and Bruno Haible */
+
+#define _GL_USE_STDLIB_ALLOC 1
+#include <config.h>
+/* Only the AC_FUNC_MALLOC macro defines 'malloc' already in config.h. */
+#ifdef malloc
+# define NEED_MALLOC_GNU 1
+# undef malloc
+/* Whereas the gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */
+#elif GNULIB_MALLOC_GNU && !HAVE_MALLOC_GNU
+# define NEED_MALLOC_GNU 1
+#endif
+
+#include <stdlib.h>
+
+#include <errno.h>
+
+/* Allocate an N-byte block of memory from the heap.
+ If N is zero, allocate a 1-byte block. */
+
+void *
+rpl_malloc (size_t n)
+{
+ void *result;
+
+#if NEED_MALLOC_GNU
+ if (n == 0)
+ n = 1;
+#endif
+
+ result = malloc (n);
+
+#if !HAVE_MALLOC_POSIX
+ if (result == NULL)
+ errno = ENOMEM;
+#endif
+
+ return result;
+}
diff --git a/gnu/malloca.c b/gnu/malloca.c
new file mode 100644
index 00000000..601866dd
--- /dev/null
+++ b/gnu/malloca.c
@@ -0,0 +1,141 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Safe automatic memory allocation.
+ Copyright (C) 2003, 2006-2007, 2009-2012 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2003.
+
+ This 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. */
+
+#define _GL_USE_STDLIB_ALLOC 1
+#include <config.h>
+
+/* Specification. */
+#include "malloca.h"
+
+#include "verify.h"
+
+/* The speed critical point in this file is freea() applied to an alloca()
+ result: it must be fast, to match the speed of alloca(). The speed of
+ mmalloca() and freea() in the other case are not critical, because they
+ are only invoked for big memory sizes. */
+
+#if HAVE_ALLOCA
+
+/* Store the mmalloca() results in a hash table. This is needed to reliably
+ distinguish a mmalloca() result and an alloca() result.
+
+ Although it is possible that the same pointer is returned by alloca() and
+ by mmalloca() at different times in the same application, it does not lead
+ to a bug in freea(), because:
+ - Before a pointer returned by alloca() can point into malloc()ed memory,
+ the function must return, and once this has happened the programmer must
+ not call freea() on it anyway.
+ - Before a pointer returned by mmalloca() can point into the stack, it
+ must be freed. The only function that can free it is freea(), and
+ when freea() frees it, it also removes it from the hash table. */
+
+#define MAGIC_NUMBER 0x1415fb4a
+#define MAGIC_SIZE sizeof (int)
+/* This is how the header info would look like without any alignment
+ considerations. */
+struct preliminary_header { void *next; char room[MAGIC_SIZE]; };
+/* But the header's size must be a multiple of sa_alignment_max. */
+#define HEADER_SIZE \
+ (((sizeof (struct preliminary_header) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max)
+struct header { void *next; char room[HEADER_SIZE - sizeof (struct preliminary_header) + MAGIC_SIZE]; };
+verify (HEADER_SIZE == sizeof (struct header));
+/* We make the hash table quite big, so that during lookups the probability
+ of empty hash buckets is quite high. There is no need to make the hash
+ table resizable, because when the hash table gets filled so much that the
+ lookup becomes slow, it means that the application has memory leaks. */
+#define HASH_TABLE_SIZE 257
+static void * mmalloca_results[HASH_TABLE_SIZE];
+
+#endif
+
+void *
+mmalloca (size_t n)
+{
+#if HAVE_ALLOCA
+ /* Allocate one more word, that serves as an indicator for malloc()ed
+ memory, so that freea() of an alloca() result is fast. */
+ size_t nplus = n + HEADER_SIZE;
+
+ if (nplus >= n)
+ {
+ char *p = (char *) malloc (nplus);
+
+ if (p != NULL)
+ {
+ size_t slot;
+
+ p += HEADER_SIZE;
+
+ /* 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;
+
+ return p;
+ }
+ }
+ /* Out of memory. */
+ return NULL;
+#else
+# if !MALLOC_0_IS_NONNULL
+ if (n == 0)
+ n = 1;
+# endif
+ return malloc (n);
+#endif
+}
+
+#if HAVE_ALLOCA
+void
+freea (void *p)
+{
+ /* mmalloca() may have returned NULL. */
+ 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. */
+ 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;
+ }
+ }
+ /* At this point, we know it was not a mmalloca() result. */
+ }
+}
+#endif
diff --git a/gnu/malloca.h b/gnu/malloca.h
new file mode 100644
index 00000000..a789590b
--- /dev/null
+++ b/gnu/malloca.h
@@ -0,0 +1,136 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Safe automatic memory allocation.
+ Copyright (C) 2003-2007, 2009-2012 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2003.
+
+ This 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 _MALLOCA_H
+#define _MALLOCA_H
+
+#include <alloca.h>
+#include <stddef.h>
+#include <stdlib.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* safe_alloca(N) is equivalent to alloca(N) when it is safe to call
+ alloca(N); otherwise it returns NULL. It either returns N bytes of
+ memory allocated on the stack, that lasts until the function returns,
+ or NULL.
+ Use of safe_alloca should be avoided:
+ - inside arguments of function calls - undefined behaviour,
+ - in inline functions - the allocation may actually last until the
+ calling function returns.
+*/
+#if HAVE_ALLOCA
+/* The OS usually guarantees only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ allocate anything larger than 4096 bytes. Also care for the possibility
+ of a few compiler-allocated temporary stack slots.
+ This must be a macro, not an inline function. */
+# define safe_alloca(N) ((N) < 4032 ? alloca (N) : NULL)
+#else
+# define safe_alloca(N) ((void) (N), NULL)
+#endif
+
+/* malloca(N) is a safe variant of alloca(N). It allocates N bytes of
+ memory allocated on the stack, that must be freed using freea() before
+ the function returns. Upon failure, it returns NULL. */
+#if HAVE_ALLOCA
+# define malloca(N) \
+ ((N) < 4032 - sa_increment \
+ ? (void *) ((char *) alloca ((N) + sa_increment) + sa_increment) \
+ : mmalloca (N))
+#else
+# define malloca(N) \
+ mmalloca (N)
+#endif
+extern void * mmalloca (size_t n);
+
+/* Free a block of memory allocated through malloca(). */
+#if HAVE_ALLOCA
+extern void freea (void *p);
+#else
+# define freea free
+#endif
+
+/* nmalloca(N,S) is an overflow-safe variant of malloca (N * S).
+ It allocates an array of N objects, each with S bytes of memory,
+ on the stack. S must be positive and N must be nonnegative.
+ The array must be freed using freea() before the function returns. */
+#if 1
+/* Cf. the definition of xalloc_oversized. */
+# define nmalloca(n, s) \
+ ((n) > (size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) \
+ ? NULL \
+ : malloca ((n) * (s)))
+#else
+extern void * nmalloca (size_t n, size_t s);
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+/* ------------------- Auxiliary, non-public definitions ------------------- */
+
+/* Determine the alignment of a type at compile time. */
+#if defined __GNUC__
+# define sa_alignof __alignof__
+#elif defined __cplusplus
+ template <class type> struct sa_alignof_helper { char __slot1; type __slot2; };
+# define sa_alignof(type) offsetof (sa_alignof_helper<type>, __slot2)
+#elif defined __hpux
+ /* Work around a HP-UX 10.20 cc bug with enums constants defined as offsetof
+ values. */
+# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8)
+#elif defined _AIX
+ /* Work around an AIX 3.2.5 xlc bug with enums constants defined as offsetof
+ values. */
+# define sa_alignof(type) (sizeof (type) <= 4 ? 4 : 8)
+#else
+# define sa_alignof(type) offsetof (struct { char __slot1; type __slot2; }, __slot2)
+#endif
+
+enum
+{
+/* The desired alignment of memory allocations is the maximum alignment
+ among all elementary types. */
+ sa_alignment_long = sa_alignof (long),
+ sa_alignment_double = sa_alignof (double),
+#if HAVE_LONG_LONG_INT
+ sa_alignment_longlong = sa_alignof (long long),
+#endif
+ 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)
+#endif
+ | (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
+};
+
+#endif /* _MALLOCA_H */
diff --git a/gnu/malloca.valgrind b/gnu/malloca.valgrind
new file mode 100644
index 00000000..52f0a50f
--- /dev/null
+++ b/gnu/malloca.valgrind
@@ -0,0 +1,7 @@
+# Suppress a valgrind message about use of uninitialized memory in freea().
+# This use is OK because it provides only a speedup.
+{
+ freea
+ Memcheck:Cond
+ fun:freea
+}
diff --git a/gnu/mbchar.c b/gnu/mbchar.c
new file mode 100644
index 00000000..2fe81f28
--- /dev/null
+++ b/gnu/mbchar.c
@@ -0,0 +1,37 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 2001, 2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <limits.h>
+
+#include "mbchar.h"
+
+#if IS_BASIC_ASCII
+
+/* 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' '{' '|' '}' '~' */
+ /* The remaining bits are 0. */
+};
+
+#endif /* IS_BASIC_ASCII */
diff --git a/gnu/mbchar.h b/gnu/mbchar.h
new file mode 100644
index 00000000..61886660
--- /dev/null
+++ b/gnu/mbchar.h
@@ -0,0 +1,352 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Multibyte character data type.
+ Copyright (C) 2001, 2005-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Bruno Haible <bruno@clisp.org>. */
+
+/* A multibyte character is a short subsequence of a char* string,
+ representing a single wide character.
+
+ We use multibyte characters instead of wide characters because of
+ the following goals:
+ 1) correct multibyte handling, i.e. operate according to the LC_CTYPE
+ locale,
+ 2) ease of maintenance, i.e. the maintainer needs not know all details
+ of the ISO C 99 standard,
+ 3) don't fail grossly if the input is not in the encoding set by the
+ locale, because often different encodings are in use in the same
+ countries (ISO-8859-1/UTF-8, EUC-JP/Shift_JIS, ...),
+ 4) fast in the case of ASCII characters,
+ 5) portability, i.e. don't make unportable assumptions about wchar_t.
+
+ Multibyte characters are only accessed through the mb* macros.
+
+ mb_ptr (mbc)
+ return a pointer to the beginning of the multibyte sequence.
+
+ mb_len (mbc)
+ returns the number of bytes occupied by the multibyte sequence.
+ Always > 0.
+
+ mb_iseq (mbc, sc)
+ returns true if mbc is the standard ASCII character sc.
+
+ mb_isnul (mbc)
+ returns true if mbc is the nul character.
+
+ mb_cmp (mbc1, mbc2)
+ returns a positive, zero, or negative value depending on whether mbc1
+ sorts after, same or before mbc2.
+
+ mb_casecmp (mbc1, mbc2)
+ returns a positive, zero, or negative value depending on whether mbc1
+ sorts after, same or before mbc2, modulo upper/lowercase conversion.
+
+ mb_equal (mbc1, mbc2)
+ returns true if mbc1 and mbc2 are equal.
+
+ mb_caseequal (mbc1, mbc2)
+ returns true if mbc1 and mbc2 are equal modulo upper/lowercase conversion.
+
+ mb_isalnum (mbc)
+ returns true if mbc is alphanumeric.
+
+ mb_isalpha (mbc)
+ returns true if mbc is alphabetic.
+
+ mb_isascii(mbc)
+ returns true if mbc is plain ASCII.
+
+ mb_isblank (mbc)
+ returns true if mbc is a blank.
+
+ mb_iscntrl (mbc)
+ returns true if mbc is a control character.
+
+ mb_isdigit (mbc)
+ returns true if mbc is a decimal digit.
+
+ mb_isgraph (mbc)
+ returns true if mbc is a graphic character.
+
+ mb_islower (mbc)
+ returns true if mbc is lowercase.
+
+ mb_isprint (mbc)
+ returns true if mbc is a printable character.
+
+ mb_ispunct (mbc)
+ returns true if mbc is a punctuation character.
+
+ mb_isspace (mbc)
+ returns true if mbc is a space character.
+
+ mb_isupper (mbc)
+ returns true if mbc is uppercase.
+
+ mb_isxdigit (mbc)
+ returns true if mbc is a hexadecimal digit.
+
+ mb_width (mbc)
+ returns the number of columns on the output device occupied by mbc.
+ Always >= 0.
+
+ mb_putc (mbc, stream)
+ outputs mbc on stream, a byte oriented FILE stream opened for output.
+
+ mb_setascii (&mbc, sc)
+ assigns the standard ASCII character sc to mbc.
+
+ mb_copy (&destmbc, &srcmbc)
+ copies srcmbc to destmbc.
+
+ 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 void mb_setascii (mbchar_t *new, char sc);
+ extern void mb_copy (mbchar_t *new, const mbchar_t *old);
+ */
+
+#ifndef _MBCHAR_H
+#define _MBCHAR_H 1
+
+#include <stdbool.h>
+#include <string.h>
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+ <wchar.h>. */
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+#include <wctype.h>
+
+#define MBCHAR_BUF_SIZE 24
+
+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 */
+ char buf[MBCHAR_BUF_SIZE]; /* room for the bytes, used for file input only */
+};
+
+/* EOF (not a real character) is represented with bytes = 0 and
+ wc_valid = false. */
+
+typedef struct mbchar mbchar_t;
+
+/* Access the current character. */
+#define mb_ptr(mbc) ((mbc).ptr)
+#define mb_len(mbc) ((mbc).bytes)
+
+/* Comparison of characters. */
+#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 \
+ ? (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 \
+ ? (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 \
+ && 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 \
+ && memcmp ((mbc1).ptr, (mbc2).ptr, (mbc1).bytes) == 0)
+
+/* <ctype.h>, <wctype.h> classification. */
+#define mb_isascii(mbc) \
+ ((mbc).wc_valid && (mbc).wc >= 0 && (mbc).wc <= 127)
+#define mb_isalnum(mbc) ((mbc).wc_valid && iswalnum ((mbc).wc))
+#define mb_isalpha(mbc) ((mbc).wc_valid && iswalpha ((mbc).wc))
+#define mb_isblank(mbc) ((mbc).wc_valid && iswblank ((mbc).wc))
+#define mb_iscntrl(mbc) ((mbc).wc_valid && iswcntrl ((mbc).wc))
+#define mb_isdigit(mbc) ((mbc).wc_valid && iswdigit ((mbc).wc))
+#define mb_isgraph(mbc) ((mbc).wc_valid && iswgraph ((mbc).wc))
+#define mb_islower(mbc) ((mbc).wc_valid && iswlower ((mbc).wc))
+#define mb_isprint(mbc) ((mbc).wc_valid && iswprint ((mbc).wc))
+#define mb_ispunct(mbc) ((mbc).wc_valid && iswpunct ((mbc).wc))
+#define mb_isspace(mbc) ((mbc).wc_valid && iswspace ((mbc).wc))
+#define mb_isupper(mbc) ((mbc).wc_valid && iswupper ((mbc).wc))
+#define mb_isxdigit(mbc) ((mbc).wc_valid && iswxdigit ((mbc).wc))
+
+/* Extra <wchar.h> function. */
+
+/* Unprintable characters appear as a small box of width 1. */
+#define MB_UNPRINTABLE_WIDTH 1
+
+static inline int
+mb_width_aux (wint_t wc)
+{
+ int w = wcwidth (wc);
+ /* For unprintable characters, arbitrarily return 0 for control characters
+ and MB_UNPRINTABLE_WIDTH otherwise. */
+ return (w >= 0 ? w : iswcntrl (wc) ? 0 : MB_UNPRINTABLE_WIDTH);
+}
+
+#define mb_width(mbc) \
+ ((mbc).wc_valid ? mb_width_aux ((mbc).wc) : MB_UNPRINTABLE_WIDTH)
+
+/* Output. */
+#define mb_putc(mbc, stream) fwrite ((mbc).ptr, 1, (mbc).bytes, (stream))
+
+/* Assignment. */
+#define mb_setascii(mbc, sc) \
+ ((mbc)->ptr = (mbc)->buf, (mbc)->bytes = 1, (mbc)->wc_valid = 1, \
+ (mbc)->wc = (mbc)->buf[0] = (sc))
+
+/* Copying a character. */
+static inline void
+mb_copy (mbchar_t *new_mbc, const mbchar_t *old_mbc)
+{
+ if (old_mbc->ptr == &old_mbc->buf[0])
+ {
+ memcpy (&new_mbc->buf[0], &old_mbc->buf[0], old_mbc->bytes);
+ new_mbc->ptr = &new_mbc->buf[0];
+ }
+ else
+ new_mbc->ptr = old_mbc->ptr;
+ new_mbc->bytes = old_mbc->bytes;
+ if ((new_mbc->wc_valid = old_mbc->wc_valid))
+ new_mbc->wc = old_mbc->wc;
+}
+
+
+/* is_basic(c) tests whether the single-byte character c is in the
+ ISO C "basic character set".
+ This is a convenience function, and is in this file only to share code
+ between mbiter_multi.h and mbfile_multi.h. */
+#if (' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+ && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+ && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+ && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+ && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+ && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+ && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+ && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+ && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+ && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+ && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+ && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+ && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+ && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+ && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+ && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+ && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+ && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+ && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+ && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+ && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+ && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+ && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)
+/* The character set is ISO-646, not EBCDIC. */
+# define IS_BASIC_ASCII 1
+
+extern const unsigned int is_basic_table[];
+
+static inline bool
+is_basic (char c)
+{
+ return (is_basic_table [(unsigned char) c >> 5] >> ((unsigned char) c & 31))
+ & 1;
+}
+
+#else
+
+static inline bool
+is_basic (char c)
+{
+ switch (c)
+ {
+ case '\t': case '\v': case '\f':
+ case ' ': case '!': case '"': case '#': case '%':
+ case '&': case '\'': case '(': case ')': 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 ';': case '<': case '=': 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':
+ case '[': case '\\': case ']': 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': case '{': case '|': case '}': case '~':
+ return 1;
+ default:
+ return 0;
+ }
+}
+
+#endif
+
+#endif /* _MBCHAR_H */
diff --git a/gnu/mbrtowc.c b/gnu/mbrtowc.c
new file mode 100644
index 00000000..5a5d0eac
--- /dev/null
+++ b/gnu/mbrtowc.c
@@ -0,0 +1,398 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Convert multibyte character to wide character.
+ Copyright (C) 1999-2002, 2005-2012 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 (s == NULL)
+ {
+ pwc = NULL;
+ s = "";
+ n = 1;
+ }
+
+ if (n == 0)
+ return (size_t)(-2);
+
+ /* Here n > 0. */
+
+ if (pstate == NULL)
+ pstate = internal_state;
+
+ {
+ 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__ || defined __UCLIBC__
+ /* 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_ARG2_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 cannot 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
+ {
+# if MBRTOWC_NULL_ARG1_BUG
+ wchar_t dummy;
+
+ if (pwc == NULL)
+ pwc = &dummy;
+# endif
+
+ return mbrtowc (pwc, s, n, ps);
+ }
+# endif
+}
+
+#endif
diff --git a/gnu/mbscasecmp.c b/gnu/mbscasecmp.c
new file mode 100644
index 00000000..e674bc75
--- /dev/null
+++ b/gnu/mbscasecmp.c
@@ -0,0 +1,100 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Case-insensitive string comparison function.
+ Copyright (C) 1998-1999, 2005-2012 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2005,
+ based on earlier glibc code.
+
+ This 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 <string.h>
+
+#include <ctype.h>
+#include <limits.h>
+
+#include "mbuiter.h"
+
+#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
+
+/* 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! */
+int
+mbscasecmp (const char *s1, const char *s2)
+{
+ if (s1 == s2)
+ return 0;
+
+ /* Be careful not to look at the entire extent of s1 or s2 until needed.
+ This is useful because when two strings differ, the difference is
+ most often already in the very few first characters. */
+ if (MB_CUR_MAX > 1)
+ {
+ mbui_iterator_t iter1;
+ mbui_iterator_t iter2;
+
+ mbui_init (iter1, s1);
+ mbui_init (iter2, s2);
+
+ while (mbui_avail (iter1) && mbui_avail (iter2))
+ {
+ int cmp = mb_casecmp (mbui_cur (iter1), mbui_cur (iter2));
+
+ if (cmp != 0)
+ return cmp;
+
+ mbui_advance (iter1);
+ mbui_advance (iter2);
+ }
+ if (mbui_avail (iter1))
+ /* s2 terminated before s1. */
+ return 1;
+ if (mbui_avail (iter2))
+ /* s1 terminated before s2. */
+ return -1;
+ return 0;
+ }
+ else
+ {
+ const unsigned char *p1 = (const unsigned char *) s1;
+ const unsigned char *p2 = (const unsigned char *) s2;
+ unsigned char c1, c2;
+
+ do
+ {
+ c1 = TOLOWER (*p1);
+ c2 = TOLOWER (*p2);
+
+ if (c1 == '\0')
+ break;
+
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ if (UCHAR_MAX <= INT_MAX)
+ 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);
+ }
+}
diff --git a/gnu/mbsinit.c b/gnu/mbsinit.c
new file mode 100644
index 00000000..5b520014
--- /dev/null
+++ b/gnu/mbsinit.c
@@ -0,0 +1,63 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test for initial conversion state.
+ Copyright (C) 2008-2012 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 "verify.h"
+
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+
+/* On native Windows, 'mbstate_t' is defined as 'int'. */
+
+int
+mbsinit (const mbstate_t *ps)
+{
+ return ps == NULL || *ps == 0;
+}
+
+#else
+
+/* Platforms that lack mbsinit() also lack mbrlen(), mbrtowc(), mbsrtowcs()
+ and wcrtomb(), wcsrtombs().
+ We assume that
+ - sizeof (mbstate_t) >= 4,
+ - only stateless encodings are supported (such as UTF-8 and EUC-JP, but
+ not ISO-2022 variants),
+ - for each encoding, the number of bytes for a wide character is <= 4.
+ (This maximum is attained for UTF-8, GB18030, EUC-TW.)
+ We define the meaning of mbstate_t as follows:
+ - In mb -> wc direction, mbstate_t's first byte contains the number of
+ buffered bytes (in the range 0..3), followed by up to 3 buffered bytes.
+ - In wc -> mb direction, mbstate_t contains no information. In other
+ words, it is always in the initial state. */
+
+verify (sizeof (mbstate_t) >= 4);
+
+int
+mbsinit (const mbstate_t *ps)
+{
+ const char *pstate = (const char *)ps;
+
+ return pstate == NULL || pstate[0] == 0;
+}
+
+#endif
diff --git a/gnu/mbsrtowcs-impl.h b/gnu/mbsrtowcs-impl.h
new file mode 100644
index 00000000..079104ef
--- /dev/null
+++ b/gnu/mbsrtowcs-impl.h
@@ -0,0 +1,124 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Convert string to wide string.
+ Copyright (C) 2008-2012 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/>. */
+
+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/gnu/mbsrtowcs-state.c b/gnu/mbsrtowcs-state.c
new file mode 100644
index 00000000..715ea126
--- /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-2012 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 00000000..2c62e665
--- /dev/null
+++ b/gnu/mbsrtowcs.c
@@ -0,0 +1,34 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Convert string to wide string.
+ Copyright (C) 2008-2012 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;
+
+#include "mbsrtowcs-impl.h"
diff --git a/gnu/mbtowc-impl.h b/gnu/mbtowc-impl.h
new file mode 100644
index 00000000..2bcf91ab
--- /dev/null
+++ b/gnu/mbtowc-impl.h
@@ -0,0 +1,46 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Convert multibyte character to wide character.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+ This 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/>. */
+
+/* We don't need a static internal state, because the encoding is not state
+ dependent, and when mbrtowc returns (size_t)(-2). we throw the result
+ away. */
+
+int
+mbtowc (wchar_t *pwc, const char *s, size_t n)
+{
+ if (s == NULL)
+ return 0;
+ else
+ {
+ mbstate_t state;
+ wchar_t wc;
+ size_t result;
+
+ memset (&state, 0, sizeof (mbstate_t));
+ result = mbrtowc (&wc, s, n, &state);
+ if (result == (size_t)-1 || result == (size_t)-2)
+ {
+ errno = EILSEQ;
+ return -1;
+ }
+ if (pwc != NULL)
+ *pwc = wc;
+ return (wc == 0 ? 0 : result);
+ }
+}
diff --git a/gnu/mbtowc.c b/gnu/mbtowc.c
new file mode 100644
index 00000000..55515ee1
--- /dev/null
+++ b/gnu/mbtowc.c
@@ -0,0 +1,28 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Convert multibyte character to wide character.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+ This 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 <stdlib.h>
+
+#include <errno.h>
+#include <string.h>
+#include <wchar.h>
+
+#include "mbtowc-impl.h"
diff --git a/gnu/mbuiter.h b/gnu/mbuiter.h
new file mode 100644
index 00000000..fe29896b
--- /dev/null
+++ b/gnu/mbuiter.h
@@ -0,0 +1,224 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Bruno Haible <bruno@clisp.org>. */
+
+/* The macros in this file implement forward iteration through a
+ multi-byte string, without knowing its length a-priori.
+
+ With these macros, an iteration loop that looks like
+
+ char *iter;
+ for (iter = buf; *iter != '\0'; iter++)
+ {
+ do_something (*iter);
+ }
+
+ becomes
+
+ mbui_iterator_t iter;
+ for (mbui_init (iter, buf); mbui_avail (iter); mbui_advance (iter))
+ {
+ do_something (mbui_cur_ptr (iter), mb_len (mbui_cur (iter)));
+ }
+
+ The benefit of these macros over plain use of mbrtowc is:
+ - Handling of invalid multibyte sequences is possible without
+ making the code more complicated, while still preserving the
+ invalid multibyte sequences.
+
+ Compared to mbiter.h, the macros here don't need to know the string's
+ length a-priori. The downside is that at each step, the look-ahead
+ that guards against overrunning the terminating '\0' is more expensive.
+ The mbui_* macros are therefore suitable when there is a high probability
+ that only the first few multibyte characters need to be inspected.
+ Whereas the mbi_* macros are better if usually the iteration runs
+ through the entire string.
+
+ mbui_iterator_t
+ is a type usable for variable declarations.
+
+ mbui_init (iter, startptr)
+ initializes the iterator, starting at startptr.
+
+ mbui_avail (iter)
+ returns true if there are more multibyte chracters available before
+ the end of string is reached. In this case, mbui_cur (iter) is
+ initialized to the next multibyte chracter.
+
+ mbui_advance (iter)
+ advances the iterator by one multibyte character.
+
+ mbui_cur (iter)
+ returns the current multibyte character, of type mbchar_t. All the
+ macros defined in mbchar.h can be used on it.
+
+ mbui_cur_ptr (iter)
+ return a pointer to the beginning of the current multibyte character.
+
+ mbui_reloc (iter, ptrdiff)
+ relocates iterator when the string is moved by ptrdiff bytes.
+
+ mbui_copy (&destiter, &srciter)
+ copies srciter to destiter.
+
+ 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);
+ */
+
+#ifndef _MBUITER_H
+#define _MBUITER_H 1
+
+#include <assert.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before
+ <wchar.h>.
+ BSD/OS 4.1 has a bug: <stdio.h> and <time.h> must be included before
+ <wchar.h>. */
+#include <stdio.h>
+#include <time.h>
+#include <wchar.h>
+
+#include "mbchar.h"
+#include "strnlen1.h"
+
+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
+ */
+};
+
+static inline void
+mbuiter_multi_next (struct mbuiter_multi *iter)
+{
+ if (iter->next_done)
+ return;
+ if (iter->in_shift)
+ goto with_shift;
+ /* Handle most ASCII characters quickly, without calling mbrtowc(). */
+ 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. */
+ iter->cur.bytes = 1;
+ iter->cur.wc = *iter->cur.ptr;
+ iter->cur.wc_valid = true;
+ }
+ else
+ {
+ assert (mbsinit (&iter->state));
+ 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);
+ 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. */
+ }
+ 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. */
+ }
+ 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;
+ }
+ }
+ iter->next_done = true;
+}
+
+static inline void
+mbuiter_multi_reloc (struct mbuiter_multi *iter, ptrdiff_t ptrdiff)
+{
+ iter->cur.ptr += ptrdiff;
+}
+
+static inline void
+mbuiter_multi_copy (struct mbuiter_multi *new_iter, const struct mbuiter_multi *old_iter)
+{
+ if ((new_iter->in_shift = old_iter->in_shift))
+ memcpy (&new_iter->state, &old_iter->state, sizeof (mbstate_t));
+ else
+ memset (&new_iter->state, 0, sizeof (mbstate_t));
+ new_iter->next_done = old_iter->next_done;
+ mb_copy (&new_iter->cur, &old_iter->cur);
+}
+
+/* Iteration macros. */
+typedef struct mbuiter_multi mbui_iterator_t;
+#define mbui_init(iter, startptr) \
+ ((iter).cur.ptr = (startptr), \
+ (iter).in_shift = false, memset (&(iter).state, '\0', sizeof (mbstate_t)), \
+ (iter).next_done = false)
+#define mbui_avail(iter) \
+ (mbuiter_multi_next (&(iter)), !mb_isnul ((iter).cur))
+#define mbui_advance(iter) \
+ ((iter).cur.ptr += (iter).cur.bytes, (iter).next_done = false)
+
+/* Access to the current character. */
+#define mbui_cur(iter) (iter).cur
+#define mbui_cur_ptr(iter) (iter).cur.ptr
+
+/* Relocation. */
+#define mbui_reloc(iter, ptrdiff) mbuiter_multi_reloc (&iter, ptrdiff)
+
+/* Copying an iterator. */
+#define mbui_copy mbuiter_multi_copy
+
+#endif /* _MBUITER_H */
diff --git a/gnu/memchr.c b/gnu/memchr.c
new file mode 100644
index 00000000..3cff1408
--- /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-2012
+ 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 00000000..60f247e1
--- /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/gnu/mempcpy.c b/gnu/mempcpy.c
new file mode 100644
index 00000000..4698fe56
--- /dev/null
+++ b/gnu/mempcpy.c
@@ -0,0 +1,31 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#include <string.h>
+
+/* Copy N bytes of SRC to DEST, return pointer to bytes after the
+ last written byte. */
+void *
+mempcpy (void *dest, const void *src, size_t n)
+{
+ return (char *) memcpy (dest, src, n) + n;
+}
diff --git a/gnu/memrchr.c b/gnu/memrchr.c
new file mode 100644
index 00000000..98197041
--- /dev/null
+++ b/gnu/memrchr.c
@@ -0,0 +1,163 @@
+/* -*- 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-2012 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).
+
+ This 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 defined _LIBC
+# include <memcopy.h>
+#else
+# include <config.h>
+# define reg_char char
+#endif
+
+#include <string.h>
+#include <limits.h>
+
+#undef __memrchr
+#ifdef _LIBC
+# undef memrchr
+#endif
+
+#ifndef weak_alias
+# define __memrchr memrchr
+#endif
+
+/* Search no more than N bytes of S for C. */
+void *
+__memrchr (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 last 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;
+ n > 0 && (size_t) char_ptr % sizeof (longword) != 0;
+ --n)
+ 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)
+ {
+ longword_ptr++;
+ break;
+ }
+ 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. */
+
+ while (n-- > 0)
+ {
+ if (*--char_ptr == c)
+ return (void *) char_ptr;
+ }
+
+ return NULL;
+}
+#ifdef weak_alias
+weak_alias (__memrchr, memrchr)
+#endif
diff --git a/gnu/mkdtemp.c b/gnu/mkdtemp.c
new file mode 100644
index 00000000..5d09133f
--- /dev/null
+++ b/gnu/mkdtemp.c
@@ -0,0 +1,41 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 1999, 2001-2003, 2006-2007, 2009-2012 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/>. */
+
+/* Extracted from misc/mkdtemp.c. */
+
+#include <config.h>
+
+/* Specification. */
+#include <stdlib.h>
+
+#include "tempname.h"
+
+/* 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 *xtemplate)
+{
+ if (gen_tempname (xtemplate, 0, 0, GT_DIR))
+ return NULL;
+ else
+ return xtemplate;
+}
diff --git a/gnu/mkfifo.c b/gnu/mkfifo.c
new file mode 100644
index 00000000..f905c078
--- /dev/null
+++ b/gnu/mkfifo.c
@@ -0,0 +1,60 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Create a named fifo.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <sys/stat.h>
+
+#include <errno.h>
+#include <string.h>
+
+#if !HAVE_MKFIFO
+/* Mingw lacks mkfifo; always fail with ENOSYS. */
+
+int
+mkfifo (char const *name _GL_UNUSED, mode_t mode _GL_UNUSED)
+{
+ errno = ENOSYS;
+ return -1;
+}
+
+#else /* HAVE_MKFIFO */
+
+# undef mkfifo
+
+/* Create a named fifo FILE, with access permissions in MODE. Work
+around trailing slash bugs. */
+
+int
+rpl_mkfifo (char const *name, mode_t mode)
+{
+# if MKFIFO_TRAILING_SLASH_BUG
+ size_t len = strlen (name);
+ if (len && name[len - 1] == '/')
+ {
+ struct stat st;
+ if (stat (name, &st) == 0)
+ errno = EEXIST;
+ return -1;
+ }
+# endif
+ return mkfifo (name, mode);
+}
+#endif /* HAVE_MKFIFO */
diff --git a/gnu/mkfifoat.c b/gnu/mkfifoat.c
new file mode 100644
index 00000000..cc670fe1
--- /dev/null
+++ b/gnu/mkfifoat.c
@@ -0,0 +1,57 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Create a named fifo relative to an open directory.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <sys/stat.h>
+
+#if !HAVE_MKFIFO
+
+# include <errno.h>
+
+/* Mingw lacks mkfifo, so this wrapper is trivial. */
+
+int
+mkfifoat (int fd _GL_UNUSED, char const *path _GL_UNUSED,
+ mode_t mode _GL_UNUSED)
+{
+ errno = ENOSYS;
+ return -1;
+}
+
+#else /* HAVE_MKFIFO */
+
+/* Create a named fifo FILE relative to directory FD, with access
+ permissions in MODE. If possible, do it without changing the
+ working directory. Otherwise, resort to using save_cwd/fchdir,
+ then mkfifo/restore_cwd. If either the save_cwd or the restore_cwd
+ fails, then give a diagnostic and exit nonzero. */
+
+# define AT_FUNC_NAME mkfifoat
+# define AT_FUNC_F1 mkfifo
+# define AT_FUNC_POST_FILE_PARAM_DECLS , mode_t mode
+# define AT_FUNC_POST_FILE_ARGS , mode
+# 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 /* HAVE_MKFIFO */
diff --git a/gnu/mknod.c b/gnu/mknod.c
new file mode 100644
index 00000000..3b9921b2
--- /dev/null
+++ b/gnu/mknod.c
@@ -0,0 +1,76 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Create a device inode.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <sys/stat.h>
+
+#include <errno.h>
+#include <string.h>
+
+#if !HAVE_MKNOD
+/* Mingw lacks mknod; always fail with ENOSYS. */
+
+int
+mknod (char const *name _GL_UNUSED, mode_t mode _GL_UNUSED,
+ dev_t dev _GL_UNUSED)
+{
+ errno = ENOSYS;
+ return -1;
+}
+
+#else /* HAVE_MKNOD */
+
+# undef mknod
+
+/* Create a file system node FILE, with access permissions and file
+ type in MODE, and device type in DEV. Usually, non-root
+ applications can only create named fifos (mode includes S_IFIFO),
+ with DEV set to 0. Also work around trailing slash bugs. */
+
+int
+rpl_mknod (char const *name, mode_t mode, dev_t dev)
+{
+# if MKFIFO_TRAILING_SLASH_BUG
+ /* Trailing slash only makes sense for directories. Of course,
+ using mknod to create a directory is not very portable, so it may
+ still fail later on. */
+ if (!S_ISDIR (mode))
+ {
+ size_t len = strlen (name);
+ if (len && name[len - 1] == '/')
+ {
+ struct stat st;
+ if (stat (name, &st) == 0)
+ errno = EEXIST;
+ return -1;
+ }
+ }
+# endif
+# if MKNOD_FIFO_BUG
+ /* POSIX requires mknod to create fifos for non-privileged
+ processes, but BSD implementations fail with EPERM. */
+ if (S_ISFIFO (mode) && dev == 0)
+ return mkfifo (name, mode & ~S_IFIFO);
+# endif
+ return mknod (name, mode, dev);
+}
+
+#endif /* HAVE_MKNOD */
diff --git a/gnu/mknodat.c b/gnu/mknodat.c
new file mode 100644
index 00000000..d6f5941c
--- /dev/null
+++ b/gnu/mknodat.c
@@ -0,0 +1,59 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Create an inode relative to an open directory.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <sys/stat.h>
+
+#if !HAVE_MKNOD
+
+# include <errno.h>
+
+/* Mingw lacks mknod, so this wrapper is trivial. */
+
+int
+mknodat (int fd _GL_UNUSED, char const *path _GL_UNUSED,
+ mode_t mode _GL_UNUSED, dev_t dev _GL_UNUSED)
+{
+ errno = ENOSYS;
+ return -1;
+}
+
+#else /* HAVE_MKFIFO */
+
+/* Create a file system node FILE relative to directory FD, with
+ access permissions and file type in MODE, and device type in DEV.
+ Usually, non-root applications can only create named fifos, with
+ DEV set to 0. If possible, create the node without changing the
+ working directory. Otherwise, resort to using save_cwd/fchdir,
+ then mknod/restore_cwd. If either the save_cwd or the restore_cwd
+ fails, then give a diagnostic and exit nonzero. */
+
+# define AT_FUNC_NAME mknodat
+# define AT_FUNC_F1 mknod
+# define AT_FUNC_POST_FILE_PARAM_DECLS , mode_t mode, dev_t dev
+# define AT_FUNC_POST_FILE_ARGS , mode, dev
+# 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 /* HAVE_MKFIFO */
diff --git a/gnu/mktime-internal.h b/gnu/mktime-internal.h
new file mode 100644
index 00000000..8a1259ef
--- /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/gnu/mktime.c b/gnu/mktime.c
new file mode 100644
index 00000000..3d75137e
--- /dev/null
+++ b/gnu/mktime.c
@@ -0,0 +1,741 @@
+/* -*- 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-2007, 2009-2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Paul Eggert <eggert@twinsun.com>.
+
+ This 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. */
+
+/* Define this to have a standalone program to test this implementation of
+ mktime. */
+/* #define DEBUG 1 */
+
+#ifndef _LIBC
+# include <config.h>
+#endif
+
+/* Assume that leap seconds are possible, unless told otherwise.
+ If the host has a 'zic' command with a '-L leapsecondfilename' option,
+ then it supports leap seconds; otherwise it probably doesn't. */
+#ifndef LEAP_SECONDS_POSSIBLE
+# define LEAP_SECONDS_POSSIBLE 1
+#endif
+
+#include <time.h>
+
+#include <limits.h>
+
+#include <string.h> /* For the real memcpy prototype. */
+
+#if DEBUG
+# include <stdio.h>
+# include <stdlib.h>
+/* Make it work even if the system's libc has its own mktime routine. */
+# undef mktime
+# define mktime my_mktime
+#endif /* DEBUG */
+
+/* Some of the code in this file assumes that signed integer overflow
+ silently wraps around. This assumption can't easily be programmed
+ around, nor can it be checked for portably at compile-time or
+ easily eliminated at run-time.
+
+ Define WRAPV to 1 if the assumption is valid and if
+ #pragma GCC optimize ("wrapv")
+ does not trigger GCC bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51793>.
+ Otherwise, define it to 0; this forces the use of slower code that,
+ while not guaranteed by the C Standard, works on all production
+ platforms that we know about. */
+#ifndef WRAPV
+# if ((__GNUC__ == 4 && 4 <= __GNUC_MINOR__) || 4 < __GNUC__) && defined __GLIBC__
+# pragma GCC optimize ("wrapv")
+# define WRAPV 1
+# else
+# define WRAPV 0
+# endif
+#endif
+
+/* Verify a requirement at compile-time (unlike assert, which is runtime). */
+#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; }
+
+/* A signed type that is at least one bit wider than int. */
+#if INT_MAX <= LONG_MAX / 2
+typedef long int long_int;
+#else
+typedef long long int long_int;
+#endif
+verify (long_int_is_wide_enough, INT_MAX == INT_MAX * (long_int) 2 / 2);
+
+/* 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
+ INT_BITS is the number of useful bits in an int. GNU code can
+ assume that INT_BITS is at least 32.
+
+ ISO C99 says that A >> B is implementation-defined if A < 0. Some
+ 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 \
+ && (long_int) -1 >> 1 == -1 \
+ && ((time_t) -1 >> 1 == -1 || ! TYPE_SIGNED (time_t))) \
+ ? (a) >> (b) \
+ : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0))
+
+/* 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)
+
+/* True if negative values of the signed integer type T use two's
+ complement, or if T is an unsigned integer type. */
+#define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1)
+
+/* True if the arithmetic type T is signed. */
+#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) \
+ ((t) (! TYPE_SIGNED (t) \
+ ? (t) 0 \
+ : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) (! TYPE_SIGNED (t) \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+
+#ifndef TIME_T_MIN
+# define TIME_T_MIN TYPE_MINIMUM (time_t)
+#endif
+#ifndef TIME_T_MAX
+# define TIME_T_MAX TYPE_MAXIMUM (time_t)
+#endif
+#define TIME_T_MIDPOINT (SHR (TIME_T_MIN + TIME_T_MAX, 1) + 1)
+
+verify (time_t_is_integer, TYPE_IS_INTEGER (time_t));
+verify (twos_complement_arithmetic,
+ (TYPE_TWOS_COMPLEMENT (int)
+ && TYPE_TWOS_COMPLEMENT (long_int)
+ && TYPE_TWOS_COMPLEMENT (time_t)));
+
+#define EPOCH_YEAR 1970
+#define TM_YEAR_BASE 1900
+verify (base_year_is_a_multiple_of_100, TM_YEAR_BASE % 100 == 0);
+
+/* Return 1 if YEAR + TM_YEAR_BASE is a leap year. */
+static inline int
+leapyear (long_int year)
+{
+ /* Don't add YEAR to TM_YEAR_BASE, as that might overflow.
+ Also, work even if YEAR is negative. */
+ return
+ ((year & 3) == 0
+ && (year % 100 != 0
+ || ((year / 100) & 3) == (- (TM_YEAR_BASE / 100) & 3)));
+}
+
+/* How many days come before each month (0-12). */
+#ifndef _LIBC
+static
+#endif
+const unsigned short int __mon_yday[2][13] =
+ {
+ /* Normal years. */
+ { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365 },
+ /* Leap years. */
+ { 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366 }
+ };
+
+
+#ifndef _LIBC
+/* Portable standalone applications should supply a <time.h> that
+ declares a POSIX-compliant localtime_r, for the benefit of older
+ implementations that lack localtime_r or have a nonstandard one.
+ See the gnulib time_r module for one way to implement this. */
+# undef __localtime_r
+# define __localtime_r localtime_r
+# define __mktime_internal mktime_internal
+# include "mktime-internal.h"
+#endif
+
+/* Return 1 if the values A and B differ according to the rules for
+ tm_isdst: A and B differ if one is zero and the other positive. */
+static int
+isdst_differ (int a, int b)
+{
+ return (!a != !b) & (0 <= a) & (0 <= b);
+}
+
+/* Return an integer value measuring (YEAR1-YDAY1 HOUR1:MIN1:SEC1) -
+ (YEAR0-YDAY0 HOUR0:MIN0:SEC0) in seconds, assuming that the clocks
+ were not adjusted between the time stamps.
+
+ The YEAR values uses the same numbering as TP->tm_year. Values
+ need not be in the usual range. However, YEAR1 must not be less
+ than 2 * INT_MIN or greater than 2 * INT_MAX.
+
+ The result may overflow. It is the caller's responsibility to
+ detect overflow. */
+
+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)
+{
+ verify (C99_integer_division, -1 / 2 == 0);
+
+ /* Compute intervening leap days correctly even if year is negative.
+ Take care to avoid integer overflow here. */
+ int a4 = SHR (year1, 2) + SHR (TM_YEAR_BASE, 2) - ! (year1 & 3);
+ int b4 = SHR (year0, 2) + SHR (TM_YEAR_BASE, 2) - ! (year0 & 3);
+ int a100 = a4 / 25 - (a4 % 25 < 0);
+ int b100 = b4 / 25 - (b4 % 25 < 0);
+ int a400 = SHR (a100, 2);
+ int b400 = SHR (b100, 2);
+ int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400);
+
+ /* Compute the desired time in time_t precision. Overflow might
+ occur here. */
+ time_t tyear1 = year1;
+ time_t years = tyear1 - year0;
+ time_t days = 365 * years + yday1 - yday0 + intervening_leap_days;
+ time_t hours = 24 * days + hour1 - hour0;
+ time_t minutes = 60 * hours + min1 - min0;
+ time_t seconds = 60 * minutes + sec1 - sec0;
+ return seconds;
+}
+
+/* Return the average of A and B, even if A + B would overflow. */
+static time_t
+time_t_avg (time_t a, time_t b)
+{
+ return SHR (a, 1) + SHR (b, 1) + (a & b & 1);
+}
+
+/* Return 1 if A + B does not overflow. If time_t is unsigned and if
+ B's top bit is set, assume that the sum represents A - -B, and
+ return 1 if the subtraction does not wrap around. */
+static int
+time_t_add_ok (time_t a, time_t b)
+{
+ if (! TYPE_SIGNED (time_t))
+ {
+ time_t sum = a + b;
+ return (sum < a) == (TIME_T_MIDPOINT <= b);
+ }
+ else if (WRAPV)
+ {
+ time_t sum = a + b;
+ return (sum < a) == (b < 0);
+ }
+ else
+ {
+ time_t avg = time_t_avg (a, b);
+ return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2;
+ }
+}
+
+/* Return 1 if A + B does not overflow. */
+static int
+time_t_int_add_ok (time_t a, int b)
+{
+ verify (int_no_wider_than_time_t, INT_MAX <= TIME_T_MAX);
+ if (WRAPV)
+ {
+ time_t sum = a + b;
+ return (sum < a) == (b < 0);
+ }
+ else
+ {
+ int a_odd = a & 1;
+ time_t avg = SHR (a, 1) + (SHR (b, 1) + (a_odd & b));
+ return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2;
+ }
+}
+
+/* Return a time_t value corresponding to (YEAR-YDAY HOUR:MIN:SEC),
+ assuming that *T corresponds to *TP and that no clock adjustments
+ occurred between *TP and the desired time.
+ If TP is null, return a value not equal to *T; this avoids false matches.
+ If overflow occurs, yield the minimal or maximal value, except do not
+ 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)
+{
+ 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);
+ if (time_t_add_ok (*t, d))
+ return *t + d;
+ }
+
+ /* Overflow occurred one way or another. Return the nearest result
+ that is actually in range, except don't report a zero difference
+ if the actual difference is nonzero, as that would cause a false
+ 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));
+}
+
+/* Use CONVERT to convert *T to a broken down time in *TP.
+ If *T is out of range for conversion, adjust it so that
+ 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)
+{
+ struct tm *r = convert (t, tp);
+
+ if (!r && *t)
+ {
+ time_t bad = *t;
+ 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. */
+ while (bad != ok + (bad < 0 ? -1 : 1))
+ {
+ time_t mid = *t = time_t_avg (ok, bad);
+ 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);
+ }
+ }
+
+ return r;
+}
+
+
+/* Convert *TP to a time_t value, inverting
+ the monotonic and mostly-unit-linear conversion function CONVERT.
+ Use *OFFSET to keep track of a guess at the offset of the result,
+ compared to what the result would be for UTC without leap seconds.
+ If *OFFSET's guess is correct, only one CONVERT call is needed.
+ 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)
+{
+ time_t t, gt, t0, t1, t2;
+ struct tm tm;
+
+ /* The maximum number of probes (calls to CONVERT) should be enough
+ to handle any combinations of time zone rule changes, solar time,
+ leap seconds, and oscillations around a spring-forward gap.
+ POSIX.1 prohibits leap seconds, but some hosts have them anyway. */
+ int remaining_probes = 6;
+
+ /* Time requested. Copy it in case CONVERT modifies *TP; this can
+ occur if TP is localtime's returned value and CONVERT is localtime. */
+ int sec = tp->tm_sec;
+ int min = tp->tm_min;
+ int hour = tp->tm_hour;
+ int mday = tp->tm_mday;
+ int mon = tp->tm_mon;
+ int year_requested = tp->tm_year;
+ int isdst = tp->tm_isdst;
+
+ /* 1 if the previous probe was DST. */
+ int dst2;
+
+ /* Ensure that mon is in range, and set year accordingly. */
+ int mon_remainder = mon % 12;
+ int negative_mon_remainder = mon_remainder < 0;
+ int mon_years = mon / 12 - negative_mon_remainder;
+ long_int lyear_requested = year_requested;
+ long_int year = lyear_requested + mon_years;
+
+ /* The other values need not be in range:
+ the remaining code handles minor overflows correctly,
+ assuming int and time_t arithmetic wraps around.
+ Major overflows are caught at the end. */
+
+ /* 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);
+ long_int lmday = mday;
+ long_int yday = mon_yday + lmday;
+
+ time_t guessed_offset = *offset;
+
+ int sec_requested = sec;
+
+ if (LEAP_SECONDS_POSSIBLE)
+ {
+ /* Handle out-of-range seconds specially,
+ since ydhms_tm_diff assumes every minute has 60 seconds. */
+ if (sec < 0)
+ sec = 0;
+ if (59 < sec)
+ 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);
+
+ 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. */
+
+ /* 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. */
+ int ALOG2_SECONDS_PER_BIENNIUM = 26;
+ int ALOG2_MINUTES_PER_BIENNIUM = 20;
+ int ALOG2_HOURS_PER_BIENNIUM = 14;
+ int ALOG2_DAYS_PER_BIENNIUM = 10;
+ 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)));
+
+ int approx_biennia = SHR (t0, ALOG2_SECONDS_PER_BIENNIUM);
+ int diff = approx_biennia - approx_requested_biennia;
+ int abs_diff = diff < 0 ? -1 - diff : diff;
+
+ /* IRIX 4.0.5 cc miscalculates 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) */
+ 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;
+
+ 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 ? -1 - 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);
+ 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))))
+ /* 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. */
+ goto offset_found;
+ else if (--remaining_probes == 0)
+ return -1;
+
+ /* We have a match. Check whether tm.tm_isdst has the requested
+ value, if any. */
+ if (isdst_differ (isdst, tm.tm_isdst))
+ {
+ /* tm.tm_isdst has the wrong value. Look for a neighboring
+ 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. */
+
+ /* 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. */
+ 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. */
+ 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. */
+ 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)
+ if (time_t_int_add_ok (t, delta * direction))
+ {
+ time_t ot = t + delta * direction;
+ struct tm otm;
+ ranged_convert (convert, &ot, &otm);
+ if (! isdst_differ (isdst, otm.tm_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:
+ *offset = guessed_offset + t - t0;
+
+ 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. */
+ int sec_adjustment = (sec == 0 && tm.tm_sec == 60) - sec;
+ if (! time_t_int_add_ok (t, sec_requested))
+ return -1;
+ t1 = t + sec_requested;
+ if (! time_t_int_add_ok (t1, sec_adjustment))
+ return -1;
+ t2 = t1 + sec_adjustment;
+ if (! convert (&t2, &tm))
+ return -1;
+ t = t2;
+ }
+
+ *tp = tm;
+ return t;
+}
+
+
+/* FIXME: This should use a signed type wide enough to hold any UTC
+ offset in seconds. 'int' should be good enough for GNU code. We
+ can't fix this unilaterally though, as other modules invoke
+ __mktime_internal. */
+static time_t localtime_offset;
+
+/* Convert *TP to a time_t value. */
+time_t
+mktime (struct tm *tp)
+{
+#ifdef _LIBC
+ /* POSIX.1 8.1.1 requires that whenever mktime() is called, the
+ time zone names contained in the external variable 'tzname' shall
+ be set as if the tzset() function had been called. */
+ __tzset ();
+#endif
+
+ return __mktime_internal (tp, __localtime_r, &localtime_offset);
+}
+
+#ifdef weak_alias
+weak_alias (mktime, timelocal)
+#endif
+
+#ifdef _LIBC
+libc_hidden_def (mktime)
+libc_hidden_weak (timelocal)
+#endif
+
+#if DEBUG
+
+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)
+ | isdst_differ (a->tm_isdst, b->tm_isdst));
+}
+
+static void
+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);
+ else
+ printf ("0");
+}
+
+static int
+check_result (time_t tk, struct tm tmk, time_t tl, const struct tm *lt)
+{
+ if (tk != tl || !lt || not_equal_tm (&tmk, lt))
+ {
+ printf ("mktime (");
+ print_tm (lt);
+ printf (")\nyields (");
+ print_tm (&tmk);
+ printf (") == %ld, should be %ld\n", (long int) tk, (long int) tl);
+ return 1;
+ }
+
+ return 0;
+}
+
+int
+main (int argc, char **argv)
+{
+ int status = 0;
+ struct tm tm, tmk, tml;
+ struct tm *lt;
+ time_t tk, tl, tl1;
+ char trailer;
+
+ if ((argc == 3 || argc == 4)
+ && (sscanf (argv[1], "%d-%d-%d%c",
+ &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_year -= TM_YEAR_BASE;
+ tm.tm_mon--;
+ tm.tm_isdst = argc == 3 ? -1 : atoi (argv[3]);
+ tmk = tm;
+ tl = mktime (&tmk);
+ lt = localtime (&tl);
+ if (lt)
+ {
+ tml = *lt;
+ lt = &tml;
+ }
+ printf ("mktime returns %ld == ", (long int) tl);
+ print_tm (&tmk);
+ printf ("\n");
+ status = check_result (tl, tmk, tl, lt);
+ }
+ else if (argc == 4 || (argc == 5 && strcmp (argv[4], "-") == 0))
+ {
+ time_t from = atol (argv[1]);
+ time_t by = atol (argv[2]);
+ 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;
+ }
+ 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;
+ }
+ }
+ 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]);
+
+ return status;
+}
+
+#endif /* DEBUG */
+
+/*
+Local Variables:
+compile-command: "gcc -DDEBUG -I. -Wall -W -O2 -g mktime.c -o mktime"
+End:
+*/
diff --git a/gnu/modechange.c b/gnu/modechange.c
new file mode 100644
index 00000000..d82dbb35
--- /dev/null
+++ b/gnu/modechange.c
@@ -0,0 +1,387 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* modechange.c -- file mode manipulation
+
+ Copyright (C) 1989-1990, 1997-1999, 2001, 2003-2006, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 MacKenzie <djm@ai.mit.edu> */
+
+/* The ASCII mode string is compiled into an array of 'struct
+ modechange', which can then be applied to each file to be changed.
+ We do this instead of re-parsing the ASCII string for each file
+ because the compiled form requires less computation to use; when
+ changing the mode of many files, this probably results in a
+ performance gain. */
+
+#include <config.h>
+
+#include "modechange.h"
+#include <sys/stat.h>
+#include "stat-macros.h"
+#include "xalloc.h"
+#include <stdlib.h>
+
+/* The traditional octal values corresponding to each mode bit. */
+#define SUID 04000
+#define SGID 02000
+#define SVTX 01000
+#define RUSR 00400
+#define WUSR 00200
+#define XUSR 00100
+#define RGRP 00040
+#define WGRP 00020
+#define XGRP 00010
+#define ROTH 00004
+#define WOTH 00002
+#define XOTH 00001
+#define ALLM 07777 /* all octal mode bits */
+
+/* Convert OCTAL, which uses one of the traditional octal values, to
+ an internal mode_t value. */
+static mode_t
+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)));
+}
+
+/* Special operations flags. */
+enum
+ {
+ /* For the sentinel at the end of the mode changes array. */
+ MODE_DONE,
+
+ /* The typical case. */
+ MODE_ORDINARY_CHANGE,
+
+ /* In addition to the typical case, affect the execute bits if at
+ least one execute bit is set already, or if the file is a
+ directory. */
+ MODE_X_IF_ANY_X,
+
+ /* Instead of the typical case, copy some existing permissions for
+ u, g, or o onto the other two. Which of u, g, or o is copied
+ is determined by which bits are set in the 'value' field. */
+ MODE_COPY_EXISTING
+ };
+
+/* 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. */
+};
+
+/* Return a mode_change array with the specified "=ddd"-style
+ mode change operation, where NEW_MODE is "ddd" and MENTIONED
+ contains the bits explicitly mentioned in the mode are MENTIONED. */
+
+static struct mode_change *
+make_node_op_equals (mode_t new_mode, mode_t mentioned)
+{
+ struct mode_change *p = xmalloc (2 * sizeof *p);
+ p->op = '=';
+ p->flag = MODE_ORDINARY_CHANGE;
+ p->affected = CHMOD_MODE_BITS;
+ p->value = new_mode;
+ p->mentioned = mentioned;
+ p[1].flag = MODE_DONE;
+ return p;
+}
+
+/* Return a pointer to an array of file mode change operations created from
+ MODE_STRING, an ASCII string that contains either an octal number
+ specifying an absolute mode, or symbolic mode change operations with
+ the form:
+ [ugoa...][[+-=][rwxXstugo...]...][,...]
+
+ Return NULL if 'mode_string' does not contain a valid
+ representation of file mode change operations. */
+
+struct mode_change *
+mode_compile (char const *mode_string)
+{
+ /* The array of mode-change directives to be returned. */
+ struct mode_change *mc;
+ size_t used = 0;
+
+ if ('0' <= *mode_string && *mode_string < '8')
+ {
+ unsigned int octal_mode = 0;
+ mode_t mode;
+ mode_t mentioned;
+
+ do
+ {
+ 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;
+
+ mode = octal_to_mode (octal_mode);
+ mentioned = (mode & (S_ISUID | S_ISGID)) | S_ISVTX | S_IRWXUGO;
+ return make_node_op_equals (mode, mentioned);
+ }
+
+ /* Allocate enough space to hold the result. */
+ {
+ size_t needed = 1;
+ char const *p;
+ for (p = mode_string; *p; p++)
+ needed += (*p == '=' || *p == '+' || *p == '-');
+ mc = xnmalloc (needed, sizeof *mc);
+ }
+
+ /* One loop iteration for each '[ugoa]*([-+=]([rwxXst]*|[ugo]))+'. */
+ for (;; mode_string++)
+ {
+ /* Which bits in the mode are operated on. */
+ mode_t affected = 0;
+
+ /* 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;
+ }
+ 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);
+ }
+ while (*mode_string == '=' || *mode_string == '+'
+ || *mode_string == '-');
+
+ if (*mode_string != ',')
+ break;
+ }
+
+ if (*mode_string == 0)
+ {
+ mc[used].flag = MODE_DONE;
+ return mc;
+ }
+
+invalid:
+ free (mc);
+ return NULL;
+}
+
+/* Return a file mode change operation that sets permissions to match those
+ of REF_FILE. Return NULL (setting errno) if REF_FILE can't be accessed. */
+
+struct mode_change *
+mode_create_from_ref (const char *ref_file)
+{
+ struct stat ref_stats;
+
+ if (stat (ref_file, &ref_stats) != 0)
+ return NULL;
+ return make_node_op_equals (ref_stats.st_mode, CHMOD_MODE_BITS);
+}
+
+/* Return the file mode bits of OLDMODE (which is the mode of a
+ directory if DIR), assuming the umask is UMASK_VALUE, adjusted as
+ indicated by the list of change operations CHANGES. If DIR, the
+ type 'X' change affects the returned value even if no execute bits
+ were set in OLDMODE, and set user and group ID bits are preserved
+ unless CHANGES mentioned them. If PMODE_BITS is not null, store into
+ *PMODE_BITS a mask denoting file mode bits that are affected by
+ CHANGES.
+
+ The returned value and *PMODE_BITS contain only file mode bits.
+ For example, they have the S_IFMT bits cleared on a standard
+ Unix-like host. */
+
+mode_t
+mode_adjust (mode_t oldmode, bool dir, mode_t umask_value,
+ struct mode_change const *changes, mode_t *pmode_bits)
+{
+ /* The adjusted mode. */
+ mode_t newmode = oldmode & CHMOD_MODE_BITS;
+
+ /* File mode bits that CHANGES cares about. */
+ mode_t mode_bits = 0;
+
+ for (; changes->flag != MODE_DONE; changes++)
+ {
+ mode_t affected = changes->affected;
+ mode_t omit_change =
+ (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;
+ }
+
+ /* If WHO was specified, limit the change to the affected bits.
+ 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;
+ }
+ }
+
+ if (pmode_bits)
+ *pmode_bits = mode_bits;
+ return newmode;
+}
diff --git a/gnu/modechange.h b/gnu/modechange.h
new file mode 100644
index 00000000..5f0c04e9
--- /dev/null
+++ b/gnu/modechange.h
@@ -0,0 +1,32 @@
+/* -*- 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-2006, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 ! defined MODECHANGE_H_
+# define MODECHANGE_H_
+
+# include <stdbool.h>
+# include <sys/types.h>
+
+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 *);
+
+#endif
diff --git a/gnu/msvc-inval.c b/gnu/msvc-inval.c
new file mode 100644
index 00000000..6dd1f995
--- /dev/null
+++ b/gnu/msvc-inval.c
@@ -0,0 +1,132 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Invalid parameter handler for MSVC runtime libraries.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#include "msvc-inval.h"
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING)
+
+/* Get _invalid_parameter_handler type and _set_invalid_parameter_handler
+ declaration. */
+# include <stdlib.h>
+
+# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+
+static void cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+ const wchar_t *function,
+ const wchar_t *file,
+ unsigned int line,
+ uintptr_t dummy)
+{
+}
+
+# else
+
+/* Get declarations of the native Windows API functions. */
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+
+# if defined _MSC_VER
+
+static void cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+ const wchar_t *function,
+ const wchar_t *file,
+ unsigned int line,
+ uintptr_t dummy)
+{
+ RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL);
+}
+
+# else
+
+/* An index to thread-local storage. */
+static DWORD tls_index;
+static int tls_initialized /* = 0 */;
+
+/* Used as a fallback only. */
+static struct gl_msvc_inval_per_thread not_per_thread;
+
+struct gl_msvc_inval_per_thread *
+gl_msvc_inval_current (void)
+{
+ if (!tls_initialized)
+ {
+ tls_index = TlsAlloc ();
+ tls_initialized = 1;
+ }
+ if (tls_index == TLS_OUT_OF_INDEXES)
+ /* TlsAlloc had failed. */
+ return &not_per_thread;
+ else
+ {
+ struct gl_msvc_inval_per_thread *pointer =
+ (struct gl_msvc_inval_per_thread *) TlsGetValue (tls_index);
+ if (pointer == NULL)
+ {
+ /* First call. Allocate a new 'struct gl_msvc_inval_per_thread'. */
+ pointer =
+ (struct gl_msvc_inval_per_thread *)
+ malloc (sizeof (struct gl_msvc_inval_per_thread));
+ if (pointer == NULL)
+ /* Could not allocate memory. Use the global storage. */
+ pointer = &not_per_thread;
+ TlsSetValue (tls_index, pointer);
+ }
+ return pointer;
+ }
+}
+
+static void cdecl
+gl_msvc_invalid_parameter_handler (const wchar_t *expression,
+ const wchar_t *function,
+ const wchar_t *file,
+ unsigned int line,
+ uintptr_t dummy)
+{
+ struct gl_msvc_inval_per_thread *current = gl_msvc_inval_current ();
+ if (current->restart_valid)
+ longjmp (current->restart, 1);
+ else
+ /* An invalid parameter notification from outside the gnulib code.
+ Give the caller a chance to intervene. */
+ RaiseException (STATUS_GNULIB_INVALID_PARAMETER, 0, 0, NULL);
+}
+
+# endif
+
+# endif
+
+static int gl_msvc_inval_initialized /* = 0 */;
+
+void
+gl_msvc_inval_ensure_handler (void)
+{
+ if (gl_msvc_inval_initialized == 0)
+ {
+ _set_invalid_parameter_handler (gl_msvc_invalid_parameter_handler);
+ gl_msvc_inval_initialized = 1;
+ }
+}
+
+#endif
diff --git a/gnu/msvc-inval.h b/gnu/msvc-inval.h
new file mode 100644
index 00000000..70037196
--- /dev/null
+++ b/gnu/msvc-inval.h
@@ -0,0 +1,225 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Invalid parameter handler for MSVC runtime libraries.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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 _MSVC_INVAL_H
+#define _MSVC_INVAL_H
+
+/* With MSVC runtime libraries with the "invalid parameter handler" concept,
+ functions like fprintf(), dup2(), or close() crash when the caller passes
+ an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF)
+ instead.
+ This file defines macros that turn such an invalid parameter notification
+ into a non-local exit. An error code can then be produced at the target
+ of this exit. You can thus write code like
+
+ TRY_MSVC_INVAL
+ {
+ <Code that can trigger an invalid parameter notification
+ but does not do 'return', 'break', 'continue', nor 'goto'.>
+ }
+ CATCH_MSVC_INVAL
+ {
+ <Code that handles an invalid parameter notification
+ but does not do 'return', 'break', 'continue', nor 'goto'.>
+ }
+ DONE_MSVC_INVAL;
+
+ This entire block expands to a single statement.
+
+ The handling of invalid parameters can be done in three ways:
+
+ * The default way, which is reasonable for programs (not libraries):
+ AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [DEFAULT_HANDLING])
+
+ * The way for libraries that make "hairy" calls (like close(-1), or
+ fclose(fp) where fileno(fp) is closed, or simply getdtablesize()):
+ AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [HAIRY_LIBRARY_HANDLING])
+
+ * The way for libraries that make no "hairy" calls:
+ AC_DEFINE([MSVC_INVALID_PARAMETER_HANDLING], [SANE_LIBRARY_HANDLING])
+ */
+
+#define DEFAULT_HANDLING 0
+#define HAIRY_LIBRARY_HANDLING 1
+#define SANE_LIBRARY_HANDLING 2
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER \
+ && !(MSVC_INVALID_PARAMETER_HANDLING == SANE_LIBRARY_HANDLING)
+/* A native Windows platform with the "invalid parameter handler" concept,
+ and either DEFAULT_HANDLING or HAIRY_LIBRARY_HANDLING. */
+
+# if MSVC_INVALID_PARAMETER_HANDLING == DEFAULT_HANDLING
+/* Default handling. */
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+/* Ensure that the invalid parameter handler in installed that just returns.
+ Because we assume no other part of the program installs a different
+ invalid parameter handler, this solution is multithread-safe. */
+extern void gl_msvc_inval_ensure_handler (void);
+
+# ifdef __cplusplus
+}
+# endif
+
+# define TRY_MSVC_INVAL \
+ do \
+ { \
+ gl_msvc_inval_ensure_handler (); \
+ if (1)
+# define CATCH_MSVC_INVAL \
+ else
+# define DONE_MSVC_INVAL \
+ } \
+ while (0)
+
+# else
+/* Handling for hairy libraries. */
+
+# include <excpt.h>
+
+/* Gnulib can define its own status codes, as described in the page
+ "Raising Software Exceptions" on microsoft.com
+ <http://msdn.microsoft.com/en-us/library/het71c37.aspx>.
+ Our status codes are composed of
+ - 0xE0000000, mandatory for all user-defined status codes,
+ - 0x474E550, a API identifier ("GNU"),
+ - 0, 1, 2, ..., used to distinguish different status codes from the
+ same API. */
+# define STATUS_GNULIB_INVALID_PARAMETER (0xE0000000 + 0x474E550 + 0)
+
+# if defined _MSC_VER
+/* A compiler that supports __try/__except, as described in the page
+ "try-except statement" on microsoft.com
+ <http://msdn.microsoft.com/en-us/library/s58ftw19.aspx>.
+ With __try/__except, we can use the multithread-safe exception handling. */
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+/* Ensure that the invalid parameter handler in installed that raises a
+ software exception with code STATUS_GNULIB_INVALID_PARAMETER.
+ Because we assume no other part of the program installs a different
+ invalid parameter handler, this solution is multithread-safe. */
+extern void gl_msvc_inval_ensure_handler (void);
+
+# ifdef __cplusplus
+}
+# endif
+
+# define TRY_MSVC_INVAL \
+ do \
+ { \
+ gl_msvc_inval_ensure_handler (); \
+ __try
+# define CATCH_MSVC_INVAL \
+ __except (GetExceptionCode () == STATUS_GNULIB_INVALID_PARAMETER \
+ ? EXCEPTION_EXECUTE_HANDLER \
+ : EXCEPTION_CONTINUE_SEARCH)
+# define DONE_MSVC_INVAL \
+ } \
+ while (0)
+
+# else
+/* Any compiler.
+ We can only use setjmp/longjmp. */
+
+# include <setjmp.h>
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+struct gl_msvc_inval_per_thread
+{
+ /* The restart that will resume execution at the code between
+ CATCH_MSVC_INVAL and DONE_MSVC_INVAL. It is enabled only between
+ TRY_MSVC_INVAL and CATCH_MSVC_INVAL. */
+ jmp_buf restart;
+
+ /* Tells whether the contents of restart is valid. */
+ int restart_valid;
+};
+
+/* Ensure that the invalid parameter handler in installed that passes
+ control to the gl_msvc_inval_restart if it is valid, or raises a
+ software exception with code STATUS_GNULIB_INVALID_PARAMETER otherwise.
+ Because we assume no other part of the program installs a different
+ invalid parameter handler, this solution is multithread-safe. */
+extern void gl_msvc_inval_ensure_handler (void);
+
+/* Return a pointer to the per-thread data for the current thread. */
+extern struct gl_msvc_inval_per_thread *gl_msvc_inval_current (void);
+
+# ifdef __cplusplus
+}
+# endif
+
+# define TRY_MSVC_INVAL \
+ do \
+ { \
+ struct gl_msvc_inval_per_thread *msvc_inval_current; \
+ gl_msvc_inval_ensure_handler (); \
+ msvc_inval_current = gl_msvc_inval_current (); \
+ /* First, initialize gl_msvc_inval_restart. */ \
+ if (setjmp (msvc_inval_current->restart) == 0) \
+ { \
+ /* Then, mark it as valid. */ \
+ msvc_inval_current->restart_valid = 1;
+# define CATCH_MSVC_INVAL \
+ /* Execution completed. \
+ Mark gl_msvc_inval_restart as invalid. */ \
+ msvc_inval_current->restart_valid = 0; \
+ } \
+ else \
+ { \
+ /* Execution triggered an invalid parameter notification. \
+ Mark gl_msvc_inval_restart as invalid. */ \
+ msvc_inval_current->restart_valid = 0;
+# define DONE_MSVC_INVAL \
+ } \
+ } \
+ while (0)
+
+# endif
+
+# endif
+
+#else
+/* A platform that does not need to the invalid parameter handler,
+ or when SANE_LIBRARY_HANDLING is desired. */
+
+/* The braces here avoid GCC warnings like
+ "warning: suggest explicit braces to avoid ambiguous 'else'". */
+# define TRY_MSVC_INVAL \
+ do \
+ { \
+ if (1)
+# define CATCH_MSVC_INVAL \
+ else
+# define DONE_MSVC_INVAL \
+ } \
+ while (0)
+
+#endif
+
+#endif /* _MSVC_INVAL_H */
diff --git a/gnu/msvc-nothrow.c b/gnu/msvc-nothrow.c
new file mode 100644
index 00000000..2a4fcc28
--- /dev/null
+++ b/gnu/msvc-nothrow.c
@@ -0,0 +1,52 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Wrappers that don't throw invalid parameter notifications
+ with MSVC runtime libraries.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#include "msvc-nothrow.h"
+
+/* Get declarations of the native Windows API functions. */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+
+#include "msvc-inval.h"
+
+#undef _get_osfhandle
+
+#if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+intptr_t
+_gl_nothrow_get_osfhandle (int fd)
+{
+ intptr_t result;
+
+ TRY_MSVC_INVAL
+ {
+ result = _get_osfhandle (fd);
+ }
+ CATCH_MSVC_INVAL
+ {
+ result = (intptr_t) INVALID_HANDLE_VALUE;
+ }
+ DONE_MSVC_INVAL;
+
+ return result;
+}
+#endif
diff --git a/gnu/msvc-nothrow.h b/gnu/msvc-nothrow.h
new file mode 100644
index 00000000..55150d29
--- /dev/null
+++ b/gnu/msvc-nothrow.h
@@ -0,0 +1,46 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Wrappers that don't throw invalid parameter notifications
+ with MSVC runtime libraries.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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 _MSVC_NOTHROW_H
+#define _MSVC_NOTHROW_H
+
+/* With MSVC runtime libraries with the "invalid parameter handler" concept,
+ functions like fprintf(), dup2(), or close() crash when the caller passes
+ an invalid argument. But POSIX wants error codes (such as EINVAL or EBADF)
+ instead.
+ This file defines wrappers that turn such an invalid parameter notification
+ into an error code. */
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+/* Get original declaration of _get_osfhandle. */
+# include <io.h>
+
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+
+/* Override _get_osfhandle. */
+extern intptr_t _gl_nothrow_get_osfhandle (int fd);
+# define _get_osfhandle _gl_nothrow_get_osfhandle
+
+# endif
+
+#endif
+
+#endif /* _MSVC_NOTHROW_H */
diff --git a/gnu/nl_langinfo.c b/gnu/nl_langinfo.c
new file mode 100644
index 00000000..7dd9a6d5
--- /dev/null
+++ b/gnu/nl_langinfo.c
@@ -0,0 +1,273 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* nl_langinfo() replacement: query locale dependent information.
+
+ Copyright (C) 2007-2012 Free Software Foundation, Inc.
+
+ This 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_T_FMT_AMPM
+ case T_FMT_AMPM:
+ return "%I:%M:%S %p";
+# 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
+# if GNULIB_defined_YESEXPR || !FUNC_NL_LANGINFO_YESEXPR_WORKS
+ case YESEXPR:
+ return "^[yY]";
+ case NOEXPR:
+ return "^[nN]";
+# 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];
+
+ /* The Windows API 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/gnu/obstack.c b/gnu/obstack.c
new file mode 100644
index 00000000..95d88fb4
--- /dev/null
+++ b/gnu/obstack.c
@@ -0,0 +1,422 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* obstack.c - subroutines used implicitly by object stack macros
+
+ Copyright (C) 1988-1994, 1996-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+#ifdef _LIBC
+# include <obstack.h>
+# include <shlib-compat.h>
+#else
+# include <config.h>
+# include "obstack.h"
+#endif
+
+/* NOTE BEFORE MODIFYING THIS FILE: This version number must be
+ incremented whenever callers compiled using an old obstack.h can no
+ longer properly call the functions in this obstack.c. */
+#define OBSTACK_INTERFACE_VERSION 1
+
+/* Comment out all this code if we are using the GNU C Library, and are not
+ actually compiling the library itself, and the installed library
+ supports the same library interface we do. This code is part of the GNU
+ C Library, but also included in many other GNU distributions. Compiling
+ and linking in this code is a waste when using the GNU C library
+ (especially if it is a shared library). Rather than having every GNU
+ 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__. */
+#if !defined _LIBC && defined __GNU_LIBRARY__ && __GNU_LIBRARY__ > 1
+# include <gnu-versions.h>
+# if _GNU_OBSTACK_INTERFACE_VERSION == OBSTACK_INTERFACE_VERSION
+# define ELIDE_CODE
+# endif
+#endif
+
+#include <stddef.h>
+
+#ifndef ELIDE_CODE
+
+# include <stdint.h>
+
+/* Determine default alignment. */
+union fooround
+{
+ uintmax_t i;
+ long double d;
+ void *p;
+};
+struct fooalign
+{
+ char c;
+ union fooround u;
+};
+/* If malloc were really smart, it would round addresses to DEFAULT_ALIGNMENT.
+ But in fact it might be less smart and round addresses to as much as
+ DEFAULT_ROUNDING. So we prepare for it to do that. */
+enum
+ {
+ DEFAULT_ALIGNMENT = offsetof (struct fooalign, u),
+ DEFAULT_ROUNDING = sizeof (union fooround)
+ };
+
+/* When we copy a long block of data, this is the unit to do it with.
+ On some machines, copying successive ints does not work;
+ in such a case, redefine COPYING_UNIT to 'long' (if that works)
+ or 'char' as a last resort. */
+# ifndef COPYING_UNIT
+# define COPYING_UNIT int
+# endif
+
+
+/* The functions allocating more room by calling 'obstack_chunk_alloc'
+ jump to the handler pointed to by 'obstack_alloc_failed_handler'.
+ This can be set to a user defined function which should either
+ abort gracefully or use longjump - but shouldn't return. This
+ variable by default points to the internal function
+ 'print_and_abort'. */
+static _Noreturn void print_and_abort (void);
+void (*obstack_alloc_failed_handler) (void) = print_and_abort;
+
+/* Exit value used when 'print_and_abort' is used. */
+# include <stdlib.h>
+# ifdef _LIBC
+int obstack_exit_failure = EXIT_FAILURE;
+# else
+# include "exitfail.h"
+# define obstack_exit_failure exit_failure
+# endif
+
+# ifdef _LIBC
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
+/* A looong time ago (before 1994, anyway; we're not sure) this global variable
+ was used by non-GNU-C macros to avoid multiple evaluation. The GNU C
+ library still exports it because somebody might use it. */
+struct obstack *_obstack_compat;
+compat_symbol (libc, _obstack_compat, _obstack, GLIBC_2_0);
+# endif
+# endif
+
+/* Define a macro that either calls functions with the traditional malloc/free
+ calling interface, or calls functions with the mmalloc/mfree interface
+ (that adds an extra first argument), based on the state of use_extra_arg.
+ For free, do not use ?:, since some compilers, like the MIPS compilers,
+ do not allow (expr) ? void : void. */
+
+# define CALL_CHUNKFUN(h, size) \
+ (((h) -> use_extra_arg) \
+ ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \
+ : (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size)))
+
+# define CALL_FREEFUN(h, old_chunk) \
+ do { \
+ if ((h) -> use_extra_arg) \
+ (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \
+ else \
+ (*(void (*) (void *)) (h)->freefun) ((old_chunk)); \
+ } while (0)
+
+
+/* Initialize an obstack H for use. Specify chunk size SIZE (0 means default).
+ Objects start on multiples of ALIGNMENT (0 means use default).
+ CHUNKFUN is the function to use to allocate chunks,
+ and FREEFUN the function to free them.
+
+ Return nonzero if successful, calls obstack_alloc_failed_handler if
+ allocation fails. */
+
+int
+_obstack_begin (struct obstack *h,
+ int size, int alignment,
+ void *(*chunkfun) (long),
+ void (*freefun) (void *))
+{
+ register struct _obstack_chunk *chunk; /* points to new chunk */
+
+ if (alignment == 0)
+ alignment = DEFAULT_ALIGNMENT;
+ if (size == 0)
+ /* 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.
+
+ 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));
+ size = 4096 - extra;
+ }
+
+ h->chunkfun = (struct _obstack_chunk * (*)(void *, long)) chunkfun;
+ h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
+ h->chunk_size = size;
+ h->alignment_mask = alignment - 1;
+ h->use_extra_arg = 0;
+
+ chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
+ if (!chunk)
+ (*obstack_alloc_failed_handler) ();
+ h->next_free = h->object_base = __PTR_ALIGN ((char *) chunk, chunk->contents,
+ alignment - 1);
+ h->chunk_limit = chunk->limit
+ = (char *) chunk + h->chunk_size;
+ chunk->prev = 0;
+ /* The initial chunk now contains no empty object. */
+ h->maybe_empty_object = 0;
+ h->alloc_failed = 0;
+ return 1;
+}
+
+int
+_obstack_begin_1 (struct obstack *h, int size, int alignment,
+ void *(*chunkfun) (void *, long),
+ void (*freefun) (void *, void *),
+ void *arg)
+{
+ register struct _obstack_chunk *chunk; /* points to new chunk */
+
+ if (alignment == 0)
+ alignment = DEFAULT_ALIGNMENT;
+ if (size == 0)
+ /* 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.
+
+ 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));
+ size = 4096 - extra;
+ }
+
+ h->chunkfun = (struct _obstack_chunk * (*)(void *,long)) chunkfun;
+ h->freefun = (void (*) (void *, struct _obstack_chunk *)) freefun;
+ h->chunk_size = size;
+ h->alignment_mask = alignment - 1;
+ h->extra_arg = arg;
+ h->use_extra_arg = 1;
+
+ chunk = h->chunk = CALL_CHUNKFUN (h, h -> chunk_size);
+ if (!chunk)
+ (*obstack_alloc_failed_handler) ();
+ h->next_free = h->object_base = __PTR_ALIGN ((char *) chunk, chunk->contents,
+ alignment - 1);
+ h->chunk_limit = chunk->limit
+ = (char *) chunk + h->chunk_size;
+ chunk->prev = 0;
+ /* The initial chunk now contains no empty object. */
+ h->maybe_empty_object = 0;
+ h->alloc_failed = 0;
+ return 1;
+}
+
+/* Allocate a new current chunk for the obstack *H
+ on the assumption that LENGTH bytes need to be added
+ to the current object, or a new object of length LENGTH allocated.
+ Copies any partial object from the end of the old chunk
+ to the beginning of the new one. */
+
+void
+_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 obj_size = h->next_free - h->object_base;
+ register long i;
+ long already;
+ char *object_base;
+
+ /* Compute size for new chunk. */
+ new_size = (obj_size + length) + (obj_size >> 3) + h->alignment_mask + 100;
+ if (new_size < h->chunk_size)
+ new_size = h->chunk_size;
+
+ /* Allocate and initialize the new chunk. */
+ new_chunk = CALL_CHUNKFUN (h, new_size);
+ if (!new_chunk)
+ (*obstack_alloc_failed_handler) ();
+ h->chunk = new_chunk;
+ new_chunk->prev = old_chunk;
+ new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size;
+
+ /* Compute an aligned object_base in the new chunk */
+ object_base =
+ __PTR_ALIGN ((char *) new_chunk, new_chunk->contents, h->alignment_mask);
+
+ /* Move the existing object to the new chunk.
+ Word at a time is fast and is safe if the object
+ is sufficiently aligned. */
+ 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];
+ /* 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. */
+ already = obj_size / sizeof (COPYING_UNIT) * sizeof (COPYING_UNIT);
+ }
+ else
+ already = 0;
+ /* Copy remaining bytes one by one. */
+ for (i = already; i < obj_size; i++)
+ object_base[i] = h->object_base[i];
+
+ /* If the object just copied was the only data in OLD_CHUNK,
+ free that chunk and remove it from the chain.
+ 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)))
+ {
+ new_chunk->prev = old_chunk->prev;
+ CALL_FREEFUN (h, old_chunk);
+ }
+
+ h->object_base = object_base;
+ h->next_free = h->object_base + obj_size;
+ /* The new chunk certainly contains no empty object yet. */
+ h->maybe_empty_object = 0;
+}
+# ifdef _LIBC
+libc_hidden_def (_obstack_newchunk)
+# endif
+
+/* Return nonzero if object OBJ has been allocated from obstack H.
+ This is here for debugging.
+ If you use it in a program, you are probably losing. */
+
+/* Suppress -Wmissing-prototypes warning. We don't want to declare this in
+ obstack.h because it is just for debugging. */
+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 */
+
+ lp = (h)->chunk;
+ /* We use >= rather than > since the object cannot be exactly at
+ the beginning of the chunk but might be an empty object exactly
+ at the end of an adjacent chunk. */
+ while (lp != 0 && ((void *) lp >= obj || (void *) (lp)->limit < obj))
+ {
+ plp = lp->prev;
+ lp = plp;
+ }
+ return lp != 0;
+}
+
+/* Free objects in obstack H, including OBJ and everything allocate
+ more recently than OBJ. If OBJ is zero, free everything in H. */
+
+# undef obstack_free
+
+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 */
+
+ lp = h->chunk;
+ /* We use >= because there cannot be an object at the beginning of a chunk.
+ But there can be an empty object at that address
+ at the end of another chunk. */
+ while (lp != 0 && ((void *) lp >= obj || (void *) (lp)->limit < obj))
+ {
+ plp = lp->prev;
+ 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. */
+ h->maybe_empty_object = 1;
+ }
+ if (lp)
+ {
+ h->object_base = h->next_free = (char *) (obj);
+ h->chunk_limit = lp->limit;
+ h->chunk = lp;
+ }
+ else if (obj != 0)
+ /* obj is not in any of the chunks! */
+ abort ();
+}
+
+# ifdef _LIBC
+/* Older versions of libc used a function _obstack_free intended to be
+ called by non-GCC compilers. */
+strong_alias (obstack_free, _obstack_free)
+# endif
+
+int
+_obstack_memory_used (struct obstack *h)
+{
+ register struct _obstack_chunk* lp;
+ register int nbytes = 0;
+
+ for (lp = h->chunk; lp != 0; lp = lp->prev)
+ {
+ nbytes += lp->limit - (char *) lp;
+ }
+ return nbytes;
+}
+
+/* Define the error handler. */
+# ifdef _LIBC
+# include <libintl.h>
+# else
+# include "gettext.h"
+# endif
+# ifndef _
+# define _(msgid) gettext (msgid)
+# endif
+
+# ifdef _LIBC
+# include <libio/iolibio.h>
+# endif
+
+static _Noreturn void
+print_and_abort (void)
+{
+ /* Don't change any of these strings. Yes, it would be possible to add
+ the newline to the string and use fputs or so. But this must not
+ happen because the "memory exhausted" message appears in other places
+ like this and the translation should be reused instead of creating
+ a very similar string which requires a separate translation. */
+# ifdef _LIBC
+ (void) __fxprintf (NULL, "%s\n", _("memory exhausted"));
+# else
+ fprintf (stderr, "%s\n", _("memory exhausted"));
+# endif
+ exit (obstack_exit_failure);
+}
+
+#endif /* !ELIDE_CODE */
diff --git a/gnu/obstack.h b/gnu/obstack.h
new file mode 100644
index 00000000..40938857
--- /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-2012 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
+
+/* 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>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+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 00000000..8190d7a7
--- /dev/null
+++ b/gnu/offtostr.c
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#define anytostr offtostr
+#define inttype off_t
+#include "anytostr.c"
diff --git a/gnu/open.c b/gnu/open.c
new file mode 100644
index 00000000..387128bf
--- /dev/null
+++ b/gnu/open.c
@@ -0,0 +1,183 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Open a descriptor to a file.
+ Copyright (C) 2007-2012 Free Software Foundation, Inc.
+
+ This 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 Bruno Haible <bruno@clisp.org>, 2007. */
+
+/* If the user's config.h happens to include <fcntl.h>, let it include only
+ the system's <fcntl.h> here, so that orig_open doesn't recurse to
+ rpl_open. */
+#define __need_system_fcntl_h
+#include <config.h>
+
+/* Get the original definition of open. It might be defined as a macro. */
+#include <fcntl.h>
+#include <sys/types.h>
+#undef __need_system_fcntl_h
+
+static inline int
+orig_open (const char *filename, int flags, mode_t mode)
+{
+ return open (filename, flags, mode);
+}
+
+/* Specification. */
+/* Write "fcntl.h" here, not <fcntl.h>, otherwise OSF/1 5.1 DTK cc eliminates
+ this include because of the preliminary #include <fcntl.h> above. */
+#include "fcntl.h"
+
+#include <errno.h>
+#include <stdarg.h>
+#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, ...)
+{
+ 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 GNULIB_defined_O_NONBLOCK
+ /* The only known platform that lacks O_NONBLOCK is mingw, but it
+ also lacks named pipes and Unix sockets, which are the only two
+ file types that require non-blocking handling in open().
+ Therefore, it is safe to ignore O_NONBLOCK here. It is handy
+ that mingw also lacks openat(), so that is also covered here. */
+ flags &= ~O_NONBLOCK;
+#endif
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ if (strcmp (filename, "/dev/null") == 0)
+ filename = "NUL";
+#endif
+
+#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 = 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
+ || (O_SEARCH != O_RDONLY && (flags & O_ACCMODE) == O_SEARCH)))
+ {
+ 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.
+ 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
+
+#if REPLACE_FCHDIR
+ if (!REPLACE_OPEN_DIRECTORY && 0 <= fd)
+ fd = _gl_register_fd (fd, filename);
+#endif
+
+ return fd;
+}
diff --git a/gnu/openat-die.c b/gnu/openat-die.c
new file mode 100644
index 00000000..1be01493
--- /dev/null
+++ b/gnu/openat-die.c
@@ -0,0 +1,64 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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 "openat.h"
+
+#include <stdlib.h>
+
+#ifndef GNULIB_LIBPOSIX
+# include "error.h"
+#endif
+
+#include "exitfail.h"
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+void
+openat_save_fail (int errnum)
+{
+#ifndef GNULIB_LIBPOSIX
+ error (exit_failure, errnum,
+ _("unable to record current working directory"));
+#endif
+ /* _Noreturn cannot be applied to error, since it returns
+ when its first argument is 0. To help compilers understand that this
+ function does not return, call abort. Also, the abort is a
+ safety feature if exit_failure is 0 (which shouldn't happen). */
+ 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)
+{
+#ifndef GNULIB_LIBPOSIX
+ error (exit_failure, errnum,
+ _("failed to return to initial working directory"));
+#endif
+
+ /* As above. */
+ abort ();
+}
diff --git a/gnu/openat-priv.h b/gnu/openat-priv.h
new file mode 100644
index 00000000..e7e2e8e8
--- /dev/null
+++ b/gnu/openat-priv.h
@@ -0,0 +1,66 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Internals for openat-like functions.
+
+ Copyright (C) 2005-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 _GL_HEADER_OPENAT_PRIV
+#define _GL_HEADER_OPENAT_PRIV
+
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+
+/* Maximum number of bytes that it is safe to allocate as a single
+ array on the stack, and that is known as a compile-time constant.
+ The assumption is that we'll touch the array very quickly, or a
+ temporary very near the array, provoking an out-of-memory trap. On
+ some operating systems, there is only one guard page for the stack,
+ and a page size can be as small as 4096 bytes. Subtract 64 in the
+ hope that this will let the compiler touch a nearby temporary and
+ provoke a trap. */
+#define SAFER_ALLOCA_MAX (4096 - 64)
+
+#define SAFER_ALLOCA(m) ((m) < SAFER_ALLOCA_MAX ? (m) : SAFER_ALLOCA_MAX)
+
+#if defined PATH_MAX
+# define OPENAT_BUFFER_SIZE SAFER_ALLOCA (PATH_MAX)
+#elif defined _XOPEN_PATH_MAX
+# define OPENAT_BUFFER_SIZE SAFER_ALLOCA (_XOPEN_PATH_MAX)
+#else
+# define OPENAT_BUFFER_SIZE SAFER_ALLOCA (1024)
+#endif
+
+char *openat_proc_name (char buf[OPENAT_BUFFER_SIZE], int fd, char const *file);
+
+/* 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 */ \
+ || (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/gnu/openat-proc.c b/gnu/openat-proc.c
new file mode 100644
index 00000000..0c5a66a6
--- /dev/null
+++ b/gnu/openat-proc.c
@@ -0,0 +1,112 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 "openat-priv.h"
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "intprops.h"
+
+/* The results of open() in this file are not used with fchdir,
+ 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
+
+#define PROC_SELF_FD_FORMAT "/proc/self/fd/%d/%s"
+
+#define PROC_SELF_FD_NAME_SIZE_BOUND(len) \
+ (sizeof PROC_SELF_FD_FORMAT - sizeof "%d%s" \
+ + INT_STRLEN_BOUND (int) + (len) + 1)
+
+
+/* Set BUF to the expansion of PROC_SELF_FD_FORMAT, using FD and FILE
+ respectively for %d and %s. If successful, return BUF if the
+ result fits in BUF, dynamically allocated memory otherwise. But
+ return NULL if /proc is not reliable, either because the operating
+ system support is lacking or because memory is low. */
+char *
+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. */
+
+ int proc_self_fd = open ("/proc/self/fd",
+ O_SEARCH | O_DIRECTORY | O_NOCTTY | O_NONBLOCK);
+ if (proc_self_fd < 0)
+ proc_status = -1;
+ else
+ {
+ /* Detect whether /proc/self/fd/%i/../fd exists, where %i is the
+ number of a file descriptor open on /proc/self/fd. On Linux,
+ that name resolves to /proc/self/fd, which was opened above.
+ However, on Solaris, it may resolve to /proc/self/fd/fd, which
+ cannot exist, since all names in /proc/self/fd are numeric. */
+ char dotdot_buf[PROC_SELF_FD_NAME_SIZE_BOUND (sizeof "../fd" - 1)];
+ sprintf (dotdot_buf, PROC_SELF_FD_FORMAT, proc_self_fd, "../fd");
+ proc_status = access (dotdot_buf, F_OK) ? -1 : 1;
+ close (proc_self_fd);
+ }
+ }
+
+ if (proc_status < 0)
+ return NULL;
+ else
+ {
+ size_t bufsize = PROC_SELF_FD_NAME_SIZE_BOUND (strlen (file));
+ char *result = buf;
+ if (OPENAT_BUFFER_SIZE < bufsize)
+ {
+ result = malloc (bufsize);
+ if (! result)
+ return NULL;
+ }
+ sprintf (result, PROC_SELF_FD_FORMAT, fd, file);
+ return result;
+ }
+}
diff --git a/gnu/openat.c b/gnu/openat.c
new file mode 100644
index 00000000..9f046df6
--- /dev/null
+++ b/gnu/openat.c
@@ -0,0 +1,288 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* provide a replacement openat function
+ Copyright (C) 2004-2012 Free Software Foundation, Inc.
+
+ This 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 */
+
+/* If the user's config.h happens to include <fcntl.h>, let it include only
+ the system's <fcntl.h> here, so that orig_openat doesn't recurse to
+ rpl_openat. */
+#define __need_system_fcntl_h
+#include <config.h>
+
+/* Get the original definition of open. It might be defined as a macro. */
+#include <fcntl.h>
+#include <sys/types.h>
+#undef __need_system_fcntl_h
+
+#if HAVE_OPENAT
+static inline int
+orig_openat (int fd, char const *filename, int flags, mode_t mode)
+{
+ return openat (fd, filename, flags, mode);
+}
+#endif
+
+/* Write "fcntl.h" here, not <fcntl.h>, otherwise OSF/1 5.1 DTK cc eliminates
+ this include because of the preliminary #include <fcntl.h> above. */
+#include "fcntl.h"
+
+#include "openat.h"
+
+#include <stdarg.h>
+#include <stdbool.h>
+#include <stddef.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <errno.h>
+
+#if HAVE_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 = orig_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 */
+
+# include "dosname.h" /* solely for definition of IS_ABSOLUTE_FILE_NAME */
+# 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);
+
+ /* 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_SEARCH);
+
+ 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/gnu/openat.h b/gnu/openat.h
new file mode 100644
index 00000000..99355bf6
--- /dev/null
+++ b/gnu/openat.h
@@ -0,0 +1,106 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* provide a replacement openat function
+ Copyright (C) 2004-2006, 2008-2012 Free Software Foundation, Inc.
+
+ This 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 _GL_HEADER_OPENAT
+#define _GL_HEADER_OPENAT
+
+#include <fcntl.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <stdbool.h>
+
+#if !HAVE_OPENAT
+
+int openat_permissive (int fd, char const *file, int flags, mode_t mode,
+ int *cwd_errno);
+bool openat_needs_fchdir (void);
+
+#else
+
+# define openat_permissive(Fd, File, Flags, Mode, Cwd_errno) \
+ openat (Fd, File, Flags, Mode)
+# define openat_needs_fchdir() false
+
+#endif
+
+_Noreturn void openat_restore_fail (int);
+_Noreturn void openat_save_fail (int);
+
+/* Using these function names makes application code
+ slightly more readable than it would be with
+ fchownat (..., 0) or fchownat (..., AT_SYMLINK_NOFOLLOW). */
+
+#if GNULIB_FCHOWNAT
+
+static inline int
+chownat (int fd, char const *file, uid_t owner, gid_t group)
+{
+ return fchownat (fd, file, owner, group, 0);
+}
+
+static inline int
+lchownat (int fd, char const *file, uid_t owner, gid_t group)
+{
+ return fchownat (fd, file, owner, group, AT_SYMLINK_NOFOLLOW);
+}
+
+#endif
+
+#if GNULIB_FCHMODAT
+
+static inline int
+chmodat (int fd, char const *file, mode_t mode)
+{
+ return fchmodat (fd, file, mode, 0);
+}
+
+static inline int
+lchmodat (int fd, char const *file, mode_t mode)
+{
+ return fchmodat (fd, file, mode, AT_SYMLINK_NOFOLLOW);
+}
+
+#endif
+
+#if GNULIB_FSTATAT
+
+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);
+}
+
+#endif
+
+/* 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. Likewise,
+ wrappers are not provided for accessat or euidaccessat, so as to
+ avoid dragging in -lgen on some platforms. */
+
+#endif /* _GL_HEADER_OPENAT */
diff --git a/gnu/opendir-safer.c b/gnu/opendir-safer.c
new file mode 100644
index 00000000..e2590f57
--- /dev/null
+++ b/gnu/opendir-safer.c
@@ -0,0 +1,78 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Invoke opendir, but avoid some glitches.
+
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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);
+ if (f < 0)
+ {
+ e = errno;
+ newdp = NULL;
+ }
+ else
+ {
+ 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/gnu/opendir.c b/gnu/opendir.c
new file mode 100644
index 00000000..b86a5b2c
--- /dev/null
+++ b/gnu/opendir.c
@@ -0,0 +1,150 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Start reading the entries of a directory.
+ Copyright (C) 2006-2012 Free Software Foundation, Inc.
+
+ This 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 <dirent.h>
+
+#include <errno.h>
+#include <stddef.h>
+
+#if HAVE_OPENDIR
+
+/* Override opendir(), to keep track of the open file descriptors.
+ Needed because there is a function dirfd(). */
+
+#else
+
+# include <stdlib.h>
+
+# include "dirent-private.h"
+# include "filename.h"
+
+#endif
+
+#if REPLACE_FCHDIR
+# include <unistd.h>
+#endif
+
+DIR *
+opendir (const char *dir_name)
+{
+#if HAVE_OPENDIR
+# undef opendir
+ DIR *dirp;
+
+ dirp = opendir (dir_name);
+ if (dirp == NULL)
+ return NULL;
+
+#else
+
+ char dir_name_mask[MAX_PATH + 1 + 1 + 1];
+ int status;
+ HANDLE current;
+ WIN32_FIND_DATA entry;
+ struct gl_directory *dirp;
+
+ if (dir_name[0] == '\0')
+ {
+ errno = ENOENT;
+ return NULL;
+ }
+
+ /* Make the dir_name absolute, so that we continue reading the same
+ directory if the current directory changed between this opendir()
+ call and a subsequent rewinddir() call. */
+ if (!GetFullPathName (dir_name, MAX_PATH, dir_name_mask, NULL))
+ {
+ errno = EINVAL;
+ return NULL;
+ }
+
+ /* Append the mask.
+ "*" and "*.*" appear to be equivalent. */
+ {
+ char *p;
+
+ p = dir_name_mask + strlen (dir_name_mask);
+ if (p > dir_name_mask && !ISSLASH (p[-1]))
+ *p++ = '\\';
+ *p++ = '*';
+ *p = '\0';
+ }
+
+ /* Start searching the directory. */
+ status = -1;
+ current = FindFirstFile (dir_name_mask, &entry);
+ if (current == INVALID_HANDLE_VALUE)
+ {
+ switch (GetLastError ())
+ {
+ case ERROR_FILE_NOT_FOUND:
+ status = -2;
+ break;
+ case ERROR_PATH_NOT_FOUND:
+ errno = ENOENT;
+ return NULL;
+ case ERROR_DIRECTORY:
+ errno = ENOTDIR;
+ return NULL;
+ case ERROR_ACCESS_DENIED:
+ errno = EACCES;
+ return NULL;
+ default:
+ errno = EIO;
+ return NULL;
+ }
+ }
+
+ /* Allocate the result. */
+ dirp =
+ (struct gl_directory *)
+ malloc (offsetof (struct gl_directory, dir_name_mask[0])
+ + strlen (dir_name_mask) + 1);
+ if (dirp == NULL)
+ {
+ if (current != INVALID_HANDLE_VALUE)
+ FindClose (current);
+ errno = ENOMEM;
+ return NULL;
+ }
+ dirp->status = status;
+ dirp->current = current;
+ if (status == -1)
+ memcpy (&dirp->entry, &entry, sizeof (WIN32_FIND_DATA));
+ strcpy (dirp->dir_name_mask, dir_name_mask);
+
+#endif
+
+#if REPLACE_FCHDIR
+ {
+ int fd = dirfd (dirp);
+ if (0 <= fd && _gl_register_fd (fd, dir_name) != fd)
+ {
+ int saved_errno = errno;
+ closedir (dirp);
+ errno = saved_errno;
+ return NULL;
+ }
+ }
+#endif
+
+ return dirp;
+}
diff --git a/gnu/parse-datetime.h b/gnu/parse-datetime.h
new file mode 100644
index 00000000..cdf5721e
--- /dev/null
+++ b/gnu/parse-datetime.h
@@ -0,0 +1,24 @@
+/* -*- 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, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 <stdbool.h>
+#include <time.h>
+
+bool parse_datetime (struct timespec *, char const *, struct timespec const *);
diff --git a/gnu/parse-datetime.y b/gnu/parse-datetime.y
new file mode 100644
index 00000000..01d71051
--- /dev/null
+++ b/gnu/parse-datetime.y
@@ -0,0 +1,1617 @@
+%{
+/* Parse a string into an internal time stamp.
+
+ Copyright (C) 1999-2000, 2002-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+/* Originally written by Steven M. Bellovin <smb@research.att.com> while
+ at the University of North Carolina at Chapel Hill. Later tweaked by
+ a couple of people on Usenet. Completely overhauled by Rich $alz
+ <rsalz@bbn.com> and Jim Berets <jberets@bbn.com> in August, 1990.
+
+ Modified by Paul Eggert <eggert@twinsun.com> in August 1999 to do
+ the right thing about local DST. Also modified by Paul Eggert
+ <eggert@cs.ucla.edu> in February 2004 to support
+ nanosecond-resolution time stamps, and in October 2004 to support
+ TZ strings in dates. */
+
+/* FIXME: Check for arithmetic overflow in all cases, not just
+ some of them. */
+
+#include <config.h>
+
+#include "parse-datetime.h"
+
+#include "intprops.h"
+#include "timespec.h"
+#include "verify.h"
+
+/* There's no need to extend the stack, so there's no need to involve
+ alloca. */
+#define YYSTACK_USE_ALLOCA 0
+
+/* Tell Bison how much stack space is needed. 20 should be plenty for
+ this grammar, which is not right recursive. Beware setting it too
+ high, since that might cause problems on machines whose
+ implementations have lame stack-overflow checking. */
+#define YYMAXDEPTH 20
+#define YYINITDEPTH YYMAXDEPTH
+
+/* Since the code of parse-datetime.y is not included in the Emacs executable
+ itself, there is no need to #define static in this file. Even if
+ the code were included in the Emacs executable, it probably
+ wouldn't do any harm to #undef it here; this will only cause
+ problems if we try to write to a static variable, which I don't
+ think this code needs to do. */
+#ifdef emacs
+# undef static
+#endif
+
+#include <c-ctype.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "xalloc.h"
+
+/* Bison's skeleton tests _STDLIB_H, while some stdlib.h headers
+ use _STDLIB_H_ as witness. Map the latter to the one bison uses. */
+/* FIXME: this is temporary. Remove when we have a mechanism to ensure
+ that the version we're using is fixed, too. */
+#ifdef _STDLIB_H_
+# undef _STDLIB_H
+# define _STDLIB_H 1
+#endif
+
+/* ISDIGIT differs from isdigit, as follows:
+ - Its arg may be any int or unsigned int; it need not be an unsigned char
+ or EOF.
+ - It's typically faster.
+ POSIX says that only '0' through '9' are digits. Prefer ISDIGIT to
+ isdigit unless it's important to use the locale's definition
+ of "digit" even when the host does not conform to POSIX. */
+#define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
+
+/* 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
+ INT_BITS is the number of useful bits in an int. GNU code can
+ assume that INT_BITS is at least 32.
+
+ ISO C99 says that A >> B is implementation-defined if A < 0. Some
+ 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) \
+ : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0))
+
+#define EPOCH_YEAR 1970
+#define TM_YEAR_BASE 1900
+
+#define HOUR(x) ((x) * 60)
+
+/* long_time_t is a signed integer type that contains all time_t values. */
+verify (TYPE_IS_INTEGER (time_t));
+#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. */
+typedef struct
+{
+ bool negative;
+ long int value;
+ size_t digits;
+} textint;
+
+/* An entry in the lexical lookup table. */
+typedef struct
+{
+ char const *name;
+ int type;
+ int value;
+} table;
+
+/* Meridian: am, pm, or 24-hour style. */
+enum { MERam, MERpm, MER24 };
+
+enum { BILLION = 1000000000, LOG10_BILLION = 9 };
+
+/* Relative times. */
+typedef struct
+{
+ /* Relative year, month, day, hour, minutes, seconds, and nanoseconds. */
+ long int year;
+ long int month;
+ long int day;
+ long int hour;
+ long int minutes;
+ long_time_t seconds;
+ long int ns;
+} relative_time;
+
+#if HAVE_COMPOUND_LITERALS
+# define RELATIVE_TIME_0 ((relative_time) { 0, 0, 0, 0, 0, 0, 0 })
+#else
+static relative_time const RELATIVE_TIME_0;
+#endif
+
+/* Information passed to and from the parser. */
+typedef struct
+{
+ /* The input string remaining to be parsed. */
+ const char *input;
+
+ /* N, if this is the Nth Tuesday. */
+ long int day_ordinal;
+
+ /* Day of week; Sunday is 0. */
+ int day_number;
+
+ /* tm_isdst flag for the local zone. */
+ int local_isdst;
+
+ /* Time zone, in minutes east of UTC. */
+ long int time_zone;
+
+ /* Style used for time. */
+ int meridian;
+
+ /* Gregorian year, month, day, hour, minutes, seconds, and nanoseconds. */
+ textint year;
+ long int month;
+ long int day;
+ long int hour;
+ long int minutes;
+ struct timespec seconds; /* includes nanoseconds */
+
+ /* Relative year, month, day, hour, minutes, seconds, and nanoseconds. */
+ relative_time rel;
+
+ /* Presence or counts of nonterminals of various flavors parsed so far. */
+ bool timespec_seen;
+ bool rels_seen;
+ size_t dates_seen;
+ size_t days_seen;
+ size_t local_zones_seen;
+ size_t dsts_seen;
+ size_t times_seen;
+ size_t zones_seen;
+
+ /* Table of local time zone abbrevations, terminated by a null entry. */
+ table local_time_zone_table[3];
+} parser_control;
+
+union YYSTYPE;
+static int yylex (union YYSTYPE *, parser_control *);
+static int yyerror (parser_control const *, char const *);
+static long int time_zone_hhmm (parser_control *, textint, long int);
+
+/* Extract into *PC any date and time info from a string of digits
+ of the form e.g., YYYYMMDD, YYMMDD, HHMM, HH (and sometimes YYY,
+ YYYY, ...). */
+static void
+digits_to_date_time (parser_control *pc, textint text_int)
+{
+ if (pc->dates_seen && ! pc->year.digits
+ && ! pc->rels_seen && (pc->times_seen || 2 < text_int.digits))
+ pc->year = 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;
+ }
+ 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;
+ }
+ }
+}
+
+/* Increment PC->rel by FACTOR * REL (FACTOR is 1 or -1). */
+static void
+apply_relative_time (parser_control *pc, relative_time rel, int factor)
+{
+ pc->rel.ns += factor * rel.ns;
+ pc->rel.seconds += factor * rel.seconds;
+ pc->rel.minutes += factor * rel.minutes;
+ pc->rel.hour += factor * rel.hour;
+ pc->rel.day += factor * rel.day;
+ pc->rel.month += factor * rel.month;
+ pc->rel.year += factor * rel.year;
+ pc->rels_seen = true;
+}
+
+/* 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)
+{
+ pc->hour = hour;
+ pc->minutes = minutes;
+ pc->seconds.tv_sec = sec;
+ pc->seconds.tv_nsec = nsec;
+}
+
+%}
+
+/* We want a reentrant parser, even if the TZ manipulation and the calls to
+ localtime and gmtime are not reentrant. */
+%pure-parser
+%parse-param { parser_control *pc }
+%lex-param { parser_control *pc }
+
+/* This grammar has 31 shift/reduce conflicts. */
+%expect 31
+
+%union
+{
+ long int intval;
+ textint textintval;
+ struct timespec timespec;
+ relative_time rel;
+}
+
+%token <intval> tAGO
+%token tDST
+
+%token tYEAR_UNIT tMONTH_UNIT tHOUR_UNIT tMINUTE_UNIT tSEC_UNIT
+%token <intval> tDAY_UNIT tDAY_SHIFT
+
+%token <intval> tDAY tDAYZONE tLOCAL_ZONE tMERIDIAN
+%token <intval> tMONTH tORDINAL tZONE
+
+%token <textintval> tSNUMBER tUNUMBER
+%token <timespec> tSDECIMAL_NUMBER tUDECIMAL_NUMBER
+
+%type <intval> o_colon_minutes
+%type <timespec> seconds signed_seconds unsigned_seconds
+
+%type <rel> relunit relunit_snumber dayshift
+
+%%
+
+spec:
+ timespec
+ | items
+ ;
+
+timespec:
+ '@' seconds
+ {
+ pc->seconds = $2;
+ pc->timespec_seen = true;
+ }
+ ;
+
+items:
+ /* empty */
+ | items item
+ ;
+
+item:
+ datetime
+ { pc->times_seen++; pc->dates_seen++; }
+ | time
+ { pc->times_seen++; }
+ | local_zone
+ { pc->local_zones_seen++; }
+ | zone
+ { pc->zones_seen++; }
+ | date
+ { pc->dates_seen++; }
+ | day
+ { pc->days_seen++; }
+ | rel
+ | number
+ | hybrid
+ ;
+
+datetime:
+ iso_8601_datetime
+ ;
+
+iso_8601_datetime:
+ iso_8601_date 'T' iso_8601_time
+ ;
+
+time:
+ tUNUMBER tMERIDIAN
+ {
+ set_hhmmss (pc, $1.value, 0, 0, 0);
+ pc->meridian = $2;
+ }
+ | tUNUMBER ':' tUNUMBER tMERIDIAN
+ {
+ set_hhmmss (pc, $1.value, $3.value, 0, 0);
+ pc->meridian = $4;
+ }
+ | tUNUMBER ':' tUNUMBER ':' unsigned_seconds tMERIDIAN
+ {
+ set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec);
+ pc->meridian = $6;
+ }
+ | iso_8601_time
+ ;
+
+iso_8601_time:
+ tUNUMBER zone_offset
+ {
+ set_hhmmss (pc, $1.value, 0, 0, 0);
+ pc->meridian = MER24;
+ }
+ | tUNUMBER ':' tUNUMBER o_zone_offset
+ {
+ set_hhmmss (pc, $1.value, $3.value, 0, 0);
+ pc->meridian = MER24;
+ }
+ | tUNUMBER ':' tUNUMBER ':' unsigned_seconds o_zone_offset
+ {
+ set_hhmmss (pc, $1.value, $3.value, $5.tv_sec, $5.tv_nsec);
+ pc->meridian = MER24;
+ }
+ ;
+
+o_zone_offset:
+ /* empty */
+ | zone_offset
+ ;
+
+zone_offset:
+ tSNUMBER o_colon_minutes
+ {
+ pc->zones_seen++;
+ pc->time_zone = time_zone_hhmm (pc, $1, $2);
+ }
+ ;
+
+local_zone:
+ tLOCAL_ZONE
+ {
+ pc->local_isdst = $1;
+ pc->dsts_seen += (0 < $1);
+ }
+ | tLOCAL_ZONE tDST
+ {
+ pc->local_isdst = 1;
+ pc->dsts_seen += (0 < $1) + 1;
+ }
+ ;
+
+/* Note 'T' is a special case, as it is used as the separator in ISO
+ 8601 date and time of day representation. */
+zone:
+ tZONE
+ { pc->time_zone = $1; }
+ | 'T'
+ { pc->time_zone = HOUR(7); }
+ | tZONE relunit_snumber
+ { pc->time_zone = $1;
+ apply_relative_time (pc, $2, 1); }
+ | 'T' relunit_snumber
+ { pc->time_zone = HOUR(7);
+ apply_relative_time (pc, $2, 1); }
+ | tZONE tSNUMBER o_colon_minutes
+ { pc->time_zone = $1 + time_zone_hhmm (pc, $2, $3); }
+ | tDAYZONE
+ { pc->time_zone = $1 + 60; }
+ | tZONE tDST
+ { pc->time_zone = $1 + 60; }
+ ;
+
+day:
+ tDAY
+ {
+ pc->day_ordinal = 0;
+ pc->day_number = $1;
+ }
+ | tDAY ','
+ {
+ pc->day_ordinal = 0;
+ pc->day_number = $1;
+ }
+ | tORDINAL tDAY
+ {
+ pc->day_ordinal = $1;
+ pc->day_number = $2;
+ }
+ | tUNUMBER tDAY
+ {
+ pc->day_ordinal = $1.value;
+ pc->day_number = $2;
+ }
+ ;
+
+date:
+ tUNUMBER '/' tUNUMBER
+ {
+ 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;
+ }
+ }
+ | 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;
+ }
+ | 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;
+ }
+ | tMONTH tUNUMBER
+ {
+ pc->month = $1;
+ pc->day = $2.value;
+ }
+ | tMONTH tUNUMBER ',' tUNUMBER
+ {
+ pc->month = $1;
+ pc->day = $2.value;
+ pc->year = $4;
+ }
+ | tUNUMBER tMONTH
+ {
+ pc->day = $1.value;
+ pc->month = $2;
+ }
+ | tUNUMBER tMONTH tUNUMBER
+ {
+ pc->day = $1.value;
+ pc->month = $2;
+ pc->year = $3;
+ }
+ | iso_8601_date
+ ;
+
+iso_8601_date:
+ tUNUMBER tSNUMBER tSNUMBER
+ {
+ /* ISO 8601 format. YYYY-MM-DD. */
+ pc->year = $1;
+ pc->month = -$2.value;
+ pc->day = -$3.value;
+ }
+ ;
+
+rel:
+ relunit tAGO
+ { apply_relative_time (pc, $1, $2); }
+ | relunit
+ { apply_relative_time (pc, $1, 1); }
+ | dayshift
+ { apply_relative_time (pc, $1, 1); }
+ ;
+
+relunit:
+ tORDINAL tYEAR_UNIT
+ { $$ = RELATIVE_TIME_0; $$.year = $1; }
+ | tUNUMBER tYEAR_UNIT
+ { $$ = RELATIVE_TIME_0; $$.year = $1.value; }
+ | tYEAR_UNIT
+ { $$ = RELATIVE_TIME_0; $$.year = 1; }
+ | tORDINAL tMONTH_UNIT
+ { $$ = RELATIVE_TIME_0; $$.month = $1; }
+ | tUNUMBER tMONTH_UNIT
+ { $$ = RELATIVE_TIME_0; $$.month = $1.value; }
+ | tMONTH_UNIT
+ { $$ = RELATIVE_TIME_0; $$.month = 1; }
+ | tORDINAL tDAY_UNIT
+ { $$ = RELATIVE_TIME_0; $$.day = $1 * $2; }
+ | tUNUMBER tDAY_UNIT
+ { $$ = RELATIVE_TIME_0; $$.day = $1.value * $2; }
+ | tDAY_UNIT
+ { $$ = RELATIVE_TIME_0; $$.day = $1; }
+ | tORDINAL tHOUR_UNIT
+ { $$ = RELATIVE_TIME_0; $$.hour = $1; }
+ | tUNUMBER tHOUR_UNIT
+ { $$ = RELATIVE_TIME_0; $$.hour = $1.value; }
+ | tHOUR_UNIT
+ { $$ = RELATIVE_TIME_0; $$.hour = 1; }
+ | tORDINAL tMINUTE_UNIT
+ { $$ = RELATIVE_TIME_0; $$.minutes = $1; }
+ | tUNUMBER tMINUTE_UNIT
+ { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; }
+ | tMINUTE_UNIT
+ { $$ = RELATIVE_TIME_0; $$.minutes = 1; }
+ | tORDINAL tSEC_UNIT
+ { $$ = RELATIVE_TIME_0; $$.seconds = $1; }
+ | tUNUMBER tSEC_UNIT
+ { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; }
+ | tSDECIMAL_NUMBER tSEC_UNIT
+ { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; }
+ | tUDECIMAL_NUMBER tSEC_UNIT
+ { $$ = RELATIVE_TIME_0; $$.seconds = $1.tv_sec; $$.ns = $1.tv_nsec; }
+ | tSEC_UNIT
+ { $$ = RELATIVE_TIME_0; $$.seconds = 1; }
+ | relunit_snumber
+ ;
+
+relunit_snumber:
+ tSNUMBER tYEAR_UNIT
+ { $$ = RELATIVE_TIME_0; $$.year = $1.value; }
+ | tSNUMBER tMONTH_UNIT
+ { $$ = RELATIVE_TIME_0; $$.month = $1.value; }
+ | tSNUMBER tDAY_UNIT
+ { $$ = RELATIVE_TIME_0; $$.day = $1.value * $2; }
+ | tSNUMBER tHOUR_UNIT
+ { $$ = RELATIVE_TIME_0; $$.hour = $1.value; }
+ | tSNUMBER tMINUTE_UNIT
+ { $$ = RELATIVE_TIME_0; $$.minutes = $1.value; }
+ | tSNUMBER tSEC_UNIT
+ { $$ = RELATIVE_TIME_0; $$.seconds = $1.value; }
+ ;
+
+dayshift:
+ tDAY_SHIFT
+ { $$ = RELATIVE_TIME_0; $$.day = $1; }
+ ;
+
+seconds: signed_seconds | unsigned_seconds;
+
+signed_seconds:
+ tSDECIMAL_NUMBER
+ | tSNUMBER
+ { $$.tv_sec = $1.value; $$.tv_nsec = 0; }
+ ;
+
+unsigned_seconds:
+ tUDECIMAL_NUMBER
+ | tUNUMBER
+ { $$.tv_sec = $1.value; $$.tv_nsec = 0; }
+ ;
+
+number:
+ tUNUMBER
+ { digits_to_date_time (pc, $1); }
+ ;
+
+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);
+ }
+ ;
+
+o_colon_minutes:
+ /* empty */
+ { $$ = -1; }
+ | ':' tUNUMBER
+ { $$ = $2.value; }
+ ;
+
+%%
+
+static table const meridian_table[] =
+{
+ { "AM", tMERIDIAN, MERam },
+ { "A.M.", tMERIDIAN, MERam },
+ { "PM", tMERIDIAN, MERpm },
+ { "P.M.", tMERIDIAN, MERpm },
+ { NULL, 0, 0 }
+};
+
+static table const dst_table[] =
+{
+ { "DST", tDST, 0 }
+};
+
+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 },
+ { 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 },
+ { 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 },
+ { "HENCE", tAGO, 1 },
+ { NULL, 0, 0 }
+};
+
+/* The universal time zone table. These labels can be used even for
+ time stamps that would not otherwise be valid, e.g., GMT time
+ 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) },
+ { NULL, 0, 0 }
+};
+
+/* The time zone table. This table is necessarily incomplete, as time
+ zone abbreviations are ambiguous; e.g. Australians interpret "EST"
+ as Eastern time in Australia, not as US Eastern Standard Time.
+ You cannot rely on parse_datetime to handle arbitrary time zone
+ 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 */
+ { NULL, 0, 0 }
+};
+
+/* Military time zone table.
+
+ Note 'T' is a special case, as it is used as the separator in ISO
+ 8601 date and time of day representation. */
+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", 'T', 0 },
+ { "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 }
+};
+
+
+
+/* Convert a time zone expressed as HH:MM into an integer count of
+ minutes. If MM is negative, then S is of the form HHMM and needs
+ to be picked apart; otherwise, S is of the form HH. As specified in
+ http://www.opengroup.org/susv3xbd/xbd_chap08.html#tag_08_03, allow
+ only valid TZ range, and consider first two digits as hours, if no
+ minutes specified. */
+
+static long int
+time_zone_hhmm (parser_control *pc, textint s, long int mm)
+{
+ long int n_minutes;
+
+ /* If the length of S is 1 or 2 and no minutes are specified,
+ interpret it as a number of hours. */
+ if (s.digits <= 2 && mm < 0)
+ s.value *= 100;
+
+ if (mm < 0)
+ n_minutes = (s.value / 100) * 60 + s.value % 100;
+ else
+ n_minutes = s.value * 60 + (s.negative ? -mm : mm);
+
+ /* If the absolute number of minutes is larger than 24 hours,
+ arrange to reject it by incrementing pc->zones_seen. Thus,
+ we allow only values in the range UTC-24:00 to UTC+24:00. */
+ if (24 * 60 < abs (n_minutes))
+ pc->zones_seen++;
+
+ return n_minutes;
+}
+
+static int
+to_hour (long int hours, int meridian)
+{
+ switch (meridian)
+ {
+ default: /* Pacify GCC. */
+ case MER24:
+ return 0 <= hours && hours < 24 ? hours : -1;
+ case MERam:
+ return 0 < hours && hours < 12 ? hours : hours == 12 ? 0 : -1;
+ case MERpm:
+ return 0 < hours && hours < 12 ? hours + 12 : hours == 12 ? 12 : -1;
+ }
+}
+
+static long int
+to_year (textint textyear)
+{
+ long int year = textyear.value;
+
+ if (year < 0)
+ year = -year;
+
+ /* XPG4 suggests that years 00-68 map to 2000-2068, and
+ years 69-99 map to 1969-1999. */
+ else if (textyear.digits == 2)
+ year += year < 69 ? 2000 : 1900;
+
+ return year;
+}
+
+static table const * _GL_ATTRIBUTE_PURE
+lookup_zone (parser_control const *pc, char const *name)
+{
+ table const *tp;
+
+ for (tp = universal_time_zone_table; tp->name; tp++)
+ if (strcmp (name, tp->name) == 0)
+ return tp;
+
+ /* Try local zone abbreviations before those in time_zone_table, as
+ the local ones are more likely to be right. */
+ for (tp = pc->local_time_zone_table; tp->name; tp++)
+ if (strcmp (name, tp->name) == 0)
+ return tp;
+
+ for (tp = time_zone_table; tp->name; tp++)
+ if (strcmp (name, tp->name) == 0)
+ return tp;
+
+ return NULL;
+}
+
+#if ! HAVE_TM_GMTOFF
+/* Yield the difference between *A and *B,
+ measured in seconds, ignoring leap seconds.
+ The body of this function is taken directly from the GNU C Library;
+ see src/strftime.c. */
+static long int
+tm_diff (struct tm const *a, struct tm const *b)
+{
+ /* Compute intervening leap days correctly even if year is negative.
+ Take care to avoid int overflow in leap day calculations. */
+ int a4 = SHR (a->tm_year, 2) + SHR (TM_YEAR_BASE, 2) - ! (a->tm_year & 3);
+ int b4 = SHR (b->tm_year, 2) + SHR (TM_YEAR_BASE, 2) - ! (b->tm_year & 3);
+ int a100 = a4 / 25 - (a4 % 25 < 0);
+ int b100 = b4 / 25 - (b4 % 25 < 0);
+ int a400 = SHR (a100, 2);
+ int b400 = SHR (b100, 2);
+ int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400);
+ 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));
+ return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour))
+ + (a->tm_min - b->tm_min))
+ + (a->tm_sec - b->tm_sec));
+}
+#endif /* ! HAVE_TM_GMTOFF */
+
+static table const *
+lookup_word (parser_control const *pc, char *word)
+{
+ char *p;
+ char *q;
+ size_t wordlen;
+ table const *tp;
+ bool period_found;
+ bool abbrev;
+
+ /* Make it uppercase. */
+ for (p = word; *p; p++)
+ {
+ unsigned char ch = *p;
+ *p = c_toupper (ch);
+ }
+
+ for (tp = meridian_table; tp->name; tp++)
+ if (strcmp (word, tp->name) == 0)
+ return tp;
+
+ /* See if we have an abbreviation for a month. */
+ wordlen = strlen (word);
+ abbrev = wordlen == 3 || (wordlen == 4 && word[3] == '.');
+
+ for (tp = month_and_day_table; tp->name; tp++)
+ if ((abbrev ? strncmp (word, tp->name, 3) : strcmp (word, tp->name)) == 0)
+ return tp;
+
+ if ((tp = lookup_zone (pc, word)))
+ return tp;
+
+ if (strcmp (word, dst_table[0].name) == 0)
+ return dst_table;
+
+ for (tp = time_units_table; tp->name; tp++)
+ if (strcmp (word, tp->name) == 0)
+ return tp;
+
+ /* Strip off any plural and try the units table again. */
+ if (word[wordlen - 1] == 'S')
+ {
+ 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. */
+ }
+
+ for (tp = relative_time_table; tp->name; tp++)
+ if (strcmp (word, tp->name) == 0)
+ return tp;
+
+ /* Military time zones. */
+ if (wordlen == 1)
+ for (tp = military_table; tp->name; tp++)
+ if (word[0] == tp->name[0])
+ return tp;
+
+ /* Drop out any periods and try the time zone table again. */
+ for (period_found = false, p = q = word; (*p = *q); q++)
+ if (*q == '.')
+ period_found = true;
+ else
+ p++;
+ if (period_found && (tp = lookup_zone (pc, word)))
+ return tp;
+
+ return NULL;
+}
+
+static int
+yylex (YYSTYPE *lvalp, parser_control *pc)
+{
+ unsigned char c;
+ size_t count;
+
+ for (;;)
+ {
+ while (c = *pc->input, c_isspace (c))
+ 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;
+ }
+ }
+
+ 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;
+ }
+
+ if (c != '(')
+ return *pc->input++;
+ count = 0;
+ do
+ {
+ 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 _GL_UNUSED,
+ char const *s _GL_UNUSED)
+{
+ return 0;
+}
+
+/* If *TM0 is the old and *TM1 is the new value of a struct tm after
+ passing it to mktime, return true if it's OK that mktime returned T.
+ It's not OK if *TM0 has out-of-range members. */
+
+static bool
+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. */
+ tm1 = localtime (&t);
+ if (!tm1)
+ 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));
+}
+
+/* A reasonable upper bound for the size of ordinary TZ strings.
+ Use heap allocation if TZ's length exceeds this. */
+enum { TZBUFSIZE = 100 };
+
+/* Return a copy of TZ, stored in TZBUF if it fits, and heap-allocated
+ otherwise. */
+static char *
+get_tz (char tzbuf[TZBUFSIZE])
+{
+ char *tz = getenv ("TZ");
+ if (tz)
+ {
+ size_t tzsize = strlen (tz) + 1;
+ tz = (tzsize <= TZBUFSIZE
+ ? memcpy (tzbuf, tz, tzsize)
+ : xmemdup (tz, tzsize));
+ }
+ return tz;
+}
+
+/* Parse a date/time string, storing the resulting time value into *RESULT.
+ The string itself is pointed to by P. Return true if successful.
+ P can be an incomplete or relative time specification; if so, use
+ *NOW as the basis for the returned time. */
+bool
+parse_datetime (struct timespec *result, char const *p,
+ struct timespec const *now)
+{
+ time_t Start;
+ long int Start_ns;
+ struct tm const *tmp;
+ struct tm tm;
+ struct tm tm0;
+ parser_control pc;
+ struct timespec gettime_buffer;
+ unsigned char c;
+ bool tz_was_altered = false;
+ char *tz0 = NULL;
+ char tz0buf[TZBUFSIZE];
+ bool ok = true;
+
+ if (! now)
+ {
+ gettime (&gettime_buffer);
+ now = &gettime_buffer;
+ }
+
+ Start = now->tv_sec;
+ Start_ns = now->tv_nsec;
+
+ tmp = localtime (&now->tv_sec);
+ if (! tmp)
+ return false;
+
+ while (c = *p, c_isspace (c))
+ p++;
+
+ if (strncmp (p, "TZ=\"", 4) == 0)
+ {
+ char const *tzbase = p + 4;
+ size_t tzsize = 1;
+ 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;
+ /* 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
+ a date string of "0". Without this, an empty string would be
+ declared invalid when parsed during a DST transition. */
+ if (*p == '\0')
+ p = "0";
+
+ pc.input = p;
+ pc.year.value = tmp->tm_year;
+ pc.year.value += TM_YEAR_BASE;
+ pc.year.digits = 0;
+ pc.month = tmp->tm_mon + 1;
+ pc.day = tmp->tm_mday;
+ pc.hour = tmp->tm_hour;
+ pc.minutes = tmp->tm_min;
+ pc.seconds.tv_sec = tmp->tm_sec;
+ pc.seconds.tv_nsec = Start_ns;
+ tm.tm_isdst = tmp->tm_isdst;
+
+ pc.meridian = MER24;
+ pc.rel = RELATIVE_TIME_0;
+ pc.timespec_seen = false;
+ pc.rels_seen = false;
+ pc.dates_seen = 0;
+ pc.days_seen = 0;
+ pc.times_seen = 0;
+ pc.local_zones_seen = 0;
+ pc.dsts_seen = 0;
+ pc.zones_seen = 0;
+
+#if HAVE_STRUCT_TM_TM_ZONE
+ pc.local_time_zone_table[0].name = tmp->tm_zone;
+ pc.local_time_zone_table[0].type = tLOCAL_ZONE;
+ pc.local_time_zone_table[0].value = tmp->tm_isdst;
+ pc.local_time_zone_table[1].name = NULL;
+
+ /* Probe the names used in the next three calendar quarters, looking
+ for a tm_isdst different from the one we already have. */
+ {
+ 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;
+ }
+ }
+ }
+#else
+#if HAVE_TZNAME
+ {
+# if !HAVE_DECL_TZNAME
+ extern char *tzname[];
+# endif
+ 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 = NULL;
+ }
+#else
+ pc.local_time_zone_table[0].name = NULL;
+#endif
+#endif
+
+ 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))
+ {
+ /* 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. */
+ pc.local_time_zone_table[0].value = -1;
+ pc.local_time_zone_table[1].name = NULL;
+ }
+
+ if (yyparse (&pc) != 0)
+ goto fail;
+
+ if (pc.timespec_seen)
+ *result = pc.seconds;
+ else
+ {
+ if (1 < (pc.times_seen | pc.dates_seen | pc.days_seen | pc.dsts_seen
+ | (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;
+ }
+ else
+ {
+ 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;
+
+ /* But if the input explicitly specifies local time with or without
+ DST, give mktime that information. */
+ if (pc.local_zones_seen)
+ 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.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_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;
+ }
+
+ /* The only "output" of this if-block is an updated Start value,
+ so this block must follow others that clobber Start. */
+ if (pc.zones_seen)
+ {
+ long int delta = pc.time_zone * 60;
+ time_t t1;
+#ifdef HAVE_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);
+#endif
+ 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. */
+ {
+ 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;
+ }
+ }
+
+ goto done;
+
+ fail:
+ ok = false;
+ done:
+ if (tz_was_altered)
+ ok &= (tz0 ? setenv ("TZ", tz0, 1) : unsetenv ("TZ")) == 0;
+ if (tz0 != tz0buf)
+ free (tz0);
+ return ok;
+}
+
+#if TEST
+
+int
+main (int ac, char **av)
+{
+ char buff[BUFSIZ];
+
+ printf ("Enter date, or blank line to exit.\n\t> ");
+ fflush (stdout);
+
+ buff[BUFSIZ - 1] = '\0';
+ while (fgets (buff, BUFSIZ - 1, stdin) && buff[0])
+ {
+ struct timespec d;
+ struct tm const *tm;
+ if (! parse_datetime (&d, buff, NULL))
+ 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);
+ }
+ 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);
+ }
+ printf ("\t> ");
+ fflush (stdout);
+ }
+ return 0;
+}
+#endif /* TEST */
diff --git a/gnu/pathmax.h b/gnu/pathmax.h
new file mode 100644
index 00000000..6ecab59c
--- /dev/null
+++ b/gnu/pathmax.h
@@ -0,0 +1,86 @@
+/* -*- 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, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 _PATHMAX_H
+# define _PATHMAX_H
+
+/* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename,
+ including the terminating NUL byte.
+ <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html>
+ PATH_MAX is not defined on systems which have no limit on filename length,
+ such as GNU/Hurd.
+
+ This file does *not* define PATH_MAX always. Programs that use this file
+ can handle the GNU/Hurd case in several ways:
+ - Either with a package-wide handling, or with a per-file handling,
+ - Either through a
+ #ifdef PATH_MAX
+ or through a fallback like
+ #ifndef PATH_MAX
+ # define PATH_MAX 8192
+ #endif
+ or through a fallback like
+ #ifndef PATH_MAX
+ # define PATH_MAX pathconf ("/", _PC_PATH_MAX)
+ #endif
+ */
+
+# include <unistd.h>
+
+# include <limits.h>
+
+# ifndef _POSIX_PATH_MAX
+# define _POSIX_PATH_MAX 256
+# endif
+
+/* Don't include sys/param.h if it already has been. */
+# if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+# endif
+
+# if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+# endif
+
+# ifdef __hpux
+/* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename,
+ *not* including the terminating NUL byte, and is set to 1023.
+ Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is
+ not defined at all any more. */
+# undef PATH_MAX
+# define PATH_MAX 1024
+# endif
+
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com,
+ section "Maximum Path Length Limitation",
+ <http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#maxpath>
+ explains that the maximum size of a filename, including the terminating
+ NUL byte, is 260 = 3 + 256 + 1.
+ This is the same value as
+ - FILENAME_MAX in <stdio.h>,
+ - _MAX_PATH in <stdlib.h>,
+ - MAX_PATH in <windef.h>.
+ Undefine the original value, because mingw's <limits.h> gets it wrong. */
+# undef PATH_MAX
+# define PATH_MAX 260
+# endif
+
+#endif /* _PATHMAX_H */
diff --git a/gnu/pipe-safer.c b/gnu/pipe-safer.c
new file mode 100644
index 00000000..269af717
--- /dev/null
+++ b/gnu/pipe-safer.c
@@ -0,0 +1,58 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Invoke pipe, but avoid some glitches.
+ Copyright (C) 2005-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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-safer.h"
+
+#include <unistd.h>
+#include <errno.h>
+
+/* Like pipe, but ensure that neither of the file descriptors is
+ STDIN_FILENO, STDOUT_FILENO, or STDERR_FILENO. Fail with ENOSYS on
+ platforms that lack pipe. */
+
+int
+pipe_safer (int fd[2])
+{
+#if HAVE_PIPE
+ if (pipe (fd) == 0)
+ {
+ 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;
+ }
+ }
+
+ return 0;
+ }
+#else
+ errno = ENOSYS;
+#endif
+
+ return -1;
+}
diff --git a/gnu/printf-args.c b/gnu/printf-args.c
new file mode 100644
index 00000000..6a66de78
--- /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-2012 Free Software
+ Foundation, Inc.
+
+ This 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/gnu/printf-args.h b/gnu/printf-args.h
new file mode 100644
index 00000000..b8b4fbd3
--- /dev/null
+++ b/gnu/printf-args.h
@@ -0,0 +1,161 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Decomposed printf argument list.
+ Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2012 Free Software
+ Foundation, Inc.
+
+ This 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 _PRINTF_ARGS_H
+#define _PRINTF_ARGS_H
+
+/* 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 declared.
+ STATIC Set to 'static' to declare the function static. */
+
+/* Default parameters. */
+#ifndef PRINTF_FETCHARGS
+# define PRINTF_FETCHARGS printf_fetchargs
+#endif
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get wchar_t. */
+#if HAVE_WCHAR_T
+# include <stddef.h>
+#endif
+
+/* Get wint_t. */
+#if HAVE_WINT_T
+# include <wchar.h>
+#endif
+
+/* Get va_list. */
+#include <stdarg.h>
+
+
+/* Argument types */
+typedef enum
+{
+ TYPE_NONE,
+ TYPE_SCHAR,
+ TYPE_UCHAR,
+ TYPE_SHORT,
+ TYPE_USHORT,
+ TYPE_INT,
+ TYPE_UINT,
+ TYPE_LONGINT,
+ TYPE_ULONGINT,
+#if HAVE_LONG_LONG_INT
+ TYPE_LONGLONGINT,
+ TYPE_ULONGLONGINT,
+#endif
+ TYPE_DOUBLE,
+ TYPE_LONGDOUBLE,
+ TYPE_CHAR,
+#if HAVE_WINT_T
+ TYPE_WIDE_CHAR,
+#endif
+ TYPE_STRING,
+#if HAVE_WCHAR_T
+ TYPE_WIDE_STRING,
+#endif
+ TYPE_POINTER,
+ TYPE_COUNT_SCHAR_POINTER,
+ TYPE_COUNT_SHORT_POINTER,
+ TYPE_COUNT_INT_POINTER,
+ TYPE_COUNT_LONGINT_POINTER
+#if HAVE_LONG_LONG_INT
+, TYPE_COUNT_LONGLONGINT_POINTER
+#endif
+#if ENABLE_UNISTDIO
+ /* The unistdio extensions. */
+, TYPE_U8_STRING
+, TYPE_U16_STRING
+, TYPE_U32_STRING
+#endif
+} arg_type;
+
+/* Polymorphic argument */
+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;
+#if HAVE_LONG_LONG_INT
+ 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;
+#if HAVE_WINT_T
+ wint_t a_wide_char;
+#endif
+ const char* a_string;
+#if HAVE_WCHAR_T
+ 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;
+#if HAVE_LONG_LONG_INT
+ 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;
+#endif
+ }
+ a;
+}
+argument;
+
+/* Number of directly allocated arguments (no malloc() needed). */
+#define N_DIRECT_ALLOC_ARGUMENTS 7
+
+typedef struct
+{
+ size_t count;
+ argument *arg;
+ argument direct_alloc_arg[N_DIRECT_ALLOC_ARGUMENTS];
+}
+arguments;
+
+
+/* Fetch the arguments, putting them into a. */
+#ifdef STATIC
+STATIC
+#else
+extern
+#endif
+int PRINTF_FETCHARGS (va_list args, arguments *a);
+
+#endif /* _PRINTF_ARGS_H */
diff --git a/gnu/printf-parse.c b/gnu/printf-parse.c
new file mode 100644
index 00000000..eef96e04
--- /dev/null
+++ b/gnu/printf-parse.c
@@ -0,0 +1,641 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Formatted output to strings.
+ Copyright (C) 1999-2000, 2002-2003, 2006-2012 Free Software Foundation, Inc.
+
+ This 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>
+
+/* memcpy(). */
+#include <string.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 = N_DIRECT_ALLOC_DIRECTIVES;
+ d->dir = d->direct_alloc_dir;
+
+ a->count = 0;
+ a_allocated = N_DIRECT_ALLOC_ARGUMENTS;
+ a->arg = a->direct_alloc_arg;
+
+#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 != a->direct_alloc_arg \
+ ? realloc (a->arg, memory_size) \
+ : malloc (memory_size)); \
+ if (memory == NULL) \
+ /* Out of memory. */ \
+ goto out_of_memory; \
+ if (a->arg == a->direct_alloc_arg) \
+ memcpy (memory, a->arg, a->count * sizeof (argument)); \
+ 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++;
+ }
+#if __GLIBC__ >= 2 && !defined __UCLIBC__
+ else if (*cp == 'I')
+ {
+ dp->flags |= FLAG_LOCALIZED;
+ cp++;
+ }
+#endif
+ 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 Windows, 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 *) (d->dir != d->direct_alloc_dir
+ ? realloc (d->dir, memory_size)
+ : malloc (memory_size));
+ if (memory == NULL)
+ /* Out of memory. */
+ goto out_of_memory;
+ if (d->dir == d->direct_alloc_dir)
+ memcpy (memory, d->dir, d->count * sizeof (DIRECTIVE));
+ 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 != a->direct_alloc_arg)
+ free (a->arg);
+ if (d->dir != d->direct_alloc_dir)
+ free (d->dir);
+ errno = EINVAL;
+ return -1;
+
+out_of_memory:
+ if (a->arg != a->direct_alloc_arg)
+ free (a->arg);
+ if (d->dir != d->direct_alloc_dir)
+ free (d->dir);
+ errno = ENOMEM;
+ return -1;
+}
+
+#undef PRINTF_PARSE
+#undef DIRECTIVES
+#undef DIRECTIVE
+#undef CHAR_T_ONLY_ASCII
+#undef CHAR_T
diff --git a/gnu/printf-parse.h b/gnu/printf-parse.h
new file mode 100644
index 00000000..5b9c2a9e
--- /dev/null
+++ b/gnu/printf-parse.h
@@ -0,0 +1,196 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Parse printf format string.
+ Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2012 Free Software
+ Foundation, Inc.
+
+ This 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 _PRINTF_PARSE_H
+#define _PRINTF_PARSE_H
+
+/* This file can be parametrized with the following macros:
+ ENABLE_UNISTDIO Set to 1 to enable the unistdio extensions.
+ STATIC Set to 'static' to declare the function static. */
+
+#if HAVE_FEATURES_H
+# include <features.h> /* for __GLIBC__, __UCLIBC__ */
+#endif
+
+#include "printf-args.h"
+
+
+/* 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
+#if __GLIBC__ >= 2 && !defined __UCLIBC__
+# define FLAG_LOCALIZED 64 /* I flag, uses localized digits */
+#endif
+
+/* arg_index value indicating that no argument is consumed. */
+#define ARG_NONE (~(size_t)0)
+
+/* xxx_directive: A parsed directive.
+ xxx_directives: A parsed format string. */
+
+/* Number of directly allocated directives (no malloc() needed). */
+#define N_DIRECT_ALLOC_DIRECTIVES 7
+
+/* A parsed directive. */
+typedef struct
+{
+ const char* dir_start;
+ const char* dir_end;
+ int flags;
+ const char* width_start;
+ const char* width_end;
+ size_t width_arg_index;
+ const char* precision_start;
+ const char* precision_end;
+ size_t precision_arg_index;
+ char conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+ size_t arg_index;
+}
+char_directive;
+
+/* A parsed format string. */
+typedef struct
+{
+ size_t count;
+ char_directive *dir;
+ size_t max_width_length;
+ size_t max_precision_length;
+ char_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
+}
+char_directives;
+
+#if ENABLE_UNISTDIO
+
+/* A parsed directive. */
+typedef struct
+{
+ const uint8_t* dir_start;
+ const uint8_t* dir_end;
+ int flags;
+ const uint8_t* width_start;
+ const uint8_t* width_end;
+ size_t width_arg_index;
+ const uint8_t* precision_start;
+ const uint8_t* precision_end;
+ size_t precision_arg_index;
+ uint8_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+ size_t arg_index;
+}
+u8_directive;
+
+/* A parsed format string. */
+typedef struct
+{
+ size_t count;
+ u8_directive *dir;
+ size_t max_width_length;
+ size_t max_precision_length;
+ u8_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
+}
+u8_directives;
+
+/* A parsed directive. */
+typedef struct
+{
+ const uint16_t* dir_start;
+ const uint16_t* dir_end;
+ int flags;
+ const uint16_t* width_start;
+ const uint16_t* width_end;
+ size_t width_arg_index;
+ const uint16_t* precision_start;
+ const uint16_t* precision_end;
+ size_t precision_arg_index;
+ uint16_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+ size_t arg_index;
+}
+u16_directive;
+
+/* A parsed format string. */
+typedef struct
+{
+ size_t count;
+ u16_directive *dir;
+ size_t max_width_length;
+ size_t max_precision_length;
+ u16_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
+}
+u16_directives;
+
+/* A parsed directive. */
+typedef struct
+{
+ const uint32_t* dir_start;
+ const uint32_t* dir_end;
+ int flags;
+ const uint32_t* width_start;
+ const uint32_t* width_end;
+ size_t width_arg_index;
+ const uint32_t* precision_start;
+ const uint32_t* precision_end;
+ size_t precision_arg_index;
+ uint32_t conversion; /* d i o u x X f F e E g G a A c s p n U % but not C S */
+ size_t arg_index;
+}
+u32_directive;
+
+/* A parsed format string. */
+typedef struct
+{
+ size_t count;
+ u32_directive *dir;
+ size_t max_width_length;
+ size_t max_precision_length;
+ u32_directive direct_alloc_dir[N_DIRECT_ALLOC_DIRECTIVES];
+}
+u32_directives;
+
+#endif
+
+
+/* Parses the format string. Fills in the number N of directives, and fills
+ in directives[0], ..., directives[N-1], and sets directives[N].dir_start
+ to the end of the format string. Also fills in the arg_type fields of the
+ arguments and the needed count of arguments. */
+#if ENABLE_UNISTDIO
+extern int
+ ulc_printf_parse (const char *format, char_directives *d, arguments *a);
+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);
+extern int
+ u32_printf_parse (const uint32_t *format, u32_directives *d,
+ arguments *a);
+#else
+# ifdef STATIC
+STATIC
+# else
+extern
+# endif
+int printf_parse (const char *format, char_directives *d, arguments *a);
+#endif
+
+#endif /* _PRINTF_PARSE_H */
diff --git a/gnu/priv-set.c b/gnu/priv-set.c
new file mode 100644
index 00000000..8ce9648c
--- /dev/null
+++ b/gnu/priv-set.c
@@ -0,0 +1,144 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Query, remove, or restore a Solaris privilege.
+
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 && HAVE_PRIV_H
+
+# 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.
+ 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 previously
+ removed by a call to priv_set_remove).
+ 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 00000000..6f715a21
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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 && HAVE_PRIV_H
+
+# 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 00000000..bc0691de
--- /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-2012 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 00000000..a288ae38
--- /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-2012 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/gnu/quote.c b/gnu/quote.c
new file mode 100644
index 00000000..0d7d60f2
--- /dev/null
+++ b/gnu/quote.c
@@ -0,0 +1,42 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* quote.c - quote arguments for output
+
+ Copyright (C) 1998-2001, 2003, 2005-2006, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 "quote.h"
+
+/* Return an unambiguous printable representation of NAME,
+ allocated in slot N, suitable for diagnostics. */
+char const *
+quote_n (int n, char const *name)
+{
+ return quotearg_n_style (n, locale_quoting_style, name);
+}
+
+/* Return an unambiguous printable representation of NAME,
+ suitable for diagnostics. */
+char const *
+quote (char const *name)
+{
+ return quote_n (0, name);
+}
diff --git a/gnu/quote.h b/gnu/quote.h
new file mode 100644
index 00000000..0bb5140e
--- /dev/null
+++ b/gnu/quote.h
@@ -0,0 +1,22 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* quote.h - prototypes for quote.c
+
+ Copyright (C) 1998-2001, 2003, 2009-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+
+char const *quote_n (int n, char const *name);
+char const *quote (char const *name);
diff --git a/gnu/quotearg.c b/gnu/quotearg.c
new file mode 100644
index 00000000..2b91ec56
--- /dev/null
+++ b/gnu/quotearg.c
@@ -0,0 +1,930 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* quotearg.c - quote arguments for output
+
+ Copyright (C) 1998-2002, 2004-2012 Free Software Foundation, Inc.
+
+ This 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> */
+
+/* Without this pragma, gcc 4.7.0 20111124 mistakenly suggests that
+ the quoting_options_from_style function might be candidate for
+ attribute 'pure' */
+#if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__
+# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure"
+#endif
+
+#include <config.h>
+
+#include "quotearg.h"
+
+#include "xalloc.h"
+#include "c-strcaseeq.h"
+#include "localcharset.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 /* NOT PURE!! */
+quoting_options_from_style (enum quoting_style style)
+{
+ struct quoting_options o = { 0 };
+ if (style == custom_quoting_style)
+ abort ();
+ o.style = style;
+ return o;
+}
+
+/* MSGID approximates a quotation mark. Return its translation if it
+ has one; otherwise, return either it or "\"", depending on S.
+
+ S is either clocale_quoting_style or locale_quoting_style. */
+static char const *
+gettext_quote (char const *msgid, enum quoting_style s)
+{
+ char const *translation = _(msgid);
+ char const *locale_code;
+
+ if (translation != msgid)
+ return translation;
+
+ /* For UTF-8 and GB-18030, use single quotes U+2018 and U+2019.
+ Here is a list of other locales that include U+2018 and U+2019:
+
+ ISO-8859-7 0xA1 KOI8-T 0x91
+ CP869 0x8B CP874 0x91
+ CP932 0x81 0x65 CP936 0xA1 0xAE
+ CP949 0xA1 0xAE CP950 0xA1 0xA5
+ CP1250 0x91 CP1251 0x91
+ CP1252 0x91 CP1253 0x91
+ CP1254 0x91 CP1255 0x91
+ CP1256 0x91 CP1257 0x91
+ EUC-JP 0xA1 0xC6 EUC-KR 0xA1 0xAE
+ EUC-TW 0xA1 0xE4 BIG5 0xA1 0xA5
+ BIG5-HKSCS 0xA1 0xA5 EUC-CN 0xA1 0xAE
+ GBK 0xA1 0xAE Georgian-PS 0x91
+ PT154 0x91
+
+ None of these is still in wide use; using iconv is overkill. */
+ locale_code = locale_charset ();
+ if (STRCASEEQ (locale_code, "UTF-8", 'U','T','F','-','8',0,0,0,0))
+ return msgid[0] == '`' ? "\xe2\x80\x98": "\xe2\x80\x99";
+ if (STRCASEEQ (locale_code, "GB18030", 'G','B','1','8','0','3','0',0,0))
+ return msgid[0] == '`' ? "\xa1\ae": "\xa1\xaf";
+
+ return (s == clocale_quoting_style ? "\"" : "'");
+}
+
+/* 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
+ "'". For example, a French Unicode local should translate
+ these to U+00AB (LEFT-POINTING DOUBLE ANGLE
+ QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE
+ QUOTATION MARK), respectively.
+
+ If the catalog has no translation, we will try to
+ use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and
+ Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the
+ current locale is not Unicode, locale_quoting_style
+ will quote 'like this', and clocale_quoting_style will
+ quote "like this". You should always include translations
+ for "`" and "'" even if U+2018 and U+2019 are appropriate
+ for your locale.
+
+ If you don't know what to put here, please see
+ <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
+ 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/gnu/quotearg.h b/gnu/quotearg.h
new file mode 100644
index 00000000..5f78cbb0
--- /dev/null
+++ b/gnu/quotearg.h
@@ -0,0 +1,393 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* quotearg.h - quote arguments for output
+
+ Copyright (C) 1998-2002, 2004, 2006, 2008-2012 Free Software Foundation,
+ Inc.
+
+ This 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> */
+
+#ifndef QUOTEARG_H_
+# define QUOTEARG_H_ 1
+
+# include <stddef.h>
+
+/* Basic quoting styles. For each style, an example is given on the
+ input strings "simple", "\0 \t\n'\"\033?""?/\\", and "a:b", using
+ quotearg_buffer, quotearg_mem, and quotearg_colon_mem with that
+ style and the default flags and quoted characters. Note that the
+ examples are shown here as valid C strings rather than what
+ displays on a terminal (with "??/" as a trigraph for "\\"). */
+enum quoting_style
+ {
+ /* Output names as-is (ls --quoting-style=literal). Can result in
+ embedded null bytes if QA_ELIDE_NULL_BYTES is not in
+ effect.
+
+ quotearg_buffer:
+ "simple", "\0 \t\n'\"\033??/\\", "a:b"
+ quotearg:
+ "simple", " \t\n'\"\033??/\\", "a:b"
+ quotearg_colon:
+ "simple", " \t\n'\"\033??/\\", "a:b"
+ */
+ literal_quoting_style,
+
+ /* Quote names for the shell if they contain shell metacharacters
+ or would cause ambiguous output (ls --quoting-style=shell).
+ Can result in embedded null bytes if QA_ELIDE_NULL_BYTES is not
+ in effect.
+
+ quotearg_buffer:
+ "simple", "'\0 \t\n'\\''\"\033??/\\'", "a:b"
+ quotearg:
+ "simple", "' \t\n'\\''\"\033??/\\'", "a:b"
+ quotearg_colon:
+ "simple", "' \t\n'\\''\"\033??/\\'", "'a:b'"
+ */
+ shell_quoting_style,
+
+ /* Quote names for the shell, even if they would normally not
+ require quoting (ls --quoting-style=shell-always). Can result
+ in embedded null bytes if QA_ELIDE_NULL_BYTES is not in effect.
+ Behaves like shell_quoting_style if QA_ELIDE_OUTER_QUOTES is in
+ effect.
+
+ quotearg_buffer:
+ "'simple'", "'\0 \t\n'\\''\"\033??/\\'", "'a:b'"
+ quotearg:
+ "'simple'", "' \t\n'\\''\"\033??/\\'", "'a:b'"
+ quotearg_colon:
+ "'simple'", "' \t\n'\\''\"\033??/\\'", "'a:b'"
+ */
+ shell_always_quoting_style,
+
+ /* Quote names as for a C language string (ls --quoting-style=c).
+ Behaves like c_maybe_quoting_style if QA_ELIDE_OUTER_QUOTES is
+ in effect. Split into consecutive strings if
+ QA_SPLIT_TRIGRAPHS.
+
+ 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\""
+ */
+ c_quoting_style,
+
+ /* Like c_quoting_style except omit the surrounding double-quote
+ characters if no quoted characters are encountered.
+
+ 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\""
+ */
+ c_maybe_quoting_style,
+
+ /* Like c_quoting_style except always omit the surrounding
+ double-quote characters and ignore QA_SPLIT_TRIGRAPHS
+ (ls --quoting-style=escape).
+
+ 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"
+ */
+ escape_quoting_style,
+
+ /* Like clocale_quoting_style, but use single quotes in the
+ default C locale or if the program does not use gettext
+ (ls --quoting-style=locale). For UTF-8 locales, quote
+ characters will use Unicode.
+
+ LC_MESSAGES=C
+ 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'"
+
+ LC_MESSAGES=pt_PT.utf8
+ quotearg_buffer:
+ "\302\253simple\302\273",
+ "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273"
+ quotearg:
+ "\302\253simple\302\273",
+ "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273"
+ quotearg_colon:
+ "\302\253simple\302\273",
+ "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a\\:b\302\273"
+ */
+ locale_quoting_style,
+
+ /* Like c_quoting_style except use quotation marks appropriate for
+ the locale and ignore QA_SPLIT_TRIGRAPHS
+ (ls --quoting-style=clocale).
+
+ LC_MESSAGES=C
+ 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\""
+
+ LC_MESSAGES=pt_PT.utf8
+ quotearg_buffer:
+ "\302\253simple\302\273",
+ "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273"
+ quotearg:
+ "\302\253simple\302\273",
+ "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a:b\302\273"
+ quotearg_colon:
+ "\302\253simple\302\273",
+ "\302\253\\0 \\t\\n'\"\\033??/\\\\\302\253", "\302\253a\\:b\302\273"
+ */
+ 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. */
+enum quoting_flags
+ {
+ /* Always elide null bytes from styles that do not quote them,
+ even when the length of the result is available to the
+ caller. */
+ QA_ELIDE_NULL_BYTES = 0x01,
+
+ /* Omit the surrounding quote characters if no escaped characters
+ are encountered. Note that if no other character needs
+ escaping, then neither does the escape character. */
+ QA_ELIDE_OUTER_QUOTES = 0x02,
+
+ /* In the c_quoting_style and c_maybe_quoting_style, split ANSI
+ trigraph sequences into concatenated strings (for example,
+ "?""?/" rather than "??/", which could be confused with
+ "\\"). */
+ QA_SPLIT_TRIGRAPHS = 0x04
+ };
+
+/* For now, --quoting-style=literal is the default, but this may change. */
+# ifndef DEFAULT_QUOTING_STYLE
+# define DEFAULT_QUOTING_STYLE literal_quoting_style
+# endif
+
+/* Names of quoting styles and their corresponding values. */
+extern char const *const quoting_style_args[];
+extern enum quoting_style const quoting_style_vals[];
+
+struct quoting_options;
+
+/* The functions listed below set and use a hidden variable
+ that contains the default quoting style 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);
+
+/* 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);
+
+/* 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);
+
+/* 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). 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),
+ 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);
+
+/* 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.
+ 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 -1, use the string length of the argument for ARGSIZE.
+ On output, BUFFER might contain embedded null bytes if ARGSIZE was
+ 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);
+
+/* 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);
+
+/* Like quotearg_alloc, except that the length of the result,
+ excluding the terminating null byte, is stored into SIZE if it is
+ non-NULL. The result might contain embedded null bytes if ARGSIZE
+ was not -1, SIZE was not NULL, the style of O does not use
+ 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);
+
+/* Use storage slot N to return a quoted version of the string ARG.
+ Use the default 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. The output of all functions in the
+ quotearg_n family are guaranteed to not contain embedded null
+ bytes.*/
+char *quotearg_n (int n, char const *arg);
+
+/* Equivalent to quotearg_n (0, ARG). */
+char *quotearg (char const *arg);
+
+/* Use storage slot N to return a quoted version of the argument ARG
+ of size ARGSIZE. This is like quotearg_n (N, ARG), except it can
+ quote null bytes. */
+char *quotearg_n_mem (int n, char const *arg, size_t argsize);
+
+/* Equivalent to quotearg_n_mem (0, ARG, ARGSIZE). */
+char *quotearg_mem (char const *arg, size_t argsize);
+
+/* Use style S and storage slot N to return a quoted version of the string ARG.
+ This is like quotearg_n (N, ARG), except that it uses S with no other
+ options to specify the quoting method. */
+char *quotearg_n_style (int n, enum quoting_style s, char const *arg);
+
+/* Use style S and storage slot N to return a quoted version of the
+ 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);
+
+/* 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);
+
+/* 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. */
+char *quotearg_char_mem (char const *arg, size_t argsize, char ch);
+
+/* Equivalent to quotearg_char (ARG, ':'). */
+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);
+
+#endif /* !QUOTEARG_H_ */
diff --git a/gnu/raise.c b/gnu/raise.c
new file mode 100644
index 00000000..cc0e972e
--- /dev/null
+++ b/gnu/raise.c
@@ -0,0 +1,81 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Provide a non-threads replacement for the POSIX raise function.
+
+ Copyright (C) 2002-2003, 2005-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 and Bruno Haible */
+
+#include <config.h>
+
+/* Specification. */
+#include <signal.h>
+
+#if HAVE_RAISE
+/* Native Windows platform. */
+
+# include <errno.h>
+
+# include "msvc-inval.h"
+
+# undef raise
+
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static inline int
+raise_nothrow (int sig)
+{
+ int result;
+
+ TRY_MSVC_INVAL
+ {
+ result = raise (sig);
+ }
+ CATCH_MSVC_INVAL
+ {
+ result = -1;
+ errno = EINVAL;
+ }
+ DONE_MSVC_INVAL;
+
+ return result;
+}
+# else
+# define raise_nothrow raise
+# endif
+
+#else
+/* An old Unix platform. */
+
+# include <unistd.h>
+
+# define rpl_raise raise
+
+#endif
+
+int
+rpl_raise (int sig)
+{
+#if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE
+ if (sig == SIGPIPE)
+ return _gl_raise_SIGPIPE ();
+#endif
+
+#if HAVE_RAISE
+ return raise_nothrow (sig);
+#else
+ return kill (getpid (), sig);
+#endif
+}
diff --git a/gnu/rawmemchr.c b/gnu/rawmemchr.c
new file mode 100644
index 00000000..000a3830
--- /dev/null
+++ b/gnu/rawmemchr.c
@@ -0,0 +1,138 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Searching in a string.
+ Copyright (C) 2008-2012 Free Software Foundation, Inc.
+
+ This 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 <string.h>
+
+/* Find the first occurrence of C in S. */
+void *
+rawmemchr (const void *s, int c_in)
+{
+ /* 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 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;
+ (size_t) char_ptr % sizeof (longword) != 0;
+ ++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 NUL or
+ 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.
+
+ The test whether any byte in longword1 is zero is equivalent
+ to testing whether tmp is nonzero.
+
+ This test can read beyond the end of a string, depending on where
+ C_IN is encountered. However, this is considered safe since the
+ initialization phase ensured that the read will be aligned,
+ therefore, the read will not cross page boundaries and will not
+ cause a fault. */
+
+ while (1)
+ {
+ longword longword1 = *longword_ptr ^ repeated_c;
+
+ if ((((longword1 - repeated_one) & ~longword1)
+ & (repeated_one << 7)) != 0)
+ break;
+ longword_ptr++;
+ }
+
+ char_ptr = (const unsigned char *) longword_ptr;
+
+ /* At this point, we know that 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. */
+
+ char_ptr = (unsigned char *) longword_ptr;
+ while (*char_ptr != c)
+ char_ptr++;
+ return (void *) char_ptr;
+}
diff --git a/gnu/rawmemchr.valgrind b/gnu/rawmemchr.valgrind
new file mode 100644
index 00000000..63639236
--- /dev/null
+++ b/gnu/rawmemchr.valgrind
@@ -0,0 +1,12 @@
+# Suppress a valgrind message about use of uninitialized memory in rawmemchr().
+# This use is OK because it provides only a speedup.
+{
+ rawmemchr-value4
+ Memcheck:Value4
+ fun:rawmemchr
+}
+{
+ rawmemchr-value8
+ Memcheck:Value8
+ fun:rawmemchr
+}
diff --git a/gnu/read.c b/gnu/read.c
new file mode 100644
index 00000000..eb2813cf
--- /dev/null
+++ b/gnu/read.c
@@ -0,0 +1,87 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* POSIX compatible read() function.
+ Copyright (C) 2008-2012 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2011.
+
+ This 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 <errno.h>
+# include <io.h>
+
+# define WIN32_LEAN_AND_MEAN /* avoid including junk */
+# include <windows.h>
+
+# include "msvc-inval.h"
+# include "msvc-nothrow.h"
+
+# undef read
+
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static inline ssize_t
+read_nothrow (int fd, void *buf, size_t count)
+{
+ ssize_t result;
+
+ TRY_MSVC_INVAL
+ {
+ result = read (fd, buf, count);
+ }
+ CATCH_MSVC_INVAL
+ {
+ result = -1;
+ errno = EBADF;
+ }
+ DONE_MSVC_INVAL;
+
+ return result;
+}
+# else
+# define read_nothrow read
+# endif
+
+ssize_t
+rpl_read (int fd, void *buf, size_t count)
+{
+ ssize_t ret = read_nothrow (fd, buf, count);
+
+# if GNULIB_NONBLOCKING
+ if (ret < 0
+ && GetLastError () == ERROR_NO_DATA)
+ {
+ HANDLE h = (HANDLE) _get_osfhandle (fd);
+ if (GetFileType (h) == FILE_TYPE_PIPE)
+ {
+ /* h is a pipe or socket. */
+ DWORD state;
+ if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL, NULL, 0)
+ && (state & PIPE_NOWAIT) != 0)
+ /* h is a pipe in non-blocking mode.
+ Change errno from EINVAL to EAGAIN. */
+ errno = EAGAIN;
+ }
+ }
+# endif
+
+ return ret;
+}
+
+#endif
diff --git a/gnu/readdir.c b/gnu/readdir.c
new file mode 100644
index 00000000..4d5f3106
--- /dev/null
+++ b/gnu/readdir.c
@@ -0,0 +1,100 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Read the next entry of a directory.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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 <dirent.h>
+
+#include <errno.h>
+#include <stddef.h>
+
+#include "dirent-private.h"
+
+struct dirent *
+readdir (DIR *dirp)
+{
+ char type;
+ struct dirent *result;
+
+ /* There is no need to add code to produce entries for "." and "..".
+ According to the POSIX:2008 section "4.12 Pathname Resolution"
+ <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap04.html>
+ "." and ".." are syntactic entities.
+ POSIX also says:
+ "If entries for dot or dot-dot exist, one entry shall be returned
+ for dot and one entry shall be returned for dot-dot; otherwise,
+ they shall not be returned." */
+
+ switch (dirp->status)
+ {
+ case -2:
+ /* End of directory already reached. */
+ return NULL;
+ case -1:
+ break;
+ case 0:
+ if (!FindNextFile (dirp->current, &dirp->entry))
+ {
+ switch (GetLastError ())
+ {
+ case ERROR_NO_MORE_FILES:
+ dirp->status = -2;
+ return NULL;
+ default:
+ errno = EIO;
+ return NULL;
+ }
+ }
+ break;
+ default:
+ errno = dirp->status;
+ return NULL;
+ }
+
+ dirp->status = 0;
+
+ if (dirp->entry.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
+ type = DT_DIR;
+ else if (dirp->entry.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)
+ type = DT_LNK;
+ else if ((dirp->entry.dwFileAttributes
+ & ~(FILE_ATTRIBUTE_READONLY
+ | FILE_ATTRIBUTE_HIDDEN
+ | FILE_ATTRIBUTE_SYSTEM
+ | FILE_ATTRIBUTE_ARCHIVE
+ | FILE_ATTRIBUTE_NORMAL
+ | FILE_ATTRIBUTE_TEMPORARY
+ | FILE_ATTRIBUTE_SPARSE_FILE
+ | FILE_ATTRIBUTE_COMPRESSED
+ | FILE_ATTRIBUTE_NOT_CONTENT_INDEXED
+ | FILE_ATTRIBUTE_ENCRYPTED)) == 0)
+ /* Devices like COM1, LPT1, NUL would also have the attributes 0x20 but
+ they cannot occur here. */
+ type = DT_REG;
+ else
+ type = DT_UNKNOWN;
+
+ /* Reuse the memory of dirp->entry for the result. */
+ result =
+ (struct dirent *)
+ ((char *) dirp->entry.cFileName - offsetof (struct dirent, d_name[0]));
+ result->d_type = type;
+
+ return result;
+}
diff --git a/gnu/readlink.c b/gnu/readlink.c
new file mode 100644
index 00000000..4028fbce
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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/gnu/readlinkat.c b/gnu/readlinkat.c
new file mode 100644
index 00000000..bd4abe40
--- /dev/null
+++ b/gnu/readlinkat.c
@@ -0,0 +1,49 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Read a symlink relative to an open directory.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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>
+
+/* Gnulib provides a readlink stub for mingw; use it for distinction
+ between EINVAL and ENOENT, rather than always failing with ENOSYS. */
+
+/* POSIX 2008 says that unlike readlink, readlinkat returns 0 for
+ success instead of the buffer length. But this would render
+ readlinkat worthless since readlink does not guarantee a
+ NUL-terminated buffer. Assume this was a bug in POSIX. */
+
+/* Read the contents of symlink FILE into buffer BUF of size LEN, in the
+ directory open on descriptor FD. If possible, do it without changing
+ the working directory. Otherwise, resort to using save_cwd/fchdir,
+ then readlink/restore_cwd. If either the save_cwd or the restore_cwd
+ fails, then give a diagnostic and exit nonzero. */
+
+#define AT_FUNC_NAME readlinkat
+#define AT_FUNC_F1 readlink
+#define AT_FUNC_POST_FILE_PARAM_DECLS , char *buf, size_t len
+#define AT_FUNC_POST_FILE_ARGS , buf, len
+#define AT_FUNC_RESULT ssize_t
+#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
+#undef AT_FUNC_RESULT
diff --git a/gnu/realloc.c b/gnu/realloc.c
new file mode 100644
index 00000000..4df2e5d4
--- /dev/null
+++ b/gnu/realloc.c
@@ -0,0 +1,81 @@
+/* -*- 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, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 and Bruno Haible */
+
+#define _GL_USE_STDLIB_ALLOC 1
+#include <config.h>
+
+/* Only the AC_FUNC_REALLOC macro defines 'realloc' already in config.h. */
+#ifdef realloc
+# define NEED_REALLOC_GNU 1
+/* Whereas the gnulib module 'realloc-gnu' defines HAVE_REALLOC_GNU. */
+#elif GNULIB_REALLOC_GNU && !HAVE_REALLOC_GNU
+# define NEED_REALLOC_GNU 1
+#endif
+
+/* Infer the properties of the system's malloc function.
+ The gnulib module 'malloc-gnu' defines HAVE_MALLOC_GNU. */
+#if GNULIB_MALLOC_GNU && HAVE_MALLOC_GNU
+# define SYSTEM_MALLOC_GLIBC_COMPATIBLE 1
+#endif
+
+#include <stdlib.h>
+
+#include <errno.h>
+
+/* Change the size of an allocated block of memory P to N bytes,
+ with error checking. If N is zero, change it to 1. If P is NULL,
+ use malloc. */
+
+void *
+rpl_realloc (void *p, size_t n)
+{
+ void *result;
+
+#if NEED_REALLOC_GNU
+ if (n == 0)
+ {
+ n = 1;
+
+ /* In theory realloc might fail, so don't rely on it to free. */
+ free (p);
+ p = NULL;
+ }
+#endif
+
+ if (p == NULL)
+ {
+#if GNULIB_REALLOC_GNU && !NEED_REALLOC_GNU && !SYSTEM_MALLOC_GLIBC_COMPATIBLE
+ if (n == 0)
+ n = 1;
+#endif
+ result = malloc (n);
+ }
+ else
+ result = realloc (p, n);
+
+#if !HAVE_REALLOC_POSIX
+ if (result == NULL)
+ errno = ENOMEM;
+#endif
+
+ return result;
+}
diff --git a/gnu/ref-add.sin b/gnu/ref-add.sin
new file mode 100644
index 00000000..d51d3bb2
--- /dev/null
+++ b/gnu/ref-add.sin
@@ -0,0 +1,30 @@
+# Add this package to a list of references stored in a text file.
+#
+# Copyright (C) 2000, 2009-2012 Free Software Foundation, Inc.
+#
+# This 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 <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+ s/# Packages using this file://
+ ta
+ :a
+ s/ @PACKAGE@ / @PACKAGE@ /
+ tb
+ s/ $/ @PACKAGE@ /
+ :b
+ s/^/# Packages using this file:/
+}
diff --git a/gnu/ref-del.sin b/gnu/ref-del.sin
new file mode 100644
index 00000000..29543c31
--- /dev/null
+++ b/gnu/ref-del.sin
@@ -0,0 +1,25 @@
+# Remove this package from a list of references stored in a text file.
+#
+# Copyright (C) 2000, 2009-2012 Free Software Foundation, Inc.
+#
+# This 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 <haible@clisp.cons.org>.
+#
+/^# Packages using this file: / {
+ s/# Packages using this file://
+ s/ @PACKAGE@ / /
+ s/^/# Packages using this file:/
+}
diff --git a/gnu/regcomp.c b/gnu/regcomp.c
new file mode 100644
index 00000000..174afc0b
--- /dev/null
+++ b/gnu/regcomp.c
@@ -0,0 +1,3878 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Extended regular expression matching and search library.
+ Copyright (C) 2002-2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+ This 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. */
+
+static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
+ size_t length, reg_syntax_t syntax);
+static void re_compile_fastmap_iter (regex_t *bufp,
+ const re_dfastate_t *init_state,
+ char *fastmap);
+static reg_errcode_t init_dfa (re_dfa_t *dfa, size_t pat_len);
+#ifdef RE_ENABLE_I18N
+static void free_charset (re_charset_t *cset);
+#endif /* RE_ENABLE_I18N */
+static void free_workarea_compile (regex_t *preg);
+static reg_errcode_t create_initial_state (re_dfa_t *dfa);
+#ifdef RE_ENABLE_I18N
+static void optimize_utf8 (re_dfa_t *dfa);
+#endif
+static reg_errcode_t analyze (regex_t *preg);
+static reg_errcode_t preorder (bin_tree_t *root,
+ reg_errcode_t (fn (void *, bin_tree_t *)),
+ void *extra);
+static reg_errcode_t postorder (bin_tree_t *root,
+ reg_errcode_t (fn (void *, bin_tree_t *)),
+ void *extra);
+static reg_errcode_t optimize_subexps (void *extra, bin_tree_t *node);
+static reg_errcode_t lower_subexps (void *extra, bin_tree_t *node);
+static bin_tree_t *lower_subexp (reg_errcode_t *err, regex_t *preg,
+ bin_tree_t *node);
+static reg_errcode_t calc_first (void *extra, bin_tree_t *node);
+static reg_errcode_t calc_next (void *extra, bin_tree_t *node);
+static reg_errcode_t link_nfa_nodes (void *extra, bin_tree_t *node);
+static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint);
+static Idx search_duplicated_node (const re_dfa_t *dfa, Idx org_node,
+ unsigned int constraint);
+static reg_errcode_t calc_eclosure (re_dfa_t *dfa);
+static reg_errcode_t calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa,
+ Idx node, bool root);
+static reg_errcode_t calc_inveclosure (re_dfa_t *dfa);
+static Idx fetch_number (re_string_t *input, re_token_t *token,
+ reg_syntax_t syntax);
+static int peek_token (re_token_t *token, re_string_t *input,
+ reg_syntax_t syntax) internal_function;
+static bin_tree_t *parse (re_string_t *regexp, regex_t *preg,
+ reg_syntax_t syntax, reg_errcode_t *err);
+static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg,
+ re_token_t *token, reg_syntax_t syntax,
+ Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_branch (re_string_t *regexp, regex_t *preg,
+ re_token_t *token, reg_syntax_t syntax,
+ Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_expression (re_string_t *regexp, regex_t *preg,
+ re_token_t *token, reg_syntax_t syntax,
+ Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_sub_exp (re_string_t *regexp, regex_t *preg,
+ re_token_t *token, reg_syntax_t syntax,
+ Idx nest, reg_errcode_t *err);
+static bin_tree_t *parse_dup_op (bin_tree_t *dup_elem, re_string_t *regexp,
+ re_dfa_t *dfa, re_token_t *token,
+ reg_syntax_t syntax, reg_errcode_t *err);
+static bin_tree_t *parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa,
+ re_token_t *token, reg_syntax_t syntax,
+ reg_errcode_t *err);
+static reg_errcode_t parse_bracket_element (bracket_elem_t *elem,
+ re_string_t *regexp,
+ re_token_t *token, int token_len,
+ re_dfa_t *dfa,
+ reg_syntax_t syntax,
+ bool accept_hyphen);
+static reg_errcode_t parse_bracket_symbol (bracket_elem_t *elem,
+ re_string_t *regexp,
+ re_token_t *token);
+#ifdef RE_ENABLE_I18N
+static reg_errcode_t build_equiv_class (bitset_t sbcset,
+ re_charset_t *mbcset,
+ Idx *equiv_class_alloc,
+ const unsigned char *name);
+static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
+ bitset_t sbcset,
+ re_charset_t *mbcset,
+ Idx *char_class_alloc,
+ const unsigned char *class_name,
+ reg_syntax_t syntax);
+#else /* not RE_ENABLE_I18N */
+static reg_errcode_t build_equiv_class (bitset_t sbcset,
+ const unsigned char *name);
+static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
+ bitset_t sbcset,
+ const unsigned char *class_name,
+ reg_syntax_t syntax);
+#endif /* not RE_ENABLE_I18N */
+static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
+ RE_TRANSLATE_TYPE trans,
+ const unsigned char *class_name,
+ const unsigned char *extra,
+ bool non_match, reg_errcode_t *err);
+static bin_tree_t *create_tree (re_dfa_t *dfa,
+ bin_tree_t *left, bin_tree_t *right,
+ re_token_type_t type);
+static bin_tree_t *create_token_tree (re_dfa_t *dfa,
+ bin_tree_t *left, bin_tree_t *right,
+ const re_token_t *token);
+static bin_tree_t *duplicate_tree (const bin_tree_t *src, re_dfa_t *dfa);
+static void free_token (re_token_t *node);
+static reg_errcode_t free_tree (void *extra, bin_tree_t *node);
+static reg_errcode_t mark_opt_subexp (void *extra, bin_tree_t *node);
+
+/* This table gives an error message for each of the error codes listed
+ in regex.h. Obviously the order here has to be same as there.
+ POSIX doesn't require that we do anything for REG_NOERROR,
+ but why not be nice? */
+
+static const char __re_error_msgid[] =
+ {
+#define REG_NOERROR_IDX 0
+ gettext_noop ("Success") /* REG_NOERROR */
+ "\0"
+#define REG_NOMATCH_IDX (REG_NOERROR_IDX + sizeof "Success")
+ gettext_noop ("No match") /* REG_NOMATCH */
+ "\0"
+#define REG_BADPAT_IDX (REG_NOMATCH_IDX + sizeof "No match")
+ gettext_noop ("Invalid regular expression") /* REG_BADPAT */
+ "\0"
+#define REG_ECOLLATE_IDX (REG_BADPAT_IDX + sizeof "Invalid regular expression")
+ gettext_noop ("Invalid collation character") /* REG_ECOLLATE */
+ "\0"
+#define REG_ECTYPE_IDX (REG_ECOLLATE_IDX + sizeof "Invalid collation character")
+ gettext_noop ("Invalid character class name") /* REG_ECTYPE */
+ "\0"
+#define REG_EESCAPE_IDX (REG_ECTYPE_IDX + sizeof "Invalid character class name")
+ gettext_noop ("Trailing backslash") /* REG_EESCAPE */
+ "\0"
+#define REG_ESUBREG_IDX (REG_EESCAPE_IDX + sizeof "Trailing backslash")
+ gettext_noop ("Invalid back reference") /* REG_ESUBREG */
+ "\0"
+#define REG_EBRACK_IDX (REG_ESUBREG_IDX + sizeof "Invalid back reference")
+ gettext_noop ("Unmatched [ or [^") /* REG_EBRACK */
+ "\0"
+#define REG_EPAREN_IDX (REG_EBRACK_IDX + sizeof "Unmatched [ or [^")
+ gettext_noop ("Unmatched ( or \\(") /* REG_EPAREN */
+ "\0"
+#define REG_EBRACE_IDX (REG_EPAREN_IDX + sizeof "Unmatched ( or \\(")
+ gettext_noop ("Unmatched \\{") /* REG_EBRACE */
+ "\0"
+#define REG_BADBR_IDX (REG_EBRACE_IDX + sizeof "Unmatched \\{")
+ gettext_noop ("Invalid content of \\{\\}") /* REG_BADBR */
+ "\0"
+#define REG_ERANGE_IDX (REG_BADBR_IDX + sizeof "Invalid content of \\{\\}")
+ gettext_noop ("Invalid range end") /* REG_ERANGE */
+ "\0"
+#define REG_ESPACE_IDX (REG_ERANGE_IDX + sizeof "Invalid range end")
+ gettext_noop ("Memory exhausted") /* REG_ESPACE */
+ "\0"
+#define REG_BADRPT_IDX (REG_ESPACE_IDX + sizeof "Memory exhausted")
+ gettext_noop ("Invalid preceding regular expression") /* REG_BADRPT */
+ "\0"
+#define REG_EEND_IDX (REG_BADRPT_IDX + sizeof "Invalid preceding regular expression")
+ gettext_noop ("Premature end of regular expression") /* REG_EEND */
+ "\0"
+#define REG_ESIZE_IDX (REG_EEND_IDX + sizeof "Premature end of regular expression")
+ gettext_noop ("Regular expression too big") /* REG_ESIZE */
+ "\0"
+#define REG_ERPAREN_IDX (REG_ESIZE_IDX + sizeof "Regular expression too big")
+ gettext_noop ("Unmatched ) or \\)") /* REG_ERPAREN */
+ };
+
+static const size_t __re_error_msgid_idx[] =
+ {
+ REG_NOERROR_IDX,
+ REG_NOMATCH_IDX,
+ REG_BADPAT_IDX,
+ REG_ECOLLATE_IDX,
+ REG_ECTYPE_IDX,
+ REG_EESCAPE_IDX,
+ REG_ESUBREG_IDX,
+ REG_EBRACK_IDX,
+ REG_EPAREN_IDX,
+ REG_EBRACE_IDX,
+ REG_BADBR_IDX,
+ REG_ERANGE_IDX,
+ REG_ESPACE_IDX,
+ REG_BADRPT_IDX,
+ REG_EEND_IDX,
+ REG_ESIZE_IDX,
+ REG_ERPAREN_IDX
+ };
+
+/* Entry points for GNU code. */
+
+/* re_compile_pattern is the GNU regular expression compiler: it
+ compiles PATTERN (of length LENGTH) and puts the result in BUFP.
+ Returns 0 if the pattern was valid, otherwise an error string.
+
+ Assumes the 'allocated' (and perhaps 'buffer') and 'translate' fields
+ are set in BUFP on entry. */
+
+#ifdef _LIBC
+const char *
+re_compile_pattern (pattern, length, bufp)
+ const char *pattern;
+ size_t length;
+ struct re_pattern_buffer *bufp;
+#else /* size_t might promote */
+const char *
+re_compile_pattern (const char *pattern, size_t length,
+ struct re_pattern_buffer *bufp)
+#endif
+{
+ reg_errcode_t ret;
+
+ /* And GNU code determines whether or not to get register information
+ by passing null for the REGS argument to re_match, etc., not by
+ setting no_sub, unless RE_NO_SUB is set. */
+ bufp->no_sub = !!(re_syntax_options & RE_NO_SUB);
+
+ /* Match anchors at newline. */
+ bufp->newline_anchor = 1;
+
+ ret = re_compile_internal (bufp, pattern, length, re_syntax_options);
+
+ if (!ret)
+ return NULL;
+ return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
+}
+#ifdef _LIBC
+weak_alias (__re_compile_pattern, re_compile_pattern)
+#endif
+
+/* Set by 're_set_syntax' to the current regexp syntax to recognize. Can
+ also be assigned to arbitrarily: each pattern buffer stores its own
+ syntax, so it can be changed between regex compilations. */
+/* This has no initializer because initialized variables in Emacs
+ become read-only after dumping. */
+reg_syntax_t re_syntax_options;
+
+
+/* Specify the precise syntax of regexps for compilation. This provides
+ for compatibility for various utilities which historically have
+ different, incompatible syntaxes.
+
+ The argument SYNTAX is a bit mask comprised of the various bits
+ defined in regex.h. We return the old syntax. */
+
+reg_syntax_t
+re_set_syntax (syntax)
+ reg_syntax_t syntax;
+{
+ reg_syntax_t ret = re_syntax_options;
+
+ re_syntax_options = syntax;
+ return ret;
+}
+#ifdef _LIBC
+weak_alias (__re_set_syntax, re_set_syntax)
+#endif
+
+int
+re_compile_fastmap (bufp)
+ struct re_pattern_buffer *bufp;
+{
+ re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+ char *fastmap = bufp->fastmap;
+
+ memset (fastmap, '\0', sizeof (char) * SBC_MAX);
+ re_compile_fastmap_iter (bufp, dfa->init_state, fastmap);
+ if (dfa->init_state != dfa->init_state_word)
+ re_compile_fastmap_iter (bufp, dfa->init_state_word, fastmap);
+ if (dfa->init_state != dfa->init_state_nl)
+ re_compile_fastmap_iter (bufp, dfa->init_state_nl, fastmap);
+ if (dfa->init_state != dfa->init_state_begbuf)
+ re_compile_fastmap_iter (bufp, dfa->init_state_begbuf, fastmap);
+ bufp->fastmap_accurate = 1;
+ return 0;
+}
+#ifdef _LIBC
+weak_alias (__re_compile_fastmap, re_compile_fastmap)
+#endif
+
+static inline void
+__attribute ((always_inline))
+re_set_fastmap (char *fastmap, bool icase, int ch)
+{
+ fastmap[ch] = 1;
+ if (icase)
+ fastmap[tolower (ch)] = 1;
+}
+
+/* Helper function for re_compile_fastmap.
+ Compile fastmap for the initial_state INIT_STATE. */
+
+static void
+re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state,
+ char *fastmap)
+{
+ re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+ Idx node_cnt;
+ bool icase = (dfa->mb_cur_max == 1 && (bufp->syntax & RE_ICASE));
+ for (node_cnt = 0; node_cnt < init_state->nodes.nelem; ++node_cnt)
+ {
+ Idx node = init_state->nodes.elems[node_cnt];
+ re_token_type_t type = dfa->nodes[node].type;
+
+ if (type == CHARACTER)
+ {
+ re_set_fastmap (fastmap, icase, dfa->nodes[node].opr.c);
+#ifdef RE_ENABLE_I18N
+ if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
+ {
+ unsigned char buf[MB_LEN_MAX];
+ unsigned char *p;
+ wchar_t wc;
+ mbstate_t state;
+
+ p = buf;
+ *p++ = dfa->nodes[node].opr.c;
+ while (++node < dfa->nodes_len
+ && dfa->nodes[node].type == CHARACTER
+ && dfa->nodes[node].mb_partial)
+ *p++ = dfa->nodes[node].opr.c;
+ memset (&state, '\0', sizeof (state));
+ if (__mbrtowc (&wc, (const char *) buf, p - buf,
+ &state) == p - buf
+ && (__wcrtomb ((char *) buf, towlower (wc), &state)
+ != (size_t) -1))
+ re_set_fastmap (fastmap, false, buf[0]);
+ }
+#endif
+ }
+ else if (type == SIMPLE_BRACKET)
+ {
+ int i, ch;
+ for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+ {
+ int j;
+ bitset_word_t w = dfa->nodes[node].opr.sbcset[i];
+ for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+ if (w & ((bitset_word_t) 1 << j))
+ re_set_fastmap (fastmap, icase, ch);
+ }
+ }
+#ifdef RE_ENABLE_I18N
+ else if (type == COMPLEX_BRACKET)
+ {
+ re_charset_t *cset = dfa->nodes[node].opr.mbcset;
+ Idx i;
+
+# ifdef _LIBC
+ /* See if we have to try all bytes which start multiple collation
+ elements.
+ e.g. In da_DK, we want to catch 'a' since "aa" is a valid
+ collation element, and don't catch 'b' since 'b' is
+ the only collation element which starts from 'b' (and
+ it is caught by SIMPLE_BRACKET). */
+ if (_NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES) != 0
+ && (cset->ncoll_syms || cset->nranges))
+ {
+ const int32_t *table = (const int32_t *)
+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+ for (i = 0; i < SBC_MAX; ++i)
+ if (table[i] < 0)
+ re_set_fastmap (fastmap, icase, i);
+ }
+# endif /* _LIBC */
+
+ /* See if we have to start the match at all multibyte characters,
+ i.e. where we would not find an invalid sequence. This only
+ 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->nranges
+# ifdef _LIBC
+ || cset->nequiv_classes
+# endif /* _LIBC */
+ ))
+ {
+ unsigned char c = 0;
+ do
+ {
+ mbstate_t mbs;
+ memset (&mbs, 0, sizeof (mbs));
+ if (__mbrtowc (NULL, (char *) &c, 1, &mbs) == (size_t) -2)
+ re_set_fastmap (fastmap, false, (int) c);
+ }
+ while (++c != 0);
+ }
+
+ else
+ {
+ /* ... Else catch all bytes which can start the mbchars. */
+ for (i = 0; i < cset->nmbchars; ++i)
+ {
+ char buf[256];
+ mbstate_t state;
+ memset (&state, '\0', sizeof (state));
+ if (__wcrtomb (buf, cset->mbchars[i], &state) != (size_t) -1)
+ re_set_fastmap (fastmap, icase, *(unsigned char *) buf);
+ if ((bufp->syntax & RE_ICASE) && dfa->mb_cur_max > 1)
+ {
+ if (__wcrtomb (buf, towlower (cset->mbchars[i]), &state)
+ != (size_t) -1)
+ re_set_fastmap (fastmap, false, *(unsigned char *) buf);
+ }
+ }
+ }
+ }
+#endif /* RE_ENABLE_I18N */
+ else if (type == OP_PERIOD
+#ifdef RE_ENABLE_I18N
+ || type == OP_UTF8_PERIOD
+#endif /* RE_ENABLE_I18N */
+ || type == END_OF_RE)
+ {
+ memset (fastmap, '\1', sizeof (char) * SBC_MAX);
+ if (type == END_OF_RE)
+ bufp->can_be_null = 1;
+ return;
+ }
+ }
+}
+
+/* Entry point for POSIX code. */
+/* regcomp takes a regular expression as a string and compiles it.
+
+ PREG is a regex_t *. We do not expect any fields to be initialized,
+ since POSIX says we shouldn't. Thus, we set
+
+ 'buffer' to the compiled pattern;
+ 'used' to the length of the compiled pattern;
+ 'syntax' to RE_SYNTAX_POSIX_EXTENDED if the
+ REG_EXTENDED bit in CFLAGS is set; otherwise, to
+ RE_SYNTAX_POSIX_BASIC;
+ 'newline_anchor' to REG_NEWLINE being set in CFLAGS;
+ 'fastmap' to an allocated space for the fastmap;
+ 'fastmap_accurate' to zero;
+ 're_nsub' to the number of subexpressions in PATTERN.
+
+ PATTERN is the address of the pattern string.
+
+ CFLAGS is a series of bits which affect compilation.
+
+ If REG_EXTENDED is set, we use POSIX extended syntax; otherwise, we
+ use POSIX basic syntax.
+
+ If REG_NEWLINE is set, then . and [^...] don't match newline.
+ Also, regexec will try a match beginning after every newline.
+
+ If REG_ICASE is set, then we considers upper- and lowercase
+ versions of letters to be equivalent when matching.
+
+ If REG_NOSUB is set, then when PREG is passed to regexec, that
+ routine will report only success or failure, and nothing about the
+ registers.
+
+ It returns 0 if it succeeds, nonzero if it doesn't. (See regex.h for
+ the return codes and their meanings.) */
+
+int
+regcomp (preg, pattern, cflags)
+ regex_t *_Restrict_ preg;
+ const char *_Restrict_ pattern;
+ int cflags;
+{
+ reg_errcode_t ret;
+ reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED
+ : RE_SYNTAX_POSIX_BASIC);
+
+ preg->buffer = NULL;
+ preg->allocated = 0;
+ preg->used = 0;
+
+ /* Try to allocate space for the fastmap. */
+ preg->fastmap = re_malloc (char, SBC_MAX);
+ if (BE (preg->fastmap == NULL, 0))
+ return REG_ESPACE;
+
+ syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0;
+
+ /* If REG_NEWLINE is set, newlines are treated differently. */
+ if (cflags & REG_NEWLINE)
+ { /* REG_NEWLINE implies neither . nor [^...] match newline. */
+ syntax &= ~RE_DOT_NEWLINE;
+ syntax |= RE_HAT_LISTS_NOT_NEWLINE;
+ /* It also changes the matching behavior. */
+ preg->newline_anchor = 1;
+ }
+ else
+ preg->newline_anchor = 0;
+ preg->no_sub = !!(cflags & REG_NOSUB);
+ preg->translate = NULL;
+
+ ret = re_compile_internal (preg, pattern, strlen (pattern), syntax);
+
+ /* POSIX doesn't distinguish between an unmatched open-group and an
+ unmatched close-group: both are REG_EPAREN. */
+ if (ret == REG_ERPAREN)
+ ret = REG_EPAREN;
+
+ /* We have already checked preg->fastmap != NULL. */
+ if (BE (ret == REG_NOERROR, 1))
+ /* Compute the fastmap now, since regexec cannot modify the pattern
+ buffer. This function never fails in this implementation. */
+ (void) re_compile_fastmap (preg);
+ else
+ {
+ /* Some error occurred while compiling the expression. */
+ re_free (preg->fastmap);
+ preg->fastmap = NULL;
+ }
+
+ return (int) ret;
+}
+#ifdef _LIBC
+weak_alias (__regcomp, regcomp)
+#endif
+
+/* Returns a message corresponding to an error code, ERRCODE, returned
+ from either regcomp or regexec. We don't use PREG here. */
+
+#ifdef _LIBC
+size_t
+regerror (errcode, preg, errbuf, errbuf_size)
+ int errcode;
+ const regex_t *_Restrict_ preg;
+ char *_Restrict_ errbuf;
+ size_t errbuf_size;
+#else /* size_t might promote */
+size_t
+regerror (int errcode, const regex_t *_Restrict_ preg,
+ char *_Restrict_ errbuf, size_t errbuf_size)
+#endif
+{
+ const char *msg;
+ size_t msg_size;
+
+ if (BE (errcode < 0
+ || errcode >= (int) (sizeof (__re_error_msgid_idx)
+ / sizeof (__re_error_msgid_idx[0])), 0))
+ /* Only error codes returned by the rest of the code should be passed
+ to this routine. If we are given anything else, or if other regex
+ code generates an invalid error code, then the program has a bug.
+ Dump core so we can fix it. */
+ abort ();
+
+ msg = gettext (__re_error_msgid + __re_error_msgid_idx[errcode]);
+
+ msg_size = strlen (msg) + 1; /* Includes the null. */
+
+ if (BE (errbuf_size != 0, 1))
+ {
+ size_t cpy_size = msg_size;
+ if (BE (msg_size > errbuf_size, 0))
+ {
+ cpy_size = errbuf_size - 1;
+ errbuf[cpy_size] = '\0';
+ }
+ memcpy (errbuf, msg, cpy_size);
+ }
+
+ return msg_size;
+}
+#ifdef _LIBC
+weak_alias (__regerror, regerror)
+#endif
+
+
+#ifdef RE_ENABLE_I18N
+/* This static array is used for the map to single-byte characters when
+ UTF-8 is used. Otherwise we would allocate memory just to initialize
+ it the same all the time. UTF-8 is the preferred encoding so this is
+ a worthwhile optimization. */
+static const bitset_t utf8_sb_map =
+{
+ /* Set the first 128 bits. */
+# if 4 * BITSET_WORD_BITS < ASCII_CHARS
+# error "bitset_word_t is narrower than 32 bits"
+# elif 3 * BITSET_WORD_BITS < ASCII_CHARS
+ BITSET_WORD_MAX, BITSET_WORD_MAX, BITSET_WORD_MAX,
+# elif 2 * BITSET_WORD_BITS < ASCII_CHARS
+ BITSET_WORD_MAX, BITSET_WORD_MAX,
+# elif 1 * BITSET_WORD_BITS < ASCII_CHARS
+ BITSET_WORD_MAX,
+# endif
+ (BITSET_WORD_MAX
+ >> (SBC_MAX % BITSET_WORD_BITS == 0
+ ? 0
+ : BITSET_WORD_BITS - SBC_MAX % BITSET_WORD_BITS))
+};
+#endif
+
+
+static void
+free_dfa_content (re_dfa_t *dfa)
+{
+ Idx i, j;
+
+ if (dfa->nodes)
+ for (i = 0; i < dfa->nodes_len; ++i)
+ free_token (dfa->nodes + i);
+ re_free (dfa->nexts);
+ for (i = 0; i < dfa->nodes_len; ++i)
+ {
+ if (dfa->eclosures != NULL)
+ re_node_set_free (dfa->eclosures + i);
+ if (dfa->inveclosures != NULL)
+ re_node_set_free (dfa->inveclosures + i);
+ if (dfa->edests != NULL)
+ re_node_set_free (dfa->edests + i);
+ }
+ re_free (dfa->edests);
+ re_free (dfa->eclosures);
+ re_free (dfa->inveclosures);
+ re_free (dfa->nodes);
+
+ if (dfa->state_table)
+ for (i = 0; i <= dfa->state_hash_mask; ++i)
+ {
+ struct re_state_table_entry *entry = dfa->state_table + i;
+ for (j = 0; j < entry->num; ++j)
+ {
+ re_dfastate_t *state = entry->array[j];
+ free_state (state);
+ }
+ re_free (entry->array);
+ }
+ re_free (dfa->state_table);
+#ifdef RE_ENABLE_I18N
+ if (dfa->sb_char != utf8_sb_map)
+ re_free (dfa->sb_char);
+#endif
+ re_free (dfa->subexp_map);
+#ifdef DEBUG
+ re_free (dfa->re_str);
+#endif
+
+ re_free (dfa);
+}
+
+
+/* Free dynamically allocated space used by PREG. */
+
+void
+regfree (preg)
+ regex_t *preg;
+{
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+ if (BE (dfa != NULL, 1))
+ free_dfa_content (dfa);
+ preg->buffer = NULL;
+ preg->allocated = 0;
+
+ re_free (preg->fastmap);
+ preg->fastmap = NULL;
+
+ re_free (preg->translate);
+ preg->translate = NULL;
+}
+#ifdef _LIBC
+weak_alias (__regfree, regfree)
+#endif
+
+/* Entry points compatible with 4.2 BSD regex library. We don't define
+ them unless specifically requested. */
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+
+/* BSD has one and only one pattern buffer. */
+static struct re_pattern_buffer re_comp_buf;
+
+char *
+# ifdef _LIBC
+/* Make these definitions weak in libc, so POSIX programs can redefine
+ these names if they don't use our functions, and still use
+ regcomp/regexec above without link errors. */
+weak_function
+# endif
+re_comp (s)
+ const char *s;
+{
+ reg_errcode_t ret;
+ char *fastmap;
+
+ if (!s)
+ {
+ if (!re_comp_buf.buffer)
+ return gettext ("No previous regular expression");
+ return 0;
+ }
+
+ if (re_comp_buf.buffer)
+ {
+ fastmap = re_comp_buf.fastmap;
+ re_comp_buf.fastmap = NULL;
+ __regfree (&re_comp_buf);
+ memset (&re_comp_buf, '\0', sizeof (re_comp_buf));
+ re_comp_buf.fastmap = fastmap;
+ }
+
+ if (re_comp_buf.fastmap == NULL)
+ {
+ re_comp_buf.fastmap = (char *) malloc (SBC_MAX);
+ if (re_comp_buf.fastmap == NULL)
+ return (char *) gettext (__re_error_msgid
+ + __re_error_msgid_idx[(int) REG_ESPACE]);
+ }
+
+ /* Since 're_exec' always passes NULL for the 'regs' argument, we
+ don't need to initialize the pattern buffer fields which affect it. */
+
+ /* Match anchors at newlines. */
+ re_comp_buf.newline_anchor = 1;
+
+ ret = re_compile_internal (&re_comp_buf, s, strlen (s), re_syntax_options);
+
+ if (!ret)
+ return NULL;
+
+ /* Yes, we're discarding 'const' here if !HAVE_LIBINTL. */
+ return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]);
+}
+
+#ifdef _LIBC
+libc_freeres_fn (free_mem)
+{
+ __regfree (&re_comp_buf);
+}
+#endif
+
+#endif /* _REGEX_RE_COMP */
+
+/* Internal entry point.
+ Compile the regular expression PATTERN, whose length is LENGTH.
+ SYNTAX indicate regular expression's syntax. */
+
+static reg_errcode_t
+re_compile_internal (regex_t *preg, const char * pattern, size_t length,
+ reg_syntax_t syntax)
+{
+ reg_errcode_t err = REG_NOERROR;
+ re_dfa_t *dfa;
+ re_string_t regexp;
+
+ /* Initialize the pattern buffer. */
+ preg->fastmap_accurate = 0;
+ preg->syntax = syntax;
+ preg->not_bol = preg->not_eol = 0;
+ preg->used = 0;
+ preg->re_nsub = 0;
+ preg->can_be_null = 0;
+ preg->regs_allocated = REGS_UNALLOCATED;
+
+ /* Initialize the dfa. */
+ dfa = (re_dfa_t *) preg->buffer;
+ if (BE (preg->allocated < sizeof (re_dfa_t), 0))
+ {
+ /* If zero allocated, but buffer is non-null, try to realloc
+ enough space. This loses if buffer's address is bogus, but
+ that is the user's responsibility. If ->buffer is NULL this
+ is a simple allocation. */
+ dfa = re_realloc (preg->buffer, re_dfa_t, 1);
+ if (dfa == NULL)
+ return REG_ESPACE;
+ preg->allocated = sizeof (re_dfa_t);
+ preg->buffer = (unsigned char *) dfa;
+ }
+ preg->used = sizeof (re_dfa_t);
+
+ err = init_dfa (dfa, length);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ free_dfa_content (dfa);
+ preg->buffer = NULL;
+ preg->allocated = 0;
+ return err;
+ }
+#ifdef DEBUG
+ /* Note: length+1 will not overflow since it is checked in init_dfa. */
+ dfa->re_str = re_malloc (char, length + 1);
+ strncpy (dfa->re_str, pattern, length + 1);
+#endif
+
+ __libc_lock_init (dfa->lock);
+
+ err = re_string_construct (&regexp, pattern, length, preg->translate,
+ (syntax & RE_ICASE) != 0, dfa);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_compile_internal_free_return:
+ free_workarea_compile (preg);
+ re_string_destruct (&regexp);
+ free_dfa_content (dfa);
+ preg->buffer = NULL;
+ preg->allocated = 0;
+ return err;
+ }
+
+ /* Parse the regular expression, and build a structure tree. */
+ preg->re_nsub = 0;
+ dfa->str_tree = parse (&regexp, preg, syntax, &err);
+ if (BE (dfa->str_tree == NULL, 0))
+ goto re_compile_internal_free_return;
+
+ /* Analyze the tree and create the nfa. */
+ err = analyze (preg);
+ if (BE (err != REG_NOERROR, 0))
+ goto re_compile_internal_free_return;
+
+#ifdef RE_ENABLE_I18N
+ /* If possible, do searching in single byte encoding to speed things up. */
+ if (dfa->is_utf8 && !(syntax & RE_ICASE) && preg->translate == NULL)
+ optimize_utf8 (dfa);
+#endif
+
+ /* Then create the initial state of the dfa. */
+ err = create_initial_state (dfa);
+
+ /* Release work areas. */
+ free_workarea_compile (preg);
+ re_string_destruct (&regexp);
+
+ if (BE (err != REG_NOERROR, 0))
+ {
+ free_dfa_content (dfa);
+ preg->buffer = NULL;
+ preg->allocated = 0;
+ }
+
+ return err;
+}
+
+/* Initialize DFA. We use the length of the regular expression PAT_LEN
+ as the initial length of some arrays. */
+
+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
+ size_t max_i18n_object_size = 0;
+#endif
+ size_t max_object_size =
+ MAX (sizeof (struct re_state_table_entry),
+ MAX (sizeof (re_token_t),
+ MAX (sizeof (re_node_set),
+ MAX (sizeof (regmatch_t),
+ max_i18n_object_size))));
+
+ memset (dfa, '\0', sizeof (re_dfa_t));
+
+ /* Force allocation of str_tree_storage the first time. */
+ dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE;
+
+ /* Avoid overflows. The extra "/ 2" is for the table_size doubling
+ calculation below, and for similar doubling calculations
+ elsewhere. And it's <= rather than <, because some of the
+ doubling calculations add 1 afterwards. */
+ if (BE (SIZE_MAX / max_object_size / 2 <= pat_len, 0))
+ return REG_ESPACE;
+
+ dfa->nodes_alloc = pat_len + 1;
+ dfa->nodes = re_malloc (re_token_t, dfa->nodes_alloc);
+
+ /* table_size = 2 ^ ceil(log pat_len) */
+ for (table_size = 1; ; table_size <<= 1)
+ if (table_size > pat_len)
+ break;
+
+ dfa->state_table = calloc (sizeof (struct re_state_table_entry), table_size);
+ dfa->state_hash_mask = table_size - 1;
+
+ dfa->mb_cur_max = MB_CUR_MAX;
+#ifdef _LIBC
+ if (dfa->mb_cur_max == 6
+ && strcmp (_NL_CURRENT (LC_CTYPE, _NL_CTYPE_CODESET_NAME), "UTF-8") == 0)
+ dfa->is_utf8 = 1;
+ dfa->map_notascii = (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_MAP_TO_NONASCII)
+ != 0);
+#else
+ 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
+ superset of ASCII. */
+ dfa->map_notascii = 0;
+#endif
+
+#ifdef RE_ENABLE_I18N
+ if (dfa->mb_cur_max > 1)
+ {
+ if (dfa->is_utf8)
+ dfa->sb_char = (re_bitset_ptr_t) utf8_sb_map;
+ else
+ {
+ int i, j, ch;
+
+ dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+ if (BE (dfa->sb_char == NULL, 0))
+ return REG_ESPACE;
+
+ /* Set the bits corresponding to single byte chars. */
+ for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+ for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+ {
+ wint_t wch = __btowc (ch);
+ if (wch != WEOF)
+ dfa->sb_char[i] |= (bitset_word_t) 1 << j;
+# ifndef _LIBC
+ if (isascii (ch) && wch != ch)
+ dfa->map_notascii = 1;
+# endif
+ }
+ }
+ }
+#endif
+
+ if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0))
+ return REG_ESPACE;
+ return REG_NOERROR;
+}
+
+/* Initialize WORD_CHAR table, which indicate which character is
+ "word". In this case "word" means that it is the word construction
+ character used by some operators like "\<", "\>", etc. */
+
+static void
+internal_function
+init_word_char (re_dfa_t *dfa)
+{
+ int i, j, ch;
+ dfa->word_ops_used = 1;
+ for (i = 0, ch = 0; i < BITSET_WORDS; ++i)
+ for (j = 0; j < BITSET_WORD_BITS; ++j, ++ch)
+ if (isalnum (ch) || ch == '_')
+ dfa->word_char[i] |= (bitset_word_t) 1 << j;
+}
+
+/* Free the work area which are only used while compiling. */
+
+static void
+free_workarea_compile (regex_t *preg)
+{
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+ bin_tree_storage_t *storage, *next;
+ for (storage = dfa->str_tree_storage; storage; storage = next)
+ {
+ next = storage->next;
+ re_free (storage);
+ }
+ dfa->str_tree_storage = NULL;
+ dfa->str_tree_storage_idx = BIN_TREE_STORAGE_SIZE;
+ dfa->str_tree = NULL;
+ re_free (dfa->org_indices);
+ dfa->org_indices = NULL;
+}
+
+/* Create initial states for all contexts. */
+
+static reg_errcode_t
+create_initial_state (re_dfa_t *dfa)
+{
+ Idx first, i;
+ reg_errcode_t err;
+ re_node_set init_nodes;
+
+ /* Initial states have the epsilon closure of the node which is
+ the first node of the regular expression. */
+ first = dfa->str_tree->first->node_idx;
+ dfa->init_node = first;
+ err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+
+ /* The back-references which are in initial states can epsilon transit,
+ since in this case all of the subexpressions can be null.
+ Then we add epsilon closures of the nodes which are the next nodes of
+ the back-references. */
+ if (dfa->nbackref > 0)
+ for (i = 0; i < init_nodes.nelem; ++i)
+ {
+ Idx node_idx = init_nodes.elems[i];
+ re_token_type_t type = dfa->nodes[node_idx].type;
+
+ Idx clexp_idx;
+ if (type != OP_BACK_REF)
+ continue;
+ for (clexp_idx = 0; clexp_idx < init_nodes.nelem; ++clexp_idx)
+ {
+ re_token_t *clexp_node;
+ clexp_node = dfa->nodes + init_nodes.elems[clexp_idx];
+ if (clexp_node->type == OP_CLOSE_SUBEXP
+ && clexp_node->opr.idx == dfa->nodes[node_idx].opr.idx)
+ break;
+ }
+ if (clexp_idx == init_nodes.nelem)
+ continue;
+
+ if (type == OP_BACK_REF)
+ {
+ Idx dest_idx = dfa->edests[node_idx].elems[0];
+ if (!re_node_set_contains (&init_nodes, 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;
+ }
+ }
+ }
+
+ /* It must be the first time to invoke acquire_state. */
+ dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0);
+ /* We don't check ERR here, since the initial state must not be NULL. */
+ if (BE (dfa->init_state == NULL, 0))
+ return err;
+ if (dfa->init_state->has_constraint)
+ {
+ dfa->init_state_word = re_acquire_state_context (&err, dfa, &init_nodes,
+ CONTEXT_WORD);
+ dfa->init_state_nl = re_acquire_state_context (&err, dfa, &init_nodes,
+ CONTEXT_NEWLINE);
+ dfa->init_state_begbuf = re_acquire_state_context (&err, dfa,
+ &init_nodes,
+ CONTEXT_NEWLINE
+ | CONTEXT_BEGBUF);
+ if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL
+ || dfa->init_state_begbuf == NULL, 0))
+ return err;
+ }
+ else
+ dfa->init_state_word = dfa->init_state_nl
+ = dfa->init_state_begbuf = dfa->init_state;
+
+ re_node_set_free (&init_nodes);
+ return REG_NOERROR;
+}
+
+#ifdef RE_ENABLE_I18N
+/* If it is possible to do searching in single byte encoding instead of UTF-8
+ to speed things up, set dfa->mb_cur_max to 1, clear is_utf8 and change
+ DFA nodes where needed. */
+
+static void
+optimize_utf8 (re_dfa_t *dfa)
+{
+ Idx node;
+ int i;
+ bool mb_chars = false;
+ bool has_period = false;
+
+ for (node = 0; node < dfa->nodes_len; ++node)
+ switch (dfa->nodes[node].type)
+ {
+ case CHARACTER:
+ if (dfa->nodes[node].opr.c >= ASCII_CHARS)
+ mb_chars = true;
+ break;
+ case ANCHOR:
+ switch (dfa->nodes[node].opr.ctx_type)
+ {
+ case LINE_FIRST:
+ case LINE_LAST:
+ case BUF_FIRST:
+ case BUF_LAST:
+ break;
+ default:
+ /* Word anchors etc. cannot be handled. It's okay to test
+ opr.ctx_type since constraints (for all DFA nodes) are
+ created by ORing one or more opr.ctx_type values. */
+ return;
+ }
+ break;
+ case OP_PERIOD:
+ has_period = true;
+ break;
+ case OP_BACK_REF:
+ case OP_ALT:
+ case END_OF_RE:
+ case OP_DUP_ASTERISK:
+ case OP_OPEN_SUBEXP:
+ case OP_CLOSE_SUBEXP:
+ break;
+ case COMPLEX_BRACKET:
+ return;
+ case SIMPLE_BRACKET:
+ /* Just double check. */
+ {
+ int rshift = (ASCII_CHARS % BITSET_WORD_BITS == 0
+ ? 0
+ : BITSET_WORD_BITS - ASCII_CHARS % BITSET_WORD_BITS);
+ for (i = ASCII_CHARS / BITSET_WORD_BITS; i < BITSET_WORDS; ++i)
+ {
+ if (dfa->nodes[node].opr.sbcset[i] >> rshift != 0)
+ return;
+ rshift = 0;
+ }
+ }
+ break;
+ default:
+ abort ();
+ }
+
+ if (mb_chars || has_period)
+ for (node = 0; node < dfa->nodes_len; ++node)
+ {
+ if (dfa->nodes[node].type == CHARACTER
+ && dfa->nodes[node].opr.c >= ASCII_CHARS)
+ dfa->nodes[node].mb_partial = 0;
+ else if (dfa->nodes[node].type == OP_PERIOD)
+ dfa->nodes[node].type = OP_UTF8_PERIOD;
+ }
+
+ /* The search can be in single byte locale. */
+ dfa->mb_cur_max = 1;
+ dfa->is_utf8 = 0;
+ dfa->has_mb_node = dfa->nbackref > 0 || has_period;
+}
+#endif
+
+/* Analyze the structure tree, and calculate "first", "next", "edest",
+ "eclosure", and "inveclosure". */
+
+static reg_errcode_t
+analyze (regex_t *preg)
+{
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+ reg_errcode_t ret;
+
+ /* Allocate arrays. */
+ dfa->nexts = re_malloc (Idx, dfa->nodes_alloc);
+ dfa->org_indices = re_malloc (Idx, dfa->nodes_alloc);
+ dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc);
+ dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc);
+ if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL
+ || dfa->eclosures == NULL, 0))
+ return REG_ESPACE;
+
+ dfa->subexp_map = re_malloc (Idx, preg->re_nsub);
+ if (dfa->subexp_map != NULL)
+ {
+ Idx i;
+ for (i = 0; i < preg->re_nsub; i++)
+ dfa->subexp_map[i] = i;
+ preorder (dfa->str_tree, optimize_subexps, dfa);
+ for (i = 0; i < preg->re_nsub; i++)
+ if (dfa->subexp_map[i] != i)
+ break;
+ if (i == preg->re_nsub)
+ {
+ free (dfa->subexp_map);
+ dfa->subexp_map = NULL;
+ }
+ }
+
+ ret = postorder (dfa->str_tree, lower_subexps, preg);
+ if (BE (ret != REG_NOERROR, 0))
+ return ret;
+ ret = postorder (dfa->str_tree, calc_first, dfa);
+ if (BE (ret != REG_NOERROR, 0))
+ return ret;
+ preorder (dfa->str_tree, calc_next, dfa);
+ ret = preorder (dfa->str_tree, link_nfa_nodes, dfa);
+ if (BE (ret != REG_NOERROR, 0))
+ return ret;
+ ret = calc_eclosure (dfa);
+ if (BE (ret != REG_NOERROR, 0))
+ return ret;
+
+ /* We only need this during the prune_impossible_nodes pass in regexec.c;
+ skip it if p_i_n will not run, as calc_inveclosure can be quadratic. */
+ if ((!preg->no_sub && preg->re_nsub > 0 && dfa->has_plural_match)
+ || dfa->nbackref)
+ {
+ dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len);
+ if (BE (dfa->inveclosures == NULL, 0))
+ return REG_ESPACE;
+ ret = calc_inveclosure (dfa);
+ }
+
+ return ret;
+}
+
+/* Our parse trees are very unbalanced, so we cannot use a stack to
+ implement parse tree visits. Instead, we use parent pointers and
+ some hairy code in these two functions. */
+static reg_errcode_t
+postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
+ void *extra)
+{
+ bin_tree_t *node, *prev;
+
+ for (node = root; ; )
+ {
+ /* Descend down the tree, preferably to the left (or to the right
+ if that's the only child). */
+ while (node->left || node->right)
+ if (node->left)
+ 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)
+ return REG_NOERROR;
+ prev = node;
+ node = node->parent;
+ }
+ /* Go up while we have a node that is reached from the right. */
+ while (node->right == prev || node->right == NULL);
+ node = node->right;
+ }
+}
+
+static reg_errcode_t
+preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)),
+ void *extra)
+{
+ bin_tree_t *node;
+
+ for (node = root; ; )
+ {
+ reg_errcode_t err = fn (extra, node);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+
+ /* Go to the left node, or up and to the right. */
+ if (node->left)
+ node = node->left;
+ else
+ {
+ bin_tree_t *prev = NULL;
+ while (node->right == prev || node->right == NULL)
+ {
+ prev = node;
+ node = node->parent;
+ if (!node)
+ return REG_NOERROR;
+ }
+ node = node->right;
+ }
+ }
+}
+
+/* Optimization pass: if a SUBEXP is entirely contained, strip it and tell
+ re_search_internal to map the inner one's opr.idx to this one's. Adjust
+ backreferences as well. Requires a preorder visit. */
+static reg_errcode_t
+optimize_subexps (void *extra, bin_tree_t *node)
+{
+ re_dfa_t *dfa = (re_dfa_t *) extra;
+
+ if (node->token.type == OP_BACK_REF && dfa->subexp_map)
+ {
+ int idx = node->token.opr.idx;
+ node->token.opr.idx = dfa->subexp_map[idx];
+ dfa->used_bkref_map |= 1 << node->token.opr.idx;
+ }
+
+ else if (node->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;
+
+ dfa->subexp_map[other_idx] = dfa->subexp_map[node->token.opr.idx];
+ if (other_idx < BITSET_WORD_BITS)
+ dfa->used_bkref_map &= ~((bitset_word_t) 1 << other_idx);
+ }
+
+ return REG_NOERROR;
+}
+
+/* Lowering pass: Turn each SUBEXP node into the appropriate concatenation
+ of OP_OPEN_SUBEXP, the body of the SUBEXP (if any) and OP_CLOSE_SUBEXP. */
+static reg_errcode_t
+lower_subexps (void *extra, bin_tree_t *node)
+{
+ regex_t *preg = (regex_t *) extra;
+ reg_errcode_t err = REG_NOERROR;
+
+ if (node->left && node->left->token.type == SUBEXP)
+ {
+ node->left = lower_subexp (&err, preg, node->left);
+ if (node->left)
+ node->left->parent = node;
+ }
+ if (node->right && node->right->token.type == SUBEXP)
+ {
+ node->right = lower_subexp (&err, preg, node->right);
+ if (node->right)
+ node->right->parent = node;
+ }
+
+ return err;
+}
+
+static bin_tree_t *
+lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node)
+{
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+ bin_tree_t *body = node->left;
+ bin_tree_t *op, *cls, *tree1, *tree;
+
+ if (preg->no_sub
+ /* We do not optimize empty subexpressions, because otherwise we may
+ have bad CONCAT nodes with NULL children. This is obviously not
+ very common, so we do not lose much. An example that triggers
+ this case is the sed "script" /\(\)/x. */
+ && node->left != NULL
+ && (node->token.opr.idx >= BITSET_WORD_BITS
+ || !(dfa->used_bkref_map
+ & ((bitset_word_t) 1 << node->token.opr.idx))))
+ return node->left;
+
+ /* Convert the SUBEXP node to the concatenation of an
+ OP_OPEN_SUBEXP, the contents, and an OP_CLOSE_SUBEXP. */
+ op = create_tree (dfa, NULL, NULL, OP_OPEN_SUBEXP);
+ cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP);
+ tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls;
+ tree = create_tree (dfa, op, tree1, CONCAT);
+ if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+
+ op->token.opr.idx = cls->token.opr.idx = node->token.opr.idx;
+ op->token.opt_subexp = cls->token.opt_subexp = node->token.opt_subexp;
+ return tree;
+}
+
+/* Pass 1 in building the NFA: compute FIRST and create unlinked automaton
+ nodes. Requires a postorder visit. */
+static reg_errcode_t
+calc_first (void *extra, bin_tree_t *node)
+{
+ re_dfa_t *dfa = (re_dfa_t *) extra;
+ if (node->token.type == CONCAT)
+ {
+ node->first = node->left->first;
+ node->node_idx = node->left->node_idx;
+ }
+ else
+ {
+ node->first = node;
+ node->node_idx = re_dfa_add_node (dfa, node->token);
+ if (BE (node->node_idx == REG_MISSING, 0))
+ return REG_ESPACE;
+ if (node->token.type == ANCHOR)
+ dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type;
+ }
+ return REG_NOERROR;
+}
+
+/* Pass 2: compute NEXT on the tree. Preorder visit. */
+static reg_errcode_t
+calc_next (void *extra, bin_tree_t *node)
+{
+ switch (node->token.type)
+ {
+ case OP_DUP_ASTERISK:
+ node->left->next = node;
+ break;
+ case CONCAT:
+ node->left->next = node->right->first;
+ node->right->next = node->next;
+ break;
+ default:
+ if (node->left)
+ node->left->next = node->next;
+ if (node->right)
+ node->right->next = node->next;
+ break;
+ }
+ return REG_NOERROR;
+}
+
+/* Pass 3: link all DFA nodes to their NEXT node (any order will do). */
+static reg_errcode_t
+link_nfa_nodes (void *extra, bin_tree_t *node)
+{
+ re_dfa_t *dfa = (re_dfa_t *) extra;
+ Idx idx = node->node_idx;
+ reg_errcode_t err = REG_NOERROR;
+
+ switch (node->token.type)
+ {
+ case CONCAT:
+ break;
+
+ case END_OF_RE:
+ assert (node->next == NULL);
+ break;
+
+ case OP_DUP_ASTERISK:
+ case OP_ALT:
+ {
+ Idx left, right;
+ dfa->has_plural_match = 1;
+ if (node->left != NULL)
+ left = node->left->first->node_idx;
+ else
+ left = node->next->node_idx;
+ if (node->right != NULL)
+ right = node->right->first->node_idx;
+ else
+ right = node->next->node_idx;
+ assert (REG_VALID_INDEX (left));
+ assert (REG_VALID_INDEX (right));
+ err = re_node_set_init_2 (dfa->edests + idx, left, right);
+ }
+ break;
+
+ case ANCHOR:
+ case OP_OPEN_SUBEXP:
+ case OP_CLOSE_SUBEXP:
+ err = re_node_set_init_1 (dfa->edests + idx, node->next->node_idx);
+ break;
+
+ case OP_BACK_REF:
+ dfa->nexts[idx] = node->next->node_idx;
+ if (node->token.type == OP_BACK_REF)
+ err = re_node_set_init_1 (dfa->edests + idx, dfa->nexts[idx]);
+ break;
+
+ default:
+ assert (!IS_EPSILON_NODE (node->token.type));
+ dfa->nexts[idx] = node->next->node_idx;
+ break;
+ }
+
+ return err;
+}
+
+/* Duplicate the epsilon closure of the node ROOT_NODE.
+ Note that duplicated nodes have constraint INIT_CONSTRAINT in addition
+ to their own constraint. */
+
+static reg_errcode_t
+internal_function
+duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node,
+ Idx root_node, unsigned int init_constraint)
+{
+ Idx org_node, clone_node;
+ bool ok;
+ unsigned int constraint = init_constraint;
+ for (org_node = top_org_node, clone_node = top_clone_node;;)
+ {
+ Idx org_dest, clone_dest;
+ if (dfa->nodes[org_node].type == OP_BACK_REF)
+ {
+ /* If the back reference epsilon-transit, its destination must
+ also have the constraint. Then duplicate the epsilon closure
+ of the destination of the back reference, and store it in
+ edests of the back reference. */
+ org_dest = dfa->nexts[org_node];
+ re_node_set_empty (dfa->edests + clone_node);
+ clone_dest = duplicate_node (dfa, org_dest, constraint);
+ if (BE (clone_dest == REG_MISSING, 0))
+ return REG_ESPACE;
+ dfa->nexts[clone_node] = dfa->nexts[org_node];
+ ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+ if (BE (! ok, 0))
+ return REG_ESPACE;
+ }
+ else if (dfa->edests[org_node].nelem == 0)
+ {
+ /* In case of the node can't epsilon-transit, don't duplicate the
+ destination and store the original destination as the
+ destination of the node. */
+ dfa->nexts[clone_node] = dfa->nexts[org_node];
+ break;
+ }
+ else if (dfa->edests[org_node].nelem == 1)
+ {
+ /* In case of the node can epsilon-transit, and it has only one
+ destination. */
+ org_dest = dfa->edests[org_node].elems[0];
+ re_node_set_empty (dfa->edests + clone_node);
+ /* 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)
+ {
+ ok = re_node_set_insert (dfa->edests + clone_node, org_dest);
+ if (BE (! ok, 0))
+ return REG_ESPACE;
+ break;
+ }
+ /* In case the node has another constraint, append it. */
+ constraint |= dfa->nodes[org_node].constraint;
+ clone_dest = duplicate_node (dfa, org_dest, constraint);
+ if (BE (clone_dest == REG_MISSING, 0))
+ return REG_ESPACE;
+ ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+ if (BE (! ok, 0))
+ return REG_ESPACE;
+ }
+ else /* dfa->edests[org_node].nelem == 2 */
+ {
+ /* In case of the node can epsilon-transit, and it has two
+ destinations. In the bin_tree_t and DFA, that's '|' and '*'. */
+ org_dest = dfa->edests[org_node].elems[0];
+ re_node_set_empty (dfa->edests + clone_node);
+ /* Search for a duplicated node which satisfies the constraint. */
+ clone_dest = search_duplicated_node (dfa, org_dest, constraint);
+ if (clone_dest == REG_MISSING)
+ {
+ /* There is no such duplicated node, create a new one. */
+ reg_errcode_t err;
+ clone_dest = duplicate_node (dfa, org_dest, constraint);
+ if (BE (clone_dest == REG_MISSING, 0))
+ return REG_ESPACE;
+ ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+ if (BE (! ok, 0))
+ return REG_ESPACE;
+ err = duplicate_node_closure (dfa, org_dest, clone_dest,
+ root_node, constraint);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ else
+ {
+ /* 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))
+ return REG_ESPACE;
+ }
+
+ org_dest = dfa->edests[org_node].elems[1];
+ clone_dest = duplicate_node (dfa, org_dest, constraint);
+ if (BE (clone_dest == REG_MISSING, 0))
+ return REG_ESPACE;
+ ok = re_node_set_insert (dfa->edests + clone_node, clone_dest);
+ if (BE (! ok, 0))
+ return REG_ESPACE;
+ }
+ org_node = org_dest;
+ clone_node = clone_dest;
+ }
+ return REG_NOERROR;
+}
+
+/* Search for a node which is duplicated from the node ORG_NODE, and
+ satisfies the constraint CONSTRAINT. */
+
+static Idx
+search_duplicated_node (const re_dfa_t *dfa, Idx org_node,
+ unsigned int constraint)
+{
+ Idx idx;
+ for (idx = dfa->nodes_len - 1; dfa->nodes[idx].duplicated && idx > 0; --idx)
+ {
+ if (org_node == dfa->org_indices[idx]
+ && constraint == dfa->nodes[idx].constraint)
+ return idx; /* Found. */
+ }
+ return REG_MISSING; /* Not found. */
+}
+
+/* Duplicate the node whose index is ORG_IDX and set the constraint CONSTRAINT.
+ Return the index of the new node, or REG_MISSING if insufficient storage is
+ available. */
+
+static Idx
+duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint)
+{
+ Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]);
+ if (BE (dup_idx != REG_MISSING, 1))
+ {
+ dfa->nodes[dup_idx].constraint = constraint;
+ dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint;
+ dfa->nodes[dup_idx].duplicated = 1;
+
+ /* Store the index of the original node. */
+ dfa->org_indices[dup_idx] = org_idx;
+ }
+ return dup_idx;
+}
+
+static reg_errcode_t
+calc_inveclosure (re_dfa_t *dfa)
+{
+ Idx src, idx;
+ bool ok;
+ for (idx = 0; idx < dfa->nodes_len; ++idx)
+ re_node_set_init_empty (dfa->inveclosures + idx);
+
+ for (src = 0; src < dfa->nodes_len; ++src)
+ {
+ Idx *elems = dfa->eclosures[src].elems;
+ for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx)
+ {
+ ok = re_node_set_insert_last (dfa->inveclosures + elems[idx], src);
+ if (BE (! ok, 0))
+ return REG_ESPACE;
+ }
+ }
+
+ return REG_NOERROR;
+}
+
+/* Calculate "eclosure" for all the node in DFA. */
+
+static reg_errcode_t
+calc_eclosure (re_dfa_t *dfa)
+{
+ Idx node_idx;
+ bool incomplete;
+#ifdef DEBUG
+ assert (dfa->nodes_len > 0);
+#endif
+ incomplete = false;
+ /* For each nodes, calculate epsilon closure. */
+ for (node_idx = 0; ; ++node_idx)
+ {
+ reg_errcode_t err;
+ re_node_set eclosure_elem;
+ if (node_idx == dfa->nodes_len)
+ {
+ if (!incomplete)
+ break;
+ incomplete = false;
+ node_idx = 0;
+ }
+
+#ifdef DEBUG
+ assert (dfa->eclosures[node_idx].nelem != REG_MISSING);
+#endif
+
+ /* If we have already calculated, skip it. */
+ if (dfa->eclosures[node_idx].nelem != 0)
+ continue;
+ /* Calculate epsilon closure of 'node_idx'. */
+ err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+
+ if (dfa->eclosures[node_idx].nelem == 0)
+ {
+ incomplete = true;
+ re_node_set_free (&eclosure_elem);
+ }
+ }
+ return REG_NOERROR;
+}
+
+/* Calculate epsilon closure of NODE. */
+
+static reg_errcode_t
+calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root)
+{
+ reg_errcode_t err;
+ Idx i;
+ re_node_set eclosure;
+ bool ok;
+ bool incomplete = false;
+ err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+
+ /* This indicates that we are calculating this node now.
+ We reference this value to avoid infinite loop. */
+ dfa->eclosures[node].nelem = REG_MISSING;
+
+ /* If the current node has constraints, duplicate all nodes
+ since they must inherit the constraints. */
+ if (dfa->nodes[node].constraint
+ && dfa->edests[node].nelem
+ && !dfa->nodes[dfa->edests[node].elems[0]].duplicated)
+ {
+ err = duplicate_node_closure (dfa, node, node, node,
+ dfa->nodes[node].constraint);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+
+ /* Expand each epsilon destination nodes. */
+ if (IS_EPSILON_NODE(dfa->nodes[node].type))
+ for (i = 0; i < dfa->edests[node].nelem; ++i)
+ {
+ re_node_set eclosure_elem;
+ Idx edest = dfa->edests[node].elems[i];
+ /* If calculating the epsilon closure of 'edest' is in progress,
+ return intermediate result. */
+ if (dfa->eclosures[edest].nelem == REG_MISSING)
+ {
+ incomplete = true;
+ continue;
+ }
+ /* If we haven't calculated the epsilon closure of 'edest' yet,
+ calculate now. Otherwise use calculated epsilon closure. */
+ if (dfa->eclosures[edest].nelem == 0)
+ {
+ err = calc_eclosure_iter (&eclosure_elem, dfa, edest, false);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ else
+ eclosure_elem = dfa->eclosures[edest];
+ /* Merge the epsilon closure of 'edest'. */
+ 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)
+ {
+ incomplete = true;
+ re_node_set_free (&eclosure_elem);
+ }
+ }
+
+ /* An epsilon closure includes itself. */
+ ok = re_node_set_insert (&eclosure, node);
+ if (BE (! ok, 0))
+ return REG_ESPACE;
+ if (incomplete && !root)
+ dfa->eclosures[node].nelem = 0;
+ else
+ dfa->eclosures[node] = eclosure;
+ *new_set = eclosure;
+ return REG_NOERROR;
+}
+
+/* Functions for token which are used in the parser. */
+
+/* Fetch a token from INPUT.
+ We must not use this function inside bracket expressions. */
+
+static void
+internal_function
+fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax)
+{
+ re_string_skip_bytes (input, peek_token (result, input, syntax));
+}
+
+/* Peek a token from INPUT, and return the length of the token.
+ We must not use this function inside bracket expressions. */
+
+static int
+internal_function
+peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
+{
+ unsigned char c;
+
+ if (re_string_eoi (input))
+ {
+ token->type = END_OF_RE;
+ return 0;
+ }
+
+ c = re_string_peek_byte (input, 0);
+ token->opr.c = c;
+
+ token->word_char = 0;
+#ifdef RE_ENABLE_I18N
+ token->mb_partial = 0;
+ if (input->mb_cur_max > 1 &&
+ !re_string_first_byte (input, re_string_cur_idx (input)))
+ {
+ token->type = CHARACTER;
+ token->mb_partial = 1;
+ return 1;
+ }
+#endif
+ if (c == '\\')
+ {
+ unsigned char c2;
+ if (re_string_cur_idx (input) + 1 >= re_string_length (input))
+ {
+ token->type = BACK_SLASH;
+ return 1;
+ }
+
+ c2 = re_string_peek_byte_case (input, 1);
+ token->opr.c = c2;
+ token->type = CHARACTER;
+#ifdef RE_ENABLE_I18N
+ if (input->mb_cur_max > 1)
+ {
+ wint_t wc = re_string_wchar_at (input,
+ re_string_cur_idx (input) + 1);
+ token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
+ }
+ else
+#endif
+ token->word_char = IS_WORD_CHAR (c2) != 0;
+
+ switch (c2)
+ {
+ case '|':
+ if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_NO_BK_VBAR))
+ token->type = OP_ALT;
+ break;
+ case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ if (!(syntax & RE_NO_BK_REFS))
+ {
+ token->type = OP_BACK_REF;
+ token->opr.idx = c2 - '1';
+ }
+ break;
+ case '<':
+ if (!(syntax & RE_NO_GNU_OPS))
+ {
+ token->type = ANCHOR;
+ token->opr.ctx_type = WORD_FIRST;
+ }
+ break;
+ case '>':
+ if (!(syntax & RE_NO_GNU_OPS))
+ {
+ token->type = ANCHOR;
+ token->opr.ctx_type = WORD_LAST;
+ }
+ break;
+ case 'b':
+ if (!(syntax & RE_NO_GNU_OPS))
+ {
+ token->type = ANCHOR;
+ token->opr.ctx_type = WORD_DELIM;
+ }
+ break;
+ case 'B':
+ if (!(syntax & RE_NO_GNU_OPS))
+ {
+ token->type = ANCHOR;
+ token->opr.ctx_type = NOT_WORD_DELIM;
+ }
+ break;
+ case 'w':
+ if (!(syntax & RE_NO_GNU_OPS))
+ token->type = OP_WORD;
+ break;
+ case 'W':
+ if (!(syntax & RE_NO_GNU_OPS))
+ token->type = OP_NOTWORD;
+ break;
+ case 's':
+ if (!(syntax & RE_NO_GNU_OPS))
+ token->type = OP_SPACE;
+ break;
+ case 'S':
+ if (!(syntax & RE_NO_GNU_OPS))
+ token->type = OP_NOTSPACE;
+ break;
+ case '`':
+ if (!(syntax & RE_NO_GNU_OPS))
+ {
+ token->type = ANCHOR;
+ token->opr.ctx_type = BUF_FIRST;
+ }
+ break;
+ case '\'':
+ if (!(syntax & RE_NO_GNU_OPS))
+ {
+ token->type = ANCHOR;
+ token->opr.ctx_type = BUF_LAST;
+ }
+ break;
+ case '(':
+ if (!(syntax & RE_NO_BK_PARENS))
+ token->type = OP_OPEN_SUBEXP;
+ break;
+ case ')':
+ if (!(syntax & RE_NO_BK_PARENS))
+ token->type = OP_CLOSE_SUBEXP;
+ break;
+ case '+':
+ if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM))
+ token->type = OP_DUP_PLUS;
+ break;
+ case '?':
+ if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_BK_PLUS_QM))
+ token->type = OP_DUP_QUESTION;
+ break;
+ case '{':
+ if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES)))
+ token->type = OP_OPEN_DUP_NUM;
+ break;
+ case '}':
+ if ((syntax & RE_INTERVALS) && (!(syntax & RE_NO_BK_BRACES)))
+ token->type = OP_CLOSE_DUP_NUM;
+ break;
+ default:
+ break;
+ }
+ return 2;
+ }
+
+ token->type = CHARACTER;
+#ifdef RE_ENABLE_I18N
+ if (input->mb_cur_max > 1)
+ {
+ wint_t wc = re_string_wchar_at (input, re_string_cur_idx (input));
+ token->word_char = IS_WIDE_WORD_CHAR (wc) != 0;
+ }
+ else
+#endif
+ token->word_char = IS_WORD_CHAR (token->opr.c);
+
+ switch (c)
+ {
+ case '\n':
+ if (syntax & RE_NEWLINE_ALT)
+ token->type = OP_ALT;
+ break;
+ case '|':
+ if (!(syntax & RE_LIMITED_OPS) && (syntax & RE_NO_BK_VBAR))
+ token->type = OP_ALT;
+ break;
+ case '*':
+ token->type = OP_DUP_ASTERISK;
+ break;
+ case '+':
+ if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM))
+ token->type = OP_DUP_PLUS;
+ break;
+ case '?':
+ if (!(syntax & RE_LIMITED_OPS) && !(syntax & RE_BK_PLUS_QM))
+ token->type = OP_DUP_QUESTION;
+ break;
+ case '{':
+ if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
+ token->type = OP_OPEN_DUP_NUM;
+ break;
+ case '}':
+ if ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
+ token->type = OP_CLOSE_DUP_NUM;
+ break;
+ case '(':
+ if (syntax & RE_NO_BK_PARENS)
+ token->type = OP_OPEN_SUBEXP;
+ break;
+ case ')':
+ if (syntax & RE_NO_BK_PARENS)
+ token->type = OP_CLOSE_SUBEXP;
+ break;
+ case '[':
+ token->type = OP_OPEN_BRACKET;
+ break;
+ case '.':
+ token->type = OP_PERIOD;
+ break;
+ case '^':
+ if (!(syntax & (RE_CONTEXT_INDEP_ANCHORS | RE_CARET_ANCHORS_HERE)) &&
+ re_string_cur_idx (input) != 0)
+ {
+ char prev = re_string_peek_byte (input, -1);
+ if (!(syntax & RE_NEWLINE_ALT) || prev != '\n')
+ break;
+ }
+ token->type = ANCHOR;
+ token->opr.ctx_type = LINE_FIRST;
+ break;
+ case '$':
+ if (!(syntax & RE_CONTEXT_INDEP_ANCHORS) &&
+ re_string_cur_idx (input) + 1 != re_string_length (input))
+ {
+ re_token_t next;
+ re_string_skip_bytes (input, 1);
+ peek_token (&next, input, syntax);
+ re_string_skip_bytes (input, -1);
+ if (next.type != OP_ALT && next.type != OP_CLOSE_SUBEXP)
+ break;
+ }
+ token->type = ANCHOR;
+ token->opr.ctx_type = LINE_LAST;
+ break;
+ default:
+ break;
+ }
+ return 1;
+}
+
+/* Peek a token from INPUT, and return the length of the token.
+ We must not use this function out of bracket expressions. */
+
+static int
+internal_function
+peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax)
+{
+ unsigned char c;
+ if (re_string_eoi (input))
+ {
+ token->type = END_OF_RE;
+ return 0;
+ }
+ c = re_string_peek_byte (input, 0);
+ token->opr.c = c;
+
+#ifdef RE_ENABLE_I18N
+ if (input->mb_cur_max > 1 &&
+ !re_string_first_byte (input, re_string_cur_idx (input)))
+ {
+ token->type = CHARACTER;
+ return 1;
+ }
+#endif /* RE_ENABLE_I18N */
+
+ if (c == '\\' && (syntax & RE_BACKSLASH_ESCAPE_IN_LISTS)
+ && re_string_cur_idx (input) + 1 < re_string_length (input))
+ {
+ /* In this case, '\' escape a character. */
+ unsigned char c2;
+ re_string_skip_bytes (input, 1);
+ c2 = re_string_peek_byte (input, 0);
+ token->opr.c = c2;
+ token->type = CHARACTER;
+ return 1;
+ }
+ if (c == '[') /* '[' is a special char in a bracket exps. */
+ {
+ unsigned char c2;
+ int token_len;
+ if (re_string_cur_idx (input) + 1 < re_string_length (input))
+ c2 = re_string_peek_byte (input, 1);
+ else
+ c2 = 0;
+ token->opr.c = c2;
+ token_len = 2;
+ switch (c2)
+ {
+ case '.':
+ token->type = OP_OPEN_COLL_ELEM;
+ break;
+ case '=':
+ token->type = OP_OPEN_EQUIV_CLASS;
+ break;
+ case ':':
+ if (syntax & RE_CHAR_CLASSES)
+ {
+ token->type = OP_OPEN_CHAR_CLASS;
+ break;
+ }
+ /* else fall through. */
+ default:
+ token->type = CHARACTER;
+ token->opr.c = c;
+ token_len = 1;
+ break;
+ }
+ return token_len;
+ }
+ switch (c)
+ {
+ case '-':
+ token->type = OP_CHARSET_RANGE;
+ break;
+ case ']':
+ token->type = OP_CLOSE_BRACKET;
+ break;
+ case '^':
+ token->type = OP_NON_MATCH_LIST;
+ break;
+ default:
+ token->type = CHARACTER;
+ }
+ return 1;
+}
+
+/* Functions for parser. */
+
+/* Entry point of the parser.
+ Parse the regular expression REGEXP and return the structure tree.
+ If an error is occured, ERR is set by error code, and return NULL.
+ This function build the following tree, from regular expression <reg_exp>:
+ CAT
+ / \
+ / \
+ <reg_exp> EOR
+
+ CAT means concatenation.
+ EOR means end of regular expression. */
+
+static bin_tree_t *
+parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax,
+ reg_errcode_t *err)
+{
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+ bin_tree_t *tree, *eor, *root;
+ re_token_t current_token;
+ dfa->syntax = syntax;
+ fetch_token (&current_token, regexp, syntax | RE_CARET_ANCHORS_HERE);
+ tree = parse_reg_exp (regexp, preg, &current_token, syntax, 0, err);
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ return NULL;
+ eor = create_tree (dfa, NULL, NULL, END_OF_RE);
+ if (tree != NULL)
+ root = create_tree (dfa, tree, eor, CONCAT);
+ else
+ root = eor;
+ if (BE (eor == NULL || root == NULL, 0))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+ return root;
+}
+
+/* This function build the following tree, from regular expression
+ <branch1>|<branch2>:
+ ALT
+ / \
+ / \
+ <branch1> <branch2>
+
+ ALT means alternative, which represents the operator '|'. */
+
+static bin_tree_t *
+parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
+ reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
+{
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+ bin_tree_t *tree, *branch = NULL;
+ tree = parse_branch (regexp, preg, token, syntax, nest, err);
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ return NULL;
+
+ while (token->type == OP_ALT)
+ {
+ fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE);
+ if (token->type != OP_ALT && token->type != END_OF_RE
+ && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
+ {
+ branch = parse_branch (regexp, preg, token, syntax, nest, err);
+ if (BE (*err != REG_NOERROR && branch == NULL, 0))
+ return NULL;
+ }
+ else
+ branch = NULL;
+ tree = create_tree (dfa, tree, branch, OP_ALT);
+ if (BE (tree == NULL, 0))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+ }
+ return tree;
+}
+
+/* This function build the following tree, from regular expression
+ <exp1><exp2>:
+ CAT
+ / \
+ / \
+ <exp1> <exp2>
+
+ CAT means concatenation. */
+
+static bin_tree_t *
+parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token,
+ reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
+{
+ bin_tree_t *tree, *expr;
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+ tree = parse_expression (regexp, preg, token, syntax, nest, err);
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ return NULL;
+
+ while (token->type != OP_ALT && token->type != END_OF_RE
+ && (nest == 0 || token->type != OP_CLOSE_SUBEXP))
+ {
+ expr = parse_expression (regexp, preg, token, syntax, nest, err);
+ if (BE (*err != REG_NOERROR && expr == NULL, 0))
+ {
+ return NULL;
+ }
+ if (tree != NULL && expr != NULL)
+ {
+ tree = create_tree (dfa, tree, expr, CONCAT);
+ if (tree == NULL)
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+ }
+ else if (tree == NULL)
+ tree = expr;
+ /* Otherwise expr == NULL, we don't need to create new tree. */
+ }
+ return tree;
+}
+
+/* This function build the following tree, from regular expression a*:
+ *
+ |
+ a
+*/
+
+static bin_tree_t *
+parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token,
+ reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
+{
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+ bin_tree_t *tree;
+ switch (token->type)
+ {
+ case CHARACTER:
+ tree = create_token_tree (dfa, NULL, NULL, token);
+ if (BE (tree == NULL, 0))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+#ifdef RE_ENABLE_I18N
+ if (dfa->mb_cur_max > 1)
+ {
+ while (!re_string_eoi (regexp)
+ && !re_string_first_byte (regexp, re_string_cur_idx (regexp)))
+ {
+ bin_tree_t *mbc_remain;
+ fetch_token (token, regexp, syntax);
+ mbc_remain = create_token_tree (dfa, NULL, NULL, token);
+ tree = create_tree (dfa, tree, mbc_remain, CONCAT);
+ if (BE (mbc_remain == NULL || tree == NULL, 0))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+ }
+ }
+#endif
+ break;
+ case OP_OPEN_SUBEXP:
+ tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err);
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ return NULL;
+ break;
+ case OP_OPEN_BRACKET:
+ tree = parse_bracket_exp (regexp, dfa, token, syntax, err);
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ return NULL;
+ break;
+ case OP_BACK_REF:
+ if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1))
+ {
+ *err = REG_ESUBREG;
+ return NULL;
+ }
+ dfa->used_bkref_map |= 1 << token->opr.idx;
+ tree = create_token_tree (dfa, NULL, NULL, token);
+ if (BE (tree == NULL, 0))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+ ++dfa->nbackref;
+ dfa->has_mb_node = 1;
+ break;
+ case OP_OPEN_DUP_NUM:
+ if (syntax & RE_CONTEXT_INVALID_DUP)
+ {
+ *err = REG_BADRPT;
+ return NULL;
+ }
+ /* FALLTHROUGH */
+ case OP_DUP_ASTERISK:
+ case OP_DUP_PLUS:
+ case OP_DUP_QUESTION:
+ if (syntax & RE_CONTEXT_INVALID_OPS)
+ {
+ *err = REG_BADRPT;
+ return NULL;
+ }
+ else if (syntax & RE_CONTEXT_INDEP_OPS)
+ {
+ fetch_token (token, regexp, syntax);
+ return parse_expression (regexp, preg, token, syntax, nest, err);
+ }
+ /* else fall through */
+ case OP_CLOSE_SUBEXP:
+ if ((token->type == OP_CLOSE_SUBEXP) &&
+ !(syntax & RE_UNMATCHED_RIGHT_PAREN_ORD))
+ {
+ *err = REG_ERPAREN;
+ return NULL;
+ }
+ /* else fall through */
+ case OP_CLOSE_DUP_NUM:
+ /* We treat it as a normal character. */
+
+ /* Then we can these characters as normal characters. */
+ token->type = CHARACTER;
+ /* mb_partial and word_char bits should be initialized already
+ by peek_token. */
+ tree = create_token_tree (dfa, NULL, NULL, token);
+ if (BE (tree == NULL, 0))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+ break;
+ case ANCHOR:
+ if ((token->opr.ctx_type
+ & (WORD_DELIM | NOT_WORD_DELIM | WORD_FIRST | WORD_LAST))
+ && dfa->word_ops_used == 0)
+ init_word_char (dfa);
+ if (token->opr.ctx_type == WORD_DELIM
+ || token->opr.ctx_type == NOT_WORD_DELIM)
+ {
+ bin_tree_t *tree_first, *tree_last;
+ if (token->opr.ctx_type == WORD_DELIM)
+ {
+ token->opr.ctx_type = WORD_FIRST;
+ tree_first = create_token_tree (dfa, NULL, NULL, token);
+ token->opr.ctx_type = WORD_LAST;
+ }
+ 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))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+ }
+ else
+ {
+ tree = create_token_tree (dfa, NULL, NULL, token);
+ if (BE (tree == NULL, 0))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+ }
+ /* We must return here, since ANCHORs can't be followed
+ by repetition operators.
+ eg. RE"^*" is invalid or "<ANCHOR(^)><CHAR(*)>",
+ it must not be "<ANCHOR(^)><REPEAT(*)>". */
+ fetch_token (token, regexp, syntax);
+ return tree;
+ case OP_PERIOD:
+ tree = create_token_tree (dfa, NULL, NULL, token);
+ if (BE (tree == NULL, 0))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+ if (dfa->mb_cur_max > 1)
+ dfa->has_mb_node = 1;
+ break;
+ case OP_WORD:
+ case OP_NOTWORD:
+ tree = build_charclass_op (dfa, regexp->trans,
+ (const unsigned char *) "alnum",
+ (const unsigned char *) "_",
+ token->type == OP_NOTWORD, err);
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ return NULL;
+ break;
+ case OP_SPACE:
+ case OP_NOTSPACE:
+ tree = build_charclass_op (dfa, regexp->trans,
+ (const unsigned char *) "space",
+ (const unsigned char *) "",
+ token->type == OP_NOTSPACE, err);
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ return NULL;
+ break;
+ case OP_ALT:
+ case END_OF_RE:
+ return NULL;
+ case BACK_SLASH:
+ *err = REG_EESCAPE;
+ return NULL;
+ default:
+ /* Must not happen? */
+#ifdef DEBUG
+ assert (0);
+#endif
+ return NULL;
+ }
+ fetch_token (token, regexp, syntax);
+
+ while (token->type == OP_DUP_ASTERISK || token->type == OP_DUP_PLUS
+ || token->type == OP_DUP_QUESTION || token->type == OP_OPEN_DUP_NUM)
+ {
+ tree = parse_dup_op (tree, regexp, dfa, token, syntax, err);
+ if (BE (*err != REG_NOERROR && tree == NULL, 0))
+ return NULL;
+ /* In BRE consecutive duplications are not allowed. */
+ if ((syntax & RE_CONTEXT_INVALID_DUP)
+ && (token->type == OP_DUP_ASTERISK
+ || token->type == OP_OPEN_DUP_NUM))
+ {
+ *err = REG_BADRPT;
+ return NULL;
+ }
+ }
+
+ return tree;
+}
+
+/* This function build the following tree, from regular expression
+ (<reg_exp>):
+ SUBEXP
+ |
+ <reg_exp>
+*/
+
+static bin_tree_t *
+parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token,
+ reg_syntax_t syntax, Idx nest, reg_errcode_t *err)
+{
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+ bin_tree_t *tree;
+ size_t cur_nsub;
+ cur_nsub = preg->re_nsub++;
+
+ fetch_token (token, regexp, syntax | RE_CARET_ANCHORS_HERE);
+
+ /* The subexpression may be a null string. */
+ if (token->type == OP_CLOSE_SUBEXP)
+ tree = NULL;
+ else
+ {
+ tree = parse_reg_exp (regexp, preg, token, syntax, nest, err);
+ if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0))
+ *err = REG_EPAREN;
+ if (BE (*err != REG_NOERROR, 0))
+ return NULL;
+ }
+
+ if (cur_nsub <= '9' - '1')
+ dfa->completed_bkref_map |= 1 << cur_nsub;
+
+ tree = create_tree (dfa, tree, NULL, SUBEXP);
+ if (BE (tree == NULL, 0))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+ tree->token.opr.idx = cur_nsub;
+ return tree;
+}
+
+/* This function parse repetition operators like "*", "+", "{1,3}" etc. */
+
+static bin_tree_t *
+parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa,
+ re_token_t *token, reg_syntax_t syntax, reg_errcode_t *err)
+{
+ bin_tree_t *tree = NULL, *old_tree = NULL;
+ Idx i, start, end, start_idx = re_string_cur_idx (regexp);
+ re_token_t start_token = *token;
+
+ if (token->type == OP_OPEN_DUP_NUM)
+ {
+ end = 0;
+ start = fetch_number (regexp, token, syntax);
+ if (start == REG_MISSING)
+ {
+ if (token->type == CHARACTER && token->opr.c == ',')
+ start = 0; /* We treat "{,m}" as "{0,m}". */
+ else
+ {
+ *err = REG_BADBR; /* <re>{} is invalid. */
+ return NULL;
+ }
+ }
+ if (BE (start != REG_ERROR, 1))
+ {
+ /* We treat "{n}" as "{n,n}". */
+ end = ((token->type == OP_CLOSE_DUP_NUM) ? start
+ : ((token->type == CHARACTER && token->opr.c == ',')
+ ? fetch_number (regexp, token, syntax) : REG_ERROR));
+ }
+ if (BE (start == REG_ERROR || end == REG_ERROR, 0))
+ {
+ /* Invalid sequence. */
+ if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0))
+ {
+ if (token->type == END_OF_RE)
+ *err = REG_EBRACE;
+ else
+ *err = REG_BADBR;
+
+ return NULL;
+ }
+
+ /* If the syntax bit is set, rollback. */
+ re_string_set_index (regexp, start_idx);
+ *token = start_token;
+ token->type = CHARACTER;
+ /* mb_partial and word_char bits should be already initialized by
+ peek_token. */
+ return elem;
+ }
+
+ if (BE ((end != REG_MISSING && start > end)
+ || token->type != OP_CLOSE_DUP_NUM, 0))
+ {
+ /* First number greater than second. */
+ *err = REG_BADBR;
+ return NULL;
+ }
+ }
+ else
+ {
+ start = (token->type == OP_DUP_PLUS) ? 1 : 0;
+ end = (token->type == OP_DUP_QUESTION) ? 1 : REG_MISSING;
+ }
+
+ fetch_token (token, regexp, syntax);
+
+ if (BE (elem == NULL, 0))
+ return NULL;
+ if (BE (start == 0 && end == 0, 0))
+ {
+ postorder (elem, free_tree, NULL);
+ return NULL;
+ }
+
+ /* Extract "<re>{n,m}" to "<re><re>...<re><re>{0,<m-n>}". */
+ if (BE (start > 0, 0))
+ {
+ tree = elem;
+ for (i = 2; i <= start; ++i)
+ {
+ elem = duplicate_tree (elem, dfa);
+ tree = create_tree (dfa, tree, elem, CONCAT);
+ if (BE (elem == NULL || tree == NULL, 0))
+ goto parse_dup_op_espace;
+ }
+
+ if (start == end)
+ return tree;
+
+ /* Duplicate ELEM before it is marked optional. */
+ elem = duplicate_tree (elem, dfa);
+ old_tree = tree;
+ }
+ else
+ old_tree = NULL;
+
+ if (elem->token.type == SUBEXP)
+ postorder (elem, mark_opt_subexp, (void *) (long) elem->token.opr.idx);
+
+ tree = create_tree (dfa, elem, NULL,
+ (end == REG_MISSING ? OP_DUP_ASTERISK : OP_ALT));
+ 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 (TYPE_SIGNED (Idx) || end != REG_MISSING)
+ for (i = start + 2; i <= end; ++i)
+ {
+ elem = duplicate_tree (elem, dfa);
+ tree = create_tree (dfa, tree, elem, CONCAT);
+ if (BE (elem == NULL || tree == NULL, 0))
+ goto parse_dup_op_espace;
+
+ tree = create_tree (dfa, tree, NULL, OP_ALT);
+ if (BE (tree == NULL, 0))
+ goto parse_dup_op_espace;
+ }
+
+ if (old_tree)
+ tree = create_tree (dfa, old_tree, tree, CONCAT);
+
+ return tree;
+
+ parse_dup_op_espace:
+ *err = REG_ESPACE;
+ return NULL;
+}
+
+/* Size of the names for collating symbol/equivalence_class/character_class.
+ I'm not sure, but maybe enough. */
+#define BRACKET_NAME_BUF_SIZE 32
+
+#ifndef _LIBC
+ /* Local function for parse_bracket_exp only used in case of NOT _LIBC.
+ Build the range expression which starts from START_ELEM, and ends
+ at END_ELEM. The result are written to MBCSET and SBCSET.
+ RANGE_ALLOC is the allocated size of mbcset->range_starts, and
+ mbcset->range_ends, is a pointer argument sinse we may
+ update it. */
+
+static reg_errcode_t
+internal_function
+# ifdef RE_ENABLE_I18N
+build_range_exp (const reg_syntax_t syntax,
+ bitset_t sbcset,
+ re_charset_t *mbcset,
+ Idx *range_alloc,
+ const bracket_elem_t *start_elem,
+ const bracket_elem_t *end_elem)
+# else /* not RE_ENABLE_I18N */
+build_range_exp (const reg_syntax_t syntax,
+ bitset_t sbcset,
+ const bracket_elem_t *start_elem,
+ const bracket_elem_t *end_elem)
+# endif /* not RE_ENABLE_I18N */
+{
+ unsigned int start_ch, end_ch;
+ /* Equivalence Classes and Character Classes can't be a range start/end. */
+ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
+ || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
+ 0))
+ return REG_ERANGE;
+
+ /* We can handle no multi character collating elements without libc
+ support. */
+ if (BE ((start_elem->type == COLL_SYM
+ && strlen ((char *) start_elem->opr.name) > 1)
+ || (end_elem->type == COLL_SYM
+ && strlen ((char *) end_elem->opr.name) > 1), 0))
+ return REG_ECOLLATE;
+
+# ifdef RE_ENABLE_I18N
+ {
+ wchar_t wc;
+ wint_t start_wc;
+ wint_t end_wc;
+ wchar_t cmp_buf[6] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'};
+
+ start_ch = ((start_elem->type == SB_CHAR) ? start_elem->opr.ch
+ : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0]
+ : 0));
+ end_ch = ((end_elem->type == SB_CHAR) ? end_elem->opr.ch
+ : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0]
+ : 0));
+ start_wc = ((start_elem->type == SB_CHAR || start_elem->type == COLL_SYM)
+ ? __btowc (start_ch) : start_elem->opr.wch);
+ end_wc = ((end_elem->type == SB_CHAR || end_elem->type == COLL_SYM)
+ ? __btowc (end_ch) : end_elem->opr.wch);
+ if (start_wc == WEOF || end_wc == WEOF)
+ return REG_ECOLLATE;
+ cmp_buf[0] = start_wc;
+ cmp_buf[4] = end_wc;
+
+ if (BE ((syntax & RE_NO_EMPTY_RANGES)
+ && wcscoll (cmp_buf, cmp_buf + 4) > 0, 0))
+ return REG_ERANGE;
+
+ /* Got valid collation sequence values, add them as a new entry.
+ However, for !_LIBC we have no collation elements: if the
+ character set is single byte, the single byte character set
+ that we build below suffices. parse_bracket_exp passes
+ no MBCSET if dfa->mb_cur_max == 1. */
+ if (mbcset)
+ {
+ /* 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;
+
+ /* +1 in case of mbcset->nranges is 0. */
+ new_nranges = 2 * mbcset->nranges + 1;
+ /* 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_array_end = re_realloc (mbcset->range_ends, wchar_t,
+ new_nranges);
+
+ if (BE (new_array_start == NULL || new_array_end == NULL, 0))
+ 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_wc;
+ mbcset->range_ends[mbcset->nranges++] = end_wc;
+ }
+
+ /* Build the table for single byte characters. */
+ for (wc = 0; wc < SBC_MAX; ++wc)
+ {
+ cmp_buf[2] = wc;
+ if (wcscoll (cmp_buf, cmp_buf + 2) <= 0
+ && wcscoll (cmp_buf + 2, cmp_buf + 4) <= 0)
+ bitset_set (sbcset, wc);
+ }
+ }
+# else /* not RE_ENABLE_I18N */
+ {
+ unsigned int ch;
+ start_ch = ((start_elem->type == SB_CHAR ) ? start_elem->opr.ch
+ : ((start_elem->type == COLL_SYM) ? start_elem->opr.name[0]
+ : 0));
+ end_ch = ((end_elem->type == SB_CHAR ) ? end_elem->opr.ch
+ : ((end_elem->type == COLL_SYM) ? end_elem->opr.name[0]
+ : 0));
+ if (start_ch > end_ch)
+ return REG_ERANGE;
+ /* Build the table for single byte characters. */
+ for (ch = 0; ch < SBC_MAX; ++ch)
+ if (start_ch <= ch && ch <= end_ch)
+ bitset_set (sbcset, ch);
+ }
+# endif /* not RE_ENABLE_I18N */
+ return REG_NOERROR;
+}
+#endif /* not _LIBC */
+
+#ifndef _LIBC
+/* Helper function for parse_bracket_exp only used in case of NOT _LIBC..
+ Build the collating element which is represented by NAME.
+ The result are written to MBCSET and SBCSET.
+ COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
+ pointer argument since we may update it. */
+
+static reg_errcode_t
+internal_function
+build_collating_symbol (bitset_t sbcset,
+# ifdef RE_ENABLE_I18N
+ re_charset_t *mbcset, Idx *coll_sym_alloc,
+# endif
+ const unsigned char *name)
+{
+ size_t name_len = strlen ((const char *) name);
+ if (BE (name_len != 1, 0))
+ return REG_ECOLLATE;
+ else
+ {
+ bitset_set (sbcset, name[0]);
+ return REG_NOERROR;
+ }
+}
+#endif /* not _LIBC */
+
+/* This function parse bracket expression like "[abc]", "[a-c]",
+ "[[.a-a.]]" etc. */
+
+static bin_tree_t *
+parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token,
+ reg_syntax_t syntax, reg_errcode_t *err)
+{
+#ifdef _LIBC
+ const unsigned char *collseqmb;
+ const char *collseqwc;
+ uint32_t nrules;
+ int32_t table_size;
+ const int32_t *symb_table;
+ const unsigned char *extra;
+
+ /* Local function for parse_bracket_exp used in _LIBC environement.
+ Seek the collating symbol entry correspondings to NAME.
+ Return the index of the symbol in the SYMB_TABLE. */
+
+ auto inline int32_t
+ __attribute ((always_inline))
+ seek_collating_symbol_entry (name, name_len)
+ const unsigned char *name;
+ size_t name_len;
+ {
+ int32_t hash = elem_hash ((const char *) name, name_len);
+ int32_t elem = hash % table_size;
+ if (symb_table[2 * elem] != 0)
+ {
+ int32_t second = hash % (table_size - 2) + 1;
+
+ do
+ {
+ /* First compare the hashing value. */
+ if (symb_table[2 * elem] == hash
+ /* Compare the length of the name. */
+ && name_len == extra[symb_table[2 * elem + 1]]
+ /* Compare the name. */
+ && memcmp (name, &extra[symb_table[2 * elem + 1] + 1],
+ name_len) == 0)
+ {
+ /* Yep, this is the entry. */
+ break;
+ }
+
+ /* Next entry. */
+ elem += second;
+ }
+ while (symb_table[2 * elem] != 0);
+ }
+ return elem;
+ }
+
+ /* 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. */
+
+ auto inline unsigned int
+ __attribute ((always_inline))
+ lookup_collation_sequence_value (br_elem)
+ bracket_elem_t *br_elem;
+ {
+ if (br_elem->type == SB_CHAR)
+ {
+ /*
+ if (MB_CUR_MAX == 1)
+ */
+ if (nrules == 0)
+ return collseqmb[br_elem->opr.ch];
+ else
+ {
+ wint_t wc = __btowc (br_elem->opr.ch);
+ return __collseq_table_lookup (collseqwc, wc);
+ }
+ }
+ else if (br_elem->type == MB_CHAR)
+ {
+ if (nrules != 0)
+ return __collseq_table_lookup (collseqwc, br_elem->opr.wch);
+ }
+ else if (br_elem->type == COLL_SYM)
+ {
+ size_t sym_name_len = strlen ((char *) br_elem->opr.name);
+ if (nrules != 0)
+ {
+ int32_t elem, idx;
+ elem = seek_collating_symbol_entry (br_elem->opr.name,
+ sym_name_len);
+ if (symb_table[2 * elem] != 0)
+ {
+ /* We found the entry. */
+ idx = symb_table[2 * elem + 1];
+ /* Skip the name of collating element name. */
+ idx += 1 + extra[idx];
+ /* Skip the byte sequence of the collating element. */
+ idx += 1 + extra[idx];
+ /* Adjust for the alignment. */
+ idx = (idx + 3) & ~3;
+ /* Skip the multibyte collation sequence value. */
+ idx += sizeof (unsigned int);
+ /* Skip the wide char sequence of the collating element. */
+ idx += sizeof (unsigned int) *
+ (1 + *(unsigned int *) (extra + idx));
+ /* Return the collation sequence value. */
+ return *(unsigned int *) (extra + idx);
+ }
+ else if (symb_table[2 * elem] == 0 && sym_name_len == 1)
+ {
+ /* No valid character. Match it as a single byte
+ character. */
+ return collseqmb[br_elem->opr.name[0]];
+ }
+ }
+ else if (sym_name_len == 1)
+ return collseqmb[br_elem->opr.name[0]];
+ }
+ return UINT_MAX;
+ }
+
+ /* Local function for parse_bracket_exp used in _LIBC environement.
+ Build the range expression which starts from START_ELEM, and ends
+ at END_ELEM. The result are written to MBCSET and SBCSET.
+ RANGE_ALLOC is the allocated size of mbcset->range_starts, and
+ mbcset->range_ends, is a pointer argument sinse we may
+ update it. */
+
+ auto inline reg_errcode_t
+ __attribute ((always_inline))
+ build_range_exp (sbcset, mbcset, range_alloc, start_elem, end_elem)
+ re_charset_t *mbcset;
+ Idx *range_alloc;
+ bitset_t sbcset;
+ bracket_elem_t *start_elem, *end_elem;
+ {
+ unsigned int ch;
+ uint32_t start_collseq;
+ uint32_t end_collseq;
+
+ /* Equivalence Classes and Character Classes can't be a range
+ start/end. */
+ if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
+ || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
+ 0))
+ return REG_ERANGE;
+
+ start_collseq = lookup_collation_sequence_value (start_elem);
+ end_collseq = lookup_collation_sequence_value (end_elem);
+ /* Check start/end collation sequence values. */
+ if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0))
+ return REG_ECOLLATE;
+ if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0))
+ return REG_ERANGE;
+
+ /* Got valid collation sequence values, add them as a new entry.
+ However, if we have no collation elements, and the character set
+ is single byte, the single byte character set that we
+ build below suffices. */
+ if (nrules > 0 || dfa->mb_cur_max > 1)
+ {
+ /* 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;
+ uint32_t *new_array_end;
+ Idx new_nranges;
+
+ /* +1 in case of mbcset->nranges is 0. */
+ new_nranges = 2 * mbcset->nranges + 1;
+ new_array_start = re_realloc (mbcset->range_starts, uint32_t,
+ new_nranges);
+ new_array_end = re_realloc (mbcset->range_ends, uint32_t,
+ new_nranges);
+
+ if (BE (new_array_start == NULL || new_array_end == NULL, 0))
+ 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;
+ }
+
+ /* Build the table for single byte characters. */
+ for (ch = 0; ch < SBC_MAX; ch++)
+ {
+ uint32_t ch_collseq;
+ /*
+ if (MB_CUR_MAX == 1)
+ */
+ if (nrules == 0)
+ ch_collseq = collseqmb[ch];
+ else
+ ch_collseq = __collseq_table_lookup (collseqwc, __btowc (ch));
+ if (start_collseq <= ch_collseq && ch_collseq <= end_collseq)
+ bitset_set (sbcset, ch);
+ }
+ return REG_NOERROR;
+ }
+
+ /* Local function for parse_bracket_exp used in _LIBC environement.
+ Build the collating element which is represented by NAME.
+ The result are written to MBCSET and SBCSET.
+ COLL_SYM_ALLOC is the allocated size of mbcset->coll_sym, is a
+ pointer argument sinse we may update it. */
+
+ auto inline reg_errcode_t
+ __attribute ((always_inline))
+ build_collating_symbol (sbcset, mbcset, coll_sym_alloc, name)
+ re_charset_t *mbcset;
+ Idx *coll_sym_alloc;
+ bitset_t sbcset;
+ const unsigned char *name;
+ {
+ int32_t elem, idx;
+ size_t name_len = strlen ((const char *) name);
+ if (nrules != 0)
+ {
+ elem = seek_collating_symbol_entry (name, name_len);
+ if (symb_table[2 * elem] != 0)
+ {
+ /* We found the entry. */
+ idx = symb_table[2 * elem + 1];
+ /* Skip the name of collating element name. */
+ idx += 1 + extra[idx];
+ }
+ else if (symb_table[2 * elem] == 0 && name_len == 1)
+ {
+ /* No valid character, treat it as a normal
+ character. */
+ bitset_set (sbcset, name[0]);
+ return REG_NOERROR;
+ }
+ else
+ return REG_ECOLLATE;
+
+ /* Got valid collation sequence, add it as a new entry. */
+ /* Check the space of the arrays. */
+ if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0))
+ {
+ /* Not enough, realloc it. */
+ /* +1 in case of mbcset->ncoll_syms is 0. */
+ Idx new_coll_sym_alloc = 2 * mbcset->ncoll_syms + 1;
+ /* Use realloc since mbcset->coll_syms is NULL
+ if *alloc == 0. */
+ int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t,
+ new_coll_sym_alloc);
+ if (BE (new_coll_syms == NULL, 0))
+ return REG_ESPACE;
+ mbcset->coll_syms = new_coll_syms;
+ *coll_sym_alloc = new_coll_sym_alloc;
+ }
+ mbcset->coll_syms[mbcset->ncoll_syms++] = idx;
+ return REG_NOERROR;
+ }
+ else
+ {
+ if (BE (name_len != 1, 0))
+ return REG_ECOLLATE;
+ else
+ {
+ bitset_set (sbcset, name[0]);
+ return REG_NOERROR;
+ }
+ }
+ }
+#endif
+
+ re_token_t br_token;
+ re_bitset_ptr_t sbcset;
+#ifdef RE_ENABLE_I18N
+ re_charset_t *mbcset;
+ Idx coll_sym_alloc = 0, range_alloc = 0, mbchar_alloc = 0;
+ Idx equiv_class_alloc = 0, char_class_alloc = 0;
+#endif /* not RE_ENABLE_I18N */
+ bool non_match = false;
+ bin_tree_t *work_tree;
+ int token_len;
+ bool first_round = true;
+#ifdef _LIBC
+ collseqmb = (const unsigned char *)
+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB);
+ nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+ if (nrules)
+ {
+ /*
+ if (MB_CUR_MAX > 1)
+ */
+ collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC);
+ 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);
+ }
+#endif
+ sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+#ifdef RE_ENABLE_I18N
+ mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
+#endif /* RE_ENABLE_I18N */
+#ifdef RE_ENABLE_I18N
+ if (BE (sbcset == NULL || mbcset == NULL, 0))
+#else
+ if (BE (sbcset == NULL, 0))
+#endif /* RE_ENABLE_I18N */
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+
+ token_len = peek_token_bracket (token, regexp, syntax);
+ if (BE (token->type == END_OF_RE, 0))
+ {
+ *err = REG_BADPAT;
+ goto parse_bracket_exp_free_return;
+ }
+ if (token->type == OP_NON_MATCH_LIST)
+ {
+#ifdef RE_ENABLE_I18N
+ mbcset->non_match = 1;
+#endif /* not RE_ENABLE_I18N */
+ non_match = true;
+ if (syntax & RE_HAT_LISTS_NOT_NEWLINE)
+ bitset_set (sbcset, '\n');
+ re_string_skip_bytes (regexp, token_len); /* Skip a token. */
+ token_len = peek_token_bracket (token, regexp, syntax);
+ if (BE (token->type == END_OF_RE, 0))
+ {
+ *err = REG_BADPAT;
+ goto parse_bracket_exp_free_return;
+ }
+ }
+
+ /* We treat the first ']' as a normal character. */
+ if (token->type == OP_CLOSE_BRACKET)
+ token->type = CHARACTER;
+
+ while (1)
+ {
+ bracket_elem_t start_elem, end_elem;
+ unsigned char start_name_buf[BRACKET_NAME_BUF_SIZE];
+ unsigned char end_name_buf[BRACKET_NAME_BUF_SIZE];
+ reg_errcode_t ret;
+ int token_len2 = 0;
+ bool is_range_exp = false;
+ re_token_t token2;
+
+ start_elem.opr.name = start_name_buf;
+ ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa,
+ syntax, first_round);
+ if (BE (ret != REG_NOERROR, 0))
+ {
+ *err = ret;
+ goto parse_bracket_exp_free_return;
+ }
+ first_round = false;
+
+ /* Get information about the next token. We need it in any case. */
+ token_len = peek_token_bracket (token, regexp, syntax);
+
+ /* Do not check for ranges if we know they are not allowed. */
+ if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS)
+ {
+ if (BE (token->type == END_OF_RE, 0))
+ {
+ *err = REG_EBRACK;
+ goto parse_bracket_exp_free_return;
+ }
+ if (token->type == OP_CHARSET_RANGE)
+ {
+ re_string_skip_bytes (regexp, token_len); /* Skip '-'. */
+ token_len2 = peek_token_bracket (&token2, regexp, syntax);
+ if (BE (token2.type == END_OF_RE, 0))
+ {
+ *err = REG_EBRACK;
+ goto parse_bracket_exp_free_return;
+ }
+ if (token2.type == OP_CLOSE_BRACKET)
+ {
+ /* We treat the last '-' as a normal character. */
+ re_string_skip_bytes (regexp, -token_len);
+ token->type = CHARACTER;
+ }
+ else
+ is_range_exp = true;
+ }
+ }
+
+ if (is_range_exp == true)
+ {
+ end_elem.opr.name = end_name_buf;
+ ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2,
+ dfa, syntax, true);
+ if (BE (ret != REG_NOERROR, 0))
+ {
+ *err = ret;
+ goto parse_bracket_exp_free_return;
+ }
+
+ token_len = peek_token_bracket (token, regexp, syntax);
+
+#ifdef _LIBC
+ *err = build_range_exp (sbcset, mbcset, &range_alloc,
+ &start_elem, &end_elem);
+#else
+# ifdef RE_ENABLE_I18N
+ *err = build_range_exp (syntax, sbcset,
+ dfa->mb_cur_max > 1 ? mbcset : NULL,
+ &range_alloc, &start_elem, &end_elem);
+# else
+ *err = build_range_exp (syntax, sbcset, &start_elem, &end_elem);
+# endif
+#endif /* RE_ENABLE_I18N */
+ if (BE (*err != REG_NOERROR, 0))
+ goto parse_bracket_exp_free_return;
+ }
+ else
+ {
+ switch (start_elem.type)
+ {
+ case SB_CHAR:
+ bitset_set (sbcset, start_elem.opr.ch);
+ break;
+#ifdef RE_ENABLE_I18N
+ case MB_CHAR:
+ /* Check whether the array has enough space. */
+ if (BE (mbchar_alloc == mbcset->nmbchars, 0))
+ {
+ wchar_t *new_mbchars;
+ /* Not enough, realloc it. */
+ /* +1 in case of mbcset->nmbchars is 0. */
+ mbchar_alloc = 2 * mbcset->nmbchars + 1;
+ /* Use realloc since array is NULL if *alloc == 0. */
+ new_mbchars = re_realloc (mbcset->mbchars, wchar_t,
+ mbchar_alloc);
+ if (BE (new_mbchars == NULL, 0))
+ goto parse_bracket_exp_espace;
+ mbcset->mbchars = new_mbchars;
+ }
+ mbcset->mbchars[mbcset->nmbchars++] = start_elem.opr.wch;
+ break;
+#endif /* RE_ENABLE_I18N */
+ case EQUIV_CLASS:
+ *err = build_equiv_class (sbcset,
+#ifdef RE_ENABLE_I18N
+ mbcset, &equiv_class_alloc,
+#endif /* RE_ENABLE_I18N */
+ start_elem.opr.name);
+ if (BE (*err != REG_NOERROR, 0))
+ goto parse_bracket_exp_free_return;
+ break;
+ case COLL_SYM:
+ *err = build_collating_symbol (sbcset,
+#ifdef RE_ENABLE_I18N
+ mbcset, &coll_sym_alloc,
+#endif /* RE_ENABLE_I18N */
+ start_elem.opr.name);
+ if (BE (*err != REG_NOERROR, 0))
+ goto parse_bracket_exp_free_return;
+ break;
+ case CHAR_CLASS:
+ *err = build_charclass (regexp->trans, sbcset,
+#ifdef RE_ENABLE_I18N
+ mbcset, &char_class_alloc,
+#endif /* RE_ENABLE_I18N */
+ start_elem.opr.name, syntax);
+ if (BE (*err != REG_NOERROR, 0))
+ goto parse_bracket_exp_free_return;
+ break;
+ default:
+ assert (0);
+ break;
+ }
+ }
+ if (BE (token->type == END_OF_RE, 0))
+ {
+ *err = REG_EBRACK;
+ goto parse_bracket_exp_free_return;
+ }
+ if (token->type == OP_CLOSE_BRACKET)
+ break;
+ }
+
+ re_string_skip_bytes (regexp, token_len); /* Skip a token. */
+
+ /* If it is non-matching list. */
+ if (non_match)
+ bitset_not (sbcset);
+
+#ifdef RE_ENABLE_I18N
+ /* Ensure only single byte characters are set. */
+ if (dfa->mb_cur_max > 1)
+ bitset_mask (sbcset, dfa->sb_char);
+
+ if (mbcset->nmbchars || mbcset->ncoll_syms || mbcset->nequiv_classes
+ || mbcset->nranges || (dfa->mb_cur_max > 1 && (mbcset->nchar_classes
+ || mbcset->non_match)))
+ {
+ bin_tree_t *mbc_tree;
+ int sbc_idx;
+ /* Build a tree for complex bracket. */
+ dfa->has_mb_node = 1;
+ br_token.type = COMPLEX_BRACKET;
+ br_token.opr.mbcset = mbcset;
+ mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
+ if (BE (mbc_tree == NULL, 0))
+ goto parse_bracket_exp_espace;
+ for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx)
+ if (sbcset[sbc_idx])
+ break;
+ /* If there are no bits set in sbcset, there is no point
+ 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;
+
+ /* 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
+ {
+ re_free (sbcset);
+ work_tree = mbc_tree;
+ }
+ }
+ else
+#endif /* not RE_ENABLE_I18N */
+ {
+#ifdef RE_ENABLE_I18N
+ free_charset (mbcset);
+#endif
+ /* 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;
+ }
+ return work_tree;
+
+ parse_bracket_exp_espace:
+ *err = REG_ESPACE;
+ parse_bracket_exp_free_return:
+ re_free (sbcset);
+#ifdef RE_ENABLE_I18N
+ free_charset (mbcset);
+#endif /* RE_ENABLE_I18N */
+ return NULL;
+}
+
+/* Parse an element in the bracket expression. */
+
+static reg_errcode_t
+parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp,
+ re_token_t *token, int token_len, re_dfa_t *dfa,
+ reg_syntax_t syntax, bool accept_hyphen)
+{
+#ifdef RE_ENABLE_I18N
+ int cur_char_size;
+ cur_char_size = re_string_char_size_at (regexp, re_string_cur_idx (regexp));
+ if (cur_char_size > 1)
+ {
+ elem->type = MB_CHAR;
+ elem->opr.wch = re_string_wchar_at (regexp, re_string_cur_idx (regexp));
+ re_string_skip_bytes (regexp, cur_char_size);
+ return REG_NOERROR;
+ }
+#endif /* RE_ENABLE_I18N */
+ re_string_skip_bytes (regexp, token_len); /* Skip a token. */
+ if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS
+ || token->type == OP_OPEN_EQUIV_CLASS)
+ return parse_bracket_symbol (elem, regexp, token);
+ if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen)
+ {
+ /* A '-' must only appear as anything but a range indicator before
+ the closing bracket. Everything else is an error. */
+ re_token_t token2;
+ (void) peek_token_bracket (&token2, regexp, syntax);
+ if (token2.type != OP_CLOSE_BRACKET)
+ /* The actual error value is not standardized since this whole
+ case is undefined. But ERANGE makes good sense. */
+ return REG_ERANGE;
+ }
+ elem->type = SB_CHAR;
+ elem->opr.ch = token->opr.c;
+ return REG_NOERROR;
+}
+
+/* Parse a bracket symbol in the bracket expression. Bracket symbols are
+ such as [:<character_class>:], [.<collating_element>.], and
+ [=<equivalent_class>=]. */
+
+static reg_errcode_t
+parse_bracket_symbol (bracket_elem_t *elem, re_string_t *regexp,
+ re_token_t *token)
+{
+ unsigned char ch, delim = token->opr.c;
+ int i = 0;
+ if (re_string_eoi(regexp))
+ return REG_EBRACK;
+ for (;; ++i)
+ {
+ if (i >= BRACKET_NAME_BUF_SIZE)
+ return REG_EBRACK;
+ if (token->type == OP_OPEN_CHAR_CLASS)
+ ch = re_string_fetch_byte_case (regexp);
+ else
+ ch = re_string_fetch_byte (regexp);
+ if (re_string_eoi(regexp))
+ return REG_EBRACK;
+ if (ch == delim && re_string_peek_byte (regexp, 0) == ']')
+ break;
+ elem->opr.name[i] = ch;
+ }
+ re_string_skip_bytes (regexp, 1);
+ elem->opr.name[i] = '\0';
+ switch (token->type)
+ {
+ case OP_OPEN_COLL_ELEM:
+ elem->type = COLL_SYM;
+ break;
+ case OP_OPEN_EQUIV_CLASS:
+ elem->type = EQUIV_CLASS;
+ break;
+ case OP_OPEN_CHAR_CLASS:
+ elem->type = CHAR_CLASS;
+ break;
+ default:
+ break;
+ }
+ return REG_NOERROR;
+}
+
+ /* Helper function for parse_bracket_exp.
+ Build the equivalence class which is represented by NAME.
+ The result are written to MBCSET and SBCSET.
+ EQUIV_CLASS_ALLOC is the allocated size of mbcset->equiv_classes,
+ is a pointer argument sinse we may update it. */
+
+static reg_errcode_t
+#ifdef RE_ENABLE_I18N
+build_equiv_class (bitset_t sbcset, re_charset_t *mbcset,
+ Idx *equiv_class_alloc, const unsigned char *name)
+#else /* not RE_ENABLE_I18N */
+build_equiv_class (bitset_t sbcset, const unsigned char *name)
+#endif /* not RE_ENABLE_I18N */
+{
+#ifdef _LIBC
+ uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+ if (nrules != 0)
+ {
+ const int32_t *table, *indirect;
+ const unsigned char *weights, *extra, *cp;
+ unsigned char char_buf[2];
+ int32_t idx1, idx2;
+ unsigned int ch;
+ size_t len;
+ /* This #include defines a local function! */
+# include <locale/weight.h>
+ /* Calculate the index for equivalence class. */
+ cp = name;
+ 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);
+ idx1 = findidx (&cp);
+ if (BE (idx1 == 0 || cp < name + strlen ((const char *) name), 0))
+ /* This isn't a valid character. */
+ return REG_ECOLLATE;
+
+ /* Build single byte matcing table for this equivalence class. */
+ char_buf[1] = (unsigned char) '\0';
+ len = weights[idx1 & 0xffffff];
+ for (ch = 0; ch < SBC_MAX; ++ch)
+ {
+ char_buf[0] = ch;
+ cp = char_buf;
+ idx2 = findidx (&cp);
+/*
+ idx2 = table[ch];
+*/
+ if (idx2 == 0)
+ /* This isn't a valid character. */
+ continue;
+ /* 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 & 0xffffff) + 1 + cnt]
+ == weights[(idx2 & 0xffffff) + 1 + cnt])
+ ++cnt;
+
+ if (cnt > len)
+ bitset_set (sbcset, ch);
+ }
+ }
+ /* Check whether the array has enough space. */
+ if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0))
+ {
+ /* Not enough, realloc it. */
+ /* +1 in case of mbcset->nequiv_classes is 0. */
+ Idx new_equiv_class_alloc = 2 * mbcset->nequiv_classes + 1;
+ /* Use realloc since the array is NULL if *alloc == 0. */
+ int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes,
+ int32_t,
+ new_equiv_class_alloc);
+ if (BE (new_equiv_classes == NULL, 0))
+ return REG_ESPACE;
+ mbcset->equiv_classes = new_equiv_classes;
+ *equiv_class_alloc = new_equiv_class_alloc;
+ }
+ mbcset->equiv_classes[mbcset->nequiv_classes++] = idx1;
+ }
+ else
+#endif /* _LIBC */
+ {
+ if (BE (strlen ((const char *) name) != 1, 0))
+ return REG_ECOLLATE;
+ bitset_set (sbcset, *name);
+ }
+ return REG_NOERROR;
+}
+
+ /* Helper function for parse_bracket_exp.
+ Build the character class which is represented by NAME.
+ The result are written to MBCSET and SBCSET.
+ CHAR_CLASS_ALLOC is the allocated size of mbcset->char_classes,
+ is a pointer argument sinse we may update it. */
+
+static reg_errcode_t
+#ifdef RE_ENABLE_I18N
+build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
+ re_charset_t *mbcset, Idx *char_class_alloc,
+ const unsigned char *class_name, reg_syntax_t syntax)
+#else /* not RE_ENABLE_I18N */
+build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
+ const unsigned char *class_name, reg_syntax_t syntax)
+#endif /* not RE_ENABLE_I18N */
+{
+ int i;
+ const char *name = (const char *) class_name;
+
+ /* In case of REG_ICASE "upper" and "lower" match the both of
+ upper and lower cases. */
+ if ((syntax & RE_ICASE)
+ && (strcmp (name, "upper") == 0 || strcmp (name, "lower") == 0))
+ name = "alpha";
+
+#ifdef RE_ENABLE_I18N
+ /* Check the space of the arrays. */
+ if (BE (*char_class_alloc == mbcset->nchar_classes, 0))
+ {
+ /* Not enough, realloc it. */
+ /* +1 in case of mbcset->nchar_classes is 0. */
+ Idx new_char_class_alloc = 2 * mbcset->nchar_classes + 1;
+ /* Use realloc since array is NULL if *alloc == 0. */
+ wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t,
+ new_char_class_alloc);
+ if (BE (new_char_classes == NULL, 0))
+ return REG_ESPACE;
+ mbcset->char_classes = new_char_classes;
+ *char_class_alloc = new_char_class_alloc;
+ }
+ mbcset->char_classes[mbcset->nchar_classes++] = __wctype (name);
+#endif /* RE_ENABLE_I18N */
+
+#define BUILD_CHARCLASS_LOOP(ctype_func) \
+ do { \
+ if (BE (trans != NULL, 0)) \
+ { \
+ for (i = 0; i < SBC_MAX; ++i) \
+ if (ctype_func (i)) \
+ bitset_set (sbcset, trans[i]); \
+ } \
+ else \
+ { \
+ for (i = 0; i < SBC_MAX; ++i) \
+ if (ctype_func (i)) \
+ bitset_set (sbcset, i); \
+ } \
+ } while (0)
+
+ if (strcmp (name, "alnum") == 0)
+ BUILD_CHARCLASS_LOOP (isalnum);
+ else if (strcmp (name, "cntrl") == 0)
+ BUILD_CHARCLASS_LOOP (iscntrl);
+ else if (strcmp (name, "lower") == 0)
+ BUILD_CHARCLASS_LOOP (islower);
+ else if (strcmp (name, "space") == 0)
+ BUILD_CHARCLASS_LOOP (isspace);
+ else if (strcmp (name, "alpha") == 0)
+ BUILD_CHARCLASS_LOOP (isalpha);
+ else if (strcmp (name, "digit") == 0)
+ BUILD_CHARCLASS_LOOP (isdigit);
+ else if (strcmp (name, "print") == 0)
+ BUILD_CHARCLASS_LOOP (isprint);
+ else if (strcmp (name, "upper") == 0)
+ BUILD_CHARCLASS_LOOP (isupper);
+ else if (strcmp (name, "blank") == 0)
+ BUILD_CHARCLASS_LOOP (isblank);
+ else if (strcmp (name, "graph") == 0)
+ BUILD_CHARCLASS_LOOP (isgraph);
+ else if (strcmp (name, "punct") == 0)
+ BUILD_CHARCLASS_LOOP (ispunct);
+ else if (strcmp (name, "xdigit") == 0)
+ BUILD_CHARCLASS_LOOP (isxdigit);
+ else
+ return REG_ECTYPE;
+
+ return REG_NOERROR;
+}
+
+static bin_tree_t *
+build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
+ const unsigned char *class_name,
+ const unsigned char *extra, bool non_match,
+ reg_errcode_t *err)
+{
+ re_bitset_ptr_t sbcset;
+#ifdef RE_ENABLE_I18N
+ re_charset_t *mbcset;
+ Idx alloc = 0;
+#endif /* not RE_ENABLE_I18N */
+ reg_errcode_t ret;
+ re_token_t br_token;
+ bin_tree_t *tree;
+
+ sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1);
+#ifdef RE_ENABLE_I18N
+ mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1);
+#endif /* RE_ENABLE_I18N */
+
+#ifdef RE_ENABLE_I18N
+ if (BE (sbcset == NULL || mbcset == NULL, 0))
+#else /* not RE_ENABLE_I18N */
+ if (BE (sbcset == NULL, 0))
+#endif /* not RE_ENABLE_I18N */
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+
+ if (non_match)
+ {
+#ifdef RE_ENABLE_I18N
+ mbcset->non_match = 1;
+#endif /* not RE_ENABLE_I18N */
+ }
+
+ /* We don't care the syntax in this case. */
+ ret = build_charclass (trans, sbcset,
+#ifdef RE_ENABLE_I18N
+ mbcset, &alloc,
+#endif /* RE_ENABLE_I18N */
+ class_name, 0);
+
+ if (BE (ret != REG_NOERROR, 0))
+ {
+ re_free (sbcset);
+#ifdef RE_ENABLE_I18N
+ free_charset (mbcset);
+#endif /* RE_ENABLE_I18N */
+ *err = ret;
+ return NULL;
+ }
+ /* \w match '_' also. */
+ for (; *extra; extra++)
+ bitset_set (sbcset, *extra);
+
+ /* If it is non-matching list. */
+ if (non_match)
+ bitset_not (sbcset);
+
+#ifdef RE_ENABLE_I18N
+ /* Ensure only single byte characters are set. */
+ if (dfa->mb_cur_max > 1)
+ bitset_mask (sbcset, dfa->sb_char);
+#endif
+
+ /* Build a tree for simple bracket. */
+ br_token.type = SIMPLE_BRACKET;
+ br_token.opr.sbcset = sbcset;
+ tree = create_token_tree (dfa, NULL, NULL, &br_token);
+ if (BE (tree == NULL, 0))
+ goto build_word_op_espace;
+
+#ifdef RE_ENABLE_I18N
+ if (dfa->mb_cur_max > 1)
+ {
+ bin_tree_t *mbc_tree;
+ /* Build a tree for complex bracket. */
+ br_token.type = COMPLEX_BRACKET;
+ br_token.opr.mbcset = mbcset;
+ dfa->has_mb_node = 1;
+ mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token);
+ if (BE (mbc_tree == NULL, 0))
+ goto build_word_op_espace;
+ /* Then join them by ALT node. */
+ tree = create_tree (dfa, tree, mbc_tree, OP_ALT);
+ if (BE (mbc_tree != NULL, 1))
+ return tree;
+ }
+ else
+ {
+ free_charset (mbcset);
+ return tree;
+ }
+#else /* not RE_ENABLE_I18N */
+ return tree;
+#endif /* not RE_ENABLE_I18N */
+
+ build_word_op_espace:
+ re_free (sbcset);
+#ifdef RE_ENABLE_I18N
+ free_charset (mbcset);
+#endif /* RE_ENABLE_I18N */
+ *err = REG_ESPACE;
+ return NULL;
+}
+
+/* This is intended for the expressions like "a{1,3}".
+ Fetch a number from 'input', and return the number.
+ Return REG_MISSING if the number field is empty like "{,1}".
+ Return REG_ERROR if an error occurred. */
+
+static Idx
+fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax)
+{
+ Idx num = REG_MISSING;
+ unsigned char c;
+ while (1)
+ {
+ fetch_token (token, input, syntax);
+ c = token->opr.c;
+ if (BE (token->type == END_OF_RE, 0))
+ return REG_ERROR;
+ if (token->type == OP_CLOSE_DUP_NUM || c == ',')
+ break;
+ num = ((token->type != CHARACTER || c < '0' || '9' < c
+ || num == REG_ERROR)
+ ? REG_ERROR
+ : ((num == REG_MISSING) ? c - '0' : num * 10 + c - '0'));
+ num = (num > RE_DUP_MAX) ? REG_ERROR : num;
+ }
+ return num;
+}
+
+#ifdef RE_ENABLE_I18N
+static void
+free_charset (re_charset_t *cset)
+{
+ re_free (cset->mbchars);
+# ifdef _LIBC
+ re_free (cset->coll_syms);
+ re_free (cset->equiv_classes);
+ re_free (cset->range_starts);
+ re_free (cset->range_ends);
+# endif
+ re_free (cset->char_classes);
+ re_free (cset);
+}
+#endif /* RE_ENABLE_I18N */
+
+/* Functions for binary tree operation. */
+
+/* Create a tree node. */
+
+static bin_tree_t *
+create_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
+ re_token_type_t type)
+{
+ re_token_t t;
+ t.type = type;
+ return create_token_tree (dfa, left, right, &t);
+}
+
+static bin_tree_t *
+create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right,
+ const re_token_t *token)
+{
+ bin_tree_t *tree;
+ if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0))
+ {
+ bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1);
+
+ if (storage == NULL)
+ return NULL;
+ storage->next = dfa->str_tree_storage;
+ dfa->str_tree_storage = storage;
+ dfa->str_tree_storage_idx = 0;
+ }
+ tree = &dfa->str_tree_storage->data[dfa->str_tree_storage_idx++];
+
+ tree->parent = NULL;
+ tree->left = left;
+ tree->right = right;
+ tree->token = *token;
+ tree->token.duplicated = 0;
+ tree->token.opt_subexp = 0;
+ tree->first = NULL;
+ tree->next = NULL;
+ tree->node_idx = REG_MISSING;
+
+ if (left != NULL)
+ left->parent = tree;
+ if (right != NULL)
+ right->parent = tree;
+ return tree;
+}
+
+/* Mark the tree SRC as an optional subexpression.
+ To be called from preorder or postorder. */
+
+static reg_errcode_t
+mark_opt_subexp (void *extra, bin_tree_t *node)
+{
+ Idx idx = (Idx) (long) extra;
+ if (node->token.type == SUBEXP && node->token.opr.idx == idx)
+ node->token.opt_subexp = 1;
+
+ return REG_NOERROR;
+}
+
+/* Free the allocated memory inside NODE. */
+
+static void
+free_token (re_token_t *node)
+{
+#ifdef RE_ENABLE_I18N
+ if (node->type == COMPLEX_BRACKET && node->duplicated == 0)
+ free_charset (node->opr.mbcset);
+ else
+#endif /* RE_ENABLE_I18N */
+ if (node->type == SIMPLE_BRACKET && node->duplicated == 0)
+ re_free (node->opr.sbcset);
+}
+
+/* Worker function for tree walking. Free the allocated memory inside NODE
+ and its children. */
+
+static reg_errcode_t
+free_tree (void *extra, bin_tree_t *node)
+{
+ free_token (&node->token);
+ return REG_NOERROR;
+}
+
+
+/* Duplicate the node SRC, and return new node. This is a preorder
+ visit similar to the one implemented by the generic visitor, but
+ we need more infrastructure to maintain two parallel trees --- so,
+ it's easier to duplicate. */
+
+static bin_tree_t *
+duplicate_tree (const bin_tree_t *root, re_dfa_t *dfa)
+{
+ const bin_tree_t *node;
+ bin_tree_t *dup_root;
+ bin_tree_t **p_new = &dup_root, *dup_node = root->parent;
+
+ for (node = root; ; )
+ {
+ /* Create a new tree and link it back to the current parent. */
+ *p_new = create_token_tree (dfa, NULL, NULL, &node->token);
+ if (*p_new == NULL)
+ return NULL;
+ (*p_new)->parent = dup_node;
+ (*p_new)->token.duplicated = 1;
+ dup_node = *p_new;
+
+ /* Go to the left node, or up and to the right. */
+ if (node->left)
+ {
+ node = node->left;
+ p_new = &dup_node->left;
+ }
+ else
+ {
+ const bin_tree_t *prev = NULL;
+ while (node->right == prev || node->right == NULL)
+ {
+ prev = node;
+ node = node->parent;
+ dup_node = dup_node->parent;
+ if (!node)
+ return dup_root;
+ }
+ node = node->right;
+ p_new = &dup_node->right;
+ }
+ }
+}
diff --git a/gnu/regex.c b/gnu/regex.c
new file mode 100644
index 00000000..eec515d7
--- /dev/null
+++ b/gnu/regex.c
@@ -0,0 +1,74 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+ This 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>
+
+/* Make sure noone compiles this code with a C++ compiler. */
+#if defined __cplusplus && defined _LIBC
+# error "This is C code, use a C compiler"
+#endif
+
+#ifdef _LIBC
+/* We have to keep the namespace clean. */
+# define regfree(preg) __regfree (preg)
+# define regexec(pr, st, nm, pm, ef) __regexec (pr, st, nm, pm, ef)
+# define regcomp(preg, pattern, cflags) __regcomp (preg, pattern, cflags)
+# define regerror(errcode, preg, errbuf, errbuf_size) \
+ __regerror(errcode, preg, errbuf, errbuf_size)
+# define re_set_registers(bu, re, nu, st, en) \
+ __re_set_registers (bu, re, nu, st, en)
+# define re_match_2(bufp, string1, size1, string2, size2, pos, regs, stop) \
+ __re_match_2 (bufp, string1, size1, string2, size2, pos, regs, stop)
+# define re_match(bufp, string, size, pos, regs) \
+ __re_match (bufp, string, size, pos, regs)
+# define re_search(bufp, string, size, startpos, range, regs) \
+ __re_search (bufp, string, size, startpos, range, regs)
+# define re_compile_pattern(pattern, length, bufp) \
+ __re_compile_pattern (pattern, length, bufp)
+# define re_set_syntax(syntax) __re_set_syntax (syntax)
+# define re_search_2(bufp, st1, s1, st2, s2, startpos, range, regs, stop) \
+ __re_search_2 (bufp, st1, s1, st2, s2, startpos, range, regs, stop)
+# define re_compile_fastmap(bufp) __re_compile_fastmap (bufp)
+
+# include "../locale/localeinfo.h"
+#endif
+
+/* On some systems, limits.h sets RE_DUP_MAX to a lower value than
+ GNU regex allows. Include it before <regex.h>, which correctly
+ #undefs RE_DUP_MAX and sets it to the right value. */
+#include <limits.h>
+#include <strings.h>
+
+#include <regex.h>
+#include "regex_internal.h"
+
+#include "regex_internal.c"
+#include "regcomp.c"
+#include "regexec.c"
+
+/* Binary backward compatibility. */
+#if _LIBC
+# include <shlib-compat.h>
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3)
+link_warning (re_max_failures, "the 're_max_failures' variable is obsolete and will go away.")
+int re_max_failures = 2000;
+# endif
+#endif
diff --git a/gnu/regex.h b/gnu/regex.h
new file mode 100644
index 00000000..a5ed2817
--- /dev/null
+++ b/gnu/regex.h
@@ -0,0 +1,677 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Definitions for data structures and routines for the regular
+ expression library.
+ Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2006, 2009-2012
+ 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. */
+
+#ifndef _REGEX_H
+#define _REGEX_H 1
+
+#include <sys/types.h>
+
+/* Allow the use in C++ code. */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Define __USE_GNU_REGEX to declare GNU extensions that violate the
+ POSIX name space rules. */
+#undef __USE_GNU_REGEX
+#if (defined _GNU_SOURCE \
+ || (!defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE \
+ && !defined _XOPEN_SOURCE))
+# define __USE_GNU_REGEX 1
+#endif
+
+#ifdef _REGEX_LARGE_OFFSETS
+
+/* Use types and values that are wide enough to represent signed and
+ unsigned byte offsets in memory. This currently works only when
+ the regex code is used outside of the GNU C library; it is not yet
+ supported within glibc itself, and glibc users should not define
+ _REGEX_LARGE_OFFSETS. */
+
+/* The type of the offset of a byte within a string.
+ For historical reasons POSIX 1003.1-2004 requires that regoff_t be
+ at least as wide as off_t. However, many common POSIX platforms set
+ regoff_t to the more-sensible ssize_t and the Open Group has
+ signalled its intention to change the requirement to be that
+ regoff_t be at least as wide as ptrdiff_t and ssize_t; see XBD ERN
+ 60 (2005-08-25). We don't know of any hosts where ssize_t or
+ ptrdiff_t is wider than ssize_t, so ssize_t is safe. */
+typedef ssize_t regoff_t;
+
+/* The type of nonnegative object indexes. Traditionally, GNU regex
+ uses 'int' for these. Code that uses __re_idx_t should work
+ regardless of whether the type is signed. */
+typedef size_t __re_idx_t;
+
+/* The type of object sizes. */
+typedef size_t __re_size_t;
+
+/* The type of object sizes, in places where the traditional code
+ uses unsigned long int. */
+typedef size_t __re_long_size_t;
+
+#else
+
+/* Use types that are binary-compatible with the traditional GNU regex
+ implementation, which mishandles strings longer than INT_MAX. */
+
+typedef int regoff_t;
+typedef int __re_idx_t;
+typedef unsigned int __re_size_t;
+typedef unsigned long int __re_long_size_t;
+
+#endif
+
+/* The following two types have to be signed and unsigned integer type
+ wide enough to hold a value of a pointer. For most ANSI compilers
+ ptrdiff_t and size_t should be likely OK. Still size of these two
+ types is 2 for Microsoft C. Ugh... */
+typedef long int s_reg_t;
+typedef unsigned long int active_reg_t;
+
+/* The following bits are used to determine the regexp syntax we
+ recognize. The set/not-set meanings are chosen so that Emacs syntax
+ remains the value 0. The bits are given in alphabetical order, and
+ the definitions shifted by one from the previous bit; thus, when we
+ add or remove a bit, only one other definition need change. */
+typedef unsigned long int reg_syntax_t;
+
+#ifdef __USE_GNU_REGEX
+
+/* If this bit is not set, then \ inside a bracket expression is literal.
+ If set, then such a \ quotes the following character. */
+# define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
+
+/* If this bit is not set, then + and ? are operators, and \+ and \? are
+ literals.
+ If set, then \+ and \? are operators and + and ? are literals. */
+# define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
+
+/* If this bit is set, then character classes are supported. They are:
+ [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:],
+ [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
+ If not set, then character classes are not supported. */
+# define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
+
+/* If this bit is set, then ^ and $ are always anchors (outside bracket
+ expressions, of course).
+ If this bit is not set, then it depends:
+ ^ is an anchor if it is at the beginning of a regular
+ expression or after an open-group or an alternation operator;
+ $ is an anchor if it is at the end of a regular expression, or
+ before a close-group or an alternation operator.
+
+ This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
+ POSIX draft 11.2 says that * etc. in leading positions is undefined.
+ We already implemented a previous draft which made those constructs
+ invalid, though, so we haven't changed the code back. */
+# define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
+
+/* If this bit is set, then special characters are always special
+ regardless of where they are in the pattern.
+ If this bit is not set, then special characters are special only in
+ some contexts; otherwise they are ordinary. Specifically,
+ * + ? and intervals are only special when not after the beginning,
+ open-group, or alternation operator. */
+# define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
+
+/* If this bit is set, then *, +, ?, and { cannot be first in an re or
+ immediately after an alternation or begin-group operator. */
+# define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
+
+/* If this bit is set, then . matches newline.
+ If not set, then it doesn't. */
+# define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
+
+/* If this bit is set, then . doesn't match NUL.
+ If not set, then it does. */
+# define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
+
+/* If this bit is set, nonmatching lists [^...] do not match newline.
+ If not set, they do. */
+# define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
+
+/* If this bit is set, either \{...\} or {...} defines an
+ interval, depending on RE_NO_BK_BRACES.
+ If not set, \{, \}, {, and } are literals. */
+# define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
+
+/* If this bit is set, +, ? and | aren't recognized as operators.
+ If not set, they are. */
+# define RE_LIMITED_OPS (RE_INTERVALS << 1)
+
+/* If this bit is set, newline is an alternation operator.
+ If not set, newline is literal. */
+# define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
+
+/* If this bit is set, then '{...}' defines an interval, and \{ and \}
+ are literals.
+ If not set, then '\{...\}' defines an interval. */
+# define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
+
+/* If this bit is set, (...) defines a group, and \( and \) are literals.
+ If not set, \(...\) defines a group, and ( and ) are literals. */
+# define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
+
+/* If this bit is set, then \<digit> matches <digit>.
+ If not set, then \<digit> is a back-reference. */
+# define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
+
+/* If this bit is set, then | is an alternation operator, and \| is literal.
+ If not set, then \| is an alternation operator, and | is literal. */
+# define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
+
+/* If this bit is set, then an ending range point collating higher
+ than the starting range point, as in [z-a], is invalid.
+ If not set, then when ending range point collates higher than the
+ starting range point, the range is ignored. */
+# define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
+
+/* If this bit is set, then an unmatched ) is ordinary.
+ If not set, then an unmatched ) is invalid. */
+# define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
+
+/* If this bit is set, succeed as soon as we match the whole pattern,
+ without further backtracking. */
+# define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
+
+/* If this bit is set, do not process the GNU regex operators.
+ If not set, then the GNU regex operators are recognized. */
+# define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
+
+/* If this bit is set, turn on internal regex debugging.
+ If not set, and debugging was on, turn it off.
+ This only works if regex.c is compiled -DDEBUG.
+ We define this bit always, so that all that's needed to turn on
+ debugging is to recompile regex.c; the calling code can always have
+ this bit set, and it won't affect anything in the normal case. */
+# define RE_DEBUG (RE_NO_GNU_OPS << 1)
+
+/* If this bit is set, a syntactically invalid interval is treated as
+ a string of ordinary characters. For example, the ERE 'a{1' is
+ treated as 'a\{1'. */
+# define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
+
+/* If this bit is set, then ignore case when matching.
+ If not set, then case is significant. */
+# define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
+
+/* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only
+ for ^, because it is difficult to scan the regex backwards to find
+ whether ^ should be special. */
+# define RE_CARET_ANCHORS_HERE (RE_ICASE << 1)
+
+/* If this bit is set, then \{ cannot be first in a regex or
+ immediately after an alternation, open-group or \} operator. */
+# define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1)
+
+/* If this bit is set, then no_sub will be set to 1 during
+ re_compile_pattern. */
+# define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1)
+
+#endif /* defined __USE_GNU_REGEX */
+
+/* This global variable defines the particular regexp syntax to use (for
+ some interfaces). When a regexp is compiled, the syntax used is
+ stored in the pattern buffer, so changing this does not affect
+ already-compiled regexps. */
+extern reg_syntax_t re_syntax_options;
+
+#ifdef __USE_GNU_REGEX
+/* Define combinations of the above bits for the standard possibilities.
+ (The [[[ comments delimit what gets put into the Texinfo file, so
+ don't delete them!) */
+/* [[[begin syntaxes]]] */
+# define RE_SYNTAX_EMACS 0
+
+# define RE_SYNTAX_AWK \
+ (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \
+ | RE_NO_BK_PARENS | RE_NO_BK_REFS \
+ | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \
+ | RE_DOT_NEWLINE | RE_CONTEXT_INDEP_ANCHORS \
+ | RE_UNMATCHED_RIGHT_PAREN_ORD | RE_NO_GNU_OPS)
+
+# define RE_SYNTAX_GNU_AWK \
+ ((RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DEBUG) \
+ & ~(RE_DOT_NOT_NULL | RE_INTERVALS | RE_CONTEXT_INDEP_OPS \
+ | RE_CONTEXT_INVALID_OPS ))
+
+# define RE_SYNTAX_POSIX_AWK \
+ (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS \
+ | RE_INTERVALS | RE_NO_GNU_OPS)
+
+# define RE_SYNTAX_GREP \
+ (RE_BK_PLUS_QM | RE_CHAR_CLASSES \
+ | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \
+ | RE_NEWLINE_ALT)
+
+# define RE_SYNTAX_EGREP \
+ (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \
+ | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \
+ | RE_NEWLINE_ALT | RE_NO_BK_PARENS \
+ | RE_NO_BK_VBAR)
+
+# define RE_SYNTAX_POSIX_EGREP \
+ (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES \
+ | RE_INVALID_INTERVAL_ORD)
+
+/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */
+# define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
+
+# define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
+
+/* Syntax bits common to both basic and extended POSIX regex syntax. */
+# define _RE_SYNTAX_POSIX_COMMON \
+ (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \
+ | RE_INTERVALS | RE_NO_EMPTY_RANGES)
+
+# define RE_SYNTAX_POSIX_BASIC \
+ (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM | RE_CONTEXT_INVALID_DUP)
+
+/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
+ RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this
+ isn't minimal, since other operators, such as \`, aren't disabled. */
+# define RE_SYNTAX_POSIX_MINIMAL_BASIC \
+ (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
+
+# define RE_SYNTAX_POSIX_EXTENDED \
+ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
+ | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \
+ | RE_NO_BK_PARENS | RE_NO_BK_VBAR \
+ | RE_CONTEXT_INVALID_OPS | RE_UNMATCHED_RIGHT_PAREN_ORD)
+
+/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INDEP_OPS is
+ removed and RE_NO_BK_REFS is added. */
+# define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \
+ (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
+ | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \
+ | RE_NO_BK_PARENS | RE_NO_BK_REFS \
+ | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD)
+/* [[[end syntaxes]]] */
+
+#endif /* defined __USE_GNU_REGEX */
+
+#ifdef __USE_GNU_REGEX
+
+/* Maximum number of duplicates an interval can allow. POSIX-conforming
+ systems might define this in <limits.h>, but we want our
+ value, so remove any previous define. */
+# ifdef RE_DUP_MAX
+# undef RE_DUP_MAX
+# endif
+
+/* RE_DUP_MAX is 2**15 - 1 because an earlier implementation stored
+ the counter as a 2-byte signed integer. This is no longer true, so
+ RE_DUP_MAX could be increased to (INT_MAX / 10 - 1), or to
+ ((SIZE_MAX - 2) / 10 - 1) if _REGEX_LARGE_OFFSETS is defined.
+ However, there would be a huge performance problem if someone
+ actually used a pattern like a\{214748363\}, so RE_DUP_MAX retains
+ its historical value. */
+# define RE_DUP_MAX (0x7fff)
+
+#endif /* defined __USE_GNU_REGEX */
+
+
+/* POSIX 'cflags' bits (i.e., information for 'regcomp'). */
+
+/* If this bit is set, then use extended regular expression syntax.
+ If not set, then use basic regular expression syntax. */
+#define REG_EXTENDED 1
+
+/* If this bit is set, then ignore case when matching.
+ If not set, then case is significant. */
+#define REG_ICASE (1 << 1)
+
+/* If this bit is set, then anchors do not match at newline
+ characters in the string.
+ If not set, then anchors do match at newlines. */
+#define REG_NEWLINE (1 << 2)
+
+/* If this bit is set, then report only success or fail in regexec.
+ If not set, then returns differ between not matching and errors. */
+#define REG_NOSUB (1 << 3)
+
+
+/* POSIX 'eflags' bits (i.e., information for regexec). */
+
+/* If this bit is set, then the beginning-of-line operator doesn't match
+ the beginning of the string (presumably because it's not the
+ beginning of a line).
+ If not set, then the beginning-of-line operator does match the
+ beginning of the string. */
+#define REG_NOTBOL 1
+
+/* Like REG_NOTBOL, except for the end-of-line. */
+#define REG_NOTEOL (1 << 1)
+
+/* Use PMATCH[0] to delimit the start and end of the search in the
+ buffer. */
+#define REG_STARTEND (1 << 2)
+
+
+/* If any error codes are removed, changed, or added, update the
+ '__re_error_msgid' table in regcomp.c. */
+
+typedef enum
+{
+ _REG_ENOSYS = -1, /* This will never happen for this implementation. */
+ _REG_NOERROR = 0, /* Success. */
+ _REG_NOMATCH, /* Didn't find a match (for regexec). */
+
+ /* POSIX regcomp return error codes. (In the order listed in the
+ standard.) */
+ _REG_BADPAT, /* Invalid pattern. */
+ _REG_ECOLLATE, /* Invalid collating element. */
+ _REG_ECTYPE, /* Invalid character class name. */
+ _REG_EESCAPE, /* Trailing backslash. */
+ _REG_ESUBREG, /* Invalid back reference. */
+ _REG_EBRACK, /* Unmatched left bracket. */
+ _REG_EPAREN, /* Parenthesis imbalance. */
+ _REG_EBRACE, /* Unmatched \{. */
+ _REG_BADBR, /* Invalid contents of \{\}. */
+ _REG_ERANGE, /* Invalid range end. */
+ _REG_ESPACE, /* Ran out of memory. */
+ _REG_BADRPT, /* No preceding re for repetition op. */
+
+ /* Error codes we've added. */
+ _REG_EEND, /* Premature end. */
+ _REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */
+ _REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */
+} reg_errcode_t;
+
+#ifdef _XOPEN_SOURCE
+# define REG_ENOSYS _REG_ENOSYS
+#endif
+#define REG_NOERROR _REG_NOERROR
+#define REG_NOMATCH _REG_NOMATCH
+#define REG_BADPAT _REG_BADPAT
+#define REG_ECOLLATE _REG_ECOLLATE
+#define REG_ECTYPE _REG_ECTYPE
+#define REG_EESCAPE _REG_EESCAPE
+#define REG_ESUBREG _REG_ESUBREG
+#define REG_EBRACK _REG_EBRACK
+#define REG_EPAREN _REG_EPAREN
+#define REG_EBRACE _REG_EBRACE
+#define REG_BADBR _REG_BADBR
+#define REG_ERANGE _REG_ERANGE
+#define REG_ESPACE _REG_ESPACE
+#define REG_BADRPT _REG_BADRPT
+#define REG_EEND _REG_EEND
+#define REG_ESIZE _REG_ESIZE
+#define REG_ERPAREN _REG_ERPAREN
+
+/* struct re_pattern_buffer normally uses member names like 'buffer'
+ that POSIX does not allow. In POSIX mode these members have names
+ with leading 're_' (e.g., 're_buffer'). */
+#ifdef __USE_GNU_REGEX
+# define _REG_RE_NAME(id) id
+# define _REG_RM_NAME(id) id
+#else
+# define _REG_RE_NAME(id) re_##id
+# define _REG_RM_NAME(id) rm_##id
+#endif
+
+/* The user can specify the type of the re_translate member by
+ defining the macro RE_TRANSLATE_TYPE, which defaults to unsigned
+ char *. This pollutes the POSIX name space, so in POSIX mode just
+ use unsigned char *. */
+#ifdef __USE_GNU_REGEX
+# ifndef RE_TRANSLATE_TYPE
+# define RE_TRANSLATE_TYPE unsigned char *
+# endif
+# define REG_TRANSLATE_TYPE RE_TRANSLATE_TYPE
+#else
+# define REG_TRANSLATE_TYPE unsigned char *
+#endif
+
+/* This data structure represents a compiled pattern. Before calling
+ the pattern compiler, the fields 'buffer', 'allocated', 'fastmap',
+ 'translate', and 'no_sub' can be set. After the pattern has been
+ compiled, the 're_nsub' field is available. All other fields are
+ private to the regex routines. */
+
+struct re_pattern_buffer
+{
+ /* Space that holds the compiled pattern. It is declared as
+ 'unsigned char *' because its elements are sometimes used as
+ array indexes. */
+ unsigned char *_REG_RE_NAME (buffer);
+
+ /* Number of bytes to which 'buffer' points. */
+ __re_long_size_t _REG_RE_NAME (allocated);
+
+ /* Number of bytes actually used in 'buffer'. */
+ __re_long_size_t _REG_RE_NAME (used);
+
+ /* Syntax setting with which the pattern was compiled. */
+ reg_syntax_t _REG_RE_NAME (syntax);
+
+ /* Pointer to a fastmap, if any, otherwise zero. re_search uses the
+ fastmap, if there is one, to skip over impossible starting points
+ for matches. */
+ char *_REG_RE_NAME (fastmap);
+
+ /* Either a translate table to apply to all characters before
+ comparing them, or zero for no translation. The translation is
+ applied to a pattern when it is compiled and to a string when it
+ is matched. */
+ REG_TRANSLATE_TYPE _REG_RE_NAME (translate);
+
+ /* Number of subexpressions found by the compiler. */
+ size_t re_nsub;
+
+ /* Zero if this pattern cannot match the empty string, one else.
+ Well, in truth it's used only in 're_search_2', to see whether or
+ not we should use the fastmap, so we don't set this absolutely
+ perfectly; see 're_compile_fastmap' (the "duplicate" case). */
+ unsigned int _REG_RE_NAME (can_be_null) : 1;
+
+ /* If REGS_UNALLOCATED, allocate space in the 'regs' structure
+ for 'max (RE_NREGS, re_nsub + 1)' groups.
+ If REGS_REALLOCATE, reallocate space if necessary.
+ If REGS_FIXED, use what's there. */
+#ifdef __USE_GNU_REGEX
+# define REGS_UNALLOCATED 0
+# define REGS_REALLOCATE 1
+# define REGS_FIXED 2
+#endif
+ unsigned int _REG_RE_NAME (regs_allocated) : 2;
+
+ /* Set to zero when 're_compile_pattern' compiles a pattern; set to
+ one by 're_compile_fastmap' if it updates the fastmap. */
+ unsigned int _REG_RE_NAME (fastmap_accurate) : 1;
+
+ /* If set, 're_match_2' does not return information about
+ subexpressions. */
+ unsigned int _REG_RE_NAME (no_sub) : 1;
+
+ /* If set, a beginning-of-line anchor doesn't match at the beginning
+ of the string. */
+ unsigned int _REG_RE_NAME (not_bol) : 1;
+
+ /* Similarly for an end-of-line anchor. */
+ unsigned int _REG_RE_NAME (not_eol) : 1;
+
+ /* If true, an anchor at a newline matches. */
+ unsigned int _REG_RE_NAME (newline_anchor) : 1;
+
+/* [[[end pattern_buffer]]] */
+};
+
+typedef struct re_pattern_buffer regex_t;
+
+/* This is the structure we store register match data in. See
+ regex.texinfo for a full description of what registers match. */
+struct re_registers
+{
+ __re_size_t _REG_RM_NAME (num_regs);
+ regoff_t *_REG_RM_NAME (start);
+ regoff_t *_REG_RM_NAME (end);
+};
+
+
+/* If 'regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
+ 're_match_2' returns information about at least this many registers
+ the first time a 'regs' structure is passed. */
+#if !defined RE_NREGS && defined __USE_GNU_REGEX
+# define RE_NREGS 30
+#endif
+
+
+/* POSIX specification for registers. Aside from the different names than
+ 're_registers', POSIX uses an array of structures, instead of a
+ structure of arrays. */
+typedef struct
+{
+ regoff_t rm_so; /* Byte offset from string's start to substring's start. */
+ regoff_t rm_eo; /* Byte offset from string's start to substring's end. */
+} regmatch_t;
+
+/* Declarations for routines. */
+
+/* Sets the current default syntax to SYNTAX, and return the old syntax.
+ You can also simply assign to the 're_syntax_options' variable. */
+extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax);
+
+/* Compile the regular expression PATTERN, with length LENGTH
+ and syntax given by the global 're_syntax_options', into the buffer
+ BUFFER. Return NULL if successful, and an error string if not. */
+extern const char *re_compile_pattern (const char *__pattern, size_t __length,
+ struct re_pattern_buffer *__buffer);
+
+
+/* Compile a fastmap for the compiled pattern in BUFFER; used to
+ accelerate searches. Return 0 if successful and -2 if was an
+ internal error. */
+extern int re_compile_fastmap (struct re_pattern_buffer *__buffer);
+
+
+/* Search in the string STRING (with length LENGTH) for the pattern
+ compiled into BUFFER. Start searching at position START, for RANGE
+ characters. Return the starting position of the match, -1 for no
+ match, or -2 for an internal error. Also return register
+ information in REGS (if REGS and BUFFER->no_sub are nonzero). */
+extern regoff_t re_search (struct re_pattern_buffer *__buffer,
+ const char *__string, __re_idx_t __length,
+ __re_idx_t __start, regoff_t __range,
+ struct re_registers *__regs);
+
+
+/* Like 're_search', but search in the concatenation of STRING1 and
+ STRING2. Also, stop searching at index START + STOP. */
+extern regoff_t re_search_2 (struct re_pattern_buffer *__buffer,
+ const char *__string1, __re_idx_t __length1,
+ const char *__string2, __re_idx_t __length2,
+ __re_idx_t __start, regoff_t __range,
+ struct re_registers *__regs,
+ __re_idx_t __stop);
+
+
+/* Like 're_search', but return how many characters in STRING the regexp
+ in BUFFER matched, starting at position START. */
+extern regoff_t re_match (struct re_pattern_buffer *__buffer,
+ const char *__string, __re_idx_t __length,
+ __re_idx_t __start, struct re_registers *__regs);
+
+
+/* Relates to 're_match' as 're_search_2' relates to 're_search'. */
+extern regoff_t re_match_2 (struct re_pattern_buffer *__buffer,
+ const char *__string1, __re_idx_t __length1,
+ const char *__string2, __re_idx_t __length2,
+ __re_idx_t __start, struct re_registers *__regs,
+ __re_idx_t __stop);
+
+
+/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
+ ENDS. Subsequent matches using BUFFER and REGS will use this memory
+ for recording register information. STARTS and ENDS must be
+ allocated with malloc, and must each be at least 'NUM_REGS * sizeof
+ (regoff_t)' bytes long.
+
+ If NUM_REGS == 0, then subsequent matches should allocate their own
+ register data.
+
+ Unless this function is called, the first search or match using
+ BUFFER will allocate its own register data, without freeing the old
+ data. */
+extern void re_set_registers (struct re_pattern_buffer *__buffer,
+ struct re_registers *__regs,
+ __re_size_t __num_regs,
+ regoff_t *__starts, regoff_t *__ends);
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+# ifndef _CRAY
+/* 4.2 bsd compatibility. */
+extern char *re_comp (const char *);
+extern int re_exec (const char *);
+# endif
+#endif
+
+/* GCC 2.95 and later have "__restrict"; C99 compilers have
+ "restrict", and "configure" may have defined "restrict".
+ Other compilers use __restrict, __restrict__, and _Restrict, and
+ 'configure' might #define 'restrict' to those words, so pick a
+ different name. */
+#ifndef _Restrict_
+# if 199901L <= __STDC_VERSION__
+# define _Restrict_ restrict
+# elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__)
+# define _Restrict_ __restrict
+# else
+# define _Restrict_
+# endif
+#endif
+/* gcc 3.1 and up support the [restrict] syntax. Don't trust
+ sys/cdefs.h's definition of __restrict_arr, though, as it
+ mishandles gcc -ansi -pedantic. */
+#ifndef _Restrict_arr_
+# if ((199901L <= __STDC_VERSION__ \
+ || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) \
+ && !defined __STRICT_ANSI__)) \
+ && !defined __GNUG__)
+# define _Restrict_arr_ _Restrict_
+# else
+# define _Restrict_arr_
+# endif
+#endif
+
+/* POSIX compatibility. */
+extern int regcomp (regex_t *_Restrict_ __preg,
+ const char *_Restrict_ __pattern,
+ int __cflags);
+
+extern int regexec (const regex_t *_Restrict_ __preg,
+ const char *_Restrict_ __string, size_t __nmatch,
+ regmatch_t __pmatch[_Restrict_arr_],
+ int __eflags);
+
+extern size_t regerror (int __errcode, const regex_t *_Restrict_ __preg,
+ char *_Restrict_ __errbuf, size_t __errbuf_size);
+
+extern void regfree (regex_t *__preg);
+
+
+#ifdef __cplusplus
+}
+#endif /* C++ */
+
+#endif /* regex.h */
diff --git a/gnu/regex_internal.c b/gnu/regex_internal.c
new file mode 100644
index 00000000..76de230c
--- /dev/null
+++ b/gnu/regex_internal.c
@@ -0,0 +1,1743 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Extended regular expression matching and search library.
+ Copyright (C) 2002-2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+ This 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. */
+
+static void re_string_construct_common (const char *str, Idx len,
+ re_string_t *pstr,
+ RE_TRANSLATE_TYPE trans, bool icase,
+ const re_dfa_t *dfa) internal_function;
+static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa,
+ const re_node_set *nodes,
+ re_hashval_t hash) internal_function;
+static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa,
+ const re_node_set *nodes,
+ unsigned int context,
+ re_hashval_t hash) internal_function;
+
+/* Functions for string operation. */
+
+/* This function allocate the buffers. It is necessary to call
+ re_string_reconstruct before using the object. */
+
+static reg_errcode_t
+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)
+{
+ reg_errcode_t ret;
+ Idx init_buf_len;
+
+ /* Ensure at least one character fits into the buffers. */
+ if (init_len < dfa->mb_cur_max)
+ init_len = dfa->mb_cur_max;
+ init_buf_len = (len + 1 < init_len) ? len + 1: init_len;
+ re_string_construct_common (str, len, pstr, trans, icase, dfa);
+
+ ret = re_string_realloc_buffers (pstr, init_buf_len);
+ if (BE (ret != REG_NOERROR, 0))
+ return ret;
+
+ pstr->word_char = dfa->word_char;
+ pstr->word_ops_used = dfa->word_ops_used;
+ pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str;
+ pstr->valid_len = (pstr->mbs_allocated || dfa->mb_cur_max > 1) ? 0 : len;
+ pstr->valid_raw_len = pstr->valid_len;
+ return REG_NOERROR;
+}
+
+/* This function allocate the buffers, and initialize them. */
+
+static reg_errcode_t
+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)
+{
+ reg_errcode_t ret;
+ memset (pstr, '\0', sizeof (re_string_t));
+ re_string_construct_common (str, len, pstr, trans, icase, dfa);
+
+ if (len > 0)
+ {
+ ret = re_string_realloc_buffers (pstr, len + 1);
+ if (BE (ret != REG_NOERROR, 0))
+ return ret;
+ }
+ pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str;
+
+ if (icase)
+ {
+#ifdef RE_ENABLE_I18N
+ if (dfa->mb_cur_max > 1)
+ {
+ while (1)
+ {
+ ret = build_wcs_upper_buffer (pstr);
+ if (BE (ret != REG_NOERROR, 0))
+ return ret;
+ if (pstr->valid_raw_len >= len)
+ break;
+ if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max)
+ break;
+ ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
+ if (BE (ret != REG_NOERROR, 0))
+ return ret;
+ }
+ }
+ else
+#endif /* RE_ENABLE_I18N */
+ build_upper_buffer (pstr);
+ }
+ else
+ {
+#ifdef RE_ENABLE_I18N
+ if (dfa->mb_cur_max > 1)
+ build_wcs_buffer (pstr);
+ else
+#endif /* RE_ENABLE_I18N */
+ {
+ if (trans != NULL)
+ re_string_translate_buffer (pstr);
+ else
+ {
+ pstr->valid_len = pstr->bufs_len;
+ pstr->valid_raw_len = pstr->bufs_len;
+ }
+ }
+ }
+
+ return REG_NOERROR;
+}
+
+/* Helper functions for re_string_allocate, and re_string_construct. */
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len)
+{
+#ifdef RE_ENABLE_I18N
+ if (pstr->mb_cur_max > 1)
+ {
+ wint_t *new_wcs;
+
+ /* Avoid overflow. */
+ size_t max_object_size = MAX (sizeof (wint_t), sizeof (Idx));
+ if (BE (SIZE_MAX / max_object_size < new_buf_len, 0))
+ return REG_ESPACE;
+
+ new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len);
+ if (BE (new_wcs == NULL, 0))
+ return REG_ESPACE;
+ pstr->wcs = new_wcs;
+ if (pstr->offsets != NULL)
+ {
+ Idx *new_offsets = re_realloc (pstr->offsets, Idx, new_buf_len);
+ if (BE (new_offsets == NULL, 0))
+ return REG_ESPACE;
+ pstr->offsets = new_offsets;
+ }
+ }
+#endif /* RE_ENABLE_I18N */
+ if (pstr->mbs_allocated)
+ {
+ unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char,
+ new_buf_len);
+ if (BE (new_mbs == NULL, 0))
+ return REG_ESPACE;
+ pstr->mbs = new_mbs;
+ }
+ pstr->bufs_len = new_buf_len;
+ return REG_NOERROR;
+}
+
+
+static void
+internal_function
+re_string_construct_common (const char *str, Idx len, re_string_t *pstr,
+ RE_TRANSLATE_TYPE trans, bool icase,
+ const re_dfa_t *dfa)
+{
+ pstr->raw_mbs = (const unsigned char *) str;
+ pstr->len = len;
+ pstr->raw_len = len;
+ pstr->trans = trans;
+ pstr->icase = icase;
+ pstr->mbs_allocated = (trans != NULL || icase);
+ pstr->mb_cur_max = dfa->mb_cur_max;
+ pstr->is_utf8 = dfa->is_utf8;
+ pstr->map_notascii = dfa->map_notascii;
+ pstr->stop = pstr->len;
+ pstr->raw_stop = pstr->stop;
+}
+
+#ifdef RE_ENABLE_I18N
+
+/* Build wide character buffer PSTR->WCS.
+ If the byte sequence of the string are:
+ <mb1>(0), <mb1>(1), <mb2>(0), <mb2>(1), <sb3>
+ Then wide character buffer will be:
+ <wc1> , WEOF , <wc2> , WEOF , <wc3>
+ We use WEOF for padding, they indicate that the position isn't
+ a first byte of a multibyte character.
+
+ Note that this function assumes PSTR->VALID_LEN elements are already
+ built and starts from PSTR->VALID_LEN. */
+
+static void
+internal_function
+build_wcs_buffer (re_string_t *pstr)
+{
+#ifdef _LIBC
+ unsigned char buf[MB_LEN_MAX];
+ assert (MB_LEN_MAX >= pstr->mb_cur_max);
+#else
+ unsigned char buf[64];
+#endif
+ mbstate_t prev_st;
+ Idx byte_idx, end_idx, remain_len;
+ size_t mbclen;
+
+ /* Build the buffers from pstr->valid_len to either pstr->len or
+ pstr->bufs_len. */
+ end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+ for (byte_idx = pstr->valid_len; byte_idx < end_idx;)
+ {
+ wchar_t wc;
+ const char *p;
+
+ remain_len = end_idx - byte_idx;
+ prev_st = pstr->cur_state;
+ /* Apply the translation if we need. */
+ if (BE (pstr->trans != NULL, 0))
+ {
+ int i, ch;
+
+ for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i)
+ {
+ ch = pstr->raw_mbs [pstr->raw_mbs_idx + byte_idx + i];
+ buf[i] = pstr->mbs[byte_idx + i] = pstr->trans[ch];
+ }
+ p = (const char *) buf;
+ }
+ else
+ p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx;
+ mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
+ if (BE (mbclen == (size_t) -2, 0))
+ {
+ /* The buffer doesn't have enough space, finish to build. */
+ pstr->cur_state = prev_st;
+ break;
+ }
+ else if (BE (mbclen == (size_t) -1 || mbclen == 0, 0))
+ {
+ /* We treat these cases as a singlebyte character. */
+ mbclen = 1;
+ wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx];
+ if (BE (pstr->trans != NULL, 0))
+ wc = pstr->trans[wc];
+ pstr->cur_state = prev_st;
+ }
+
+ /* Write wide character and padding. */
+ pstr->wcs[byte_idx++] = wc;
+ /* Write paddings. */
+ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+ pstr->wcs[byte_idx++] = WEOF;
+ }
+ pstr->valid_len = byte_idx;
+ pstr->valid_raw_len = byte_idx;
+}
+
+/* Build wide character buffer PSTR->WCS like build_wcs_buffer,
+ but for REG_ICASE. */
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+build_wcs_upper_buffer (re_string_t *pstr)
+{
+ mbstate_t prev_st;
+ Idx src_idx, byte_idx, end_idx, remain_len;
+ size_t mbclen;
+#ifdef _LIBC
+ char buf[MB_LEN_MAX];
+ assert (MB_LEN_MAX >= pstr->mb_cur_max);
+#else
+ char buf[64];
+#endif
+
+ byte_idx = pstr->valid_len;
+ end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+ /* The following optimization assumes that ASCII characters can be
+ mapped to wide characters with a simple cast. */
+ if (! pstr->map_notascii && pstr->trans == NULL && !pstr->offsets_needed)
+ {
+ while (byte_idx < end_idx)
+ {
+ wchar_t wc;
+
+ if (isascii (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx])
+ && mbsinit (&pstr->cur_state))
+ {
+ /* In case of a singlebyte character. */
+ pstr->mbs[byte_idx]
+ = toupper (pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]);
+ /* The next step uses the assumption that wchar_t is encoded
+ ASCII-safe: all ASCII values can be converted like this. */
+ pstr->wcs[byte_idx] = (wchar_t) pstr->mbs[byte_idx];
+ ++byte_idx;
+ continue;
+ }
+
+ remain_len = end_idx - byte_idx;
+ prev_st = pstr->cur_state;
+ mbclen = __mbrtowc (&wc,
+ ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx
+ + byte_idx), remain_len, &pstr->cur_state);
+ if (BE (mbclen < (size_t) -2, 1))
+ {
+ wchar_t wcu = wc;
+ if (iswlower (wc))
+ {
+ size_t mbcdlen;
+
+ wcu = towupper (wc);
+ mbcdlen = wcrtomb (buf, wcu, &prev_st);
+ if (BE (mbclen == mbcdlen, 1))
+ memcpy (pstr->mbs + byte_idx, buf, mbclen);
+ else
+ {
+ src_idx = byte_idx;
+ goto offsets_needed;
+ }
+ }
+ else
+ memcpy (pstr->mbs + byte_idx,
+ pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx, mbclen);
+ pstr->wcs[byte_idx++] = wcu;
+ /* Write paddings. */
+ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+ pstr->wcs[byte_idx++] = WEOF;
+ }
+ else if (mbclen == (size_t) -1 || mbclen == 0)
+ {
+ /* It is an invalid character or '\0'. Just use the byte. */
+ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx];
+ pstr->mbs[byte_idx] = ch;
+ /* And also cast it to wide char. */
+ pstr->wcs[byte_idx++] = (wchar_t) ch;
+ if (BE (mbclen == (size_t) -1, 0))
+ pstr->cur_state = prev_st;
+ }
+ else
+ {
+ /* The buffer doesn't have enough space, finish to build. */
+ pstr->cur_state = prev_st;
+ break;
+ }
+ }
+ pstr->valid_len = byte_idx;
+ pstr->valid_raw_len = byte_idx;
+ return REG_NOERROR;
+ }
+ else
+ for (src_idx = pstr->valid_raw_len; byte_idx < end_idx;)
+ {
+ wchar_t wc;
+ const char *p;
+ offsets_needed:
+ remain_len = end_idx - byte_idx;
+ prev_st = pstr->cur_state;
+ if (BE (pstr->trans != NULL, 0))
+ {
+ int i, ch;
+
+ for (i = 0; i < pstr->mb_cur_max && i < remain_len; ++i)
+ {
+ ch = pstr->raw_mbs [pstr->raw_mbs_idx + src_idx + i];
+ buf[i] = pstr->trans[ch];
+ }
+ p = (const char *) buf;
+ }
+ else
+ p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx;
+ mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state);
+ if (BE (mbclen < (size_t) -2, 1))
+ {
+ wchar_t wcu = wc;
+ if (iswlower (wc))
+ {
+ size_t mbcdlen;
+
+ wcu = towupper (wc);
+ mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st);
+ if (BE (mbclen == mbcdlen, 1))
+ memcpy (pstr->mbs + byte_idx, buf, mbclen);
+ else if (mbcdlen != (size_t) -1)
+ {
+ size_t i;
+
+ if (byte_idx + mbcdlen > pstr->bufs_len)
+ {
+ pstr->cur_state = prev_st;
+ break;
+ }
+
+ if (pstr->offsets == NULL)
+ {
+ pstr->offsets = re_malloc (Idx, pstr->bufs_len);
+
+ if (pstr->offsets == NULL)
+ return REG_ESPACE;
+ }
+ if (!pstr->offsets_needed)
+ {
+ for (i = 0; i < (size_t) byte_idx; ++i)
+ pstr->offsets[i] = i;
+ pstr->offsets_needed = 1;
+ }
+
+ memcpy (pstr->mbs + byte_idx, buf, mbcdlen);
+ pstr->wcs[byte_idx] = wcu;
+ pstr->offsets[byte_idx] = src_idx;
+ for (i = 1; i < mbcdlen; ++i)
+ {
+ pstr->offsets[byte_idx + i]
+ = src_idx + (i < mbclen ? i : mbclen - 1);
+ pstr->wcs[byte_idx + i] = WEOF;
+ }
+ pstr->len += mbcdlen - mbclen;
+ if (pstr->raw_stop > src_idx)
+ pstr->stop += mbcdlen - mbclen;
+ end_idx = (pstr->bufs_len > pstr->len)
+ ? pstr->len : pstr->bufs_len;
+ byte_idx += mbcdlen;
+ src_idx += mbclen;
+ continue;
+ }
+ else
+ memcpy (pstr->mbs + byte_idx, p, mbclen);
+ }
+ else
+ memcpy (pstr->mbs + byte_idx, p, mbclen);
+
+ if (BE (pstr->offsets_needed != 0, 0))
+ {
+ size_t i;
+ for (i = 0; i < mbclen; ++i)
+ pstr->offsets[byte_idx + i] = src_idx + i;
+ }
+ src_idx += mbclen;
+
+ pstr->wcs[byte_idx++] = wcu;
+ /* Write paddings. */
+ for (remain_len = byte_idx + mbclen - 1; byte_idx < remain_len ;)
+ pstr->wcs[byte_idx++] = WEOF;
+ }
+ else if (mbclen == (size_t) -1 || mbclen == 0)
+ {
+ /* It is an invalid character or '\0'. Just use the byte. */
+ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx];
+
+ if (BE (pstr->trans != NULL, 0))
+ ch = pstr->trans [ch];
+ pstr->mbs[byte_idx] = ch;
+
+ if (BE (pstr->offsets_needed != 0, 0))
+ pstr->offsets[byte_idx] = src_idx;
+ ++src_idx;
+
+ /* And also cast it to wide char. */
+ pstr->wcs[byte_idx++] = (wchar_t) ch;
+ if (BE (mbclen == (size_t) -1, 0))
+ pstr->cur_state = prev_st;
+ }
+ else
+ {
+ /* The buffer doesn't have enough space, finish to build. */
+ pstr->cur_state = prev_st;
+ break;
+ }
+ }
+ pstr->valid_len = byte_idx;
+ pstr->valid_raw_len = src_idx;
+ return REG_NOERROR;
+}
+
+/* Skip characters until the index becomes greater than NEW_RAW_IDX.
+ Return the index. */
+
+static Idx
+internal_function
+re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc)
+{
+ mbstate_t prev_st;
+ Idx rawbuf_idx;
+ size_t mbclen;
+ wint_t wc = WEOF;
+
+ /* Skip the characters which are not necessary to check. */
+ for (rawbuf_idx = pstr->raw_mbs_idx + pstr->valid_raw_len;
+ rawbuf_idx < new_raw_idx;)
+ {
+ wchar_t wc2;
+ Idx remain_len;
+ remain_len = pstr->len - rawbuf_idx;
+ prev_st = pstr->cur_state;
+ mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx,
+ remain_len, &pstr->cur_state);
+ if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0))
+ {
+ /* We treat these cases as a single byte character. */
+ if (mbclen == 0 || remain_len == 0)
+ wc = L'\0';
+ else
+ wc = *(unsigned char *) (pstr->raw_mbs + rawbuf_idx);
+ mbclen = 1;
+ pstr->cur_state = prev_st;
+ }
+ else
+ wc = wc2;
+ /* Then proceed the next character. */
+ rawbuf_idx += mbclen;
+ }
+ *last_wc = wc;
+ return rawbuf_idx;
+}
+#endif /* RE_ENABLE_I18N */
+
+/* Build the buffer PSTR->MBS, and apply the translation if we need.
+ This function is used in case of REG_ICASE. */
+
+static void
+internal_function
+build_upper_buffer (re_string_t *pstr)
+{
+ Idx char_idx, end_idx;
+ end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+ for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx)
+ {
+ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx];
+ if (BE (pstr->trans != NULL, 0))
+ ch = pstr->trans[ch];
+ if (islower (ch))
+ pstr->mbs[char_idx] = toupper (ch);
+ else
+ pstr->mbs[char_idx] = ch;
+ }
+ pstr->valid_len = char_idx;
+ pstr->valid_raw_len = char_idx;
+}
+
+/* Apply TRANS to the buffer in PSTR. */
+
+static void
+internal_function
+re_string_translate_buffer (re_string_t *pstr)
+{
+ Idx buf_idx, end_idx;
+ end_idx = (pstr->bufs_len > pstr->len) ? pstr->len : pstr->bufs_len;
+
+ for (buf_idx = pstr->valid_len; buf_idx < end_idx; ++buf_idx)
+ {
+ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + buf_idx];
+ pstr->mbs[buf_idx] = pstr->trans[ch];
+ }
+
+ pstr->valid_len = buf_idx;
+ pstr->valid_raw_len = buf_idx;
+}
+
+/* This function re-construct the buffers.
+ Concretely, convert to wide character in case of pstr->mb_cur_max > 1,
+ convert to upper case in case of REG_ICASE, apply translation. */
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags)
+{
+ Idx offset;
+
+ if (BE (pstr->raw_mbs_idx <= idx, 0))
+ offset = idx - pstr->raw_mbs_idx;
+ else
+ {
+ /* Reset buffer. */
+#ifdef RE_ENABLE_I18N
+ if (pstr->mb_cur_max > 1)
+ memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
+#endif /* RE_ENABLE_I18N */
+ pstr->len = pstr->raw_len;
+ pstr->stop = pstr->raw_stop;
+ pstr->valid_len = 0;
+ pstr->raw_mbs_idx = 0;
+ pstr->valid_raw_len = 0;
+ pstr->offsets_needed = 0;
+ pstr->tip_context = ((eflags & REG_NOTBOL) ? CONTEXT_BEGBUF
+ : CONTEXT_NEWLINE | CONTEXT_BEGBUF);
+ if (!pstr->mbs_allocated)
+ pstr->mbs = (unsigned char *) pstr->raw_mbs;
+ offset = idx;
+ }
+
+ if (BE (offset != 0, 1))
+ {
+ /* Should the already checked characters be kept? */
+ if (BE (offset < pstr->valid_raw_len, 1))
+ {
+ /* Yes, move them to the front of the buffer. */
+#ifdef RE_ENABLE_I18N
+ if (BE (pstr->offsets_needed, 0))
+ {
+ Idx low = 0, high = pstr->valid_len, mid;
+ do
+ {
+ mid = (high + low) / 2;
+ if (pstr->offsets[mid] > offset)
+ high = mid;
+ else if (pstr->offsets[mid] < offset)
+ low = mid + 1;
+ else
+ break;
+ }
+ while (low < high);
+ if (pstr->offsets[mid] < offset)
+ ++mid;
+ pstr->tip_context = re_string_context_at (pstr, mid - 1,
+ eflags);
+ /* This can be quite complicated, so handle specially
+ only the common and easy case where the character with
+ different length representation of lower and upper
+ case is present at or after offset. */
+ if (pstr->valid_len > offset
+ && mid == offset && pstr->offsets[mid] == offset)
+ {
+ memmove (pstr->wcs, pstr->wcs + offset,
+ (pstr->valid_len - offset) * sizeof (wint_t));
+ memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset);
+ pstr->valid_len -= offset;
+ pstr->valid_raw_len -= offset;
+ for (low = 0; low < pstr->valid_len; low++)
+ pstr->offsets[low] = pstr->offsets[low + offset] - offset;
+ }
+ else
+ {
+ /* Otherwise, just find out how long the partial multibyte
+ character at offset is and fill it with WEOF/255. */
+ pstr->len = pstr->raw_len - idx + offset;
+ pstr->stop = pstr->raw_stop - idx + offset;
+ pstr->offsets_needed = 0;
+ while (mid > 0 && pstr->offsets[mid - 1] == offset)
+ --mid;
+ while (mid < pstr->valid_len)
+ if (pstr->wcs[mid] != WEOF)
+ break;
+ else
+ ++mid;
+ if (mid == pstr->valid_len)
+ pstr->valid_len = 0;
+ else
+ {
+ pstr->valid_len = pstr->offsets[mid] - offset;
+ if (pstr->valid_len)
+ {
+ for (low = 0; low < pstr->valid_len; ++low)
+ pstr->wcs[low] = WEOF;
+ memset (pstr->mbs, 255, pstr->valid_len);
+ }
+ }
+ pstr->valid_raw_len = pstr->valid_len;
+ }
+ }
+ else
+#endif
+ {
+ pstr->tip_context = re_string_context_at (pstr, offset - 1,
+ eflags);
+#ifdef RE_ENABLE_I18N
+ if (pstr->mb_cur_max > 1)
+ memmove (pstr->wcs, pstr->wcs + offset,
+ (pstr->valid_len - offset) * sizeof (wint_t));
+#endif /* RE_ENABLE_I18N */
+ if (BE (pstr->mbs_allocated, 0))
+ memmove (pstr->mbs, pstr->mbs + offset,
+ pstr->valid_len - offset);
+ pstr->valid_len -= offset;
+ pstr->valid_raw_len -= offset;
+#if DEBUG
+ assert (pstr->valid_len > 0);
+#endif
+ }
+ }
+ else
+ {
+#ifdef RE_ENABLE_I18N
+ /* No, skip all characters until IDX. */
+ Idx prev_valid_len = pstr->valid_len;
+
+ if (BE (pstr->offsets_needed, 0))
+ {
+ pstr->len = pstr->raw_len - idx + offset;
+ pstr->stop = pstr->raw_stop - idx + offset;
+ pstr->offsets_needed = 0;
+ }
+#endif
+ pstr->valid_len = 0;
+#ifdef RE_ENABLE_I18N
+ if (pstr->mb_cur_max > 1)
+ {
+ Idx wcs_idx;
+ wint_t wc = WEOF;
+
+ if (pstr->is_utf8)
+ {
+ const unsigned char *raw, *p, *end;
+
+ /* Special case UTF-8. Multi-byte chars start with any
+ byte other than 0x80 - 0xbf. */
+ raw = pstr->raw_mbs + pstr->raw_mbs_idx;
+ end = raw + (offset - pstr->mb_cur_max);
+ if (end < pstr->raw_mbs)
+ end = pstr->raw_mbs;
+ p = raw + offset - 1;
+#ifdef _LIBC
+ /* We know the wchar_t encoding is UCS4, so for the simple
+ case, ASCII characters, skip the conversion step. */
+ if (isascii (*p) && BE (pstr->trans == NULL, 1))
+ {
+ memset (&pstr->cur_state, '\0', sizeof (mbstate_t));
+ /* pstr->valid_len = 0; */
+ wc = (wchar_t) *p;
+ }
+ else
+#endif
+ for (; p >= end; --p)
+ if ((*p & 0xc0) != 0x80)
+ {
+ mbstate_t cur_state;
+ wchar_t wc2;
+ Idx mlen = raw + pstr->len - p;
+ size_t mbclen;
+
+#if 0 /* dead code: buf is set but never used */
+ unsigned char buf[6];
+ if (BE (pstr->trans != NULL, 0))
+ {
+ int i = mlen < 6 ? mlen : 6;
+ while (--i >= 0)
+ buf[i] = pstr->trans[p[i]];
+ }
+#endif
+ /* XXX Don't use mbrtowc, we know which conversion
+ to use (UTF-8 -> UCS4). */
+ memset (&cur_state, 0, sizeof (cur_state));
+ mbclen = __mbrtowc (&wc2, (const char *) p, mlen,
+ &cur_state);
+ if (raw + offset - p <= mbclen
+ && mbclen < (size_t) -2)
+ {
+ memset (&pstr->cur_state, '\0',
+ sizeof (mbstate_t));
+ pstr->valid_len = mbclen - (raw + offset - p);
+ wc = wc2;
+ }
+ break;
+ }
+ }
+
+ if (wc == WEOF)
+ pstr->valid_len = re_string_skip_chars (pstr, idx, &wc) - idx;
+ if (wc == WEOF)
+ pstr->tip_context
+ = re_string_context_at (pstr, prev_valid_len - 1, eflags);
+ else
+ pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0)
+ && IS_WIDE_WORD_CHAR (wc))
+ ? CONTEXT_WORD
+ : ((IS_WIDE_NEWLINE (wc)
+ && pstr->newline_anchor)
+ ? CONTEXT_NEWLINE : 0));
+ if (BE (pstr->valid_len, 0))
+ {
+ for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx)
+ pstr->wcs[wcs_idx] = WEOF;
+ if (pstr->mbs_allocated)
+ memset (pstr->mbs, 255, pstr->valid_len);
+ }
+ pstr->valid_raw_len = pstr->valid_len;
+ }
+ else
+#endif /* RE_ENABLE_I18N */
+ {
+ int c = pstr->raw_mbs[pstr->raw_mbs_idx + offset - 1];
+ pstr->valid_raw_len = 0;
+ if (pstr->trans)
+ c = pstr->trans[c];
+ pstr->tip_context = (bitset_contain (pstr->word_char, c)
+ ? CONTEXT_WORD
+ : ((IS_NEWLINE (c) && pstr->newline_anchor)
+ ? CONTEXT_NEWLINE : 0));
+ }
+ }
+ if (!BE (pstr->mbs_allocated, 0))
+ pstr->mbs += offset;
+ }
+ pstr->raw_mbs_idx = idx;
+ pstr->len -= offset;
+ pstr->stop -= offset;
+
+ /* Then build the buffers. */
+#ifdef RE_ENABLE_I18N
+ if (pstr->mb_cur_max > 1)
+ {
+ if (pstr->icase)
+ {
+ reg_errcode_t ret = build_wcs_upper_buffer (pstr);
+ if (BE (ret != REG_NOERROR, 0))
+ return ret;
+ }
+ else
+ build_wcs_buffer (pstr);
+ }
+ else
+#endif /* RE_ENABLE_I18N */
+ if (BE (pstr->mbs_allocated, 0))
+ {
+ if (pstr->icase)
+ build_upper_buffer (pstr);
+ else if (pstr->trans != NULL)
+ re_string_translate_buffer (pstr);
+ }
+ else
+ pstr->valid_len = pstr->len;
+
+ pstr->cur_idx = 0;
+ return REG_NOERROR;
+}
+
+static unsigned char
+internal_function __attribute ((pure))
+re_string_peek_byte_case (const re_string_t *pstr, Idx idx)
+{
+ int ch;
+ Idx off;
+
+ /* Handle the common (easiest) cases first. */
+ if (BE (!pstr->mbs_allocated, 1))
+ return re_string_peek_byte (pstr, idx);
+
+#ifdef RE_ENABLE_I18N
+ if (pstr->mb_cur_max > 1
+ && ! re_string_is_single_byte_char (pstr, pstr->cur_idx + idx))
+ return re_string_peek_byte (pstr, idx);
+#endif
+
+ off = pstr->cur_idx + idx;
+#ifdef RE_ENABLE_I18N
+ if (pstr->offsets_needed)
+ off = pstr->offsets[off];
+#endif
+
+ ch = pstr->raw_mbs[pstr->raw_mbs_idx + off];
+
+#ifdef RE_ENABLE_I18N
+ /* Ensure that e.g. for tr_TR.UTF-8 BACKSLASH DOTLESS SMALL LETTER I
+ this function returns CAPITAL LETTER I instead of first byte of
+ DOTLESS SMALL LETTER I. The latter would confuse the parser,
+ since peek_byte_case doesn't advance cur_idx in any way. */
+ if (pstr->offsets_needed && !isascii (ch))
+ return re_string_peek_byte (pstr, idx);
+#endif
+
+ return ch;
+}
+
+static unsigned char
+internal_function __attribute ((pure))
+re_string_fetch_byte_case (re_string_t *pstr)
+{
+ if (BE (!pstr->mbs_allocated, 1))
+ return re_string_fetch_byte (pstr);
+
+#ifdef RE_ENABLE_I18N
+ if (pstr->offsets_needed)
+ {
+ Idx off;
+ int ch;
+
+ /* For tr_TR.UTF-8 [[:islower:]] there is
+ [[: CAPITAL LETTER I WITH DOT lower:]] in mbs. Skip
+ in that case the whole multi-byte character and return
+ the original letter. On the other side, with
+ [[: DOTLESS SMALL LETTER I return [[:I, as doing
+ anything else would complicate things too much. */
+
+ if (!re_string_first_byte (pstr, pstr->cur_idx))
+ return re_string_fetch_byte (pstr);
+
+ off = pstr->offsets[pstr->cur_idx];
+ ch = pstr->raw_mbs[pstr->raw_mbs_idx + off];
+
+ if (! isascii (ch))
+ return re_string_fetch_byte (pstr);
+
+ re_string_skip_bytes (pstr,
+ re_string_char_size_at (pstr, pstr->cur_idx));
+ return ch;
+ }
+#endif
+
+ return pstr->raw_mbs[pstr->raw_mbs_idx + pstr->cur_idx++];
+}
+
+static void
+internal_function
+re_string_destruct (re_string_t *pstr)
+{
+#ifdef RE_ENABLE_I18N
+ re_free (pstr->wcs);
+ re_free (pstr->offsets);
+#endif /* RE_ENABLE_I18N */
+ if (pstr->mbs_allocated)
+ re_free (pstr->mbs);
+}
+
+/* Return the context at IDX in INPUT. */
+
+static unsigned int
+internal_function
+re_string_context_at (const re_string_t *input, Idx idx, int eflags)
+{
+ int c;
+ if (BE (! REG_VALID_INDEX (idx), 0))
+ /* In this case, we use the value stored in input->tip_context,
+ since we can't know the character in input->mbs[-1] here. */
+ return input->tip_context;
+ if (BE (idx == input->len, 0))
+ return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF
+ : CONTEXT_NEWLINE | CONTEXT_ENDBUF);
+#ifdef RE_ENABLE_I18N
+ if (input->mb_cur_max > 1)
+ {
+ wint_t wc;
+ Idx wc_idx = idx;
+ while(input->wcs[wc_idx] == WEOF)
+ {
+#ifdef DEBUG
+ /* It must not happen. */
+ assert (REG_VALID_INDEX (wc_idx));
+#endif
+ --wc_idx;
+ if (! REG_VALID_INDEX (wc_idx))
+ return input->tip_context;
+ }
+ wc = input->wcs[wc_idx];
+ if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc))
+ return CONTEXT_WORD;
+ return (IS_WIDE_NEWLINE (wc) && input->newline_anchor
+ ? CONTEXT_NEWLINE : 0);
+ }
+ else
+#endif
+ {
+ c = re_string_byte_at (input, idx);
+ if (bitset_contain (input->word_char, c))
+ return CONTEXT_WORD;
+ return IS_NEWLINE (c) && input->newline_anchor ? CONTEXT_NEWLINE : 0;
+ }
+}
+
+/* Functions for set operation. */
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+re_node_set_alloc (re_node_set *set, Idx size)
+{
+ set->alloc = size;
+ set->nelem = 0;
+ set->elems = re_malloc (Idx, size);
+ if (BE (set->elems == NULL, 0))
+ return REG_ESPACE;
+ return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+re_node_set_init_1 (re_node_set *set, Idx elem)
+{
+ set->alloc = 1;
+ set->nelem = 1;
+ set->elems = re_malloc (Idx, 1);
+ if (BE (set->elems == NULL, 0))
+ {
+ set->alloc = set->nelem = 0;
+ return REG_ESPACE;
+ }
+ set->elems[0] = elem;
+ return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2)
+{
+ set->alloc = 2;
+ set->elems = re_malloc (Idx, 2);
+ if (BE (set->elems == NULL, 0))
+ return REG_ESPACE;
+ if (elem1 == elem2)
+ {
+ set->nelem = 1;
+ set->elems[0] = elem1;
+ }
+ else
+ {
+ set->nelem = 2;
+ if (elem1 < elem2)
+ {
+ set->elems[0] = elem1;
+ set->elems[1] = elem2;
+ }
+ else
+ {
+ set->elems[0] = elem2;
+ set->elems[1] = elem1;
+ }
+ }
+ return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+re_node_set_init_copy (re_node_set *dest, const re_node_set *src)
+{
+ dest->nelem = src->nelem;
+ if (src->nelem > 0)
+ {
+ dest->alloc = dest->nelem;
+ dest->elems = re_malloc (Idx, dest->alloc);
+ if (BE (dest->elems == NULL, 0))
+ {
+ dest->alloc = dest->nelem = 0;
+ return REG_ESPACE;
+ }
+ memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx));
+ }
+ else
+ re_node_set_init_empty (dest);
+ return REG_NOERROR;
+}
+
+/* Calculate the intersection of the sets SRC1 and SRC2. And merge it to
+ DEST. Return value indicate the error code or REG_NOERROR if succeeded.
+ Note: We assume dest->elems is NULL, when dest->alloc is 0. */
+
+static reg_errcode_t
+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)
+{
+ Idx i1, i2, is, id, delta, sbase;
+ if (src1->nelem == 0 || src2->nelem == 0)
+ return REG_NOERROR;
+
+ /* We need dest->nelem + 2 * elems_in_intersection; this is a
+ conservative estimate. */
+ if (src1->nelem + src2->nelem + dest->nelem > dest->alloc)
+ {
+ 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;
+ dest->elems = new_elems;
+ dest->alloc = new_alloc;
+ }
+
+ /* Find the items in the intersection of SRC1 and SRC2, and copy
+ into the top of DEST those that are not already in DEST itself. */
+ sbase = dest->nelem + src1->nelem + src2->nelem;
+ i1 = src1->nelem - 1;
+ i2 = src2->nelem - 1;
+ id = dest->nelem - 1;
+ for (;;)
+ {
+ if (src1->elems[i1] == src2->elems[i2])
+ {
+ /* Try to find the item in DEST. Maybe we could binary search? */
+ while (REG_VALID_INDEX (id) && dest->elems[id] > src1->elems[i1])
+ --id;
+
+ if (! REG_VALID_INDEX (id) || dest->elems[id] != src1->elems[i1])
+ dest->elems[--sbase] = src1->elems[i1];
+
+ if (! REG_VALID_INDEX (--i1) || ! REG_VALID_INDEX (--i2))
+ break;
+ }
+
+ /* Lower the highest of the two items. */
+ else if (src1->elems[i1] < src2->elems[i2])
+ {
+ if (! REG_VALID_INDEX (--i2))
+ break;
+ }
+ else
+ {
+ if (! REG_VALID_INDEX (--i1))
+ break;
+ }
+ }
+
+ id = dest->nelem - 1;
+ is = dest->nelem + src1->nelem + src2->nelem - 1;
+ delta = is - sbase + 1;
+
+ /* Now copy. When DELTA becomes zero, the remaining
+ DEST elements are already in place; this is more or
+ less the same loop that is in re_node_set_merge. */
+ dest->nelem += delta;
+ 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;
+ }
+ }
+
+ /* Copy remaining SRC elements. */
+ memcpy (dest->elems, dest->elems + sbase, delta * sizeof (Idx));
+
+ return REG_NOERROR;
+}
+
+/* Calculate the union set of the sets SRC1 and SRC2. And store it to
+ DEST. Return value indicate the error code or REG_NOERROR if succeeded. */
+
+static reg_errcode_t
+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)
+{
+ Idx i1, i2, id;
+ if (src1 != NULL && src1->nelem > 0 && src2 != NULL && src2->nelem > 0)
+ {
+ dest->alloc = src1->nelem + src2->nelem;
+ dest->elems = re_malloc (Idx, dest->alloc);
+ if (BE (dest->elems == NULL, 0))
+ return REG_ESPACE;
+ }
+ else
+ {
+ if (src1 != NULL && src1->nelem > 0)
+ return re_node_set_init_copy (dest, src1);
+ else if (src2 != NULL && src2->nelem > 0)
+ return re_node_set_init_copy (dest, src2);
+ else
+ re_node_set_init_empty (dest);
+ return REG_NOERROR;
+ }
+ for (i1 = i2 = id = 0 ; i1 < src1->nelem && i2 < src2->nelem ;)
+ {
+ if (src1->elems[i1] > src2->elems[i2])
+ {
+ dest->elems[id++] = src2->elems[i2++];
+ continue;
+ }
+ if (src1->elems[i1] == src2->elems[i2])
+ ++i2;
+ dest->elems[id++] = src1->elems[i1++];
+ }
+ if (i1 < src1->nelem)
+ {
+ memcpy (dest->elems + id, src1->elems + i1,
+ (src1->nelem - i1) * sizeof (Idx));
+ id += src1->nelem - i1;
+ }
+ else if (i2 < src2->nelem)
+ {
+ memcpy (dest->elems + id, src2->elems + i2,
+ (src2->nelem - i2) * sizeof (Idx));
+ id += src2->nelem - i2;
+ }
+ dest->nelem = id;
+ return REG_NOERROR;
+}
+
+/* Calculate the union set of the sets DEST and SRC. And store it to
+ DEST. Return value indicate the error code or REG_NOERROR if succeeded. */
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+re_node_set_merge (re_node_set *dest, const re_node_set *src)
+{
+ Idx is, id, sbase, delta;
+ if (src == NULL || src->nelem == 0)
+ return REG_NOERROR;
+ if (dest->alloc < 2 * src->nelem + dest->nelem)
+ {
+ Idx new_alloc = 2 * (src->nelem + dest->alloc);
+ Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc);
+ if (BE (new_buffer == NULL, 0))
+ return REG_ESPACE;
+ dest->elems = new_buffer;
+ dest->alloc = new_alloc;
+ }
+
+ if (BE (dest->nelem == 0, 0))
+ {
+ dest->nelem = src->nelem;
+ memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx));
+ return REG_NOERROR;
+ }
+
+ /* Copy into the top of DEST the items of SRC that are not
+ found in DEST. Maybe we could binary search in DEST? */
+ for (sbase = dest->nelem + 2 * src->nelem,
+ is = src->nelem - 1, id = dest->nelem - 1;
+ REG_VALID_INDEX (is) && REG_VALID_INDEX (id); )
+ {
+ if (dest->elems[id] == src->elems[is])
+ is--, id--;
+ else if (dest->elems[id] < src->elems[is])
+ dest->elems[--sbase] = src->elems[is--];
+ else /* if (dest->elems[id] > src->elems[is]) */
+ --id;
+ }
+
+ if (REG_VALID_INDEX (is))
+ {
+ /* If DEST is exhausted, the remaining items of SRC must be unique. */
+ sbase -= is + 1;
+ memcpy (dest->elems + sbase, src->elems, (is + 1) * sizeof (Idx));
+ }
+
+ id = dest->nelem - 1;
+ is = dest->nelem + 2 * src->nelem - 1;
+ delta = is - sbase + 1;
+ if (delta == 0)
+ return REG_NOERROR;
+
+ /* Now copy. When DELTA becomes zero, the remaining
+ DEST elements are already in place. */
+ dest->nelem += delta;
+ 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))
+ {
+ /* Copy remaining SRC elements. */
+ memcpy (dest->elems, dest->elems + sbase,
+ delta * sizeof (Idx));
+ break;
+ }
+ }
+ }
+
+ return REG_NOERROR;
+}
+
+/* Insert the new element ELEM to the re_node_set* SET.
+ SET should not already have ELEM.
+ Return true if successful. */
+
+static bool
+internal_function __attribute_warn_unused_result__
+re_node_set_insert (re_node_set *set, Idx elem)
+{
+ Idx idx;
+ /* In case the set is empty. */
+ if (set->alloc == 0)
+ return BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1);
+
+ if (BE (set->nelem, 0) == 0)
+ {
+ /* We already guaranteed above that set->alloc != 0. */
+ set->elems[0] = elem;
+ ++set->nelem;
+ return true;
+ }
+
+ /* Realloc if we need. */
+ if (set->alloc == set->nelem)
+ {
+ Idx *new_elems;
+ set->alloc = set->alloc * 2;
+ new_elems = re_realloc (set->elems, Idx, set->alloc);
+ if (BE (new_elems == NULL, 0))
+ return false;
+ set->elems = new_elems;
+ }
+
+ /* Move the elements which follows the new element. Test the
+ first element separately to skip a check in the inner loop. */
+ if (elem < set->elems[0])
+ {
+ idx = 0;
+ for (idx = set->nelem; idx > 0; idx--)
+ 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];
+ }
+
+ /* Insert the new element. */
+ set->elems[idx] = elem;
+ ++set->nelem;
+ return true;
+}
+
+/* Insert the new element ELEM to the re_node_set* SET.
+ SET should not already have any element greater than or equal to ELEM.
+ Return true if successful. */
+
+static bool
+internal_function __attribute_warn_unused_result__
+re_node_set_insert_last (re_node_set *set, Idx elem)
+{
+ /* Realloc if we need. */
+ if (set->alloc == set->nelem)
+ {
+ Idx *new_elems;
+ set->alloc = (set->alloc + 1) * 2;
+ new_elems = re_realloc (set->elems, Idx, set->alloc);
+ if (BE (new_elems == NULL, 0))
+ return false;
+ set->elems = new_elems;
+ }
+
+ /* Insert the new element. */
+ set->elems[set->nelem++] = elem;
+ return true;
+}
+
+/* Compare two node sets SET1 and SET2.
+ Return true if SET1 and SET2 are equivalent. */
+
+static bool
+internal_function __attribute ((pure))
+re_node_set_compare (const re_node_set *set1, const re_node_set *set2)
+{
+ Idx i;
+ if (set1 == NULL || set2 == NULL || set1->nelem != set2->nelem)
+ return false;
+ for (i = set1->nelem ; REG_VALID_INDEX (--i) ; )
+ if (set1->elems[i] != set2->elems[i])
+ return false;
+ return true;
+}
+
+/* Return (idx + 1) if SET contains the element ELEM, return 0 otherwise. */
+
+static Idx
+internal_function __attribute ((pure))
+re_node_set_contains (const re_node_set *set, Idx elem)
+{
+ __re_size_t idx, right, mid;
+ if (! REG_VALID_NONZERO_INDEX (set->nelem))
+ return 0;
+
+ /* Binary search the element. */
+ idx = 0;
+ right = set->nelem - 1;
+ while (idx < right)
+ {
+ mid = (idx + right) / 2;
+ if (set->elems[mid] < elem)
+ idx = mid + 1;
+ else
+ right = mid;
+ }
+ return set->elems[idx] == elem ? idx + 1 : 0;
+}
+
+static void
+internal_function
+re_node_set_remove_at (re_node_set *set, Idx idx)
+{
+ if (idx < 0 || idx >= set->nelem)
+ return;
+ --set->nelem;
+ for (; idx < set->nelem; idx++)
+ set->elems[idx] = set->elems[idx + 1];
+}
+
+
+/* Add the token TOKEN to dfa->nodes, and return the index of the token.
+ Or return REG_MISSING if an error occurred. */
+
+static Idx
+internal_function
+re_dfa_add_node (re_dfa_t *dfa, re_token_t token)
+{
+ if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0))
+ {
+ size_t new_nodes_alloc = dfa->nodes_alloc * 2;
+ Idx *new_nexts, *new_indices;
+ re_node_set *new_edests, *new_eclosures;
+ re_token_t *new_nodes;
+ size_t max_object_size =
+ MAX (sizeof (re_token_t),
+ MAX (sizeof (re_node_set),
+ sizeof (Idx)));
+
+ /* Avoid overflows. */
+ if (BE (SIZE_MAX / 2 / max_object_size < dfa->nodes_alloc, 0))
+ return REG_MISSING;
+
+ new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc);
+ if (BE (new_nodes == NULL, 0))
+ return REG_MISSING;
+ dfa->nodes = new_nodes;
+ new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc);
+ new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc);
+ new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc);
+ new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc);
+ if (BE (new_nexts == NULL || new_indices == NULL
+ || new_edests == NULL || new_eclosures == NULL, 0))
+ return REG_MISSING;
+ dfa->nexts = new_nexts;
+ dfa->org_indices = new_indices;
+ dfa->edests = new_edests;
+ dfa->eclosures = new_eclosures;
+ dfa->nodes_alloc = new_nodes_alloc;
+ }
+ dfa->nodes[dfa->nodes_len] = token;
+ dfa->nodes[dfa->nodes_len].constraint = 0;
+#ifdef RE_ENABLE_I18N
+ {
+ int type = token.type;
+ dfa->nodes[dfa->nodes_len].accept_mb =
+ (type == OP_PERIOD && dfa->mb_cur_max > 1) || type == COMPLEX_BRACKET;
+ }
+#endif
+ dfa->nexts[dfa->nodes_len] = REG_MISSING;
+ re_node_set_init_empty (dfa->edests + dfa->nodes_len);
+ re_node_set_init_empty (dfa->eclosures + dfa->nodes_len);
+ return dfa->nodes_len++;
+}
+
+static inline re_hashval_t
+internal_function
+calc_state_hash (const re_node_set *nodes, unsigned int context)
+{
+ re_hashval_t hash = nodes->nelem + context;
+ Idx i;
+ for (i = 0 ; i < nodes->nelem ; i++)
+ hash += nodes->elems[i];
+ return hash;
+}
+
+/* Search for the state whose node_set is equivalent to NODES.
+ Return the pointer to the state, if we found it in the DFA.
+ Otherwise create the new one and return it. In case of an error
+ return NULL and set the error code in ERR.
+ Note: - We assume NULL as the invalid state, then it is possible that
+ return value is NULL and ERR is REG_NOERROR.
+ - We never return non-NULL value in case of any errors, it is for
+ optimization. */
+
+static re_dfastate_t *
+internal_function __attribute_warn_unused_result__
+re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa,
+ const re_node_set *nodes)
+{
+ re_hashval_t hash;
+ re_dfastate_t *new_state;
+ struct re_state_table_entry *spot;
+ Idx i;
+#ifdef lint
+ /* Suppress bogus uninitialized-variable warnings. */
+ *err = REG_NOERROR;
+#endif
+ if (BE (nodes->nelem == 0, 0))
+ {
+ *err = REG_NOERROR;
+ return NULL;
+ }
+ hash = calc_state_hash (nodes, 0);
+ spot = dfa->state_table + (hash & dfa->state_hash_mask);
+
+ for (i = 0 ; i < spot->num ; i++)
+ {
+ re_dfastate_t *state = spot->array[i];
+ if (hash != state->hash)
+ continue;
+ if (re_node_set_compare (&state->nodes, nodes))
+ return state;
+ }
+
+ /* There are no appropriate state in the dfa, create the new one. */
+ new_state = create_ci_newstate (dfa, nodes, hash);
+ if (BE (new_state == NULL, 0))
+ *err = REG_ESPACE;
+
+ return new_state;
+}
+
+/* Search for the state whose node_set is equivalent to NODES and
+ whose context is equivalent to CONTEXT.
+ Return the pointer to the state, if we found it in the DFA.
+ Otherwise create the new one and return it. In case of an error
+ return NULL and set the error code in ERR.
+ Note: - We assume NULL as the invalid state, then it is possible that
+ return value is NULL and ERR is REG_NOERROR.
+ - We never return non-NULL value in case of any errors, it is for
+ optimization. */
+
+static re_dfastate_t *
+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)
+{
+ re_hashval_t hash;
+ re_dfastate_t *new_state;
+ struct re_state_table_entry *spot;
+ Idx i;
+#ifdef lint
+ /* Suppress bogus uninitialized-variable warnings. */
+ *err = REG_NOERROR;
+#endif
+ if (nodes->nelem == 0)
+ {
+ *err = REG_NOERROR;
+ return NULL;
+ }
+ hash = calc_state_hash (nodes, context);
+ spot = dfa->state_table + (hash & dfa->state_hash_mask);
+
+ for (i = 0 ; i < spot->num ; i++)
+ {
+ re_dfastate_t *state = spot->array[i];
+ if (state->hash == hash
+ && state->context == context
+ && re_node_set_compare (state->entrance_nodes, nodes))
+ return state;
+ }
+ /* There are no appropriate state in 'dfa', create the new one. */
+ new_state = create_cd_newstate (dfa, nodes, context, hash);
+ if (BE (new_state == NULL, 0))
+ *err = REG_ESPACE;
+
+ return new_state;
+}
+
+/* Finish initialization of the new state NEWSTATE, and using its hash value
+ HASH put in the appropriate bucket of DFA's state table. Return value
+ 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)
+{
+ struct re_state_table_entry *spot;
+ reg_errcode_t err;
+ Idx i;
+
+ newstate->hash = hash;
+ err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem);
+ if (BE (err != REG_NOERROR, 0))
+ return REG_ESPACE;
+ for (i = 0; i < newstate->nodes.nelem; i++)
+ {
+ Idx elem = newstate->nodes.elems[i];
+ if (!IS_EPSILON_NODE (dfa->nodes[elem].type))
+ if (BE (! re_node_set_insert_last (&newstate->non_eps_nodes, elem), 0))
+ return REG_ESPACE;
+ }
+
+ spot = dfa->state_table + (hash & dfa->state_hash_mask);
+ if (BE (spot->alloc <= spot->num, 0))
+ {
+ Idx new_alloc = 2 * spot->num + 2;
+ re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *,
+ new_alloc);
+ if (BE (new_array == NULL, 0))
+ return REG_ESPACE;
+ spot->array = new_array;
+ spot->alloc = new_alloc;
+ }
+ spot->array[spot->num++] = newstate;
+ return REG_NOERROR;
+}
+
+static void
+free_state (re_dfastate_t *state)
+{
+ re_node_set_free (&state->non_eps_nodes);
+ re_node_set_free (&state->inveclosure);
+ if (state->entrance_nodes != &state->nodes)
+ {
+ re_node_set_free (state->entrance_nodes);
+ re_free (state->entrance_nodes);
+ }
+ re_node_set_free (&state->nodes);
+ re_free (state->word_trtable);
+ re_free (state->trtable);
+ re_free (state);
+}
+
+/* Create the new state which is independ of contexts.
+ Return the new state if succeeded, otherwise return NULL. */
+
+static re_dfastate_t *
+internal_function __attribute_warn_unused_result__
+create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes,
+ re_hashval_t hash)
+{
+ Idx i;
+ reg_errcode_t err;
+ re_dfastate_t *newstate;
+
+ newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
+ if (BE (newstate == NULL, 0))
+ return NULL;
+ err = re_node_set_init_copy (&newstate->nodes, nodes);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_free (newstate);
+ return NULL;
+ }
+
+ newstate->entrance_nodes = &newstate->nodes;
+ for (i = 0 ; i < nodes->nelem ; i++)
+ {
+ re_token_t *node = dfa->nodes + nodes->elems[i];
+ re_token_type_t type = node->type;
+ if (type == CHARACTER && !node->constraint)
+ continue;
+#ifdef RE_ENABLE_I18N
+ newstate->accept_mb |= node->accept_mb;
+#endif /* RE_ENABLE_I18N */
+
+ /* If the state has the halt node, the state is a halt state. */
+ if (type == END_OF_RE)
+ newstate->halt = 1;
+ else if (type == OP_BACK_REF)
+ newstate->has_backref = 1;
+ else if (type == ANCHOR || node->constraint)
+ newstate->has_constraint = 1;
+ }
+ err = register_state (dfa, newstate, hash);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ free_state (newstate);
+ newstate = NULL;
+ }
+ return newstate;
+}
+
+/* Create the new state which is depend on the context CONTEXT.
+ Return the new state if succeeded, otherwise return NULL. */
+
+static re_dfastate_t *
+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)
+{
+ Idx i, nctx_nodes = 0;
+ reg_errcode_t err;
+ re_dfastate_t *newstate;
+
+ newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1);
+ if (BE (newstate == NULL, 0))
+ return NULL;
+ err = re_node_set_init_copy (&newstate->nodes, nodes);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_free (newstate);
+ return NULL;
+ }
+
+ newstate->context = context;
+ newstate->entrance_nodes = &newstate->nodes;
+
+ for (i = 0 ; i < nodes->nelem ; i++)
+ {
+ re_token_t *node = dfa->nodes + nodes->elems[i];
+ re_token_type_t type = node->type;
+ unsigned int constraint = node->constraint;
+
+ if (type == CHARACTER && !constraint)
+ continue;
+#ifdef RE_ENABLE_I18N
+ newstate->accept_mb |= node->accept_mb;
+#endif /* RE_ENABLE_I18N */
+
+ /* If the state has the halt node, the state is a halt state. */
+ if (type == END_OF_RE)
+ newstate->halt = 1;
+ else if (type == OP_BACK_REF)
+ newstate->has_backref = 1;
+
+ if (constraint)
+ {
+ if (newstate->entrance_nodes == &newstate->nodes)
+ {
+ newstate->entrance_nodes = re_malloc (re_node_set, 1);
+ if (BE (newstate->entrance_nodes == NULL, 0))
+ {
+ free_state (newstate);
+ return NULL;
+ }
+ if (re_node_set_init_copy (newstate->entrance_nodes, nodes)
+ != REG_NOERROR)
+ return NULL;
+ nctx_nodes = 0;
+ newstate->has_constraint = 1;
+ }
+
+ if (NOT_SATISFY_PREV_CONSTRAINT (constraint,context))
+ {
+ re_node_set_remove_at (&newstate->nodes, i - nctx_nodes);
+ ++nctx_nodes;
+ }
+ }
+ }
+ err = register_state (dfa, newstate, hash);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ free_state (newstate);
+ newstate = NULL;
+ }
+ return newstate;
+}
diff --git a/gnu/regex_internal.h b/gnu/regex_internal.h
new file mode 100644
index 00000000..1d7b5e50
--- /dev/null
+++ b/gnu/regex_internal.h
@@ -0,0 +1,868 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Extended regular expression matching and search library.
+ Copyright (C) 2002-2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+ This 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 _REGEX_INTERNAL_H
+#define _REGEX_INTERNAL_H 1
+
+#include <assert.h>
+#include <ctype.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <langinfo.h>
+#ifndef _LIBC
+# include "localcharset.h"
+#endif
+#include <locale.h>
+
+#include <wchar.h>
+#include <wctype.h>
+#include <stdint.h>
+#if defined _LIBC
+# include <bits/libc-lock.h>
+#else
+# define __libc_lock_init(NAME) do { } while (0)
+# define __libc_lock_lock(NAME) do { } while (0)
+# define __libc_lock_unlock(NAME) do { } while (0)
+#endif
+
+/* In case that the system doesn't have isblank(). */
+#if !defined _LIBC && ! (defined isblank || (HAVE_ISBLANK && HAVE_DECL_ISBLANK))
+# define isblank(ch) ((ch) == ' ' || (ch) == '\t')
+#endif
+
+#ifdef _LIBC
+# ifndef _RE_DEFINE_LOCALE_FUNCTIONS
+# define _RE_DEFINE_LOCALE_FUNCTIONS 1
+# include <locale/localeinfo.h>
+# include <locale/elem-hash.h>
+# include <locale/coll-lookup.h>
+# endif
+#endif
+
+/* This is for other GNU distributions with internationalized messages. */
+#if (HAVE_LIBINTL_H && ENABLE_NLS) || defined _LIBC
+# include <libintl.h>
+# ifdef _LIBC
+# undef gettext
+# define gettext(msgid) \
+ INTUSE(__dcgettext) (_libc_intl_domainname, msgid, LC_MESSAGES)
+# endif
+#else
+# define gettext(msgid) (msgid)
+#endif
+
+#ifndef gettext_noop
+/* This define is so xgettext can find the internationalizable
+ strings. */
+# define gettext_noop(String) String
+#endif
+
+/* For loser systems without the definition. */
+#ifndef SIZE_MAX
+# define SIZE_MAX ((size_t) -1)
+#endif
+
+#if (defined MB_CUR_MAX && HAVE_WCTYPE_H && HAVE_ISWCTYPE && HAVE_WCSCOLL) || _LIBC
+# define RE_ENABLE_I18N
+#endif
+
+#if __GNUC__ >= 3
+# define BE(expr, val) __builtin_expect (expr, val)
+#else
+# define BE(expr, val) (expr)
+# ifdef _LIBC
+# define inline
+# endif
+#endif
+
+/* Number of ASCII characters. */
+#define ASCII_CHARS 0x80
+
+/* Number of single byte characters. */
+#define SBC_MAX (UCHAR_MAX + 1)
+
+#define COLL_ELEM_LEN_MAX 8
+
+/* The character which represents newline. */
+#define NEWLINE_CHAR '\n'
+#define WIDE_NEWLINE_CHAR L'\n'
+
+/* Rename to standard API for using out of glibc. */
+#ifndef _LIBC
+# define __wctype wctype
+# define __iswctype iswctype
+# define __btowc btowc
+# define __wcrtomb wcrtomb
+# define __mbrtowc mbrtowc
+# define __regfree regfree
+# define attribute_hidden
+#endif /* not _LIBC */
+
+#if __GNUC__ >= 4 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
+# define __attribute(arg) __attribute__ (arg)
+#else
+# define __attribute(arg)
+#endif
+
+typedef __re_idx_t Idx;
+
+/* Special return value for failure to match. */
+#define REG_MISSING ((Idx) -1)
+
+/* Special return value for internal error. */
+#define REG_ERROR ((Idx) -2)
+
+/* Test whether N is a valid index, and is not one of the above. */
+#ifdef _REGEX_LARGE_OFFSETS
+# define REG_VALID_INDEX(n) ((Idx) (n) < REG_ERROR)
+#else
+# define REG_VALID_INDEX(n) (0 <= (n))
+#endif
+
+/* Test whether N is a valid nonzero index. */
+#ifdef _REGEX_LARGE_OFFSETS
+# define REG_VALID_NONZERO_INDEX(n) ((Idx) ((n) - 1) < (Idx) (REG_ERROR - 1))
+#else
+# define REG_VALID_NONZERO_INDEX(n) (0 < (n))
+#endif
+
+/* A hash value, suitable for computing hash tables. */
+typedef __re_size_t re_hashval_t;
+
+/* An integer used to represent a set of bits. It must be unsigned,
+ and must be at least as wide as unsigned int. */
+typedef unsigned long int bitset_word_t;
+/* All bits set in a bitset_word_t. */
+#define BITSET_WORD_MAX ULONG_MAX
+
+/* Number of bits in a bitset_word_t. For portability to hosts with
+ padding bits, do not use '(sizeof (bitset_word_t) * CHAR_BIT)';
+ instead, deduce it directly from BITSET_WORD_MAX. Avoid
+ greater-than-32-bit integers and unconditional shifts by more than
+ 31 bits, as they're not portable. */
+#if BITSET_WORD_MAX == 0xffffffffUL
+# define BITSET_WORD_BITS 32
+#elif BITSET_WORD_MAX >> 31 >> 4 == 1
+# define BITSET_WORD_BITS 36
+#elif BITSET_WORD_MAX >> 31 >> 16 == 1
+# define BITSET_WORD_BITS 48
+#elif BITSET_WORD_MAX >> 31 >> 28 == 1
+# define BITSET_WORD_BITS 60
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 1 == 1
+# define BITSET_WORD_BITS 64
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 9 == 1
+# define BITSET_WORD_BITS 72
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 3 == 1
+# define BITSET_WORD_BITS 128
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 == 1
+# define BITSET_WORD_BITS 256
+#elif BITSET_WORD_MAX >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 31 >> 7 > 1
+# define BITSET_WORD_BITS 257 /* any value > SBC_MAX will do here */
+# if BITSET_WORD_BITS <= SBC_MAX
+# error "Invalid SBC_MAX"
+# endif
+#else
+# error "Add case for new bitset_word_t size"
+#endif
+
+/* Number of bitset_word_t values in a bitset_t. */
+#define BITSET_WORDS ((SBC_MAX + BITSET_WORD_BITS - 1) / BITSET_WORD_BITS)
+
+typedef bitset_word_t bitset_t[BITSET_WORDS];
+typedef bitset_word_t *re_bitset_ptr_t;
+typedef const bitset_word_t *re_const_bitset_ptr_t;
+
+#define PREV_WORD_CONSTRAINT 0x0001
+#define PREV_NOTWORD_CONSTRAINT 0x0002
+#define NEXT_WORD_CONSTRAINT 0x0004
+#define NEXT_NOTWORD_CONSTRAINT 0x0008
+#define PREV_NEWLINE_CONSTRAINT 0x0010
+#define NEXT_NEWLINE_CONSTRAINT 0x0020
+#define PREV_BEGBUF_CONSTRAINT 0x0040
+#define NEXT_ENDBUF_CONSTRAINT 0x0080
+#define WORD_DELIM_CONSTRAINT 0x0100
+#define NOT_WORD_DELIM_CONSTRAINT 0x0200
+
+typedef enum
+{
+ INSIDE_WORD = PREV_WORD_CONSTRAINT | NEXT_WORD_CONSTRAINT,
+ WORD_FIRST = PREV_NOTWORD_CONSTRAINT | NEXT_WORD_CONSTRAINT,
+ WORD_LAST = PREV_WORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT,
+ INSIDE_NOTWORD = PREV_NOTWORD_CONSTRAINT | NEXT_NOTWORD_CONSTRAINT,
+ LINE_FIRST = PREV_NEWLINE_CONSTRAINT,
+ LINE_LAST = NEXT_NEWLINE_CONSTRAINT,
+ BUF_FIRST = PREV_BEGBUF_CONSTRAINT,
+ BUF_LAST = NEXT_ENDBUF_CONSTRAINT,
+ WORD_DELIM = WORD_DELIM_CONSTRAINT,
+ NOT_WORD_DELIM = NOT_WORD_DELIM_CONSTRAINT
+} re_context_type;
+
+typedef struct
+{
+ Idx alloc;
+ Idx nelem;
+ Idx *elems;
+} re_node_set;
+
+typedef enum
+{
+ NON_TYPE = 0,
+
+ /* Node type, These are used by token, node, tree. */
+ CHARACTER = 1,
+ END_OF_RE = 2,
+ SIMPLE_BRACKET = 3,
+ OP_BACK_REF = 4,
+ OP_PERIOD = 5,
+#ifdef RE_ENABLE_I18N
+ COMPLEX_BRACKET = 6,
+ OP_UTF8_PERIOD = 7,
+#endif /* RE_ENABLE_I18N */
+
+ /* We define EPSILON_BIT as a macro so that OP_OPEN_SUBEXP is used
+ when the debugger shows values of this enum type. */
+#define EPSILON_BIT 8
+ OP_OPEN_SUBEXP = EPSILON_BIT | 0,
+ OP_CLOSE_SUBEXP = EPSILON_BIT | 1,
+ OP_ALT = EPSILON_BIT | 2,
+ OP_DUP_ASTERISK = EPSILON_BIT | 3,
+ ANCHOR = EPSILON_BIT | 4,
+
+ /* Tree type, these are used only by tree. */
+ CONCAT = 16,
+ SUBEXP = 17,
+
+ /* Token type, these are used only by token. */
+ OP_DUP_PLUS = 18,
+ OP_DUP_QUESTION,
+ OP_OPEN_BRACKET,
+ OP_CLOSE_BRACKET,
+ OP_CHARSET_RANGE,
+ OP_OPEN_DUP_NUM,
+ OP_CLOSE_DUP_NUM,
+ OP_NON_MATCH_LIST,
+ OP_OPEN_COLL_ELEM,
+ OP_CLOSE_COLL_ELEM,
+ OP_OPEN_EQUIV_CLASS,
+ OP_CLOSE_EQUIV_CLASS,
+ OP_OPEN_CHAR_CLASS,
+ OP_CLOSE_CHAR_CLASS,
+ OP_WORD,
+ OP_NOTWORD,
+ OP_SPACE,
+ OP_NOTSPACE,
+ BACK_SLASH
+
+} re_token_type_t;
+
+#ifdef RE_ENABLE_I18N
+typedef struct
+{
+ /* Multibyte characters. */
+ wchar_t *mbchars;
+
+ /* Collating symbols. */
+# ifdef _LIBC
+ int32_t *coll_syms;
+# endif
+
+ /* Equivalence classes. */
+# ifdef _LIBC
+ int32_t *equiv_classes;
+# endif
+
+ /* Range expressions. */
+# ifdef _LIBC
+ uint32_t *range_starts;
+ uint32_t *range_ends;
+# else /* not _LIBC */
+ wchar_t *range_starts;
+ wchar_t *range_ends;
+# endif /* not _LIBC */
+
+ /* Character classes. */
+ wctype_t *char_classes;
+
+ /* If this character set is the non-matching list. */
+ unsigned int non_match : 1;
+
+ /* # of multibyte characters. */
+ Idx nmbchars;
+
+ /* # of collating symbols. */
+ Idx ncoll_syms;
+
+ /* # of equivalence classes. */
+ Idx nequiv_classes;
+
+ /* # of range expressions. */
+ Idx nranges;
+
+ /* # of character classes. */
+ Idx nchar_classes;
+} re_charset_t;
+#endif /* RE_ENABLE_I18N */
+
+typedef struct
+{
+ union
+ {
+ unsigned char c; /* for CHARACTER */
+ re_bitset_ptr_t sbcset; /* for SIMPLE_BRACKET */
+#ifdef RE_ENABLE_I18N
+ re_charset_t *mbcset; /* for COMPLEX_BRACKET */
+#endif /* RE_ENABLE_I18N */
+ Idx idx; /* for BACK_REF */
+ re_context_type ctx_type; /* for ANCHOR */
+ } opr;
+#if __GNUC__ >= 2 && !defined __STRICT_ANSI__
+ re_token_type_t type : 8;
+#else
+ re_token_type_t type;
+#endif
+ unsigned int constraint : 10; /* context constraint */
+ unsigned int duplicated : 1;
+ unsigned int opt_subexp : 1;
+#ifdef RE_ENABLE_I18N
+ unsigned int accept_mb : 1;
+ /* These 2 bits can be moved into the union if needed (e.g. if running out
+ of bits; move opr.c to opr.c.c and move the flags to opr.c.flags). */
+ unsigned int mb_partial : 1;
+#endif
+ unsigned int word_char : 1;
+} re_token_t;
+
+#define IS_EPSILON_NODE(type) ((type) & EPSILON_BIT)
+
+struct re_string_t
+{
+ /* Indicate the raw buffer which is the original string passed as an
+ argument of regexec(), re_search(), etc.. */
+ const unsigned char *raw_mbs;
+ /* Store the multibyte string. In case of "case insensitive mode" like
+ REG_ICASE, upper cases of the string are stored, otherwise MBS points
+ the same address that RAW_MBS points. */
+ unsigned char *mbs;
+#ifdef RE_ENABLE_I18N
+ /* Store the wide character string which is corresponding to MBS. */
+ wint_t *wcs;
+ Idx *offsets;
+ mbstate_t cur_state;
+#endif
+ /* Index in RAW_MBS. Each character mbs[i] corresponds to
+ raw_mbs[raw_mbs_idx + i]. */
+ Idx raw_mbs_idx;
+ /* The length of the valid characters in the buffers. */
+ Idx valid_len;
+ /* The corresponding number of bytes in raw_mbs array. */
+ Idx valid_raw_len;
+ /* The length of the buffers MBS and WCS. */
+ Idx bufs_len;
+ /* The index in MBS, which is updated by re_string_fetch_byte. */
+ Idx cur_idx;
+ /* length of RAW_MBS array. */
+ Idx raw_len;
+ /* This is RAW_LEN - RAW_MBS_IDX + VALID_LEN - VALID_RAW_LEN. */
+ Idx len;
+ /* End of the buffer may be shorter than its length in the cases such
+ as re_match_2, re_search_2. Then, we use STOP for end of the buffer
+ instead of LEN. */
+ Idx raw_stop;
+ /* This is RAW_STOP - RAW_MBS_IDX adjusted through OFFSETS. */
+ Idx stop;
+
+ /* The context of mbs[0]. We store the context independently, since
+ the context of mbs[0] may be different from raw_mbs[0], which is
+ the beginning of the input string. */
+ unsigned int tip_context;
+ /* The translation passed as a part of an argument of re_compile_pattern. */
+ RE_TRANSLATE_TYPE trans;
+ /* Copy of re_dfa_t's word_char. */
+ re_const_bitset_ptr_t word_char;
+ /* true if REG_ICASE. */
+ unsigned char icase;
+ unsigned char is_utf8;
+ unsigned char map_notascii;
+ unsigned char mbs_allocated;
+ unsigned char offsets_needed;
+ unsigned char newline_anchor;
+ unsigned char word_ops_used;
+ int mb_cur_max;
+};
+typedef struct re_string_t re_string_t;
+
+
+struct re_dfa_t;
+typedef struct re_dfa_t re_dfa_t;
+
+#ifndef _LIBC
+# define internal_function
+#endif
+
+static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr,
+ Idx new_buf_len)
+ internal_function;
+#ifdef RE_ENABLE_I18N
+static void build_wcs_buffer (re_string_t *pstr) internal_function;
+static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr)
+ internal_function;
+#endif /* RE_ENABLE_I18N */
+static void build_upper_buffer (re_string_t *pstr) internal_function;
+static void re_string_translate_buffer (re_string_t *pstr) internal_function;
+static unsigned int re_string_context_at (const re_string_t *input, Idx idx,
+ int eflags)
+ internal_function __attribute ((pure));
+#define re_string_peek_byte(pstr, offset) \
+ ((pstr)->mbs[(pstr)->cur_idx + offset])
+#define re_string_fetch_byte(pstr) \
+ ((pstr)->mbs[(pstr)->cur_idx++])
+#define re_string_first_byte(pstr, idx) \
+ ((idx) == (pstr)->valid_len || (pstr)->wcs[idx] != WEOF)
+#define re_string_is_single_byte_char(pstr, idx) \
+ ((pstr)->wcs[idx] != WEOF && ((pstr)->valid_len == (idx) + 1 \
+ || (pstr)->wcs[(idx) + 1] != WEOF))
+#define re_string_eoi(pstr) ((pstr)->stop <= (pstr)->cur_idx)
+#define re_string_cur_idx(pstr) ((pstr)->cur_idx)
+#define re_string_get_buffer(pstr) ((pstr)->mbs)
+#define re_string_length(pstr) ((pstr)->len)
+#define re_string_byte_at(pstr,idx) ((pstr)->mbs[idx])
+#define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx))
+#define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx))
+
+#include <alloca.h>
+
+#ifndef _LIBC
+# if HAVE_ALLOCA
+/* The OS usually guarantees only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ allocate anything larger than 4096 bytes. Also care for the possibility
+ of a few compiler-allocated temporary stack slots. */
+# define __libc_use_alloca(n) ((n) < 4032)
+# else
+/* alloca is implemented with malloc, so just use malloc. */
+# define __libc_use_alloca(n) 0
+# undef alloca
+# define alloca(n) malloc (n)
+# endif
+#endif
+
+#ifndef MAX
+# define MAX(a,b) ((a) < (b) ? (b) : (a))
+#endif
+
+#define re_malloc(t,n) ((t *) malloc ((n) * sizeof (t)))
+#define re_realloc(p,t,n) ((t *) realloc (p, (n) * sizeof (t)))
+#define re_free(p) free (p)
+
+struct bin_tree_t
+{
+ struct bin_tree_t *parent;
+ struct bin_tree_t *left;
+ struct bin_tree_t *right;
+ struct bin_tree_t *first;
+ struct bin_tree_t *next;
+
+ re_token_t token;
+
+ /* 'node_idx' is the index in dfa->nodes, if 'type' == 0.
+ Otherwise 'type' indicate the type of this node. */
+ Idx node_idx;
+};
+typedef struct bin_tree_t bin_tree_t;
+
+#define BIN_TREE_STORAGE_SIZE \
+ ((1024 - sizeof (void *)) / sizeof (bin_tree_t))
+
+struct bin_tree_storage_t
+{
+ struct bin_tree_storage_t *next;
+ bin_tree_t data[BIN_TREE_STORAGE_SIZE];
+};
+typedef struct bin_tree_storage_t bin_tree_storage_t;
+
+#define CONTEXT_WORD 1
+#define CONTEXT_NEWLINE (CONTEXT_WORD << 1)
+#define CONTEXT_BEGBUF (CONTEXT_NEWLINE << 1)
+#define CONTEXT_ENDBUF (CONTEXT_BEGBUF << 1)
+
+#define IS_WORD_CONTEXT(c) ((c) & CONTEXT_WORD)
+#define IS_NEWLINE_CONTEXT(c) ((c) & CONTEXT_NEWLINE)
+#define IS_BEGBUF_CONTEXT(c) ((c) & CONTEXT_BEGBUF)
+#define IS_ENDBUF_CONTEXT(c) ((c) & CONTEXT_ENDBUF)
+#define IS_ORDINARY_CONTEXT(c) ((c) == 0)
+
+#define IS_WORD_CHAR(ch) (isalnum (ch) || (ch) == '_')
+#define IS_NEWLINE(ch) ((ch) == NEWLINE_CHAR)
+#define IS_WIDE_WORD_CHAR(ch) (iswalnum (ch) || (ch) == L'_')
+#define IS_WIDE_NEWLINE(ch) ((ch) == WIDE_NEWLINE_CHAR)
+
+#define NOT_SATISFY_PREV_CONSTRAINT(constraint,context) \
+ ((((constraint) & PREV_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \
+ || ((constraint & PREV_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \
+ || ((constraint & PREV_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context))\
+ || ((constraint & PREV_BEGBUF_CONSTRAINT) && !IS_BEGBUF_CONTEXT (context)))
+
+#define NOT_SATISFY_NEXT_CONSTRAINT(constraint,context) \
+ ((((constraint) & NEXT_WORD_CONSTRAINT) && !IS_WORD_CONTEXT (context)) \
+ || (((constraint) & NEXT_NOTWORD_CONSTRAINT) && IS_WORD_CONTEXT (context)) \
+ || (((constraint) & NEXT_NEWLINE_CONSTRAINT) && !IS_NEWLINE_CONTEXT (context)) \
+ || (((constraint) & NEXT_ENDBUF_CONSTRAINT) && !IS_ENDBUF_CONTEXT (context)))
+
+struct re_dfastate_t
+{
+ re_hashval_t hash;
+ re_node_set nodes;
+ re_node_set non_eps_nodes;
+ re_node_set inveclosure;
+ re_node_set *entrance_nodes;
+ struct re_dfastate_t **trtable, **word_trtable;
+ unsigned int context : 4;
+ unsigned int halt : 1;
+ /* If this state can accept "multi byte".
+ Note that we refer to multibyte characters, and multi character
+ collating elements as "multi byte". */
+ unsigned int accept_mb : 1;
+ /* If this state has backreference node(s). */
+ unsigned int has_backref : 1;
+ unsigned int has_constraint : 1;
+};
+typedef struct re_dfastate_t re_dfastate_t;
+
+struct re_state_table_entry
+{
+ Idx num;
+ Idx alloc;
+ re_dfastate_t **array;
+};
+
+/* Array type used in re_sub_match_last_t and re_sub_match_top_t. */
+
+typedef struct
+{
+ Idx next_idx;
+ Idx alloc;
+ re_dfastate_t **array;
+} state_array_t;
+
+/* Store information about the node NODE whose type is OP_CLOSE_SUBEXP. */
+
+typedef struct
+{
+ Idx node;
+ Idx str_idx; /* The position NODE match at. */
+ state_array_t path;
+} re_sub_match_last_t;
+
+/* Store information about the node NODE whose type is OP_OPEN_SUBEXP.
+ And information about the node, whose type is OP_CLOSE_SUBEXP,
+ corresponding to NODE is stored in LASTS. */
+
+typedef struct
+{
+ Idx str_idx;
+ Idx node;
+ state_array_t *path;
+ Idx alasts; /* Allocation size of LASTS. */
+ Idx nlasts; /* The number of LASTS. */
+ re_sub_match_last_t **lasts;
+} re_sub_match_top_t;
+
+struct re_backref_cache_entry
+{
+ Idx node;
+ Idx str_idx;
+ Idx subexp_from;
+ Idx subexp_to;
+ char more;
+ char unused;
+ unsigned short int eps_reachable_subexps_map;
+};
+
+typedef struct
+{
+ /* The string object corresponding to the input string. */
+ re_string_t input;
+#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+ const re_dfa_t *const dfa;
+#else
+ const re_dfa_t *dfa;
+#endif
+ /* EFLAGS of the argument of regexec. */
+ int eflags;
+ /* Where the matching ends. */
+ Idx match_last;
+ Idx last_node;
+ /* The state log used by the matcher. */
+ re_dfastate_t **state_log;
+ Idx state_log_top;
+ /* Back reference cache. */
+ Idx nbkref_ents;
+ Idx abkref_ents;
+ struct re_backref_cache_entry *bkref_ents;
+ int max_mb_elem_len;
+ Idx nsub_tops;
+ Idx asub_tops;
+ re_sub_match_top_t **sub_tops;
+} re_match_context_t;
+
+typedef struct
+{
+ re_dfastate_t **sifted_states;
+ re_dfastate_t **limited_states;
+ Idx last_node;
+ Idx last_str_idx;
+ re_node_set limits;
+} re_sift_context_t;
+
+struct re_fail_stack_ent_t
+{
+ Idx idx;
+ Idx node;
+ regmatch_t *regs;
+ re_node_set eps_via_nodes;
+};
+
+struct re_fail_stack_t
+{
+ Idx num;
+ Idx alloc;
+ struct re_fail_stack_ent_t *stack;
+};
+
+struct re_dfa_t
+{
+ re_token_t *nodes;
+ size_t nodes_alloc;
+ size_t nodes_len;
+ Idx *nexts;
+ Idx *org_indices;
+ re_node_set *edests;
+ re_node_set *eclosures;
+ re_node_set *inveclosures;
+ struct re_state_table_entry *state_table;
+ re_dfastate_t *init_state;
+ re_dfastate_t *init_state_word;
+ re_dfastate_t *init_state_nl;
+ re_dfastate_t *init_state_begbuf;
+ bin_tree_t *str_tree;
+ bin_tree_storage_t *str_tree_storage;
+ re_bitset_ptr_t sb_char;
+ int str_tree_storage_idx;
+
+ /* number of subexpressions 're_nsub' is in regex_t. */
+ re_hashval_t state_hash_mask;
+ Idx init_node;
+ Idx nbackref; /* The number of backreference in this dfa. */
+
+ /* Bitmap expressing which backreference is used. */
+ bitset_word_t used_bkref_map;
+ bitset_word_t completed_bkref_map;
+
+ unsigned int has_plural_match : 1;
+ /* If this dfa has "multibyte node", which is a backreference or
+ a node which can accept multibyte character or multi character
+ collating element. */
+ unsigned int has_mb_node : 1;
+ unsigned int is_utf8 : 1;
+ unsigned int map_notascii : 1;
+ unsigned int word_ops_used : 1;
+ int mb_cur_max;
+ bitset_t word_char;
+ reg_syntax_t syntax;
+ Idx *subexp_map;
+#ifdef DEBUG
+ char* re_str;
+#endif
+#ifdef _LIBC
+ __libc_lock_define (, lock)
+#endif
+};
+
+#define re_node_set_init_empty(set) memset (set, '\0', sizeof (re_node_set))
+#define re_node_set_remove(set,id) \
+ (re_node_set_remove_at (set, re_node_set_contains (set, id) - 1))
+#define re_node_set_empty(p) ((p)->nelem = 0)
+#define re_node_set_free(set) re_free ((set)->elems)
+
+
+typedef enum
+{
+ SB_CHAR,
+ MB_CHAR,
+ EQUIV_CLASS,
+ COLL_SYM,
+ CHAR_CLASS
+} bracket_elem_type;
+
+typedef struct
+{
+ bracket_elem_type type;
+ union
+ {
+ unsigned char ch;
+ unsigned char *name;
+ wchar_t wch;
+ } opr;
+} bracket_elem_t;
+
+
+/* Inline functions for bitset_t operation. */
+
+static inline void
+bitset_set (bitset_t set, Idx i)
+{
+ set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS;
+}
+
+static inline void
+bitset_clear (bitset_t set, Idx i)
+{
+ set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS);
+}
+
+static inline bool
+bitset_contain (const bitset_t set, Idx i)
+{
+ return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1;
+}
+
+static inline void
+bitset_empty (bitset_t set)
+{
+ memset (set, '\0', sizeof (bitset_t));
+}
+
+static inline void
+bitset_set_all (bitset_t set)
+{
+ memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS));
+ if (SBC_MAX % BITSET_WORD_BITS != 0)
+ set[BITSET_WORDS - 1] =
+ ((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1;
+}
+
+static inline void
+bitset_copy (bitset_t dest, const bitset_t src)
+{
+ memcpy (dest, src, sizeof (bitset_t));
+}
+
+static inline void
+bitset_not (bitset_t set)
+{
+ int bitset_i;
+ for (bitset_i = 0; bitset_i < SBC_MAX / BITSET_WORD_BITS; ++bitset_i)
+ set[bitset_i] = ~set[bitset_i];
+ if (SBC_MAX % BITSET_WORD_BITS != 0)
+ set[BITSET_WORDS - 1] =
+ ((((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1)
+ & ~set[BITSET_WORDS - 1]);
+}
+
+static inline void
+bitset_merge (bitset_t dest, const bitset_t src)
+{
+ int bitset_i;
+ for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i)
+ dest[bitset_i] |= src[bitset_i];
+}
+
+static inline void
+bitset_mask (bitset_t dest, const bitset_t src)
+{
+ int bitset_i;
+ for (bitset_i = 0; bitset_i < BITSET_WORDS; ++bitset_i)
+ dest[bitset_i] &= src[bitset_i];
+}
+
+#ifdef RE_ENABLE_I18N
+/* Inline functions for re_string. */
+static inline int
+internal_function __attribute ((pure))
+re_string_char_size_at (const re_string_t *pstr, Idx idx)
+{
+ int byte_idx;
+ if (pstr->mb_cur_max == 1)
+ return 1;
+ for (byte_idx = 1; idx + byte_idx < pstr->valid_len; ++byte_idx)
+ if (pstr->wcs[idx + byte_idx] != WEOF)
+ break;
+ return byte_idx;
+}
+
+static inline wint_t
+internal_function __attribute ((pure))
+re_string_wchar_at (const re_string_t *pstr, Idx idx)
+{
+ if (pstr->mb_cur_max == 1)
+ return (wint_t) pstr->mbs[idx];
+ return (wint_t) pstr->wcs[idx];
+}
+
+static int
+internal_function __attribute ((pure))
+re_string_elem_size_at (const re_string_t *pstr, Idx idx)
+{
+# ifdef _LIBC
+ const unsigned char *p, *extra;
+ const int32_t *table, *indirect;
+ int32_t tmp;
+# include <locale/weight.h>
+ uint_fast32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+
+ if (nrules != 0)
+ {
+ table = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_TABLEMB);
+ extra = (const unsigned char *)
+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
+ indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+ _NL_COLLATE_INDIRECTMB);
+ p = pstr->mbs + idx;
+ tmp = findidx (&p);
+ return p - pstr->mbs - idx;
+ }
+ else
+# endif /* _LIBC */
+ return 1;
+}
+#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/gnu/regexec.c b/gnu/regexec.c
new file mode 100644
index 00000000..fc6a6d66
--- /dev/null
+++ b/gnu/regexec.c
@@ -0,0 +1,4419 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Extended regular expression matching and search library.
+ Copyright (C) 2002-2012 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+
+ This 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. */
+
+static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
+ Idx n) internal_function;
+static void match_ctx_clean (re_match_context_t *mctx) internal_function;
+static void match_ctx_free (re_match_context_t *cache) internal_function;
+static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, Idx node,
+ Idx str_idx, Idx from, Idx to)
+ internal_function;
+static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx)
+ internal_function;
+static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, Idx node,
+ Idx str_idx) internal_function;
+static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop,
+ Idx node, Idx str_idx)
+ internal_function;
+static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts,
+ re_dfastate_t **limited_sts, Idx last_node,
+ Idx last_str_idx)
+ internal_function;
+static reg_errcode_t re_search_internal (const regex_t *preg,
+ const char *string, Idx length,
+ Idx start, Idx last_start, Idx stop,
+ size_t nmatch, regmatch_t pmatch[],
+ int eflags) internal_function;
+static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp,
+ const char *string1, Idx length1,
+ const char *string2, Idx length2,
+ Idx start, regoff_t range,
+ struct re_registers *regs,
+ Idx stop, bool ret_len) internal_function;
+static regoff_t re_search_stub (struct re_pattern_buffer *bufp,
+ const char *string, Idx length, Idx start,
+ regoff_t range, Idx stop,
+ struct re_registers *regs,
+ bool ret_len) internal_function;
+static unsigned int re_copy_regs (struct re_registers *regs, regmatch_t *pmatch,
+ Idx nregs, int regs_allocated)
+ internal_function;
+static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx)
+ internal_function;
+static Idx check_matching (re_match_context_t *mctx, bool fl_longest_match,
+ Idx *p_match_first) internal_function;
+static Idx check_halt_state_context (const re_match_context_t *mctx,
+ const re_dfastate_t *state, Idx idx)
+ internal_function;
+static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
+ regmatch_t *prev_idx_match, Idx cur_node,
+ Idx cur_idx, Idx nmatch) internal_function;
+static reg_errcode_t 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)
+ internal_function;
+static reg_errcode_t set_regs (const regex_t *preg,
+ const re_match_context_t *mctx,
+ size_t nmatch, regmatch_t *pmatch,
+ bool fl_backtrack) internal_function;
+static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs)
+ internal_function;
+
+#ifdef RE_ENABLE_I18N
+static int sift_states_iter_mb (const re_match_context_t *mctx,
+ re_sift_context_t *sctx,
+ Idx node_idx, Idx str_idx, Idx max_str_idx)
+ internal_function;
+#endif /* RE_ENABLE_I18N */
+static reg_errcode_t sift_states_backward (const re_match_context_t *mctx,
+ re_sift_context_t *sctx)
+ internal_function;
+static reg_errcode_t build_sifted_states (const re_match_context_t *mctx,
+ re_sift_context_t *sctx, Idx str_idx,
+ re_node_set *cur_dest)
+ internal_function;
+static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx,
+ re_sift_context_t *sctx,
+ Idx str_idx,
+ re_node_set *dest_nodes)
+ internal_function;
+static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa,
+ re_node_set *dest_nodes,
+ const re_node_set *candidates)
+ internal_function;
+static bool check_dst_limits (const re_match_context_t *mctx,
+ const re_node_set *limits,
+ Idx dst_node, Idx dst_idx, Idx src_node,
+ Idx src_idx) internal_function;
+static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx,
+ int boundaries, Idx subexp_idx,
+ Idx from_node, Idx bkref_idx)
+ internal_function;
+static int check_dst_limits_calc_pos (const re_match_context_t *mctx,
+ Idx limit, Idx subexp_idx,
+ Idx node, Idx str_idx,
+ Idx bkref_idx) internal_function;
+static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa,
+ re_node_set *dest_nodes,
+ const re_node_set *candidates,
+ re_node_set *limits,
+ struct re_backref_cache_entry *bkref_ents,
+ Idx str_idx) internal_function;
+static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx,
+ re_sift_context_t *sctx,
+ Idx str_idx, const re_node_set *candidates)
+ internal_function;
+static reg_errcode_t merge_state_array (const re_dfa_t *dfa,
+ re_dfastate_t **dst,
+ re_dfastate_t **src, Idx num)
+ internal_function;
+static re_dfastate_t *find_recover_state (reg_errcode_t *err,
+ re_match_context_t *mctx) internal_function;
+static re_dfastate_t *transit_state (reg_errcode_t *err,
+ re_match_context_t *mctx,
+ re_dfastate_t *state) internal_function;
+static re_dfastate_t *merge_state_with_log (reg_errcode_t *err,
+ re_match_context_t *mctx,
+ re_dfastate_t *next_state)
+ internal_function;
+static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx,
+ re_node_set *cur_nodes,
+ Idx str_idx) internal_function;
+#if 0
+static re_dfastate_t *transit_state_sb (reg_errcode_t *err,
+ re_match_context_t *mctx,
+ re_dfastate_t *pstate)
+ internal_function;
+#endif
+#ifdef RE_ENABLE_I18N
+static reg_errcode_t transit_state_mb (re_match_context_t *mctx,
+ re_dfastate_t *pstate)
+ internal_function;
+#endif /* RE_ENABLE_I18N */
+static reg_errcode_t transit_state_bkref (re_match_context_t *mctx,
+ const re_node_set *nodes)
+ internal_function;
+static reg_errcode_t get_subexp (re_match_context_t *mctx,
+ Idx bkref_node, Idx bkref_str_idx)
+ internal_function;
+static reg_errcode_t get_subexp_sub (re_match_context_t *mctx,
+ const re_sub_match_top_t *sub_top,
+ re_sub_match_last_t *sub_last,
+ Idx bkref_node, Idx bkref_str)
+ internal_function;
+static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
+ Idx subexp_idx, int type) internal_function;
+static reg_errcode_t 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) internal_function;
+static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx,
+ Idx str_idx,
+ re_node_set *cur_nodes,
+ re_node_set *next_nodes)
+ internal_function;
+static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa,
+ re_node_set *cur_nodes,
+ Idx ex_subexp, int type)
+ internal_function;
+static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa,
+ re_node_set *dst_nodes,
+ Idx target, Idx ex_subexp,
+ int type) internal_function;
+static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx,
+ re_node_set *cur_nodes, Idx cur_str,
+ Idx subexp_num, int type)
+ internal_function;
+static bool build_trtable (const re_dfa_t *dfa,
+ re_dfastate_t *state) internal_function;
+#ifdef RE_ENABLE_I18N
+static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
+ const re_string_t *input, Idx idx)
+ internal_function;
+# ifdef _LIBC
+static unsigned int find_collation_sequence_value (const unsigned char *mbs,
+ size_t name_len)
+ internal_function;
+# endif /* _LIBC */
+#endif /* RE_ENABLE_I18N */
+static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa,
+ const re_dfastate_t *state,
+ re_node_set *states_node,
+ bitset_t *states_ch) internal_function;
+static bool check_node_accept (const re_match_context_t *mctx,
+ const re_token_t *node, Idx idx)
+ internal_function;
+static reg_errcode_t extend_buffers (re_match_context_t *mctx)
+ internal_function;
+
+/* Entry point for POSIX code. */
+
+/* regexec searches for a given pattern, specified by PREG, in the
+ string STRING.
+
+ If NMATCH is zero or REG_NOSUB was set in the cflags argument to
+ 'regcomp', we ignore PMATCH. Otherwise, we assume PMATCH has at
+ least NMATCH elements, and we set them to the offsets of the
+ corresponding matched substrings.
+
+ EFLAGS specifies "execution flags" which affect matching: if
+ REG_NOTBOL is set, then ^ does not match at the beginning of the
+ string; if REG_NOTEOL is set, then $ does not match at the end.
+
+ We return 0 if we find a match and REG_NOMATCH if not. */
+
+int
+regexec (preg, string, nmatch, pmatch, eflags)
+ const regex_t *_Restrict_ preg;
+ const char *_Restrict_ string;
+ size_t nmatch;
+ regmatch_t pmatch[_Restrict_arr_];
+ int eflags;
+{
+ reg_errcode_t err;
+ Idx start, length;
+#ifdef _LIBC
+ re_dfa_t *dfa = (re_dfa_t *) preg->buffer;
+#endif
+
+ if (eflags & ~(REG_NOTBOL | REG_NOTEOL | REG_STARTEND))
+ return REG_BADPAT;
+
+ if (eflags & REG_STARTEND)
+ {
+ start = pmatch[0].rm_so;
+ length = pmatch[0].rm_eo;
+ }
+ else
+ {
+ start = 0;
+ length = strlen (string);
+ }
+
+ __libc_lock_lock (dfa->lock);
+ if (preg->no_sub)
+ err = re_search_internal (preg, string, length, start, length,
+ length, 0, NULL, eflags);
+ else
+ err = re_search_internal (preg, string, length, start, length,
+ length, nmatch, pmatch, eflags);
+ __libc_lock_unlock (dfa->lock);
+ return err != REG_NOERROR;
+}
+
+#ifdef _LIBC
+# include <shlib-compat.h>
+versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4);
+
+# if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
+__typeof__ (__regexec) __compat_regexec;
+
+int
+attribute_compat_text_section
+__compat_regexec (const regex_t *_Restrict_ preg,
+ const char *_Restrict_ string, size_t nmatch,
+ regmatch_t pmatch[], int eflags)
+{
+ return regexec (preg, string, nmatch, pmatch,
+ eflags & (REG_NOTBOL | REG_NOTEOL));
+}
+compat_symbol (libc, __compat_regexec, regexec, GLIBC_2_0);
+# endif
+#endif
+
+/* Entry points for GNU code. */
+
+/* re_match, re_search, re_match_2, re_search_2
+
+ The former two functions operate on STRING with length LENGTH,
+ while the later two operate on concatenation of STRING1 and STRING2
+ with lengths LENGTH1 and LENGTH2, respectively.
+
+ re_match() matches the compiled pattern in BUFP against the string,
+ starting at index START.
+
+ re_search() first tries matching at index START, then it tries to match
+ starting from index START + 1, and so on. The last start position tried
+ is START + RANGE. (Thus RANGE = 0 forces re_search to operate the same
+ way as re_match().)
+
+ The parameter STOP of re_{match,search}_2 specifies that no match exceeding
+ the first STOP characters of the concatenation of the strings should be
+ concerned.
+
+ If REGS is not NULL, and BUFP->no_sub is not set, the offsets of the match
+ and all groups is stored in REGS. (For the "_2" variants, the offsets are
+ computed relative to the concatenation, not relative to the individual
+ strings.)
+
+ On success, re_match* functions return the length of the match, re_search*
+ return the position of the start of the match. Return value -1 means no
+ match was found and -2 indicates an internal error. */
+
+regoff_t
+re_match (bufp, string, length, start, regs)
+ struct re_pattern_buffer *bufp;
+ const char *string;
+ Idx length, start;
+ struct re_registers *regs;
+{
+ return re_search_stub (bufp, string, length, start, 0, length, regs, true);
+}
+#ifdef _LIBC
+weak_alias (__re_match, re_match)
+#endif
+
+regoff_t
+re_search (bufp, string, length, start, range, regs)
+ struct re_pattern_buffer *bufp;
+ const char *string;
+ Idx length, start;
+ regoff_t range;
+ struct re_registers *regs;
+{
+ return re_search_stub (bufp, string, length, start, range, length, regs,
+ false);
+}
+#ifdef _LIBC
+weak_alias (__re_search, re_search)
+#endif
+
+regoff_t
+re_match_2 (bufp, string1, length1, string2, length2, start, regs, stop)
+ struct re_pattern_buffer *bufp;
+ const char *string1, *string2;
+ Idx length1, length2, start, stop;
+ struct re_registers *regs;
+{
+ return re_search_2_stub (bufp, string1, length1, string2, length2,
+ start, 0, regs, stop, true);
+}
+#ifdef _LIBC
+weak_alias (__re_match_2, re_match_2)
+#endif
+
+regoff_t
+re_search_2 (bufp, string1, length1, string2, length2, start, range, regs, stop)
+ struct re_pattern_buffer *bufp;
+ const char *string1, *string2;
+ Idx length1, length2, start, stop;
+ regoff_t range;
+ struct re_registers *regs;
+{
+ return re_search_2_stub (bufp, string1, length1, string2, length2,
+ start, range, regs, stop, false);
+}
+#ifdef _LIBC
+weak_alias (__re_search_2, re_search_2)
+#endif
+
+static regoff_t
+internal_function
+re_search_2_stub (struct re_pattern_buffer *bufp,
+ const char *string1, Idx length1,
+ const char *string2, Idx length2,
+ Idx start, regoff_t range, struct re_registers *regs,
+ Idx stop, bool ret_len)
+{
+ const char *str;
+ regoff_t rval;
+ Idx len = length1 + length2;
+ char *s = NULL;
+
+ if (BE (length1 < 0 || length2 < 0 || stop < 0 || len < length1, 0))
+ return -2;
+
+ /* Concatenate the strings. */
+ if (length2 > 0)
+ if (length1 > 0)
+ {
+ s = re_malloc (char, len);
+
+ if (BE (s == NULL, 0))
+ return -2;
+#ifdef _LIBC
+ memcpy (__mempcpy (s, string1, length1), string2, length2);
+#else
+ memcpy (s, string1, length1);
+ memcpy (s + length1, string2, length2);
+#endif
+ str = s;
+ }
+ else
+ str = string2;
+ else
+ str = string1;
+
+ rval = re_search_stub (bufp, str, len, start, range, stop, regs,
+ ret_len);
+ re_free (s);
+ return rval;
+}
+
+/* The parameters have the same meaning as those of re_search.
+ Additional parameters:
+ If RET_LEN is true the length of the match is returned (re_match style);
+ otherwise the position of the match is returned. */
+
+static regoff_t
+internal_function
+re_search_stub (struct re_pattern_buffer *bufp,
+ const char *string, Idx length,
+ Idx start, regoff_t range, Idx stop, struct re_registers *regs,
+ bool ret_len)
+{
+ reg_errcode_t result;
+ regmatch_t *pmatch;
+ Idx nregs;
+ regoff_t rval;
+ int eflags = 0;
+#ifdef _LIBC
+ re_dfa_t *dfa = (re_dfa_t *) bufp->buffer;
+#endif
+ Idx last_start = start + range;
+
+ /* Check for out-of-range. */
+ if (BE (start < 0 || start > length, 0))
+ return -1;
+ if (BE (length < last_start || (0 <= range && last_start < start), 0))
+ last_start = length;
+ else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0))
+ last_start = 0;
+
+ __libc_lock_lock (dfa->lock);
+
+ eflags |= (bufp->not_bol) ? REG_NOTBOL : 0;
+ eflags |= (bufp->not_eol) ? REG_NOTEOL : 0;
+
+ /* Compile fastmap if we haven't yet. */
+ if (start < last_start && bufp->fastmap != NULL && !bufp->fastmap_accurate)
+ re_compile_fastmap (bufp);
+
+ if (BE (bufp->no_sub, 0))
+ regs = NULL;
+
+ /* We need at least 1 register. */
+ if (regs == NULL)
+ nregs = 1;
+ else if (BE (bufp->regs_allocated == REGS_FIXED
+ && regs->num_regs <= bufp->re_nsub, 0))
+ {
+ nregs = regs->num_regs;
+ if (BE (nregs < 1, 0))
+ {
+ /* Nothing can be copied to regs. */
+ regs = NULL;
+ nregs = 1;
+ }
+ }
+ else
+ nregs = bufp->re_nsub + 1;
+ pmatch = re_malloc (regmatch_t, nregs);
+ if (BE (pmatch == NULL, 0))
+ {
+ rval = -2;
+ goto out;
+ }
+
+ result = re_search_internal (bufp, string, length, start, last_start, stop,
+ nregs, pmatch, eflags);
+
+ rval = 0;
+
+ /* I hope we needn't fill ther regs with -1's when no match was found. */
+ if (result != REG_NOERROR)
+ rval = -1;
+ else if (regs != NULL)
+ {
+ /* If caller wants register contents data back, copy them. */
+ bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs,
+ bufp->regs_allocated);
+ if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0))
+ rval = -2;
+ }
+
+ if (BE (rval == 0, 1))
+ {
+ if (ret_len)
+ {
+ assert (pmatch[0].rm_so == start);
+ rval = pmatch[0].rm_eo - start;
+ }
+ else
+ rval = pmatch[0].rm_so;
+ }
+ re_free (pmatch);
+ out:
+ __libc_lock_unlock (dfa->lock);
+ return rval;
+}
+
+static unsigned int
+internal_function
+re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs,
+ int regs_allocated)
+{
+ int rval = REGS_REALLOCATE;
+ Idx i;
+ Idx need_regs = nregs + 1;
+ /* We need one extra element beyond 'num_regs' for the '-1' marker GNU code
+ uses. */
+
+ /* Have the register data arrays been allocated? */
+ if (regs_allocated == REGS_UNALLOCATED)
+ { /* No. So allocate them with malloc. */
+ regs->start = re_malloc (regoff_t, need_regs);
+ if (BE (regs->start == NULL, 0))
+ return REGS_UNALLOCATED;
+ regs->end = re_malloc (regoff_t, need_regs);
+ if (BE (regs->end == NULL, 0))
+ {
+ re_free (regs->start);
+ return REGS_UNALLOCATED;
+ }
+ regs->num_regs = need_regs;
+ }
+ else if (regs_allocated == REGS_REALLOCATE)
+ { /* Yes. If we need more elements than were already
+ allocated, reallocate them. If we need fewer, just
+ leave it alone. */
+ if (BE (need_regs > regs->num_regs, 0))
+ {
+ regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs);
+ regoff_t *new_end;
+ if (BE (new_start == NULL, 0))
+ return REGS_UNALLOCATED;
+ new_end = re_realloc (regs->end, regoff_t, need_regs);
+ if (BE (new_end == NULL, 0))
+ {
+ re_free (new_start);
+ return REGS_UNALLOCATED;
+ }
+ regs->start = new_start;
+ regs->end = new_end;
+ regs->num_regs = need_regs;
+ }
+ }
+ else
+ {
+ assert (regs_allocated == REGS_FIXED);
+ /* This function may not be called with REGS_FIXED and nregs too big. */
+ assert (regs->num_regs >= nregs);
+ rval = REGS_FIXED;
+ }
+
+ /* Copy the regs. */
+ for (i = 0; i < nregs; ++i)
+ {
+ regs->start[i] = pmatch[i].rm_so;
+ regs->end[i] = pmatch[i].rm_eo;
+ }
+ for ( ; i < regs->num_regs; ++i)
+ regs->start[i] = regs->end[i] = -1;
+
+ return rval;
+}
+
+/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
+ ENDS. Subsequent matches using PATTERN_BUFFER and REGS will use
+ this memory for recording register information. STARTS and ENDS
+ must be allocated using the malloc library routine, and must each
+ be at least NUM_REGS * sizeof (regoff_t) bytes long.
+
+ If NUM_REGS == 0, then subsequent matches should allocate their own
+ register data.
+
+ Unless this function is called, the first search or match using
+ PATTERN_BUFFER will allocate its own register data, without
+ freeing the old data. */
+
+void
+re_set_registers (bufp, regs, num_regs, starts, ends)
+ struct re_pattern_buffer *bufp;
+ struct re_registers *regs;
+ __re_size_t num_regs;
+ regoff_t *starts, *ends;
+{
+ if (num_regs)
+ {
+ bufp->regs_allocated = REGS_REALLOCATE;
+ regs->num_regs = num_regs;
+ regs->start = starts;
+ regs->end = ends;
+ }
+ else
+ {
+ bufp->regs_allocated = REGS_UNALLOCATED;
+ regs->num_regs = 0;
+ regs->start = regs->end = NULL;
+ }
+}
+#ifdef _LIBC
+weak_alias (__re_set_registers, re_set_registers)
+#endif
+
+/* Entry points compatible with 4.2 BSD regex library. We don't define
+ them unless specifically requested. */
+
+#if defined _REGEX_RE_COMP || defined _LIBC
+int
+# ifdef _LIBC
+weak_function
+# endif
+re_exec (s)
+ const char *s;
+{
+ return 0 == regexec (&re_comp_buf, s, 0, NULL, 0);
+}
+#endif /* _REGEX_RE_COMP */
+
+/* Internal entry point. */
+
+/* Searches for a compiled pattern PREG in the string STRING, whose
+ length is LENGTH. NMATCH, PMATCH, and EFLAGS have the same
+ meaning as with regexec. LAST_START is START + RANGE, where
+ START and RANGE have the same meaning as with re_search.
+ Return REG_NOERROR if we find a match, and REG_NOMATCH if not,
+ otherwise return the error code.
+ Note: We assume front end functions already check ranges.
+ (0 <= LAST_START && LAST_START <= LENGTH) */
+
+static reg_errcode_t
+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,
+ size_t nmatch, regmatch_t pmatch[],
+ int eflags)
+{
+ reg_errcode_t err;
+ const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer;
+ Idx left_lim, right_lim;
+ int incr;
+ bool fl_longest_match;
+ int match_kind;
+ Idx match_first;
+ Idx match_last = REG_MISSING;
+ Idx extra_nmatch;
+ bool sb;
+ int ch;
+#if defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)
+ re_match_context_t mctx = { .dfa = dfa };
+#else
+ re_match_context_t mctx;
+#endif
+ char *fastmap = ((preg->fastmap != NULL && preg->fastmap_accurate
+ && start != last_start && !preg->can_be_null)
+ ? preg->fastmap : NULL);
+ RE_TRANSLATE_TYPE t = preg->translate;
+
+#if !(defined _LIBC || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L))
+ memset (&mctx, '\0', sizeof (re_match_context_t));
+ mctx.dfa = dfa;
+#endif
+
+ extra_nmatch = (nmatch > preg->re_nsub) ? nmatch - (preg->re_nsub + 1) : 0;
+ nmatch -= extra_nmatch;
+
+ /* Check if the DFA haven't been compiled. */
+ if (BE (preg->used == 0 || dfa->init_state == NULL
+ || dfa->init_state_word == NULL || dfa->init_state_nl == NULL
+ || dfa->init_state_begbuf == NULL, 0))
+ return REG_NOMATCH;
+
+#ifdef DEBUG
+ /* We assume front-end functions already check them. */
+ assert (0 <= last_start && last_start <= length);
+#endif
+
+ /* If initial states with non-begbuf contexts have no elements,
+ the regex must be anchored. If preg->newline_anchor is set,
+ we'll never use init_state_nl, so do not check it. */
+ if (dfa->init_state->nodes.nelem == 0
+ && dfa->init_state_word->nodes.nelem == 0
+ && (dfa->init_state_nl->nodes.nelem == 0
+ || !preg->newline_anchor))
+ {
+ if (start != 0 && last_start != 0)
+ return REG_NOMATCH;
+ start = last_start = 0;
+ }
+
+ /* We must check the longest matching, if nmatch > 0. */
+ fl_longest_match = (nmatch != 0 || dfa->nbackref);
+
+ err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1,
+ preg->translate, (preg->syntax & RE_ICASE) != 0,
+ dfa);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+ mctx.input.stop = stop;
+ mctx.input.raw_stop = stop;
+ mctx.input.newline_anchor = preg->newline_anchor;
+
+ err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+
+ /* We will log all the DFA states through which the dfa pass,
+ if nmatch > 1, or this dfa has "multibyte node", which is a
+ back-reference or a node which can accept multibyte character or
+ multi character collating element. */
+ if (nmatch > 1 || dfa->has_mb_node)
+ {
+ /* Avoid overflow. */
+ if (BE (SIZE_MAX / sizeof (re_dfastate_t *) <= mctx.input.bufs_len, 0))
+ {
+ err = REG_ESPACE;
+ goto free_return;
+ }
+
+ mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1);
+ if (BE (mctx.state_log == NULL, 0))
+ {
+ err = REG_ESPACE;
+ goto free_return;
+ }
+ }
+ else
+ mctx.state_log = NULL;
+
+ match_first = start;
+ mctx.input.tip_context = (eflags & REG_NOTBOL) ? CONTEXT_BEGBUF
+ : CONTEXT_NEWLINE | CONTEXT_BEGBUF;
+
+ /* Check incrementally whether of not the input string match. */
+ incr = (last_start < start) ? -1 : 1;
+ left_lim = (last_start < start) ? last_start : start;
+ right_lim = (last_start < start) ? start : last_start;
+ sb = dfa->mb_cur_max == 1;
+ match_kind =
+ (fastmap
+ ? ((sb || !(preg->syntax & RE_ICASE || t) ? 4 : 0)
+ | (start <= last_start ? 2 : 0)
+ | (t != NULL ? 1 : 0))
+ : 8);
+
+ for (;; match_first += incr)
+ {
+ err = REG_NOMATCH;
+ if (match_first < left_lim || right_lim < match_first)
+ goto free_return;
+
+ /* Advance as rapidly as possible through the string, until we
+ find a plausible place to start matching. This may be done
+ with varying efficiency, so there are various possibilities:
+ only the most common of them are specialized, in order to
+ save on code size. We use a switch statement for speed. */
+ switch (match_kind)
+ {
+ case 8:
+ /* No fastmap. */
+ break;
+
+ case 7:
+ /* Fastmap with single-byte translation, match forward. */
+ while (BE (match_first < right_lim, 1)
+ && !fastmap[t[(unsigned char) string[match_first]]])
+ ++match_first;
+ goto forward_match_found_start_or_reached_end;
+
+ case 6:
+ /* Fastmap without translation, match forward. */
+ while (BE (match_first < right_lim, 1)
+ && !fastmap[(unsigned char) string[match_first]])
+ ++match_first;
+
+ forward_match_found_start_or_reached_end:
+ if (BE (match_first == right_lim, 0))
+ {
+ ch = match_first >= length
+ ? 0 : (unsigned char) string[match_first];
+ if (!fastmap[t ? t[ch] : ch])
+ goto free_return;
+ }
+ break;
+
+ case 4:
+ case 5:
+ /* Fastmap without multi-byte translation, match backwards. */
+ while (match_first >= left_lim)
+ {
+ ch = match_first >= length
+ ? 0 : (unsigned char) string[match_first];
+ if (fastmap[t ? t[ch] : ch])
+ break;
+ --match_first;
+ }
+ if (match_first < left_lim)
+ goto free_return;
+ break;
+
+ default:
+ /* In this case, we can't determine easily the current byte,
+ since it might be a component byte of a multibyte
+ character. Then we use the constructed buffer instead. */
+ for (;;)
+ {
+ /* If MATCH_FIRST is out of the valid range, reconstruct the
+ buffers. */
+ __re_size_t offset = match_first - mctx.input.raw_mbs_idx;
+ if (BE (offset >= (__re_size_t) mctx.input.valid_raw_len, 0))
+ {
+ err = re_string_reconstruct (&mctx.input, match_first,
+ eflags);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+
+ offset = match_first - mctx.input.raw_mbs_idx;
+ }
+ /* If MATCH_FIRST is out of the buffer, leave it as '\0'.
+ Note that MATCH_FIRST must not be smaller than 0. */
+ ch = (match_first >= length
+ ? 0 : re_string_byte_at (&mctx.input, offset));
+ if (fastmap[ch])
+ break;
+ match_first += incr;
+ if (match_first < left_lim || match_first > right_lim)
+ {
+ err = REG_NOMATCH;
+ goto free_return;
+ }
+ }
+ break;
+ }
+
+ /* Reconstruct the buffers so that the matcher can assume that
+ the matching starts from the beginning of the buffer. */
+ err = re_string_reconstruct (&mctx.input, match_first, eflags);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+
+#ifdef RE_ENABLE_I18N
+ /* Don't consider this char as a possible match start if it part,
+ yet isn't the head, of a multibyte character. */
+ if (!sb && !re_string_first_byte (&mctx.input, 0))
+ continue;
+#endif
+
+ /* It seems to be appropriate one, then use the matcher. */
+ /* We assume that the matching starts from 0. */
+ mctx.state_log_top = mctx.nbkref_ents = mctx.max_mb_elem_len = 0;
+ match_last = check_matching (&mctx, fl_longest_match,
+ start <= last_start ? &match_first : NULL);
+ if (match_last != REG_MISSING)
+ {
+ if (BE (match_last == REG_ERROR, 0))
+ {
+ err = REG_ESPACE;
+ goto free_return;
+ }
+ else
+ {
+ mctx.match_last = match_last;
+ if ((!preg->no_sub && nmatch > 1) || dfa->nbackref)
+ {
+ re_dfastate_t *pstate = mctx.state_log[match_last];
+ mctx.last_node = check_halt_state_context (&mctx, pstate,
+ match_last);
+ }
+ if ((!preg->no_sub && nmatch > 1 && dfa->has_plural_match)
+ || dfa->nbackref)
+ {
+ err = prune_impossible_nodes (&mctx);
+ if (err == REG_NOERROR)
+ break;
+ if (BE (err != REG_NOMATCH, 0))
+ goto free_return;
+ match_last = REG_MISSING;
+ }
+ else
+ break; /* We found a match. */
+ }
+ }
+
+ match_ctx_clean (&mctx);
+ }
+
+#ifdef DEBUG
+ assert (match_last != REG_MISSING);
+ assert (err == REG_NOERROR);
+#endif
+
+ /* Set pmatch[] if we need. */
+ if (nmatch > 0)
+ {
+ Idx reg_idx;
+
+ /* Initialize registers. */
+ for (reg_idx = 1; reg_idx < nmatch; ++reg_idx)
+ pmatch[reg_idx].rm_so = pmatch[reg_idx].rm_eo = -1;
+
+ /* Set the points where matching start/end. */
+ pmatch[0].rm_so = 0;
+ pmatch[0].rm_eo = mctx.match_last;
+ /* FIXME: This function should fail if mctx.match_last exceeds
+ the maximum possible regoff_t value. We need a new error
+ code REG_OVERFLOW. */
+
+ if (!preg->no_sub && nmatch > 1)
+ {
+ err = set_regs (preg, &mctx, nmatch, pmatch,
+ dfa->has_plural_match && dfa->nbackref > 0);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+ }
+
+ /* At last, add the offset to the each registers, since we slided
+ the buffers so that we could assume that the matching starts
+ from 0. */
+ for (reg_idx = 0; reg_idx < nmatch; ++reg_idx)
+ if (pmatch[reg_idx].rm_so != -1)
+ {
+#ifdef RE_ENABLE_I18N
+ if (BE (mctx.input.offsets_needed != 0, 0))
+ {
+ pmatch[reg_idx].rm_so =
+ (pmatch[reg_idx].rm_so == mctx.input.valid_len
+ ? mctx.input.valid_raw_len
+ : mctx.input.offsets[pmatch[reg_idx].rm_so]);
+ pmatch[reg_idx].rm_eo =
+ (pmatch[reg_idx].rm_eo == mctx.input.valid_len
+ ? mctx.input.valid_raw_len
+ : mctx.input.offsets[pmatch[reg_idx].rm_eo]);
+ }
+#else
+ assert (mctx.input.offsets_needed == 0);
+#endif
+ pmatch[reg_idx].rm_so += match_first;
+ pmatch[reg_idx].rm_eo += match_first;
+ }
+ for (reg_idx = 0; reg_idx < extra_nmatch; ++reg_idx)
+ {
+ pmatch[nmatch + reg_idx].rm_so = -1;
+ pmatch[nmatch + reg_idx].rm_eo = -1;
+ }
+
+ 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;
+ }
+ }
+
+ free_return:
+ re_free (mctx.state_log);
+ if (dfa->nbackref)
+ match_ctx_free (&mctx);
+ re_string_destruct (&mctx.input);
+ return err;
+}
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+prune_impossible_nodes (re_match_context_t *mctx)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ Idx halt_node, match_last;
+ reg_errcode_t ret;
+ re_dfastate_t **sifted_states;
+ re_dfastate_t **lim_states = NULL;
+ re_sift_context_t sctx;
+#ifdef DEBUG
+ assert (mctx->state_log != NULL);
+#endif
+ match_last = mctx->match_last;
+ halt_node = mctx->last_node;
+
+ /* Avoid overflow. */
+ if (BE (SIZE_MAX / sizeof (re_dfastate_t *) <= match_last, 0))
+ return REG_ESPACE;
+
+ sifted_states = re_malloc (re_dfastate_t *, match_last + 1);
+ if (BE (sifted_states == NULL, 0))
+ {
+ ret = REG_ESPACE;
+ goto free_return;
+ }
+ if (dfa->nbackref)
+ {
+ lim_states = re_malloc (re_dfastate_t *, match_last + 1);
+ if (BE (lim_states == NULL, 0))
+ {
+ ret = REG_ESPACE;
+ goto free_return;
+ }
+ while (1)
+ {
+ memset (lim_states, '\0',
+ sizeof (re_dfastate_t *) * (match_last + 1));
+ sift_ctx_init (&sctx, sifted_states, lim_states, halt_node,
+ match_last);
+ ret = sift_states_backward (mctx, &sctx);
+ re_node_set_free (&sctx.limits);
+ if (BE (ret != REG_NOERROR, 0))
+ goto free_return;
+ if (sifted_states[0] != NULL || lim_states[0] != NULL)
+ break;
+ do
+ {
+ --match_last;
+ if (! REG_VALID_INDEX (match_last))
+ {
+ ret = REG_NOMATCH;
+ goto free_return;
+ }
+ } while (mctx->state_log[match_last] == NULL
+ || !mctx->state_log[match_last]->halt);
+ halt_node = check_halt_state_context (mctx,
+ mctx->state_log[match_last],
+ match_last);
+ }
+ ret = merge_state_array (dfa, sifted_states, lim_states,
+ match_last + 1);
+ re_free (lim_states);
+ lim_states = NULL;
+ if (BE (ret != REG_NOERROR, 0))
+ goto free_return;
+ }
+ else
+ {
+ sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last);
+ ret = sift_states_backward (mctx, &sctx);
+ re_node_set_free (&sctx.limits);
+ if (BE (ret != REG_NOERROR, 0))
+ goto free_return;
+ if (sifted_states[0] == NULL)
+ {
+ ret = REG_NOMATCH;
+ goto free_return;
+ }
+ }
+ re_free (mctx->state_log);
+ mctx->state_log = sifted_states;
+ sifted_states = NULL;
+ mctx->last_node = halt_node;
+ mctx->match_last = match_last;
+ ret = REG_NOERROR;
+ free_return:
+ re_free (sifted_states);
+ re_free (lim_states);
+ return ret;
+}
+
+/* Acquire an initial state and return it.
+ We must select appropriate initial state depending on the context,
+ since initial states may have constraints like "\<", "^", etc.. */
+
+static inline re_dfastate_t *
+__attribute ((always_inline)) internal_function
+acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx,
+ Idx idx)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ if (dfa->init_state->has_constraint)
+ {
+ unsigned int context;
+ context = re_string_context_at (&mctx->input, idx - 1, mctx->eflags);
+ if (IS_WORD_CONTEXT (context))
+ return dfa->init_state_word;
+ else if (IS_ORDINARY_CONTEXT (context))
+ return dfa->init_state;
+ else if (IS_BEGBUF_CONTEXT (context) && IS_NEWLINE_CONTEXT (context))
+ return dfa->init_state_begbuf;
+ else if (IS_NEWLINE_CONTEXT (context))
+ return dfa->init_state_nl;
+ else if (IS_BEGBUF_CONTEXT (context))
+ {
+ /* It is relatively rare case, then calculate on demand. */
+ return re_acquire_state_context (err, dfa,
+ dfa->init_state->entrance_nodes,
+ context);
+ }
+ else
+ /* Must not happen? */
+ return dfa->init_state;
+ }
+ else
+ return dfa->init_state;
+}
+
+/* Check whether the regular expression match input string INPUT or not,
+ and return the index where the matching end. Return REG_MISSING if
+ there is no match, and return REG_ERROR in case of an error.
+ FL_LONGEST_MATCH means we want the POSIX longest matching.
+ If P_MATCH_FIRST is not NULL, and the match fails, it is set to the
+ next place where we may want to try matching.
+ Note that the matcher assume that the maching starts from the current
+ index of the buffer. */
+
+static Idx
+internal_function __attribute_warn_unused_result__
+check_matching (re_match_context_t *mctx, bool fl_longest_match,
+ Idx *p_match_first)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ reg_errcode_t err;
+ Idx match = 0;
+ Idx match_last = REG_MISSING;
+ Idx cur_str_idx = re_string_cur_idx (&mctx->input);
+ re_dfastate_t *cur_state;
+ bool at_init_state = p_match_first != NULL;
+ Idx next_start_idx = cur_str_idx;
+
+ err = REG_NOERROR;
+ cur_state = acquire_init_state_context (&err, mctx, cur_str_idx);
+ /* An initial state must not be NULL (invalid). */
+ if (BE (cur_state == NULL, 0))
+ {
+ assert (err == REG_ESPACE);
+ return REG_ERROR;
+ }
+
+ if (mctx->state_log != NULL)
+ {
+ mctx->state_log[cur_str_idx] = cur_state;
+
+ /* Check OP_OPEN_SUBEXP in the initial state in case that we use them
+ later. E.g. Processing back references. */
+ if (BE (dfa->nbackref, 0))
+ {
+ at_init_state = false;
+ err = check_subexp_matching_top (mctx, &cur_state->nodes, 0);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+
+ if (cur_state->has_backref)
+ {
+ err = transit_state_bkref (mctx, &cur_state->nodes);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ }
+ }
+
+ /* If the RE accepts NULL string. */
+ if (BE (cur_state->halt, 0))
+ {
+ if (!cur_state->has_constraint
+ || check_halt_state_context (mctx, cur_state, cur_str_idx))
+ {
+ if (!fl_longest_match)
+ return cur_str_idx;
+ else
+ {
+ match_last = cur_str_idx;
+ match = 1;
+ }
+ }
+ }
+
+ while (!re_string_eoi (&mctx->input))
+ {
+ re_dfastate_t *old_state = cur_state;
+ 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))
+ {
+ assert (err == REG_ESPACE);
+ return REG_ERROR;
+ }
+ }
+
+ cur_state = transit_state (&err, mctx, cur_state);
+ if (mctx->state_log != NULL)
+ cur_state = merge_state_with_log (&err, mctx, cur_state);
+
+ if (cur_state == NULL)
+ {
+ /* Reached the invalid state or an error. Try to recover a valid
+ state using the state log, if available and if we have not
+ already found a valid (even if not the longest) match. */
+ if (BE (err != REG_NOERROR, 0))
+ return REG_ERROR;
+
+ if (mctx->state_log == NULL
+ || (match && !fl_longest_match)
+ || (cur_state = find_recover_state (&err, mctx)) == NULL)
+ break;
+ }
+
+ if (BE (at_init_state, 0))
+ {
+ if (old_state == cur_state)
+ next_start_idx = next_char_idx;
+ else
+ at_init_state = false;
+ }
+
+ if (cur_state->halt)
+ {
+ /* Reached a halt state.
+ Check the halt state can satisfy the current context. */
+ if (!cur_state->has_constraint
+ || check_halt_state_context (mctx, cur_state,
+ re_string_cur_idx (&mctx->input)))
+ {
+ /* We found an appropriate halt state. */
+ match_last = re_string_cur_idx (&mctx->input);
+ match = 1;
+
+ /* We found a match, do not modify match_first below. */
+ p_match_first = NULL;
+ if (!fl_longest_match)
+ break;
+ }
+ }
+ }
+
+ if (p_match_first)
+ *p_match_first += next_start_idx;
+
+ return match_last;
+}
+
+/* Check NODE match the current context. */
+
+static bool
+internal_function
+check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context)
+{
+ re_token_type_t type = dfa->nodes[node].type;
+ unsigned int constraint = dfa->nodes[node].constraint;
+ if (type != END_OF_RE)
+ return false;
+ if (!constraint)
+ return true;
+ if (NOT_SATISFY_NEXT_CONSTRAINT (constraint, context))
+ return false;
+ return true;
+}
+
+/* Check the halt state STATE match the current context.
+ Return 0 if not match, if the node, STATE has, is a halt node and
+ match the context, return the node. */
+
+static Idx
+internal_function
+check_halt_state_context (const re_match_context_t *mctx,
+ const re_dfastate_t *state, Idx idx)
+{
+ Idx i;
+ unsigned int context;
+#ifdef DEBUG
+ assert (state->halt);
+#endif
+ context = re_string_context_at (&mctx->input, idx, mctx->eflags);
+ for (i = 0; i < state->nodes.nelem; ++i)
+ if (check_halt_node_context (mctx->dfa, state->nodes.elems[i], context))
+ return state->nodes.elems[i];
+ return 0;
+}
+
+/* Compute the next node to which "NFA" transit from NODE("NFA" is a NFA
+ corresponding to the DFA).
+ Return the destination node, and update EPS_VIA_NODES;
+ return REG_MISSING in case of errors. */
+
+static Idx
+internal_function
+proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs,
+ Idx *pidx, Idx node, re_node_set *eps_via_nodes,
+ struct re_fail_stack_t *fs)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ Idx i;
+ bool ok;
+ if (IS_EPSILON_NODE (dfa->nodes[node].type))
+ {
+ re_node_set *cur_nodes = &mctx->state_log[*pidx]->nodes;
+ re_node_set *edests = &dfa->edests[node];
+ Idx dest_node;
+ ok = re_node_set_insert (eps_via_nodes, node);
+ if (BE (! ok, 0))
+ return REG_ERROR;
+ /* Pick up a valid destination, or return REG_MISSING if none
+ is found. */
+ for (dest_node = REG_MISSING, i = 0; i < edests->nelem; ++i)
+ {
+ Idx candidate = edests->elems[i];
+ if (!re_node_set_contains (cur_nodes, candidate))
+ continue;
+ if (dest_node == REG_MISSING)
+ dest_node = candidate;
+
+ else
+ {
+ /* In order to avoid infinite loop like "(a*)*", return the second
+ epsilon-transition if the first was already considered. */
+ if (re_node_set_contains (eps_via_nodes, dest_node))
+ 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))
+ return REG_ERROR;
+
+ /* We know we are going to exit. */
+ break;
+ }
+ }
+ return dest_node;
+ }
+ else
+ {
+ Idx naccepted = 0;
+ re_token_type_t type = dfa->nodes[node].type;
+
+#ifdef RE_ENABLE_I18N
+ if (dfa->nodes[node].accept_mb)
+ naccepted = check_node_accept_bytes (dfa, node, &mctx->input, *pidx);
+ else
+#endif /* RE_ENABLE_I18N */
+ if (type == OP_BACK_REF)
+ {
+ Idx subexp_idx = dfa->nodes[node].opr.idx + 1;
+ naccepted = regs[subexp_idx].rm_eo - regs[subexp_idx].rm_so;
+ if (fs != NULL)
+ {
+ if (regs[subexp_idx].rm_so == -1 || regs[subexp_idx].rm_eo == -1)
+ return REG_MISSING;
+ else if (naccepted)
+ {
+ char *buf = (char *) re_string_get_buffer (&mctx->input);
+ if (memcmp (buf + regs[subexp_idx].rm_so, buf + *pidx,
+ naccepted) != 0)
+ return REG_MISSING;
+ }
+ }
+
+ if (naccepted == 0)
+ {
+ Idx dest_node;
+ ok = re_node_set_insert (eps_via_nodes, node);
+ if (BE (! ok, 0))
+ return REG_ERROR;
+ dest_node = dfa->edests[node].elems[0];
+ if (re_node_set_contains (&mctx->state_log[*pidx]->nodes,
+ dest_node))
+ return dest_node;
+ }
+ }
+
+ if (naccepted != 0
+ || check_node_accept (mctx, dfa->nodes + node, *pidx))
+ {
+ Idx dest_node = dfa->nexts[node];
+ *pidx = (naccepted == 0) ? *pidx + 1 : *pidx + naccepted;
+ if (fs && (*pidx > mctx->match_last || mctx->state_log[*pidx] == NULL
+ || !re_node_set_contains (&mctx->state_log[*pidx]->nodes,
+ dest_node)))
+ return REG_MISSING;
+ re_node_set_empty (eps_via_nodes);
+ return dest_node;
+ }
+ }
+ return REG_MISSING;
+}
+
+static reg_errcode_t
+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)
+{
+ reg_errcode_t err;
+ Idx num = fs->num++;
+ if (fs->num == fs->alloc)
+ {
+ struct re_fail_stack_ent_t *new_array;
+ new_array = realloc (fs->stack, (sizeof (struct re_fail_stack_ent_t)
+ * fs->alloc * 2));
+ if (new_array == NULL)
+ return REG_ESPACE;
+ fs->alloc *= 2;
+ fs->stack = new_array;
+ }
+ fs->stack[num].idx = str_idx;
+ fs->stack[num].node = dest_node;
+ fs->stack[num].regs = re_malloc (regmatch_t, nregs);
+ if (fs->stack[num].regs == NULL)
+ return REG_ESPACE;
+ memcpy (fs->stack[num].regs, regs, sizeof (regmatch_t) * nregs);
+ err = re_node_set_init_copy (&fs->stack[num].eps_via_nodes, eps_via_nodes);
+ return err;
+}
+
+static Idx
+internal_function
+pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs,
+ regmatch_t *regs, re_node_set *eps_via_nodes)
+{
+ Idx num = --fs->num;
+ assert (REG_VALID_INDEX (num));
+ *pidx = fs->stack[num].idx;
+ memcpy (regs, fs->stack[num].regs, sizeof (regmatch_t) * nregs);
+ re_node_set_free (eps_via_nodes);
+ re_free (fs->stack[num].regs);
+ *eps_via_nodes = fs->stack[num].eps_via_nodes;
+ return fs->stack[num].node;
+}
+
+/* Set the positions where the subexpressions are starts/ends to registers
+ PMATCH.
+ Note: We assume that pmatch[0] is already set, and
+ pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch. */
+
+static reg_errcode_t
+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)
+{
+ const re_dfa_t *dfa = (const re_dfa_t *) preg->buffer;
+ Idx idx, cur_node;
+ re_node_set eps_via_nodes;
+ struct re_fail_stack_t *fs;
+ struct re_fail_stack_t fs_body = { 0, 2, NULL };
+ regmatch_t *prev_idx_match;
+ bool prev_idx_match_malloced = false;
+
+#ifdef DEBUG
+ assert (nmatch > 1);
+ assert (mctx->state_log != NULL);
+#endif
+ if (fl_backtrack)
+ {
+ fs = &fs_body;
+ fs->stack = re_malloc (struct re_fail_stack_ent_t, fs->alloc);
+ if (fs->stack == NULL)
+ return REG_ESPACE;
+ }
+ else
+ fs = NULL;
+
+ cur_node = dfa->init_node;
+ re_node_set_init_empty (&eps_via_nodes);
+
+ if (__libc_use_alloca (nmatch * sizeof (regmatch_t)))
+ prev_idx_match = (regmatch_t *) alloca (nmatch * sizeof (regmatch_t));
+ else
+ {
+ prev_idx_match = re_malloc (regmatch_t, nmatch);
+ if (prev_idx_match == NULL)
+ {
+ free_fail_stack_return (fs);
+ return REG_ESPACE;
+ }
+ prev_idx_match_malloced = true;
+ }
+ memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch);
+
+ for (idx = pmatch[0].rm_so; idx <= pmatch[0].rm_eo ;)
+ {
+ update_regs (dfa, pmatch, prev_idx_match, cur_node, idx, nmatch);
+
+ if (idx == pmatch[0].rm_eo && cur_node == mctx->last_node)
+ {
+ Idx reg_idx;
+ if (fs)
+ {
+ for (reg_idx = 0; reg_idx < nmatch; ++reg_idx)
+ if (pmatch[reg_idx].rm_so > -1 && pmatch[reg_idx].rm_eo == -1)
+ break;
+ if (reg_idx == nmatch)
+ {
+ re_node_set_free (&eps_via_nodes);
+ if (prev_idx_match_malloced)
+ re_free (prev_idx_match);
+ return free_fail_stack_return (fs);
+ }
+ cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch,
+ &eps_via_nodes);
+ }
+ else
+ {
+ re_node_set_free (&eps_via_nodes);
+ if (prev_idx_match_malloced)
+ re_free (prev_idx_match);
+ return REG_NOERROR;
+ }
+ }
+
+ /* Proceed to next node. */
+ cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node,
+ &eps_via_nodes, fs);
+
+ if (BE (! REG_VALID_INDEX (cur_node), 0))
+ {
+ if (BE (cur_node == REG_ERROR, 0))
+ {
+ re_node_set_free (&eps_via_nodes);
+ if (prev_idx_match_malloced)
+ re_free (prev_idx_match);
+ free_fail_stack_return (fs);
+ return REG_ESPACE;
+ }
+ if (fs)
+ cur_node = pop_fail_stack (fs, &idx, nmatch, pmatch,
+ &eps_via_nodes);
+ else
+ {
+ re_node_set_free (&eps_via_nodes);
+ if (prev_idx_match_malloced)
+ re_free (prev_idx_match);
+ return REG_NOMATCH;
+ }
+ }
+ }
+ re_node_set_free (&eps_via_nodes);
+ if (prev_idx_match_malloced)
+ re_free (prev_idx_match);
+ return free_fail_stack_return (fs);
+}
+
+static reg_errcode_t
+internal_function
+free_fail_stack_return (struct re_fail_stack_t *fs)
+{
+ if (fs)
+ {
+ Idx fs_idx;
+ for (fs_idx = 0; fs_idx < fs->num; ++fs_idx)
+ {
+ re_node_set_free (&fs->stack[fs_idx].eps_via_nodes);
+ re_free (fs->stack[fs_idx].regs);
+ }
+ re_free (fs->stack);
+ }
+ return REG_NOERROR;
+}
+
+static void
+internal_function
+update_regs (const re_dfa_t *dfa, regmatch_t *pmatch,
+ regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch)
+{
+ int type = dfa->nodes[cur_node].type;
+ if (type == OP_OPEN_SUBEXP)
+ {
+ Idx reg_num = dfa->nodes[cur_node].opr.idx + 1;
+
+ /* We are at the first node of this sub expression. */
+ if (reg_num < nmatch)
+ {
+ pmatch[reg_num].rm_so = cur_idx;
+ pmatch[reg_num].rm_eo = -1;
+ }
+ }
+ else if (type == OP_CLOSE_SUBEXP)
+ {
+ Idx reg_num = dfa->nodes[cur_node].opr.idx + 1;
+ if (reg_num < nmatch)
+ {
+ /* We are at the last node of this sub expression. */
+ if (pmatch[reg_num].rm_so < cur_idx)
+ {
+ pmatch[reg_num].rm_eo = cur_idx;
+ /* This is a non-empty match or we are not inside an optional
+ subexpression. Accept this right away. */
+ memcpy (prev_idx_match, pmatch, sizeof (regmatch_t) * nmatch);
+ }
+ else
+ {
+ if (dfa->nodes[cur_node].opt_subexp
+ && prev_idx_match[reg_num].rm_so != -1)
+ /* We transited through an empty match for an optional
+ subexpression, like (a?)*, and this is not the subexp's
+ first match. Copy back the old content of the registers
+ so that matches of an inner subexpression are undone as
+ well, like in ((a?))*. */
+ memcpy (pmatch, prev_idx_match, sizeof (regmatch_t) * nmatch);
+ else
+ /* We completed a subexpression, but it may be part of
+ an optional one, so do not update PREV_IDX_MATCH. */
+ pmatch[reg_num].rm_eo = cur_idx;
+ }
+ }
+ }
+}
+
+/* This function checks the STATE_LOG from the SCTX->last_str_idx to 0
+ and sift the nodes in each states according to the following rules.
+ Updated state_log will be wrote to STATE_LOG.
+
+ Rules: We throw away the Node 'a' in the STATE_LOG[STR_IDX] if...
+ 1. When STR_IDX == MATCH_LAST(the last index in the state_log):
+ If 'a' isn't the LAST_NODE and 'a' can't epsilon transit to
+ the LAST_NODE, we throw away the node 'a'.
+ 2. When 0 <= STR_IDX < MATCH_LAST and 'a' accepts
+ string 's' and transit to 'b':
+ i. If 'b' isn't in the STATE_LOG[STR_IDX+strlen('s')], we throw
+ away the node 'a'.
+ ii. If 'b' is in the STATE_LOG[STR_IDX+strlen('s')] but 'b' is
+ thrown away, we throw away the node 'a'.
+ 3. When 0 <= STR_IDX < MATCH_LAST and 'a' epsilon transit to 'b':
+ i. If 'b' isn't in the STATE_LOG[STR_IDX], we throw away the
+ node 'a'.
+ ii. If 'b' is in the STATE_LOG[STR_IDX] but 'b' is thrown away,
+ we throw away the node 'a'. */
+
+#define STATE_NODE_CONTAINS(state,node) \
+ ((state) != NULL && re_node_set_contains (&(state)->nodes, node))
+
+static reg_errcode_t
+internal_function
+sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx)
+{
+ reg_errcode_t err;
+ int null_cnt = 0;
+ Idx str_idx = sctx->last_str_idx;
+ re_node_set cur_dest;
+
+#ifdef DEBUG
+ assert (mctx->state_log != NULL && mctx->state_log[str_idx] != NULL);
+#endif
+
+ /* Build sifted state_log[str_idx]. It has the nodes which can epsilon
+ transit to the last_node and the last_node itself. */
+ err = re_node_set_init_1 (&cur_dest, sctx->last_node);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+
+ /* Then check each states in the state_log. */
+ while (str_idx > 0)
+ {
+ /* Update counters. */
+ null_cnt = (sctx->sifted_states[str_idx] == NULL) ? null_cnt + 1 : 0;
+ if (null_cnt > mctx->max_mb_elem_len)
+ {
+ memset (sctx->sifted_states, '\0',
+ sizeof (re_dfastate_t *) * str_idx);
+ re_node_set_free (&cur_dest);
+ return REG_NOERROR;
+ }
+ re_node_set_empty (&cur_dest);
+ --str_idx;
+
+ if (mctx->state_log[str_idx])
+ {
+ err = build_sifted_states (mctx, sctx, str_idx, &cur_dest);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+ }
+
+ /* Add all the nodes which satisfy the following conditions:
+ - It can epsilon transit to a node in CUR_DEST.
+ - It is in CUR_SRC.
+ And update state_log. */
+ err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+ }
+ err = REG_NOERROR;
+ free_return:
+ re_node_set_free (&cur_dest);
+ return err;
+}
+
+static reg_errcode_t
+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)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ const re_node_set *cur_src = &mctx->state_log[str_idx]->non_eps_nodes;
+ Idx i;
+
+ /* Then build the next sifted state.
+ We build the next sifted state on 'cur_dest', and update
+ 'sifted_states[str_idx]' with 'cur_dest'.
+ Note:
+ 'cur_dest' is the sifted state from 'state_log[str_idx + 1]'.
+ 'cur_src' points the node_set of the old 'state_log[str_idx]'
+ (with the epsilon nodes pre-filtered out). */
+ for (i = 0; i < cur_src->nelem; i++)
+ {
+ Idx prev_node = cur_src->elems[i];
+ int naccepted = 0;
+ bool ok;
+
+#ifdef DEBUG
+ re_token_type_t type = dfa->nodes[prev_node].type;
+ assert (!IS_EPSILON_NODE (type));
+#endif
+#ifdef RE_ENABLE_I18N
+ /* If the node may accept "multi byte". */
+ if (dfa->nodes[prev_node].accept_mb)
+ naccepted = sift_states_iter_mb (mctx, sctx, prev_node,
+ str_idx, sctx->last_str_idx);
+#endif /* RE_ENABLE_I18N */
+
+ /* We don't check backreferences here.
+ See update_cur_sifted_state(). */
+ if (!naccepted
+ && check_node_accept (mctx, dfa->nodes + prev_node, str_idx)
+ && STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + 1],
+ dfa->nexts[prev_node]))
+ naccepted = 1;
+
+ if (naccepted == 0)
+ continue;
+
+ if (sctx->limits.nelem)
+ {
+ Idx to_idx = str_idx + naccepted;
+ if (check_dst_limits (mctx, &sctx->limits,
+ dfa->nexts[prev_node], to_idx,
+ prev_node, str_idx))
+ continue;
+ }
+ ok = re_node_set_insert (cur_dest, prev_node);
+ if (BE (! ok, 0))
+ return REG_ESPACE;
+ }
+
+ return REG_NOERROR;
+}
+
+/* Helper functions. */
+
+static reg_errcode_t
+internal_function
+clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx)
+{
+ Idx top = mctx->state_log_top;
+
+ if (next_state_log_idx >= mctx->input.bufs_len
+ || (next_state_log_idx >= mctx->input.valid_len
+ && mctx->input.valid_len < mctx->input.len))
+ {
+ reg_errcode_t err;
+ err = extend_buffers (mctx);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+
+ if (top < next_state_log_idx)
+ {
+ memset (mctx->state_log + top + 1, '\0',
+ sizeof (re_dfastate_t *) * (next_state_log_idx - top));
+ mctx->state_log_top = next_state_log_idx;
+ }
+ return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst,
+ re_dfastate_t **src, Idx num)
+{
+ Idx st_idx;
+ reg_errcode_t err;
+ for (st_idx = 0; st_idx < num; ++st_idx)
+ {
+ if (dst[st_idx] == NULL)
+ dst[st_idx] = src[st_idx];
+ else if (src[st_idx] != NULL)
+ {
+ re_node_set merged_set;
+ err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes,
+ &src[st_idx]->nodes);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ dst[st_idx] = re_acquire_state (&err, dfa, &merged_set);
+ re_node_set_free (&merged_set);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ }
+ return REG_NOERROR;
+}
+
+static reg_errcode_t
+internal_function
+update_cur_sifted_state (const re_match_context_t *mctx,
+ re_sift_context_t *sctx, Idx str_idx,
+ re_node_set *dest_nodes)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ reg_errcode_t err = REG_NOERROR;
+ const re_node_set *candidates;
+ candidates = ((mctx->state_log[str_idx] == NULL) ? NULL
+ : &mctx->state_log[str_idx]->nodes);
+
+ if (dest_nodes->nelem == 0)
+ sctx->sifted_states[str_idx] = NULL;
+ else
+ {
+ if (candidates)
+ {
+ /* At first, add the nodes which can epsilon transit to a node in
+ DEST_NODE. */
+ err = add_epsilon_src_nodes (dfa, dest_nodes, candidates);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+
+ /* Then, check the limitations in the current sift_context. */
+ if (sctx->limits.nelem)
+ {
+ err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits,
+ mctx->bkref_ents, str_idx);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ }
+
+ sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+
+ if (candidates && mctx->state_log[str_idx]->has_backref)
+ {
+ err = sift_states_bkref (mctx, sctx, str_idx, candidates);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ return REG_NOERROR;
+}
+
+static reg_errcode_t
+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)
+{
+ reg_errcode_t err = REG_NOERROR;
+ Idx i;
+
+ re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+
+ if (!state->inveclosure.alloc)
+ {
+ err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem);
+ if (BE (err != REG_NOERROR, 0))
+ return REG_ESPACE;
+ for (i = 0; i < dest_nodes->nelem; 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);
+}
+
+static reg_errcode_t
+internal_function
+sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes,
+ const re_node_set *candidates)
+{
+ Idx ecl_idx;
+ reg_errcode_t err;
+ re_node_set *inv_eclosure = dfa->inveclosures + node;
+ re_node_set except_nodes;
+ re_node_set_init_empty (&except_nodes);
+ for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx)
+ {
+ Idx cur_node = inv_eclosure->elems[ecl_idx];
+ if (cur_node == node)
+ continue;
+ if (IS_EPSILON_NODE (dfa->nodes[cur_node].type))
+ {
+ Idx edst1 = dfa->edests[cur_node].elems[0];
+ Idx edst2 = ((dfa->edests[cur_node].nelem > 1)
+ ? dfa->edests[cur_node].elems[1] : REG_MISSING);
+ if ((!re_node_set_contains (inv_eclosure, edst1)
+ && re_node_set_contains (dest_nodes, edst1))
+ || (REG_VALID_NONZERO_INDEX (edst2)
+ && !re_node_set_contains (inv_eclosure, edst2)
+ && re_node_set_contains (dest_nodes, edst2)))
+ {
+ err = re_node_set_add_intersect (&except_nodes, candidates,
+ dfa->inveclosures + cur_node);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&except_nodes);
+ return err;
+ }
+ }
+ }
+ }
+ for (ecl_idx = 0; ecl_idx < inv_eclosure->nelem; ++ecl_idx)
+ {
+ Idx cur_node = inv_eclosure->elems[ecl_idx];
+ if (!re_node_set_contains (&except_nodes, cur_node))
+ {
+ Idx idx = re_node_set_contains (dest_nodes, cur_node) - 1;
+ re_node_set_remove_at (dest_nodes, idx);
+ }
+ }
+ re_node_set_free (&except_nodes);
+ return REG_NOERROR;
+}
+
+static bool
+internal_function
+check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits,
+ Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ Idx lim_idx, src_pos, dst_pos;
+
+ Idx dst_bkref_idx = search_cur_bkref_entry (mctx, dst_idx);
+ Idx src_bkref_idx = search_cur_bkref_entry (mctx, src_idx);
+ for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx)
+ {
+ Idx subexp_idx;
+ struct re_backref_cache_entry *ent;
+ ent = mctx->bkref_ents + limits->elems[lim_idx];
+ subexp_idx = dfa->nodes[ent->node].opr.idx;
+
+ dst_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx],
+ subexp_idx, dst_node, dst_idx,
+ dst_bkref_idx);
+ src_pos = check_dst_limits_calc_pos (mctx, limits->elems[lim_idx],
+ subexp_idx, src_node, src_idx,
+ src_bkref_idx);
+
+ /* In case of:
+ <src> <dst> ( <subexp> )
+ ( <subexp> ) <src> <dst>
+ ( <subexp1> <src> <subexp2> <dst> <subexp3> ) */
+ if (src_pos == dst_pos)
+ continue; /* This is unrelated limitation. */
+ else
+ return true;
+ }
+ return false;
+}
+
+static int
+internal_function
+check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries,
+ Idx subexp_idx, Idx from_node, Idx bkref_idx)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ const re_node_set *eclosures = dfa->eclosures + from_node;
+ Idx node_idx;
+
+ /* Else, we are on the boundary: examine the nodes on the epsilon
+ closure. */
+ for (node_idx = 0; node_idx < eclosures->nelem; ++node_idx)
+ {
+ Idx node = eclosures->elems[node_idx];
+ switch (dfa->nodes[node].type)
+ {
+ case OP_BACK_REF:
+ if (bkref_idx != REG_MISSING)
+ {
+ struct re_backref_cache_entry *ent = mctx->bkref_ents + bkref_idx;
+ do
+ {
+ Idx dst;
+ int cpos;
+
+ if (ent->node != node)
+ continue;
+
+ if (subexp_idx < BITSET_WORD_BITS
+ && !(ent->eps_reachable_subexps_map
+ & ((bitset_word_t) 1 << subexp_idx)))
+ continue;
+
+ /* Recurse trying to reach the OP_OPEN_SUBEXP and
+ OP_CLOSE_SUBEXP cases below. But, if the
+ destination node is the same node as the source
+ node, don't recurse because it would cause an
+ infinite loop: a regex that exhibits this behavior
+ is ()\1*\1* */
+ dst = dfa->edests[node].elems[0];
+ if (dst == from_node)
+ {
+ if (boundaries & 1)
+ return -1;
+ else /* if (boundaries & 2) */
+ return 0;
+ }
+
+ cpos =
+ check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx,
+ dst, bkref_idx);
+ if (cpos == -1 /* && (boundaries & 1) */)
+ return -1;
+ if (cpos == 0 && (boundaries & 2))
+ return 0;
+
+ if (subexp_idx < BITSET_WORD_BITS)
+ ent->eps_reachable_subexps_map
+ &= ~((bitset_word_t) 1 << subexp_idx);
+ }
+ while (ent++->more);
+ }
+ break;
+
+ case OP_OPEN_SUBEXP:
+ if ((boundaries & 1) && subexp_idx == dfa->nodes[node].opr.idx)
+ return -1;
+ break;
+
+ case OP_CLOSE_SUBEXP:
+ if ((boundaries & 2) && subexp_idx == dfa->nodes[node].opr.idx)
+ return 0;
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ return (boundaries & 2) ? 1 : 0;
+}
+
+static int
+internal_function
+check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit,
+ Idx subexp_idx, Idx from_node, Idx str_idx,
+ Idx bkref_idx)
+{
+ struct re_backref_cache_entry *lim = mctx->bkref_ents + limit;
+ int boundaries;
+
+ /* If we are outside the range of the subexpression, return -1 or 1. */
+ if (str_idx < lim->subexp_from)
+ return -1;
+
+ if (lim->subexp_to < str_idx)
+ return 1;
+
+ /* If we are within the subexpression, return 0. */
+ boundaries = (str_idx == lim->subexp_from);
+ boundaries |= (str_idx == lim->subexp_to) << 1;
+ if (boundaries == 0)
+ return 0;
+
+ /* Else, examine epsilon closure. */
+ return check_dst_limits_calc_pos_1 (mctx, boundaries, subexp_idx,
+ from_node, bkref_idx);
+}
+
+/* Check the limitations of sub expressions LIMITS, and remove the nodes
+ which are against limitations from DEST_NODES. */
+
+static reg_errcode_t
+internal_function
+check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes,
+ const re_node_set *candidates, re_node_set *limits,
+ struct re_backref_cache_entry *bkref_ents, Idx str_idx)
+{
+ reg_errcode_t err;
+ Idx node_idx, lim_idx;
+
+ for (lim_idx = 0; lim_idx < limits->nelem; ++lim_idx)
+ {
+ Idx subexp_idx;
+ struct re_backref_cache_entry *ent;
+ ent = bkref_ents + limits->elems[lim_idx];
+
+ if (str_idx <= ent->subexp_from || ent->str_idx < str_idx)
+ continue; /* This is unrelated limitation. */
+
+ subexp_idx = dfa->nodes[ent->node].opr.idx;
+ if (ent->subexp_to == str_idx)
+ {
+ Idx ops_node = REG_MISSING;
+ Idx cls_node = REG_MISSING;
+ for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
+ {
+ Idx node = dest_nodes->elems[node_idx];
+ re_token_type_t type = dfa->nodes[node].type;
+ if (type == OP_OPEN_SUBEXP
+ && subexp_idx == dfa->nodes[node].opr.idx)
+ ops_node = node;
+ else if (type == OP_CLOSE_SUBEXP
+ && subexp_idx == dfa->nodes[node].opr.idx)
+ cls_node = node;
+ }
+
+ /* Check the limitation of the open subexpression. */
+ /* Note that (ent->subexp_to = str_idx != ent->subexp_from). */
+ if (REG_VALID_INDEX (ops_node))
+ {
+ err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes,
+ candidates);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+
+ /* Check the limitation of the close subexpression. */
+ if (REG_VALID_INDEX (cls_node))
+ for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
+ {
+ Idx node = dest_nodes->elems[node_idx];
+ if (!re_node_set_contains (dfa->inveclosures + node,
+ cls_node)
+ && !re_node_set_contains (dfa->eclosures + node,
+ cls_node))
+ {
+ /* It is against this limitation.
+ Remove it form the current sifted state. */
+ err = sub_epsilon_src_nodes (dfa, node, dest_nodes,
+ candidates);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ --node_idx;
+ }
+ }
+ }
+ else /* (ent->subexp_to != str_idx) */
+ {
+ for (node_idx = 0; node_idx < dest_nodes->nelem; ++node_idx)
+ {
+ Idx node = dest_nodes->elems[node_idx];
+ re_token_type_t type = dfa->nodes[node].type;
+ if (type == OP_CLOSE_SUBEXP || type == OP_OPEN_SUBEXP)
+ {
+ if (subexp_idx != dfa->nodes[node].opr.idx)
+ continue;
+ /* It is against this limitation.
+ Remove it form the current sifted state. */
+ err = sub_epsilon_src_nodes (dfa, node, dest_nodes,
+ candidates);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ }
+ }
+ }
+ return REG_NOERROR;
+}
+
+static reg_errcode_t
+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)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ reg_errcode_t err;
+ Idx node_idx, node;
+ re_sift_context_t local_sctx;
+ Idx first_idx = search_cur_bkref_entry (mctx, str_idx);
+
+ if (first_idx == REG_MISSING)
+ return REG_NOERROR;
+
+ local_sctx.sifted_states = NULL; /* Mark that it hasn't been initialized. */
+
+ for (node_idx = 0; node_idx < candidates->nelem; ++node_idx)
+ {
+ Idx enabled_idx;
+ re_token_type_t type;
+ struct re_backref_cache_entry *entry;
+ node = candidates->elems[node_idx];
+ type = dfa->nodes[node].type;
+ /* Avoid infinite loop for the REs like "()\1+". */
+ if (node == sctx->last_node && str_idx == sctx->last_str_idx)
+ continue;
+ if (type != OP_BACK_REF)
+ continue;
+
+ entry = mctx->bkref_ents + first_idx;
+ enabled_idx = first_idx;
+ do
+ {
+ Idx subexp_len;
+ Idx to_idx;
+ Idx dst_node;
+ bool ok;
+ re_dfastate_t *cur_state;
+
+ if (entry->node != node)
+ continue;
+ subexp_len = entry->subexp_to - entry->subexp_from;
+ to_idx = str_idx + subexp_len;
+ dst_node = (subexp_len ? dfa->nexts[node]
+ : dfa->edests[node].elems[0]);
+
+ if (to_idx > sctx->last_str_idx
+ || sctx->sifted_states[to_idx] == NULL
+ || !STATE_NODE_CONTAINS (sctx->sifted_states[to_idx], dst_node)
+ || check_dst_limits (mctx, &sctx->limits, node,
+ str_idx, dst_node, to_idx))
+ continue;
+
+ if (local_sctx.sifted_states == NULL)
+ {
+ local_sctx = *sctx;
+ err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+ }
+ local_sctx.last_node = node;
+ local_sctx.last_str_idx = str_idx;
+ ok = re_node_set_insert (&local_sctx.limits, enabled_idx);
+ if (BE (! ok, 0))
+ {
+ err = REG_ESPACE;
+ goto free_return;
+ }
+ cur_state = local_sctx.sifted_states[str_idx];
+ err = sift_states_backward (mctx, &local_sctx);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+ if (sctx->limited_states != NULL)
+ {
+ err = merge_state_array (dfa, sctx->limited_states,
+ local_sctx.sifted_states,
+ str_idx + 1);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+ }
+ local_sctx.sifted_states[str_idx] = cur_state;
+ re_node_set_remove (&local_sctx.limits, enabled_idx);
+
+ /* mctx->bkref_ents may have changed, reload the pointer. */
+ entry = mctx->bkref_ents + enabled_idx;
+ }
+ while (enabled_idx++, entry++->more);
+ }
+ err = REG_NOERROR;
+ free_return:
+ if (local_sctx.sifted_states != NULL)
+ {
+ re_node_set_free (&local_sctx.limits);
+ }
+
+ return err;
+}
+
+
+#ifdef RE_ENABLE_I18N
+static int
+internal_function
+sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx,
+ Idx node_idx, Idx str_idx, Idx max_str_idx)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ int naccepted;
+ /* Check the node can accept "multi byte". */
+ naccepted = check_node_accept_bytes (dfa, node_idx, &mctx->input, str_idx);
+ if (naccepted > 0 && str_idx + naccepted <= max_str_idx &&
+ !STATE_NODE_CONTAINS (sctx->sifted_states[str_idx + naccepted],
+ dfa->nexts[node_idx]))
+ /* The node can't accept the "multi byte", or the
+ destination was already thrown away, then the node
+ could't accept the current input "multi byte". */
+ naccepted = 0;
+ /* Otherwise, it is sure that the node could accept
+ 'naccepted' bytes input. */
+ return naccepted;
+}
+#endif /* RE_ENABLE_I18N */
+
+
+/* Functions for state transition. */
+
+/* Return the next state to which the current state STATE will transit by
+ accepting the current input byte, and update STATE_LOG if necessary.
+ If STATE can accept a multibyte char/collating element/back reference
+ update the destination of STATE_LOG. */
+
+static re_dfastate_t *
+internal_function __attribute_warn_unused_result__
+transit_state (reg_errcode_t *err, re_match_context_t *mctx,
+ re_dfastate_t *state)
+{
+ re_dfastate_t **trtable;
+ unsigned char ch;
+
+#ifdef RE_ENABLE_I18N
+ /* If the current state can accept multibyte. */
+ if (BE (state->accept_mb, 0))
+ {
+ *err = transit_state_mb (mctx, state);
+ if (BE (*err != REG_NOERROR, 0))
+ return NULL;
+ }
+#endif /* RE_ENABLE_I18N */
+
+ /* Then decide the next state with the single byte. */
+#if 0
+ if (0)
+ /* don't use transition table */
+ return transit_state_sb (err, mctx, state);
+#endif
+
+ /* Use transition table */
+ ch = re_string_fetch_byte (&mctx->input);
+ for (;;)
+ {
+ trtable = state->trtable;
+ if (BE (trtable != NULL, 1))
+ return trtable[ch];
+
+ trtable = state->word_trtable;
+ if (BE (trtable != NULL, 1))
+ {
+ unsigned int context;
+ context
+ = re_string_context_at (&mctx->input,
+ re_string_cur_idx (&mctx->input) - 1,
+ mctx->eflags);
+ if (IS_WORD_CONTEXT (context))
+ return trtable[ch + SBC_MAX];
+ else
+ return trtable[ch];
+ }
+
+ if (!build_trtable (mctx->dfa, state))
+ {
+ *err = REG_ESPACE;
+ return NULL;
+ }
+
+ /* Retry, we now have a transition table. */
+ }
+}
+
+/* Update the state_log if we need */
+static re_dfastate_t *
+internal_function
+merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx,
+ re_dfastate_t *next_state)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ Idx cur_idx = re_string_cur_idx (&mctx->input);
+
+ if (cur_idx > mctx->state_log_top)
+ {
+ mctx->state_log[cur_idx] = next_state;
+ mctx->state_log_top = cur_idx;
+ }
+ else if (mctx->state_log[cur_idx] == 0)
+ {
+ mctx->state_log[cur_idx] = next_state;
+ }
+ else
+ {
+ re_dfastate_t *pstate;
+ 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. */
+ 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,
+ log_nodes);
+ if (BE (*err != REG_NOERROR, 0))
+ return NULL;
+ }
+ else
+ next_nodes = *log_nodes;
+ /* Note: We already add the nodes of the initial state,
+ then we don't need to add them here. */
+
+ context = re_string_context_at (&mctx->input,
+ 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);
+ /* We don't need to check errors here, since the return value of
+ this function is next_state and ERR is already set. */
+
+ if (table_nodes != NULL)
+ re_node_set_free (&next_nodes);
+ }
+
+ if (BE (dfa->nbackref, 0) && next_state != NULL)
+ {
+ /* Check OP_OPEN_SUBEXP in the current state in case that we use them
+ later. We must check them here, since the back references in the
+ next state might use them. */
+ *err = check_subexp_matching_top (mctx, &next_state->nodes,
+ cur_idx);
+ if (BE (*err != REG_NOERROR, 0))
+ return NULL;
+
+ /* If the next state has back references. */
+ if (next_state->has_backref)
+ {
+ *err = transit_state_bkref (mctx, &next_state->nodes);
+ if (BE (*err != REG_NOERROR, 0))
+ return NULL;
+ next_state = mctx->state_log[cur_idx];
+ }
+ }
+
+ return next_state;
+}
+
+/* Skip bytes in the input that correspond to part of a
+ multi-byte match, then look in the log for a state
+ from which to restart matching. */
+static re_dfastate_t *
+internal_function
+find_recover_state (reg_errcode_t *err, re_match_context_t *mctx)
+{
+ re_dfastate_t *cur_state;
+ do
+ {
+ Idx max = mctx->state_log_top;
+ Idx cur_str_idx = re_string_cur_idx (&mctx->input);
+
+ do
+ {
+ if (++cur_str_idx > max)
+ return NULL;
+ re_string_skip_bytes (&mctx->input, 1);
+ }
+ while (mctx->state_log[cur_str_idx] == NULL);
+
+ cur_state = merge_state_with_log (err, mctx, NULL);
+ }
+ while (*err == REG_NOERROR && cur_state == NULL);
+ return cur_state;
+}
+
+/* Helper functions for transit_state. */
+
+/* From the node set CUR_NODES, pick up the nodes whose types are
+ OP_OPEN_SUBEXP and which have corresponding back references in the regular
+ expression. And register them to use them later for evaluating the
+ correspoding back references. */
+
+static reg_errcode_t
+internal_function
+check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes,
+ Idx str_idx)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ Idx node_idx;
+ reg_errcode_t err;
+
+ /* TODO: This isn't efficient.
+ Because there might be more than one nodes whose types are
+ OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all
+ nodes.
+ E.g. RE: (a){2} */
+ for (node_idx = 0; node_idx < cur_nodes->nelem; ++node_idx)
+ {
+ Idx node = cur_nodes->elems[node_idx];
+ if (dfa->nodes[node].type == OP_OPEN_SUBEXP
+ && dfa->nodes[node].opr.idx < BITSET_WORD_BITS
+ && (dfa->used_bkref_map
+ & ((bitset_word_t) 1 << dfa->nodes[node].opr.idx)))
+ {
+ err = match_ctx_add_subtop (mctx, node, str_idx);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ }
+ return REG_NOERROR;
+}
+
+#if 0
+/* Return the next state to which the current state STATE will transit by
+ accepting the current input byte. */
+
+static re_dfastate_t *
+transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx,
+ re_dfastate_t *state)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ re_node_set next_nodes;
+ re_dfastate_t *next_state;
+ Idx node_cnt, cur_str_idx = re_string_cur_idx (&mctx->input);
+ unsigned int context;
+
+ *err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1);
+ if (BE (*err != REG_NOERROR, 0))
+ return NULL;
+ for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt)
+ {
+ Idx cur_node = state->nodes.elems[node_cnt];
+ if (check_node_accept (mctx, dfa->nodes + cur_node, cur_str_idx))
+ {
+ *err = re_node_set_merge (&next_nodes,
+ dfa->eclosures + dfa->nexts[cur_node]);
+ if (BE (*err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&next_nodes);
+ return NULL;
+ }
+ }
+ }
+ context = re_string_context_at (&mctx->input, cur_str_idx, mctx->eflags);
+ next_state = 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. */
+
+ re_node_set_free (&next_nodes);
+ re_string_skip_bytes (&mctx->input, 1);
+ return next_state;
+}
+#endif
+
+#ifdef RE_ENABLE_I18N
+static reg_errcode_t
+internal_function
+transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ reg_errcode_t err;
+ Idx i;
+
+ for (i = 0; i < pstate->nodes.nelem; ++i)
+ {
+ re_node_set dest_nodes, *new_nodes;
+ Idx cur_node_idx = pstate->nodes.elems[i];
+ int naccepted;
+ Idx dest_idx;
+ unsigned int context;
+ re_dfastate_t *dest_state;
+
+ if (!dfa->nodes[cur_node_idx].accept_mb)
+ continue;
+
+ if (dfa->nodes[cur_node_idx].constraint)
+ {
+ context = re_string_context_at (&mctx->input,
+ re_string_cur_idx (&mctx->input),
+ mctx->eflags);
+ if (NOT_SATISFY_NEXT_CONSTRAINT (dfa->nodes[cur_node_idx].constraint,
+ context))
+ continue;
+ }
+
+ /* How many bytes the node can accept? */
+ naccepted = check_node_accept_bytes (dfa, cur_node_idx, &mctx->input,
+ re_string_cur_idx (&mctx->input));
+ if (naccepted == 0)
+ continue;
+
+ /* The node can accepts 'naccepted' bytes. */
+ dest_idx = re_string_cur_idx (&mctx->input) + naccepted;
+ mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted
+ : mctx->max_mb_elem_len);
+ err = clean_state_log_if_needed (mctx, dest_idx);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+#ifdef DEBUG
+ assert (dfa->nexts[cur_node_idx] != REG_MISSING);
+#endif
+ new_nodes = dfa->eclosures + dfa->nexts[cur_node_idx];
+
+ dest_state = mctx->state_log[dest_idx];
+ if (dest_state == NULL)
+ dest_nodes = *new_nodes;
+ else
+ {
+ err = re_node_set_init_union (&dest_nodes,
+ dest_state->entrance_nodes, new_nodes);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ context = re_string_context_at (&mctx->input, dest_idx - 1,
+ mctx->eflags);
+ mctx->state_log[dest_idx]
+ = re_acquire_state_context (&err, dfa, &dest_nodes, context);
+ if (dest_state != NULL)
+ re_node_set_free (&dest_nodes);
+ if (BE (mctx->state_log[dest_idx] == NULL && err != REG_NOERROR, 0))
+ return err;
+ }
+ return REG_NOERROR;
+}
+#endif /* RE_ENABLE_I18N */
+
+static reg_errcode_t
+internal_function
+transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ reg_errcode_t err;
+ Idx i;
+ Idx cur_str_idx = re_string_cur_idx (&mctx->input);
+
+ for (i = 0; i < nodes->nelem; ++i)
+ {
+ Idx dest_str_idx, prev_nelem, bkc_idx;
+ Idx node_idx = nodes->elems[i];
+ unsigned int context;
+ const re_token_t *node = dfa->nodes + node_idx;
+ re_node_set *new_dest_nodes;
+
+ /* Check whether 'node' is a backreference or not. */
+ if (node->type != OP_BACK_REF)
+ continue;
+
+ if (node->constraint)
+ {
+ context = re_string_context_at (&mctx->input, cur_str_idx,
+ mctx->eflags);
+ if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context))
+ continue;
+ }
+
+ /* 'node' is a backreference.
+ Check the substring which the substring matched. */
+ bkc_idx = mctx->nbkref_ents;
+ err = get_subexp (mctx, node_idx, cur_str_idx);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+
+ /* And add the epsilon closures (which is 'new_dest_nodes') of
+ the backreference to appropriate state_log. */
+#ifdef DEBUG
+ assert (dfa->nexts[node_idx] != REG_MISSING);
+#endif
+ for (; bkc_idx < mctx->nbkref_ents; ++bkc_idx)
+ {
+ Idx subexp_len;
+ re_dfastate_t *dest_state;
+ struct re_backref_cache_entry *bkref_ent;
+ bkref_ent = mctx->bkref_ents + bkc_idx;
+ if (bkref_ent->node != node_idx || bkref_ent->str_idx != cur_str_idx)
+ continue;
+ subexp_len = bkref_ent->subexp_to - bkref_ent->subexp_from;
+ new_dest_nodes = (subexp_len == 0
+ ? dfa->eclosures + dfa->edests[node_idx].elems[0]
+ : dfa->eclosures + dfa->nexts[node_idx]);
+ dest_str_idx = (cur_str_idx + bkref_ent->subexp_to
+ - bkref_ent->subexp_from);
+ context = re_string_context_at (&mctx->input, dest_str_idx - 1,
+ mctx->eflags);
+ dest_state = mctx->state_log[dest_str_idx];
+ prev_nelem = ((mctx->state_log[cur_str_idx] == NULL) ? 0
+ : mctx->state_log[cur_str_idx]->nodes.nelem);
+ /* Add 'new_dest_node' to state_log. */
+ if (dest_state == NULL)
+ {
+ mctx->state_log[dest_str_idx]
+ = re_acquire_state_context (&err, dfa, new_dest_nodes,
+ context);
+ if (BE (mctx->state_log[dest_str_idx] == NULL
+ && err != REG_NOERROR, 0))
+ goto free_return;
+ }
+ else
+ {
+ re_node_set dest_nodes;
+ err = re_node_set_init_union (&dest_nodes,
+ dest_state->entrance_nodes,
+ new_dest_nodes);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&dest_nodes);
+ goto free_return;
+ }
+ mctx->state_log[dest_str_idx]
+ = re_acquire_state_context (&err, dfa, &dest_nodes, context);
+ re_node_set_free (&dest_nodes);
+ if (BE (mctx->state_log[dest_str_idx] == NULL
+ && err != REG_NOERROR, 0))
+ goto free_return;
+ }
+ /* We need to check recursively if the backreference can epsilon
+ transit. */
+ if (subexp_len == 0
+ && mctx->state_log[cur_str_idx]->nodes.nelem > prev_nelem)
+ {
+ err = check_subexp_matching_top (mctx, new_dest_nodes,
+ cur_str_idx);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+ err = transit_state_bkref (mctx, new_dest_nodes);
+ if (BE (err != REG_NOERROR, 0))
+ goto free_return;
+ }
+ }
+ }
+ err = REG_NOERROR;
+ free_return:
+ return err;
+}
+
+/* Enumerate all the candidates which the backreference BKREF_NODE can match
+ at BKREF_STR_IDX, and register them by match_ctx_add_entry().
+ Note that we might collect inappropriate candidates here.
+ However, the cost of checking them strictly here is too high, then we
+ delay these checking for prune_impossible_nodes(). */
+
+static reg_errcode_t
+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;
+ Idx subexp_num, sub_top_idx;
+ const char *buf = (const char *) re_string_get_buffer (&mctx->input);
+ /* Return if we have already checked BKREF_NODE at BKREF_STR_IDX. */
+ Idx cache_idx = search_cur_bkref_entry (mctx, bkref_str_idx);
+ if (cache_idx != REG_MISSING)
+ {
+ const struct re_backref_cache_entry *entry
+ = mctx->bkref_ents + cache_idx;
+ do
+ if (entry->node == bkref_node)
+ return REG_NOERROR; /* We already checked it. */
+ while (entry++->more);
+ }
+
+ subexp_num = dfa->nodes[bkref_node].opr.idx;
+
+ /* For each sub expression */
+ for (sub_top_idx = 0; sub_top_idx < mctx->nsub_tops; ++sub_top_idx)
+ {
+ reg_errcode_t err;
+ re_sub_match_top_t *sub_top = mctx->sub_tops[sub_top_idx];
+ re_sub_match_last_t *sub_last;
+ Idx sub_last_idx, sl_str, bkref_str_off;
+
+ if (dfa->nodes[sub_top->node].opr.idx != subexp_num)
+ continue; /* It isn't related. */
+
+ sl_str = sub_top->str_idx;
+ bkref_str_off = bkref_str_idx;
+ /* At first, check the last node of sub expressions we already
+ evaluated. */
+ for (sub_last_idx = 0; sub_last_idx < sub_top->nlasts; ++sub_last_idx)
+ {
+ regoff_t sl_str_diff;
+ sub_last = sub_top->lasts[sub_last_idx];
+ sl_str_diff = sub_last->str_idx - sl_str;
+ /* The matched string by the sub expression match with the substring
+ at the back reference? */
+ if (sl_str_diff > 0)
+ {
+ if (BE (bkref_str_off + sl_str_diff > mctx->input.valid_len, 0))
+ {
+ /* Not enough chars for a successful match. */
+ if (bkref_str_off + sl_str_diff > mctx->input.len)
+ break;
+
+ err = clean_state_log_if_needed (mctx,
+ bkref_str_off
+ + sl_str_diff);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ buf = (const char *) re_string_get_buffer (&mctx->input);
+ }
+ if (memcmp (buf + bkref_str_off, buf + sl_str, sl_str_diff) != 0)
+ /* We don't need to search this sub expression any more. */
+ break;
+ }
+ bkref_str_off += sl_str_diff;
+ sl_str += sl_str_diff;
+ err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node,
+ bkref_str_idx);
+
+ /* Reload buf, since the preceding call might have reallocated
+ the buffer. */
+ buf = (const char *) re_string_get_buffer (&mctx->input);
+
+ if (err == REG_NOMATCH)
+ continue;
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+
+ if (sub_last_idx < sub_top->nlasts)
+ continue;
+ if (sub_last_idx > 0)
+ ++sl_str;
+ /* Then, search for the other last nodes of the sub expression. */
+ for (; sl_str <= bkref_str_idx; ++sl_str)
+ {
+ Idx cls_node;
+ regoff_t sl_str_off;
+ const re_node_set *nodes;
+ sl_str_off = sl_str - sub_top->str_idx;
+ /* The matched string by the sub expression match with the substring
+ at the back reference? */
+ if (sl_str_off > 0)
+ {
+ if (BE (bkref_str_off >= mctx->input.valid_len, 0))
+ {
+ /* If we are at the end of the input, we cannot match. */
+ if (bkref_str_off >= mctx->input.len)
+ break;
+
+ err = extend_buffers (mctx);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+
+ buf = (const char *) re_string_get_buffer (&mctx->input);
+ }
+ if (buf [bkref_str_off++] != buf[sl_str - 1])
+ break; /* We don't need to search this sub expression
+ any more. */
+ }
+ if (mctx->state_log[sl_str] == NULL)
+ continue;
+ /* Does this state have a ')' of the sub expression? */
+ nodes = &mctx->state_log[sl_str]->nodes;
+ cls_node = find_subexp_node (dfa, nodes, subexp_num,
+ OP_CLOSE_SUBEXP);
+ if (cls_node == REG_MISSING)
+ continue; /* No. */
+ if (sub_top->path == NULL)
+ {
+ sub_top->path = calloc (sizeof (state_array_t),
+ sl_str - sub_top->str_idx + 1);
+ if (sub_top->path == NULL)
+ return REG_ESPACE;
+ }
+ /* Can the OP_OPEN_SUBEXP node arrive the OP_CLOSE_SUBEXP node
+ in the current context? */
+ err = check_arrival (mctx, sub_top->path, sub_top->node,
+ sub_top->str_idx, cls_node, sl_str,
+ OP_CLOSE_SUBEXP);
+ if (err == REG_NOMATCH)
+ continue;
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str);
+ if (BE (sub_last == NULL, 0))
+ return REG_ESPACE;
+ err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node,
+ bkref_str_idx);
+ if (err == REG_NOMATCH)
+ continue;
+ }
+ }
+ return REG_NOERROR;
+}
+
+/* Helper functions for get_subexp(). */
+
+/* Check SUB_LAST can arrive to the back reference BKREF_NODE at BKREF_STR.
+ If it can arrive, register the sub expression expressed with SUB_TOP
+ and SUB_LAST. */
+
+static reg_errcode_t
+internal_function
+get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top,
+ re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str)
+{
+ reg_errcode_t err;
+ Idx to_idx;
+ /* Can the subexpression arrive the back reference? */
+ err = check_arrival (mctx, &sub_last->path, sub_last->node,
+ sub_last->str_idx, bkref_node, bkref_str,
+ OP_OPEN_SUBEXP);
+ if (err != REG_NOERROR)
+ return err;
+ err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx,
+ sub_last->str_idx);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx;
+ return clean_state_log_if_needed (mctx, to_idx);
+}
+
+/* Find the first node which is '(' or ')' and whose index is SUBEXP_IDX.
+ Search '(' if FL_OPEN, or search ')' otherwise.
+ TODO: This function isn't efficient...
+ Because there might be more than one nodes whose types are
+ OP_OPEN_SUBEXP and whose index is SUBEXP_IDX, we must check all
+ nodes.
+ E.g. RE: (a){2} */
+
+static Idx
+internal_function
+find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes,
+ Idx subexp_idx, int type)
+{
+ Idx cls_idx;
+ for (cls_idx = 0; cls_idx < nodes->nelem; ++cls_idx)
+ {
+ Idx cls_node = nodes->elems[cls_idx];
+ const re_token_t *node = dfa->nodes + cls_node;
+ if (node->type == type
+ && node->opr.idx == subexp_idx)
+ return cls_node;
+ }
+ return REG_MISSING;
+}
+
+/* Check whether the node TOP_NODE at TOP_STR can arrive to the node
+ LAST_NODE at LAST_STR. We record the path onto PATH since it will be
+ heavily reused.
+ Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise. */
+
+static reg_errcode_t
+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)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ reg_errcode_t err = REG_NOERROR;
+ Idx subexp_num, backup_cur_idx, str_idx, null_cnt;
+ re_dfastate_t *cur_state = NULL;
+ re_node_set *cur_nodes, next_nodes;
+ re_dfastate_t **backup_state_log;
+ unsigned int context;
+
+ subexp_num = dfa->nodes[top_node].opr.idx;
+ /* Extend the buffer if we need. */
+ if (BE (path->alloc < last_str + mctx->max_mb_elem_len + 1, 0))
+ {
+ re_dfastate_t **new_array;
+ Idx old_alloc = path->alloc;
+ Idx new_alloc = old_alloc + last_str + mctx->max_mb_elem_len + 1;
+ if (BE (new_alloc < old_alloc, 0)
+ || BE (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc, 0))
+ return REG_ESPACE;
+ new_array = re_realloc (path->array, re_dfastate_t *, new_alloc);
+ if (BE (new_array == NULL, 0))
+ return REG_ESPACE;
+ path->array = new_array;
+ path->alloc = new_alloc;
+ memset (new_array + old_alloc, '\0',
+ sizeof (re_dfastate_t *) * (path->alloc - old_alloc));
+ }
+
+ str_idx = path->next_idx ? path->next_idx : top_str;
+
+ /* Temporary modify MCTX. */
+ backup_state_log = mctx->state_log;
+ backup_cur_idx = mctx->input.cur_idx;
+ mctx->state_log = path->array;
+ mctx->input.cur_idx = str_idx;
+
+ /* Setup initial node set. */
+ context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags);
+ if (str_idx == top_str)
+ {
+ err = re_node_set_init_1 (&next_nodes, top_node);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&next_nodes);
+ return err;
+ }
+ }
+ else
+ {
+ cur_state = mctx->state_log[str_idx];
+ if (cur_state && cur_state->has_backref)
+ {
+ err = re_node_set_init_copy (&next_nodes, &cur_state->nodes);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ else
+ re_node_set_init_empty (&next_nodes);
+ }
+ if (str_idx == top_str || (cur_state && cur_state->has_backref))
+ {
+ if (next_nodes.nelem)
+ {
+ err = expand_bkref_cache (mctx, &next_nodes, str_idx,
+ subexp_num, type);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&next_nodes);
+ return err;
+ }
+ }
+ cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context);
+ if (BE (cur_state == NULL && err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&next_nodes);
+ return err;
+ }
+ mctx->state_log[str_idx] = cur_state;
+ }
+
+ for (null_cnt = 0; str_idx < last_str && null_cnt <= mctx->max_mb_elem_len;)
+ {
+ re_node_set_empty (&next_nodes);
+ if (mctx->state_log[str_idx + 1])
+ {
+ err = re_node_set_merge (&next_nodes,
+ &mctx->state_log[str_idx + 1]->nodes);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&next_nodes);
+ return err;
+ }
+ }
+ if (cur_state)
+ {
+ err = check_arrival_add_next_nodes (mctx, str_idx,
+ &cur_state->non_eps_nodes,
+ &next_nodes);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&next_nodes);
+ return err;
+ }
+ }
+ ++str_idx;
+ if (next_nodes.nelem)
+ {
+ err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&next_nodes);
+ return err;
+ }
+ err = expand_bkref_cache (mctx, &next_nodes, str_idx,
+ subexp_num, type);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&next_nodes);
+ return err;
+ }
+ }
+ context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags);
+ cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context);
+ if (BE (cur_state == NULL && err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&next_nodes);
+ return err;
+ }
+ mctx->state_log[str_idx] = cur_state;
+ null_cnt = cur_state == NULL ? null_cnt + 1 : 0;
+ }
+ re_node_set_free (&next_nodes);
+ cur_nodes = (mctx->state_log[last_str] == NULL ? NULL
+ : &mctx->state_log[last_str]->nodes);
+ path->next_idx = str_idx;
+
+ /* Fix MCTX. */
+ mctx->state_log = backup_state_log;
+ mctx->input.cur_idx = backup_cur_idx;
+
+ /* Then check the current node set has the node LAST_NODE. */
+ if (cur_nodes != NULL && re_node_set_contains (cur_nodes, last_node))
+ return REG_NOERROR;
+
+ return REG_NOMATCH;
+}
+
+/* Helper functions for check_arrival. */
+
+/* Calculate the destination nodes of CUR_NODES at STR_IDX, and append them
+ to NEXT_NODES.
+ TODO: This function is similar to the functions transit_state*(),
+ however this function has many additional works.
+ Can't we unify them? */
+
+static reg_errcode_t
+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)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ bool ok;
+ Idx cur_idx;
+#ifdef RE_ENABLE_I18N
+ reg_errcode_t err = REG_NOERROR;
+#endif
+ re_node_set union_set;
+ re_node_set_init_empty (&union_set);
+ for (cur_idx = 0; cur_idx < cur_nodes->nelem; ++cur_idx)
+ {
+ int naccepted = 0;
+ Idx cur_node = cur_nodes->elems[cur_idx];
+#ifdef DEBUG
+ re_token_type_t type = dfa->nodes[cur_node].type;
+ assert (!IS_EPSILON_NODE (type));
+#endif
+#ifdef RE_ENABLE_I18N
+ /* If the node may accept "multi byte". */
+ if (dfa->nodes[cur_node].accept_mb)
+ {
+ naccepted = check_node_accept_bytes (dfa, cur_node, &mctx->input,
+ str_idx);
+ if (naccepted > 1)
+ {
+ re_dfastate_t *dest_state;
+ Idx next_node = dfa->nexts[cur_node];
+ Idx next_idx = str_idx + naccepted;
+ dest_state = mctx->state_log[next_idx];
+ re_node_set_empty (&union_set);
+ if (dest_state)
+ {
+ err = re_node_set_merge (&union_set, &dest_state->nodes);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&union_set);
+ return err;
+ }
+ }
+ ok = re_node_set_insert (&union_set, next_node);
+ if (BE (! ok, 0))
+ {
+ re_node_set_free (&union_set);
+ return REG_ESPACE;
+ }
+ mctx->state_log[next_idx] = re_acquire_state (&err, dfa,
+ &union_set);
+ if (BE (mctx->state_log[next_idx] == NULL
+ && err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&union_set);
+ return err;
+ }
+ }
+ }
+#endif /* RE_ENABLE_I18N */
+ if (naccepted
+ || check_node_accept (mctx, dfa->nodes + cur_node, str_idx))
+ {
+ ok = re_node_set_insert (next_nodes, dfa->nexts[cur_node]);
+ if (BE (! ok, 0))
+ {
+ re_node_set_free (&union_set);
+ return REG_ESPACE;
+ }
+ }
+ }
+ re_node_set_free (&union_set);
+ return REG_NOERROR;
+}
+
+/* For all the nodes in CUR_NODES, add the epsilon closures of them to
+ CUR_NODES, however exclude the nodes which are:
+ - inside the sub expression whose number is EX_SUBEXP, if FL_OPEN.
+ - out of the sub expression whose number is EX_SUBEXP, if !FL_OPEN.
+*/
+
+static reg_errcode_t
+internal_function
+check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes,
+ Idx ex_subexp, int type)
+{
+ reg_errcode_t err;
+ Idx idx, outside_node;
+ re_node_set new_nodes;
+#ifdef DEBUG
+ assert (cur_nodes->nelem);
+#endif
+ err = re_node_set_alloc (&new_nodes, cur_nodes->nelem);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ /* Create a new node set NEW_NODES with the nodes which are epsilon
+ closures of the node in CUR_NODES. */
+
+ for (idx = 0; idx < cur_nodes->nelem; ++idx)
+ {
+ Idx cur_node = cur_nodes->elems[idx];
+ const re_node_set *eclosure = dfa->eclosures + cur_node;
+ outside_node = find_subexp_node (dfa, eclosure, ex_subexp, type);
+ if (outside_node == REG_MISSING)
+ {
+ /* There are no problematic nodes, just merge them. */
+ err = re_node_set_merge (&new_nodes, eclosure);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&new_nodes);
+ return err;
+ }
+ }
+ else
+ {
+ /* There are problematic nodes, re-calculate incrementally. */
+ err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node,
+ ex_subexp, type);
+ if (BE (err != REG_NOERROR, 0))
+ {
+ re_node_set_free (&new_nodes);
+ return err;
+ }
+ }
+ }
+ re_node_set_free (cur_nodes);
+ *cur_nodes = new_nodes;
+ return REG_NOERROR;
+}
+
+/* Helper function for check_arrival_expand_ecl.
+ Check incrementally the epsilon closure of TARGET, and if it isn't
+ problematic append it to DST_NODES. */
+
+static reg_errcode_t
+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)
+{
+ Idx cur_node;
+ for (cur_node = target; !re_node_set_contains (dst_nodes, cur_node);)
+ {
+ bool ok;
+
+ if (dfa->nodes[cur_node].type == type
+ && dfa->nodes[cur_node].opr.idx == ex_subexp)
+ {
+ if (type == OP_CLOSE_SUBEXP)
+ {
+ ok = re_node_set_insert (dst_nodes, cur_node);
+ if (BE (! ok, 0))
+ return REG_ESPACE;
+ }
+ break;
+ }
+ ok = re_node_set_insert (dst_nodes, cur_node);
+ if (BE (! ok, 0))
+ return REG_ESPACE;
+ if (dfa->edests[cur_node].nelem == 0)
+ break;
+ if (dfa->edests[cur_node].nelem == 2)
+ {
+ reg_errcode_t err;
+ err = check_arrival_expand_ecl_sub (dfa, dst_nodes,
+ dfa->edests[cur_node].elems[1],
+ ex_subexp, type);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ cur_node = dfa->edests[cur_node].elems[0];
+ }
+ return REG_NOERROR;
+}
+
+
+/* For all the back references in the current state, calculate the
+ destination of the back references by the appropriate entry
+ in MCTX->BKREF_ENTS. */
+
+static reg_errcode_t
+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)
+{
+ const re_dfa_t *const dfa = mctx->dfa;
+ reg_errcode_t err;
+ Idx cache_idx_start = search_cur_bkref_entry (mctx, cur_str);
+ struct re_backref_cache_entry *ent;
+
+ if (cache_idx_start == REG_MISSING)
+ return REG_NOERROR;
+
+ restart:
+ ent = mctx->bkref_ents + cache_idx_start;
+ do
+ {
+ Idx to_idx, next_node;
+
+ /* Is this entry ENT is appropriate? */
+ if (!re_node_set_contains (cur_nodes, ent->node))
+ continue; /* No. */
+
+ to_idx = cur_str + ent->subexp_to - ent->subexp_from;
+ /* Calculate the destination of the back reference, and append it
+ to MCTX->STATE_LOG. */
+ if (to_idx == cur_str)
+ {
+ /* The backreference did epsilon transit, we must re-check all the
+ node in the current state. */
+ re_node_set new_dests;
+ reg_errcode_t err2, err3;
+ next_node = dfa->edests[ent->node].elems[0];
+ if (re_node_set_contains (cur_nodes, next_node))
+ continue;
+ err = re_node_set_init_1 (&new_dests, next_node);
+ err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type);
+ err3 = re_node_set_merge (cur_nodes, &new_dests);
+ re_node_set_free (&new_dests);
+ if (BE (err != REG_NOERROR || err2 != REG_NOERROR
+ || err3 != REG_NOERROR, 0))
+ {
+ err = (err != REG_NOERROR ? err
+ : (err2 != REG_NOERROR ? err2 : err3));
+ return err;
+ }
+ /* TODO: It is still inefficient... */
+ goto restart;
+ }
+ else
+ {
+ re_node_set union_set;
+ next_node = dfa->nexts[ent->node];
+ if (mctx->state_log[to_idx])
+ {
+ bool ok;
+ if (re_node_set_contains (&mctx->state_log[to_idx]->nodes,
+ next_node))
+ continue;
+ err = re_node_set_init_copy (&union_set,
+ &mctx->state_log[to_idx]->nodes);
+ ok = re_node_set_insert (&union_set, next_node);
+ if (BE (err != REG_NOERROR || ! ok, 0))
+ {
+ re_node_set_free (&union_set);
+ err = err != REG_NOERROR ? err : REG_ESPACE;
+ return err;
+ }
+ }
+ else
+ {
+ err = re_node_set_init_1 (&union_set, next_node);
+ if (BE (err != REG_NOERROR, 0))
+ return err;
+ }
+ mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set);
+ re_node_set_free (&union_set);
+ if (BE (mctx->state_log[to_idx] == NULL
+ && err != REG_NOERROR, 0))
+ return err;
+ }
+ }
+ while (ent++->more);
+ return REG_NOERROR;
+}
+
+/* Build transition table for the state.
+ Return true if successful. */
+
+static bool
+internal_function
+build_trtable (const re_dfa_t *dfa, re_dfastate_t *state)
+{
+ reg_errcode_t err;
+ Idx i, j;
+ int ch;
+ bool need_word_trtable = false;
+ bitset_word_t elem, mask;
+ bool dests_node_malloced = false;
+ bool dest_states_malloced = false;
+ Idx ndests; /* Number of the destination states from 'state'. */
+ re_dfastate_t **trtable;
+ re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl;
+ re_node_set follows, *dests_node;
+ bitset_t *dests_ch;
+ bitset_t acceptable;
+
+ struct dests_alloc
+ {
+ re_node_set dests_node[SBC_MAX];
+ bitset_t dests_ch[SBC_MAX];
+ } *dests_alloc;
+
+ /* We build DFA states which corresponds to the destination nodes
+ from 'state'. 'dests_node[i]' represents the nodes which i-th
+ destination state contains, and 'dests_ch[i]' represents the
+ characters which i-th destination state accepts. */
+ if (__libc_use_alloca (sizeof (struct dests_alloc)))
+ dests_alloc = (struct dests_alloc *) alloca (sizeof (struct dests_alloc));
+ else
+ {
+ dests_alloc = re_malloc (struct dests_alloc, 1);
+ if (BE (dests_alloc == NULL, 0))
+ return false;
+ dests_node_malloced = true;
+ }
+ dests_node = dests_alloc->dests_node;
+ dests_ch = dests_alloc->dests_ch;
+
+ /* Initialize transiton table. */
+ state->word_trtable = state->trtable = NULL;
+
+ /* At first, group all nodes belonging to 'state' into several
+ destinations. */
+ ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch);
+ if (BE (! REG_VALID_NONZERO_INDEX (ndests), 0))
+ {
+ if (dests_node_malloced)
+ free (dests_alloc);
+ if (ndests == 0)
+ {
+ state->trtable = (re_dfastate_t **)
+ calloc (sizeof (re_dfastate_t *), SBC_MAX);
+ if (BE (state->trtable == NULL, 0))
+ return false;
+ return true;
+ }
+ return false;
+ }
+
+ err = re_node_set_alloc (&follows, ndests + 1);
+ if (BE (err != REG_NOERROR, 0))
+ goto out_free;
+
+ /* Avoid arithmetic overflow in size calculation. */
+ if (BE ((((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX)
+ / (3 * sizeof (re_dfastate_t *)))
+ < ndests),
+ 0))
+ goto out_free;
+
+ if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX
+ + ndests * 3 * sizeof (re_dfastate_t *)))
+ dest_states = (re_dfastate_t **)
+ alloca (ndests * 3 * sizeof (re_dfastate_t *));
+ else
+ {
+ dest_states = (re_dfastate_t **)
+ malloc (ndests * 3 * sizeof (re_dfastate_t *));
+ if (BE (dest_states == NULL, 0))
+ {
+out_free:
+ if (dest_states_malloced)
+ free (dest_states);
+ re_node_set_free (&follows);
+ for (i = 0; i < ndests; ++i)
+ re_node_set_free (dests_node + i);
+ if (dests_node_malloced)
+ free (dests_alloc);
+ return false;
+ }
+ dest_states_malloced = true;
+ }
+ dest_states_word = dest_states + ndests;
+ dest_states_nl = dest_states_word + ndests;
+ bitset_empty (acceptable);
+
+ /* Then build the states for all destinations. */
+ for (i = 0; i < ndests; ++i)
+ {
+ Idx next_node;
+ re_node_set_empty (&follows);
+ /* Merge the follows of this destination states. */
+ for (j = 0; j < dests_node[i].nelem; ++j)
+ {
+ next_node = dfa->nexts[dests_node[i].elems[j]];
+ if (next_node != REG_MISSING)
+ {
+ err = re_node_set_merge (&follows, dfa->eclosures + next_node);
+ if (BE (err != REG_NOERROR, 0))
+ goto out_free;
+ }
+ }
+ dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0);
+ if (BE (dest_states[i] == NULL && err != REG_NOERROR, 0))
+ goto out_free;
+ /* If the new state has context constraint,
+ build appropriate states for these contexts. */
+ if (dest_states[i]->has_constraint)
+ {
+ dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows,
+ CONTEXT_WORD);
+ if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0))
+ goto out_free;
+
+ if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1)
+ need_word_trtable = true;
+
+ dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows,
+ CONTEXT_NEWLINE);
+ if (BE (dest_states_nl[i] == NULL && err != REG_NOERROR, 0))
+ goto out_free;
+ }
+ else
+ {
+ dest_states_word[i] = dest_states[i];
+ dest_states_nl[i] = dest_states[i];
+ }
+ bitset_merge (acceptable, dests_ch[i]);
+ }
+
+ if (!BE (need_word_trtable, 0))
+ {
+ /* We don't care about whether the following character is a word
+ character, or we are in a single-byte character set so we can
+ discern by looking at the character code: allocate a
+ 256-entry transition table. */
+ trtable = state->trtable =
+ (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX);
+ if (BE (trtable == NULL, 0))
+ goto out_free;
+
+ /* For all characters ch...: */
+ for (i = 0; i < BITSET_WORDS; ++i)
+ for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
+ elem;
+ mask <<= 1, elem >>= 1, ++ch)
+ if (BE (elem & 1, 0))
+ {
+ /* There must be exactly one destination which accepts
+ character ch. See group_nodes_into_DFAstates. */
+ for (j = 0; (dests_ch[j][i] & mask) == 0; ++j)
+ ;
+
+ /* j-th destination accepts the word character ch. */
+ if (dfa->word_char[i] & mask)
+ trtable[ch] = dest_states_word[j];
+ else
+ trtable[ch] = dest_states[j];
+ }
+ }
+ else
+ {
+ /* We care about whether the following character is a word
+ character, and we are in a multi-byte character set: discern
+ by looking at the character code: build two 256-entry
+ transition tables, one starting at trtable[0] and one
+ starting at trtable[SBC_MAX]. */
+ trtable = state->word_trtable =
+ (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX);
+ if (BE (trtable == NULL, 0))
+ goto out_free;
+
+ /* For all characters ch...: */
+ for (i = 0; i < BITSET_WORDS; ++i)
+ for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1;
+ elem;
+ mask <<= 1, elem >>= 1, ++ch)
+ if (BE (elem & 1, 0))
+ {
+ /* There must be exactly one destination which accepts
+ character ch. See group_nodes_into_DFAstates. */
+ for (j = 0; (dests_ch[j][i] & mask) == 0; ++j)
+ ;
+
+ /* j-th destination accepts the word character ch. */
+ trtable[ch] = dest_states[j];
+ trtable[ch + SBC_MAX] = dest_states_word[j];
+ }
+ }
+
+ /* new line */
+ if (bitset_contain (acceptable, NEWLINE_CHAR))
+ {
+ /* The current state accepts newline character. */
+ for (j = 0; j < ndests; ++j)
+ if (bitset_contain (dests_ch[j], NEWLINE_CHAR))
+ {
+ /* k-th destination accepts newline character. */
+ trtable[NEWLINE_CHAR] = dest_states_nl[j];
+ if (need_word_trtable)
+ trtable[NEWLINE_CHAR + SBC_MAX] = dest_states_nl[j];
+ /* There must be only one destination which accepts
+ newline. See group_nodes_into_DFAstates. */
+ break;
+ }
+ }
+
+ if (dest_states_malloced)
+ free (dest_states);
+
+ re_node_set_free (&follows);
+ for (i = 0; i < ndests; ++i)
+ re_node_set_free (dests_node + i);
+
+ if (dests_node_malloced)
+ free (dests_alloc);
+
+ return true;
+}
+
+/* Group all nodes belonging to STATE into several destinations.
+ Then for all destinations, set the nodes belonging to the destination
+ to DESTS_NODE[i] and set the characters accepted by the destination
+ to DEST_CH[i]. This function return the number of destinations. */
+
+static Idx
+internal_function
+group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state,
+ re_node_set *dests_node, bitset_t *dests_ch)
+{
+ reg_errcode_t err;
+ bool ok;
+ Idx i, j, k;
+ Idx ndests; /* Number of the destinations from 'state'. */
+ bitset_t accepts; /* Characters a node can accept. */
+ const re_node_set *cur_nodes = &state->nodes;
+ bitset_empty (accepts);
+ ndests = 0;
+
+ /* For all the nodes belonging to 'state', */
+ for (i = 0; i < cur_nodes->nelem; ++i)
+ {
+ re_token_t *node = &dfa->nodes[cur_nodes->elems[i]];
+ re_token_type_t type = node->type;
+ unsigned int constraint = node->constraint;
+
+ /* Enumerate all single byte character this node can accept. */
+ if (type == CHARACTER)
+ bitset_set (accepts, node->opr.c);
+ else if (type == SIMPLE_BRACKET)
+ {
+ bitset_merge (accepts, node->opr.sbcset);
+ }
+ else if (type == OP_PERIOD)
+ {
+#ifdef RE_ENABLE_I18N
+ if (dfa->mb_cur_max > 1)
+ bitset_merge (accepts, dfa->sb_char);
+ else
+#endif
+ bitset_set_all (accepts);
+ if (!(dfa->syntax & RE_DOT_NEWLINE))
+ bitset_clear (accepts, '\n');
+ if (dfa->syntax & RE_DOT_NOT_NULL)
+ bitset_clear (accepts, '\0');
+ }
+#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
+ bitset_merge (accepts, utf8_sb_map);
+ if (!(dfa->syntax & RE_DOT_NEWLINE))
+ bitset_clear (accepts, '\n');
+ if (dfa->syntax & RE_DOT_NOT_NULL)
+ bitset_clear (accepts, '\0');
+ }
+#endif
+ else
+ continue;
+
+ /* Check the 'accepts' and sift the characters which are not
+ match it the context. */
+ if (constraint)
+ {
+ if (constraint & NEXT_NEWLINE_CONSTRAINT)
+ {
+ bool accepts_newline = bitset_contain (accepts, NEWLINE_CHAR);
+ bitset_empty (accepts);
+ if (accepts_newline)
+ bitset_set (accepts, NEWLINE_CHAR);
+ else
+ continue;
+ }
+ if (constraint & NEXT_ENDBUF_CONSTRAINT)
+ {
+ bitset_empty (accepts);
+ continue;
+ }
+
+ if (constraint & NEXT_WORD_CONSTRAINT)
+ {
+ bitset_word_t any_set = 0;
+ if (type == CHARACTER && !node->word_char)
+ {
+ bitset_empty (accepts);
+ continue;
+ }
+#ifdef RE_ENABLE_I18N
+ if (dfa->mb_cur_max > 1)
+ for (j = 0; j < BITSET_WORDS; ++j)
+ any_set |= (accepts[j] &= (dfa->word_char[j] | ~dfa->sb_char[j]));
+ else
+#endif
+ for (j = 0; j < BITSET_WORDS; ++j)
+ any_set |= (accepts[j] &= dfa->word_char[j]);
+ if (!any_set)
+ continue;
+ }
+ if (constraint & NEXT_NOTWORD_CONSTRAINT)
+ {
+ bitset_word_t any_set = 0;
+ if (type == CHARACTER && node->word_char)
+ {
+ bitset_empty (accepts);
+ continue;
+ }
+#ifdef RE_ENABLE_I18N
+ if (dfa->mb_cur_max > 1)
+ for (j = 0; j < BITSET_WORDS; ++j)
+ any_set |= (accepts[j] &= ~(dfa->word_char[j] & dfa->sb_char[j]));
+ else
+#endif
+ for (j = 0; j < BITSET_WORDS; ++j)
+ any_set |= (accepts[j] &= ~dfa->word_char[j]);
+ if (!any_set)
+ continue;
+ }
+ }
+
+ /* Then divide 'accepts' into DFA states, or create a new
+ state. Above, we make sure that accepts is not empty. */
+ for (j = 0; j < ndests; ++j)
+ {
+ bitset_t intersec; /* Intersection sets, see below. */
+ bitset_t remains;
+ /* Flags, see below. */
+ bitset_word_t has_intersec, not_subset, not_consumed;
+
+ /* Optimization, skip if this state doesn't accept the character. */
+ if (type == CHARACTER && !bitset_contain (dests_ch[j], node->opr.c))
+ continue;
+
+ /* Enumerate the intersection set of this state and 'accepts'. */
+ has_intersec = 0;
+ for (k = 0; k < BITSET_WORDS; ++k)
+ has_intersec |= intersec[k] = accepts[k] & dests_ch[j][k];
+ /* And skip if the intersection set is empty. */
+ if (!has_intersec)
+ continue;
+
+ /* Then check if this state is a subset of 'accepts'. */
+ not_subset = not_consumed = 0;
+ for (k = 0; k < BITSET_WORDS; ++k)
+ {
+ not_subset |= remains[k] = ~accepts[k] & dests_ch[j][k];
+ not_consumed |= accepts[k] = accepts[k] & ~dests_ch[j][k];
+ }
+
+ /* If this state isn't a subset of 'accepts', create a
+ new group state, which has the 'remains'. */
+ if (not_subset)
+ {
+ bitset_copy (dests_ch[ndests], remains);
+ bitset_copy (dests_ch[j], intersec);
+ err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]);
+ if (BE (err != REG_NOERROR, 0))
+ goto error_return;
+ ++ndests;
+ }
+
+ /* Put the position in the current group. */
+ ok = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]);
+ if (BE (! ok, 0))
+ goto error_return;
+
+ /* If all characters are consumed, go to next node. */
+ if (!not_consumed)
+ break;
+ }
+ /* Some characters remain, create a new group. */
+ if (j == ndests)
+ {
+ bitset_copy (dests_ch[ndests], accepts);
+ err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]);
+ if (BE (err != REG_NOERROR, 0))
+ goto error_return;
+ ++ndests;
+ bitset_empty (accepts);
+ }
+ }
+ return ndests;
+ error_return:
+ for (j = 0; j < ndests; ++j)
+ re_node_set_free (dests_node + j);
+ return REG_MISSING;
+}
+
+#ifdef RE_ENABLE_I18N
+/* Check how many bytes the node 'dfa->nodes[node_idx]' accepts.
+ Return the number of the bytes the node accepts.
+ STR_IDX is the current index of the input string.
+
+ This function handles the nodes which can accept one character, or
+ one collating element like '.', '[a-z]', opposite to the other nodes
+ can only accept one byte. */
+
+static int
+internal_function
+check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx,
+ const re_string_t *input, Idx str_idx)
+{
+ const re_token_t *node = dfa->nodes + node_idx;
+ int char_len, elem_len;
+ Idx i;
+
+ if (BE (node->type == OP_UTF8_PERIOD, 0))
+ {
+ unsigned char c = re_string_byte_at (input, str_idx), d;
+ if (BE (c < 0xc2, 1))
+ return 0;
+
+ if (str_idx + 2 > input->len)
+ return 0;
+
+ d = re_string_byte_at (input, str_idx + 1);
+ if (c < 0xe0)
+ return (d < 0x80 || d > 0xbf) ? 0 : 2;
+ else if (c < 0xf0)
+ {
+ char_len = 3;
+ if (c == 0xe0 && d < 0xa0)
+ return 0;
+ }
+ else if (c < 0xf8)
+ {
+ char_len = 4;
+ if (c == 0xf0 && d < 0x90)
+ return 0;
+ }
+ else if (c < 0xfc)
+ {
+ char_len = 5;
+ if (c == 0xf8 && d < 0x88)
+ return 0;
+ }
+ else if (c < 0xfe)
+ {
+ char_len = 6;
+ if (c == 0xfc && d < 0x84)
+ return 0;
+ }
+ else
+ return 0;
+
+ if (str_idx + char_len > input->len)
+ return 0;
+
+ for (i = 1; i < char_len; ++i)
+ {
+ d = re_string_byte_at (input, str_idx + i);
+ if (d < 0x80 || d > 0xbf)
+ return 0;
+ }
+ return char_len;
+ }
+
+ char_len = re_string_char_size_at (input, str_idx);
+ if (node->type == OP_PERIOD)
+ {
+ if (char_len <= 1)
+ 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. */
+ if ((!(dfa->syntax & RE_DOT_NEWLINE) &&
+ re_string_byte_at (input, str_idx) == '\n') ||
+ ((dfa->syntax & RE_DOT_NOT_NULL) &&
+ re_string_byte_at (input, str_idx) == '\0'))
+ return 0;
+ return char_len;
+ }
+
+ elem_len = re_string_elem_size_at (input, str_idx);
+ if ((elem_len <= 1 && char_len <= 1) || char_len == 0)
+ return 0;
+
+ if (node->type == COMPLEX_BRACKET)
+ {
+ const re_charset_t *cset = node->opr.mbcset;
+# ifdef _LIBC
+ const unsigned char *pin
+ = ((const unsigned char *) re_string_get_buffer (input) + str_idx);
+ Idx j;
+ uint32_t nrules;
+# endif /* _LIBC */
+ int match_len = 0;
+ wchar_t wc = ((cset->nranges || cset->nchar_classes || cset->nmbchars)
+ ? re_string_wchar_at (input, str_idx) : 0);
+
+ /* match with multibyte character? */
+ for (i = 0; i < cset->nmbchars; ++i)
+ if (wc == cset->mbchars[i])
+ {
+ match_len = char_len;
+ goto check_node_accept_bytes_match;
+ }
+ /* match with character_class? */
+ for (i = 0; i < cset->nchar_classes; ++i)
+ {
+ wctype_t wt = cset->char_classes[i];
+ if (__iswctype (wc, wt))
+ {
+ match_len = char_len;
+ goto check_node_accept_bytes_match;
+ }
+ }
+
+# ifdef _LIBC
+ nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+ if (nrules != 0)
+ {
+ unsigned int in_collseq = 0;
+ const int32_t *table, *indirect;
+ const unsigned char *weights, *extra;
+ const char *collseqwc;
+ int32_t idx;
+ /* This #include defines a local function! */
+# include <locale/weight.h>
+
+ /* match with collating_symbol? */
+ if (cset->ncoll_syms)
+ extra = (const unsigned char *)
+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
+ for (i = 0; i < cset->ncoll_syms; ++i)
+ {
+ const unsigned char *coll_sym = extra + cset->coll_syms[i];
+ /* Compare the length of input collating element and
+ the length of current collating element. */
+ if (*coll_sym != elem_len)
+ continue;
+ /* Compare each bytes. */
+ for (j = 0; j < *coll_sym; j++)
+ if (pin[j] != coll_sym[1 + j])
+ break;
+ if (j == *coll_sym)
+ {
+ /* Match if every bytes is equal. */
+ match_len = j;
+ goto check_node_accept_bytes_match;
+ }
+ }
+
+ if (cset->nranges)
+ {
+ if (elem_len <= char_len)
+ {
+ collseqwc = _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQWC);
+ in_collseq = __collseq_table_lookup (collseqwc, wc);
+ }
+ else
+ in_collseq = find_collation_sequence_value (pin, elem_len);
+ }
+ /* match with range expression? */
+ for (i = 0; i < cset->nranges; ++i)
+ if (cset->range_starts[i] <= in_collseq
+ && in_collseq <= cset->range_ends[i])
+ {
+ match_len = elem_len;
+ goto check_node_accept_bytes_match;
+ }
+
+ /* match with equivalence_class? */
+ if (cset->nequiv_classes)
+ {
+ const unsigned char *cp = pin;
+ 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);
+ 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 & 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]))
+ ++cnt;
+ if (cnt > weight_len)
+ {
+ match_len = elem_len;
+ goto check_node_accept_bytes_match;
+ }
+ }
+ }
+ }
+ }
+ else
+# endif /* _LIBC */
+ {
+ /* match with range expression? */
+#if __GNUC__ >= 2 && ! (__STDC_VERSION__ < 199901L && defined __STRICT_ANSI__)
+ wchar_t cmp_buf[] = {L'\0', L'\0', wc, L'\0', L'\0', L'\0'};
+#else
+ wchar_t cmp_buf[] = {L'\0', L'\0', L'\0', L'\0', L'\0', L'\0'};
+ cmp_buf[2] = wc;
+#endif
+ for (i = 0; i < cset->nranges; ++i)
+ {
+ cmp_buf[0] = cset->range_starts[i];
+ cmp_buf[4] = cset->range_ends[i];
+ if (wcscoll (cmp_buf, cmp_buf + 2) <= 0
+ && wcscoll (cmp_buf + 2, cmp_buf + 4) <= 0)
+ {
+ match_len = char_len;
+ goto check_node_accept_bytes_match;
+ }
+ }
+ }
+ check_node_accept_bytes_match:
+ if (!cset->non_match)
+ return match_len;
+ else
+ {
+ if (match_len > 0)
+ return 0;
+ else
+ return (elem_len > char_len) ? elem_len : char_len;
+ }
+ }
+ return 0;
+}
+
+# ifdef _LIBC
+static unsigned int
+internal_function
+find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len)
+{
+ uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES);
+ if (nrules == 0)
+ {
+ if (mbs_len == 1)
+ {
+ /* No valid character. Match it as a single byte character. */
+ const unsigned char *collseq = (const unsigned char *)
+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_COLLSEQMB);
+ return collseq[mbs[0]];
+ }
+ return UINT_MAX;
+ }
+ else
+ {
+ int32_t idx;
+ const unsigned char *extra = (const unsigned char *)
+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB);
+ int32_t extrasize = (const unsigned char *)
+ _NL_CURRENT (LC_COLLATE, _NL_COLLATE_SYMB_EXTRAMB + 1) - extra;
+
+ for (idx = 0; idx < extrasize;)
+ {
+ int mbs_cnt;
+ bool found = false;
+ int32_t elem_mbs_len;
+ /* Skip the name of collating element name. */
+ idx = idx + extra[idx] + 1;
+ elem_mbs_len = extra[idx++];
+ if (mbs_len == elem_mbs_len)
+ {
+ for (mbs_cnt = 0; mbs_cnt < elem_mbs_len; ++mbs_cnt)
+ if (extra[idx + mbs_cnt] != mbs[mbs_cnt])
+ break;
+ if (mbs_cnt == elem_mbs_len)
+ /* Found the entry. */
+ found = true;
+ }
+ /* Skip the byte sequence of the collating element. */
+ idx += elem_mbs_len;
+ /* Adjust for the alignment. */
+ idx = (idx + 3) & ~3;
+ /* Skip the collation sequence value. */
+ idx += sizeof (uint32_t);
+ /* Skip the wide char sequence of the collating element. */
+ idx = idx + sizeof (uint32_t) * (extra[idx] + 1);
+ /* If we found the entry, return the sequence value. */
+ if (found)
+ return *(uint32_t *) (extra + idx);
+ /* Skip the collation sequence value. */
+ idx += sizeof (uint32_t);
+ }
+ return UINT_MAX;
+ }
+}
+# endif /* _LIBC */
+#endif /* RE_ENABLE_I18N */
+
+/* Check whether the node accepts the byte which is IDX-th
+ byte of the INPUT. */
+
+static bool
+internal_function
+check_node_accept (const re_match_context_t *mctx, const re_token_t *node,
+ Idx idx)
+{
+ unsigned char ch;
+ ch = re_string_byte_at (&mctx->input, idx);
+ switch (node->type)
+ {
+ case CHARACTER:
+ if (node->opr.c != ch)
+ return false;
+ break;
+
+ case SIMPLE_BRACKET:
+ if (!bitset_contain (node->opr.sbcset, ch))
+ return false;
+ break;
+
+#ifdef RE_ENABLE_I18N
+ case OP_UTF8_PERIOD:
+ if (ch >= ASCII_CHARS)
+ return false;
+ /* FALLTHROUGH */
+#endif
+ case OP_PERIOD:
+ if ((ch == '\n' && !(mctx->dfa->syntax & RE_DOT_NEWLINE))
+ || (ch == '\0' && (mctx->dfa->syntax & RE_DOT_NOT_NULL)))
+ return false;
+ break;
+
+ default:
+ return false;
+ }
+
+ if (node->constraint)
+ {
+ /* The node has constraints. Check whether the current context
+ satisfies the constraints. */
+ unsigned int context = re_string_context_at (&mctx->input, idx,
+ mctx->eflags);
+ if (NOT_SATISFY_NEXT_CONSTRAINT (node->constraint, context))
+ return false;
+ }
+
+ return true;
+}
+
+/* Extend the buffers, if the buffers have run out. */
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+extend_buffers (re_match_context_t *mctx)
+{
+ reg_errcode_t ret;
+ re_string_t *pstr = &mctx->input;
+
+ /* Avoid overflow. */
+ if (BE (SIZE_MAX / 2 / sizeof (re_dfastate_t *) <= pstr->bufs_len, 0))
+ return REG_ESPACE;
+
+ /* Double the lengthes of the buffers. */
+ ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2);
+ if (BE (ret != REG_NOERROR, 0))
+ return ret;
+
+ if (mctx->state_log != NULL)
+ {
+ /* And double the length of state_log. */
+ /* XXX We have no indication of the size of this buffer. If this
+ allocation fail we have no indication that the state_log array
+ does not have the right size. */
+ re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *,
+ pstr->bufs_len + 1);
+ if (BE (new_array == NULL, 0))
+ return REG_ESPACE;
+ mctx->state_log = new_array;
+ }
+
+ /* Then reconstruct the buffers. */
+ if (pstr->icase)
+ {
+#ifdef RE_ENABLE_I18N
+ if (pstr->mb_cur_max > 1)
+ {
+ ret = build_wcs_upper_buffer (pstr);
+ if (BE (ret != REG_NOERROR, 0))
+ return ret;
+ }
+ else
+#endif /* RE_ENABLE_I18N */
+ build_upper_buffer (pstr);
+ }
+ else
+ {
+#ifdef RE_ENABLE_I18N
+ if (pstr->mb_cur_max > 1)
+ build_wcs_buffer (pstr);
+ else
+#endif /* RE_ENABLE_I18N */
+ {
+ if (pstr->trans != NULL)
+ re_string_translate_buffer (pstr);
+ }
+ }
+ return REG_NOERROR;
+}
+
+
+/* Functions for matching context. */
+
+/* Initialize MCTX. */
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+match_ctx_init (re_match_context_t *mctx, int eflags, Idx n)
+{
+ mctx->eflags = eflags;
+ mctx->match_last = REG_MISSING;
+ if (n > 0)
+ {
+ /* Avoid overflow. */
+ size_t max_object_size =
+ MAX (sizeof (struct re_backref_cache_entry),
+ sizeof (re_sub_match_top_t *));
+ if (BE (SIZE_MAX / max_object_size < n, 0))
+ return REG_ESPACE;
+
+ mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n);
+ mctx->sub_tops = re_malloc (re_sub_match_top_t *, n);
+ if (BE (mctx->bkref_ents == NULL || mctx->sub_tops == NULL, 0))
+ return REG_ESPACE;
+ }
+ /* Already zero-ed by the caller.
+ else
+ mctx->bkref_ents = NULL;
+ mctx->nbkref_ents = 0;
+ mctx->nsub_tops = 0; */
+ mctx->abkref_ents = n;
+ mctx->max_mb_elem_len = 1;
+ mctx->asub_tops = n;
+ return REG_NOERROR;
+}
+
+/* Clean the entries which depend on the current input in MCTX.
+ This function must be invoked when the matcher changes the start index
+ of the input, or changes the input string. */
+
+static void
+internal_function
+match_ctx_clean (re_match_context_t *mctx)
+{
+ Idx st_idx;
+ for (st_idx = 0; st_idx < mctx->nsub_tops; ++st_idx)
+ {
+ Idx sl_idx;
+ re_sub_match_top_t *top = mctx->sub_tops[st_idx];
+ for (sl_idx = 0; sl_idx < top->nlasts; ++sl_idx)
+ {
+ re_sub_match_last_t *last = top->lasts[sl_idx];
+ re_free (last->path.array);
+ re_free (last);
+ }
+ re_free (top->lasts);
+ if (top->path)
+ {
+ re_free (top->path->array);
+ re_free (top->path);
+ }
+ free (top);
+ }
+
+ mctx->nsub_tops = 0;
+ mctx->nbkref_ents = 0;
+}
+
+/* Free all the memory associated with MCTX. */
+
+static void
+internal_function
+match_ctx_free (re_match_context_t *mctx)
+{
+ /* First, free all the memory associated with MCTX->SUB_TOPS. */
+ match_ctx_clean (mctx);
+ re_free (mctx->sub_tops);
+ re_free (mctx->bkref_ents);
+}
+
+/* Add a new backreference entry to MCTX.
+ Note that we assume that caller never call this function with duplicate
+ entry, and call with STR_IDX which isn't smaller than any existing entry.
+*/
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from,
+ Idx to)
+{
+ if (mctx->nbkref_ents >= mctx->abkref_ents)
+ {
+ struct re_backref_cache_entry* new_entry;
+ new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry,
+ mctx->abkref_ents * 2);
+ if (BE (new_entry == NULL, 0))
+ {
+ re_free (mctx->bkref_ents);
+ return REG_ESPACE;
+ }
+ mctx->bkref_ents = new_entry;
+ memset (mctx->bkref_ents + mctx->nbkref_ents, '\0',
+ sizeof (struct re_backref_cache_entry) * mctx->abkref_ents);
+ mctx->abkref_ents *= 2;
+ }
+ if (mctx->nbkref_ents > 0
+ && mctx->bkref_ents[mctx->nbkref_ents - 1].str_idx == str_idx)
+ mctx->bkref_ents[mctx->nbkref_ents - 1].more = 1;
+
+ mctx->bkref_ents[mctx->nbkref_ents].node = node;
+ mctx->bkref_ents[mctx->nbkref_ents].str_idx = str_idx;
+ mctx->bkref_ents[mctx->nbkref_ents].subexp_from = from;
+ mctx->bkref_ents[mctx->nbkref_ents].subexp_to = to;
+
+ /* This is a cache that saves negative results of check_dst_limits_calc_pos.
+ If bit N is clear, means that this entry won't epsilon-transition to
+ an OP_OPEN_SUBEXP or OP_CLOSE_SUBEXP for the N+1-th subexpression. If
+ it is set, check_dst_limits_calc_pos_1 will recurse and try to find one
+ such node.
+
+ A backreference does not epsilon-transition unless it is empty, so set
+ to all zeros if FROM != TO. */
+ mctx->bkref_ents[mctx->nbkref_ents].eps_reachable_subexps_map
+ = (from == to ? -1 : 0);
+
+ mctx->bkref_ents[mctx->nbkref_ents++].more = 0;
+ if (mctx->max_mb_elem_len < to - from)
+ mctx->max_mb_elem_len = to - from;
+ return REG_NOERROR;
+}
+
+/* Return the first entry with the same str_idx, or REG_MISSING if none is
+ found. Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX. */
+
+static Idx
+internal_function
+search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx)
+{
+ Idx left, right, mid, last;
+ last = right = mctx->nbkref_ents;
+ for (left = 0; left < right;)
+ {
+ mid = (left + right) / 2;
+ if (mctx->bkref_ents[mid].str_idx < str_idx)
+ left = mid + 1;
+ else
+ right = mid;
+ }
+ if (left < last && mctx->bkref_ents[left].str_idx == str_idx)
+ return left;
+ else
+ return REG_MISSING;
+}
+
+/* Register the node NODE, whose type is OP_OPEN_SUBEXP, and which matches
+ at STR_IDX. */
+
+static reg_errcode_t
+internal_function __attribute_warn_unused_result__
+match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx)
+{
+#ifdef DEBUG
+ assert (mctx->sub_tops != NULL);
+ assert (mctx->asub_tops > 0);
+#endif
+ if (BE (mctx->nsub_tops == mctx->asub_tops, 0))
+ {
+ Idx new_asub_tops = mctx->asub_tops * 2;
+ re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops,
+ re_sub_match_top_t *,
+ new_asub_tops);
+ if (BE (new_array == NULL, 0))
+ return REG_ESPACE;
+ mctx->sub_tops = new_array;
+ mctx->asub_tops = new_asub_tops;
+ }
+ mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t));
+ if (BE (mctx->sub_tops[mctx->nsub_tops] == NULL, 0))
+ return REG_ESPACE;
+ mctx->sub_tops[mctx->nsub_tops]->node = node;
+ mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx;
+ return REG_NOERROR;
+}
+
+/* Register the node NODE, whose type is OP_CLOSE_SUBEXP, and which matches
+ at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP. */
+
+static re_sub_match_last_t *
+internal_function
+match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx)
+{
+ re_sub_match_last_t *new_entry;
+ if (BE (subtop->nlasts == subtop->alasts, 0))
+ {
+ Idx new_alasts = 2 * subtop->alasts + 1;
+ re_sub_match_last_t **new_array = re_realloc (subtop->lasts,
+ re_sub_match_last_t *,
+ new_alasts);
+ if (BE (new_array == NULL, 0))
+ return NULL;
+ subtop->lasts = new_array;
+ subtop->alasts = new_alasts;
+ }
+ new_entry = calloc (1, sizeof (re_sub_match_last_t));
+ if (BE (new_entry != NULL, 1))
+ {
+ subtop->lasts[subtop->nlasts] = new_entry;
+ new_entry->node = node;
+ new_entry->str_idx = str_idx;
+ ++subtop->nlasts;
+ }
+ return new_entry;
+}
+
+static void
+internal_function
+sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts,
+ re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx)
+{
+ sctx->sifted_states = sifted_sts;
+ sctx->limited_states = limited_sts;
+ sctx->last_node = last_node;
+ sctx->last_str_idx = last_str_idx;
+ re_node_set_init_empty (&sctx->limits);
+}
diff --git a/gnu/rename.c b/gnu/rename.c
new file mode 100644
index 00000000..7926c62d
--- /dev/null
+++ b/gnu/rename.c
@@ -0,0 +1,475 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Work around rename bugs in some systems.
+
+ Copyright (C) 2001-2003, 2005-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Volker Borchert, Eric Blake. */
+
+#include <config.h>
+
+#include <stdio.h>
+
+#undef rename
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* The mingw rename has problems with trailing slashes; it also
+ requires use of native Windows calls to allow atomic renames over
+ existing files. */
+
+# include <errno.h>
+# include <stdbool.h>
+# include <stdlib.h>
+# include <sys/stat.h>
+# include <unistd.h>
+
+# define WIN32_LEAN_AND_MEAN
+# include <windows.h>
+
+# include "dirname.h"
+
+/* Rename the file SRC to DST. This replacement is necessary on
+ Windows, on which the system rename function will not replace
+ an existing DST. */
+int
+rpl_rename (char const *src, char const *dst)
+{
+ int error;
+ size_t src_len = strlen (src);
+ size_t dst_len = strlen (dst);
+ char *src_base = last_component (src);
+ char *dst_base = last_component (dst);
+ bool src_slash;
+ bool dst_slash;
+ bool dst_exists;
+ struct stat src_st;
+ struct stat dst_st;
+
+ /* Filter out dot as last component. */
+ if (!src_len || !dst_len)
+ {
+ errno = ENOENT;
+ return -1;
+ }
+ if (*src_base == '.')
+ {
+ size_t len = base_len (src_base);
+ if (len == 1 || (len == 2 && src_base[1] == '.'))
+ {
+ errno = EINVAL;
+ return -1;
+ }
+ }
+ if (*dst_base == '.')
+ {
+ size_t len = base_len (dst_base);
+ if (len == 1 || (len == 2 && dst_base[1] == '.'))
+ {
+ errno = EINVAL;
+ return -1;
+ }
+ }
+
+ /* Presence of a trailing slash requires directory semantics. If
+ the source does not exist, or if the destination cannot be turned
+ into a directory, give up now. Otherwise, strip trailing slashes
+ before calling rename. There are no symlinks on mingw, so stat
+ works instead of lstat. */
+ src_slash = ISSLASH (src[src_len - 1]);
+ dst_slash = ISSLASH (dst[dst_len - 1]);
+ if (stat (src, &src_st))
+ return -1;
+ if (stat (dst, &dst_st))
+ {
+ if (errno != ENOENT || (!S_ISDIR (src_st.st_mode) && dst_slash))
+ return -1;
+ dst_exists = false;
+ }
+ else
+ {
+ if (S_ISDIR (dst_st.st_mode) != S_ISDIR (src_st.st_mode))
+ {
+ errno = S_ISDIR (dst_st.st_mode) ? EISDIR : ENOTDIR;
+ return -1;
+ }
+ dst_exists = true;
+ }
+
+ /* There are no symlinks, so if a file existed with a trailing
+ slash, it must be a directory, and we don't have to worry about
+ stripping strip trailing slash. However, mingw refuses to
+ replace an existing empty directory, so we have to help it out.
+ And canonicalize_file_name is not yet ported to mingw; however,
+ for directories, getcwd works as a viable alternative. Ensure
+ that we can get back to where we started before using it; later
+ attempts to return are fatal. Note that we can end up losing a
+ directory if rename then fails, but it was empty, so not much
+ damage was done. */
+ if (dst_exists && S_ISDIR (dst_st.st_mode))
+ {
+ char *cwd = getcwd (NULL, 0);
+ char *src_temp;
+ char *dst_temp;
+ if (!cwd || chdir (cwd))
+ return -1;
+ if (IS_ABSOLUTE_FILE_NAME (src))
+ {
+ dst_temp = chdir (dst) ? NULL : getcwd (NULL, 0);
+ src_temp = chdir (src) ? NULL : getcwd (NULL, 0);
+ }
+ else
+ {
+ src_temp = chdir (src) ? NULL : getcwd (NULL, 0);
+ if (!IS_ABSOLUTE_FILE_NAME (dst) && chdir (cwd))
+ abort ();
+ dst_temp = chdir (dst) ? NULL : getcwd (NULL, 0);
+ }
+ if (chdir (cwd))
+ abort ();
+ free (cwd);
+ if (!src_temp || !dst_temp)
+ {
+ free (src_temp);
+ free (dst_temp);
+ errno = ENOMEM;
+ return -1;
+ }
+ src_len = strlen (src_temp);
+ if (strncmp (src_temp, dst_temp, src_len) == 0
+ && (ISSLASH (dst_temp[src_len]) || dst_temp[src_len] == '\0'))
+ {
+ error = dst_temp[src_len];
+ free (src_temp);
+ free (dst_temp);
+ if (error)
+ {
+ errno = EINVAL;
+ return -1;
+ }
+ return 0;
+ }
+ if (rmdir (dst))
+ {
+ error = errno;
+ free (src_temp);
+ free (dst_temp);
+ errno = error;
+ return -1;
+ }
+ free (src_temp);
+ free (dst_temp);
+ }
+
+ /* MoveFileEx works if SRC is a directory without any flags, but
+ fails with MOVEFILE_REPLACE_EXISTING, so try without flags first.
+ Thankfully, MoveFileEx handles hard links correctly, even though
+ rename() does not. */
+ if (MoveFileEx (src, dst, 0))
+ return 0;
+
+ /* Retry with MOVEFILE_REPLACE_EXISTING if the move failed
+ due to the destination already existing. */
+ error = GetLastError ();
+ if (error == ERROR_FILE_EXISTS || error == ERROR_ALREADY_EXISTS)
+ {
+ if (MoveFileEx (src, dst, MOVEFILE_REPLACE_EXISTING))
+ return 0;
+
+ error = GetLastError ();
+ }
+
+ switch (error)
+ {
+ case ERROR_FILE_NOT_FOUND:
+ case ERROR_PATH_NOT_FOUND:
+ case ERROR_BAD_PATHNAME:
+ case ERROR_DIRECTORY:
+ errno = ENOENT;
+ break;
+
+ case ERROR_ACCESS_DENIED:
+ case ERROR_SHARING_VIOLATION:
+ errno = EACCES;
+ break;
+
+ case ERROR_OUTOFMEMORY:
+ errno = ENOMEM;
+ break;
+
+ case ERROR_CURRENT_DIRECTORY:
+ errno = EBUSY;
+ break;
+
+ case ERROR_NOT_SAME_DEVICE:
+ errno = EXDEV;
+ break;
+
+ case ERROR_WRITE_PROTECT:
+ errno = EROFS;
+ break;
+
+ case ERROR_WRITE_FAULT:
+ case ERROR_READ_FAULT:
+ case ERROR_GEN_FAILURE:
+ errno = EIO;
+ break;
+
+ case ERROR_HANDLE_DISK_FULL:
+ case ERROR_DISK_FULL:
+ case ERROR_DISK_TOO_FRAGMENTED:
+ errno = ENOSPC;
+ break;
+
+ case ERROR_FILE_EXISTS:
+ case ERROR_ALREADY_EXISTS:
+ errno = EEXIST;
+ break;
+
+ case ERROR_BUFFER_OVERFLOW:
+ case ERROR_FILENAME_EXCED_RANGE:
+ errno = ENAMETOOLONG;
+ break;
+
+ case ERROR_INVALID_NAME:
+ case ERROR_DELETE_PENDING:
+ errno = EPERM; /* ? */
+ break;
+
+# ifndef ERROR_FILE_TOO_LARGE
+/* This value is documented but not defined in all versions of windows.h. */
+# define ERROR_FILE_TOO_LARGE 223
+# endif
+ case ERROR_FILE_TOO_LARGE:
+ errno = EFBIG;
+ break;
+
+ default:
+ errno = EINVAL;
+ break;
+ }
+
+ return -1;
+}
+
+#else /* ! W32 platform */
+
+# include <errno.h>
+# include <stdio.h>
+# include <stdlib.h>
+# include <string.h>
+# include <sys/stat.h>
+# include <unistd.h>
+
+# include "dirname.h"
+# include "same-inode.h"
+
+/* Rename the file SRC to DST, fixing any trailing slash bugs. */
+
+int
+rpl_rename (char const *src, char const *dst)
+{
+ size_t src_len = strlen (src);
+ size_t dst_len = strlen (dst);
+ char *src_temp = (char *) src;
+ char *dst_temp = (char *) dst;
+ bool src_slash;
+ bool dst_slash;
+ bool dst_exists;
+ int ret_val = -1;
+ int rename_errno = ENOTDIR;
+ struct stat src_st;
+ struct stat dst_st;
+
+ if (!src_len || !dst_len)
+ return rename (src, dst); /* Let strace see the ENOENT failure. */
+
+# if RENAME_DEST_EXISTS_BUG
+ {
+ char *src_base = last_component (src);
+ char *dst_base = last_component (dst);
+ if (*src_base == '.')
+ {
+ size_t len = base_len (src_base);
+ if (len == 1 || (len == 2 && src_base[1] == '.'))
+ {
+ errno = EINVAL;
+ return -1;
+ }
+ }
+ if (*dst_base == '.')
+ {
+ size_t len = base_len (dst_base);
+ if (len == 1 || (len == 2 && dst_base[1] == '.'))
+ {
+ errno = EINVAL;
+ return -1;
+ }
+ }
+ }
+# endif /* RENAME_DEST_EXISTS_BUG */
+
+ src_slash = src[src_len - 1] == '/';
+ dst_slash = dst[dst_len - 1] == '/';
+
+# if !RENAME_HARD_LINK_BUG && !RENAME_DEST_EXISTS_BUG
+ /* If there are no trailing slashes, then trust the native
+ implementation unless we also suspect issues with hard link
+ detection or file/directory conflicts. */
+ if (!src_slash && !dst_slash)
+ return rename (src, dst);
+# endif /* !RENAME_HARD_LINK_BUG && !RENAME_DEST_EXISTS_BUG */
+
+ /* Presence of a trailing slash requires directory semantics. If
+ the source does not exist, or if the destination cannot be turned
+ into a directory, give up now. Otherwise, strip trailing slashes
+ before calling rename. */
+ if (lstat (src, &src_st))
+ return -1;
+ if (lstat (dst, &dst_st))
+ {
+ if (errno != ENOENT || (!S_ISDIR (src_st.st_mode) && dst_slash))
+ return -1;
+ dst_exists = false;
+ }
+ else
+ {
+ if (S_ISDIR (dst_st.st_mode) != S_ISDIR (src_st.st_mode))
+ {
+ errno = S_ISDIR (dst_st.st_mode) ? EISDIR : ENOTDIR;
+ return -1;
+ }
+# if RENAME_HARD_LINK_BUG
+ if (SAME_INODE (src_st, dst_st))
+ return 0;
+# endif /* RENAME_HARD_LINK_BUG */
+ dst_exists = true;
+ }
+
+# if (RENAME_TRAILING_SLASH_SOURCE_BUG || RENAME_DEST_EXISTS_BUG \
+ || RENAME_HARD_LINK_BUG)
+ /* If the only bug was that a trailing slash was allowed on a
+ non-existing file destination, as in Solaris 10, then we've
+ already covered that situation. But if there is any problem with
+ a trailing slash on an existing source or destination, as in
+ Solaris 9, or if a directory can overwrite a symlink, as on
+ Cygwin 1.5, or if directories cannot be created with trailing
+ slash, as on NetBSD 1.6, then we must strip the offending slash
+ and check that we have not encountered a symlink instead of a
+ directory.
+
+ Stripping a trailing slash interferes with POSIX semantics, where
+ rename behavior on a symlink with a trailing slash operates on
+ the corresponding target directory. We prefer the GNU semantics
+ of rejecting any use of a symlink with trailing slash, but do not
+ enforce them, since Solaris 10 is able to obey POSIX semantics
+ and there might be clients expecting it, as counter-intuitive as
+ those semantics are.
+
+ Technically, we could also follow the POSIX behavior by chasing a
+ readlink trail, but that is harder to implement. */
+ if (src_slash)
+ {
+ src_temp = strdup (src);
+ if (!src_temp)
+ {
+ /* Rather than rely on strdup-posix, we set errno ourselves. */
+ rename_errno = ENOMEM;
+ goto out;
+ }
+ strip_trailing_slashes (src_temp);
+ if (lstat (src_temp, &src_st))
+ {
+ rename_errno = errno;
+ goto out;
+ }
+ if (S_ISLNK (src_st.st_mode))
+ goto out;
+ }
+ if (dst_slash)
+ {
+ dst_temp = strdup (dst);
+ if (!dst_temp)
+ {
+ rename_errno = ENOMEM;
+ goto out;
+ }
+ strip_trailing_slashes (dst_temp);
+ if (lstat (dst_temp, &dst_st))
+ {
+ if (errno != ENOENT)
+ {
+ rename_errno = errno;
+ goto out;
+ }
+ }
+ else if (S_ISLNK (dst_st.st_mode))
+ goto out;
+ }
+# endif /* RENAME_TRAILING_SLASH_SOURCE_BUG || RENAME_DEST_EXISTS_BUG
+ || RENAME_HARD_LINK_BUG */
+
+# if RENAME_DEST_EXISTS_BUG
+ /* Cygwin 1.5 sometimes behaves oddly when moving a non-empty
+ directory on top of an empty one (the old directory name can
+ reappear if the new directory tree is removed). Work around this
+ by removing the target first, but don't remove the target if it
+ is a subdirectory of the source. Note that we can end up losing
+ a directory if rename then fails, but it was empty, so not much
+ damage was done. */
+ if (dst_exists && S_ISDIR (dst_st.st_mode))
+ {
+ if (src_st.st_dev != dst_st.st_dev)
+ {
+ rename_errno = EXDEV;
+ goto out;
+ }
+ if (src_temp != src)
+ free (src_temp);
+ src_temp = canonicalize_file_name (src);
+ if (dst_temp != dst)
+ free (dst_temp);
+ dst_temp = canonicalize_file_name (dst);
+ if (!src_temp || !dst_temp)
+ {
+ rename_errno = ENOMEM;
+ goto out;
+ }
+ src_len = strlen (src_temp);
+ if (strncmp (src_temp, dst_temp, src_len) == 0
+ && dst_temp[src_len] == '/')
+ {
+ rename_errno = EINVAL;
+ goto out;
+ }
+ if (rmdir (dst))
+ {
+ rename_errno = errno;
+ goto out;
+ }
+ }
+# endif /* RENAME_DEST_EXISTS_BUG */
+
+ ret_val = rename (src_temp, dst_temp);
+ rename_errno = errno;
+ out:
+ if (src_temp != src)
+ free (src_temp);
+ if (dst_temp != dst)
+ free (dst_temp);
+ errno = rename_errno;
+ return ret_val;
+}
+#endif /* ! W32 platform */
diff --git a/gnu/renameat.c b/gnu/renameat.c
new file mode 100644
index 00000000..8aca51f7
--- /dev/null
+++ b/gnu/renameat.c
@@ -0,0 +1,159 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Rename a file relative to open directories.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <stdio.h>
+
+#if HAVE_RENAMEAT
+
+# include <errno.h>
+# include <stdbool.h>
+# include <stdlib.h>
+# include <string.h>
+# include <sys/stat.h>
+
+# include "dirname.h"
+# include "openat.h"
+
+# undef renameat
+
+/* renameat does not honor trailing / on Solaris 10. Solve it in a
+ similar manner to rename. No need to worry about bugs not present
+ on Solaris, since all other systems either lack renameat or honor
+ trailing slash correctly. */
+
+int
+rpl_renameat (int fd1, char const *src, int fd2, char const *dst)
+{
+ size_t src_len = strlen (src);
+ size_t dst_len = strlen (dst);
+ char *src_temp = (char *) src;
+ char *dst_temp = (char *) dst;
+ bool src_slash;
+ bool dst_slash;
+ int ret_val = -1;
+ int rename_errno = ENOTDIR;
+ struct stat src_st;
+ struct stat dst_st;
+
+ /* Let strace see any ENOENT failure. */
+ if (!src_len || !dst_len)
+ return renameat (fd1, src, fd2, dst);
+
+ src_slash = src[src_len - 1] == '/';
+ dst_slash = dst[dst_len - 1] == '/';
+ if (!src_slash && !dst_slash)
+ return renameat (fd1, src, fd2, dst);
+
+ /* Presence of a trailing slash requires directory semantics. If
+ the source does not exist, or if the destination cannot be turned
+ into a directory, give up now. Otherwise, strip trailing slashes
+ before calling rename. */
+ if (lstatat (fd1, src, &src_st))
+ return -1;
+ if (lstatat (fd2, dst, &dst_st))
+ {
+ if (errno != ENOENT || !S_ISDIR (src_st.st_mode))
+ return -1;
+ }
+ else if (!S_ISDIR (dst_st.st_mode))
+ {
+ errno = ENOTDIR;
+ return -1;
+ }
+ else if (!S_ISDIR (src_st.st_mode))
+ {
+ errno = EISDIR;
+ return -1;
+ }
+
+# if RENAME_TRAILING_SLASH_SOURCE_BUG
+ /* See the lengthy comment in rename.c why Solaris 9 is forced to
+ GNU behavior, while Solaris 10 is left with POSIX behavior,
+ regarding symlinks with trailing slash. */
+ if (src_slash)
+ {
+ src_temp = strdup (src);
+ if (!src_temp)
+ {
+ /* Rather than rely on strdup-posix, we set errno ourselves. */
+ rename_errno = ENOMEM;
+ goto out;
+ }
+ strip_trailing_slashes (src_temp);
+ if (lstatat (fd1, src_temp, &src_st))
+ {
+ rename_errno = errno;
+ goto out;
+ }
+ if (S_ISLNK (src_st.st_mode))
+ goto out;
+ }
+ if (dst_slash)
+ {
+ dst_temp = strdup (dst);
+ if (!dst_temp)
+ {
+ rename_errno = ENOMEM;
+ goto out;
+ }
+ strip_trailing_slashes (dst_temp);
+ if (lstatat (fd2, dst_temp, &dst_st))
+ {
+ if (errno != ENOENT)
+ {
+ rename_errno = errno;
+ goto out;
+ }
+ }
+ else if (S_ISLNK (dst_st.st_mode))
+ goto out;
+ }
+# endif /* RENAME_TRAILING_SLASH_SOURCE_BUG */
+
+ ret_val = renameat (fd1, src_temp, fd2, dst_temp);
+ rename_errno = errno;
+ out:
+ if (src_temp != src)
+ free (src_temp);
+ if (dst_temp != dst)
+ free (dst_temp);
+ errno = rename_errno;
+ return ret_val;
+}
+
+#else /* !HAVE_RENAMEAT */
+
+# include "openat-priv.h"
+
+/* Rename FILE1, in the directory open on descriptor FD1, to FILE2, in
+ the directory open on descriptor FD2. If possible, do it without
+ changing the working directory. Otherwise, resort to using
+ save_cwd/fchdir, then rename/restore_cwd. If either the save_cwd or
+ the restore_cwd fails, then give a diagnostic and exit nonzero. */
+
+int
+renameat (int fd1, char const *file1, int fd2, char const *file2)
+{
+ return at_func2 (fd1, file1, fd2, file2, rename);
+}
+
+#endif /* !HAVE_RENAMEAT */
diff --git a/gnu/rewinddir.c b/gnu/rewinddir.c
new file mode 100644
index 00000000..3718b207
--- /dev/null
+++ b/gnu/rewinddir.c
@@ -0,0 +1,51 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Restart reading the entries of a directory from the beginning.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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 <dirent.h>
+
+#include <errno.h>
+
+#include "dirent-private.h"
+
+void
+rewinddir (DIR *dirp)
+{
+ /* Like in closedir(). */
+ if (dirp->current != INVALID_HANDLE_VALUE)
+ FindClose (dirp->current);
+
+ /* Like in opendir(). */
+ dirp->status = -1;
+ dirp->current = FindFirstFile (dirp->dir_name_mask, &dirp->entry);
+ if (dirp->current == INVALID_HANDLE_VALUE)
+ {
+ switch (GetLastError ())
+ {
+ case ERROR_FILE_NOT_FOUND:
+ dirp->status = -2;
+ break;
+ default:
+ /* Save the error code for the next readdir() call. */
+ dirp->status = ENOENT;
+ break;
+ }
+ }
+}
diff --git a/gnu/rmdir.c b/gnu/rmdir.c
new file mode 100644
index 00000000..91c6d4be
--- /dev/null
+++ b/gnu/rmdir.c
@@ -0,0 +1,55 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Work around rmdir bugs.
+
+ Copyright (C) 1988, 1990, 1999, 2003-2006, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 "dosname.h"
+
+#undef rmdir
+
+/* Remove directory DIR.
+ Return 0 if successful, -1 if not. */
+
+int
+rpl_rmdir (char const *dir)
+{
+ /* 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;
+}
diff --git a/gnu/rpmatch.c b/gnu/rpmatch.c
new file mode 100644
index 00000000..6bfaa256
--- /dev/null
+++ b/gnu/rpmatch.c
@@ -0,0 +1,175 @@
+/* -*- 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-2012 Free Software
+ Foundation, Inc.
+
+ This 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 <stdlib.h>
+
+#include <stdbool.h>
+#include <stddef.h>
+
+#if ENABLE_NLS
+# include <sys/types.h>
+# include <limits.h>
+# include <string.h>
+# if HAVE_LANGINFO_YESEXPR
+# include <langinfo.h>
+# endif
+# include <regex.h>
+# include "gettext.h"
+# define _(msgid) gettext (msgid)
+# define N_(msgid) gettext_noop (msgid)
+
+# if HAVE_LANGINFO_YESEXPR
+/* Return the localized regular expression pattern corresponding to
+ ENGLISH_PATTERN. NL_INDEX can be used with nl_langinfo.
+ 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)
+{
+ const char *translated_pattern;
+
+ /* We prefer to get the patterns from a PO file. It would be possible to
+ always use nl_langinfo (YESEXPR) instead of _("^[yY]"), and
+ nl_langinfo (NOEXPR) instead of _("^[nN]"), if we could assume that the
+ system's locale support is good. But this is not the case e.g. on Cygwin.
+ The localizations of gnulib.pot are of better quality in general.
+ Also, if we use locale info from non-free systems that don't have a
+ 'localedef' command, we deprive the users of the freedom to localize
+ this pattern for their preferred language.
+ But some programs, such as 'cp', 'mv', 'rm', 'find', 'xargs', are
+ specified by POSIX to use nl_langinfo (YESEXPR). We implement this
+ behaviour if POSIXLY_CORRECT is set, for the sake of these programs. */
+
+ /* If the user wants strict POSIX compliance, use nl_langinfo. */
+ if (posixly_correct)
+ {
+ translated_pattern = nl_langinfo (nl_index);
+ /* Check against a broken system return value. */
+ if (translated_pattern != NULL && translated_pattern[0] != '\0')
+ return translated_pattern;
+ }
+
+ /* Look in the gnulib message catalog. */
+ translated_pattern = _(english_pattern);
+ if (translated_pattern == english_pattern)
+ {
+ /* The gnulib message catalog provides no translation.
+ 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;
+ /* Fall back to English. */
+ translated_pattern = english_pattern;
+ }
+ return translated_pattern;
+}
+# else
+# define localized_pattern(english_pattern,nl_index,posixly_correct) \
+ _(english_pattern)
+# endif
+
+static int
+try (const char *response, const char *pattern, char **lastp, regex_t *re)
+{
+ if (*lastp == NULL || strcmp (pattern, *lastp) != 0)
+ {
+ char *safe_pattern;
+
+ /* The pattern has changed. */
+ if (*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. */
+ safe_pattern = strdup (pattern);
+ if (safe_pattern == NULL)
+ return -1;
+ /* Compile the pattern and cache it for future runs. */
+ if (regcomp (re, safe_pattern, REG_EXTENDED) != 0)
+ return -1;
+ *lastp = safe_pattern;
+ }
+
+ /* See if the regular expression matches RESPONSE. */
+ return regexec (re, response, 0, NULL, 0) == 0;
+}
+#endif
+
+
+int
+rpmatch (const char *response)
+{
+#if ENABLE_NLS
+ /* Match against one of the response patterns, compiling the pattern
+ first if necessary. */
+
+ /* We cache the response patterns and compiled regexps here. */
+ static char *last_yesexpr, *last_noexpr;
+ static regex_t cached_yesre, cached_nore;
+
+# if HAVE_LANGINFO_YESEXPR
+ bool posixly_correct = (getenv ("POSIXLY_CORRECT") != NULL);
+# endif
+
+ const char *yesexpr, *noexpr;
+ int result;
+
+ /* TRANSLATORS: A regular expression testing for an affirmative answer
+ (english: "yes"). Testing the first character may be sufficient.
+ Take care to consider upper and lower case.
+ To enquire the regular expression that your system uses for this
+ purpose, you can use the command
+ locale -k LC_MESSAGES | grep '^yesexpr=' */
+ yesexpr = localized_pattern (N_("^[yY]"), YESEXPR, posixly_correct);
+ result = try (response, yesexpr, &last_yesexpr, &cached_yesre);
+ if (result < 0)
+ return -1;
+ if (result)
+ return 1;
+
+ /* TRANSLATORS: A regular expression testing for a negative answer
+ (english: "no"). Testing the first character may be sufficient.
+ Take care to consider upper and lower case.
+ To enquire the regular expression that your system uses for this
+ purpose, you can use the command
+ locale -k LC_MESSAGES | grep '^noexpr=' */
+ noexpr = localized_pattern (N_("^[nN]"), NOEXPR, posixly_correct);
+ result = try (response, noexpr, &last_noexpr, &cached_nore);
+ if (result < 0)
+ return -1;
+ if (result)
+ return 0;
+
+ return -1;
+#else
+ /* Test against "^[yY]" and "^[nN]", hardcoded to avoid requiring regex */
+ return (*response == 'y' || *response == 'Y' ? 1
+ : *response == 'n' || *response == 'N' ? 0 : -1);
+#endif
+}
diff --git a/gnu/safe-read.c b/gnu/safe-read.c
new file mode 100644
index 00000000..46d61d5e
--- /dev/null
+++ b/gnu/safe-read.c
@@ -0,0 +1,79 @@
+/* -*- 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-2006, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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. */
+#ifdef SAFE_WRITE
+# include "safe-write.h"
+#else
+# include "safe-read.h"
+#endif
+
+/* Get ssize_t. */
+#include <sys/types.h>
+#include <unistd.h>
+
+#include <errno.h>
+
+#ifdef EINTR
+# define IS_EINTR(x) ((x) == EINTR)
+#else
+# define IS_EINTR(x) 0
+#endif
+
+#include <limits.h>
+
+#ifdef SAFE_WRITE
+# define safe_rw safe_write
+# define rw write
+#else
+# define safe_rw safe_read
+# define rw read
+# undef const
+# define const /* empty */
+#endif
+
+/* Read(write) up to COUNT bytes at BUF from(to) descriptor FD, retrying if
+ interrupted. Return the actual number of bytes read(written), zero for EOF,
+ or SAFE_READ_ERROR(SAFE_WRITE_ERROR) upon error. */
+size_t
+safe_rw (int fd, void const *buf, size_t count)
+{
+ /* Work around a bug in Tru64 5.1. Attempting to read more than
+ INT_MAX bytes fails with errno == EINVAL. See
+ <http://lists.gnu.org/archive/html/bug-gnu-utils/2002-04/msg00010.html>.
+ When decreasing COUNT, keep it block-aligned. */
+ enum { BUGGY_READ_MAXIMUM = INT_MAX & ~8191 };
+
+ for (;;)
+ {
+ ssize_t result = rw (fd, buf, count);
+
+ if (0 <= result)
+ return result;
+ else if (IS_EINTR (errno))
+ continue;
+ else if (errno == EINVAL && BUGGY_READ_MAXIMUM < count)
+ count = BUGGY_READ_MAXIMUM;
+ else
+ return result;
+ }
+}
diff --git a/gnu/safe-read.h b/gnu/safe-read.h
new file mode 100644
index 00000000..6103e9cc
--- /dev/null
+++ b/gnu/safe-read.h
@@ -0,0 +1,49 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* An interface to read() that retries after interrupts.
+ Copyright (C) 2002, 2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+/* Some system calls may be interrupted and fail with errno = EINTR in the
+ following situations:
+ - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user
+ types Ctrl-Z) on some platforms: MacOS X.
+ - The process receives a signal for which a signal handler was installed
+ with sigaction() with an sa_flags field that does not contain
+ SA_RESTART.
+ - The process receives a signal for which a signal handler was installed
+ with signal() and for which no call to siginterrupt(sig,0) was done,
+ on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris.
+
+ This module provides a wrapper around read() that handles EINTR. */
+
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#define SAFE_READ_ERROR ((size_t) -1)
+
+/* Read up to COUNT bytes at BUF from descriptor FD, retrying if interrupted.
+ Return the actual number of bytes read, zero for EOF, or SAFE_READ_ERROR
+ upon error. */
+extern size_t safe_read (int fd, void *buf, size_t count);
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/gnu/safe-write.c b/gnu/safe-write.c
new file mode 100644
index 00000000..72c08022
--- /dev/null
+++ b/gnu/safe-write.c
@@ -0,0 +1,20 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* An interface to write that retries after interrupts.
+ Copyright (C) 2002, 2009-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+#define SAFE_WRITE
+#include "safe-read.c"
diff --git a/gnu/safe-write.h b/gnu/safe-write.h
new file mode 100644
index 00000000..ad36a04a
--- /dev/null
+++ b/gnu/safe-write.h
@@ -0,0 +1,39 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* An interface to write() that retries after interrupts.
+ Copyright (C) 2002, 2009-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+/* Some system calls may be interrupted and fail with errno = EINTR in the
+ following situations:
+ - The process is stopped and restarted (signal SIGSTOP and SIGCONT, user
+ types Ctrl-Z) on some platforms: MacOS X.
+ - The process receives a signal for which a signal handler was installed
+ with sigaction() with an sa_flags field that does not contain
+ SA_RESTART.
+ - The process receives a signal for which a signal handler was installed
+ with signal() and for which no call to siginterrupt(sig,0) was done,
+ on some platforms: AIX, HP-UX, IRIX, OSF/1, Solaris.
+
+ This module provides a wrapper around write() that handles EINTR. */
+
+#include <stddef.h>
+
+#define SAFE_WRITE_ERROR ((size_t) -1)
+
+/* Write up to COUNT bytes at BUF to descriptor FD, retrying if interrupted.
+ Return the actual number of bytes written, zero for EOF, or SAFE_WRITE_ERROR
+ upon error. */
+extern size_t safe_write (int fd, const void *buf, size_t count);
diff --git a/gnu/same-inode.h b/gnu/same-inode.h
new file mode 100644
index 00000000..07b5a929
--- /dev/null
+++ b/gnu/same-inode.h
@@ -0,0 +1,35 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 SAME_INODE_H
+# define SAME_INODE_H 1
+
+# ifdef __VMS
+# define SAME_INODE(a, b) \
+ ((a).st_ino[0] == (b).st_ino[0] \
+ && (a).st_ino[1] == (b).st_ino[1] \
+ && (a).st_ino[2] == (b).st_ino[2] \
+ && (a).st_dev == (b).st_dev)
+# else
+# define SAME_INODE(a, b) \
+ ((a).st_ino == (b).st_ino \
+ && (a).st_dev == (b).st_dev)
+# endif
+
+#endif
diff --git a/gnu/save-cwd.c b/gnu/save-cwd.c
new file mode 100644
index 00000000..c33c803f
--- /dev/null
+++ b/gnu/save-cwd.c
@@ -0,0 +1,101 @@
+/* -*- 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-2006, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 "save-cwd.h"
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "chdir-long.h"
+#include "unistd--.h"
+#include "cloexec.h"
+
+#if GNULIB_FCNTL_SAFER
+# include "fcntl--.h"
+#else
+# define GNULIB_FCNTL_SAFER 0
+#endif
+
+/* Record the location of the current working directory in CWD so that
+ the program may change to other directories and later use restore_cwd
+ to return to the recorded location. This function may allocate
+ space using malloc (via getcwd) or leave a file descriptor open;
+ use free_cwd to perform the necessary free or close. Upon failure,
+ no memory is allocated, any locally opened file descriptors are
+ closed; return non-zero -- in that case, free_cwd need not be
+ called, but doing so is ok. Otherwise, return zero.
+
+ The _raison d'etre_ for this interface is that the working directory
+ is sometimes inaccessible, and getcwd is not robust or as efficient.
+ So, we prefer to use the open/fchdir approach, but fall back on
+ getcwd if necessary. This module works for most cases with just
+ the getcwd-lgpl module, but to be truly robust, use the getcwd module.
+
+ Some systems lack fchdir altogether: e.g., OS/2, pre-2001 Cygwin,
+ SCO Xenix. Also, SunOS 4 and Irix 5.3 provide the function, yet it
+ doesn't work for partitions on which auditing is enabled. If
+ you're still using an obsolete system with these problems, please
+ send email to the maintainer of this code. */
+
+int
+save_cwd (struct saved_cwd *cwd)
+{
+ cwd->name = NULL;
+
+ cwd->desc = open (".", O_SEARCH);
+ if (!GNULIB_FCNTL_SAFER)
+ cwd->desc = fd_safer (cwd->desc);
+ if (cwd->desc < 0)
+ {
+ cwd->name = getcwd (NULL, 0);
+ return cwd->name ? 0 : -1;
+ }
+
+ set_cloexec_flag (cwd->desc, true);
+ return 0;
+}
+
+/* Change to recorded location, CWD, in directory hierarchy.
+ Upon failure, return -1 (errno is set by chdir or fchdir).
+ Upon success, return zero. */
+
+int
+restore_cwd (const struct saved_cwd *cwd)
+{
+ if (0 <= cwd->desc)
+ return fchdir (cwd->desc);
+ else
+ return chdir_long (cwd->name);
+}
+
+void
+free_cwd (struct saved_cwd *cwd)
+{
+ if (cwd->desc >= 0)
+ close (cwd->desc);
+ free (cwd->name);
+}
diff --git a/gnu/save-cwd.h b/gnu/save-cwd.h
new file mode 100644
index 00000000..3162e66c
--- /dev/null
+++ b/gnu/save-cwd.h
@@ -0,0 +1,36 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Save and restore current working directory.
+
+ Copyright (C) 1995, 1997-1998, 2003, 2009-2012 Free Software Foundation,
+ Inc.
+
+ This 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 SAVE_CWD_H
+# define SAVE_CWD_H 1
+
+struct saved_cwd
+ {
+ int desc;
+ char *name;
+ };
+
+int save_cwd (struct saved_cwd *cwd);
+int restore_cwd (const struct saved_cwd *cwd);
+void free_cwd (struct saved_cwd *cwd);
+
+#endif /* SAVE_CWD_H */
diff --git a/gnu/savedir.c b/gnu/savedir.c
new file mode 100644
index 00000000..c5d6a573
--- /dev/null
+++ b/gnu/savedir.c
@@ -0,0 +1,147 @@
+/* -*- 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-2001, 2003-2006, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 MacKenzie <djm@gnu.ai.mit.edu>. */
+
+#include <config.h>
+
+#include "savedir.h"
+
+#include <sys/types.h>
+
+#include <errno.h>
+
+#include "dirent--.h"
+#ifndef _D_EXACT_NAMLEN
+# define _D_EXACT_NAMLEN(dp) strlen ((dp)->d_name)
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "xalloc.h"
+
+#ifndef NAME_SIZE_DEFAULT
+# define NAME_SIZE_DEFAULT 512
+#endif
+
+/* 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.
+ Return NULL (setting errno) if DIRP cannot be read.
+ If DIRP is NULL, return NULL without affecting errno. */
+
+char *
+streamsavedir (DIR *dirp)
+{
+ char *name_space;
+ size_t allocated = NAME_SIZE_DEFAULT;
+ size_t used = 0;
+ int save_errno;
+
+ if (dirp == NULL)
+ return NULL;
+
+ name_space = xmalloc (allocated);
+
+ for (;;)
+ {
+ struct dirent const *dp;
+ char const *entry;
+
+ errno = 0;
+ dp = readdir (dirp);
+ if (! dp)
+ 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;
+ }
+ }
+ name_space[used] = '\0';
+ save_errno = errno;
+ if (save_errno != 0)
+ {
+ free (name_space);
+ errno = save_errno;
+ return NULL;
+ }
+ return name_space;
+}
+
+/* Like savedirstreamp (DIRP), except also close DIRP. */
+
+static char *
+savedirstream (DIR *dirp)
+{
+ char *name_space = streamsavedir (dirp);
+ if (dirp && closedir (dirp) != 0)
+ {
+ int save_errno = errno;
+ free (name_space);
+ errno = save_errno;
+ return NULL;
+ }
+ return name_space;
+}
+
+/* Return a freshly allocated string containing the file names
+ in directory DIR, separated by '\0' characters;
+ the end is marked by two '\0' characters in a row.
+ Return NULL (setting errno) if DIR cannot be opened, read, or closed. */
+
+char *
+savedir (char const *dir)
+{
+ return savedirstream (opendir (dir));
+}
+
+/* Return a freshly allocated string containing the file names
+ in directory FD, separated by '\0' characters;
+ the end is marked by two '\0' characters in a row.
+ Return NULL (setting errno) if FD cannot be read or closed. */
+
+/* deprecated */
+char *
+fdsavedir (int fd)
+{
+ return savedirstream (fdopendir (fd));
+}
diff --git a/gnu/savedir.h b/gnu/savedir.h
new file mode 100644
index 00000000..650691e7
--- /dev/null
+++ b/gnu/savedir.h
@@ -0,0 +1,31 @@
+/* -*- 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, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 MacKenzie <djm@gnu.ai.mit.edu>. */
+
+#ifndef _GL_SAVEDIR_H
+#define _GL_SAVEDIR_H
+
+#include <dirent.h>
+char *streamsavedir (DIR *dirp);
+char *savedir (char const *dir);
+char *fdsavedir (int fd); /* deprecated */
+
+#endif
diff --git a/gnu/setenv.c b/gnu/setenv.c
new file mode 100644
index 00000000..c1484fad
--- /dev/null
+++ b/gnu/setenv.c
@@ -0,0 +1,392 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 1992, 1995-2003, 2005-2012 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
+# define _GL_USE_STDLIB_ALLOC 1
+# 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)
+{
+ char **ep;
+ 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)
+ {
+ /* It's easier to set errno to ENOMEM than to rely on the
+ 'malloc-posix' and 'realloc-posix' gnulib modules. */
+ __set_errno (ENOMEM);
+ 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 = (char *) 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
+# if !HAVE_DECL_SETENV
+extern int setenv (const char *, const char *, int);
+# endif
+# 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/gnu/signal.in.h b/gnu/signal.in.h
new file mode 100644
index 00000000..2fae59f2
--- /dev/null
+++ b/gnu/signal.in.h
@@ -0,0 +1,449 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A GNU-like <signal.h>.
+
+ Copyright (C) 2006-2012 Free Software Foundation, Inc.
+
+ This 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
+@PRAGMA_COLUMNS@
+
+#if defined __need_sig_atomic_t || defined __need_sigset_t || defined _GL_ALREADY_INCLUDING_SIGNAL_H || (defined _SIGNAL_H && !defined __SIZEOF_PTHREAD_MUTEX_T)
+/* Special invocation convention:
+ - Inside glibc header files.
+ - On glibc systems we have a sequence of nested includes
+ <signal.h> -> <ucontext.h> -> <signal.h>.
+ In this situation, the functions are not yet declared, therefore we cannot
+ provide the C++ aliases.
+ - On glibc systems with GCC 4.3 we have a sequence of nested includes
+ <csignal> -> </usr/include/signal.h> -> <sys/ucontext.h> -> <signal.h>.
+ In this situation, some of the functions are not yet declared, therefore
+ we cannot provide the C++ aliases. */
+
+# @INCLUDE_NEXT@ @NEXT_SIGNAL_H@
+
+#else
+/* Normal invocation convention. */
+
+#ifndef _@GUARD_PREFIX@_SIGNAL_H
+
+#define _GL_ALREADY_INCLUDING_SIGNAL_H
+
+/* Define pid_t, uid_t.
+ Also, mingw defines sigset_t not in <signal.h>, but in <sys/types.h>.
+ On Solaris 10, <signal.h> includes <sys/types.h>, which eventually includes
+ us; so include <sys/types.h> now, before the second inclusion guard. */
+#include <sys/types.h>
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_SIGNAL_H@
+
+#undef _GL_ALREADY_INCLUDING_SIGNAL_H
+
+#ifndef _@GUARD_PREFIX@_SIGNAL_H
+#define _@GUARD_PREFIX@_SIGNAL_H
+
+/* MacOS X 10.3, FreeBSD 6.4, OpenBSD 3.8, OSF/1 4.0, Solaris 2.6 declare
+ pthread_sigmask in <pthread.h>, not in <signal.h>.
+ But avoid namespace pollution on glibc systems.*/
+#if (@GNULIB_PTHREAD_SIGMASK@ || defined GNULIB_POSIXCHECK) \
+ && ((defined __APPLE__ && defined __MACH__) || defined __FreeBSD__ || defined __OpenBSD__ || defined __osf__ || defined __sun) \
+ && ! defined __GLIBC__
+# include <pthread.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. */
+
+/* On AIX, sig_atomic_t already includes volatile. C99 requires that
+ 'volatile sig_atomic_t' ignore the extra modifier, but C89 did not.
+ Hence, redefine this to a non-volatile type as needed. */
+#if ! @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+# if !GNULIB_defined_sig_atomic_t
+typedef int rpl_sig_atomic_t;
+# undef sig_atomic_t
+# define sig_atomic_t rpl_sig_atomic_t
+# define GNULIB_defined_sig_atomic_t 1
+# endif
+#endif
+
+/* A set or mask of signals. */
+#if !@HAVE_SIGSET_T@
+# if !GNULIB_defined_sigset_t
+typedef unsigned int sigset_t;
+# define GNULIB_defined_sigset_t 1
+# endif
+#endif
+
+/* Define sighandler_t, the type of signal handlers. A GNU extension. */
+#if !@HAVE_SIGHANDLER_T@
+# ifdef __cplusplus
+extern "C" {
+# endif
+# if !GNULIB_defined_sighandler_t
+typedef void (*sighandler_t) (int);
+# define GNULIB_defined_sighandler_t 1
+# endif
+# ifdef __cplusplus
+}
+# endif
+#endif
+
+
+#if @GNULIB_SIGNAL_H_SIGPIPE@
+# ifndef SIGPIPE
+/* Define SIGPIPE to a value that does not overlap with other signals. */
+# define SIGPIPE 13
+# define GNULIB_defined_SIGPIPE 1
+/* To actually use SIGPIPE, you also need the gnulib modules 'sigprocmask',
+ 'write', 'stdio'. */
+# endif
+#endif
+
+
+/* Maximum signal number + 1. */
+#ifndef NSIG
+# if defined __TANDEM
+# define NSIG 32
+# endif
+#endif
+
+
+#if @GNULIB_PTHREAD_SIGMASK@
+# if @REPLACE_PTHREAD_SIGMASK@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef pthread_sigmask
+# define pthread_sigmask rpl_pthread_sigmask
+# endif
+_GL_FUNCDECL_RPL (pthread_sigmask, int,
+ (int how, const sigset_t *new_mask, sigset_t *old_mask));
+_GL_CXXALIAS_RPL (pthread_sigmask, int,
+ (int how, const sigset_t *new_mask, sigset_t *old_mask));
+# else
+# if !@HAVE_PTHREAD_SIGMASK@
+_GL_FUNCDECL_SYS (pthread_sigmask, int,
+ (int how, const sigset_t *new_mask, sigset_t *old_mask));
+# endif
+_GL_CXXALIAS_SYS (pthread_sigmask, int,
+ (int how, const sigset_t *new_mask, sigset_t *old_mask));
+# endif
+_GL_CXXALIASWARN (pthread_sigmask);
+#elif defined GNULIB_POSIXCHECK
+# undef pthread_sigmask
+# if HAVE_RAW_DECL_PTHREAD_SIGMASK
+_GL_WARN_ON_USE (pthread_sigmask, "pthread_sigmask is not portable - "
+ "use gnulib module pthread_sigmask for portability");
+# endif
+#endif
+
+
+#if @GNULIB_RAISE@
+# if @REPLACE_RAISE@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef raise
+# define raise rpl_raise
+# endif
+_GL_FUNCDECL_RPL (raise, int, (int sig));
+_GL_CXXALIAS_RPL (raise, int, (int sig));
+# else
+# if !@HAVE_RAISE@
+_GL_FUNCDECL_SYS (raise, int, (int sig));
+# endif
+_GL_CXXALIAS_SYS (raise, int, (int sig));
+# endif
+_GL_CXXALIASWARN (raise);
+#elif defined GNULIB_POSIXCHECK
+# undef raise
+/* Assume raise is always declared. */
+_GL_WARN_ON_USE (raise, "raise can crash on native Windows - "
+ "use gnulib module raise for portability");
+#endif
+
+
+#if @GNULIB_SIGPROCMASK@
+# if !@HAVE_POSIX_SIGNALBLOCKING@
+
+# ifndef GNULIB_defined_signal_blocking
+# define GNULIB_defined_signal_blocking 1
+# endif
+
+/* Maximum signal number + 1. */
+# ifndef NSIG
+# define NSIG 32
+# endif
+
+/* This code supports only 32 signals. */
+# if !GNULIB_defined_verify_NSIG_constraint
+typedef int verify_NSIG_constraint[NSIG <= 32 ? 1 : -1];
+# define GNULIB_defined_verify_NSIG_constraint 1
+# endif
+
+# endif
+
+/* Test whether a given signal is contained in a signal set. */
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on MacOS X. */
+# if defined __cplusplus && defined GNULIB_NAMESPACE
+# undef sigismember
+# endif
+# else
+_GL_FUNCDECL_SYS (sigismember, int, (const sigset_t *set, int sig)
+ _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigismember, int, (const sigset_t *set, int sig));
+_GL_CXXALIASWARN (sigismember);
+
+/* Initialize a signal set to the empty set. */
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on MacOS X. */
+# if defined __cplusplus && defined GNULIB_NAMESPACE
+# undef sigemptyset
+# endif
+# else
+_GL_FUNCDECL_SYS (sigemptyset, int, (sigset_t *set) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigemptyset, int, (sigset_t *set));
+_GL_CXXALIASWARN (sigemptyset);
+
+/* Add a signal to a signal set. */
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on MacOS X. */
+# if defined __cplusplus && defined GNULIB_NAMESPACE
+# undef sigaddset
+# endif
+# else
+_GL_FUNCDECL_SYS (sigaddset, int, (sigset_t *set, int sig)
+ _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigaddset, int, (sigset_t *set, int sig));
+_GL_CXXALIASWARN (sigaddset);
+
+/* Remove a signal from a signal set. */
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on MacOS X. */
+# if defined __cplusplus && defined GNULIB_NAMESPACE
+# undef sigdelset
+# endif
+# else
+_GL_FUNCDECL_SYS (sigdelset, int, (sigset_t *set, int sig)
+ _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigdelset, int, (sigset_t *set, int sig));
+_GL_CXXALIASWARN (sigdelset);
+
+/* Fill a signal set with all possible signals. */
+# if @HAVE_POSIX_SIGNALBLOCKING@
+/* This function is defined as a macro on MacOS X. */
+# if defined __cplusplus && defined GNULIB_NAMESPACE
+# undef sigfillset
+# endif
+# else
+_GL_FUNCDECL_SYS (sigfillset, int, (sigset_t *set) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigfillset, int, (sigset_t *set));
+_GL_CXXALIASWARN (sigfillset);
+
+/* Return the set of those blocked signals that are pending. */
+# if !@HAVE_POSIX_SIGNALBLOCKING@
+_GL_FUNCDECL_SYS (sigpending, int, (sigset_t *set) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (sigpending, int, (sigset_t *set));
+_GL_CXXALIASWARN (sigpending);
+
+/* If OLD_SET is not NULL, put the current set of blocked signals in *OLD_SET.
+ Then, if SET is not NULL, affect the current set of blocked signals by
+ combining it with *SET as indicated in OPERATION.
+ In this implementation, you are not allowed to change a signal handler
+ while the signal is blocked. */
+# if !@HAVE_POSIX_SIGNALBLOCKING@
+# define SIG_BLOCK 0 /* blocked_set = blocked_set | *set; */
+# define SIG_SETMASK 1 /* blocked_set = *set; */
+# define SIG_UNBLOCK 2 /* blocked_set = blocked_set & ~*set; */
+_GL_FUNCDECL_SYS (sigprocmask, int,
+ (int operation, const sigset_t *set, sigset_t *old_set));
+# endif
+_GL_CXXALIAS_SYS (sigprocmask, int,
+ (int operation, const sigset_t *set, sigset_t *old_set));
+_GL_CXXALIASWARN (sigprocmask);
+
+/* Install the handler FUNC for signal SIG, and return the previous
+ handler. */
+# ifdef __cplusplus
+extern "C" {
+# endif
+# if !GNULIB_defined_function_taking_int_returning_void_t
+typedef void (*_gl_function_taking_int_returning_void_t) (int);
+# define GNULIB_defined_function_taking_int_returning_void_t 1
+# endif
+# ifdef __cplusplus
+}
+# endif
+# if !@HAVE_POSIX_SIGNALBLOCKING@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# define signal rpl_signal
+# endif
+_GL_FUNCDECL_RPL (signal, _gl_function_taking_int_returning_void_t,
+ (int sig, _gl_function_taking_int_returning_void_t func));
+_GL_CXXALIAS_RPL (signal, _gl_function_taking_int_returning_void_t,
+ (int sig, _gl_function_taking_int_returning_void_t func));
+# else
+_GL_CXXALIAS_SYS (signal, _gl_function_taking_int_returning_void_t,
+ (int sig, _gl_function_taking_int_returning_void_t func));
+# endif
+_GL_CXXALIASWARN (signal);
+
+# if !@HAVE_POSIX_SIGNALBLOCKING@ && GNULIB_defined_SIGPIPE
+/* Raise signal SIGPIPE. */
+_GL_EXTERN_C int _gl_raise_SIGPIPE (void);
+# endif
+
+#elif defined GNULIB_POSIXCHECK
+# undef sigaddset
+# if HAVE_RAW_DECL_SIGADDSET
+_GL_WARN_ON_USE (sigaddset, "sigaddset is unportable - "
+ "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigdelset
+# if HAVE_RAW_DECL_SIGDELSET
+_GL_WARN_ON_USE (sigdelset, "sigdelset is unportable - "
+ "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigemptyset
+# if HAVE_RAW_DECL_SIGEMPTYSET
+_GL_WARN_ON_USE (sigemptyset, "sigemptyset is unportable - "
+ "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigfillset
+# if HAVE_RAW_DECL_SIGFILLSET
+_GL_WARN_ON_USE (sigfillset, "sigfillset is unportable - "
+ "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigismember
+# if HAVE_RAW_DECL_SIGISMEMBER
+_GL_WARN_ON_USE (sigismember, "sigismember is unportable - "
+ "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigpending
+# if HAVE_RAW_DECL_SIGPENDING
+_GL_WARN_ON_USE (sigpending, "sigpending is unportable - "
+ "use the gnulib module sigprocmask for portability");
+# endif
+# undef sigprocmask
+# if HAVE_RAW_DECL_SIGPROCMASK
+_GL_WARN_ON_USE (sigprocmask, "sigprocmask is unportable - "
+ "use the gnulib module sigprocmask for portability");
+# endif
+#endif /* @GNULIB_SIGPROCMASK@ */
+
+
+#if @GNULIB_SIGACTION@
+# if !@HAVE_SIGACTION@
+
+# if !@HAVE_SIGINFO_T@
+
+# if !GNULIB_defined_siginfo_types
+
+/* Present to allow compilation, but unsupported by gnulib. */
+union sigval
+{
+ int sival_int;
+ void *sival_ptr;
+};
+
+/* Present to allow compilation, but unsupported by gnulib. */
+struct siginfo_t
+{
+ int si_signo;
+ int si_code;
+ int si_errno;
+ pid_t si_pid;
+ uid_t si_uid;
+ void *si_addr;
+ int si_status;
+ long si_band;
+ union sigval si_value;
+};
+typedef struct siginfo_t siginfo_t;
+
+# define GNULIB_defined_siginfo_types 1
+# endif
+
+# endif /* !@HAVE_SIGINFO_T@ */
+
+/* We assume that platforms which lack the sigaction() function also lack
+ the 'struct sigaction' type, and vice versa. */
+
+# if !GNULIB_defined_struct_sigaction
+
+struct sigaction
+{
+ union
+ {
+ void (*_sa_handler) (int);
+ /* Present to allow compilation, but unsupported by gnulib. POSIX
+ says that implementations may, but not must, make sa_sigaction
+ overlap with sa_handler, but we know of no implementation where
+ they do not overlap. */
+ void (*_sa_sigaction) (int, siginfo_t *, void *);
+ } _sa_func;
+ sigset_t sa_mask;
+ /* Not all POSIX flags are supported. */
+ int sa_flags;
+};
+# define sa_handler _sa_func._sa_handler
+# define sa_sigaction _sa_func._sa_sigaction
+/* Unsupported flags are not present. */
+# define SA_RESETHAND 1
+# define SA_NODEFER 2
+# define SA_RESTART 4
+
+# define GNULIB_defined_struct_sigaction 1
+# endif
+
+_GL_FUNCDECL_SYS (sigaction, int, (int, const struct sigaction *restrict,
+ struct sigaction *restrict));
+
+# elif !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+
+# define sa_sigaction sa_handler
+
+# endif /* !@HAVE_SIGACTION@, !@HAVE_STRUCT_SIGACTION_SA_SIGACTION@ */
+
+_GL_CXXALIAS_SYS (sigaction, int, (int, const struct sigaction *restrict,
+ struct sigaction *restrict));
+_GL_CXXALIASWARN (sigaction);
+
+#elif defined GNULIB_POSIXCHECK
+# undef sigaction
+# if HAVE_RAW_DECL_SIGACTION
+_GL_WARN_ON_USE (sigaction, "sigaction is unportable - "
+ "use the gnulib module sigaction for portability");
+# endif
+#endif
+
+/* Some systems don't have SA_NODEFER. */
+#ifndef SA_NODEFER
+# define SA_NODEFER 0
+#endif
+
+
+#endif /* _@GUARD_PREFIX@_SIGNAL_H */
+#endif /* _@GUARD_PREFIX@_SIGNAL_H */
+#endif
diff --git a/gnu/size_max.h b/gnu/size_max.h
new file mode 100644
index 00000000..2821e512
--- /dev/null
+++ b/gnu/size_max.h
@@ -0,0 +1,33 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+ Written by Simon Josefsson.
+
+ This 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 GNULIB_SIZE_MAX_H
+#define GNULIB_SIZE_MAX_H
+
+/* Get SIZE_MAX declaration on systems like Solaris 7/8/9. */
+# include <limits.h>
+/* Get SIZE_MAX declaration on systems like glibc 2. */
+# if HAVE_STDINT_H
+# include <stdint.h>
+# endif
+/* On systems where these include files don't define it, SIZE_MAX is defined
+ in config.h. */
+
+#endif /* GNULIB_SIZE_MAX_H */
diff --git a/gnu/sleep.c b/gnu/sleep.c
new file mode 100644
index 00000000..9ac3a29b
--- /dev/null
+++ b/gnu/sleep.c
@@ -0,0 +1,78 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Pausing execution of the current thread.
+ Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2007.
+
+ This 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 <limits.h>
+
+#include "verify.h"
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+# define WIN32_LEAN_AND_MEAN /* avoid including junk */
+# include <windows.h>
+
+unsigned int
+sleep (unsigned int seconds)
+{
+ unsigned int remaining;
+
+ /* Sleep for 1 second many times, because
+ 1. Sleep is not interruptiple by Ctrl-C,
+ 2. we want to avoid arithmetic overflow while multiplying with 1000. */
+ for (remaining = seconds; remaining > 0; remaining--)
+ Sleep (1000);
+
+ return remaining;
+}
+
+#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. Similarly, Linux 2.6.9 with glibc 2.3.4 has a too
+ small return value when asked to sleep more than 24.85 days. */
+unsigned int
+rpl_sleep (unsigned int seconds)
+{
+ /* This requires int larger than 16 bits. */
+ verify (UINT_MAX / 24 / 24 / 60 / 60);
+ const unsigned int limit = 24 * 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."
+
+#endif
diff --git a/gnu/snprintf.c b/gnu/snprintf.c
new file mode 100644
index 00000000..99b51b48
--- /dev/null
+++ b/gnu/snprintf.c
@@ -0,0 +1,74 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Formatted output to strings.
+ Copyright (C) 2004, 2006-2012 Free Software Foundation, Inc.
+ Written by Simon Josefsson and Paul Eggert.
+
+ This 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. */
+#include <stdio.h>
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "vasnprintf.h"
+
+/* Print formatted output to string STR. Similar to sprintf, but
+ additional length SIZE limit how much is written into STR. Returns
+ string length of formatted string (which may be larger than SIZE).
+ STR may be NULL, in which case nothing will be written. On error,
+ return a negative value. */
+int
+snprintf (char *str, size_t size, const char *format, ...)
+{
+ char *output;
+ size_t len;
+ size_t lenbuf = size;
+ va_list args;
+
+ va_start (args, format);
+ output = vasnprintf (str, &lenbuf, format, args);
+ len = lenbuf;
+ va_end (args);
+
+ if (!output)
+ return -1;
+
+ if (output != str)
+ {
+ if (size)
+ {
+ size_t pruned_len = (len < size ? len : size - 1);
+ memcpy (str, output, pruned_len);
+ str[pruned_len] = '\0';
+ }
+
+ free (output);
+ }
+
+ if (INT_MAX < len)
+ {
+ errno = EOVERFLOW;
+ return -1;
+ }
+
+ return len;
+}
diff --git a/gnu/stat-macros.h b/gnu/stat-macros.h
new file mode 100644
index 00000000..00112cef
--- /dev/null
+++ b/gnu/stat-macros.h
@@ -0,0 +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/gnu/stat-time.h b/gnu/stat-time.h
new file mode 100644
index 00000000..54a94461
--- /dev/null
+++ b/gnu/stat-time.h
@@ -0,0 +1,191 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* stat-related time functions.
+
+ Copyright (C) 2005, 2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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. */
+
+#ifndef STAT_TIME_H
+#define STAT_TIME_H 1
+
+#include <sys/stat.h>
+#include <time.h>
+
+/* STAT_TIMESPEC (ST, ST_XTIM) is the ST_XTIM member for *ST of type
+ struct timespec, if available. If not, then STAT_TIMESPEC_NS (ST,
+ ST_XTIM) is the nanosecond component of the ST_XTIM member for *ST,
+ if available. ST_XTIM can be st_atim, st_ctim, st_mtim, or st_birthtim
+ for access, status change, data modification, or birth (creation)
+ time respectively.
+
+ These macros are private to stat-time.h. */
+#if defined HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
+# ifdef TYPEOF_STRUCT_STAT_ST_ATIM_IS_STRUCT_TIMESPEC
+# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim)
+# else
+# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.tv_nsec)
+# endif
+#elif defined HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
+# define STAT_TIMESPEC(st, st_xtim) ((st)->st_xtim##espec)
+#elif defined HAVE_STRUCT_STAT_ST_ATIMENSEC
+# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim##ensec)
+#elif defined HAVE_STRUCT_STAT_ST_ATIM_ST__TIM_TV_NSEC
+# define STAT_TIMESPEC_NS(st, st_xtim) ((st)->st_xtim.st__tim.tv_nsec)
+#endif
+
+/* Return the nanosecond component of *ST's access time. */
+static inline long int
+get_stat_atime_ns (struct stat const *st)
+{
+# if defined STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_atim).tv_nsec;
+# elif defined STAT_TIMESPEC_NS
+ return STAT_TIMESPEC_NS (st, st_atim);
+# else
+ return 0;
+# endif
+}
+
+/* Return the nanosecond component of *ST's status change time. */
+static inline long int
+get_stat_ctime_ns (struct stat const *st)
+{
+# if defined STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_ctim).tv_nsec;
+# elif defined STAT_TIMESPEC_NS
+ return STAT_TIMESPEC_NS (st, st_ctim);
+# else
+ return 0;
+# endif
+}
+
+/* Return the nanosecond component of *ST's data modification time. */
+static inline long int
+get_stat_mtime_ns (struct stat const *st)
+{
+# if defined STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_mtim).tv_nsec;
+# elif defined STAT_TIMESPEC_NS
+ return STAT_TIMESPEC_NS (st, st_mtim);
+# else
+ return 0;
+# endif
+}
+
+/* Return the nanosecond component of *ST's birth time. */
+static inline long int
+get_stat_birthtime_ns (struct stat const *st)
+{
+# if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC
+ return STAT_TIMESPEC (st, st_birthtim).tv_nsec;
+# elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
+ return STAT_TIMESPEC_NS (st, st_birthtim);
+# else
+ /* Avoid a "parameter unused" warning. */
+ (void) st;
+ return 0;
+# endif
+}
+
+/* Return *ST's access time. */
+static inline struct timespec
+get_stat_atime (struct stat const *st)
+{
+#ifdef STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_atim);
+#else
+ struct timespec t;
+ t.tv_sec = st->st_atime;
+ t.tv_nsec = get_stat_atime_ns (st);
+ return t;
+#endif
+}
+
+/* Return *ST's status change time. */
+static inline struct timespec
+get_stat_ctime (struct stat const *st)
+{
+#ifdef STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_ctim);
+#else
+ struct timespec t;
+ t.tv_sec = st->st_ctime;
+ t.tv_nsec = get_stat_ctime_ns (st);
+ return t;
+#endif
+}
+
+/* Return *ST's data modification time. */
+static inline struct timespec
+get_stat_mtime (struct stat const *st)
+{
+#ifdef STAT_TIMESPEC
+ return STAT_TIMESPEC (st, st_mtim);
+#else
+ struct timespec t;
+ t.tv_sec = st->st_mtime;
+ t.tv_nsec = get_stat_mtime_ns (st);
+ return t;
+#endif
+}
+
+/* Return *ST's birth time, if available; otherwise return a value
+ with tv_sec and tv_nsec both equal to -1. */
+static inline struct timespec
+get_stat_birthtime (struct stat const *st)
+{
+ struct timespec t;
+
+#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \
+ || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC)
+ t = STAT_TIMESPEC (st, st_birthtim);
+#elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC
+ t.tv_sec = st->st_birthtime;
+ t.tv_nsec = st->st_birthtimensec;
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ /* Native Windows platforms (but not Cygwin) put the "file creation
+ time" in st_ctime (!). See
+ <http://msdn2.microsoft.com/de-de/library/14h5k7ff(VS.80).aspx>. */
+ t.tv_sec = st->st_ctime;
+ t.tv_nsec = 0;
+#else
+ /* Birth time is not supported. */
+ t.tv_sec = -1;
+ t.tv_nsec = -1;
+ /* Avoid a "parameter unused" warning. */
+ (void) st;
+#endif
+
+#if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \
+ || defined HAVE_STRUCT_STAT_ST_BIRTHTIM_TV_NSEC \
+ || defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC)
+ /* FreeBSD and NetBSD sometimes signal the absence of knowledge by
+ using zero. Attempt to work around this problem. Alas, this can
+ report failure even for valid time stamps. Also, NetBSD
+ sometimes returns junk in the birth time fields; work around this
+ bug if it is detected. */
+ if (! (t.tv_sec && 0 <= t.tv_nsec && t.tv_nsec < 1000000000))
+ {
+ t.tv_sec = -1;
+ t.tv_nsec = -1;
+ }
+#endif
+
+ return t;
+}
+
+#endif
diff --git a/gnu/stat.c b/gnu/stat.c
new file mode 100644
index 00000000..9df74d6c
--- /dev/null
+++ b/gnu/stat.c
@@ -0,0 +1,125 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Work around platform bugs in stat.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 */
+
+/* If the user's config.h happens to include <sys/stat.h>, let it include only
+ the system's <sys/stat.h> here, so that orig_stat doesn't recurse to
+ rpl_stat. */
+#define __need_system_sys_stat_h
+#include <config.h>
+
+/* Get the original definition of stat. It might be defined as a macro. */
+#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. */
+/* Write "sys/stat.h" here, not <sys/stat.h>, otherwise OSF/1 5.1 DTK cc
+ eliminates this include because of the preliminary #include <sys/stat.h>
+ above. */
+#include "sys/stat.h"
+
+#include <errno.h>
+#include <limits.h>
+#include <stdbool.h>
+#include <string.h>
+#include "dosname.h"
+#include "verify.h"
+
+#if REPLACE_FUNC_STAT_DIR
+# include "pathmax.h"
+ /* The only known systems where REPLACE_FUNC_STAT_DIR is needed also
+ have a constant PATH_MAX. */
+# ifndef PATH_MAX
+# error "Please port this replacement to your platform"
+# endif
+#endif
+
+/* 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;
+ verify (PATH_MAX <= 4096);
+ 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/gnu/stdalign.in.h b/gnu/stdalign.in.h
new file mode 100644
index 00000000..c57a5a64
--- /dev/null
+++ b/gnu/stdalign.in.h
@@ -0,0 +1,93 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A substitute for ISO C11 <stdalign.h>.
+
+ Copyright 2011-2012 Free Software Foundation, Inc.
+
+ This 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 and Bruno Haible. */
+
+#ifndef _GL_STDALIGN_H
+#define _GL_STDALIGN_H
+
+/* ISO C11 <stdalign.h> for platforms that lack it.
+
+ References:
+ ISO C11 (latest free draft
+ <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf>)
+ sections 6.5.3.4, 6.7.5, 7.15.
+ C++11 (latest free draft
+ <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf>)
+ section 18.10. */
+
+/* alignof (TYPE), also known as _Alignof (TYPE), yields the alignment
+ requirement of a structure member (i.e., slot or field) that is of
+ type TYPE, as an integer constant expression.
+
+ This differs from GCC's __alignof__ operator, which can yield a
+ better-performing alignment for an object of that type. For
+ example, on x86 with GCC, __alignof__ (double) and __alignof__
+ (long long) are 8, whereas alignof (double) and alignof (long long)
+ are 4 unless the option '-malign-double' is used.
+
+ The result cannot be used as a value for an 'enum' constant, if you
+ want to be portable to HP-UX 10.20 cc and AIX 3.2.5 xlc. */
+#include <stddef.h>
+#if defined __cplusplus
+ template <class __t> struct __alignof_helper { char __a; __t __b; };
+# define _Alignof(type) offsetof (__alignof_helper<type>, __b)
+#else
+# define _Alignof(type) offsetof (struct { char __a; type __b; }, __b)
+#endif
+#define alignof _Alignof
+#define __alignof_is_defined 1
+
+/* alignas (A), also known as _Alignas (A), aligns a variable or type
+ to the alignment A, where A is an integer constant expression. For
+ example:
+
+ int alignas (8) foo;
+ struct s { int a; int alignas (8) bar; };
+
+ aligns the address of FOO and the offset of BAR to be multiples of 8.
+
+ A should be a power of two that is at least the type's alignment
+ and at most the implementation's alignment limit. This limit is
+ 2**28 on typical GNUish hosts, and 2**13 on MSVC. To be portable
+ to MSVC through at least version 10.0, A should be an integer
+ constant, as MSVC does not support expressions such as 1 << 3.
+ To be portable to Sun C 5.11, do not align auto variables to
+ anything stricter than their default alignment.
+
+ The following C11 requirements are not supported here:
+
+ - If A is zero, alignas has no effect.
+ - alignas can be used multiple times; the strictest one wins.
+ - alignas (TYPE) is equivalent to alignas (alignof (TYPE)).
+
+ */
+
+#if __GNUC__ || __IBMC__ || __IBMCPP__ || 0x5110 <= __SUNPRO_C
+# define _Alignas(a) __attribute__ ((__aligned__ (a)))
+#elif 1300 <= _MSC_VER
+# define _Alignas(a) __declspec (align (a))
+#endif
+#ifdef _Alignas
+# define alignas _Alignas
+# define __alignas_is_defined 1
+#endif
+
+#endif /* _GL_STDALIGN_H */
diff --git a/gnu/stdarg.in.h b/gnu/stdarg.in.h
new file mode 100644
index 00000000..6cbe8bf4
--- /dev/null
+++ b/gnu/stdarg.in.h
@@ -0,0 +1,38 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Substitute for and wrapper around <stdarg.h>.
+ Copyright (C) 2008-2012 Free Software Foundation, Inc.
+
+ This 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 _@GUARD_PREFIX@_STDARG_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_STDARG_H@
+
+#ifndef _@GUARD_PREFIX@_STDARG_H
+#define _@GUARD_PREFIX@_STDARG_H
+
+#ifndef va_copy
+# define va_copy(a,b) ((a) = (b))
+#endif
+
+#endif /* _@GUARD_PREFIX@_STDARG_H */
+#endif /* _@GUARD_PREFIX@_STDARG_H */
diff --git a/gnu/stdbool.in.h b/gnu/stdbool.in.h
new file mode 100644
index 00000000..80a2d148
--- /dev/null
+++ b/gnu/stdbool.in.h
@@ -0,0 +1,124 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 2001-2003, 2006-2012 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
+ 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_STDBOOL_H
+#define _GL_STDBOOL_H
+
+/* ISO C 99 <stdbool.h> for platforms that lack it. */
+
+/* Usage suggestions:
+
+ Programs that use <stdbool.h> should be aware of some limitations
+ and standards compliance issues.
+
+ Standards compliance:
+
+ - <stdbool.h> must be #included before 'bool', 'false', 'true'
+ can be used.
+
+ - You cannot assume that sizeof (bool) == 1.
+
+ - Programs should not undefine the macros bool, true, and false,
+ as C99 lists that as an "obsolescent feature".
+
+ Limitations of this substitute, when used in a C89 environment:
+
+ - <stdbool.h> must be #included before the '_Bool' type can be used.
+
+ - You cannot assume that _Bool is a typedef; it might be a macro.
+
+ - Bit-fields of type 'bool' are not supported. Portable code
+ should use 'unsigned int foo : 1;' rather than 'bool foo : 1;'.
+
+ - In C99, casts and automatic conversions to '_Bool' or 'bool' are
+ performed in such a way that every nonzero value gets converted
+ to 'true', and zero gets converted to 'false'. This doesn't work
+ with this substitute. With this substitute, only the values 0 and 1
+ give the expected result when converted to _Bool' or 'bool'.
+
+ - C99 allows the use of (_Bool)0.0 in constant expressions, but
+ this substitute cannot always provide this property.
+
+ Also, it is suggested that programs use 'bool' rather than '_Bool';
+ this isn't required, but 'bool' is more common. */
+
+
+/* 7.16. Boolean type and values */
+
+/* BeOS <sys/socket.h> already #defines false 0, true 1. We use the same
+ definitions below, but temporarily we have to #undef them. */
+#if defined __BEOS__ && !defined __HAIKU__
+# include <OS.h> /* defines bool but not _Bool */
+# undef false
+# undef true
+#endif
+
+/* For the sake of symbolic names in gdb, we define true and false as
+ enum constants, not only as macros.
+ It is tempting to write
+ typedef enum { false = 0, true = 1 } _Bool;
+ so that gdb prints values of type 'bool' symbolically. But if we do
+ this, values of type '_Bool' may promote to 'int' or 'unsigned int'
+ (see ISO C 99 6.7.2.2.(4)); however, '_Bool' must promote to 'int'
+ (see ISO C 99 6.3.1.1.(2)). So we add a negative value to the
+ enum; this ensures that '_Bool' promotes to 'int'. */
+#if defined __cplusplus || (defined __BEOS__ && !defined __HAIKU__)
+ /* A compiler known to have 'bool'. */
+ /* If the compiler already has both 'bool' and '_Bool', we can assume they
+ are the same types. */
+# if !@HAVE__BOOL@
+typedef bool _Bool;
+# endif
+#else
+# if !defined __GNUC__
+ /* If @HAVE__BOOL@:
+ Some HP-UX cc and AIX IBM C compiler versions have compiler bugs when
+ the built-in _Bool type is used. See
+ http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ http://lists.gnu.org/archive/html/bug-coreutils/2005-10/msg00086.html
+ Similar bugs are likely with other compilers as well; this file
+ wouldn't be used if <stdbool.h> was working.
+ So we override the _Bool type.
+ If !@HAVE__BOOL@:
+ Need to define _Bool ourselves. As 'signed char' or as an enum type?
+ Use of a typedef, with SunPRO C, leads to a stupid
+ "warning: _Bool is a keyword in ISO C99".
+ Use of an enum type, with IRIX cc, leads to a stupid
+ "warning(1185): enumerated type mixed with another type".
+ Even the existence of an enum type, without a typedef,
+ "Invalid enumerator. (badenum)" with HP-UX cc on Tru64.
+ The only benefit of the enum, debuggability, is not important
+ with these compilers. So use 'signed char' and no enum. */
+# define _Bool signed char
+# else
+ /* With this compiler, trust the _Bool type if the compiler has it. */
+# if !@HAVE__BOOL@
+typedef enum { _Bool_must_promote_to_int = -1, false = 0, true = 1 } _Bool;
+# endif
+# endif
+#endif
+#define bool _Bool
+
+/* The other macros must be usable in preprocessor directives. */
+#define false 0
+#define true 1
+#define __bool_true_false_are_defined 1
+
+#endif /* _GL_STDBOOL_H */
diff --git a/gnu/stddef.in.h b/gnu/stddef.in.h
new file mode 100644
index 00000000..9684b739
--- /dev/null
+++ b/gnu/stddef.in.h
@@ -0,0 +1,89 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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
+@PRAGMA_COLUMNS@
+
+#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 _@GUARD_PREFIX@_STDDEF_H && defined _GL_STDDEF_WINT_T)
+# ifdef __need_wint_t
+# undef _@GUARD_PREFIX@_STDDEF_H
+# define _GL_STDDEF_WINT_T
+# endif
+# @INCLUDE_NEXT@ @NEXT_STDDEF_H@
+# endif
+
+#else
+/* Normal invocation convention. */
+
+# ifndef _@GUARD_PREFIX@_STDDEF_H
+
+/* The include_next requires a split double-inclusion guard. */
+
+# @INCLUDE_NEXT@ @NEXT_STDDEF_H@
+
+# ifndef _@GUARD_PREFIX@_STDDEF_H
+# define _@GUARD_PREFIX@_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 /* _@GUARD_PREFIX@_STDDEF_H */
+# endif /* _@GUARD_PREFIX@_STDDEF_H */
+#endif /* __need_XXX */
diff --git a/gnu/stdint.in.h b/gnu/stdint.in.h
new file mode 100644
index 00000000..7796840b
--- /dev/null
+++ b/gnu/stdint.in.h
@@ -0,0 +1,611 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 2001-2002, 2004-2012 Free Software Foundation, Inc.
+ Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood.
+ This file is part of gnulib.
+
+ This 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. */
+
+/*
+ * ISO C 99 <stdint.h> for platforms that lack it.
+ * <http://www.opengroup.org/susv3xbd/stdint.h.html>
+ */
+
+#ifndef _@GUARD_PREFIX@_STDINT_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* When including a system file that in turn includes <inttypes.h>,
+ use the system <inttypes.h>, not our substitute. This avoids
+ problems with (for example) VMS, whose <sys/bitypes.h> includes
+ <inttypes.h>. */
+#define _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+
+/* Get those types that are already defined in other system include
+ files, so that we can "#define int8_t signed char" below without
+ worrying about a later system include file containing a "typedef
+ signed char int8_t;" that will get messed up by our macro. Our
+ macros should all be consistent with the system versions, except
+ for the "fast" types and macros, which we recommend against using
+ in public interfaces due to compiler differences. */
+
+#if @HAVE_STDINT_H@
+# if defined __sgi && ! defined __c99
+ /* Bypass IRIX's <stdint.h> if in C89 mode, since it merely annoys users
+ with "This header file is to be used only for c99 mode compilations"
+ diagnostics. */
+# define __STDINT_H__
+# endif
+
+ /* Some pre-C++11 <stdint.h> implementations need this. */
+# ifdef __cplusplus
+# ifndef __STDC_CONSTANT_MACROS
+# define __STDC_CONSTANT_MACROS 1
+# endif
+# ifndef __STDC_LIMIT_MACROS
+# define __STDC_LIMIT_MACROS 1
+# endif
+# endif
+
+ /* Other systems may have an incomplete or buggy <stdint.h>.
+ Include it before <inttypes.h>, since any "#include <stdint.h>"
+ in <inttypes.h> would reinclude us, skipping our contents because
+ _@GUARD_PREFIX@_STDINT_H is defined.
+ The include_next requires a split double-inclusion guard. */
+# @INCLUDE_NEXT@ @NEXT_STDINT_H@
+#endif
+
+#if ! defined _@GUARD_PREFIX@_STDINT_H && ! defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H
+#define _@GUARD_PREFIX@_STDINT_H
+
+/* <sys/types.h> defines some of the stdint.h types as well, on glibc,
+ IRIX 6.5, and OpenBSD 3.8 (via <machine/types.h>).
+ AIX 5.2 <sys/types.h> isn't needed and causes troubles.
+ MacOS X 10.4.6 <sys/types.h> includes <stdint.h> (which is us), but
+ relies on the system <stdint.h> definitions, so include
+ <sys/types.h> after @NEXT_STDINT_H@. */
+#if @HAVE_SYS_TYPES_H@ && ! defined _AIX
+# include <sys/types.h>
+#endif
+
+/* Get LONG_MIN, LONG_MAX, ULONG_MAX. */
+#include <limits.h>
+
+#if @HAVE_INTTYPES_H@
+ /* In OpenBSD 3.8, <inttypes.h> includes <machine/types.h>, which defines
+ int{8,16,32,64}_t, uint{8,16,32,64}_t and __BIT_TYPES_DEFINED__.
+ <inttypes.h> also defines intptr_t and uintptr_t. */
+# include <inttypes.h>
+#elif @HAVE_SYS_INTTYPES_H@
+ /* Solaris 7 <sys/inttypes.h> has the types except the *_fast*_t types, and
+ the macros except for *_FAST*_*, INTPTR_MIN, PTRDIFF_MIN, PTRDIFF_MAX. */
+# include <sys/inttypes.h>
+#endif
+
+#if @HAVE_SYS_BITYPES_H@ && ! defined __BIT_TYPES_DEFINED__
+ /* Linux libc4 >= 4.6.7 and libc5 have a <sys/bitypes.h> that defines
+ int{8,16,32,64}_t and __BIT_TYPES_DEFINED__. In libc5 >= 5.2.2 it is
+ included by <sys/types.h>. */
+# include <sys/bitypes.h>
+#endif
+
+#undef _GL_JUST_INCLUDE_SYSTEM_INTTYPES_H
+
+/* Minimum and maximum values for an integer type under the usual assumption.
+ Return an unspecified value if BITS == 0, adding a check to pacify
+ picky compilers. */
+
+#define _STDINT_MIN(signed, bits, zero) \
+ ((signed) ? (- ((zero) + 1) << ((bits) ? (bits) - 1 : 0)) : (zero))
+
+#define _STDINT_MAX(signed, bits, zero) \
+ ((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. */ \
+ ((((zero) + 1) << ((bits) ? (bits) - 1 - (signed) : 0)) - 1) * 2 + 1)
+
+#if !GNULIB_defined_stdint_types
+
+/* 7.18.1.1. Exact-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. */
+
+#undef int8_t
+#undef uint8_t
+typedef signed char gl_int8_t;
+typedef unsigned char gl_uint8_t;
+#define int8_t gl_int8_t
+#define uint8_t gl_uint8_t
+
+#undef int16_t
+#undef uint16_t
+typedef short int gl_int16_t;
+typedef unsigned short int gl_uint16_t;
+#define int16_t gl_int16_t
+#define uint16_t gl_uint16_t
+
+#undef int32_t
+#undef uint32_t
+typedef int gl_int32_t;
+typedef unsigned int gl_uint32_t;
+#define int32_t gl_int32_t
+#define uint32_t gl_uint32_t
+
+/* If the system defines INT64_MAX, assume int64_t works. That way,
+ if the underlying platform defines int64_t to be a 64-bit long long
+ int, the code below won't mistakenly define it to be a 64-bit long
+ int, which would mess up C++ name mangling. We must use #ifdef
+ rather than #if, to avoid an error with HP-UX 10.20 cc. */
+
+#ifdef INT64_MAX
+# define GL_INT64_T
+#else
+/* Do not undefine int64_t if gnulib is not being used with 64-bit
+ types, since otherwise it breaks platforms like Tandem/NSK. */
+# if LONG_MAX >> 31 >> 31 == 1
+# undef int64_t
+typedef long int gl_int64_t;
+# define int64_t gl_int64_t
+# define GL_INT64_T
+# elif defined _MSC_VER
+# undef int64_t
+typedef __int64 gl_int64_t;
+# define int64_t gl_int64_t
+# define GL_INT64_T
+# elif @HAVE_LONG_LONG_INT@
+# undef int64_t
+typedef long long int gl_int64_t;
+# define int64_t gl_int64_t
+# define GL_INT64_T
+# endif
+#endif
+
+#ifdef UINT64_MAX
+# define GL_UINT64_T
+#else
+# if ULONG_MAX >> 31 >> 31 >> 1 == 1
+# undef uint64_t
+typedef unsigned long int gl_uint64_t;
+# define uint64_t gl_uint64_t
+# define GL_UINT64_T
+# elif defined _MSC_VER
+# undef uint64_t
+typedef unsigned __int64 gl_uint64_t;
+# define uint64_t gl_uint64_t
+# define GL_UINT64_T
+# elif @HAVE_UNSIGNED_LONG_LONG_INT@
+# undef uint64_t
+typedef unsigned long long int gl_uint64_t;
+# define uint64_t gl_uint64_t
+# define GL_UINT64_T
+# endif
+#endif
+
+/* Avoid collision with Solaris 2.5.1 <pthread.h> etc. */
+#define _UINT8_T
+#define _UINT32_T
+#define _UINT64_T
+
+
+/* 7.18.1.2. Minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+ are the same as the corresponding N_t types. */
+
+#undef int_least8_t
+#undef uint_least8_t
+#undef int_least16_t
+#undef uint_least16_t
+#undef int_least32_t
+#undef uint_least32_t
+#undef int_least64_t
+#undef uint_least64_t
+#define int_least8_t int8_t
+#define uint_least8_t uint8_t
+#define int_least16_t int16_t
+#define uint_least16_t uint16_t
+#define int_least32_t int32_t
+#define uint_least32_t uint32_t
+#ifdef GL_INT64_T
+# define int_least64_t int64_t
+#endif
+#ifdef GL_UINT64_T
+# define uint_least64_t uint64_t
+#endif
+
+/* 7.18.1.3. Fastest minimum-width integer types */
+
+/* Note: Other <stdint.h> substitutes may define these types differently.
+ It is not recommended to use these types in public header files. */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+ are taken from the same list of types. Assume that 'long int'
+ is fast enough for all narrower integers. */
+
+#undef int_fast8_t
+#undef uint_fast8_t
+#undef int_fast16_t
+#undef uint_fast16_t
+#undef int_fast32_t
+#undef uint_fast32_t
+#undef int_fast64_t
+#undef uint_fast64_t
+typedef long int gl_int_fast8_t;
+typedef unsigned long int gl_uint_fast8_t;
+typedef long int gl_int_fast16_t;
+typedef unsigned long int gl_uint_fast16_t;
+typedef long int gl_int_fast32_t;
+typedef unsigned long int gl_uint_fast32_t;
+#define int_fast8_t gl_int_fast8_t
+#define uint_fast8_t gl_uint_fast8_t
+#define int_fast16_t gl_int_fast16_t
+#define uint_fast16_t gl_uint_fast16_t
+#define int_fast32_t gl_int_fast32_t
+#define uint_fast32_t gl_uint_fast32_t
+#ifdef GL_INT64_T
+# define int_fast64_t int64_t
+#endif
+#ifdef GL_UINT64_T
+# define uint_fast64_t uint64_t
+#endif
+
+/* 7.18.1.4. Integer types capable of holding object pointers */
+
+#undef intptr_t
+#undef uintptr_t
+typedef long int gl_intptr_t;
+typedef unsigned long int gl_uintptr_t;
+#define intptr_t gl_intptr_t
+#define uintptr_t gl_uintptr_t
+
+/* 7.18.1.5. Greatest-width integer types */
+
+/* Note: These types are compiler dependent. It may be unwise to use them in
+ public header files. */
+
+/* If the system defines INTMAX_MAX, assume that intmax_t works, and
+ similarly for UINTMAX_MAX and uintmax_t. This avoids problems with
+ assuming one type where another is used by the system. */
+
+#ifndef INTMAX_MAX
+# undef INTMAX_C
+# undef intmax_t
+# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+typedef long long int gl_intmax_t;
+# define intmax_t gl_intmax_t
+# elif defined GL_INT64_T
+# define intmax_t int64_t
+# else
+typedef long int gl_intmax_t;
+# define intmax_t gl_intmax_t
+# endif
+#endif
+
+#ifndef UINTMAX_MAX
+# undef UINTMAX_C
+# undef uintmax_t
+# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+typedef unsigned long long int gl_uintmax_t;
+# define uintmax_t gl_uintmax_t
+# elif defined GL_UINT64_T
+# define uintmax_t uint64_t
+# else
+typedef unsigned long int gl_uintmax_t;
+# define uintmax_t gl_uintmax_t
+# endif
+#endif
+
+/* Verify that intmax_t and uintmax_t have the same size. Too much code
+ breaks if this is not the case. If this check fails, the reason is likely
+ to be found in the autoconf macros. */
+typedef int _verify_intmax_size[sizeof (intmax_t) == sizeof (uintmax_t)
+ ? 1 : -1];
+
+#define GNULIB_defined_stdint_types 1
+#endif /* !GNULIB_defined_stdint_types */
+
+/* 7.18.2. Limits of specified-width integer types */
+
+/* 7.18.2.1. Limits of exact-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. */
+
+#undef INT8_MIN
+#undef INT8_MAX
+#undef UINT8_MAX
+#define INT8_MIN (~ INT8_MAX)
+#define INT8_MAX 127
+#define UINT8_MAX 255
+
+#undef INT16_MIN
+#undef INT16_MAX
+#undef UINT16_MAX
+#define INT16_MIN (~ INT16_MAX)
+#define INT16_MAX 32767
+#define UINT16_MAX 65535
+
+#undef INT32_MIN
+#undef INT32_MAX
+#undef UINT32_MAX
+#define INT32_MIN (~ INT32_MAX)
+#define INT32_MAX 2147483647
+#define UINT32_MAX 4294967295U
+
+#if defined GL_INT64_T && ! defined INT64_MAX
+/* Prefer (- INTMAX_C (1) << 63) over (~ INT64_MAX) because SunPRO C 5.0
+ evaluates the latter incorrectly in preprocessor expressions. */
+# define INT64_MIN (- INTMAX_C (1) << 63)
+# define INT64_MAX INTMAX_C (9223372036854775807)
+#endif
+
+#if defined GL_UINT64_T && ! defined UINT64_MAX
+# define UINT64_MAX UINTMAX_C (18446744073709551615)
+#endif
+
+/* 7.18.2.2. Limits of minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. Therefore the leastN_t types
+ are the same as the corresponding N_t types. */
+
+#undef INT_LEAST8_MIN
+#undef INT_LEAST8_MAX
+#undef UINT_LEAST8_MAX
+#define INT_LEAST8_MIN INT8_MIN
+#define INT_LEAST8_MAX INT8_MAX
+#define UINT_LEAST8_MAX UINT8_MAX
+
+#undef INT_LEAST16_MIN
+#undef INT_LEAST16_MAX
+#undef UINT_LEAST16_MAX
+#define INT_LEAST16_MIN INT16_MIN
+#define INT_LEAST16_MAX INT16_MAX
+#define UINT_LEAST16_MAX UINT16_MAX
+
+#undef INT_LEAST32_MIN
+#undef INT_LEAST32_MAX
+#undef UINT_LEAST32_MAX
+#define INT_LEAST32_MIN INT32_MIN
+#define INT_LEAST32_MAX INT32_MAX
+#define UINT_LEAST32_MAX UINT32_MAX
+
+#undef INT_LEAST64_MIN
+#undef INT_LEAST64_MAX
+#ifdef GL_INT64_T
+# define INT_LEAST64_MIN INT64_MIN
+# define INT_LEAST64_MAX INT64_MAX
+#endif
+
+#undef UINT_LEAST64_MAX
+#ifdef GL_UINT64_T
+# define UINT_LEAST64_MAX UINT64_MAX
+#endif
+
+/* 7.18.2.3. Limits of fastest minimum-width integer types */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits. Therefore the fastN_t types
+ are taken from the same list of types. */
+
+#undef INT_FAST8_MIN
+#undef INT_FAST8_MAX
+#undef UINT_FAST8_MAX
+#define INT_FAST8_MIN LONG_MIN
+#define INT_FAST8_MAX LONG_MAX
+#define UINT_FAST8_MAX ULONG_MAX
+
+#undef INT_FAST16_MIN
+#undef INT_FAST16_MAX
+#undef UINT_FAST16_MAX
+#define INT_FAST16_MIN LONG_MIN
+#define INT_FAST16_MAX LONG_MAX
+#define UINT_FAST16_MAX ULONG_MAX
+
+#undef INT_FAST32_MIN
+#undef INT_FAST32_MAX
+#undef UINT_FAST32_MAX
+#define INT_FAST32_MIN LONG_MIN
+#define INT_FAST32_MAX LONG_MAX
+#define UINT_FAST32_MAX ULONG_MAX
+
+#undef INT_FAST64_MIN
+#undef INT_FAST64_MAX
+#ifdef GL_INT64_T
+# define INT_FAST64_MIN INT64_MIN
+# define INT_FAST64_MAX INT64_MAX
+#endif
+
+#undef UINT_FAST64_MAX
+#ifdef GL_UINT64_T
+# define UINT_FAST64_MAX UINT64_MAX
+#endif
+
+/* 7.18.2.4. Limits of integer types capable of holding object pointers */
+
+#undef INTPTR_MIN
+#undef INTPTR_MAX
+#undef UINTPTR_MAX
+#define INTPTR_MIN LONG_MIN
+#define INTPTR_MAX LONG_MAX
+#define UINTPTR_MAX ULONG_MAX
+
+/* 7.18.2.5. Limits of greatest-width integer types */
+
+#ifndef INTMAX_MAX
+# undef INTMAX_MIN
+# ifdef INT64_MAX
+# define INTMAX_MIN INT64_MIN
+# define INTMAX_MAX INT64_MAX
+# else
+# define INTMAX_MIN INT32_MIN
+# define INTMAX_MAX INT32_MAX
+# endif
+#endif
+
+#ifndef UINTMAX_MAX
+# ifdef UINT64_MAX
+# define UINTMAX_MAX UINT64_MAX
+# else
+# define UINTMAX_MAX UINT32_MAX
+# endif
+#endif
+
+/* 7.18.3. Limits of other integer types */
+
+/* ptrdiff_t limits */
+#undef PTRDIFF_MIN
+#undef PTRDIFF_MAX
+#if @APPLE_UNIVERSAL_BUILD@
+# ifdef _LP64
+# define PTRDIFF_MIN _STDINT_MIN (1, 64, 0l)
+# define PTRDIFF_MAX _STDINT_MAX (1, 64, 0l)
+# else
+# define PTRDIFF_MIN _STDINT_MIN (1, 32, 0)
+# define PTRDIFF_MAX _STDINT_MAX (1, 32, 0)
+# endif
+#else
+# define PTRDIFF_MIN \
+ _STDINT_MIN (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+# define PTRDIFF_MAX \
+ _STDINT_MAX (1, @BITSIZEOF_PTRDIFF_T@, 0@PTRDIFF_T_SUFFIX@)
+#endif
+
+/* sig_atomic_t limits */
+#undef SIG_ATOMIC_MIN
+#undef SIG_ATOMIC_MAX
+#define SIG_ATOMIC_MIN \
+ _STDINT_MIN (@HAVE_SIGNED_SIG_ATOMIC_T@, @BITSIZEOF_SIG_ATOMIC_T@, \
+ 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@)
+
+
+/* size_t limit */
+#undef SIZE_MAX
+#if @APPLE_UNIVERSAL_BUILD@
+# ifdef _LP64
+# define SIZE_MAX _STDINT_MAX (0, 64, 0ul)
+# else
+# define SIZE_MAX _STDINT_MAX (0, 32, 0ul)
+# endif
+#else
+# define SIZE_MAX _STDINT_MAX (0, @BITSIZEOF_SIZE_T@, 0@SIZE_T_SUFFIX@)
+#endif
+
+/* wchar_t limits */
+/* Get WCHAR_MIN, WCHAR_MAX.
+ This include is not on the top, above, because on OSF/1 4.0 we have a
+ sequence of nested includes
+ <wchar.h> -> <stdio.h> -> <getopt.h> -> <stdlib.h>, and the latter includes
+ <stdint.h> and assumes its types are already defined. */
+#if @HAVE_WCHAR_H@ && ! (defined WCHAR_MIN && defined WCHAR_MAX)
+ /* 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>
+# define _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
+# include <wchar.h>
+# undef _GL_JUST_INCLUDE_SYSTEM_WCHAR_H
+#endif
+#undef WCHAR_MIN
+#undef WCHAR_MAX
+#define WCHAR_MIN \
+ _STDINT_MIN (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+#define WCHAR_MAX \
+ _STDINT_MAX (@HAVE_SIGNED_WCHAR_T@, @BITSIZEOF_WCHAR_T@, 0@WCHAR_T_SUFFIX@)
+
+/* wint_t limits */
+#undef WINT_MIN
+#undef WINT_MAX
+#define WINT_MIN \
+ _STDINT_MIN (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+#define WINT_MAX \
+ _STDINT_MAX (@HAVE_SIGNED_WINT_T@, @BITSIZEOF_WINT_T@, 0@WINT_T_SUFFIX@)
+
+/* 7.18.4. Macros for integer constants */
+
+/* 7.18.4.1. Macros for minimum-width integer constants */
+/* According to ISO C 99 Technical Corrigendum 1 */
+
+/* Here we assume a standard architecture where the hardware integer
+ types have 8, 16, 32, optionally 64 bits, and int is 32 bits. */
+
+#undef INT8_C
+#undef UINT8_C
+#define INT8_C(x) x
+#define UINT8_C(x) x
+
+#undef INT16_C
+#undef UINT16_C
+#define INT16_C(x) x
+#define UINT16_C(x) x
+
+#undef INT32_C
+#undef UINT32_C
+#define INT32_C(x) x
+#define UINT32_C(x) x ## U
+
+#undef INT64_C
+#undef UINT64_C
+#if LONG_MAX >> 31 >> 31 == 1
+# define INT64_C(x) x##L
+#elif defined _MSC_VER
+# define INT64_C(x) x##i64
+#elif @HAVE_LONG_LONG_INT@
+# define INT64_C(x) x##LL
+#endif
+#if ULONG_MAX >> 31 >> 31 >> 1 == 1
+# define UINT64_C(x) x##UL
+#elif defined _MSC_VER
+# define UINT64_C(x) x##ui64
+#elif @HAVE_UNSIGNED_LONG_LONG_INT@
+# define UINT64_C(x) x##ULL
+#endif
+
+/* 7.18.4.2. Macros for greatest-width integer constants */
+
+#ifndef INTMAX_C
+# if @HAVE_LONG_LONG_INT@ && LONG_MAX >> 30 == 1
+# define INTMAX_C(x) x##LL
+# elif defined GL_INT64_T
+# define INTMAX_C(x) INT64_C(x)
+# else
+# define INTMAX_C(x) x##L
+# endif
+#endif
+
+#ifndef UINTMAX_C
+# if @HAVE_UNSIGNED_LONG_LONG_INT@ && ULONG_MAX >> 31 == 1
+# define UINTMAX_C(x) x##ULL
+# elif defined GL_UINT64_T
+# define UINTMAX_C(x) UINT64_C(x)
+# else
+# define UINTMAX_C(x) x##UL
+# endif
+#endif
+
+#endif /* _@GUARD_PREFIX@_STDINT_H */
+#endif /* !defined _@GUARD_PREFIX@_STDINT_H && !defined _GL_JUST_INCLUDE_SYSTEM_STDINT_H */
diff --git a/gnu/stdio-impl.h b/gnu/stdio-impl.h
new file mode 100644
index 00000000..874df7e0
--- /dev/null
+++ b/gnu/stdio-impl.h
@@ -0,0 +1,112 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Implementation details of FILE streams.
+ Copyright (C) 2007-2008, 2010-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+/* Many stdio implementations have the same logic and therefore can share
+ the same implementation of stdio extension API, except that some fields
+ have different naming conventions, or their access requires some casts. */
+
+
+/* BSD stdio derived implementations. */
+
+#if defined __NetBSD__ /* NetBSD */
+/* Get __NetBSD_Version__. */
+# include <sys/param.h>
+#endif
+
+#if defined __sferror || defined __DragonFly__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, MacOS X, Cygwin */
+
+# 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)
+ /* 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
+# define _r pub._r
+# define _w pub._w
+# else
+# define fp_ fp
+# endif
+
+# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ /* NetBSD >= 1.5ZA, OpenBSD */
+ /* See <http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup>
+ and <http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup> */
+ struct __sfileext
+ {
+ struct __sbuf _ub; /* ungetc buffer */
+ /* More fields, not relevant here. */
+ };
+# define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub
+# else /* FreeBSD, NetBSD <= 1.5Z, DragonFly, MacOS X, Cygwin */
+# define fp_ub fp_->_ub
+# endif
+
+# define HASUB(fp) (fp_ub._base != NULL)
+
+#endif
+
+
+/* SystemV derived implementations. */
+
+#ifdef __TANDEM /* NonStop Kernel */
+# ifndef _IOERR
+/* These values were determined by the program 'stdioext-flags' at
+ <http://lists.gnu.org/archive/html/bug-gnulib/2010-12/msg00165.html>. */
+# define _IOERR 0x40
+# define _IOREAD 0x80
+# define _IOWRT 0x4
+# define _IORW 0x100
+# endif
+#endif
+
+#if defined _IOERR
+
+# 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)
+# else
+# define fp_ fp
+# endif
+
+# if defined _SCO_DS /* OpenServer */
+# define _cnt __cnt
+# define _ptr __ptr
+# define _base __base
+# define _flag __flag
+# endif
+
+#endif
diff --git a/gnu/stdio.in.h b/gnu/stdio.in.h
new file mode 100644
index 00000000..62c68015
--- /dev/null
+++ b/gnu/stdio.in.h
@@ -0,0 +1,1352 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A GNU-like <stdio.h>.
+
+ Copyright (C) 2004, 2007-2012 Free Software Foundation, Inc.
+
+ This 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
+@PRAGMA_COLUMNS@
+
+#if defined __need_FILE || defined __need___FILE || defined _GL_ALREADY_INCLUDING_STDIO_H
+/* Special invocation convention:
+ - Inside glibc header files.
+ - On OSF/1 5.1 we have a sequence of nested includes
+ <stdio.h> -> <getopt.h> -> <ctype.h> -> <sys/localedef.h> ->
+ <sys/lc_core.h> -> <nl_types.h> -> <mesg.h> -> <stdio.h>.
+ In this situation, the functions are not yet declared, therefore we cannot
+ provide the C++ aliases. */
+
+#@INCLUDE_NEXT@ @NEXT_STDIO_H@
+
+#else
+/* Normal invocation convention. */
+
+#ifndef _@GUARD_PREFIX@_STDIO_H
+
+#define _GL_ALREADY_INCLUDING_STDIO_H
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_STDIO_H@
+
+#undef _GL_ALREADY_INCLUDING_STDIO_H
+
+#ifndef _@GUARD_PREFIX@_STDIO_H
+#define _@GUARD_PREFIX@_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
+ and eglibc 2.11.2. */
+#include <sys/types.h>
+
+/* 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 _GL_ATTRIBUTE_FORMAT 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 _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+#else
+# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
+#endif
+
+/* _GL_ATTRIBUTE_FORMAT_PRINTF
+ indicates to GCC that the function takes a format string and arguments,
+ where the format string directives are the ones standardized by ISO C99
+ and POSIX. */
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
+# define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
+ _GL_ATTRIBUTE_FORMAT ((__gnu_printf__, formatstring_parameter, first_argument))
+#else
+# define _GL_ATTRIBUTE_FORMAT_PRINTF(formatstring_parameter, first_argument) \
+ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
+#endif
+
+/* _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_PRINTF,
+ except that it indicates to GCC that the supported format string directives
+ are the ones of the system printf(), rather than the ones standardized by
+ ISO C99 and POSIX. */
+#define _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM(formatstring_parameter, first_argument) \
+ _GL_ATTRIBUTE_FORMAT ((__printf__, formatstring_parameter, first_argument))
+
+/* _GL_ATTRIBUTE_FORMAT_SCANF
+ indicates to GCC that the function takes a format string and arguments,
+ where the format string directives are the ones standardized by ISO C99
+ and POSIX. */
+#if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
+# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
+ _GL_ATTRIBUTE_FORMAT ((__gnu_scanf__, formatstring_parameter, first_argument))
+#else
+# define _GL_ATTRIBUTE_FORMAT_SCANF(formatstring_parameter, first_argument) \
+ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
+#endif
+
+/* _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM is like _GL_ATTRIBUTE_FORMAT_SCANF,
+ except that it indicates to GCC that the supported format string directives
+ are the ones of the system scanf(), rather than the ones standardized by
+ ISO C99 and POSIX. */
+#define _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM(formatstring_parameter, first_argument) \
+ _GL_ATTRIBUTE_FORMAT ((__scanf__, formatstring_parameter, first_argument))
+
+/* Solaris 10 declares renameat in <unistd.h>, not in <stdio.h>. */
+/* But in any case avoid namespace pollution on glibc systems. */
+#if (@GNULIB_RENAMEAT@ || defined GNULIB_POSIXCHECK) && defined __sun \
+ && ! defined __GLIBC__
+# 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. */
+
+/* Macros for stringification. */
+#define _GL_STDIO_STRINGIZE(token) #token
+#define _GL_STDIO_MACROEXPAND_AND_STRINGIZE(token) _GL_STDIO_STRINGIZE(token)
+
+
+#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, ...)
+ _GL_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, ...)
+ _GL_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_FDOPEN@
+# if @REPLACE_FDOPEN@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef fdopen
+# define fdopen rpl_fdopen
+# endif
+_GL_FUNCDECL_RPL (fdopen, FILE *, (int fd, const char *mode)
+ _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (fdopen, FILE *, (int fd, const char *mode));
+# else
+_GL_CXXALIAS_SYS (fdopen, FILE *, (int fd, const char *mode));
+# endif
+_GL_CXXALIASWARN (fdopen);
+#elif defined GNULIB_POSIXCHECK
+# undef fdopen
+/* Assume fdopen is always declared. */
+_GL_WARN_ON_USE (fdopen, "fdopen on native Windows platforms is not POSIX compliant - "
+ "use gnulib module fdopen for portability");
+#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
+
+#if @GNULIB_FGETC@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef fgetc
+# define fgetc rpl_fgetc
+# endif
+_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (fgetc, int, (FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fgetc, int, (FILE *stream));
+# endif
+_GL_CXXALIASWARN (fgetc);
+#endif
+
+#if @GNULIB_FGETS@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef fgets
+# define fgets rpl_fgets
+# endif
+_GL_FUNCDECL_RPL (fgets, char *, (char *s, int n, FILE *stream)
+ _GL_ARG_NONNULL ((1, 3)));
+_GL_CXXALIAS_RPL (fgets, char *, (char *s, int n, FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fgets, char *, (char *s, int n, FILE *stream));
+# endif
+_GL_CXXALIASWARN (fgets);
+#endif
+
+#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 native Windows platforms is not POSIX compliant - "
+ "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_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# define fprintf rpl_fprintf
+# endif
+# define GNULIB_overrides_fprintf 1
+# if @GNULIB_FPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
+_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
+ _GL_ATTRIBUTE_FORMAT_PRINTF (2, 3)
+ _GL_ARG_NONNULL ((1, 2)));
+# else
+_GL_FUNCDECL_RPL (fprintf, int, (FILE *fp, const char *format, ...)
+ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 3)
+ _GL_ARG_NONNULL ((1, 2)));
+# endif
+_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_NONBLOCKING@ || @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_NONBLOCKING@ || @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_FREAD@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef fread
+# define fread rpl_fread
+# endif
+_GL_FUNCDECL_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream)
+ _GL_ARG_NONNULL ((4)));
+_GL_CXXALIAS_RPL (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream));
+# else
+_GL_CXXALIAS_SYS (fread, size_t, (void *ptr, size_t s, size_t n, FILE *stream));
+# endif
+_GL_CXXALIASWARN (fread);
+#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 native Windows platforms is not POSIX compliant - "
+ "use gnulib module freopen for portability");
+#endif
+
+#if @GNULIB_FSCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef fscanf
+# define fscanf rpl_fscanf
+# endif
+_GL_FUNCDECL_RPL (fscanf, int, (FILE *stream, const char *format, ...)
+ _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 3)
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (fscanf, int, (FILE *stream, const char *format, ...));
+# else
+_GL_CXXALIAS_SYS (fscanf, int, (FILE *stream, const char *format, ...));
+# endif
+_GL_CXXALIASWARN (fscanf);
+#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 an fseeko function that is aware of a preceding fflush(), and which
+ detects 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)));
+_GL_CXXALIAS_RPL (fseeko, int, (FILE *fp, off_t offset, int whence));
+# else
+# if ! @HAVE_DECL_FSEEKO@
+_GL_FUNCDECL_SYS (fseeko, int, (FILE *fp, off_t offset, int whence)
+ _GL_ARG_NONNULL ((1)));
+# endif
+_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)));
+_GL_CXXALIAS_RPL (ftello, off_t, (FILE *fp));
+# else
+# if ! @HAVE_DECL_FTELLO@
+_GL_FUNCDECL_SYS (ftello, off_t, (FILE *fp) _GL_ARG_NONNULL ((1)));
+# endif
+_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_NONBLOCKING@ || @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));
+
+/* Work around glibc bug 11959
+ <http://sources.redhat.com/bugzilla/show_bug.cgi?id=11959>,
+ which sometimes causes an unwanted diagnostic for fwrite calls.
+ This affects only function declaration attributes, so it's not
+ needed for C++. */
+# if !defined __cplusplus && 0 < __USE_FORTIFY_LEVEL
+static inline size_t _GL_ARG_NONNULL ((1, 4))
+rpl_fwrite (const void *ptr, size_t s, size_t n, FILE *stream)
+{
+ size_t r = fwrite (ptr, s, n, stream);
+ (void) r;
+ return r;
+}
+# undef fwrite
+# define fwrite rpl_fwrite
+# endif
+# endif
+_GL_CXXALIASWARN (fwrite);
+#endif
+
+#if @GNULIB_GETC@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef getc
+# define getc rpl_fgetc
+# endif
+_GL_FUNCDECL_RPL (fgetc, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL_1 (getc, rpl_fgetc, int, (FILE *stream));
+# else
+_GL_CXXALIAS_SYS (getc, int, (FILE *stream));
+# endif
+_GL_CXXALIASWARN (getc);
+#endif
+
+#if @GNULIB_GETCHAR@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef getchar
+# define getchar rpl_getchar
+# endif
+_GL_FUNCDECL_RPL (getchar, int, (void));
+_GL_CXXALIAS_RPL (getchar, int, (void));
+# else
+_GL_CXXALIAS_SYS (getchar, int, (void));
+# endif
+_GL_CXXALIASWARN (getchar);
+#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
+# if @HAVE_DECL_GETLINE@
+_GL_CXXALIASWARN (getline);
+# endif
+#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_GETS@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef gets
+# define gets rpl_gets
+# endif
+_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (gets, char *, (char *s));
+# else
+_GL_CXXALIAS_SYS (gets, char *, (char *s));
+# undef gets
+# endif
+_GL_CXXALIASWARN (gets);
+/* 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. */
+_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#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, ...)
+ _GL_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, ...)
+ _GL_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)
+ _GL_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)
+ _GL_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_PCLOSE@
+# if !@HAVE_PCLOSE@
+_GL_FUNCDECL_SYS (pclose, int, (FILE *stream) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (pclose, int, (FILE *stream));
+_GL_CXXALIASWARN (pclose);
+#elif defined GNULIB_POSIXCHECK
+# undef pclose
+# if HAVE_RAW_DECL_PCLOSE
+_GL_WARN_ON_USE (pclose, "popen is unportable - "
+ "use gnulib module pclose for more portability");
+# endif
+#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
+# if !@HAVE_POPEN@
+_GL_FUNCDECL_SYS (popen, FILE *, (const char *cmd, const char *mode)
+ _GL_ARG_NONNULL ((1, 2)));
+# endif
+_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_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
+# if defined __GNUC__
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+/* Don't break __attribute__((format(printf,M,N))). */
+# define printf __printf__
+# endif
+# if @GNULIB_PRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
+_GL_FUNCDECL_RPL_1 (__printf__, int,
+ (const char *format, ...)
+ __asm__ (@ASM_SYMBOL_PREFIX@
+ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
+ _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2)
+ _GL_ARG_NONNULL ((1)));
+# else
+_GL_FUNCDECL_RPL_1 (__printf__, int,
+ (const char *format, ...)
+ __asm__ (@ASM_SYMBOL_PREFIX@
+ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_printf))
+ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 2)
+ _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_RPL_1 (printf, __printf__, int, (const char *format, ...));
+# else
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# define printf rpl_printf
+# endif
+_GL_FUNCDECL_RPL (printf, int,
+ (const char *format, ...)
+ _GL_ATTRIBUTE_FORMAT_PRINTF (1, 2)
+ _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (printf, int, (const char *format, ...));
+# endif
+# define GNULIB_overrides_printf 1
+# 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_NONBLOCKING@ || @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_NONBLOCKING@ || @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_NONBLOCKING@ || @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_SCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+# if defined __GNUC__
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef scanf
+/* Don't break __attribute__((format(scanf,M,N))). */
+# define scanf __scanf__
+# endif
+_GL_FUNCDECL_RPL_1 (__scanf__, int,
+ (const char *format, ...)
+ __asm__ (@ASM_SYMBOL_PREFIX@
+ _GL_STDIO_MACROEXPAND_AND_STRINGIZE(rpl_scanf))
+ _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
+ _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL_1 (scanf, __scanf__, int, (const char *format, ...));
+# else
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef scanf
+# define scanf rpl_scanf
+# endif
+_GL_FUNCDECL_RPL (scanf, int, (const char *format, ...)
+ _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 2)
+ _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (scanf, int, (const char *format, ...));
+# endif
+# else
+_GL_CXXALIAS_SYS (scanf, int, (const char *format, ...));
+# endif
+_GL_CXXALIASWARN (scanf);
+#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, ...)
+ _GL_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, ...)
+ _GL_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, ...)
+ _GL_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_TMPFILE@
+# if @REPLACE_TMPFILE@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# define tmpfile rpl_tmpfile
+# endif
+_GL_FUNCDECL_RPL (tmpfile, FILE *, (void));
+_GL_CXXALIAS_RPL (tmpfile, FILE *, (void));
+# else
+_GL_CXXALIAS_SYS (tmpfile, FILE *, (void));
+# endif
+_GL_CXXALIASWARN (tmpfile);
+#elif defined GNULIB_POSIXCHECK
+# undef tmpfile
+# if HAVE_RAW_DECL_TMPFILE
+_GL_WARN_ON_USE (tmpfile, "tmpfile is not usable on mingw - "
+ "use gnulib module tmpfile for portability");
+# endif
+#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, ...)
+ _GL_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, ...)
+ _GL_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)
+ _GL_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)
+ _GL_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)
+ _GL_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)
+ _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+ _GL_ARG_NONNULL ((2)));
+# endif
+/* Need to cast, because on Solaris, the third parameter will likely be
+ __va_list args. */
+_GL_CXXALIAS_SYS_CAST (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_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# define vfprintf rpl_vfprintf
+# endif
+# define GNULIB_overrides_vfprintf 1
+# if @GNULIB_VFPRINTF_POSIX@
+_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
+ _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+ _GL_ARG_NONNULL ((1, 2)));
+# else
+_GL_FUNCDECL_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args)
+ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (2, 0)
+ _GL_ARG_NONNULL ((1, 2)));
+# endif
+_GL_CXXALIAS_RPL (vfprintf, int, (FILE *fp, const char *format, va_list args));
+# else
+/* Need to cast, because on Solaris, the third parameter is
+ __va_list args
+ and GCC's fixincludes did not change this to __gnuc_va_list. */
+_GL_CXXALIAS_SYS_CAST (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_VFSCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef vfscanf
+# define vfscanf rpl_vfscanf
+# endif
+_GL_FUNCDECL_RPL (vfscanf, int,
+ (FILE *stream, const char *format, va_list args)
+ _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (2, 0)
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (vfscanf, int,
+ (FILE *stream, const char *format, va_list args));
+# else
+_GL_CXXALIAS_SYS (vfscanf, int,
+ (FILE *stream, const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vfscanf);
+#endif
+
+#if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VPRINTF@
+# if (@GNULIB_VPRINTF_POSIX@ && @REPLACE_VPRINTF@) \
+ || (@GNULIB_VPRINTF@ && @REPLACE_STDIO_WRITE_FUNCS@ && (@GNULIB_STDIO_H_NONBLOCKING@ || @GNULIB_STDIO_H_SIGPIPE@))
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# define vprintf rpl_vprintf
+# endif
+# define GNULIB_overrides_vprintf 1
+# if @GNULIB_VPRINTF_POSIX@ || @GNULIB_VFPRINTF_POSIX@
+_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
+ _GL_ATTRIBUTE_FORMAT_PRINTF (1, 0)
+ _GL_ARG_NONNULL ((1)));
+# else
+_GL_FUNCDECL_RPL (vprintf, int, (const char *format, va_list args)
+ _GL_ATTRIBUTE_FORMAT_PRINTF_SYSTEM (1, 0)
+ _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_RPL (vprintf, int, (const char *format, va_list args));
+# else
+/* Need to cast, because on Solaris, the second parameter is
+ __va_list args
+ and GCC's fixincludes did not change this to __gnuc_va_list. */
+_GL_CXXALIAS_SYS_CAST (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_VSCANF@
+# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef vscanf
+# define vscanf rpl_vscanf
+# endif
+_GL_FUNCDECL_RPL (vscanf, int, (const char *format, va_list args)
+ _GL_ATTRIBUTE_FORMAT_SCANF_SYSTEM (1, 0)
+ _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (vscanf, int, (const char *format, va_list args));
+# else
+_GL_CXXALIAS_SYS (vscanf, int, (const char *format, va_list args));
+# endif
+_GL_CXXALIASWARN (vscanf);
+#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)
+ _GL_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)
+ _GL_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)
+ _GL_ATTRIBUTE_FORMAT_PRINTF (2, 0)
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (vsprintf, int,
+ (char *str, const char *format, va_list args));
+# else
+/* Need to cast, because on Solaris, the third parameter is
+ __va_list args
+ and GCC's fixincludes did not change this to __gnuc_va_list. */
+_GL_CXXALIAS_SYS_CAST (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 /* _@GUARD_PREFIX@_STDIO_H */
+#endif /* _@GUARD_PREFIX@_STDIO_H */
+#endif
diff --git a/gnu/stdlib.in.h b/gnu/stdlib.in.h
new file mode 100644
index 00000000..8928e4ab
--- /dev/null
+++ b/gnu/stdlib.in.h
@@ -0,0 +1,920 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A GNU-like <stdlib.h>.
+
+ Copyright (C) 1995, 2001-2004, 2006-2012 Free Software Foundation, Inc.
+
+ This 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
+@PRAGMA_COLUMNS@
+
+#if defined __need_malloc_and_calloc
+/* Special invocation convention inside glibc header files. */
+
+#@INCLUDE_NEXT@ @NEXT_STDLIB_H@
+
+#else
+/* Normal invocation convention. */
+
+#ifndef _@GUARD_PREFIX@_STDLIB_H
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_STDLIB_H@
+
+#ifndef _@GUARD_PREFIX@_STDLIB_H
+#define _@GUARD_PREFIX@_STDLIB_H
+
+/* NetBSD 5.0 mis-defines NULL. */
+#include <stddef.h>
+
+/* MirBSD 10 defines WEXITSTATUS in <sys/wait.h>, not in <stdlib.h>. */
+#if @GNULIB_SYSTEM_POSIX@ && !defined WEXITSTATUS
+# include <sys/wait.h>
+#endif
+
+/* Solaris declares getloadavg() in <sys/loadavg.h>. */
+#if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@
+# include <sys/loadavg.h>
+#endif
+
+/* Native Windows platforms declare mktemp() in <io.h>. */
+#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+# include <io.h>
+#endif
+
+#if @GNULIB_RANDOM_R@
+
+/* OSF/1 5.1 declares 'struct random_data' in <random.h>, which is included
+ from <stdlib.h> if _REENTRANT is defined. Include it whenever we need
+ 'struct random_data'. */
+# if @HAVE_RANDOM_H@
+# include <random.h>
+# endif
+
+# if !@HAVE_STRUCT_RANDOM_DATA@ || @REPLACE_RANDOM_R@ || !@HAVE_RANDOM_R@
+# include <stdint.h>
+# endif
+
+# if !@HAVE_STRUCT_RANDOM_DATA@
+/* Define 'struct random_data'.
+ But allow multiple gnulib generated <stdlib.h> replacements to coexist. */
+# if !GNULIB_defined_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. */
+};
+# define GNULIB_defined_struct_random_data 1
+# endif
+# endif
+#endif
+
+#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+/* On MacOS X 10.3, only <unistd.h> declares mkstemp. */
+/* On MacOS X 10.5, only <unistd.h> declares mkstemps. */
+/* On Cygwin 1.7.1, only <unistd.h> declares getsubopt. */
+/* But avoid namespace pollution on glibc systems and native Windows. */
+# include <unistd.h>
+#endif
+
+/* The definition of _Noreturn is copied here. */
+
+/* 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__EXIT@
+/* Terminate the current process with the given return code, without running
+ the 'atexit' handlers. */
+# if !@HAVE__EXIT@
+_GL_FUNCDECL_SYS (_Exit, _Noreturn void, (int status));
+# endif
+_GL_CXXALIAS_SYS (_Exit, void, (int status));
+_GL_CXXALIASWARN (_Exit);
+#elif defined GNULIB_POSIXCHECK
+# undef _Exit
+# if HAVE_RAW_DECL__EXIT
+_GL_WARN_ON_USE (_Exit, "_Exit is unportable - "
+ "use gnulib module _Exit for portability");
+# endif
+#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 @REPLACE_CALLOC@
+# 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_GRANTPT@
+/* Change the ownership and access permission of the slave side of the
+ pseudo-terminal whose master side is specified by FD. */
+# if !@HAVE_GRANTPT@
+_GL_FUNCDECL_SYS (grantpt, int, (int fd));
+# endif
+_GL_CXXALIAS_SYS (grantpt, int, (int fd));
+_GL_CXXALIASWARN (grantpt);
+#elif defined GNULIB_POSIXCHECK
+# undef grantpt
+# if HAVE_RAW_DECL_GRANTPT
+_GL_WARN_ON_USE (grantpt, "grantpt is not portable - "
+ "use gnulib module grantpt for portability");
+# endif
+#endif
+
+/* If _GL_USE_STDLIB_ALLOC is nonzero, the including module does not
+ rely on GNU or POSIX semantics for malloc and realloc (for example,
+ by never specifying a zero size), so it does not need malloc or
+ realloc to be redefined. */
+#if @GNULIB_MALLOC_POSIX@
+# if @REPLACE_MALLOC@
+# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
+ || _GL_USE_STDLIB_ALLOC)
+# 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 && !_GL_USE_STDLIB_ALLOC
+# 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
+
+/* Convert a multibyte character to a wide character. */
+#if @GNULIB_MBTOWC@
+# if @REPLACE_MBTOWC@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef mbtowc
+# define mbtowc rpl_mbtowc
+# endif
+_GL_FUNCDECL_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
+_GL_CXXALIAS_RPL (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
+# else
+_GL_CXXALIAS_SYS (mbtowc, int, (wchar_t *pwc, const char *s, size_t n));
+# endif
+_GL_CXXALIASWARN (mbtowc);
+#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
+# if ! @HAVE_MKSTEMP@
+_GL_FUNCDECL_SYS (mkstemp, int, (char * /*template*/) _GL_ARG_NONNULL ((1)));
+# endif
+_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_POSIX_OPENPT@
+/* Return an FD open to the master side of a pseudo-terminal. Flags should
+ include O_RDWR, and may also include O_NOCTTY. */
+# if !@HAVE_POSIX_OPENPT@
+_GL_FUNCDECL_SYS (posix_openpt, int, (int flags));
+# endif
+_GL_CXXALIAS_SYS (posix_openpt, int, (int flags));
+_GL_CXXALIASWARN (posix_openpt);
+#elif defined GNULIB_POSIXCHECK
+# undef posix_openpt
+# if HAVE_RAW_DECL_POSIX_OPENPT
+_GL_WARN_ON_USE (posix_openpt, "posix_openpt is not portable - "
+ "use gnulib module posix_openpt for portability");
+# endif
+#endif
+
+#if @GNULIB_PTSNAME@
+/* Return the pathname of the pseudo-terminal slave associated with
+ the master FD is open on, or NULL on errors. */
+# if !@HAVE_PTSNAME@
+_GL_FUNCDECL_SYS (ptsname, char *, (int fd));
+# endif
+_GL_CXXALIAS_SYS (ptsname, char *, (int fd));
+_GL_CXXALIASWARN (ptsname);
+#elif defined GNULIB_POSIXCHECK
+# undef ptsname
+# if HAVE_RAW_DECL_PTSNAME
+_GL_WARN_ON_USE (ptsname, "ptsname is not portable - "
+ "use gnulib module ptsname for portability");
+# endif
+#endif
+
+#if @GNULIB_PTSNAME_R@
+/* Set the pathname of the pseudo-terminal slave associated with
+ the master FD is open on and return 0, or set errno and return
+ non-zero on errors. */
+# if @REPLACE_PTSNAME_R@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef ptsname_r
+# define ptsname_r rpl_ptsname_r
+# endif
+_GL_FUNCDECL_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
+_GL_CXXALIAS_RPL (ptsname_r, int, (int fd, char *buf, size_t len));
+# else
+# if !@HAVE_PTSNAME_R@
+_GL_FUNCDECL_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
+# endif
+_GL_CXXALIAS_SYS (ptsname_r, int, (int fd, char *buf, size_t len));
+# endif
+_GL_CXXALIASWARN (ptsname_r);
+#elif defined GNULIB_POSIXCHECK
+# undef ptsname_r
+# if HAVE_RAW_DECL_PTSNAME_R
+_GL_WARN_ON_USE (ptsname_r, "ptsname_r is not portable - "
+ "use gnulib module ptsname_r 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@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (random, long, (void));
+# endif
+_GL_CXXALIAS_SYS (random, long, (void));
+_GL_CXXALIASWARN (random);
+#elif defined GNULIB_POSIXCHECK
+# undef random
+# if HAVE_RAW_DECL_RANDOM
+_GL_WARN_ON_USE (random, "random is unportable - "
+ "use gnulib module random for portability");
+# endif
+#endif
+
+#if @GNULIB_RANDOM@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (srandom, void, (unsigned int seed));
+# endif
+_GL_CXXALIAS_SYS (srandom, void, (unsigned int seed));
+_GL_CXXALIASWARN (srandom);
+#elif defined GNULIB_POSIXCHECK
+# undef srandom
+# if HAVE_RAW_DECL_SRANDOM
+_GL_WARN_ON_USE (srandom, "srandom is unportable - "
+ "use gnulib module random for portability");
+# endif
+#endif
+
+#if @GNULIB_RANDOM@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (initstate, char *,
+ (unsigned int seed, char *buf, size_t buf_size)
+ _GL_ARG_NONNULL ((2)));
+# endif
+_GL_CXXALIAS_SYS (initstate, char *,
+ (unsigned int seed, char *buf, size_t buf_size));
+_GL_CXXALIASWARN (initstate);
+#elif defined GNULIB_POSIXCHECK
+# undef initstate
+# if HAVE_RAW_DECL_INITSTATE_R
+_GL_WARN_ON_USE (initstate, "initstate is unportable - "
+ "use gnulib module random for portability");
+# endif
+#endif
+
+#if @GNULIB_RANDOM@
+# if !@HAVE_RANDOM@
+_GL_FUNCDECL_SYS (setstate, char *, (char *arg_state) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (setstate, char *, (char *arg_state));
+_GL_CXXALIASWARN (setstate);
+#elif defined GNULIB_POSIXCHECK
+# undef setstate
+# if HAVE_RAW_DECL_SETSTATE_R
+_GL_WARN_ON_USE (setstate, "setstate is unportable - "
+ "use gnulib module random for portability");
+# endif
+#endif
+
+
+#if @GNULIB_RANDOM_R@
+# if @REPLACE_RANDOM_R@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef random_r
+# define random_r rpl_random_r
+# endif
+_GL_FUNCDECL_RPL (random_r, int, (struct random_data *buf, int32_t *result)
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (random_r, int, (struct random_data *buf, int32_t *result));
+# else
+# 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));
+# endif
+_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 @REPLACE_RANDOM_R@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef srandom_r
+# define srandom_r rpl_srandom_r
+# endif
+_GL_FUNCDECL_RPL (srandom_r, int,
+ (unsigned int seed, struct random_data *rand_state)
+ _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (srandom_r, int,
+ (unsigned int seed, struct random_data *rand_state));
+# else
+# 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));
+# endif
+_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 @REPLACE_RANDOM_R@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef initstate_r
+# define initstate_r rpl_initstate_r
+# endif
+_GL_FUNCDECL_RPL (initstate_r, int,
+ (unsigned int seed, char *buf, size_t buf_size,
+ struct random_data *rand_state)
+ _GL_ARG_NONNULL ((2, 4)));
+_GL_CXXALIAS_RPL (initstate_r, int,
+ (unsigned int seed, char *buf, size_t buf_size,
+ struct random_data *rand_state));
+# else
+# 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));
+# endif
+_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 @REPLACE_RANDOM_R@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef setstate_r
+# define setstate_r rpl_setstate_r
+# endif
+_GL_FUNCDECL_RPL (setstate_r, int,
+ (char *arg_state, struct random_data *rand_state)
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (setstate_r, int,
+ (char *arg_state, struct random_data *rand_state));
+# else
+# 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));
+# endif
+_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 @REPLACE_REALLOC@
+# if !((defined __cplusplus && defined GNULIB_NAMESPACE) \
+ || _GL_USE_STDLIB_ALLOC)
+# 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 && !_GL_USE_STDLIB_ALLOC
+# 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_DECL_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
+# if !(@REPLACE_SETENV@ && !@HAVE_DECL_SETENV@)
+_GL_CXXALIASWARN (setenv);
+# endif
+#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_UNLOCKPT@
+/* Unlock the slave side of the pseudo-terminal whose master side is specified
+ by FD, so that it can be opened. */
+# if !@HAVE_UNLOCKPT@
+_GL_FUNCDECL_SYS (unlockpt, int, (int fd));
+# endif
+_GL_CXXALIAS_SYS (unlockpt, int, (int fd));
+_GL_CXXALIASWARN (unlockpt);
+#elif defined GNULIB_POSIXCHECK
+# undef unlockpt
+# if HAVE_RAW_DECL_UNLOCKPT
+_GL_WARN_ON_USE (unlockpt, "unlockpt is not portable - "
+ "use gnulib module unlockpt 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_DECL_UNSETENV@
+_GL_FUNCDECL_SYS (unsetenv, int, (const char *name) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (unsetenv, int, (const char *name));
+# endif
+# if !(@REPLACE_UNSETENV@ && !@HAVE_DECL_UNSETENV@)
+_GL_CXXALIASWARN (unsetenv);
+# endif
+#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
+
+/* Convert a wide character to a multibyte character. */
+#if @GNULIB_WCTOMB@
+# if @REPLACE_WCTOMB@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef wctomb
+# define wctomb rpl_wctomb
+# endif
+_GL_FUNCDECL_RPL (wctomb, int, (char *s, wchar_t wc));
+_GL_CXXALIAS_RPL (wctomb, int, (char *s, wchar_t wc));
+# else
+_GL_CXXALIAS_SYS (wctomb, int, (char *s, wchar_t wc));
+# endif
+_GL_CXXALIASWARN (wctomb);
+#endif
+
+
+#endif /* _@GUARD_PREFIX@_STDLIB_H */
+#endif /* _@GUARD_PREFIX@_STDLIB_H */
+#endif
diff --git a/gnu/stpcpy.c b/gnu/stpcpy.c
new file mode 100644
index 00000000..1034d06e
--- /dev/null
+++ b/gnu/stpcpy.c
@@ -0,0 +1,51 @@
+/* -*- 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, 2009-2012 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.
+
+ This 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/>. */
+
+#include <config.h>
+
+#include <string.h>
+
+#undef __stpcpy
+#ifdef _LIBC
+# undef stpcpy
+#endif
+
+#ifndef weak_alias
+# define __stpcpy stpcpy
+#endif
+
+/* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */
+char *
+__stpcpy (char *dest, const char *src)
+{
+ register char *d = dest;
+ register const char *s = src;
+
+ do
+ *d++ = *s;
+ while (*s++ != '\0');
+
+ return d - 1;
+}
+#ifdef weak_alias
+weak_alias (__stpcpy, stpcpy)
+#endif
diff --git a/gnu/strcasecmp.c b/gnu/strcasecmp.c
new file mode 100644
index 00000000..f8bf22df
--- /dev/null
+++ b/gnu/strcasecmp.c
@@ -0,0 +1,65 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Case-insensitive string comparison function.
+ Copyright (C) 1998-1999, 2005-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#include <string.h>
+
+#include <ctype.h>
+#include <limits.h>
+
+#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
+
+/* Compare 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 does not work with multibyte strings! */
+
+int
+strcasecmp (const char *s1, const char *s2)
+{
+ const unsigned char *p1 = (const unsigned char *) s1;
+ const unsigned char *p2 = (const unsigned char *) s2;
+ unsigned char c1, c2;
+
+ if (p1 == p2)
+ return 0;
+
+ do
+ {
+ c1 = TOLOWER (*p1);
+ c2 = TOLOWER (*p2);
+
+ if (c1 == '\0')
+ break;
+
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ if (UCHAR_MAX <= INT_MAX)
+ 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);
+}
diff --git a/gnu/strchrnul.c b/gnu/strchrnul.c
new file mode 100644
index 00000000..b6c1c935
--- /dev/null
+++ b/gnu/strchrnul.c
@@ -0,0 +1,144 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Searching in a string.
+ Copyright (C) 2003, 2007-2012 Free Software Foundation, Inc.
+
+ This 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 <string.h>
+
+/* Find the first occurrence of C in S or the final NUL byte. */
+char *
+strchrnul (const char *s, int c_in)
+{
+ /* 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 char c;
+
+ c = (unsigned char) c_in;
+ if (!c)
+ return rawmemchr (s, 0);
+
+ /* 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;
+ (size_t) char_ptr % sizeof (longword) != 0;
+ ++char_ptr)
+ if (!*char_ptr || *char_ptr == c)
+ return (char *) 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 NUL or
+ c. We first use an xor with repeated_c. This reduces the task
+ to testing whether *any of the four* bytes in longword1 or
+ longword2 is zero.
+
+ Let's consider longword1. 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.
+
+ The test whether any byte in longword1 or longword2 is zero is equivalent
+ to testing whether tmp1 is nonzero or tmp2 is nonzero. We can combine
+ this into a single test, whether (tmp1 | tmp2) is nonzero.
+
+ This test can read more than one byte beyond the end of a string,
+ depending on where the terminating NUL is encountered. However,
+ this is considered safe since the initialization phase ensured
+ that the read will be aligned, therefore, the read will not cross
+ page boundaries and will not cause a fault. */
+
+ while (1)
+ {
+ longword longword1 = *longword_ptr ^ repeated_c;
+ longword longword2 = *longword_ptr;
+
+ if (((((longword1 - repeated_one) & ~longword1)
+ | ((longword2 - repeated_one) & ~longword2))
+ & (repeated_one << 7)) != 0)
+ break;
+ longword_ptr++;
+ }
+
+ char_ptr = (const unsigned char *) longword_ptr;
+
+ /* At this point, we know that one of the sizeof (longword) bytes
+ starting at char_ptr is == 0 or == 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. */
+
+ char_ptr = (unsigned char *) longword_ptr;
+ while (*char_ptr && (*char_ptr != c))
+ char_ptr++;
+ return (char *) char_ptr;
+}
diff --git a/gnu/strchrnul.valgrind b/gnu/strchrnul.valgrind
new file mode 100644
index 00000000..b14fa130
--- /dev/null
+++ b/gnu/strchrnul.valgrind
@@ -0,0 +1,12 @@
+# Suppress a valgrind message about use of uninitialized memory in strchrnul().
+# This use is OK because it provides only a speedup.
+{
+ strchrnul-value4
+ Memcheck:Value4
+ fun:strchrnul
+}
+{
+ strchrnul-value8
+ Memcheck:Value8
+ fun:strchrnul
+}
diff --git a/gnu/strdup.c b/gnu/strdup.c
new file mode 100644
index 00000000..cf8871bb
--- /dev/null
+++ b/gnu/strdup.c
@@ -0,0 +1,57 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2012 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. */
+
+#ifndef _LIBC
+# include <config.h>
+#endif
+
+/* Get specification. */
+#include <string.h>
+
+#include <stdlib.h>
+
+#undef __strdup
+#ifdef _LIBC
+# undef strdup
+#endif
+
+#ifndef weak_alias
+# define __strdup strdup
+#endif
+
+/* Duplicate S, returning an identical malloc'd string. */
+char *
+__strdup (const char *s)
+{
+ size_t len = strlen (s) + 1;
+ void *new = malloc (len);
+
+ if (new == NULL)
+ return NULL;
+
+ return (char *) memcpy (new, s, len);
+}
+#ifdef libc_hidden_def
+libc_hidden_def (__strdup)
+#endif
+#ifdef weak_alias
+weak_alias (__strdup, strdup)
+#endif
diff --git a/gnu/streq.h b/gnu/streq.h
new file mode 100644
index 00000000..a0c2192b
--- /dev/null
+++ b/gnu/streq.h
@@ -0,0 +1,178 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Optimized string comparison.
+ Copyright (C) 2001-2002, 2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 Bruno Haible <bruno@clisp.org>. */
+
+#ifndef _GL_STREQ_H
+#define _GL_STREQ_H
+
+#include <string.h>
+
+/* STREQ allows to optimize string comparison with a small literal string.
+ STREQ (s, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+ is semantically equivalent to
+ strcmp (s, "EUC-KR") == 0
+ just faster. */
+
+/* Help GCC to generate good code for string comparisons with
+ immediate strings. */
+#if defined (__GNUC__) && defined (__OPTIMIZE__)
+
+static inline int
+streq9 (const char *s1, const char *s2)
+{
+ return strcmp (s1 + 9, s2 + 9) == 0;
+}
+
+static inline int
+streq8 (const char *s1, const char *s2, char s28)
+{
+ if (s1[8] == s28)
+ {
+ if (s28 == 0)
+ return 1;
+ else
+ return streq9 (s1, s2);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq7 (const char *s1, const char *s2, char s27, char s28)
+{
+ if (s1[7] == s27)
+ {
+ if (s27 == 0)
+ return 1;
+ else
+ return streq8 (s1, s2, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq6 (const char *s1, const char *s2, char s26, char s27, char s28)
+{
+ if (s1[6] == s26)
+ {
+ if (s26 == 0)
+ return 1;
+ else
+ return streq7 (s1, s2, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq5 (const char *s1, const char *s2, char s25, char s26, char s27, char s28)
+{
+ if (s1[5] == s25)
+ {
+ if (s25 == 0)
+ return 1;
+ else
+ return streq6 (s1, s2, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq4 (const char *s1, const char *s2, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[4] == s24)
+ {
+ if (s24 == 0)
+ return 1;
+ else
+ return streq5 (s1, s2, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq3 (const char *s1, const char *s2, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[3] == s23)
+ {
+ if (s23 == 0)
+ return 1;
+ else
+ return streq4 (s1, s2, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq2 (const char *s1, const char *s2, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[2] == s22)
+ {
+ if (s22 == 0)
+ return 1;
+ else
+ return streq3 (s1, s2, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq1 (const char *s1, const char *s2, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[1] == s21)
+ {
+ if (s21 == 0)
+ return 1;
+ else
+ return streq2 (s1, s2, s22, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+static inline int
+streq0 (const char *s1, const char *s2, char s20, char s21, char s22, char s23, char s24, char s25, char s26, char s27, char s28)
+{
+ if (s1[0] == s20)
+ {
+ if (s20 == 0)
+ return 1;
+ else
+ return streq1 (s1, s2, s21, s22, s23, s24, s25, s26, s27, s28);
+ }
+ else
+ return 0;
+}
+
+#define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+ streq0 (s1, s2, s20, s21, s22, s23, s24, s25, s26, s27, s28)
+
+#else
+
+#define STREQ(s1,s2,s20,s21,s22,s23,s24,s25,s26,s27,s28) \
+ (strcmp (s1, s2) == 0)
+
+#endif
+
+#endif /* _GL_STREQ_H */
diff --git a/gnu/strerror-override.c b/gnu/strerror-override.c
new file mode 100644
index 00000000..014476ba
--- /dev/null
+++ b/gnu/strerror-override.c
@@ -0,0 +1,291 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* strerror-override.c --- POSIX compatible system error routine
+
+ Copyright (C) 2010-2012 Free Software Foundation, Inc.
+
+ This 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 Bruno Haible <bruno@clisp.org>, 2010. */
+
+#include <config.h>
+
+#include "strerror-override.h"
+
+#include <errno.h>
+
+#if GNULIB_defined_EWINSOCK /* native Windows platforms */
+# if HAVE_WINSOCK2_H
+# include <winsock2.h>
+# endif
+#endif
+
+/* If ERRNUM maps to an errno value defined by gnulib, return a string
+ describing the error. Otherwise return NULL. */
+const char *
+strerror_override (int errnum)
+{
+ /* These error messages are taken from glibc/sysdeps/gnu/errlist.c. */
+ switch (errnum)
+ {
+#if REPLACE_STRERROR_0
+ case 0:
+ return "Success";
+#endif
+
+#if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
+ case EINPROGRESS:
+ return "Operation now in progress";
+ case EALREADY:
+ return "Operation already in progress";
+ case ENOTSOCK:
+ return "Socket operation on non-socket";
+ case EDESTADDRREQ:
+ return "Destination address required";
+ case EMSGSIZE:
+ return "Message too long";
+ case EPROTOTYPE:
+ return "Protocol wrong type for socket";
+ case ENOPROTOOPT:
+ return "Protocol not available";
+ case EPROTONOSUPPORT:
+ return "Protocol not supported";
+ case EOPNOTSUPP:
+ return "Operation not supported";
+ case EAFNOSUPPORT:
+ return "Address family not supported by protocol";
+ case EADDRINUSE:
+ return "Address already in use";
+ case EADDRNOTAVAIL:
+ return "Cannot assign requested address";
+ case ENETDOWN:
+ return "Network is down";
+ case ENETUNREACH:
+ return "Network is unreachable";
+ case ECONNRESET:
+ return "Connection reset by peer";
+ case ENOBUFS:
+ return "No buffer space available";
+ case EISCONN:
+ return "Transport endpoint is already connected";
+ case ENOTCONN:
+ return "Transport endpoint is not connected";
+ case ETIMEDOUT:
+ return "Connection timed out";
+ case ECONNREFUSED:
+ return "Connection refused";
+ case ELOOP:
+ return "Too many levels of symbolic links";
+ case EHOSTUNREACH:
+ return "No route to host";
+ case EWOULDBLOCK:
+ return "Operation would block";
+ case ETXTBSY:
+ return "Text file busy";
+ case ENODATA:
+ return "No data available";
+ case ENOSR:
+ return "Out of streams resources";
+ case ENOSTR:
+ return "Device not a stream";
+ case ENOTRECOVERABLE:
+ return "State not recoverable";
+ case EOWNERDEAD:
+ return "Owner died";
+ case ETIME:
+ return "Timer expired";
+ case EOTHER:
+ return "Other error";
+#endif
+#if GNULIB_defined_EWINSOCK /* native Windows platforms */
+ case ESOCKTNOSUPPORT:
+ return "Socket type not supported";
+ case EPFNOSUPPORT:
+ return "Protocol family not supported";
+ case ESHUTDOWN:
+ return "Cannot send after transport endpoint shutdown";
+ case ETOOMANYREFS:
+ return "Too many references: cannot splice";
+ case EHOSTDOWN:
+ return "Host is down";
+ case EPROCLIM:
+ return "Too many processes";
+ case EUSERS:
+ return "Too many users";
+ case EDQUOT:
+ return "Disk quota exceeded";
+ case ESTALE:
+ return "Stale NFS file handle";
+ case EREMOTE:
+ return "Object is remote";
+# if HAVE_WINSOCK2_H
+ /* WSA_INVALID_HANDLE maps to EBADF */
+ /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
+ /* WSA_INVALID_PARAMETER maps to EINVAL */
+ case WSA_OPERATION_ABORTED:
+ return "Overlapped operation aborted";
+ case WSA_IO_INCOMPLETE:
+ return "Overlapped I/O event object not in signaled state";
+ case WSA_IO_PENDING:
+ return "Overlapped operations will complete later";
+ /* WSAEINTR maps to EINTR */
+ /* WSAEBADF maps to EBADF */
+ /* WSAEACCES maps to EACCES */
+ /* WSAEFAULT maps to EFAULT */
+ /* WSAEINVAL maps to EINVAL */
+ /* WSAEMFILE maps to EMFILE */
+ /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
+ /* WSAEINPROGRESS maps to EINPROGRESS */
+ /* WSAEALREADY maps to EALREADY */
+ /* WSAENOTSOCK maps to ENOTSOCK */
+ /* WSAEDESTADDRREQ maps to EDESTADDRREQ */
+ /* WSAEMSGSIZE maps to EMSGSIZE */
+ /* WSAEPROTOTYPE maps to EPROTOTYPE */
+ /* WSAENOPROTOOPT maps to ENOPROTOOPT */
+ /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */
+ /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
+ /* WSAEOPNOTSUPP maps to EOPNOTSUPP */
+ /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
+ /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */
+ /* WSAEADDRINUSE maps to EADDRINUSE */
+ /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */
+ /* WSAENETDOWN maps to ENETDOWN */
+ /* WSAENETUNREACH maps to ENETUNREACH */
+ /* WSAENETRESET maps to ENETRESET */
+ /* WSAECONNABORTED maps to ECONNABORTED */
+ /* WSAECONNRESET maps to ECONNRESET */
+ /* WSAENOBUFS maps to ENOBUFS */
+ /* WSAEISCONN maps to EISCONN */
+ /* WSAENOTCONN maps to ENOTCONN */
+ /* WSAESHUTDOWN is ESHUTDOWN */
+ /* WSAETOOMANYREFS is ETOOMANYREFS */
+ /* WSAETIMEDOUT maps to ETIMEDOUT */
+ /* WSAECONNREFUSED maps to ECONNREFUSED */
+ /* WSAELOOP maps to ELOOP */
+ /* WSAENAMETOOLONG maps to ENAMETOOLONG */
+ /* WSAEHOSTDOWN is EHOSTDOWN */
+ /* WSAEHOSTUNREACH maps to EHOSTUNREACH */
+ /* WSAENOTEMPTY maps to ENOTEMPTY */
+ /* WSAEPROCLIM is EPROCLIM */
+ /* WSAEUSERS is EUSERS */
+ /* WSAEDQUOT is EDQUOT */
+ /* WSAESTALE is ESTALE */
+ /* WSAEREMOTE is EREMOTE */
+ case WSASYSNOTREADY:
+ return "Network subsystem is unavailable";
+ case WSAVERNOTSUPPORTED:
+ return "Winsock.dll version out of range";
+ case WSANOTINITIALISED:
+ return "Successful WSAStartup not yet performed";
+ case WSAEDISCON:
+ return "Graceful shutdown in progress";
+ case WSAENOMORE: case WSA_E_NO_MORE:
+ return "No more results";
+ case WSAECANCELLED: case WSA_E_CANCELLED:
+ return "Call was canceled";
+ case WSAEINVALIDPROCTABLE:
+ return "Procedure call table is invalid";
+ case WSAEINVALIDPROVIDER:
+ return "Service provider is invalid";
+ case WSAEPROVIDERFAILEDINIT:
+ return "Service provider failed to initialize";
+ case WSASYSCALLFAILURE:
+ return "System call failure";
+ case WSASERVICE_NOT_FOUND:
+ return "Service not found";
+ case WSATYPE_NOT_FOUND:
+ return "Class type not found";
+ case WSAEREFUSED:
+ return "Database query was refused";
+ case WSAHOST_NOT_FOUND:
+ return "Host not found";
+ case WSATRY_AGAIN:
+ return "Nonauthoritative host not found";
+ case WSANO_RECOVERY:
+ return "Nonrecoverable error";
+ case WSANO_DATA:
+ return "Valid name, no data record of requested type";
+ /* WSA_QOS_* omitted */
+# endif
+#endif
+
+#if GNULIB_defined_ENOMSG
+ case ENOMSG:
+ return "No message of desired type";
+#endif
+
+#if GNULIB_defined_EIDRM
+ case EIDRM:
+ return "Identifier removed";
+#endif
+
+#if GNULIB_defined_ENOLINK
+ case ENOLINK:
+ return "Link has been severed";
+#endif
+
+#if GNULIB_defined_EPROTO
+ case EPROTO:
+ return "Protocol error";
+#endif
+
+#if GNULIB_defined_EMULTIHOP
+ case EMULTIHOP:
+ return "Multihop attempted";
+#endif
+
+#if GNULIB_defined_EBADMSG
+ case EBADMSG:
+ return "Bad message";
+#endif
+
+#if GNULIB_defined_EOVERFLOW
+ case EOVERFLOW:
+ return "Value too large for defined data type";
+#endif
+
+#if GNULIB_defined_ENOTSUP
+ case ENOTSUP:
+ return "Not supported";
+#endif
+
+#if GNULIB_defined_ENETRESET
+ case ENETRESET:
+ return "Network dropped connection on reset";
+#endif
+
+#if GNULIB_defined_ECONNABORTED
+ case ECONNABORTED:
+ return "Software caused connection abort";
+#endif
+
+#if GNULIB_defined_ESTALE
+ case ESTALE:
+ return "Stale NFS file handle";
+#endif
+
+#if GNULIB_defined_EDQUOT
+ case EDQUOT:
+ return "Disk quota exceeded";
+#endif
+
+#if GNULIB_defined_ECANCELED
+ case ECANCELED:
+ return "Operation canceled";
+#endif
+
+ default:
+ return NULL;
+ }
+}
diff --git a/gnu/strerror-override.h b/gnu/strerror-override.h
new file mode 100644
index 00000000..e764ae72
--- /dev/null
+++ b/gnu/strerror-override.h
@@ -0,0 +1,54 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* strerror-override.h --- POSIX compatible system error routine
+
+ Copyright (C) 2010-2012 Free Software Foundation, Inc.
+
+ This 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_STRERROR_OVERRIDE_H
+# define _GL_STRERROR_OVERRIDE_H
+
+# include <errno.h>
+# include <stddef.h>
+
+/* Reasonable buffer size that should never trigger ERANGE; if this
+ proves too small, we intentionally abort(), to remind us to fix
+ this value. */
+# define STACKBUF_LEN 256
+
+/* If ERRNUM maps to an errno value defined by gnulib, return a string
+ describing the error. Otherwise return NULL. */
+# if REPLACE_STRERROR_0 \
+ || GNULIB_defined_ESOCK \
+ || GNULIB_defined_EWINSOCK \
+ || GNULIB_defined_ENOMSG \
+ || GNULIB_defined_EIDRM \
+ || GNULIB_defined_ENOLINK \
+ || GNULIB_defined_EPROTO \
+ || GNULIB_defined_EMULTIHOP \
+ || GNULIB_defined_EBADMSG \
+ || GNULIB_defined_EOVERFLOW \
+ || GNULIB_defined_ENOTSUP \
+ || GNULIB_defined_ENETRESET \
+ || GNULIB_defined_ECONNABORTED \
+ || GNULIB_defined_ESTALE \
+ || GNULIB_defined_EDQUOT \
+ || GNULIB_defined_ECANCELED
+extern const char *strerror_override (int errnum);
+# else
+# define strerror_override(ignored) NULL
+# endif
+
+#endif /* _GL_STRERROR_OVERRIDE_H */
diff --git a/gnu/strerror.c b/gnu/strerror.c
new file mode 100644
index 00000000..4482d19c
--- /dev/null
+++ b/gnu/strerror.c
@@ -0,0 +1,72 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* strerror.c --- POSIX compatible system error routine
+
+ Copyright (C) 2007-2012 Free Software Foundation, Inc.
+
+ This 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 <string.h>
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "intprops.h"
+#include "strerror-override.h"
+#include "verify.h"
+
+/* Use the system functions, not the gnulib overrides in this file. */
+#undef sprintf
+
+char *
+strerror (int n)
+#undef strerror
+{
+ static char buf[STACKBUF_LEN];
+ size_t len;
+
+ /* Cast away const, due to the historical signature of strerror;
+ callers should not be modifying the string. */
+ const char *msg = strerror_override (n);
+ if (msg)
+ return (char *) msg;
+
+ msg = strerror (n);
+
+ /* Our strerror_r implementation might use the system's strerror
+ buffer, so all other clients of strerror have to see the error
+ copied into a buffer that we manage. This is not thread-safe,
+ even if the system strerror is, but portable programs shouldn't
+ be using strerror if they care about thread-safety. */
+ if (!msg || !*msg)
+ {
+ static char const fmt[] = "Unknown error %d";
+ verify (sizeof buf >= sizeof (fmt) + INT_STRLEN_BOUND (n));
+ sprintf (buf, fmt, n);
+ errno = EINVAL;
+ return buf;
+ }
+
+ /* Fix STACKBUF_LEN if this ever aborts. */
+ len = strlen (msg);
+ if (sizeof buf <= len)
+ abort ();
+
+ return memcpy (buf, msg, len + 1);
+}
diff --git a/gnu/string.in.h b/gnu/string.in.h
new file mode 100644
index 00000000..f7fa4a2a
--- /dev/null
+++ b/gnu/string.in.h
@@ -0,0 +1,1013 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A GNU-like <string.h>.
+
+ Copyright (C) 1995-1996, 2001-2012 Free Software Foundation, Inc.
+
+ This 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 _@GUARD_PREFIX@_STRING_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_STRING_H@
+
+#ifndef _@GUARD_PREFIX@_STRING_H
+#define _@GUARD_PREFIX@_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
+
+/* The __attribute__ feature is available in gcc versions 2.5 and later.
+ The attribute __pure__ was added in gcc 2.96. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* NetBSD 5.0 declares strsignal in <unistd.h>, not in <string.h>. */
+/* But in any case avoid namespace pollution on glibc systems. */
+#if (@GNULIB_STRSIGNAL@ || defined GNULIB_POSIXCHECK) && defined __NetBSD__ \
+ && ! defined __GLIBC__
+# 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. */
+
+
+/* Find the index of the least-significant set bit. */
+#if @GNULIB_FFSL@
+# if !@HAVE_FFSL@
+_GL_FUNCDECL_SYS (ffsl, int, (long int i));
+# endif
+_GL_CXXALIAS_SYS (ffsl, int, (long int i));
+_GL_CXXALIASWARN (ffsl);
+#elif defined GNULIB_POSIXCHECK
+# undef ffsl
+# if HAVE_RAW_DECL_FFSL
+_GL_WARN_ON_USE (ffsl, "ffsl is not portable - use the ffsl module");
+# endif
+#endif
+
+
+/* Find the index of the least-significant set bit. */
+#if @GNULIB_FFSLL@
+# if !@HAVE_FFSLL@
+_GL_FUNCDECL_SYS (ffsll, int, (long long int i));
+# endif
+_GL_CXXALIAS_SYS (ffsll, int, (long long int i));
+_GL_CXXALIASWARN (ffsll);
+#elif defined GNULIB_POSIXCHECK
+# undef ffsll
+# if HAVE_RAW_DECL_FFSLL
+_GL_WARN_ON_USE (ffsll, "ffsll is not portable - use the ffsll module");
+# endif
+#endif
+
+
+/* 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)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (memchr, void *, (void const *__s, int __c, size_t __n));
+# else
+# if ! @HAVE_MEMCHR@
+_GL_FUNCDECL_SYS (memchr, void *, (void const *__s, int __c, size_t __n)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1)));
+# endif
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C" { const void * std::memchr (const void *, int, size_t); }
+ extern "C++" { void * std::memchr (void *, int, size_t); } */
+_GL_CXXALIAS_SYS_CAST2 (memchr,
+ void *, (void const *__s, int __c, size_t __n),
+ void const *, (void const *__s, int __c, size_t __n));
+# endif
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (memchr, void *, (void *__s, int __c, size_t __n));
+_GL_CXXALIASWARN1 (memchr, void const *,
+ (void const *__s, int __c, size_t __n));
+# else
+_GL_CXXALIASWARN (memchr);
+# endif
+#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)
+ _GL_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)
+ _GL_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)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1)));
+# endif
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C++" { const void * std::memrchr (const void *, int, size_t); }
+ extern "C++" { void * std::memrchr (void *, int, size_t); } */
+_GL_CXXALIAS_SYS_CAST2 (memrchr,
+ void *, (void const *, int, size_t),
+ void const *, (void const *, int, size_t));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (memrchr, void *, (void *, int, size_t));
+_GL_CXXALIASWARN1 (memrchr, void const *, (void const *, int, size_t));
+# else
+_GL_CXXALIASWARN (memrchr);
+# endif
+#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)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1)));
+# endif
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C++" { const void * std::rawmemchr (const void *, int); }
+ extern "C++" { void * std::rawmemchr (void *, int); } */
+_GL_CXXALIAS_SYS_CAST2 (rawmemchr,
+ void *, (void const *__s, int __c_in),
+ void const *, (void const *__s, int __c_in));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (rawmemchr, void *, (void *__s, int __c_in));
+_GL_CXXALIASWARN1 (rawmemchr, void const *, (void const *__s, int __c_in));
+# else
+_GL_CXXALIASWARN (rawmemchr);
+# endif
+#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 @REPLACE_STPNCPY@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef stpncpy
+# 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
+# if ! @HAVE_STPNCPY@
+_GL_FUNCDECL_SYS (stpncpy, char *,
+ (char *restrict __dst, char const *restrict __src,
+ size_t __n)
+ _GL_ARG_NONNULL ((1, 2)));
+# endif
+_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 @REPLACE_STRCHRNUL@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# define strchrnul rpl_strchrnul
+# endif
+_GL_FUNCDECL_RPL (strchrnul, char *, (const char *__s, int __c_in)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strchrnul, char *,
+ (const char *str, int ch));
+# else
+# if ! @HAVE_STRCHRNUL@
+_GL_FUNCDECL_SYS (strchrnul, char *, (char const *__s, int __c_in)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1)));
+# endif
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C++" { const char * std::strchrnul (const char *, int); }
+ extern "C++" { char * std::strchrnul (char *, int); } */
+_GL_CXXALIAS_SYS_CAST2 (strchrnul,
+ char *, (char const *__s, int __c_in),
+ char const *, (char const *__s, int __c_in));
+# endif
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (strchrnul, char *, (char *__s, int __c_in));
+_GL_CXXALIASWARN1 (strchrnul, char const *, (char const *__s, int __c_in));
+# else
+_GL_CXXALIASWARN (strchrnul);
+# endif
+#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 defined __cplusplus && defined GNULIB_NAMESPACE && defined strdup
+ /* strdup exists as a function and as a macro. Get rid of the macro. */
+# undef strdup
+# endif
+# 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
+
+/* Append no more than N characters from SRC onto DEST. */
+#if @GNULIB_STRNCAT@
+# if @REPLACE_STRNCAT@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef strncat
+# define strncat rpl_strncat
+# endif
+_GL_FUNCDECL_RPL (strncat, char *, (char *dest, const char *src, size_t n)
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (strncat, char *, (char *dest, const char *src, size_t n));
+# else
+_GL_CXXALIAS_SYS (strncat, char *, (char *dest, const char *src, size_t n));
+# endif
+_GL_CXXALIASWARN (strncat);
+#elif defined GNULIB_POSIXCHECK
+# undef strncat
+# if HAVE_RAW_DECL_STRNCAT
+_GL_WARN_ON_USE (strncat, "strncat is unportable - "
+ "use gnulib module strncat 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 @REPLACE_STRNLEN@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef strnlen
+# define strnlen rpl_strnlen
+# endif
+_GL_FUNCDECL_RPL (strnlen, size_t, (char const *__string, size_t __maxlen)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (strnlen, size_t, (char const *__string, size_t __maxlen));
+# else
+# if ! @HAVE_DECL_STRNLEN@
+_GL_FUNCDECL_SYS (strnlen, size_t, (char const *__string, size_t __maxlen)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (strnlen, size_t, (char const *__string, size_t __maxlen));
+# endif
+_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)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1, 2)));
+# endif
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C" { const char * strpbrk (const char *, const char *); }
+ extern "C++" { char * strpbrk (char *, const char *); } */
+_GL_CXXALIAS_SYS_CAST2 (strpbrk,
+ char *, (char const *__s, char const *__accept),
+ const char *, (char const *__s, char const *__accept));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (strpbrk, char *, (char *__s, char const *__accept));
+_GL_CXXALIASWARN1 (strpbrk, char const *,
+ (char const *__s, char const *__accept));
+# else
+_GL_CXXALIASWARN (strpbrk);
+# 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
+_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)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1, 2)));
+_GL_CXXALIAS_RPL (strstr, char *, (const char *haystack, const char *needle));
+# else
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C++" { const char * strstr (const char *, const char *); }
+ extern "C++" { char * strstr (char *, const char *); } */
+_GL_CXXALIAS_SYS_CAST2 (strstr,
+ char *, (const char *haystack, const char *needle),
+ const char *, (const char *haystack, const char *needle));
+# endif
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (strstr, char *, (char *haystack, const char *needle));
+_GL_CXXALIASWARN1 (strstr, const char *,
+ (const char *haystack, const char *needle));
+# else
+_GL_CXXALIASWARN (strstr);
+# 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
+/* 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)
+ _GL_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)
+ _GL_ATTRIBUTE_PURE
+ _GL_ARG_NONNULL ((1, 2)));
+# endif
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C++" { const char * strcasestr (const char *, const char *); }
+ extern "C++" { char * strcasestr (char *, const char *); } */
+_GL_CXXALIAS_SYS_CAST2 (strcasestr,
+ char *, (const char *haystack, const char *needle),
+ const char *, (const char *haystack, const char *needle));
+# endif
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (strcasestr, char *, (char *haystack, const char *needle));
+_GL_CXXALIASWARN1 (strcasestr, const char *,
+ (const char *haystack, const char *needle));
+# else
+_GL_CXXALIASWARN (strcasestr);
+# 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
+# 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 || defined __INTERIX
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# define mbsrchr rpl_mbsrchr /* avoid collision with system 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. If the two match, return a pointer to the first byte
+ after this prefix in STRING. Otherwise, return NULL.
+ Note: This function may, in multibyte locales, return non-NULL 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
+
+/* Map any int, typically from errno, into an error message. Multithread-safe.
+ Uses the POSIX declaration, not the glibc declaration. */
+#if @GNULIB_STRERROR_R@
+# if @REPLACE_STRERROR_R@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef strerror_r
+# define strerror_r rpl_strerror_r
+# endif
+_GL_FUNCDECL_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen)
+ _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (strerror_r, int, (int errnum, char *buf, size_t buflen));
+# else
+# if !@HAVE_DECL_STRERROR_R@
+_GL_FUNCDECL_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen)
+ _GL_ARG_NONNULL ((2)));
+# endif
+_GL_CXXALIAS_SYS (strerror_r, int, (int errnum, char *buf, size_t buflen));
+# endif
+# if @HAVE_DECL_STRERROR_R@
+_GL_CXXALIASWARN (strerror_r);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef strerror_r
+# if HAVE_RAW_DECL_STRERROR_R
+_GL_WARN_ON_USE (strerror_r, "strerror_r is unportable - "
+ "use gnulib module strerror_r-posix for portability");
+# endif
+#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 /* _@GUARD_PREFIX@_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
diff --git a/gnu/strings.in.h b/gnu/strings.in.h
new file mode 100644
index 00000000..cc49efe5
--- /dev/null
+++ b/gnu/strings.in.h
@@ -0,0 +1,125 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A substitute <strings.h>.
+
+ Copyright (C) 2007-2012 Free Software Foundation, Inc.
+
+ This 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 _@GUARD_PREFIX@_STRINGS_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+/* Minix 3.1.8 has a bug: <sys/types.h> must be included before <strings.h>.
+ But avoid namespace pollution on glibc systems. */
+#if defined __minix && !defined __GLIBC__
+# include <sys/types.h>
+#endif
+
+/* The include_next requires a split double-inclusion guard. */
+#if @HAVE_STRINGS_H@
+# @INCLUDE_NEXT@ @NEXT_STRINGS_H@
+#endif
+
+#ifndef _@GUARD_PREFIX@_STRINGS_H
+#define _@GUARD_PREFIX@_STRINGS_H
+
+#if ! @HAVE_DECL_STRNCASECMP@
+/* Get size_t. */
+# include <stddef.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
+
+
+ /* Find the index of the least-significant set bit. */
+#if @GNULIB_FFS@
+# if !@HAVE_FFS@
+_GL_FUNCDECL_SYS (ffs, int, (int i));
+# endif
+_GL_CXXALIAS_SYS (ffs, int, (int i));
+_GL_CXXALIASWARN (ffs);
+#elif defined GNULIB_POSIXCHECK
+# undef ffs
+# if HAVE_RAW_DECL_FFS
+_GL_WARN_ON_USE (ffs, "ffs is not portable - use the ffs module");
+# endif
+#endif
+
+/* Compare 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 does not work in multibyte locales. */
+#if ! @HAVE_STRCASECMP@
+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
+# 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,
+ returning less than, equal to or greater than zero if S1 is
+ 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)
+ _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
+# 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
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _@GUARD_PREFIX@_STRING_H */
+#endif /* _@GUARD_PREFIX@_STRING_H */
diff --git a/gnu/stripslash.c b/gnu/stripslash.c
new file mode 100644
index 00000000..ad94346e
--- /dev/null
+++ b/gnu/stripslash.c
@@ -0,0 +1,47 @@
+/* -*- 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, 2009-2012 Free Software Foundation,
+ Inc.
+
+ This 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"
+
+/* Remove trailing slashes from FILE. Return true if a trailing slash
+ was removed. This is useful when using file name completion from a
+ shell that adds a "/" after directory names (such as tcsh and
+ bash), because on symlinks to directories, several system calls
+ have different semantics according to whether a trailing slash is
+ present. */
+
+bool
+strip_trailing_slashes (char *file)
+{
+ char *base = last_component (file);
+ char *base_lim;
+ bool had_slash;
+
+ /* last_component returns "" for file system roots, but we need to turn
+ "///" into "/". */
+ if (! *base)
+ base = file;
+ base_lim = base + base_len (base);
+ had_slash = (*base_lim != '\0');
+ *base_lim = '\0';
+ return had_slash;
+}
diff --git a/gnu/strncasecmp.c b/gnu/strncasecmp.c
new file mode 100644
index 00000000..6dda6142
--- /dev/null
+++ b/gnu/strncasecmp.c
@@ -0,0 +1,65 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* strncasecmp.c -- case insensitive string comparator
+ Copyright (C) 1998-1999, 2005-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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. */
+#include <string.h>
+
+#include <ctype.h>
+#include <limits.h>
+
+#define TOLOWER(Ch) (isupper (Ch) ? tolower (Ch) : (Ch))
+
+/* Compare no more than N bytes of 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 cannot work correctly in multibyte locales. */
+
+int
+strncasecmp (const char *s1, const char *s2, size_t n)
+{
+ register const unsigned char *p1 = (const unsigned char *) s1;
+ register const unsigned char *p2 = (const unsigned char *) s2;
+ unsigned char c1, c2;
+
+ if (p1 == p2 || n == 0)
+ return 0;
+
+ do
+ {
+ c1 = TOLOWER (*p1);
+ c2 = TOLOWER (*p2);
+
+ if (--n == 0 || c1 == '\0')
+ break;
+
+ ++p1;
+ ++p2;
+ }
+ while (c1 == c2);
+
+ if (UCHAR_MAX <= INT_MAX)
+ 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);
+}
diff --git a/gnu/strndup.c b/gnu/strndup.c
new file mode 100644
index 00000000..b9e256d0
--- /dev/null
+++ b/gnu/strndup.c
@@ -0,0 +1,39 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A replacement function, for systems that lack strndup.
+
+ Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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>
+
+#include <string.h>
+
+#include <stdlib.h>
+
+char *
+strndup (char const *s, size_t n)
+{
+ size_t len = strnlen (s, n);
+ char *new = malloc (len + 1);
+
+ if (new == NULL)
+ return NULL;
+
+ new[len] = '\0';
+ return memcpy (new, s, len);
+}
diff --git a/gnu/strnlen.c b/gnu/strnlen.c
new file mode 100644
index 00000000..ca24ba66
--- /dev/null
+++ b/gnu/strnlen.c
@@ -0,0 +1,33 @@
+/* -*- 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-2007, 2009-2012 Free Software Foundation, Inc.
+ Written by Simon Josefsson.
+
+ This 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>
+
+#include <string.h>
+
+/* Find the length of STRING, but scan at most MAXLEN characters.
+ If no '\0' terminator is found in that many characters, return MAXLEN. */
+
+size_t
+strnlen (const char *string, size_t maxlen)
+{
+ const char *end = memchr (string, '\0', maxlen);
+ return end ? (size_t) (end - string) : maxlen;
+}
diff --git a/gnu/strnlen1.c b/gnu/strnlen1.c
new file mode 100644
index 00000000..8778c67b
--- /dev/null
+++ b/gnu/strnlen1.c
@@ -0,0 +1,37 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 "strnlen1.h"
+
+#include <string.h>
+
+/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+ If no '\0' terminator is found in that many characters, return MAXLEN. */
+/* This is the same as strnlen (string, maxlen - 1) + 1. */
+size_t
+strnlen1 (const char *string, size_t maxlen)
+{
+ const char *end = (const char *) memchr (string, '\0', maxlen);
+ if (end != NULL)
+ return end - string + 1;
+ else
+ return maxlen;
+}
diff --git a/gnu/strnlen1.h b/gnu/strnlen1.h
new file mode 100644
index 00000000..24bcecb7
--- /dev/null
+++ b/gnu/strnlen1.h
@@ -0,0 +1,42 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 _STRNLEN1_H
+#define _STRNLEN1_H
+
+#include <stddef.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Find the length of STRING + 1, but scan at most MAXLEN bytes.
+ If no '\0' terminator is found in that many characters, return MAXLEN. */
+/* This is the same as strnlen (string, maxlen - 1) + 1. */
+extern size_t strnlen1 (const char *string, size_t maxlen)
+ _GL_ATTRIBUTE_PURE;
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _STRNLEN1_H */
diff --git a/gnu/strtoimax.c b/gnu/strtoimax.c
new file mode 100644
index 00000000..683f99e7
--- /dev/null
+++ b/gnu/strtoimax.c
@@ -0,0 +1,77 @@
+/* -*- 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-2004, 2006, 2009-2012 Free Software Foundation,
+ Inc.
+
+ This 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>
+
+/* Verify interface. */
+#include <inttypes.h>
+
+#include <stdlib.h>
+
+#include "verify.h"
+
+#ifdef UNSIGNED
+# ifndef HAVE_DECL_STRTOULL
+"this configure-time declaration test was not run"
+# endif
+# if !HAVE_DECL_STRTOULL && HAVE_UNSIGNED_LONG_LONG_INT
+unsigned long long int strtoull (char const *, char **, int);
+# endif
+
+#else
+
+# ifndef HAVE_DECL_STRTOLL
+"this configure-time declaration test was not run"
+# endif
+# if !HAVE_DECL_STRTOLL && HAVE_LONG_LONG_INT
+long long int strtoll (char const *, char **, int);
+# endif
+#endif
+
+#ifdef UNSIGNED
+# define Have_long_long HAVE_UNSIGNED_LONG_LONG_INT
+# define Int uintmax_t
+# define Unsigned unsigned
+# define strtoimax strtoumax
+# define strtol strtoul
+# define strtoll strtoull
+#else
+# define Have_long_long HAVE_LONG_LONG_INT
+# define Int intmax_t
+# define Unsigned
+#endif
+
+Int
+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));
+
+ if (sizeof (Int) != sizeof (Unsigned long int))
+ return strtoll (ptr, endptr, base);
+#else
+ verify (sizeof (Int) == sizeof (Unsigned long int));
+#endif
+
+ return strtol (ptr, endptr, base);
+}
diff --git a/gnu/strtol.c b/gnu/strtol.c
new file mode 100644
index 00000000..72043538
--- /dev/null
+++ b/gnu/strtol.c
@@ -0,0 +1,435 @@
+/* -*- 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-1999, 2003, 2005-2007, 2009-2012 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.
+
+ This 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/>. */
+
+#ifdef _LIBC
+# define USE_NUMBER_GROUPING
+#else
+# include <config.h>
+#endif
+
+#include <ctype.h>
+#include <errno.h>
+#ifndef __set_errno
+# define __set_errno(Val) errno = (Val)
+#endif
+
+#include <limits.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef USE_NUMBER_GROUPING
+# include "../locale/localeinfo.h"
+#endif
+
+/* Nonzero if we are defining 'strtoul' or 'strtoull', operating on
+ unsigned integers. */
+#ifndef UNSIGNED
+# define UNSIGNED 0
+# define INT LONG int
+#else
+# define INT unsigned LONG int
+#endif
+
+/* Determine the name. */
+#ifdef USE_IN_EXTENDED_LOCALE_MODEL
+# if UNSIGNED
+# ifdef USE_WIDE_CHAR
+# ifdef QUAD
+# define strtol __wcstoull_l
+# else
+# define strtol __wcstoul_l
+# endif
+# else
+# ifdef QUAD
+# define strtol __strtoull_l
+# else
+# define strtol __strtoul_l
+# endif
+# endif
+# else
+# ifdef USE_WIDE_CHAR
+# ifdef QUAD
+# define strtol __wcstoll_l
+# else
+# define strtol __wcstol_l
+# endif
+# else
+# ifdef QUAD
+# define strtol __strtoll_l
+# else
+# define strtol __strtol_l
+# endif
+# endif
+# endif
+#else
+# if UNSIGNED
+# ifdef USE_WIDE_CHAR
+# ifdef QUAD
+# define strtol wcstoull
+# else
+# define strtol wcstoul
+# endif
+# else
+# ifdef QUAD
+# define strtol strtoull
+# else
+# define strtol strtoul
+# endif
+# endif
+# else
+# ifdef USE_WIDE_CHAR
+# ifdef QUAD
+# define strtol wcstoll
+# else
+# define strtol wcstol
+# endif
+# else
+# ifdef QUAD
+# define strtol strtoll
+# endif
+# endif
+# endif
+#endif
+
+/* If QUAD is defined, we are defining 'strtoll' or 'strtoull',
+ operating on 'long long int's. */
+#ifdef QUAD
+# define LONG long long
+# define STRTOL_LONG_MIN LLONG_MIN
+# define STRTOL_LONG_MAX LLONG_MAX
+# define STRTOL_ULONG_MAX ULLONG_MAX
+
+/* The extra casts in the following macros work around compiler bugs,
+ e.g., in Cray C 5.0.3.0. */
+
+/* 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)
+
+/* True if the arithmetic type T is signed. */
+# 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) \
+ ((t) (! TYPE_SIGNED (t) \
+ ? (t) 0 \
+ : TYPE_SIGNED_MAGNITUDE (t) \
+ ? ~ (t) 0 \
+ : ~ TYPE_MAXIMUM (t)))
+# define TYPE_MAXIMUM(t) \
+ ((t) (! TYPE_SIGNED (t) \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+
+# ifndef ULLONG_MAX
+# define ULLONG_MAX TYPE_MAXIMUM (unsigned long long)
+# endif
+# ifndef LLONG_MAX
+# define LLONG_MAX TYPE_MAXIMUM (long long int)
+# endif
+# ifndef LLONG_MIN
+# define LLONG_MIN TYPE_MINIMUM (long long int)
+# endif
+
+# if __GNUC__ == 2 && __GNUC_MINOR__ < 7
+ /* Work around gcc bug with using this constant. */
+ static const unsigned long long int maxquad = ULLONG_MAX;
+# undef STRTOL_ULONG_MAX
+# define STRTOL_ULONG_MAX maxquad
+# endif
+#else
+# define LONG long
+# define STRTOL_LONG_MIN LONG_MIN
+# define STRTOL_LONG_MAX LONG_MAX
+# define STRTOL_ULONG_MAX ULONG_MAX
+#endif
+
+
+/* We use this code also for the extended locale handling where the
+ function gets as an additional argument the locale which has to be
+ used. To access the values we have to redefine the _NL_CURRENT
+ macro. */
+#ifdef USE_IN_EXTENDED_LOCALE_MODEL
+# undef _NL_CURRENT
+# define _NL_CURRENT(category, item) \
+ (current->values[_NL_ITEM_INDEX (item)].string)
+# define LOCALE_PARAM , loc
+# define LOCALE_PARAM_PROTO , __locale_t loc
+#else
+# define LOCALE_PARAM
+# define LOCALE_PARAM_PROTO
+#endif
+
+#ifdef USE_WIDE_CHAR
+# include <wchar.h>
+# include <wctype.h>
+# define L_(Ch) L##Ch
+# define UCHAR_TYPE wint_t
+# define STRING_TYPE wchar_t
+# ifdef USE_IN_EXTENDED_LOCALE_MODEL
+# define ISSPACE(Ch) __iswspace_l ((Ch), loc)
+# define ISALPHA(Ch) __iswalpha_l ((Ch), loc)
+# define TOUPPER(Ch) __towupper_l ((Ch), loc)
+# else
+# define ISSPACE(Ch) iswspace (Ch)
+# define ISALPHA(Ch) iswalpha (Ch)
+# define TOUPPER(Ch) towupper (Ch)
+# endif
+#else
+# define L_(Ch) Ch
+# define UCHAR_TYPE unsigned char
+# define STRING_TYPE char
+# ifdef USE_IN_EXTENDED_LOCALE_MODEL
+# define ISSPACE(Ch) __isspace_l ((Ch), loc)
+# define ISALPHA(Ch) __isalpha_l ((Ch), loc)
+# define TOUPPER(Ch) __toupper_l ((Ch), loc)
+# else
+# define ISSPACE(Ch) isspace (Ch)
+# define ISALPHA(Ch) isalpha (Ch)
+# define TOUPPER(Ch) toupper (Ch)
+# endif
+#endif
+
+#define INTERNAL(X) INTERNAL1(X)
+#define INTERNAL1(X) __##X##_internal
+#define WEAKNAME(X) WEAKNAME1(X)
+
+#ifdef USE_NUMBER_GROUPING
+/* This file defines a function to check for correct grouping. */
+# include "grouping.h"
+#endif
+
+
+
+/* Convert NPTR to an 'unsigned long int' or 'long int' in base BASE.
+ If BASE is 0 the base is determined by the presence of a leading
+ zero, indicating octal or a leading "0x" or "0X", indicating hexadecimal.
+ If BASE is < 2 or > 36, it is reset to 10.
+ If ENDPTR is not NULL, a pointer to the character after the last
+ one converted is stored in *ENDPTR. */
+
+INT
+INTERNAL (strtol) (const STRING_TYPE *nptr, STRING_TYPE **endptr,
+ int base, int group LOCALE_PARAM_PROTO)
+{
+ int negative;
+ register unsigned LONG int cutoff;
+ register unsigned int cutlim;
+ register unsigned LONG int i;
+ register const STRING_TYPE *s;
+ register UCHAR_TYPE c;
+ const STRING_TYPE *save, *end;
+ int overflow;
+
+#ifdef USE_NUMBER_GROUPING
+# ifdef USE_IN_EXTENDED_LOCALE_MODEL
+ struct locale_data *current = loc->__locales[LC_NUMERIC];
+# endif
+ /* The thousands character of the current locale. */
+ wchar_t thousands = L'\0';
+ /* The numeric grouping specification of the current locale,
+ in the format described in <locale.h>. */
+ const char *grouping;
+
+ if (group)
+ {
+ grouping = _NL_CURRENT (LC_NUMERIC, GROUPING);
+ if (*grouping <= 0 || *grouping == CHAR_MAX)
+ grouping = NULL;
+ else
+ {
+ /* 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';
+# endif
+ if (thousands == L'\0')
+ grouping = NULL;
+ }
+ }
+ else
+ grouping = NULL;
+#endif
+
+ if (base < 0 || base == 1 || base > 36)
+ {
+ __set_errno (EINVAL);
+ return 0;
+ }
+
+ save = s = nptr;
+
+ /* Skip white space. */
+ while (ISSPACE (*s))
+ ++s;
+ if (*s == L_('\0'))
+ goto noconv;
+
+ /* Check for a sign. */
+ if (*s == L_('-'))
+ {
+ negative = 1;
+ ++s;
+ }
+ else if (*s == L_('+'))
+ {
+ negative = 0;
+ ++s;
+ }
+ else
+ negative = 0;
+
+ /* Recognize number prefix and if BASE is zero, figure it out ourselves. */
+ if (*s == L_('0'))
+ {
+ if ((base == 0 || base == 16) && TOUPPER (s[1]) == L_('X'))
+ {
+ s += 2;
+ base = 16;
+ }
+ else if (base == 0)
+ base = 8;
+ }
+ else if (base == 0)
+ base = 10;
+
+ /* Save the pointer so we can check later if anything happened. */
+ save = s;
+
+#ifdef USE_NUMBER_GROUPING
+ if (group)
+ {
+ /* 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 (*s == thousands)
+ end = s;
+ else
+ end = correctly_grouped_prefix (s, end, thousands, grouping);
+ }
+ else
+#endif
+ end = NULL;
+
+ cutoff = STRTOL_ULONG_MAX / (unsigned LONG int) base;
+ cutlim = STRTOL_ULONG_MAX % (unsigned LONG int) base;
+
+ overflow = 0;
+ i = 0;
+ for (c = *s; c != L_('\0'); c = *++s)
+ {
+ if (s == end)
+ break;
+ if (c >= L_('0') && c <= L_('9'))
+ c -= L_('0');
+ else if (ISALPHA (c))
+ c = TOUPPER (c) - L_('A') + 10;
+ else
+ break;
+ if ((int) c >= base)
+ break;
+ /* Check for overflow. */
+ if (i > cutoff || (i == cutoff && c > cutlim))
+ overflow = 1;
+ else
+ {
+ i *= (unsigned LONG int) base;
+ i += c;
+ }
+ }
+
+ /* Check if anything actually happened. */
+ if (s == save)
+ goto noconv;
+
+ /* Store in ENDPTR the address of one character
+ past the last character we converted. */
+ if (endptr != NULL)
+ *endptr = (STRING_TYPE *) s;
+
+#if !UNSIGNED
+ /* Check for a value that is within the range of
+ '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))
+ overflow = 1;
+#endif
+
+ if (overflow)
+ {
+ __set_errno (ERANGE);
+#if UNSIGNED
+ return STRTOL_ULONG_MAX;
+#else
+ return negative ? STRTOL_LONG_MIN : STRTOL_LONG_MAX;
+#endif
+ }
+
+ /* Return the result of the appropriate sign. */
+ return negative ? -i : i;
+
+noconv:
+ /* We must handle a special case here: the base is 0 or 16 and the
+ first two characters are '0' and 'x', but the rest are no
+ hexadecimal digits. This is no error case. We return 0 and
+ ENDPTR points to the 'x'. */
+ if (endptr != NULL)
+ {
+ if (save - nptr >= 2 && TOUPPER (save[-1]) == L_('X')
+ && save[-2] == L_('0'))
+ *endptr = (STRING_TYPE *) &save[-1];
+ else
+ /* There was no number to convert. */
+ *endptr = (STRING_TYPE *) nptr;
+ }
+
+ return 0L;
+}
+
+/* External user entry point. */
+
+
+INT
+#ifdef weak_function
+weak_function
+#endif
+strtol (const STRING_TYPE *nptr, STRING_TYPE **endptr,
+ int base LOCALE_PARAM_PROTO)
+{
+ return INTERNAL (strtol) (nptr, endptr, base, 0 LOCALE_PARAM);
+}
diff --git a/gnu/strtoul.c b/gnu/strtoul.c
new file mode 100644
index 00000000..b841deaa
--- /dev/null
+++ b/gnu/strtoul.c
@@ -0,0 +1,21 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 1991, 1997, 2009-2012 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/>. */
+
+#define UNSIGNED 1
+
+#include "strtol.c"
diff --git a/gnu/strtoull.c b/gnu/strtoull.c
new file mode 100644
index 00000000..60e181c3
--- /dev/null
+++ b/gnu/strtoull.c
@@ -0,0 +1,28 @@
+/* -*- 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-1997, 1999, 2009-2012 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.
+
+ This 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/>. */
+
+#define QUAD 1
+
+#include "strtoul.c"
+
+#ifdef _LIBC
+strong_alias (__strtoull_internal, __strtouq_internal)
+weak_alias (strtoull, strtouq)
+#endif
diff --git a/gnu/strtoumax.c b/gnu/strtoumax.c
new file mode 100644
index 00000000..44a2f8bb
--- /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/symlink.c b/gnu/symlink.c
new file mode 100644
index 00000000..5e1a58e0
--- /dev/null
+++ b/gnu/symlink.c
@@ -0,0 +1,59 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Stub for symlink().
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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_SYMLINK
+
+# undef symlink
+
+/* Create a symlink, but reject trailing slash. */
+int
+rpl_symlink (char const *contents, char const *name)
+{
+ size_t len = strlen (name);
+ if (len && name[len - 1] == '/')
+ {
+ struct stat st;
+ if (lstat (name, &st) == 0)
+ errno = EEXIST;
+ return -1;
+ }
+ return symlink (contents, name);
+}
+
+#else /* !HAVE_SYMLINK */
+
+/* The system does not support symlinks. */
+int
+symlink (char const *contents _GL_UNUSED,
+ char const *name _GL_UNUSED)
+{
+ errno = ENOSYS;
+ return -1;
+}
+
+#endif /* !HAVE_SYMLINK */
diff --git a/gnu/symlinkat.c b/gnu/symlinkat.c
new file mode 100644
index 00000000..0211e319
--- /dev/null
+++ b/gnu/symlinkat.c
@@ -0,0 +1,78 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Create a symlink relative to an open directory.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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>
+
+#if !HAVE_SYMLINK
+/* Mingw lacks symlink, and it is more efficient to provide a trivial
+ wrapper than to go through at-func.c to call rpl_symlink. */
+
+# include <errno.h>
+
+int
+symlinkat (char const *path1 _GL_UNUSED, int fd _GL_UNUSED,
+ char const *path2 _GL_UNUSED)
+{
+ errno = ENOSYS;
+ return -1;
+}
+
+#else /* HAVE_SYMLINK */
+
+/* Our openat helper functions expect the directory parameter first,
+ not second. These shims make life easier. */
+
+/* Like symlink, but with arguments reversed. */
+static int
+symlink_reversed (char const *file, char const *contents)
+{
+ return symlink (contents, file);
+}
+
+/* Like symlinkat, but with arguments reversed. */
+
+static int
+symlinkat_reversed (int fd, char const *file, char const *contents);
+
+# define AT_FUNC_NAME symlinkat_reversed
+# define AT_FUNC_F1 symlink_reversed
+# define AT_FUNC_POST_FILE_PARAM_DECLS , char const *contents
+# define AT_FUNC_POST_FILE_ARGS , contents
+# 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
+
+/* Create a symlink FILE, in the directory open on descriptor FD,
+ holding CONTENTS. If possible, do it without changing the
+ working directory. Otherwise, resort to using save_cwd/fchdir,
+ then symlink/restore_cwd. If either the save_cwd or the restore_cwd
+ fails, then give a diagnostic and exit nonzero. */
+
+int
+symlinkat (char const *contents, int fd, char const *file)
+{
+ return symlinkat_reversed (fd, file, contents);
+}
+
+#endif /* HAVE_SYMLINK */
diff --git a/gnu/sys_stat.in.h b/gnu/sys_stat.in.h
new file mode 100644
index 00000000..937ae859
--- /dev/null
+++ b/gnu/sys_stat.in.h
@@ -0,0 +1,681 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Provide a more complete sys/stat header file.
+ Copyright (C) 2005-2012 Free Software Foundation, Inc.
+
+ This 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
+@PRAGMA_COLUMNS@
+
+#if defined __need_system_sys_stat_h
+/* Special invocation convention. */
+
+#@INCLUDE_NEXT@ @NEXT_SYS_STAT_H@
+
+#else
+/* Normal invocation convention. */
+
+#ifndef _@GUARD_PREFIX@_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 _@GUARD_PREFIX@_SYS_STAT_H
+#define _@GUARD_PREFIX@_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(). Native Windows platforms declare mkdir
+ in <io.h> and/or <direct.h>, not in <unistd.h>. */
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# include <io.h> /* mingw32, mingw64 */
+# include <direct.h> /* mingw64, MSVC 9 */
+#endif
+
+/* Native Windows platforms declare umask() in <io.h>. */
+#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+# include <io.h>
+#endif
+
+#ifndef S_IFIFO
+# ifdef _S_IFIFO
+# define S_IFIFO _S_IFIFO
+# endif
+#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 @GNULIB_FSTAT@
+# if @REPLACE_FSTAT@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef fstat
+# 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);
+#elif defined GNULIB_POSIXCHECK
+# undef fstat
+# if HAVE_RAW_DECL_FSTAT
+_GL_WARN_ON_USE (fstat, "fstat has portability problems - "
+ "use gnulib module fstat for portability");
+# endif
+#endif
+
+
+#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@
+/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our futimens
+ implementation relies on futimesat, which on Solaris 10 makes an invocation
+ to futimens that is meant to invoke the libc's futimens(), not gnulib's
+ futimens(). */
+# if @REPLACE_FUTIMENS@ || (!@HAVE_FUTIMENS@ && defined __sun)
+# 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
+# if @HAVE_FUTIMENS@
+_GL_CXXALIASWARN (futimens);
+# endif
+#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
+/* Need to cast, because on mingw, the second parameter of chmod is
+ int mode. */
+_GL_CXXALIAS_RPL_CAST_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
+# if @HAVE_LCHMOD@
+_GL_CXXALIASWARN (lchmod);
+# endif
+#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
+# if @HAVE_LSTAT@
+_GL_CXXALIASWARN (lstat);
+# endif
+#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 includes <direct.h> and <io.h>,
+ which are included above. */
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+# if !GNULIB_defined_rpl_mkdir
+static inline int
+rpl_mkdir (char const *name, mode_t mode)
+{
+ return _mkdir (name);
+}
+# define GNULIB_defined_rpl_mkdir 1
+# endif
+
+# 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
+/* Need to cast, because on OSF/1 5.1, the third parameter is '...'. */
+_GL_CXXALIAS_SYS_CAST (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@
+/* Use the rpl_ prefix also on Solaris <= 9, because on Solaris 9 our utimensat
+ implementation relies on futimesat, which on Solaris 10 makes an invocation
+ to utimensat that is meant to invoke the libc's utimensat(), not gnulib's
+ utimensat(). */
+# if @REPLACE_UTIMENSAT@ || (!@HAVE_UTIMENSAT@ && defined __sun)
+# 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
+# if @HAVE_UTIMENSAT@
+_GL_CXXALIASWARN (utimensat);
+# endif
+#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 /* _@GUARD_PREFIX@_SYS_STAT_H */
+#endif /* _@GUARD_PREFIX@_SYS_STAT_H */
+#endif
diff --git a/gnu/sys_time.in.h b/gnu/sys_time.in.h
new file mode 100644
index 00000000..e4e30a67
--- /dev/null
+++ b/gnu/sys_time.in.h
@@ -0,0 +1,202 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Provide a more complete sys/time.h.
+
+ Copyright (C) 2007-2012 Free Software Foundation, Inc.
+
+ This 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
+@PRAGMA_COLUMNS@
+
+#if defined _@GUARD_PREFIX@_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 _@GUARD_PREFIX@_SYS_TIME_H
+
+# if @HAVE_SYS_TIME_H@
+# @INCLUDE_NEXT@ @NEXT_SYS_TIME_H@
+# else
+# include <time.h>
+# endif
+
+/* On native Windows with MSVC:
+ Get the 'struct timeval' type. */
+# if defined _MSC_VER && @HAVE_WINSOCK2_H@ && !defined _GL_INCLUDING_WINSOCK2_H
+# define _GL_INCLUDING_WINSOCK2_H
+# include <winsock2.h>
+# undef _GL_INCLUDING_WINSOCK2_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@
+
+# if !GNULIB_defined_struct_timeval
+struct timeval
+{
+ time_t tv_sec;
+ long int tv_usec;
+};
+# define GNULIB_defined_struct_timeval 1
+# endif
+
+# 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
+
+/* Hide some function declarations from <winsock2.h>. */
+
+# if defined _MSC_VER && @HAVE_WINSOCK2_H@
+# if !defined _@GUARD_PREFIX@_UNISTD_H
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef close
+# define close close_used_without_including_unistd_h
+# else
+ _GL_WARN_ON_USE (close,
+ "close() used without including <unistd.h>");
+# endif
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef gethostname
+# define gethostname gethostname_used_without_including_unistd_h
+# else
+ _GL_WARN_ON_USE (gethostname,
+ "gethostname() used without including <unistd.h>");
+# endif
+# endif
+# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# 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
+# else
+ _GL_WARN_ON_USE (socket,
+ "socket() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (connect,
+ "connect() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (accept,
+ "accept() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (bind,
+ "bind() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getpeername,
+ "getpeername() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getsockname,
+ "getsockname() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getsockopt,
+ "getsockopt() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (listen,
+ "listen() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (recv,
+ "recv() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (send,
+ "send() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (recvfrom,
+ "recvfrom() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (sendto,
+ "sendto() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (setsockopt,
+ "setsockopt() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (shutdown,
+ "shutdown() used without including <sys/socket.h>");
+# endif
+# endif
+# if !defined _@GUARD_PREFIX@_SYS_SELECT_H
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef select
+# define select select_used_without_including_sys_select_h
+# else
+ _GL_WARN_ON_USE (select,
+ "select() used without including <sys/select.h>");
+# endif
+# endif
+# endif
+
+#endif /* _@GUARD_PREFIX@_SYS_TIME_H */
diff --git a/gnu/sys_types.in.h b/gnu/sys_types.in.h
new file mode 100644
index 00000000..aeaddc13
--- /dev/null
+++ b/gnu/sys_types.in.h
@@ -0,0 +1,42 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Provide a more complete sys/types.h.
+
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
+
+ This 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
+@PRAGMA_COLUMNS@
+
+#ifndef _@GUARD_PREFIX@_SYS_TYPES_H
+
+/* The include_next requires a split double-inclusion guard. */
+#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@
+
+#ifndef _@GUARD_PREFIX@_SYS_TYPES_H
+#define _@GUARD_PREFIX@_SYS_TYPES_H
+
+/* MSVC 9 defines size_t in <stddef.h>, not in <sys/types.h>. */
+/* But avoid namespace pollution on glibc systems. */
+#if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \
+ && ! defined __GLIBC__
+# include <stddef.h>
+#endif
+
+#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
+#endif /* _@GUARD_PREFIX@_SYS_TYPES_H */
diff --git a/gnu/sysexits.in.h b/gnu/sysexits.in.h
new file mode 100644
index 00000000..0de6f95b
--- /dev/null
+++ b/gnu/sysexits.in.h
@@ -0,0 +1,74 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* exit() exit codes for some BSD system programs.
+ Copyright (C) 2003, 2006-2012 Free Software Foundation, Inc.
+
+ This 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 based on sysexits(3) man page */
+
+#ifndef _@GUARD_PREFIX@_SYSEXITS_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+#if @HAVE_SYSEXITS_H@
+
+/* IRIX 6.5 has an <unistd.h> that defines a macro EX_OK with a nonzero
+ value. Override it. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2007-03/msg00361.html> */
+# ifdef __sgi
+# include <unistd.h>
+# undef EX_OK
+# endif
+
+/* The include_next requires a split double-inclusion guard. */
+# @INCLUDE_NEXT@ @NEXT_SYSEXITS_H@
+
+/* HP-UX 11 <sysexits.h> ends at EX_NOPERM. */
+# ifndef EX_CONFIG
+# define EX_CONFIG 78
+# endif
+
+#endif
+
+#ifndef _@GUARD_PREFIX@_SYSEXITS_H
+#define _@GUARD_PREFIX@_SYSEXITS_H
+
+#if !@HAVE_SYSEXITS_H@
+
+# define EX_OK 0 /* same value as EXIT_SUCCESS */
+
+# define EX_USAGE 64
+# define EX_DATAERR 65
+# define EX_NOINPUT 66
+# define EX_NOUSER 67
+# define EX_NOHOST 68
+# define EX_UNAVAILABLE 69
+# define EX_SOFTWARE 70
+# define EX_OSERR 71
+# define EX_OSFILE 72
+# define EX_CANTCREAT 73
+# define EX_IOERR 74
+# define EX_TEMPFAIL 75
+# define EX_PROTOCOL 76
+# define EX_NOPERM 77
+# define EX_CONFIG 78
+
+#endif
+
+#endif /* _@GUARD_PREFIX@_SYSEXITS_H */
+#endif /* _@GUARD_PREFIX@_SYSEXITS_H */
diff --git a/gnu/tempname.c b/gnu/tempname.c
new file mode 100644
index 00000000..5684e743
--- /dev/null
+++ b/gnu/tempname.c
@@ -0,0 +1,311 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* tempname.c - generate the name of a temporary file.
+
+ Copyright (C) 1991-2003, 2005-2007, 2009-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+/* Extracted from glibc sysdeps/posix/tempname.c. See also tmpdir.c. */
+
+#if !_LIBC
+# include <config.h>
+# include "tempname.h"
+#endif
+
+#include <sys/types.h>
+#include <assert.h>
+
+#include <errno.h>
+#ifndef __set_errno
+# define __set_errno(Val) errno = (Val)
+#endif
+
+#include <stdio.h>
+#ifndef P_tmpdir
+# define P_tmpdir "/tmp"
+#endif
+#ifndef TMP_MAX
+# define TMP_MAX 238328
+#endif
+#ifndef __GT_FILE
+# 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>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fcntl.h>
+#include <sys/time.h>
+#include <stdint.h>
+#include <unistd.h>
+
+#include <sys/stat.h>
+
+#if _LIBC
+# define struct_stat64 struct stat64
+#else
+# define struct_stat64 struct stat
+# define __gen_tempname gen_tempname
+# define __getpid getpid
+# define __gettimeofday gettimeofday
+# define __mkdir mkdir
+# define __open open
+# define __lxstat64(version, file, buf) lstat (file, buf)
+#endif
+
+#if ! (HAVE___SECURE_GETENV || _LIBC)
+# define __secure_getenv getenv
+#endif
+
+#ifdef _LIBC
+# 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; \
+ } \
+ HP_TIMING_NOW (Var)
+# endif
+#endif
+
+/* Use the widest available unsigned type if uint64_t is not
+ available. The algorithm below extracts a number less than 62**6
+ (approximately 2**35.725) from uint64_t, so ancient hosts where
+ uintmax_t is only 32 bits lose about 3.725 bits of randomness,
+ which is better than not having mkstemp at all. */
+#if !defined UINT64_MAX && !defined uint64_t
+# define uint64_t uintmax_t
+#endif
+
+#if _LIBC
+/* Return nonzero if DIR is an existent directory. */
+static int
+direxists (const char *dir)
+{
+ struct_stat64 buf;
+ return __xstat64 (_STAT_VER, dir, &buf) == 0 && S_ISDIR (buf.st_mode);
+}
+
+/* Path search algorithm, for tmpnam, tmpfile, etc. If DIR is
+ non-null and exists, uses it; otherwise uses the first of $TMPDIR,
+ P_tmpdir, /tmp that exists. Copies into TMPL a template suitable
+ for use with mk[s]temp. Will fail (-1) if DIR is non-null and
+ doesn't exist, none of the searched dirs exists, or there's not
+ enough space in TMPL. */
+int
+__path_search (char *tmpl, size_t tmpl_len, const char *dir, const char *pfx,
+ int try_tmpdir)
+{
+ const char *d;
+ size_t dlen, plen;
+
+ if (!pfx || !pfx[0])
+ {
+ pfx = "file";
+ plen = 4;
+ }
+ else
+ {
+ plen = strlen (pfx);
+ if (plen > 5)
+ plen = 5;
+ }
+
+ if (try_tmpdir)
+ {
+ d = __secure_getenv ("TMPDIR");
+ if (d != NULL && direxists (d))
+ dir = d;
+ else if (dir != NULL && direxists (dir))
+ /* nothing */ ;
+ else
+ dir = NULL;
+ }
+ if (dir == NULL)
+ {
+ if (direxists (P_tmpdir))
+ dir = P_tmpdir;
+ else if (strcmp (P_tmpdir, "/tmp") != 0 && direxists ("/tmp"))
+ dir = "/tmp";
+ else
+ {
+ __set_errno (ENOENT);
+ return -1;
+ }
+ }
+
+ dlen = strlen (dir);
+ while (dlen > 1 && dir[dlen - 1] == '/')
+ dlen--; /* remove trailing slashes */
+
+ /* check we have room for "${dir}/${pfx}XXXXXX\0" */
+ if (tmpl_len < dlen + 1 + plen + 6 + 1)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ sprintf (tmpl, "%.*s/%.*sXXXXXX", (int) dlen, dir, (int) plen, pfx);
+ return 0;
+}
+#endif /* _LIBC */
+
+/* These are the characters used in temporary file names. */
+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", 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_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 suffixlen, int flags, int kind)
+{
+ int len;
+ char *XXXXXX;
+ static uint64_t value;
+ uint64_t random_time_bits;
+ unsigned int count;
+ int fd = -1;
+ int save_errno = errno;
+ struct_stat64 st;
+
+ /* A lower bound on the number of temporary files to attempt to
+ generate. The maximum total number of temporary file names that
+ can exist for a given template is 62**6. It should never be
+ necessary to try all these combinations. Instead if a reasonable
+ number of names is tried (we define reasonable as 62**3) fail to
+ give the system administrator the chance to remove the problems. */
+#define ATTEMPTS_MIN (62 * 62 * 62)
+
+ /* The number of times to attempt to generate a temporary file. To
+ conform to POSIX, this must be no smaller than TMP_MAX. */
+#if ATTEMPTS_MIN < TMP_MAX
+ unsigned int attempts = TMP_MAX;
+#else
+ unsigned int attempts = ATTEMPTS_MIN;
+#endif
+
+ len = strlen (tmpl);
+ 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 - suffixlen];
+
+ /* Get some more or less random data. */
+#ifdef RANDOM_BITS
+ RANDOM_BITS (random_time_bits);
+#else
+ {
+ struct timeval tv;
+ __gettimeofday (&tv, NULL);
+ random_time_bits = ((uint64_t) tv.tv_usec << 16) ^ tv.tv_sec;
+ }
+#endif
+ value += random_time_bits ^ __getpid ();
+
+ for (count = 0; count < attempts; value += 7777, ++count)
+ {
+ uint64_t v = value;
+
+ /* Fill in the random bits. */
+ XXXXXX[0] = letters[v % 62];
+ v /= 62;
+ XXXXXX[1] = letters[v % 62];
+ v /= 62;
+ XXXXXX[2] = letters[v % 62];
+ v /= 62;
+ XXXXXX[3] = letters[v % 62];
+ v /= 62;
+ XXXXXX[4] = letters[v % 62];
+ v /= 62;
+ XXXXXX[5] = letters[v % 62];
+
+ switch (kind)
+ {
+ 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;
+ }
+ else if (errno != EEXIST)
+ return -1;
+ }
+
+ /* We got out of the loop because we ran out of combinations to try. */
+ __set_errno (EEXIST);
+ return -1;
+}
diff --git a/gnu/tempname.h b/gnu/tempname.h
new file mode 100644
index 00000000..7996577c
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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 00000000..1391bee6
--- /dev/null
+++ b/gnu/time.in.h
@@ -0,0 +1,251 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A more-standard <time.h>.
+
+ Copyright (C) 2007-2012 Free Software Foundation, Inc.
+
+ This 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
+@PRAGMA_COLUMNS@
+
+/* 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 _@GUARD_PREFIX@_TIME_H)
+
+# @INCLUDE_NEXT@ @NEXT_TIME_H@
+
+#else
+
+# define _@GUARD_PREFIX@_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. */
+
+/* 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). Stock Mingw does not define it, but the
+ pthreads-win32 library defines it in <pthread.h>. */
+# if ! @TIME_H_DEFINES_STRUCT_TIMESPEC@
+# if @SYS_TIME_H_DEFINES_STRUCT_TIMESPEC@
+# include <sys/time.h>
+# elif @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+# include <pthread.h>
+/* The pthreads-win32 <pthread.h> also defines a couple of broken macros. */
+# undef asctime_r
+# undef ctime_r
+# undef gmtime_r
+# undef localtime_r
+# undef rand_r
+# undef strtok_r
+# else
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+# if !GNULIB_defined_struct_timespec
+# undef timespec
+# define timespec rpl_timespec
+struct timespec
+{
+ time_t tv_sec;
+ long int tv_nsec;
+};
+# define GNULIB_defined_struct_timespec 1
+# endif
+
+# ifdef __cplusplus
+}
+# endif
+
+# endif
+# endif
+
+# if !GNULIB_defined_struct_time_t_must_be_integral
+/* Per http://austingroupbugs.net/view.php?id=327, POSIX requires
+ time_t to be an integer type, even though C99 permits floating
+ point. We don't know of any implementation that uses floating
+ point, and it is much easier to write code that doesn't have to
+ worry about that corner case, so we force the issue. */
+struct __time_t_must_be_integral {
+ unsigned int __floating_time_t_unsupported : (time_t) 1;
+};
+# define GNULIB_defined_struct_time_t_must_be_integral 1
+# 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
+# if ! @HAVE_NANOSLEEP@
+_GL_FUNCDECL_SYS (nanosleep, int,
+ (struct timespec const *__rqtp, struct timespec *__rmtp)
+ _GL_ARG_NONNULL ((1)));
+# endif
+_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 @GNULIB_TIME_R@
+# 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
+# if ! @HAVE_DECL_LOCALTIME_R@
+_GL_FUNCDECL_SYS (localtime_r, struct tm *, (time_t const *restrict __timer,
+ struct tm *restrict __result)
+ _GL_ARG_NONNULL ((1, 2)));
+# endif
+_GL_CXXALIAS_SYS (localtime_r, struct tm *, (time_t const *restrict __timer,
+ struct tm *restrict __result));
+# endif
+# if @HAVE_DECL_LOCALTIME_R@
+_GL_CXXALIASWARN (localtime_r);
+# endif
+# 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
+# if ! @HAVE_DECL_LOCALTIME_R@
+_GL_FUNCDECL_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer,
+ struct tm *restrict __result)
+ _GL_ARG_NONNULL ((1, 2)));
+# endif
+_GL_CXXALIAS_SYS (gmtime_r, struct tm *, (time_t const *restrict __timer,
+ struct tm *restrict __result));
+# endif
+# if @HAVE_DECL_LOCALTIME_R@
+_GL_CXXALIASWARN (gmtime_r);
+# endif
+# 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 @GNULIB_STRPTIME@
+# if ! @HAVE_STRPTIME@
+_GL_FUNCDECL_SYS (strptime, char *, (char const *restrict __buf,
+ char const *restrict __format,
+ struct tm *restrict __tm)
+ _GL_ARG_NONNULL ((1, 2, 3)));
+# endif
+_GL_CXXALIAS_SYS (strptime, char *, (char const *restrict __buf,
+ char const *restrict __format,
+ struct tm *restrict __tm));
+_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
+# if ! @HAVE_TIMEGM@
+_GL_FUNCDECL_SYS (timegm, time_t, (struct tm *__tm) _GL_ARG_NONNULL ((1)));
+# endif
+_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 defined GNULIB_POSIXCHECK
+# undef asctime
+_GL_WARN_ON_USE (asctime, "asctime can overrun buffers in some cases - "
+ "better use strftime (or even sprintf) instead");
+# endif
+# if defined GNULIB_POSIXCHECK
+# undef asctime_r
+_GL_WARN_ON_USE (asctime, "asctime_r can overrun buffers in some cases - "
+ "better use strftime (or even sprintf) instead");
+# endif
+# if defined GNULIB_POSIXCHECK
+# undef ctime
+_GL_WARN_ON_USE (asctime, "ctime can overrun buffers in some cases - "
+ "better use strftime (or even sprintf) instead");
+# endif
+# if defined GNULIB_POSIXCHECK
+# undef ctime_r
+_GL_WARN_ON_USE (asctime, "ctime_r can overrun buffers in some cases - "
+ "better use strftime (or even sprintf) instead");
+# endif
+
+#endif
diff --git a/gnu/time_r.c b/gnu/time_r.c
new file mode 100644
index 00000000..f2d59bcf
--- /dev/null
+++ b/gnu/time_r.c
@@ -0,0 +1,47 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Reentrant time functions like localtime_r.
+
+ Copyright (C) 2003, 2006-2007, 2010-2012 Free Software Foundation, Inc.
+
+ This 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. */
+
+#include <config.h>
+
+#include <time.h>
+
+static struct tm *
+copy_tm_result (struct tm *dest, struct tm const *src)
+{
+ if (! src)
+ return 0;
+ *dest = *src;
+ return dest;
+}
+
+
+struct tm *
+gmtime_r (time_t const * restrict t, struct tm * restrict tp)
+{
+ return copy_tm_result (tp, gmtime (t));
+}
+
+struct tm *
+localtime_r (time_t const * restrict t, struct tm * restrict tp)
+{
+ return copy_tm_result (tp, localtime (t));
+}
diff --git a/gnu/timespec.h b/gnu/timespec.h
new file mode 100644
index 00000000..de192c61
--- /dev/null
+++ b/gnu/timespec.h
@@ -0,0 +1,84 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* timespec -- System time interface
+
+ Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 ! defined TIMESPEC_H
+# define TIMESPEC_H
+
+# include <time.h>
+
+/* Return negative, zero, positive if A < B, A == B, A > B, respectively.
+
+ For each time stamp T, this code assumes that either:
+
+ * T.tv_nsec is in the range 0..999999999; or
+ * T.tv_sec corresponds to a valid leap second on a host that supports
+ leap seconds, and T.tv_nsec is in the range 1000000000..1999999999; or
+ * T.tv_sec is the minimum time_t value and T.tv_nsec is -1; or
+ T.tv_sec is the maximum time_t value and T.tv_nsec is 2000000000.
+ This allows for special struct timespec values that are less or
+ greater than all possible valid time stamps.
+
+ In all these cases, it is safe to subtract two tv_nsec values and
+ convert the result to integer without worrying about overflow on
+ any platform of interest to the GNU project, since all such
+ platforms have 32-bit int or wider.
+
+ Replacing "(int) (a.tv_nsec - b.tv_nsec)" with something like
+ "a.tv_nsec < b.tv_nsec ? -1 : a.tv_nsec > b.tv_nsec" would cause
+ this function to work in some cases where the above assumption is
+ violated, but not in all cases (e.g., a.tv_sec==1, a.tv_nsec==-2,
+ b.tv_sec==0, b.tv_nsec==999999999) and is arguably not worth the
+ extra instructions. Using a subtraction has the advantage of
+ detecting some invalid cases on platforms that detect integer
+ overflow.
+
+ The (int) cast avoids a gcc -Wconversion warning. */
+
+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
+ : (int) (a.tv_nsec - b.tv_nsec));
+}
+
+/* Return -1, 0, 1, depending on the sign of A. A.tv_nsec must be
+ nonnegative. */
+static inline int
+timespec_sign (struct timespec a)
+{
+ return a.tv_sec < 0 ? -1 : a.tv_sec || a.tv_nsec;
+}
+
+struct timespec timespec_add (struct timespec, struct timespec);
+struct timespec timespec_sub (struct timespec, struct timespec);
+struct timespec dtotimespec (double);
+
+/* Return an approximation to A, of type 'double'. */
+static inline double
+timespectod (struct timespec a)
+{
+ return a.tv_sec + a.tv_nsec / 1e9;
+}
+
+void gettime (struct timespec *);
+int settime (struct timespec const *);
+
+#endif
diff --git a/gnu/uinttostr.c b/gnu/uinttostr.c
new file mode 100644
index 00000000..70458ecc
--- /dev/null
+++ b/gnu/uinttostr.c
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#define anytostr uinttostr
+#define inttype unsigned int
+#include "anytostr.c"
diff --git a/gnu/umaxtostr.c b/gnu/umaxtostr.c
new file mode 100644
index 00000000..6dad2166
--- /dev/null
+++ b/gnu/umaxtostr.c
@@ -0,0 +1,5 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#define anytostr umaxtostr
+#define inttype uintmax_t
+#include "anytostr.c"
diff --git a/gnu/unistd--.h b/gnu/unistd--.h
new file mode 100644
index 00000000..b5a2b0f1
--- /dev/null
+++ b/gnu/unistd--.h
@@ -0,0 +1,34 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <unistd.h>
+#include "unistd-safer.h"
+
+#undef dup
+#define dup dup_safer
+
+#undef pipe
+#define pipe pipe_safer
+
+#if GNULIB_PIPE2_SAFER
+# undef pipe2
+# define pipe2 pipe2_safer
+#endif
diff --git a/gnu/unistd-safer.h b/gnu/unistd-safer.h
new file mode 100644
index 00000000..c96dc730
--- /dev/null
+++ b/gnu/unistd-safer.h
@@ -0,0 +1,33 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 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 00000000..1af7b699
--- /dev/null
+++ b/gnu/unistd.in.h
@@ -0,0 +1,1528 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Substitute for and wrapper around <unistd.h>.
+ Copyright (C) 2003-2012 Free Software Foundation, Inc.
+
+ This 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
+@PRAGMA_COLUMNS@
+
+/* Special invocation convention:
+ - On mingw, several headers, including <winsock2.h>, include <unistd.h>,
+ but we need to ensure that both the system <unistd.h> and <winsock2.h>
+ are completely included before we replace gethostname. */
+#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \
+ && !defined _GL_WINSOCK2_H_WITNESS && defined _WINSOCK2_H
+/* <unistd.h> is being indirectly included for the first time from
+ <winsock2.h>; avoid declaring any overrides. */
+# if @HAVE_UNISTD_H@
+# @INCLUDE_NEXT@ @NEXT_UNISTD_H@
+# else
+# error unexpected; report this to bug-gnulib@gnu.org
+# endif
+# define _GL_WINSOCK2_H_WITNESS
+
+/* Normal invocation. */
+#elif !defined _@GUARD_PREFIX@_UNISTD_H
+
+/* The include_next requires a split double-inclusion guard. */
+#if @HAVE_UNISTD_H@
+# @INCLUDE_NEXT@ @NEXT_UNISTD_H@
+#endif
+
+/* Get all possible declarations of gethostname(). */
+#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@ \
+ && !defined _GL_INCLUDING_WINSOCK2_H
+# define _GL_INCLUDING_WINSOCK2_H
+# include <winsock2.h>
+# undef _GL_INCLUDING_WINSOCK2_H
+#endif
+
+#if !defined _@GUARD_PREFIX@_UNISTD_H && !defined _GL_INCLUDING_WINSOCK2_H
+#define _@GUARD_PREFIX@_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 __CYGWIN__)) \
+ && ! 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 __CYGWIN__ \
+ && ! defined __GLIBC__
+# include <fcntl.h>
+#endif
+
+/* mingw fails to declare _exit in <unistd.h>. */
+/* mingw, MSVC, 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
+
+/* Native Windows platforms declare chdir, getcwd, rmdir in
+ <io.h> and/or <direct.h>, not in <unistd.h>.
+ They also declare access(), chmod(), close(), dup(), dup2(), isatty(),
+ lseek(), read(), unlink(), write() in <io.h>. */
+#if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \
+ || defined GNULIB_POSIXCHECK) \
+ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__))
+# include <io.h> /* mingw32, mingw64 */
+# include <direct.h> /* mingw64, MSVC 9 */
+#elif (@GNULIB_CLOSE@ || @GNULIB_DUP@ || @GNULIB_DUP2@ || @GNULIB_ISATTY@ \
+ || @GNULIB_LSEEK@ || @GNULIB_READ@ || @GNULIB_UNLINK@ || @GNULIB_WRITE@ \
+ || defined GNULIB_POSIXCHECK) \
+ && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
+# include <io.h>
+#endif
+
+/* AIX and OSF/1 5.1 declare getdomainname in <netdb.h>, not in <unistd.h>.
+ NonStop Kernel declares gethostname in <netdb.h>, not in <unistd.h>. */
+/* But avoid namespace pollution on glibc systems. */
+#if ((@GNULIB_GETDOMAINNAME@ && (defined _AIX || defined __osf__)) \
+ || (@GNULIB_GETHOSTNAME@ && defined __TANDEM)) \
+ && !defined __GLIBC__
+# include <netdb.h>
+#endif
+
+/* MSVC defines off_t in <sys/types.h>. */
+#if !@HAVE_UNISTD_H@
+/* Get off_t. */
+# include <sys/types.h>
+#endif
+
+#if (@GNULIB_READ@ || @GNULIB_WRITE@ \
+ || @GNULIB_READLINK@ || @GNULIB_READLINKAT@ \
+ || @GNULIB_PREAD@ || @GNULIB_PWRITE@ || 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
+
+/* 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. */
+
+
+/* Hide some function declarations from <winsock2.h>. */
+
+#if @GNULIB_GETHOSTNAME@ && @UNISTD_H_HAVE_WINSOCK2_H@
+# if !defined _@GUARD_PREFIX@_SYS_SOCKET_H
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# 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
+# else
+ _GL_WARN_ON_USE (socket,
+ "socket() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (connect,
+ "connect() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (accept,
+ "accept() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (bind,
+ "bind() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getpeername,
+ "getpeername() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getsockname,
+ "getsockname() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (getsockopt,
+ "getsockopt() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (listen,
+ "listen() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (recv,
+ "recv() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (send,
+ "send() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (recvfrom,
+ "recvfrom() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (sendto,
+ "sendto() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (setsockopt,
+ "setsockopt() used without including <sys/socket.h>");
+ _GL_WARN_ON_USE (shutdown,
+ "shutdown() used without including <sys/socket.h>");
+# endif
+# endif
+# if !defined _@GUARD_PREFIX@_SYS_SELECT_H
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef select
+# define select select_used_without_including_sys_select_h
+# else
+ _GL_WARN_ON_USE (select,
+ "select() used without including <sys/select.h>");
+# endif
+# endif
+#endif
+
+
+/* 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_CHDIR@
+_GL_CXXALIAS_SYS (chdir, int, (const char *file) _GL_ARG_NONNULL ((1)));
+_GL_CXXALIASWARN (chdir);
+#elif defined GNULIB_POSIXCHECK
+# undef chdir
+# if HAVE_RAW_DECL_CHDIR
+_GL_WARN_ON_USE (chown, "chdir is not always in <unistd.h> - "
+ "use gnulib module chdir for portability");
+# endif
+#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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/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 @GNULIB_DUP@
+# 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);
+#elif defined GNULIB_POSIXCHECK
+# undef dup
+# if HAVE_RAW_DECL_DUP
+_GL_WARN_ON_USE (dup, "dup is unportable - "
+ "use gnulib module dup for portability");
+# endif
+#endif
+
+
+#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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fchdir.html>. */
+# if ! @HAVE_FCHDIR@
+_GL_FUNCDECL_SYS (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
+# if !@HAVE_DECL_FCHDIR@
+_GL_FUNCDECL_SYS (fchdir, int, (int /*fd*/));
+# endif
+# endif
+_GL_CXXALIAS_SYS (fchdir, int, (int /*fd*/));
+_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_FDATASYNC@
+/* Synchronize changes to a file.
+ Return 0 if successful, otherwise -1 and errno set.
+ See POSIX:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/fdatasync.html>. */
+# if !@HAVE_FDATASYNC@ || !@HAVE_DECL_FDATASYNC@
+_GL_FUNCDECL_SYS (fdatasync, int, (int fd));
+# endif
+_GL_CXXALIAS_SYS (fdatasync, int, (int fd));
+_GL_CXXALIASWARN (fdatasync);
+#elif defined GNULIB_POSIXCHECK
+# undef fdatasync
+# if HAVE_RAW_DECL_FDATASYNC
+_GL_WARN_ON_USE (fdatasync, "fdatasync is unportable - "
+ "use gnulib module fdatasync for portability");
+# endif
+#endif
+
+
+#if @GNULIB_FSYNC@
+/* Synchronize changes, including metadata, to a file.
+ Return 0 if successful, otherwise -1 and errno set.
+ See POSIX:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/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
+/* Need to cast, because on mingw, the second parameter is
+ int size. */
+_GL_CXXALIAS_SYS_CAST (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 @REPLACE_GETDOMAINNAME@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef getdomainname
+# define getdomainname rpl_getdomainname
+# endif
+_GL_FUNCDECL_RPL (getdomainname, int, (char *name, size_t len)
+ _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (getdomainname, int, (char *name, size_t len));
+# else
+# if !@HAVE_DECL_GETDOMAINNAME@
+_GL_FUNCDECL_SYS (getdomainname, int, (char *name, size_t len)
+ _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (getdomainname, int, (char *name, size_t len));
+# endif
+_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 and OSF/1 5.1 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 @REPLACE_GETLOGIN_R@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# define getlogin_r rpl_getlogin_r
+# endif
+_GL_FUNCDECL_RPL (getlogin_r, int, (char *name, size_t size)
+ _GL_ARG_NONNULL ((1)));
+_GL_CXXALIAS_RPL (getlogin_r, int, (char *name, size_t size));
+# else
+# 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));
+# endif
+_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
+# if !GNULIB_defined_getpagesize_function
+static inline int
+getpagesize ()
+{
+ return _gl_getpagesize ();
+}
+# define GNULIB_defined_getpagesize_function 1
+# endif
+# 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
+# if @HAVE_DECL_GETPAGESIZE@
+_GL_CXXALIASWARN (getpagesize);
+# endif
+#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_DECL_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_DECL_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_DECL_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_GROUP_MEMBER@
+/* Determine whether group id is in calling user's group list. */
+# if !@HAVE_GROUP_MEMBER@
+_GL_FUNCDECL_SYS (group_member, int, (gid_t gid));
+# endif
+_GL_CXXALIAS_SYS (group_member, int, (gid_t gid));
+_GL_CXXALIASWARN (group_member);
+#elif defined GNULIB_POSIXCHECK
+# undef group_member
+# if HAVE_RAW_DECL_GROUP_MEMBER
+_GL_WARN_ON_USE (group_member, "group_member is unportable - "
+ "use gnulib module group-member for portability");
+# endif
+#endif
+
+
+#if @GNULIB_ISATTY@
+# if @REPLACE_ISATTY@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef isatty
+# define isatty rpl_isatty
+# endif
+_GL_FUNCDECL_RPL (isatty, int, (int fd));
+_GL_CXXALIAS_RPL (isatty, int, (int fd));
+# else
+_GL_CXXALIAS_SYS (isatty, int, (int fd));
+# endif
+_GL_CXXALIASWARN (isatty);
+#elif defined GNULIB_POSIXCHECK
+# undef isatty
+# if HAVE_RAW_DECL_ISATTY
+_GL_WARN_ON_USE (isatty, "isatty has portability problems on native Windows - "
+ "use gnulib module isatty 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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/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_PIPE@
+/* Create a pipe, defaulting to O_BINARY mode.
+ 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. */
+# if !@HAVE_PIPE@
+_GL_FUNCDECL_SYS (pipe, int, (int fd[2]) _GL_ARG_NONNULL ((1)));
+# endif
+_GL_CXXALIAS_SYS (pipe, int, (int fd[2]));
+_GL_CXXALIASWARN (pipe);
+#elif defined GNULIB_POSIXCHECK
+# undef pipe
+# if HAVE_RAW_DECL_PIPE
+_GL_WARN_ON_USE (pipe, "pipe is unportable - "
+ "use gnulib module pipe-posix 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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pread.html>. */
+# if @REPLACE_PREAD@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef pread
+# 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_PWRITE@
+/* Write at most BUFSIZE bytes from BUF into FD, starting at OFFSET.
+ Return the number of bytes written if successful, otherwise
+ set errno and return -1. 0 indicates nothing written. See the
+ POSIX:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/pwrite.html>. */
+# if @REPLACE_PWRITE@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef pwrite
+# define pwrite rpl_pwrite
+# endif
+_GL_FUNCDECL_RPL (pwrite, ssize_t,
+ (int fd, const void *buf, size_t bufsize, off_t offset)
+ _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (pwrite, ssize_t,
+ (int fd, const void *buf, size_t bufsize, off_t offset));
+# else
+# if !@HAVE_PWRITE@
+_GL_FUNCDECL_SYS (pwrite, ssize_t,
+ (int fd, const void *buf, size_t bufsize, off_t offset)
+ _GL_ARG_NONNULL ((2)));
+# endif
+_GL_CXXALIAS_SYS (pwrite, ssize_t,
+ (int fd, const void *buf, size_t bufsize, off_t offset));
+# endif
+_GL_CXXALIASWARN (pwrite);
+#elif defined GNULIB_POSIXCHECK
+# undef pwrite
+# if HAVE_RAW_DECL_PWRITE
+_GL_WARN_ON_USE (pwrite, "pwrite is unportable - "
+ "use gnulib module pwrite for portability");
+# endif
+#endif
+
+
+#if @GNULIB_READ@
+/* Read up to COUNT bytes from file descriptor FD into the buffer starting
+ at BUF. See the POSIX:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html>. */
+# if @REPLACE_READ@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef read
+# define read rpl_read
+# endif
+_GL_FUNCDECL_RPL (read, ssize_t, (int fd, void *buf, size_t count)
+ _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (read, ssize_t, (int fd, void *buf, size_t count));
+# else
+/* Need to cast, because on mingw, the third parameter is
+ unsigned int count
+ and the return type is 'int'. */
+_GL_CXXALIAS_SYS_CAST (read, ssize_t, (int fd, void *buf, size_t count));
+# endif
+_GL_CXXALIASWARN (read);
+#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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/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 readlinkat 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_SETHOSTNAME@
+/* Set the host name of the machine.
+ The host name may or may not be fully qualified.
+
+ Put LEN bytes of NAME into the host name.
+ Return 0 if successful, otherwise, set errno and return -1.
+
+ Platforms with no ability to set the hostname return -1 and set
+ errno = ENOSYS. */
+# if !@HAVE_SETHOSTNAME@ || !@HAVE_DECL_SETHOSTNAME@
+_GL_FUNCDECL_SYS (sethostname, int, (const char *name, size_t len)
+ _GL_ARG_NONNULL ((1)));
+# endif
+/* Need to cast, because on Solaris 11 2011-10, MacOS X 10.5, IRIX 6.5
+ and FreeBSD 6.4 the second parameter is int. On Solaris 11
+ 2011-10, the first parameter is not const. */
+_GL_CXXALIAS_SYS_CAST (sethostname, int, (const char *name, size_t len));
+_GL_CXXALIASWARN (sethostname);
+#elif defined GNULIB_POSIXCHECK
+# undef sethostname
+# if HAVE_RAW_DECL_SETHOSTNAME
+_GL_WARN_ON_USE (sethostname, "sethostname is unportable - "
+ "use gnulib module sethostname 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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/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_TTYNAME_R@
+/* Store at most BUFLEN characters of the pathname of the terminal FD is
+ open on in BUF. Return 0 on success, otherwise an error number. */
+# if @REPLACE_TTYNAME_R@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef ttyname_r
+# define ttyname_r rpl_ttyname_r
+# endif
+_GL_FUNCDECL_RPL (ttyname_r, int,
+ (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2)));
+_GL_CXXALIAS_RPL (ttyname_r, int,
+ (int fd, char *buf, size_t buflen));
+# else
+# if !@HAVE_DECL_TTYNAME_R@
+_GL_FUNCDECL_SYS (ttyname_r, int,
+ (int fd, char *buf, size_t buflen) _GL_ARG_NONNULL ((2)));
+# endif
+_GL_CXXALIAS_SYS (ttyname_r, int,
+ (int fd, char *buf, size_t buflen));
+# endif
+_GL_CXXALIASWARN (ttyname_r);
+#elif defined GNULIB_POSIXCHECK
+# undef ttyname_r
+# if HAVE_RAW_DECL_TTYNAME_R
+_GL_WARN_ON_USE (ttyname_r, "ttyname_r is not portable - "
+ "use gnulib module ttyname_r 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/usleep.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:2008 specification
+ <http://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html>. */
+# if @REPLACE_WRITE@
+# 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
+/* Need to cast, because on mingw, the third parameter is
+ unsigned int count
+ and the return type is 'int'. */
+_GL_CXXALIAS_SYS_CAST (write, ssize_t, (int fd, const void *buf, size_t count));
+# endif
+_GL_CXXALIASWARN (write);
+#endif
+
+
+#endif /* _@GUARD_PREFIX@_UNISTD_H */
+#endif /* _@GUARD_PREFIX@_UNISTD_H */
diff --git a/gnu/unitypes.in.h b/gnu/unitypes.in.h
new file mode 100644
index 00000000..0f5fa261
--- /dev/null
+++ b/gnu/unitypes.in.h
@@ -0,0 +1,28 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Elementary types for the GNU UniString library.
+ Copyright (C) 2002, 2005-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 _UNITYPES_H
+#define _UNITYPES_H
+
+/* Get uint8_t, uint16_t, uint32_t. */
+#include <stdint.h>
+
+/* Type representing a Unicode character. */
+typedef uint32_t ucs4_t;
+
+#endif /* _UNITYPES_H */
diff --git a/gnu/uniwidth.in.h b/gnu/uniwidth.in.h
new file mode 100644
index 00000000..58c93c46
--- /dev/null
+++ b/gnu/uniwidth.in.h
@@ -0,0 +1,71 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Display width functions.
+ Copyright (C) 2001-2002, 2005, 2007, 2009-2012 Free Software Foundation,
+ Inc.
+
+ This 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 _UNIWIDTH_H
+#define _UNIWIDTH_H
+
+#include "unitypes.h"
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get locale_charset() declaration. */
+#include "localcharset.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/* Display width. */
+
+/* These functions are locale dependent. The encoding argument identifies
+ the encoding (e.g. "ISO-8859-2" for Polish). */
+
+/* Determine number of column positions required for UC. */
+extern int
+ uc_width (ucs4_t uc, const char *encoding)
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+ __attribute__ ((__pure__))
+#endif
+ ;
+
+/* Determine number of column positions required for first N units
+ (or fewer if S ends before this) in S. */
+extern int
+ u8_width (const uint8_t *s, size_t n, const char *encoding);
+extern int
+ u16_width (const uint16_t *s, size_t n, const char *encoding);
+extern int
+ u32_width (const uint32_t *s, size_t n, const char *encoding);
+
+/* Determine number of column positions required for S. */
+extern int
+ u8_strwidth (const uint8_t *s, const char *encoding);
+extern int
+ u16_strwidth (const uint16_t *s, const char *encoding);
+extern int
+ u32_strwidth (const uint32_t *s, const char *encoding);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _UNIWIDTH_H */
diff --git a/gnu/uniwidth/.gitignore b/gnu/uniwidth/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/gnu/uniwidth/.gitignore
diff --git a/gnu/uniwidth/cjk.h b/gnu/uniwidth/cjk.h
new file mode 100644
index 00000000..c6e5531d
--- /dev/null
+++ b/gnu/uniwidth/cjk.h
@@ -0,0 +1,39 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Test for CJK encoding.
+ Copyright (C) 2001-2002, 2005-2007, 2009-2012 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
+ 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 "streq.h"
+
+static int
+is_cjk_encoding (const char *encoding)
+{
+ if (0
+ /* Legacy Japanese encodings */
+ || STREQ (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)
+ /* Legacy Chinese encodings */
+ || STREQ (encoding, "GB2312", 'G', 'B', '2', '3', '1', '2', 0, 0, 0)
+ || STREQ (encoding, "GBK", 'G', 'B', 'K', 0, 0, 0, 0, 0, 0)
+ || STREQ (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)
+ || STREQ (encoding, "BIG5", 'B', 'I', 'G', '5', 0, 0, 0, 0, 0)
+ /* Legacy Korean encodings */
+ || STREQ (encoding, "EUC-KR", 'E', 'U', 'C', '-', 'K', 'R', 0, 0, 0)
+ || STREQ (encoding, "CP949", 'C', 'P', '9', '4', '9', 0, 0, 0, 0)
+ || STREQ (encoding, "JOHAB", 'J', 'O', 'H', 'A', 'B', 0, 0, 0, 0))
+ return 1;
+ return 0;
+}
diff --git a/gnu/uniwidth/width.c b/gnu/uniwidth/width.c
new file mode 100644
index 00000000..1b284c6e
--- /dev/null
+++ b/gnu/uniwidth/width.c
@@ -0,0 +1,370 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Determine display width of Unicode character.
+ Copyright (C) 2001-2002, 2006-2012 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
+ 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 "uniwidth.h"
+
+#include "cjk.h"
+
+/*
+ * Non-spacing attribute table.
+ * Consists of:
+ * - Non-spacing characters; generated from PropList.txt or
+ * "grep '^[^;]*;[^;]*;[^;]*;[^;]*;NSM;' UnicodeData.txt"
+ * - Format control characters; generated from
+ * "grep '^[^;]*;[^;]*;Cf;' UnicodeData.txt"
+ * - Zero width characters; generated from
+ * "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt"
+ */
+static const unsigned char nonspacing_table_data[27*64] = {
+ /* 0x0000-0x01ff */
+ 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */
+ 0xff, 0xff, 0xff, 0xff, 0x00, 0x20, 0x00, 0x00, /* 0x0080-0x00bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00c0-0x00ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0100-0x013f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0140-0x017f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0180-0x01bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x01c0-0x01ff */
+ /* 0x0200-0x03ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0200-0x023f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0240-0x027f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0280-0x02bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x02c0-0x02ff */
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x0300-0x033f */
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, /* 0x0340-0x037f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0380-0x03bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x03c0-0x03ff */
+ /* 0x0400-0x05ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0400-0x043f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0440-0x047f */
+ 0xf8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0480-0x04bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x04c0-0x04ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0500-0x053f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0540-0x057f */
+ 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xff, 0xbf, /* 0x0580-0x05bf */
+ 0xb6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x05c0-0x05ff */
+ /* 0x0600-0x07ff */
+ 0x0f, 0x00, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, /* 0x0600-0x063f */
+ 0x00, 0xf8, 0xff, 0xff, 0x00, 0x00, 0x01, 0x00, /* 0x0640-0x067f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0680-0x06bf */
+ 0x00, 0x00, 0xc0, 0xbf, 0x9f, 0x3d, 0x00, 0x00, /* 0x06c0-0x06ff */
+ 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0xff, 0xff, /* 0x0700-0x073f */
+ 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0740-0x077f */
+ 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x01, 0x00, /* 0x0780-0x07bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x07c0-0x07ff */
+ /* 0x0800-0x09ff */
+ 0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */
+ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08c0-0x08ff */
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */
+ 0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */
+ 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x09c0-0x09ff */
+ /* 0x0a00-0x0bff */
+ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a00-0x0a3f */
+ 0x86, 0x39, 0x02, 0x00, 0x00, 0x00, 0x23, 0x00, /* 0x0a40-0x0a7f */
+ 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0a80-0x0abf */
+ 0xbe, 0x21, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0ac0-0x0aff */
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, /* 0x0b00-0x0b3f */
+ 0x1e, 0x20, 0x40, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0b40-0x0b7f */
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0b80-0x0bbf */
+ 0x01, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0bc0-0x0bff */
+ /* 0x0c00-0x0dff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, /* 0x0c00-0x0c3f */
+ 0xc1, 0x3d, 0x60, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0c40-0x0c7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0c80-0x0cbf */
+ 0x00, 0x30, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0cc0-0x0cff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d00-0x0d3f */
+ 0x1e, 0x20, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0d40-0x0d7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0d80-0x0dbf */
+ 0x00, 0x04, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0dc0-0x0dff */
+ /* 0x0e00-0x0fff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x07, /* 0x0e00-0x0e3f */
+ 0x80, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0e40-0x0e7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x1b, /* 0x0e80-0x0ebf */
+ 0x00, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0ec0-0x0eff */
+ 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0xa0, 0x02, /* 0x0f00-0x0f3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, /* 0x0f40-0x0f7f */
+ 0xdf, 0xe0, 0xff, 0xfe, 0xff, 0xff, 0xff, 0x1f, /* 0x0f80-0x0fbf */
+ 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0fc0-0x0fff */
+ /* 0x1000-0x11ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xfd, 0x66, /* 0x1000-0x103f */
+ 0x00, 0x00, 0x00, 0xc3, 0x01, 0x00, 0x1e, 0x00, /* 0x1040-0x107f */
+ 0x64, 0x20, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x1080-0x10bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10c0-0x10ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1100-0x113f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1140-0x117f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1180-0x11bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c0-0x11ff */
+ /* 0x1200-0x13ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1200-0x123f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1240-0x127f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1280-0x12bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x12c0-0x12ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1300-0x133f */
+ 0x00, 0x00, 0x00, 0xe0, 0x00, 0x00, 0x00, 0x00, /* 0x1340-0x137f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1380-0x13bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x13c0-0x13ff */
+ /* 0x1600-0x17ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1600-0x163f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1640-0x167f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1680-0x16bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16c0-0x16ff */
+ 0x00, 0x00, 0x1c, 0x00, 0x00, 0x00, 0x1c, 0x00, /* 0x1700-0x173f */
+ 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x0c, 0x00, /* 0x1740-0x177f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x3f, /* 0x1780-0x17bf */
+ 0x40, 0xfe, 0x0f, 0x20, 0x00, 0x00, 0x00, 0x00, /* 0x17c0-0x17ff */
+ /* 0x1800-0x19ff */
+ 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */
+ 0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1980-0x19bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x19c0-0x19ff */
+ /* 0x1a00-0x1bff */
+ 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, /* 0x1a00-0x1a3f */
+ 0x00, 0x00, 0x40, 0x7f, 0xe5, 0x1f, 0xf8, 0x9f, /* 0x1a40-0x1a7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1a80-0x1abf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1ac0-0x1aff */
+ 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x17, /* 0x1b00-0x1b3f */
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x0f, 0x00, /* 0x1b40-0x1b7f */
+ 0x03, 0x00, 0x00, 0x00, 0x3c, 0x03, 0x00, 0x00, /* 0x1b80-0x1bbf */
+ 0x00, 0x00, 0x00, 0x00, 0x40, 0xa3, 0x03, 0x00, /* 0x1bc0-0x1bff */
+ /* 0x1c00-0x1dff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xcf, 0x00, /* 0x1c00-0x1c3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c40-0x1c7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1c80-0x1cbf */
+ 0x00, 0x00, 0xf7, 0xff, 0xfd, 0x21, 0x00, 0x00, /* 0x1cc0-0x1cff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */
+ 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0xf0, /* 0x1dc0-0x1dff */
+ /* 0x2000-0x21ff */
+ 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */
+ 0x00, 0x00, 0x00, 0x00, 0x1f, 0xfc, 0x00, 0x00, /* 0x2040-0x207f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2080-0x20bf */
+ 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, /* 0x20c0-0x20ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2100-0x213f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2140-0x217f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2180-0x21bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x21c0-0x21ff */
+ /* 0x2c00-0x2dff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c00-0x2c3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c40-0x2c7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2c80-0x2cbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, /* 0x2cc0-0x2cff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d00-0x2d3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x2d40-0x2d7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x2d80-0x2dbf */
+ 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, /* 0x2dc0-0x2dff */
+ /* 0x3000-0x31ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x00, 0x00, /* 0x3000-0x303f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3040-0x307f */
+ 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, /* 0x3080-0x30bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30c0-0x30ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3100-0x313f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3140-0x317f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x3180-0x31bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x31c0-0x31ff */
+ /* 0xa600-0xa7ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa600-0xa63f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x07, 0x30, /* 0xa640-0xa67f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa680-0xa6bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, /* 0xa6c0-0xa6ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa700-0xa73f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa740-0xa77f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa780-0xa7bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa7c0-0xa7ff */
+ /* 0xa800-0xa9ff */
+ 0x44, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0xa800-0xa83f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */
+ 0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, /* 0xa8c0-0xa8ff */
+ 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */
+ 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */
+ 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x13, /* 0xa980-0xa9bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa9c0-0xa9ff */
+ /* 0xaa00-0xabff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x66, 0x00, /* 0xaa00-0xaa3f */
+ 0x08, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xaa40-0xaa7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0xc1, /* 0xaa80-0xaabf */
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xaac0-0xaaff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab00-0xab3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab40-0xab7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xab80-0xabbf */
+ 0x00, 0x00, 0x00, 0x00, 0x20, 0x21, 0x00, 0x00, /* 0xabc0-0xabff */
+ /* 0xfa00-0xfbff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa00-0xfa3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa40-0xfa7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfa80-0xfabf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfac0-0xfaff */
+ 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, /* 0xfb00-0xfb3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb40-0xfb7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfb80-0xfbbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfbc0-0xfbff */
+ /* 0xfe00-0xffff */
+ 0xff, 0xff, 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, /* 0xfe00-0xfe3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe40-0xfe7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xfe80-0xfebf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0xfec0-0xfeff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff00-0xff3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff40-0xff7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xff80-0xffbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, /* 0xffc0-0xffff */
+ /* 0x10000-0x101ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10000-0x1003f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10040-0x1007f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10080-0x100bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x100c0-0x100ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10100-0x1013f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10140-0x1017f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10180-0x101bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, /* 0x101c0-0x101ff */
+ /* 0x10a00-0x10bff */
+ 0x6e, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, /* 0x10a00-0x10a3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a40-0x10a7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10a80-0x10abf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10ac0-0x10aff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b00-0x10b3f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b40-0x10b7f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10b80-0x10bbf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10bc0-0x10bff */
+ /* 0x11000-0x111ff */
+ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11000-0x1103f */
+ 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11040-0x1107f */
+ 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x26, /* 0x11080-0x110bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x110c0-0x110ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11100-0x1113f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11140-0x1117f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11180-0x111bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */
+ /* 0x1d000-0x1d1ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d000-0x1d03f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d040-0x1d07f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d080-0x1d0bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d0c0-0x1d0ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d100-0x1d13f */
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0xf8, 0xff, /* 0x1d140-0x1d17f */
+ 0xe7, 0x0f, 0x00, 0x00, 0x00, 0x3c, 0x00, 0x00, /* 0x1d180-0x1d1bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d1c0-0x1d1ff */
+ /* 0x1d200-0x1d3ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d200-0x1d23f */
+ 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d240-0x1d27f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d280-0x1d2bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d2c0-0x1d2ff */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d300-0x1d33f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d340-0x1d37f */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d380-0x1d3bf */
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x1d3c0-0x1d3ff */
+};
+static const signed char nonspacing_table_ind[240] = {
+ 0, 1, 2, 3, 4, 5, 6, 7, /* 0x0000-0x0fff */
+ 8, 9, -1, 10, 11, 12, 13, -1, /* 0x1000-0x1fff */
+ 14, -1, -1, -1, -1, -1, 15, -1, /* 0x2000-0x2fff */
+ 16, -1, -1, -1, -1, -1, -1, -1, /* 0x3000-0x3fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x4000-0x4fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x5000-0x5fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x6000-0x6fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x7000-0x7fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x8000-0x8fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x9000-0x9fff */
+ -1, -1, -1, 17, 18, 19, -1, -1, /* 0xa000-0xafff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xb000-0xbfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xc000-0xcfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xd000-0xdfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */
+ -1, -1, -1, -1, -1, 20, -1, 21, /* 0xf000-0xffff */
+ 22, -1, -1, -1, -1, 23, -1, -1, /* 0x10000-0x10fff */
+ 24, -1, -1, -1, -1, -1, -1, -1, /* 0x11000-0x11fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x16000-0x16fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1b000-0x1bfff */
+ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */
+ 25, 26, -1, -1, -1, -1, -1, -1 /* 0x1d000-0x1dfff */
+};
+
+/* Determine number of column positions required for UC. */
+int
+uc_width (ucs4_t uc, const char *encoding)
+{
+ /* Test for non-spacing or control character. */
+ if ((uc >> 9) < 240)
+ {
+ 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;
+ }
+ }
+ else if ((uc >> 9) == (0xe0000 >> 9))
+ {
+ if (uc >= 0xe0100)
+ {
+ if (uc <= 0xe01ef)
+ return 0;
+ }
+ else
+ {
+ if (uc >= 0xe0020 ? uc <= 0xe007f : uc == 0xe0001)
+ return 0;
+ }
+ }
+ /* Test for double-width character.
+ * Generated from "grep '^[^;]\{4,5\};[WF]' EastAsianWidth.txt"
+ * and "grep '^[^;]\{4,5\};[^WF]' EastAsianWidth.txt"
+ */
+ 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 <= 0x2ffff) /* Supplementary Ideographic Plane */
+ || (uc >= 0x30000 && uc <= 0x3ffff) /* Tertiary Ideographic Plane */
+ ) )
+ return 2;
+ /* In ancient CJK encodings, Cyrillic and most other characters are
+ double-width as well. */
+ if (uc >= 0x00A1 && uc < 0xFF61 && uc != 0x20A9
+ && is_cjk_encoding (encoding))
+ return 2;
+ return 1;
+}
diff --git a/gnu/unlinkdir.c b/gnu/unlinkdir.c
new file mode 100644
index 00000000..06336eba
--- /dev/null
+++ b/gnu/unlinkdir.c
@@ -0,0 +1,56 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* unlinkdir.c - determine whether we can unlink directories
+
+ Copyright (C) 2005-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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, Jim Meyering, and David Bartley. */
+
+#include <config.h>
+
+#include "unlinkdir.h"
+#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. */
+
+bool
+cannot_unlink_dir (void)
+{
+ static bool initialized;
+ static bool cannot;
+
+ if (! initialized)
+ {
+# 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. */
+ cannot = (priv_set_ismember (PRIV_SYS_LINKDIR) == 0);
+# else
+ /* In traditional Unix, only root can unlink directories. */
+ cannot = (geteuid () != 0);
+# endif
+ initialized = true;
+ }
+
+ return cannot;
+}
+
+#endif
diff --git a/gnu/unlinkdir.h b/gnu/unlinkdir.h
new file mode 100644
index 00000000..a1a7275f
--- /dev/null
+++ b/gnu/unlinkdir.h
@@ -0,0 +1,28 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <stdbool.h>
+
+#if UNLINK_CANNOT_UNLINK_DIR
+# define cannot_unlink_dir() true
+#else
+bool cannot_unlink_dir (void);
+#endif
diff --git a/gnu/unlocked-io.h b/gnu/unlocked-io.h
new file mode 100644
index 00000000..771f4b32
--- /dev/null
+++ b/gnu/unlocked-io.h
@@ -0,0 +1,138 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Prefer faster, non-thread-safe stdio functions if available.
+
+ Copyright (C) 2001-2004, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 UNLOCKED_IO_H
+# define UNLOCKED_IO_H 1
+
+/* These are wrappers for functions/macros from the GNU C library, and
+ from other C libraries supporting POSIX's optional thread-safe functions.
+
+ The standard I/O functions are thread-safe. These *_unlocked ones are
+ more efficient but not thread-safe. That they're not thread-safe is
+ fine since all of the applications in this package are single threaded.
+
+ Also, some code that is shared with the GNU C library may invoke
+ the *_unlocked functions directly. On hosts that lack those
+ functions, invoke the non-thread-safe versions instead. */
+
+# include <stdio.h>
+
+# if HAVE_DECL_CLEARERR_UNLOCKED
+# undef clearerr
+# define clearerr(x) clearerr_unlocked (x)
+# else
+# define clearerr_unlocked(x) clearerr (x)
+# endif
+
+# if HAVE_DECL_FEOF_UNLOCKED
+# undef feof
+# define feof(x) feof_unlocked (x)
+# else
+# define feof_unlocked(x) feof (x)
+# endif
+
+# if HAVE_DECL_FERROR_UNLOCKED
+# undef ferror
+# define ferror(x) ferror_unlocked (x)
+# else
+# define ferror_unlocked(x) ferror (x)
+# endif
+
+# if HAVE_DECL_FFLUSH_UNLOCKED
+# undef fflush
+# define fflush(x) fflush_unlocked (x)
+# else
+# define fflush_unlocked(x) fflush (x)
+# endif
+
+# if HAVE_DECL_FGETS_UNLOCKED
+# undef fgets
+# define fgets(x,y,z) fgets_unlocked (x,y,z)
+# else
+# define fgets_unlocked(x,y,z) fgets (x,y,z)
+# endif
+
+# if HAVE_DECL_FPUTC_UNLOCKED
+# undef fputc
+# define fputc(x,y) fputc_unlocked (x,y)
+# else
+# define fputc_unlocked(x,y) fputc (x,y)
+# endif
+
+# if HAVE_DECL_FPUTS_UNLOCKED
+# undef fputs
+# define fputs(x,y) fputs_unlocked (x,y)
+# else
+# define fputs_unlocked(x,y) fputs (x,y)
+# endif
+
+# if HAVE_DECL_FREAD_UNLOCKED
+# undef fread
+# define fread(w,x,y,z) fread_unlocked (w,x,y,z)
+# else
+# define fread_unlocked(w,x,y,z) fread (w,x,y,z)
+# endif
+
+# if HAVE_DECL_FWRITE_UNLOCKED
+# undef fwrite
+# define fwrite(w,x,y,z) fwrite_unlocked (w,x,y,z)
+# else
+# define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z)
+# endif
+
+# if HAVE_DECL_GETC_UNLOCKED
+# undef getc
+# define getc(x) getc_unlocked (x)
+# else
+# define getc_unlocked(x) getc (x)
+# endif
+
+# if HAVE_DECL_GETCHAR_UNLOCKED
+# undef getchar
+# define getchar() getchar_unlocked ()
+# else
+# define getchar_unlocked() getchar ()
+# endif
+
+# if HAVE_DECL_PUTC_UNLOCKED
+# undef putc
+# define putc(x,y) putc_unlocked (x,y)
+# else
+# define putc_unlocked(x,y) putc (x,y)
+# endif
+
+# if HAVE_DECL_PUTCHAR_UNLOCKED
+# undef putchar
+# define putchar(x) putchar_unlocked (x)
+# else
+# define putchar_unlocked(x) putchar (x)
+# endif
+
+# undef flockfile
+# define flockfile(x) ((void) 0)
+
+# undef ftrylockfile
+# define ftrylockfile(x) 0
+
+# undef funlockfile
+# define funlockfile(x) ((void) 0)
+
+#endif /* UNLOCKED_IO_H */
diff --git a/gnu/unsetenv.c b/gnu/unsetenv.c
new file mode 100644
index 00000000..d27a4d59
--- /dev/null
+++ b/gnu/unsetenv.c
@@ -0,0 +1,129 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Copyright (C) 1992, 1995-2002, 2005-2012 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>
+
+/* 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>
+
+#include <errno.h>
+#if !_LIBC
+# define __set_errno(ev) ((errno) = (ev))
+#endif
+
+#include <string.h>
+#include <unistd.h>
+
+#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 unsetenv __unsetenv
+#endif
+
+#if _LIBC || !HAVE_UNSETENV
+
+int
+unsetenv (const char *name)
+{
+ size_t len;
+ char **ep;
+
+ if (name == NULL || *name == '\0' || strchr (name, '=') != NULL)
+ {
+ __set_errno (EINVAL);
+ return -1;
+ }
+
+ len = strlen (name);
+
+ LOCK;
+
+ ep = __environ;
+ while (*ep != NULL)
+ if (!strncmp (*ep, name, len) && (*ep)[len] == '=')
+ {
+ /* 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. */
+ }
+ else
+ ++ep;
+
+ UNLOCK;
+
+ return 0;
+}
+
+#ifdef _LIBC
+# undef unsetenv
+weak_alias (__unsetenv, unsetenv)
+#endif
+
+#else /* HAVE_UNSETENV */
+
+# undef unsetenv
+# if !HAVE_DECL_UNSETENV
+# if VOID_UNSETENV
+extern void unsetenv (const char *);
+# else
+extern int unsetenv (const char *);
+# endif
+# endif
+
+/* 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 00000000..a8387459
--- /dev/null
+++ b/gnu/utimens.c
@@ -0,0 +1,535 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Set file access and modification times.
+
+ Copyright (C) 2003-2012 Free Software Foundation, Inc.
+
+ This 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 (&timespec[0]);
+
+ if (timespec[1].tv_nsec == UTIME_OMIT)
+ timespec[1] = get_stat_mtime (statbuf);
+ else if (timespec[1].tv_nsec == UTIME_NOW)
+ gettime (&timespec[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 (int fd, 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;
+
+ /* Require that at least one of FD or FILE are potentially valid, to avoid
+ a Linux bug where futimens (AT_FDCWD, NULL) changes "." rather
+ than failing. */
+ if (fd < 0 && !file)
+ {
+ errno = EBADF;
+ 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 *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) || HAVE_FUTIMES
+# if HAVE_FUTIMESAT && !FUTIMESAT_NULL_BUG
+# undef futimes
+# define futimes(fd, t) futimesat (fd, NULL, t)
+# endif
+ if (futimes (fd, t) == 0)
+ {
+# if __linux__ && __GLIBC__
+ /* Work around a longstanding glibc bug, still present as
+ of 2010-12-27. On older Linux kernels that lack both
+ utimensat and utimes, glibc's futimes rounds instead of
+ truncating when falling back on utime. The same bug
+ occurs in futimesat with a null 2nd arg. */
+ if (t)
+ {
+ bool abig = 500000 <= t[0].tv_usec;
+ bool mbig = 500000 <= t[1].tv_usec;
+ if ((abig | mbig) && fstat (fd, &st) == 0)
+ {
+ /* If these two subtractions overflow, they'll
+ track the overflows inside the buggy glibc. */
+ time_t adiff = st.st_atime - t[0].tv_sec;
+ time_t mdiff = st.st_mtime - t[1].tv_sec;
+
+ struct timeval *tt = NULL;
+ struct timeval truncated_timeval[2];
+ truncated_timeval[0] = t[0];
+ truncated_timeval[1] = t[1];
+ if (abig && adiff == 1 && get_stat_atime_ns (&st) == 0)
+ {
+ tt = truncated_timeval;
+ tt[0].tv_usec = 0;
+ }
+ if (mbig && mdiff == 1 && get_stat_mtime_ns (&st) == 0)
+ {
+ tt = truncated_timeval;
+ tt[1].tv_usec = 0;
+ }
+ if (tt)
+ futimes (fd, tt);
+ }
+ }
+# endif
+
+ 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 FILE to be
+ TIMESPEC[0] and TIMESPEC[1], respectively. */
+int
+utimens (char const *file, struct timespec const timespec[2])
+{
+ return fdutimens (-1, file, 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
+ fdutimens' 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 *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 (-1, file, ts);
+ errno = ENOSYS;
+ return -1;
+}
diff --git a/gnu/utimens.h b/gnu/utimens.h
new file mode 100644
index 00000000..7690e74d
--- /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 (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 fd, int dir, char const *name, struct timespec const [2],
+ int atflag);
+
+/* Using this function makes application code slightly more readable. */
+static inline int
+lutimensat (int dir, char const *file, struct timespec const times[2])
+{
+ return utimensat (dir, file, times, AT_SYMLINK_NOFOLLOW);
+}
+#endif
diff --git a/gnu/utimensat.c b/gnu/utimensat.c
new file mode 100644
index 00000000..fcfc015f
--- /dev/null
+++ b/gnu/utimensat.c
@@ -0,0 +1,156 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Set the access and modification time of a file relative to directory fd.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
+
+ This 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 <sys/stat.h>
+
+#include <errno.h>
+#include <fcntl.h>
+
+#include "stat-time.h"
+#include "timespec.h"
+#include "utimens.h"
+
+#if HAVE_UTIMENSAT
+
+# undef utimensat
+
+/* If we have a native utimensat, but are compiling this file, then
+ utimensat was defined to rpl_utimensat by our replacement
+ sys/stat.h. We assume the native version might fail with ENOSYS,
+ or succeed without properly affecting ctime (as is the case when
+ using newer glibc but older Linux kernel). In this scenario,
+ rpl_utimensat checks whether the native version is usable, and
+ local_utimensat provides the fallback manipulation. */
+
+static int local_utimensat (int, char const *, struct timespec const[2], int);
+# define AT_FUNC_NAME local_utimensat
+
+/* Like utimensat, but work around native bugs. */
+
+int
+rpl_utimensat (int fd, char const *file, struct timespec const times[2],
+ int flag)
+{
+# ifdef __linux__
+ struct timespec ts[2];
+# endif
+
+ /* See comments in utimens.c for details. */
+ static int utimensat_works_really; /* 0 = unknown, 1 = yes, -1 = no. */
+ if (0 <= utimensat_works_really)
+ {
+ int result;
+# ifdef __linux__
+ struct stat st;
+ /* 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 [l]stat 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 (times && (times[0].tv_nsec == UTIME_OMIT
+ || times[1].tv_nsec == UTIME_OMIT))
+ {
+ if (fstatat (fd, file, &st, flag))
+ return -1;
+ if (times[0].tv_nsec == UTIME_OMIT && times[1].tv_nsec == UTIME_OMIT)
+ return 0;
+ if (times[0].tv_nsec == UTIME_OMIT)
+ ts[0] = get_stat_atime (&st);
+ else
+ ts[0] = times[0];
+ if (times[1].tv_nsec == UTIME_OMIT)
+ ts[1] = get_stat_mtime (&st);
+ else
+ ts[1] = times[1];
+ times = ts;
+ }
+# ifdef __hppa__
+ /* Linux kernel 2.6.22.19 on hppa does not reject invalid tv_nsec
+ values. */
+ else if (times
+ && ((times[0].tv_nsec != UTIME_NOW
+ && (times[0].tv_nsec < 0
+ || times[0].tv_nsec >= 1000000000))
+ || (times[1].tv_nsec != UTIME_NOW
+ && (times[1].tv_nsec < 0
+ || times[1].tv_nsec >= 1000000000))))
+ {
+ errno = EINVAL;
+ return -1;
+ }
+# endif
+# endif /* __linux__ */
+ result = utimensat (fd, file, times, flag);
+ /* Linux kernel 2.6.25 has a bug where it returns EINVAL for
+ UTIME_NOW or UTIME_OMIT with non-zero tv_sec, which
+ local_utimensat works around. Meanwhile, EINVAL for a bad
+ flag is indeterminate whether the native utimensat works, but
+ local_utimensat will also reject it. */
+ if (result == -1 && errno == EINVAL && (flag & ~AT_SYMLINK_NOFOLLOW))
+ return result;
+ if (result == 0 || (errno != ENOSYS && errno != EINVAL))
+ {
+ utimensat_works_really = 1;
+ return result;
+ }
+ }
+ /* No point in trying openat/futimens, since on Linux, futimens is
+ implemented with the same syscall as utimensat. Only avoid the
+ native utimensat due to an ENOSYS failure; an EINVAL error was
+ data-dependent, and the next caller may pass valid data. */
+ if (0 <= utimensat_works_really && errno == ENOSYS)
+ utimensat_works_really = -1;
+ return local_utimensat (fd, file, times, flag);
+}
+
+#else /* !HAVE_UTIMENSAT */
+
+# define AT_FUNC_NAME utimensat
+
+#endif /* !HAVE_UTIMENSAT */
+
+/* Set the access and modification time stamps of FILE to be
+ TIMESPEC[0] and TIMESPEC[1], respectively; relative to directory
+ FD. If flag is AT_SYMLINK_NOFOLLOW, change the times of a symlink,
+ or fail with ENOSYS if not possible. If TIMESPEC is null, set the
+ time stamps to the current time. If possible, do it without
+ changing the working directory. Otherwise, resort to using
+ save_cwd/fchdir, then utimens/restore_cwd. If either the save_cwd
+ or the restore_cwd fails, then give a diagnostic and exit nonzero.
+ Return 0 on success, -1 (setting errno) on failure. */
+
+/* AT_FUNC_NAME is now utimensat or local_utimensat. */
+#define AT_FUNC_F1 lutimens
+#define AT_FUNC_F2 utimens
+#define AT_FUNC_USE_F1_COND AT_SYMLINK_NOFOLLOW
+#define AT_FUNC_POST_FILE_PARAM_DECLS , struct timespec const ts[2], int flag
+#define AT_FUNC_POST_FILE_ARGS , ts
+#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/gnu/vasnprintf.c b/gnu/vasnprintf.c
new file mode 100644
index 00000000..362df660
--- /dev/null
+++ b/gnu/vasnprintf.c
@@ -0,0 +1,5609 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* vsprintf with automatic memory allocation.
+ Copyright (C) 1999, 2002-2012 Free Software Foundation, Inc.
+
+ This 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"
+
+#include "verify.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 function _snwprintf() or - on mingw - snwprintf()
+ instead. The mingw function snwprintf() has fewer bugs than the
+ MSVCRT function _snwprintf(), so prefer that. */
+# if defined __MINGW32__
+# define SNPRINTF snwprintf
+# else
+# define SNPRINTF _snwprintf
+# endif
+# 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. The mingw function snprintf() has fewer bugs than the MSVCRT
+ function _snprintf(), so prefer that. */
+# if defined __MINGW32__
+# define SNPRINTF snprintf
+ /* Here we need to call the native snprintf, not rpl_snprintf. */
+# undef snprintf
+# else
+# define SNPRINTF _snprintf
+# endif
+# 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 || !HAVE_SNPRINTF_RETVAL_C99) && !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 || !HAVE_SNPRINTF_RETVAL_C99) && WIDE_CHAR_VERSION) || ((!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || (NEED_PRINTF_DIRECTIVE_LS && !defined IN_LIBINTL)) && !WIDE_CHAR_VERSION && DCHAR_IS_TCHAR)) && 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
+
+#if (!USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99) && 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 __UCLIBC__ || (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
+verify (sizeof (mp_limb_t) * CHAR_BIT == GMP_LIMB_BITS);
+
+typedef unsigned long long mp_twolimb_t;
+# define GMP_TWOLIMB_BITS 64
+verify (sizeof (mp_twolimb_t) * CHAR_BIT == GMP_TWOLIMB_BITS);
+
+/* 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 */
+ /* Determine s = GMP_LIMB_BITS - integer_length (msd).
+ Code copied from gnulib's integer_length.c. */
+# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)
+ s = __builtin_clz (msd);
+# else
+# if defined DBL_EXPBIT0_WORD && defined DBL_EXPBIT0_BIT
+ if (GMP_LIMB_BITS <= DBL_MANT_BIT)
+ {
+ /* Use 'double' operations.
+ Assumes an IEEE 754 'double' implementation. */
+# define DBL_EXP_MASK ((DBL_MAX_EXP - DBL_MIN_EXP) | 7)
+# define DBL_EXP_BIAS (DBL_EXP_MASK / 2 - 1)
+# define NWORDS \
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+ union { double value; unsigned int word[NWORDS]; } m;
+
+ /* Use a single integer to floating-point conversion. */
+ m.value = msd;
+
+ s = GMP_LIMB_BITS
+ - (((m.word[DBL_EXPBIT0_WORD] >> DBL_EXPBIT0_BIT) & DBL_EXP_MASK)
+ - DBL_EXP_BIAS);
+ }
+ else
+# undef NWORDS
+# endif
+ {
+ 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;
+ }
+ }
+# endif
+ }
+ /* 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 * 2^LDBL_MANT_BIT), and the
+ latter is an integer. */
+ /* Convert the mantissa (y * 2^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 * 2^DBL_MANT_BIT), and the
+ latter is an integer. */
+ /* Convert the mantissa (y * 2^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
+
+#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99
+
+/* Use a different function name, to make it possible that the 'wchar_t'
+ parametrization and the 'char' parametrization get compiled in the same
+ translation unit. */
+# if WIDE_CHAR_VERSION
+# define MAX_ROOM_NEEDED wmax_room_needed
+# else
+# define MAX_ROOM_NEEDED max_room_needed
+# endif
+
+/* Returns the number of TCHAR_T units needed as temporary space for the result
+ of sprintf or SNPRINTF of a single conversion directive. */
+static inline size_t
+MAX_ROOM_NEEDED (const arguments *ap, size_t arg_index, FCHAR_T conversion,
+ arg_type type, int flags, size_t width, int has_precision,
+ size_t precision, int pad_ourselves)
+{
+ size_t tmp_length;
+
+ switch (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 = ap->arg[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 separately in VASNPRINTF. */
+ 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 separately in VASNPRINTF. */
+ 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 = ap->arg[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 */
+
+ return tmp_length;
+}
+
+#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() \
+ if (d.dir != d.direct_alloc_dir) \
+ free (d.dir); \
+ if (a.arg != a.direct_alloc_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 || !HAVE_SNPRINTF_RETVAL_C99 || (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'. */
+ verify (sizeof (TCHAR_T) == 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)
+ {
+ /* Cannot convert. */
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno = EILSEQ;
+ return NULL;
+ }
+ 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 || !HAVE_SNPRINTF_RETVAL_C99 || !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 || !HAVE_SNPRINTF_RETVAL_C99 || 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 });
+ int orig_errno;
+#if !USE_SNPRINTF
+ size_t tmp_length;
+ TCHAR_T tmpbuf[700];
+ TCHAR_T *tmp;
+#endif
+
+#if !USE_SNPRINTF || !HAVE_SNPRINTF_RETVAL_C99 || !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 || !HAVE_SNPRINTF_RETVAL_C99 || 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. */
+ tmp_length =
+ MAX_ROOM_NEEDED (&a, dp->arg_index, dp->conversion, type,
+ flags, width, has_precision, precision,
+ pad_ourselves);
+
+ 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 __GLIBC__ >= 2 && !defined __UCLIBC__
+ if (flags & FLAG_LOCALIZED)
+ *fbp++ = 'I';
+#endif
+ 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 __UCLIBC__) || ((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 return value conforms to
+ ISO C 99: the tests gl_SNPRINTF_RETVAL_C99 and
+ gl_SNPRINTF_TRUNCATION_C99 pass.
+ Therefore we can avoid using %n in this situation.
+ 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 Windows 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 Windows 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
+
+ orig_errno = errno;
+
+ 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
+
+ errno = 0;
+ 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)
+ {
+# if !HAVE_SNPRINTF_RETVAL_C99
+ /* 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.
+ But a failure at this point can also come
+ from other reasons than a too small buffer,
+ such as an invalid wide string argument to
+ the %ls directive, or possibly an invalid
+ floating-point argument. */
+ size_t tmp_length =
+ MAX_ROOM_NEEDED (&a, dp->arg_index,
+ dp->conversion, type, flags,
+ width, has_precision,
+ precision, pad_ourselves);
+
+ if (maxlen < tmp_length)
+ {
+ /* Make more room. But try to do through
+ this reallocation only once. */
+ size_t bigger_need =
+ xsum (length,
+ xsum (tmp_length,
+ TCHARS_PER_DCHAR - 1)
+ / TCHARS_PER_DCHAR);
+ /* And always grow proportionally.
+ (There may be several arguments, each
+ needing a little more room than the
+ previous one.) */
+ size_t bigger_need2 =
+ xsum (xtimes (allocated, 2), 12);
+ if (bigger_need < bigger_need2)
+ bigger_need = bigger_need2;
+ ENSURE_ALLOCATION (bigger_need);
+ continue;
+ }
+# endif
+ }
+ else
+ count = retcount;
+ }
+ }
+#endif
+
+ /* Attempt to handle failure. */
+ if (count < 0)
+ {
+ /* SNPRINTF or sprintf failed. Save and use the errno
+ that it has set, if any. */
+ int saved_errno = errno;
+
+ if (!(result == resultbuf || result == NULL))
+ free (result);
+ if (buf_malloced != NULL)
+ free (buf_malloced);
+ CLEANUP ();
+ errno =
+ (saved_errno != 0
+ ? saved_errno
+ : (dp->conversion == 'c' || dp->conversion == 's'
+ ? EILSEQ
+ : 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'. */
+ verify (sizeof (TCHAR_T) == 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;
+ }
+ errno = orig_errno;
+#undef pad_ourselves
+#undef prec_ourselves
+ }
+ }
+ }
+
+ /* 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 MAX_ROOM_NEEDED
+#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/gnu/vasnprintf.h b/gnu/vasnprintf.h
new file mode 100644
index 00000000..7cfe451f
--- /dev/null
+++ b/gnu/vasnprintf.h
@@ -0,0 +1,82 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* vsprintf with automatic memory allocation.
+ Copyright (C) 2002-2004, 2007-2012 Free Software Foundation, Inc.
+
+ This 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 _VASNPRINTF_H
+#define _VASNPRINTF_H
+
+/* Get va_list. */
+#include <stdarg.h>
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* 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 _GL_ATTRIBUTE_FORMAT 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 _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+#else
+# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Write formatted output to a string dynamically allocated with malloc().
+ You can pass a preallocated buffer for the result in RESULTBUF and its
+ size in *LENGTHP; otherwise you pass RESULTBUF = NULL.
+ If successful, return the address of the string (this may be = RESULTBUF
+ if no dynamic memory allocation was necessary) and set *LENGTHP to the
+ number of resulting bytes, excluding the trailing NUL. Upon error, set
+ errno and return NULL.
+
+ When dynamic memory allocation occurs, the preallocated buffer is left
+ alone (with possibly modified contents). This makes it possible to use
+ a statically allocated or stack-allocated buffer, like this:
+
+ char buf[100];
+ size_t len = sizeof (buf);
+ char *output = vasnprintf (buf, &len, format, args);
+ if (output == NULL)
+ ... error handling ...;
+ else
+ {
+ ... use the output string ...;
+ if (output != buf)
+ free (output);
+ }
+ */
+#if REPLACE_VASNPRINTF
+# define asnprintf rpl_asnprintf
+# define vasnprintf rpl_vasnprintf
+#endif
+extern char * asnprintf (char *resultbuf, size_t *lengthp, const char *format, ...)
+ _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 4));
+extern char * vasnprintf (char *resultbuf, size_t *lengthp, const char *format, va_list args)
+ _GL_ATTRIBUTE_FORMAT ((__printf__, 3, 0));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VASNPRINTF_H */
diff --git a/gnu/vasprintf.c b/gnu/vasprintf.c
new file mode 100644
index 00000000..b5d11b4d
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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/gnu/verify.h b/gnu/verify.h
new file mode 100644
index 00000000..0f361cf8
--- /dev/null
+++ b/gnu/verify.h
@@ -0,0 +1,243 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Compile-time assert-like macros.
+
+ Copyright (C) 2005-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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, Bruno Haible, and Jim Meyering. */
+
+#ifndef _GL_VERIFY_H
+# define _GL_VERIFY_H
+
+
+/* Define _GL_HAVE__STATIC_ASSERT to 1 if _Static_assert works as per C11.
+ This is supported by GCC 4.6.0 and later, in C mode, and its use
+ here generates easier-to-read diagnostics when verify (R) fails.
+
+ Define _GL_HAVE_STATIC_ASSERT to 1 if static_assert works as per C++11.
+ This will likely be supported by future GCC versions, in C++ mode.
+
+ Use this only with GCC. If we were willing to slow 'configure'
+ down we could also use it with other compilers, but since this
+ affects only the quality of diagnostics, why bother? */
+# if (4 < __GNUC__ || (__GNUC__ == 4 && 6 <= __GNUC_MINOR__)) && !defined __cplusplus
+# define _GL_HAVE__STATIC_ASSERT 1
+# endif
+/* The condition (99 < __GNUC__) is temporary, until we know about the
+ first G++ release that supports static_assert. */
+# if (99 < __GNUC__) && defined __cplusplus
+# define _GL_HAVE_STATIC_ASSERT 1
+# endif
+
+/* Each of these macros verifies that its argument R is nonzero. To
+ be portable, R should be an integer constant expression. Unlike
+ assert (R), there is no run-time overhead.
+
+ If _Static_assert works, verify (R) uses it directly. Similarly,
+ _GL_VERIFY_TRUE works by packaging a _Static_assert inside a struct
+ that is an operand of sizeof.
+
+ The code below uses several ideas for C++ compilers, and for C
+ compilers that do not support _Static_assert:
+
+ * The first step is ((R) ? 1 : -1). Given an expression R, of
+ integral or boolean or floating-point type, this yields an
+ expression of integral type, whose value is later verified to be
+ constant and nonnegative.
+
+ * Next this expression W is wrapped in a type
+ struct _gl_verify_type {
+ unsigned int _gl_verify_error_if_negative: W;
+ }.
+ If W is negative, this yields a compile-time error. No compiler can
+ deal with a bit-field of negative size.
+
+ One might think that an array size check would have the same
+ effect, that is, that the type struct { unsigned int dummy[W]; }
+ would work as well. However, inside a function, some compilers
+ (such as C++ compilers and GNU C) allow local parameters and
+ variables inside array size expressions. With these compilers,
+ an array size check would not properly diagnose this misuse of
+ the verify macro:
+
+ void function (int n) { verify (n < 0); }
+
+ * For the verify macro, the struct _gl_verify_type will need to
+ somehow be embedded into a declaration. To be portable, this
+ declaration must declare an object, a constant, a function, or a
+ typedef name. If the declared entity uses the type directly,
+ such as in
+
+ struct dummy {...};
+ typedef struct {...} dummy;
+ extern struct {...} *dummy;
+ extern void dummy (struct {...} *);
+ extern struct {...} *dummy (void);
+
+ two uses of the verify macro would yield colliding declarations
+ if the entity names are not disambiguated. A workaround is to
+ attach the current line number to the entity name:
+
+ #define _GL_CONCAT0(x, y) x##y
+ #define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y)
+ extern struct {...} * _GL_CONCAT (dummy, __LINE__);
+
+ But this has the problem that two invocations of verify from
+ within the same macro would collide, since the __LINE__ value
+ would be the same for both invocations. (The GCC __COUNTER__
+ macro solves this problem, but is not portable.)
+
+ A solution is to use the sizeof operator. It yields a number,
+ getting rid of the identity of the type. Declarations like
+
+ extern int dummy [sizeof (struct {...})];
+ extern void dummy (int [sizeof (struct {...})]);
+ extern int (*dummy (void)) [sizeof (struct {...})];
+
+ can be repeated.
+
+ * Should the implementation use a named struct or an unnamed struct?
+ Which of the following alternatives can be used?
+
+ extern int dummy [sizeof (struct {...})];
+ extern int dummy [sizeof (struct _gl_verify_type {...})];
+ extern void dummy (int [sizeof (struct {...})]);
+ extern void dummy (int [sizeof (struct _gl_verify_type {...})]);
+ extern int (*dummy (void)) [sizeof (struct {...})];
+ extern int (*dummy (void)) [sizeof (struct _gl_verify_type {...})];
+
+ In the second and sixth case, the struct type is exported to the
+ outer scope; two such declarations therefore collide. GCC warns
+ about the first, third, and fourth cases. So the only remaining
+ possibility is the fifth case:
+
+ extern int (*dummy (void)) [sizeof (struct {...})];
+
+ * GCC warns about duplicate declarations of the dummy function if
+ -Wredundant_decls is used. GCC 4.3 and later have a builtin
+ __COUNTER__ macro that can let us generate unique identifiers for
+ each dummy function, to suppress this warning.
+
+ * This implementation exploits the fact that older versions of GCC,
+ which do not support _Static_assert, also do not warn about the
+ last declaration mentioned above.
+
+ * In C++, any struct definition inside sizeof is invalid.
+ Use a template type to work around the problem. */
+
+/* Concatenate two preprocessor tokens. */
+# define _GL_CONCAT(x, y) _GL_CONCAT0 (x, y)
+# define _GL_CONCAT0(x, y) x##y
+
+/* _GL_COUNTER is an integer, preferably one that changes each time we
+ use it. Use __COUNTER__ if it works, falling back on __LINE__
+ otherwise. __LINE__ isn't perfect, but it's better than a
+ constant. */
+# if defined __COUNTER__ && __COUNTER__ != __COUNTER__
+# define _GL_COUNTER __COUNTER__
+# else
+# define _GL_COUNTER __LINE__
+# endif
+
+/* Generate a symbol with the given prefix, making it unique if
+ possible. */
+# define _GL_GENSYM(prefix) _GL_CONCAT (prefix, _GL_COUNTER)
+
+/* Verify requirement R at compile-time, as an integer constant expression
+ that returns 1. If R is false, fail at compile-time, preferably
+ with a diagnostic that includes the string-literal DIAGNOSTIC. */
+
+# define _GL_VERIFY_TRUE(R, DIAGNOSTIC) \
+ (!!sizeof (_GL_VERIFY_TYPE (R, DIAGNOSTIC)))
+
+# ifdef __cplusplus
+# if !GNULIB_defined_struct__gl_verify_type
+template <int w>
+ struct _gl_verify_type {
+ unsigned int _gl_verify_error_if_negative: w;
+ };
+# define GNULIB_defined_struct__gl_verify_type 1
+# endif
+# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
+ _gl_verify_type<(R) ? 1 : -1>
+# elif defined _GL_HAVE__STATIC_ASSERT
+# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
+ struct { \
+ _Static_assert (R, DIAGNOSTIC); \
+ int _gl_dummy; \
+ }
+# else
+# define _GL_VERIFY_TYPE(R, DIAGNOSTIC) \
+ struct { unsigned int _gl_verify_error_if_negative: (R) ? 1 : -1; }
+# endif
+
+/* Verify requirement R at compile-time, as a declaration without a
+ trailing ';'. If R is false, fail at compile-time, preferably
+ with a diagnostic that includes the string-literal DIAGNOSTIC.
+
+ Unfortunately, unlike C11, this implementation must appear as an
+ ordinary declaration, and cannot appear inside struct { ... }. */
+
+# ifdef _GL_HAVE__STATIC_ASSERT
+# define _GL_VERIFY _Static_assert
+# else
+# define _GL_VERIFY(R, DIAGNOSTIC) \
+ extern int (*_GL_GENSYM (_gl_verify_function) (void)) \
+ [_GL_VERIFY_TRUE (R, DIAGNOSTIC)]
+# endif
+
+/* _GL_STATIC_ASSERT_H is defined if this code is copied into assert.h. */
+# ifdef _GL_STATIC_ASSERT_H
+# if !defined _GL_HAVE__STATIC_ASSERT && !defined _Static_assert
+# define _Static_assert(R, DIAGNOSTIC) _GL_VERIFY (R, DIAGNOSTIC)
+# endif
+# if !defined _GL_HAVE_STATIC_ASSERT && !defined static_assert
+# define static_assert _Static_assert /* C11 requires this #define. */
+# endif
+# endif
+
+/* @assert.h omit start@ */
+
+/* Each of these macros verifies that its argument R is nonzero. To
+ be portable, R should be an integer constant expression. Unlike
+ assert (R), there is no run-time overhead.
+
+ There are two macros, since no single macro can be used in all
+ contexts in C. verify_true (R) is for scalar contexts, including
+ integer constant expression contexts. verify (R) is for declaration
+ contexts, e.g., the top level. */
+
+/* Verify requirement R at compile-time, as an integer constant expression.
+ Return 1. This is equivalent to verify_expr (R, 1).
+
+ verify_true is obsolescent; please use verify_expr instead. */
+
+# define verify_true(R) _GL_VERIFY_TRUE (R, "verify_true (" #R ")")
+
+/* Verify requirement R at compile-time. Return the value of the
+ expression E. */
+
+# define verify_expr(R, E) \
+ (_GL_VERIFY_TRUE (R, "verify_expr (" #R ", " #E ")") ? (E) : (E))
+
+/* Verify requirement R at compile-time, as a declaration without a
+ trailing ';'. */
+
+# define verify(R) _GL_VERIFY (R, "verify (" #R ")")
+
+/* @assert.h omit end@ */
+
+#endif
diff --git a/gnu/version-etc-fsf.c b/gnu/version-etc-fsf.c
new file mode 100644
index 00000000..60275847
--- /dev/null
+++ b/gnu/version-etc-fsf.c
@@ -0,0 +1,32 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Variable with FSF copyright information, for version-etc.
+ Copyright (C) 1999-2006, 2009-2012 Free Software Foundation, Inc.
+
+ This 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"
+
+/* Default copyright goes to the FSF. */
+
+const char version_etc_copyright[] =
+ /* Do *not* mark this string for translation. %s is a copyright
+ symbol suitable for this locale, and %d is the copyright
+ year. */
+ "Copyright %s %d Free Software Foundation, Inc.";
diff --git a/gnu/version-etc.c b/gnu/version-etc.c
new file mode 100644
index 00000000..7213088e
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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 = 2012 };
+
+/* 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 00000000..ba63518b
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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 _GL_ATTRIBUTE_SENTINEL
+# if 4 <= __GNUC__
+# define _GL_ATTRIBUTE_SENTINEL __attribute__ ((__sentinel__))
+# else
+# define _GL_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 */ ...)
+ _GL_ATTRIBUTE_SENTINEL;
+
+/* Display the usual "Report bugs to" stanza. */
+extern void emit_bug_reporting_address (void);
+
+#endif /* VERSION_ETC_H */
diff --git a/gnu/vsnprintf.c b/gnu/vsnprintf.c
new file mode 100644
index 00000000..c41c5984
--- /dev/null
+++ b/gnu/vsnprintf.c
@@ -0,0 +1,73 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Formatted output to strings.
+ Copyright (C) 2004, 2006-2012 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
+ 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. */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+/* Specification. */
+#include <stdio.h>
+
+#include <errno.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "vasnprintf.h"
+
+/* Print formatted output to string STR. Similar to vsprintf, but
+ additional length SIZE limit how much is written into STR. Returns
+ string length of formatted string (which may be larger than SIZE).
+ STR may be NULL, in which case nothing will be written. On error,
+ return a negative value. */
+int
+vsnprintf (char *str, size_t size, const char *format, va_list args)
+{
+ char *output;
+ size_t len;
+ size_t lenbuf = size;
+
+ output = vasnprintf (str, &lenbuf, format, args);
+ len = lenbuf;
+
+ if (!output)
+ return -1;
+
+ if (output != str)
+ {
+ if (size)
+ {
+ size_t pruned_len = (len < size ? len : size - 1);
+ memcpy (str, output, pruned_len);
+ str[pruned_len] = '\0';
+ }
+
+ free (output);
+ }
+
+ if (len > INT_MAX)
+ {
+ errno = EOVERFLOW;
+ return -1;
+ }
+
+ return len;
+}
diff --git a/gnu/wchar.in.h b/gnu/wchar.in.h
new file mode 100644
index 00000000..f81595f8
--- /dev/null
+++ b/gnu/wchar.in.h
@@ -0,0 +1,1008 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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
+@PRAGMA_COLUMNS@
+
+#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 _@GUARD_PREFIX@_WCHAR_H
+
+#define _GL_ALREADY_INCLUDING_WCHAR_H
+
+#if @HAVE_FEATURES_H@
+# include <features.h> /* for __GLIBC__ */
+#endif
+
+/* 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>.
+ In some builds of uClibc, <wchar.h> is nonexistent and wchar_t is defined
+ by <stddef.h>.
+ But avoid namespace pollution on glibc systems. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+#endif
+#ifndef __GLIBC__
+# 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 _@GUARD_PREFIX@_WCHAR_H
+#define _@GUARD_PREFIX@_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 and WEOF. (Also done in wctype.in.h.) */
+#if !@HAVE_WINT_T@ && !defined wint_t
+# define wint_t int
+# ifndef WEOF
+# define WEOF -1
+# endif
+#else
+/* MSVC defines wint_t as 'unsigned short' in <crtdefs.h>.
+ This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be
+ "unchanged by default argument promotions". Override it. */
+# if defined _MSC_VER
+# if !GNULIB_defined_wint_t
+# include <crtdefs.h>
+typedef unsigned int rpl_wint_t;
+# undef wint_t
+# define wint_t rpl_wint_t
+# define GNULIB_defined_wint_t 1
+# endif
+# endif
+# ifndef WEOF
+# define WEOF ((wint_t) -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@
+# if !GNULIB_defined_mbstate_t
+typedef int rpl_mbstate_t;
+# undef mbstate_t
+# define mbstate_t rpl_mbstate_t
+# define GNULIB_defined_mbstate_t 1
+# endif
+#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 !@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
+
+
+/* Search N wide characters of S for C. */
+#if @GNULIB_WMEMCHR@
+# if !@HAVE_WMEMCHR@
+_GL_FUNCDECL_SYS (wmemchr, wchar_t *, (const wchar_t *s, wchar_t c, size_t n));
+# endif
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C++" {
+ const wchar_t * std::wmemchr (const wchar_t *, wchar_t, size_t);
+ wchar_t * std::wmemchr (wchar_t *, wchar_t, size_t);
+ } */
+_GL_CXXALIAS_SYS_CAST2 (wmemchr,
+ wchar_t *, (const wchar_t *, wchar_t, size_t),
+ const wchar_t *, (const wchar_t *, wchar_t, size_t));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wmemchr, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
+_GL_CXXALIASWARN1 (wmemchr, const wchar_t *,
+ (const wchar_t *s, wchar_t c, size_t n));
+# else
+_GL_CXXALIASWARN (wmemchr);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wmemchr
+# if HAVE_RAW_DECL_WMEMCHR
+_GL_WARN_ON_USE (wmemchr, "wmemchr is unportable - "
+ "use gnulib module wmemchr for portability");
+# endif
+#endif
+
+
+/* Compare N wide characters of S1 and S2. */
+#if @GNULIB_WMEMCMP@
+# if !@HAVE_WMEMCMP@
+_GL_FUNCDECL_SYS (wmemcmp, int,
+ (const wchar_t *s1, const wchar_t *s2, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wmemcmp, int,
+ (const wchar_t *s1, const wchar_t *s2, size_t n));
+_GL_CXXALIASWARN (wmemcmp);
+#elif defined GNULIB_POSIXCHECK
+# undef wmemcmp
+# if HAVE_RAW_DECL_WMEMCMP
+_GL_WARN_ON_USE (wmemcmp, "wmemcmp is unportable - "
+ "use gnulib module wmemcmp for portability");
+# endif
+#endif
+
+
+/* Copy N wide characters of SRC to DEST. */
+#if @GNULIB_WMEMCPY@
+# if !@HAVE_WMEMCPY@
+_GL_FUNCDECL_SYS (wmemcpy, wchar_t *,
+ (wchar_t *dest, const wchar_t *src, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wmemcpy, wchar_t *,
+ (wchar_t *dest, const wchar_t *src, size_t n));
+_GL_CXXALIASWARN (wmemcpy);
+#elif defined GNULIB_POSIXCHECK
+# undef wmemcpy
+# if HAVE_RAW_DECL_WMEMCPY
+_GL_WARN_ON_USE (wmemcpy, "wmemcpy is unportable - "
+ "use gnulib module wmemcpy for portability");
+# endif
+#endif
+
+
+/* Copy N wide characters of SRC to DEST, guaranteeing correct behavior for
+ overlapping memory areas. */
+#if @GNULIB_WMEMMOVE@
+# if !@HAVE_WMEMMOVE@
+_GL_FUNCDECL_SYS (wmemmove, wchar_t *,
+ (wchar_t *dest, const wchar_t *src, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wmemmove, wchar_t *,
+ (wchar_t *dest, const wchar_t *src, size_t n));
+_GL_CXXALIASWARN (wmemmove);
+#elif defined GNULIB_POSIXCHECK
+# undef wmemmove
+# if HAVE_RAW_DECL_WMEMMOVE
+_GL_WARN_ON_USE (wmemmove, "wmemmove is unportable - "
+ "use gnulib module wmemmove for portability");
+# endif
+#endif
+
+
+/* Set N wide characters of S to C. */
+#if @GNULIB_WMEMSET@
+# if !@HAVE_WMEMSET@
+_GL_FUNCDECL_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wmemset, wchar_t *, (wchar_t *s, wchar_t c, size_t n));
+_GL_CXXALIASWARN (wmemset);
+#elif defined GNULIB_POSIXCHECK
+# undef wmemset
+# if HAVE_RAW_DECL_WMEMSET
+_GL_WARN_ON_USE (wmemset, "wmemset is unportable - "
+ "use gnulib module wmemset for portability");
+# endif
+#endif
+
+
+/* Return the number of wide characters in S. */
+#if @GNULIB_WCSLEN@
+# if !@HAVE_WCSLEN@
+_GL_FUNCDECL_SYS (wcslen, size_t, (const wchar_t *s));
+# endif
+_GL_CXXALIAS_SYS (wcslen, size_t, (const wchar_t *s));
+_GL_CXXALIASWARN (wcslen);
+#elif defined GNULIB_POSIXCHECK
+# undef wcslen
+# if HAVE_RAW_DECL_WCSLEN
+_GL_WARN_ON_USE (wcslen, "wcslen is unportable - "
+ "use gnulib module wcslen for portability");
+# endif
+#endif
+
+
+/* Return the number of wide characters in S, but at most MAXLEN. */
+#if @GNULIB_WCSNLEN@
+# if !@HAVE_WCSNLEN@
+_GL_FUNCDECL_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen));
+# endif
+_GL_CXXALIAS_SYS (wcsnlen, size_t, (const wchar_t *s, size_t maxlen));
+_GL_CXXALIASWARN (wcsnlen);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsnlen
+# if HAVE_RAW_DECL_WCSNLEN
+_GL_WARN_ON_USE (wcsnlen, "wcsnlen is unportable - "
+ "use gnulib module wcsnlen for portability");
+# endif
+#endif
+
+
+/* Copy SRC to DEST. */
+#if @GNULIB_WCSCPY@
+# if !@HAVE_WCSCPY@
+_GL_FUNCDECL_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
+# endif
+_GL_CXXALIAS_SYS (wcscpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
+_GL_CXXALIASWARN (wcscpy);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscpy
+# if HAVE_RAW_DECL_WCSCPY
+_GL_WARN_ON_USE (wcscpy, "wcscpy is unportable - "
+ "use gnulib module wcscpy for portability");
+# endif
+#endif
+
+
+/* Copy SRC to DEST, returning the address of the terminating L'\0' in DEST. */
+#if @GNULIB_WCPCPY@
+# if !@HAVE_WCPCPY@
+_GL_FUNCDECL_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
+# endif
+_GL_CXXALIAS_SYS (wcpcpy, wchar_t *, (wchar_t *dest, const wchar_t *src));
+_GL_CXXALIASWARN (wcpcpy);
+#elif defined GNULIB_POSIXCHECK
+# undef wcpcpy
+# if HAVE_RAW_DECL_WCPCPY
+_GL_WARN_ON_USE (wcpcpy, "wcpcpy is unportable - "
+ "use gnulib module wcpcpy for portability");
+# endif
+#endif
+
+
+/* Copy no more than N wide characters of SRC to DEST. */
+#if @GNULIB_WCSNCPY@
+# if !@HAVE_WCSNCPY@
+_GL_FUNCDECL_SYS (wcsncpy, wchar_t *,
+ (wchar_t *dest, const wchar_t *src, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wcsncpy, wchar_t *,
+ (wchar_t *dest, const wchar_t *src, size_t n));
+_GL_CXXALIASWARN (wcsncpy);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsncpy
+# if HAVE_RAW_DECL_WCSNCPY
+_GL_WARN_ON_USE (wcsncpy, "wcsncpy is unportable - "
+ "use gnulib module wcsncpy for portability");
+# endif
+#endif
+
+
+/* Copy no more than N characters of SRC to DEST, returning the address of
+ the last character written into DEST. */
+#if @GNULIB_WCPNCPY@
+# if !@HAVE_WCPNCPY@
+_GL_FUNCDECL_SYS (wcpncpy, wchar_t *,
+ (wchar_t *dest, const wchar_t *src, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wcpncpy, wchar_t *,
+ (wchar_t *dest, const wchar_t *src, size_t n));
+_GL_CXXALIASWARN (wcpncpy);
+#elif defined GNULIB_POSIXCHECK
+# undef wcpncpy
+# if HAVE_RAW_DECL_WCPNCPY
+_GL_WARN_ON_USE (wcpncpy, "wcpncpy is unportable - "
+ "use gnulib module wcpncpy for portability");
+# endif
+#endif
+
+
+/* Append SRC onto DEST. */
+#if @GNULIB_WCSCAT@
+# if !@HAVE_WCSCAT@
+_GL_FUNCDECL_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src));
+# endif
+_GL_CXXALIAS_SYS (wcscat, wchar_t *, (wchar_t *dest, const wchar_t *src));
+_GL_CXXALIASWARN (wcscat);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscat
+# if HAVE_RAW_DECL_WCSCAT
+_GL_WARN_ON_USE (wcscat, "wcscat is unportable - "
+ "use gnulib module wcscat for portability");
+# endif
+#endif
+
+
+/* Append no more than N wide characters of SRC onto DEST. */
+#if @GNULIB_WCSNCAT@
+# if !@HAVE_WCSNCAT@
+_GL_FUNCDECL_SYS (wcsncat, wchar_t *,
+ (wchar_t *dest, const wchar_t *src, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wcsncat, wchar_t *,
+ (wchar_t *dest, const wchar_t *src, size_t n));
+_GL_CXXALIASWARN (wcsncat);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsncat
+# if HAVE_RAW_DECL_WCSNCAT
+_GL_WARN_ON_USE (wcsncat, "wcsncat is unportable - "
+ "use gnulib module wcsncat for portability");
+# endif
+#endif
+
+
+/* Compare S1 and S2. */
+#if @GNULIB_WCSCMP@
+# if !@HAVE_WCSCMP@
+_GL_FUNCDECL_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
+# endif
+_GL_CXXALIAS_SYS (wcscmp, int, (const wchar_t *s1, const wchar_t *s2));
+_GL_CXXALIASWARN (wcscmp);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscmp
+# if HAVE_RAW_DECL_WCSCMP
+_GL_WARN_ON_USE (wcscmp, "wcscmp is unportable - "
+ "use gnulib module wcscmp for portability");
+# endif
+#endif
+
+
+/* Compare no more than N wide characters of S1 and S2. */
+#if @GNULIB_WCSNCMP@
+# if !@HAVE_WCSNCMP@
+_GL_FUNCDECL_SYS (wcsncmp, int,
+ (const wchar_t *s1, const wchar_t *s2, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wcsncmp, int,
+ (const wchar_t *s1, const wchar_t *s2, size_t n));
+_GL_CXXALIASWARN (wcsncmp);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsncmp
+# if HAVE_RAW_DECL_WCSNCMP
+_GL_WARN_ON_USE (wcsncmp, "wcsncmp is unportable - "
+ "use gnulib module wcsncmp for portability");
+# endif
+#endif
+
+
+/* Compare S1 and S2, ignoring case. */
+#if @GNULIB_WCSCASECMP@
+# if !@HAVE_WCSCASECMP@
+_GL_FUNCDECL_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2));
+# endif
+_GL_CXXALIAS_SYS (wcscasecmp, int, (const wchar_t *s1, const wchar_t *s2));
+_GL_CXXALIASWARN (wcscasecmp);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscasecmp
+# if HAVE_RAW_DECL_WCSCASECMP
+_GL_WARN_ON_USE (wcscasecmp, "wcscasecmp is unportable - "
+ "use gnulib module wcscasecmp for portability");
+# endif
+#endif
+
+
+/* Compare no more than N chars of S1 and S2, ignoring case. */
+#if @GNULIB_WCSNCASECMP@
+# if !@HAVE_WCSNCASECMP@
+_GL_FUNCDECL_SYS (wcsncasecmp, int,
+ (const wchar_t *s1, const wchar_t *s2, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wcsncasecmp, int,
+ (const wchar_t *s1, const wchar_t *s2, size_t n));
+_GL_CXXALIASWARN (wcsncasecmp);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsncasecmp
+# if HAVE_RAW_DECL_WCSNCASECMP
+_GL_WARN_ON_USE (wcsncasecmp, "wcsncasecmp is unportable - "
+ "use gnulib module wcsncasecmp for portability");
+# endif
+#endif
+
+
+/* Compare S1 and S2, both interpreted as appropriate to the LC_COLLATE
+ category of the current locale. */
+#if @GNULIB_WCSCOLL@
+# if !@HAVE_WCSCOLL@
+_GL_FUNCDECL_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2));
+# endif
+_GL_CXXALIAS_SYS (wcscoll, int, (const wchar_t *s1, const wchar_t *s2));
+_GL_CXXALIASWARN (wcscoll);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscoll
+# if HAVE_RAW_DECL_WCSCOLL
+_GL_WARN_ON_USE (wcscoll, "wcscoll is unportable - "
+ "use gnulib module wcscoll for portability");
+# endif
+#endif
+
+
+/* Transform S2 into array pointed to by S1 such that if wcscmp is applied
+ to two transformed strings the result is the as applying 'wcscoll' to the
+ original strings. */
+#if @GNULIB_WCSXFRM@
+# if !@HAVE_WCSXFRM@
+_GL_FUNCDECL_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wcsxfrm, size_t, (wchar_t *s1, const wchar_t *s2, size_t n));
+_GL_CXXALIASWARN (wcsxfrm);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsxfrm
+# if HAVE_RAW_DECL_WCSXFRM
+_GL_WARN_ON_USE (wcsxfrm, "wcsxfrm is unportable - "
+ "use gnulib module wcsxfrm for portability");
+# endif
+#endif
+
+
+/* Duplicate S, returning an identical malloc'd string. */
+#if @GNULIB_WCSDUP@
+# if !@HAVE_WCSDUP@
+_GL_FUNCDECL_SYS (wcsdup, wchar_t *, (const wchar_t *s));
+# endif
+_GL_CXXALIAS_SYS (wcsdup, wchar_t *, (const wchar_t *s));
+_GL_CXXALIASWARN (wcsdup);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsdup
+# if HAVE_RAW_DECL_WCSDUP
+_GL_WARN_ON_USE (wcsdup, "wcsdup is unportable - "
+ "use gnulib module wcsdup for portability");
+# endif
+#endif
+
+
+/* Find the first occurrence of WC in WCS. */
+#if @GNULIB_WCSCHR@
+# if !@HAVE_WCSCHR@
+_GL_FUNCDECL_SYS (wcschr, wchar_t *, (const wchar_t *wcs, wchar_t wc));
+# endif
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C++" {
+ const wchar_t * std::wcschr (const wchar_t *, wchar_t);
+ wchar_t * std::wcschr (wchar_t *, wchar_t);
+ } */
+_GL_CXXALIAS_SYS_CAST2 (wcschr,
+ wchar_t *, (const wchar_t *, wchar_t),
+ const wchar_t *, (const wchar_t *, wchar_t));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcschr, wchar_t *, (wchar_t *wcs, wchar_t wc));
+_GL_CXXALIASWARN1 (wcschr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
+# else
+_GL_CXXALIASWARN (wcschr);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcschr
+# if HAVE_RAW_DECL_WCSCHR
+_GL_WARN_ON_USE (wcschr, "wcschr is unportable - "
+ "use gnulib module wcschr for portability");
+# endif
+#endif
+
+
+/* Find the last occurrence of WC in WCS. */
+#if @GNULIB_WCSRCHR@
+# if !@HAVE_WCSRCHR@
+_GL_FUNCDECL_SYS (wcsrchr, wchar_t *, (const wchar_t *wcs, wchar_t wc));
+# endif
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C++" {
+ const wchar_t * std::wcsrchr (const wchar_t *, wchar_t);
+ wchar_t * std::wcsrchr (wchar_t *, wchar_t);
+ } */
+_GL_CXXALIAS_SYS_CAST2 (wcsrchr,
+ wchar_t *, (const wchar_t *, wchar_t),
+ const wchar_t *, (const wchar_t *, wchar_t));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcsrchr, wchar_t *, (wchar_t *wcs, wchar_t wc));
+_GL_CXXALIASWARN1 (wcsrchr, const wchar_t *, (const wchar_t *wcs, wchar_t wc));
+# else
+_GL_CXXALIASWARN (wcsrchr);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcsrchr
+# if HAVE_RAW_DECL_WCSRCHR
+_GL_WARN_ON_USE (wcsrchr, "wcsrchr is unportable - "
+ "use gnulib module wcsrchr for portability");
+# endif
+#endif
+
+
+/* Return the length of the initial segmet of WCS which consists entirely
+ of wide characters not in REJECT. */
+#if @GNULIB_WCSCSPN@
+# if !@HAVE_WCSCSPN@
+_GL_FUNCDECL_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject));
+# endif
+_GL_CXXALIAS_SYS (wcscspn, size_t, (const wchar_t *wcs, const wchar_t *reject));
+_GL_CXXALIASWARN (wcscspn);
+#elif defined GNULIB_POSIXCHECK
+# undef wcscspn
+# if HAVE_RAW_DECL_WCSCSPN
+_GL_WARN_ON_USE (wcscspn, "wcscspn is unportable - "
+ "use gnulib module wcscspn for portability");
+# endif
+#endif
+
+
+/* Return the length of the initial segmet of WCS which consists entirely
+ of wide characters in ACCEPT. */
+#if @GNULIB_WCSSPN@
+# if !@HAVE_WCSSPN@
+_GL_FUNCDECL_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept));
+# endif
+_GL_CXXALIAS_SYS (wcsspn, size_t, (const wchar_t *wcs, const wchar_t *accept));
+_GL_CXXALIASWARN (wcsspn);
+#elif defined GNULIB_POSIXCHECK
+# undef wcsspn
+# if HAVE_RAW_DECL_WCSSPN
+_GL_WARN_ON_USE (wcsspn, "wcsspn is unportable - "
+ "use gnulib module wcsspn for portability");
+# endif
+#endif
+
+
+/* Find the first occurrence in WCS of any character in ACCEPT. */
+#if @GNULIB_WCSPBRK@
+# if !@HAVE_WCSPBRK@
+_GL_FUNCDECL_SYS (wcspbrk, wchar_t *,
+ (const wchar_t *wcs, const wchar_t *accept));
+# endif
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C++" {
+ const wchar_t * std::wcspbrk (const wchar_t *, const wchar_t *);
+ wchar_t * std::wcspbrk (wchar_t *, const wchar_t *);
+ } */
+_GL_CXXALIAS_SYS_CAST2 (wcspbrk,
+ wchar_t *, (const wchar_t *, const wchar_t *),
+ const wchar_t *, (const wchar_t *, const wchar_t *));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcspbrk, wchar_t *,
+ (wchar_t *wcs, const wchar_t *accept));
+_GL_CXXALIASWARN1 (wcspbrk, const wchar_t *,
+ (const wchar_t *wcs, const wchar_t *accept));
+# else
+_GL_CXXALIASWARN (wcspbrk);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcspbrk
+# if HAVE_RAW_DECL_WCSPBRK
+_GL_WARN_ON_USE (wcspbrk, "wcspbrk is unportable - "
+ "use gnulib module wcspbrk for portability");
+# endif
+#endif
+
+
+/* Find the first occurrence of NEEDLE in HAYSTACK. */
+#if @GNULIB_WCSSTR@
+# if !@HAVE_WCSSTR@
+_GL_FUNCDECL_SYS (wcsstr, wchar_t *,
+ (const wchar_t *haystack, const wchar_t *needle));
+# endif
+ /* On some systems, this function is defined as an overloaded function:
+ extern "C++" {
+ const wchar_t * std::wcsstr (const wchar_t *, const wchar_t *);
+ wchar_t * std::wcsstr (wchar_t *, const wchar_t *);
+ } */
+_GL_CXXALIAS_SYS_CAST2 (wcsstr,
+ wchar_t *, (const wchar_t *, const wchar_t *),
+ const wchar_t *, (const wchar_t *, const wchar_t *));
+# if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 10) && !defined __UCLIBC__) \
+ && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+_GL_CXXALIASWARN1 (wcsstr, wchar_t *,
+ (wchar_t *haystack, const wchar_t *needle));
+_GL_CXXALIASWARN1 (wcsstr, const wchar_t *,
+ (const wchar_t *haystack, const wchar_t *needle));
+# else
+_GL_CXXALIASWARN (wcsstr);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef wcsstr
+# if HAVE_RAW_DECL_WCSSTR
+_GL_WARN_ON_USE (wcsstr, "wcsstr is unportable - "
+ "use gnulib module wcsstr for portability");
+# endif
+#endif
+
+
+/* Divide WCS into tokens separated by characters in DELIM. */
+#if @GNULIB_WCSTOK@
+# if !@HAVE_WCSTOK@
+_GL_FUNCDECL_SYS (wcstok, wchar_t *,
+ (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr));
+# endif
+_GL_CXXALIAS_SYS (wcstok, wchar_t *,
+ (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr));
+_GL_CXXALIASWARN (wcstok);
+#elif defined GNULIB_POSIXCHECK
+# undef wcstok
+# if HAVE_RAW_DECL_WCSTOK
+_GL_WARN_ON_USE (wcstok, "wcstok is unportable - "
+ "use gnulib module wcstok for portability");
+# endif
+#endif
+
+
+/* Determine number of column positions required for first N wide
+ characters (or fewer if S ends before this) in S. */
+#if @GNULIB_WCSWIDTH@
+# if @REPLACE_WCSWIDTH@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# undef wcswidth
+# define wcswidth rpl_wcswidth
+# endif
+_GL_FUNCDECL_RPL (wcswidth, int, (const wchar_t *s, size_t n));
+_GL_CXXALIAS_RPL (wcswidth, int, (const wchar_t *s, size_t n));
+# else
+# if !@HAVE_WCSWIDTH@
+_GL_FUNCDECL_SYS (wcswidth, int, (const wchar_t *s, size_t n));
+# endif
+_GL_CXXALIAS_SYS (wcswidth, int, (const wchar_t *s, size_t n));
+# endif
+_GL_CXXALIASWARN (wcswidth);
+#elif defined GNULIB_POSIXCHECK
+# undef wcswidth
+# if HAVE_RAW_DECL_WCSWIDTH
+_GL_WARN_ON_USE (wcswidth, "wcswidth is unportable - "
+ "use gnulib module wcswidth for portability");
+# endif
+#endif
+
+
+#endif /* _@GUARD_PREFIX@_WCHAR_H */
+#endif /* _@GUARD_PREFIX@_WCHAR_H */
+#endif
diff --git a/gnu/wcrtomb.c b/gnu/wcrtomb.c
new file mode 100644
index 00000000..c563fbed
--- /dev/null
+++ b/gnu/wcrtomb.c
@@ -0,0 +1,55 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Convert wide character to multibyte character.
+ Copyright (C) 2008-2012 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 <stdlib.h>
+
+
+size_t
+wcrtomb (char *s, wchar_t wc, mbstate_t *ps)
+{
+ /* This implementation of wcrtomb on top of wctomb() supports only
+ stateless encodings. ps must be in the initial state. */
+ if (ps != NULL && !mbsinit (ps))
+ {
+ errno = EINVAL;
+ return (size_t)(-1);
+ }
+
+ if (s == NULL)
+ /* We know the NUL wide character corresponds to the NUL character. */
+ return 1;
+ else
+ {
+ int ret = wctomb (s, wc);
+
+ if (ret >= 0)
+ return ret;
+ else
+ {
+ errno = EILSEQ;
+ return (size_t)(-1);
+ }
+ }
+}
diff --git a/gnu/wctype.in.h b/gnu/wctype.in.h
new file mode 100644
index 00000000..13865178
--- /dev/null
+++ b/gnu/wctype.in.h
@@ -0,0 +1,501 @@
+/* -*- 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-2012 Free Software Foundation, Inc.
+
+ This 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 _@GUARD_PREFIX@_WCTYPE_H
+
+#if __GNUC__ >= 3
+@PRAGMA_SYSTEM_HEADER@
+#endif
+@PRAGMA_COLUMNS@
+
+#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 _@GUARD_PREFIX@_WCTYPE_H
+#define _@GUARD_PREFIX@_WCTYPE_H
+
+/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */
+
+/* The definition of _GL_WARN_ON_USE is copied here. */
+
+/* Solaris 2.6 <wctype.h> includes <widec.h> which includes <euc.h> which
+ #defines a number of identifiers in the application namespace. Revert
+ these #defines. */
+#ifdef __sun
+# undef multibyte
+# undef eucw1
+# undef eucw2
+# undef eucw3
+# undef scrw1
+# undef scrw2
+# undef scrw3
+#endif
+
+/* Define wint_t and WEOF. (Also done in wchar.in.h.) */
+#if !@HAVE_WINT_T@ && !defined wint_t
+# define wint_t int
+# ifndef WEOF
+# define WEOF -1
+# endif
+#else
+/* MSVC defines wint_t as 'unsigned short' in <crtdefs.h>.
+ This is too small: ISO C 99 section 7.24.1.(2) says that wint_t must be
+ "unchanged by default argument promotions". Override it. */
+# if defined _MSC_VER
+# if !GNULIB_defined_wint_t
+# include <crtdefs.h>
+typedef unsigned int rpl_wint_t;
+# undef wint_t
+# define wint_t rpl_wint_t
+# define GNULIB_defined_wint_t 1
+# endif
+# endif
+# ifndef WEOF
+# define WEOF ((wint_t) -1)
+# endif
+#endif
+
+
+#if !GNULIB_defined_wctype_functions
+
+/* 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 11 functions (all isw* except iswblank) 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
+# endif
+# endif
+# if @REPLACE_TOWLOWER@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# 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_TOWLOWER@
+rpl_towlower
+# else
+towlower
+# endif
+ (wint_t wc)
+{
+ return (wc >= 'A' && wc <= 'Z' ? wc - 'A' + 'a' : wc);
+}
+
+static inline wint_t
+# if @REPLACE_TOWLOWER@
+rpl_towupper
+# else
+towupper
+# endif
+ (wint_t wc)
+{
+ return (wc >= 'a' && wc <= 'z' ? wc - 'a' + 'A' : wc);
+}
+
+# elif @GNULIB_ISWBLANK@ && (! @HAVE_ISWBLANK@ || @REPLACE_ISWBLANK@)
+/* Only the iswblank function is missing. */
+
+# if @REPLACE_ISWBLANK@
+# if !(defined __cplusplus && defined GNULIB_NAMESPACE)
+# define iswblank rpl_iswblank
+# endif
+_GL_FUNCDECL_RPL (iswblank, int, (wint_t wc));
+# else
+_GL_FUNCDECL_SYS (iswblank, int, (wint_t wc));
+# endif
+
+# endif
+
+# 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__ */
+
+# define GNULIB_defined_wctype_functions 1
+#endif
+
+#if @REPLACE_ISWCNTRL@
+_GL_CXXALIAS_RPL (iswalnum, int, (wint_t wc));
+_GL_CXXALIAS_RPL (iswalpha, 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 (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 (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 @GNULIB_ISWBLANK@
+# if @REPLACE_ISWCNTRL@ || @REPLACE_ISWBLANK@
+_GL_CXXALIAS_RPL (iswblank, int, (wint_t wc));
+# else
+_GL_CXXALIAS_SYS (iswblank, int, (wint_t wc));
+# endif
+_GL_CXXALIASWARN (iswblank);
+#endif
+
+#if !@HAVE_WCTYPE_T@
+# if !GNULIB_defined_wctype_t
+typedef void * wctype_t;
+# define GNULIB_defined_wctype_t 1
+# endif
+#endif
+
+/* Get a descriptor for a wide character property. */
+#if @GNULIB_WCTYPE@
+# if !@HAVE_WCTYPE_T@
+_GL_FUNCDECL_SYS (wctype, wctype_t, (const char *name));
+# endif
+_GL_CXXALIAS_SYS (wctype, wctype_t, (const char *name));
+_GL_CXXALIASWARN (wctype);
+#elif defined GNULIB_POSIXCHECK
+# undef wctype
+# if HAVE_RAW_DECL_WCTYPE
+_GL_WARN_ON_USE (wctype, "wctype is unportable - "
+ "use gnulib module wctype for portability");
+# endif
+#endif
+
+/* Test whether a wide character has a given property.
+ The argument WC must be either a wchar_t value or WEOF.
+ The argument DESC must have been returned by the wctype() function. */
+#if @GNULIB_ISWCTYPE@
+# if !@HAVE_WCTYPE_T@
+_GL_FUNCDECL_SYS (iswctype, int, (wint_t wc, wctype_t desc));
+# endif
+_GL_CXXALIAS_SYS (iswctype, int, (wint_t wc, wctype_t desc));
+_GL_CXXALIASWARN (iswctype);
+#elif defined GNULIB_POSIXCHECK
+# undef iswctype
+# if HAVE_RAW_DECL_ISWCTYPE
+_GL_WARN_ON_USE (iswctype, "iswctype is unportable - "
+ "use gnulib module iswctype for portability");
+# endif
+#endif
+
+#if @REPLACE_TOWLOWER@ || 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);
+
+#if !@HAVE_WCTRANS_T@
+# if !GNULIB_defined_wctrans_t
+typedef void * wctrans_t;
+# define GNULIB_defined_wctrans_t 1
+# endif
+#endif
+
+/* Get a descriptor for a wide character case conversion. */
+#if @GNULIB_WCTRANS@
+# if !@HAVE_WCTRANS_T@
+_GL_FUNCDECL_SYS (wctrans, wctrans_t, (const char *name));
+# endif
+_GL_CXXALIAS_SYS (wctrans, wctrans_t, (const char *name));
+_GL_CXXALIASWARN (wctrans);
+#elif defined GNULIB_POSIXCHECK
+# undef wctrans
+# if HAVE_RAW_DECL_WCTRANS
+_GL_WARN_ON_USE (wctrans, "wctrans is unportable - "
+ "use gnulib module wctrans for portability");
+# endif
+#endif
+
+/* Perform a given case conversion on a wide character.
+ The argument WC must be either a wchar_t value or WEOF.
+ The argument DESC must have been returned by the wctrans() function. */
+#if @GNULIB_TOWCTRANS@
+# if !@HAVE_WCTRANS_T@
+_GL_FUNCDECL_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
+# endif
+_GL_CXXALIAS_SYS (towctrans, wint_t, (wint_t wc, wctrans_t desc));
+_GL_CXXALIASWARN (towctrans);
+#elif defined GNULIB_POSIXCHECK
+# undef towctrans
+# if HAVE_RAW_DECL_TOWCTRANS
+_GL_WARN_ON_USE (towctrans, "towctrans is unportable - "
+ "use gnulib module towctrans for portability");
+# endif
+#endif
+
+
+#endif /* _@GUARD_PREFIX@_WCTYPE_H */
+#endif /* _@GUARD_PREFIX@_WCTYPE_H */
diff --git a/gnu/wcwidth.c b/gnu/wcwidth.c
new file mode 100644
index 00000000..518cfd71
--- /dev/null
+++ b/gnu/wcwidth.c
@@ -0,0 +1,52 @@
+/* -*- 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, 2010-2012 Free Software Foundation, Inc.
+
+ This 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>
+
+/* Get iswprint. */
+#include <wctype.h>
+
+#include "localcharset.h"
+#include "streq.h"
+#include "uniwidth.h"
+
+int
+wcwidth (wchar_t wc)
+#undef wcwidth
+{
+ /* In UTF-8 locales, use a Unicode aware width function. */
+ const char *encoding = locale_charset ();
+ 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. */
+ return uc_width (wc, encoding);
+ }
+ else
+ {
+ /* Otherwise, fall back to the system's wcwidth function. */
+#if HAVE_WCWIDTH
+ return wcwidth (wc);
+#else
+ return wc == 0 ? 0 : iswprint (wc) ? 1 : -1;
+#endif
+ }
+}
diff --git a/gnu/write.c b/gnu/write.c
new file mode 100644
index 00000000..3138588c
--- /dev/null
+++ b/gnu/write.c
@@ -0,0 +1,147 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* POSIX compatible write() function.
+ Copyright (C) 2008-2012 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>
+
+/* On native Windows platforms, SIGPIPE does not exist. When write() is
+ called on a pipe with no readers, WriteFile() fails with error
+ GetLastError() = ERROR_NO_DATA, and write() in consequence fails with
+ error EINVAL. */
+
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+
+# include <errno.h>
+# include <signal.h>
+# include <io.h>
+
+# define WIN32_LEAN_AND_MEAN /* avoid including junk */
+# include <windows.h>
+
+# include "msvc-inval.h"
+# include "msvc-nothrow.h"
+
+# undef write
+
+# if HAVE_MSVC_INVALID_PARAMETER_HANDLER
+static inline ssize_t
+write_nothrow (int fd, const void *buf, size_t count)
+{
+ ssize_t result;
+
+ TRY_MSVC_INVAL
+ {
+ result = write (fd, buf, count);
+ }
+ CATCH_MSVC_INVAL
+ {
+ result = -1;
+ errno = EBADF;
+ }
+ DONE_MSVC_INVAL;
+
+ return result;
+}
+# else
+# define write_nothrow write
+# endif
+
+ssize_t
+rpl_write (int fd, const void *buf, size_t count)
+{
+ for (;;)
+ {
+ ssize_t ret = write_nothrow (fd, buf, count);
+
+ if (ret < 0)
+ {
+# if GNULIB_NONBLOCKING
+ if (errno == ENOSPC)
+ {
+ HANDLE h = (HANDLE) _get_osfhandle (fd);
+ if (GetFileType (h) == FILE_TYPE_PIPE)
+ {
+ /* h is a pipe or socket. */
+ DWORD state;
+ if (GetNamedPipeHandleState (h, &state, NULL, NULL, NULL,
+ NULL, 0)
+ && (state & PIPE_NOWAIT) != 0)
+ {
+ /* h is a pipe in non-blocking mode.
+ We can get here in four situations:
+ 1. When the pipe buffer is full.
+ 2. When count <= pipe_buf_size and the number of
+ free bytes in the pipe buffer is < count.
+ 3. When count > pipe_buf_size and the number of free
+ bytes in the pipe buffer is > 0, < pipe_buf_size.
+ 4. When count > pipe_buf_size and the pipe buffer is
+ entirely empty.
+ The cases 1 and 2 are POSIX compliant. In cases 3 and
+ 4 POSIX specifies that write() must split the request
+ and succeed with a partial write. We fix case 4.
+ We don't fix case 3 because it is not essential for
+ programs. */
+ DWORD out_size; /* size of the buffer for outgoing data */
+ DWORD in_size; /* size of the buffer for incoming data */
+ if (GetNamedPipeInfo (h, NULL, &out_size, &in_size, NULL))
+ {
+ size_t reduced_count = count;
+ /* In theory we need only one of out_size, in_size.
+ But I don't know which of the two. The description
+ is ambiguous. */
+ if (out_size != 0 && out_size < reduced_count)
+ reduced_count = out_size;
+ if (in_size != 0 && in_size < reduced_count)
+ reduced_count = in_size;
+ if (reduced_count < count)
+ {
+ /* Attempt to write only the first part. */
+ count = reduced_count;
+ continue;
+ }
+ }
+ /* Change errno from ENOSPC to EAGAIN. */
+ errno = EAGAIN;
+ }
+ }
+ }
+ else
+# endif
+ {
+# if GNULIB_SIGPIPE
+ if (GetLastError () == ERROR_NO_DATA
+ && 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;
+ }
+# endif
+ }
+ }
+ return ret;
+ }
+}
+
+#endif
diff --git a/gnu/xalloc-die.c b/gnu/xalloc-die.c
new file mode 100644
index 00000000..c992abaa
--- /dev/null
+++ b/gnu/xalloc-die.c
@@ -0,0 +1,43 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* Report a memory allocation failure and exit.
+
+ Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 "xalloc.h"
+
+#include <stdlib.h>
+
+#include "error.h"
+#include "exitfail.h"
+
+#include "gettext.h"
+#define _(msgid) gettext (msgid)
+
+void
+xalloc_die (void)
+{
+ error (exit_failure, 0, "%s", _("memory exhausted"));
+
+ /* _Noreturn cannot be given to error, since it may return if
+ its first argument is 0. To help compilers understand the
+ xalloc_die does not return, call abort. Also, the abort is a
+ safety feature if exit_failure is 0 (which shouldn't happen). */
+ abort ();
+}
diff --git a/gnu/xalloc-oversized.h b/gnu/xalloc-oversized.h
new file mode 100644
index 00000000..730c8a43
--- /dev/null
+++ b/gnu/xalloc-oversized.h
@@ -0,0 +1,40 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* xalloc-oversized.h -- memory allocation size checking
+
+ Copyright (C) 1990-2000, 2003-2004, 2006-2012 Free Software Foundation, Inc.
+
+ This 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 XALLOC_OVERSIZED_H_
+# define XALLOC_OVERSIZED_H_
+
+# include <stddef.h>
+
+/* Return 1 if an array of N objects, each of size S, cannot exist due
+ to size arithmetic overflow. S must be positive and N must be
+ nonnegative. This is a macro, not an inline function, so that it
+ works correctly even when SIZE_MAX < N.
+
+ By gnulib convention, SIZE_MAX represents overflow in size
+ calculations, so the conservative dividend to use here is
+ SIZE_MAX - 1, since SIZE_MAX might represent an overflowed value.
+ However, malloc (SIZE_MAX) fails on all known hosts where
+ sizeof (ptrdiff_t) <= sizeof (size_t), so do not bother to test for
+ exactly-SIZE_MAX allocations on such hosts; this avoids a test and
+ branch when S is known to be 1. */
+# define xalloc_oversized(n, s) \
+ ((size_t) (sizeof (ptrdiff_t) <= sizeof (size_t) ? -1 : -2) / (s) < (n))
+
+#endif /* !XALLOC_OVERSIZED_H_ */
diff --git a/gnu/xalloc.h b/gnu/xalloc.h
new file mode 100644
index 00000000..e291506c
--- /dev/null
+++ b/gnu/xalloc.h
@@ -0,0 +1,273 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* xalloc.h -- malloc with out-of-memory checking
+
+ Copyright (C) 1990-2000, 2003-2004, 2006-2012 Free Software Foundation, Inc.
+
+ This 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 XALLOC_H_
+# define XALLOC_H_
+
+# include <stddef.h>
+
+# include "xalloc-oversized.h"
+
+# ifdef __cplusplus
+extern "C" {
+# endif
+
+
+# if __GNUC__ >= 3
+# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__))
+# else
+# define _GL_ATTRIBUTE_MALLOC
+# endif
+
+# if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
+# define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args))
+# else
+# define _GL_ATTRIBUTE_ALLOC_SIZE(args)
+# endif
+
+/* This function is always triggered when memory is exhausted.
+ It must be defined by the application, either explicitly
+ or by using gnulib's xalloc-die module. This is the
+ function to call when one wants the program to die because of a
+ memory allocation failure. */
+extern _Noreturn void xalloc_die (void);
+
+void *xmalloc (size_t s)
+ _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
+void *xzalloc (size_t s)
+ _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
+void *xcalloc (size_t n, size_t s)
+ _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2));
+void *xrealloc (void *p, size_t s)
+ _GL_ATTRIBUTE_ALLOC_SIZE ((2));
+void *x2realloc (void *p, size_t *pn);
+void *xmemdup (void const *p, size_t s)
+ _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((2));
+char *xstrdup (char const *str)
+ _GL_ATTRIBUTE_MALLOC;
+
+/* In the following macros, T must be an elementary or structure/union or
+ typedef'ed type, or a pointer to such a type. To apply one of the
+ following macros to a function pointer or array type, you need to typedef
+ it first and use the typedef name. */
+
+/* Allocate an object of type T dynamically, with error checking. */
+/* extern t *XMALLOC (typename t); */
+# define XMALLOC(t) ((t *) xmalloc (sizeof (t)))
+
+/* Allocate memory for N elements of type T, with error checking. */
+/* extern t *XNMALLOC (size_t n, typename t); */
+# define XNMALLOC(n, t) \
+ ((t *) (sizeof (t) == 1 ? xmalloc (n) : xnmalloc (n, sizeof (t))))
+
+/* Allocate an object of type T dynamically, with error checking,
+ and zero it. */
+/* extern t *XZALLOC (typename t); */
+# define XZALLOC(t) ((t *) xzalloc (sizeof (t)))
+
+/* Allocate memory for N elements of type T, with error checking,
+ and zero it. */
+/* extern t *XCALLOC (size_t n, typename t); */
+# define XCALLOC(n, t) \
+ ((t *) (sizeof (t) == 1 ? xzalloc (n) : xcalloc (n, sizeof (t))))
+
+
+# if HAVE_INLINE
+# define static_inline static inline
+# else
+void *xnmalloc (size_t n, size_t s)
+ _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2));
+void *xnrealloc (void *p, size_t n, size_t s)
+ _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3));
+void *x2nrealloc (void *p, size_t *pn, size_t s);
+char *xcharalloc (size_t n)
+ _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
+# endif
+
+# ifdef static_inline
+
+/* Allocate an array of N objects, each with S bytes of memory,
+ dynamically, with error checking. S must be nonzero. */
+
+static_inline void *xnmalloc (size_t n, size_t s)
+ _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1, 2));
+static_inline void *
+xnmalloc (size_t n, size_t s)
+{
+ if (xalloc_oversized (n, s))
+ xalloc_die ();
+ return xmalloc (n * s);
+}
+
+/* Change the size of an allocated block of memory P to an array of N
+ objects each of S bytes, with error checking. S must be nonzero. */
+
+static_inline void *xnrealloc (void *p, size_t n, size_t s)
+ _GL_ATTRIBUTE_ALLOC_SIZE ((2, 3));
+static_inline void *
+xnrealloc (void *p, size_t n, size_t s)
+{
+ if (xalloc_oversized (n, s))
+ xalloc_die ();
+ return xrealloc (p, n * s);
+}
+
+/* If P is null, allocate a block of at least *PN such objects;
+ otherwise, reallocate P so that it contains more than *PN objects
+ each of S bytes. *PN must be nonzero unless P is null, and S must
+ be nonzero. Set *PN to the new number of objects, and return the
+ pointer to the new block. *PN is never set to zero, and the
+ returned pointer is never null.
+
+ Repeated reallocations are guaranteed to make progress, either by
+ allocating an initial block with a nonzero size, or by allocating a
+ larger block.
+
+ In the following implementation, nonzero sizes are increased by a
+ factor of approximately 1.5 so that repeated reallocations have
+ O(N) overall cost rather than O(N**2) cost, but the
+ specification for this function does not guarantee that rate.
+
+ Here is an example of use:
+
+ int *p = NULL;
+ size_t used = 0;
+ size_t allocated = 0;
+
+ void
+ append_int (int 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
+ first time it is called.
+
+ To have finer-grained control over the initial size, set *PN to a
+ nonzero value before calling this function with P == NULL. For
+ example:
+
+ int *p = NULL;
+ size_t used = 0;
+ size_t allocated = 0;
+ size_t allocated1 = 1000;
+
+ void
+ append_int (int value)
+ {
+ if (used == allocated)
+ {
+ p = x2nrealloc (p, &allocated1, sizeof *p);
+ allocated = allocated1;
+ }
+ p[used++] = value;
+ }
+
+ */
+
+static_inline void *
+x2nrealloc (void *p, size_t *pn, size_t s)
+{
+ size_t n = *pn;
+
+ if (! p)
+ {
+ if (! n)
+ {
+ /* The approximate size to use for initial small allocation
+ requests, when the invoking code specifies an old size of
+ zero. This is the largest "small" request for the GNU C
+ library malloc. */
+ enum { DEFAULT_MXFAST = 64 * sizeof (size_t) / 4 };
+
+ 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. */
+ if ((size_t) -1 / 3 * 2 / s <= n)
+ xalloc_die ();
+ n += (n + 1) / 2;
+ }
+
+ *pn = n;
+ return xrealloc (p, n * s);
+}
+
+/* Return a pointer to a new buffer of N bytes. This is like xmalloc,
+ except it returns char *. */
+
+static_inline char *xcharalloc (size_t n)
+ _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_ALLOC_SIZE ((1));
+static_inline char *
+xcharalloc (size_t n)
+{
+ return XNMALLOC (n, char);
+}
+
+# endif
+
+# ifdef __cplusplus
+}
+
+/* C++ does not allow conversions from void * to other pointer types
+ without a cast. Use templates to work around the problem when
+ possible. */
+
+template <typename T> inline T *
+xrealloc (T *p, size_t s)
+{
+ return (T *) xrealloc ((void *) p, s);
+}
+
+template <typename T> inline T *
+xnrealloc (T *p, size_t n, size_t s)
+{
+ return (T *) xnrealloc ((void *) p, n, s);
+}
+
+template <typename T> inline T *
+x2realloc (T *p, size_t *pn)
+{
+ return (T *) x2realloc ((void *) p, pn);
+}
+
+template <typename T> inline T *
+x2nrealloc (T *p, size_t *pn, size_t s)
+{
+ return (T *) x2nrealloc ((void *) p, pn, s);
+}
+
+template <typename T> inline T *
+xmemdup (T const *p, size_t s)
+{
+ return (T *) xmemdup ((void const *) p, s);
+}
+
+# endif
+
+
+#endif /* !XALLOC_H_ */
diff --git a/gnu/xasprintf.c b/gnu/xasprintf.c
new file mode 100644
index 00000000..4524b254
--- /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-2012 Free Software Foundation,
+ Inc.
+
+ This 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/gnu/xgetcwd.c b/gnu/xgetcwd.c
new file mode 100644
index 00000000..7ad430da
--- /dev/null
+++ b/gnu/xgetcwd.c
@@ -0,0 +1,43 @@
+/* -*- 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, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 "xgetcwd.h"
+
+#include <errno.h>
+#include <unistd.h>
+
+#include "xalloc.h"
+
+/* Return the current directory, newly allocated.
+ Upon an out-of-memory error, call xalloc_die.
+ Upon any other type of error, return NULL. */
+
+char *
+xgetcwd (void)
+{
+ char *cwd = getcwd (NULL, 0);
+ if (! cwd && errno == ENOMEM)
+ xalloc_die ();
+ return cwd;
+}
diff --git a/gnu/xgetcwd.h b/gnu/xgetcwd.h
new file mode 100644
index 00000000..4e74e0a6
--- /dev/null
+++ b/gnu/xgetcwd.h
@@ -0,0 +1,19 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* prototype for xgetcwd
+ Copyright (C) 1995, 2001, 2003, 2009-2012 Free Software Foundation, Inc.
+
+ This 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/>. */
+
+extern char *xgetcwd (void);
diff --git a/gnu/xmalloc.c b/gnu/xmalloc.c
new file mode 100644
index 00000000..074f3bfa
--- /dev/null
+++ b/gnu/xmalloc.c
@@ -0,0 +1,126 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* xmalloc.c -- malloc with out of memory checking
+
+ Copyright (C) 1990-2000, 2002-2006, 2008-2012 Free Software Foundation, Inc.
+
+ This 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>
+
+#if ! HAVE_INLINE
+# define static_inline
+#endif
+#include "xalloc.h"
+#undef static_inline
+
+#include <stdlib.h>
+#include <string.h>
+
+/* 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_GNU and supports the GNU API even on non-GNU platforms. */
+#if defined HAVE_CALLOC_GNU || (defined __GLIBC__ && !defined __UCLIBC__)
+enum { HAVE_GNU_CALLOC = 1 };
+#else
+enum { HAVE_GNU_CALLOC = 0 };
+#endif
+
+/* Allocate N bytes of memory dynamically, with error checking. */
+
+void *
+xmalloc (size_t n)
+{
+ void *p = malloc (n);
+ if (!p && n != 0)
+ xalloc_die ();
+ return p;
+}
+
+/* Change the size of an allocated block of memory P to N bytes,
+ with error checking. */
+
+void *
+xrealloc (void *p, size_t n)
+{
+ if (!n && p)
+ {
+ /* The GNU and C99 realloc behaviors disagree here. Act like
+ GNU, even if the underlying realloc is C99. */
+ free (p);
+ return NULL;
+ }
+
+ p = realloc (p, n);
+ if (!p && n)
+ xalloc_die ();
+ return p;
+}
+
+/* If P is null, allocate a block of at least *PN bytes; otherwise,
+ reallocate P so that it contains more than *PN bytes. *PN must be
+ nonzero unless P is null. Set *PN to the new block's size, and
+ return the pointer to the new block. *PN is never set to zero, and
+ the returned pointer is never null. */
+
+void *
+x2realloc (void *p, size_t *pn)
+{
+ return x2nrealloc (p, pn, 1);
+}
+
+/* Allocate S bytes of zeroed memory dynamically, with error checking.
+ There's no need for xnzalloc (N, S), since it would be equivalent
+ to xcalloc (N, S). */
+
+void *
+xzalloc (size_t s)
+{
+ return memset (xmalloc (s), 0, s);
+}
+
+/* Allocate zeroed memory for N elements of S bytes, with error
+ checking. S must be nonzero. */
+
+void *
+xcalloc (size_t n, size_t s)
+{
+ void *p;
+ /* Test for overflow, since some calloc implementations don't have
+ proper overflow checks. But omit overflow and size-zero tests if
+ HAVE_GNU_CALLOC, since GNU calloc catches overflow and never
+ returns NULL if successful. */
+ if ((! HAVE_GNU_CALLOC && xalloc_oversized (n, s))
+ || (! (p = calloc (n, s)) && (HAVE_GNU_CALLOC || n != 0)))
+ xalloc_die ();
+ return p;
+}
+
+/* Clone an object P of size S, with error checking. There's no need
+ for xnmemdup (P, N, S), since xmemdup (P, N * S) works without any
+ need for an arithmetic overflow check. */
+
+void *
+xmemdup (void const *p, size_t s)
+{
+ return memcpy (xmalloc (s), p, s);
+}
+
+/* Clone STRING. */
+
+char *
+xstrdup (char const *string)
+{
+ return xmemdup (string, strlen (string) + 1);
+}
diff --git a/gnu/xsize.h b/gnu/xsize.h
new file mode 100644
index 00000000..34b202d6
--- /dev/null
+++ b/gnu/xsize.h
@@ -0,0 +1,110 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* xsize.h -- Checked size_t computations.
+
+ Copyright (C) 2003, 2008-2012 Free Software Foundation, Inc.
+
+ This 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 _XSIZE_H
+#define _XSIZE_H
+
+/* Get size_t. */
+#include <stddef.h>
+
+/* Get SIZE_MAX. */
+#include <limits.h>
+#if HAVE_STDINT_H
+# include <stdint.h>
+#endif
+
+/* The size of memory objects is often computed through expressions of
+ type size_t. Example:
+ void* p = malloc (header_size + n * element_size).
+ These computations can lead to overflow. When this happens, malloc()
+ returns a piece of memory that is way too small, and the program then
+ crashes while attempting to fill the memory.
+ To avoid this, the functions and macros in this file check for overflow.
+ The convention is that SIZE_MAX represents overflow.
+ malloc (SIZE_MAX) is not guaranteed to fail -- think of a malloc
+ implementation that uses mmap --, it's recommended to use size_overflow_p()
+ or size_in_bounds_p() before invoking malloc().
+ The example thus becomes:
+ size_t size = xsum (header_size, xtimes (n, element_size));
+ void *p = (size_in_bounds_p (size) ? malloc (size) : NULL);
+*/
+
+/* Convert an arbitrary value >= 0 to type size_t. */
+#define xcast_size_t(N) \
+ ((N) <= SIZE_MAX ? (size_t) (N) : SIZE_MAX)
+
+/* Sum of two sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum (size_t size1, size_t size2)
+{
+ size_t sum = size1 + size2;
+ return (sum >= size1 ? sum : SIZE_MAX);
+}
+
+/* Sum of three sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum3 (size_t size1, size_t size2, size_t size3)
+{
+ return xsum (xsum (size1, size2), size3);
+}
+
+/* Sum of four sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xsum4 (size_t size1, size_t size2, size_t size3, size_t size4)
+{
+ return xsum (xsum (xsum (size1, size2), size3), size4);
+}
+
+/* Maximum of two sizes, with overflow check. */
+static inline size_t
+#if __GNUC__ >= 3
+__attribute__ ((__pure__))
+#endif
+xmax (size_t size1, size_t size2)
+{
+ /* No explicit check is needed here, because for any n:
+ max (SIZE_MAX, n) == SIZE_MAX and max (n, SIZE_MAX) == SIZE_MAX. */
+ return (size1 >= size2 ? size1 : size2);
+}
+
+/* Multiplication of a count with an element size, with overflow check.
+ The count must be >= 0 and the element size must be > 0.
+ This is a macro, not an inline function, so that it works correctly even
+ when N is of a wider type and N > SIZE_MAX. */
+#define xtimes(N, ELSIZE) \
+ ((N) <= SIZE_MAX / (ELSIZE) ? (size_t) (N) * (ELSIZE) : SIZE_MAX)
+
+/* Check for overflow. */
+#define size_overflow_p(SIZE) \
+ ((SIZE) == SIZE_MAX)
+/* Check against overflow. */
+#define size_in_bounds_p(SIZE) \
+ ((SIZE) != SIZE_MAX)
+
+#endif /* _XSIZE_H */
diff --git a/gnu/xstrndup.c b/gnu/xstrndup.c
new file mode 100644
index 00000000..6d06eb97
--- /dev/null
+++ b/gnu/xstrndup.c
@@ -0,0 +1,38 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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 "xstrndup.h"
+
+#include <string.h>
+#include "xalloc.h"
+
+/* Return a newly allocated copy of at most N bytes of STRING.
+ In other words, return a copy of the initial segment of length N of
+ STRING. */
+char *
+xstrndup (const char *string, size_t n)
+{
+ char *s = strndup (string, n);
+ if (! s)
+ xalloc_die ();
+ return s;
+}
diff --git a/gnu/xstrndup.h b/gnu/xstrndup.h
new file mode 100644
index 00000000..60905f1a
--- /dev/null
+++ b/gnu/xstrndup.h
@@ -0,0 +1,25 @@
+/* -*- 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, 2009-2012 Free Software Foundation, Inc.
+
+ This 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>
+
+/* Return a newly allocated copy of at most N bytes of STRING.
+ In other words, return a copy of the initial segment of length N of
+ STRING. */
+extern char *xstrndup (const char *string, size_t n);
diff --git a/gnu/xstrtol-error.c b/gnu/xstrtol-error.c
new file mode 100644
index 00000000..19dada8e
--- /dev/null
+++ b/gnu/xstrtol-error.c
@@ -0,0 +1,100 @@
+/* -*- 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-2012 Free Software
+ Foundation, Inc.
+
+ This 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 "xstrtol.h"
+
+#include <stdlib.h>
+
+#include "error.h"
+#include "exitfail.h"
+#include "gettext.h"
+
+#define N_(msgid) msgid
+
+/* Report an error for an invalid integer in an option argument.
+
+ ERR is the error code returned by one of the xstrto* functions.
+
+ Use OPT_IDX to decide whether to print the short option string "C"
+ or "-C" or a long option string derived from LONG_OPTION. OPT_IDX
+ is -2 if the short option "C" was used, without any leading "-"; it
+ is -1 if the short option "-C" was used; otherwise it is an index
+ into LONG_OPTIONS, which should have a name preceded by two '-'
+ characters.
+
+ ARG is the option-argument containing the integer.
+
+ After reporting an error, exit with status EXIT_STATUS if it is
+ nonzero. */
+
+static void
+xstrtol_error (enum strtol_error err,
+ int opt_idx, char c, struct option const *long_options,
+ char const *arg,
+ int exit_status)
+{
+ char const *hyphens = "--";
+ char const *msgid;
+ char const *option;
+ char option_buffer[2];
+
+ switch (err)
+ {
+ default:
+ abort ();
+
+ case LONGINT_INVALID:
+ msgid = N_("invalid %s%s argument '%s'");
+ break;
+
+ case LONGINT_INVALID_SUFFIX_CHAR:
+ case LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW:
+ msgid = N_("invalid suffix in %s%s argument '%s'");
+ break;
+
+ case LONGINT_OVERFLOW:
+ msgid = N_("%s%s argument '%s' too large");
+ break;
+ }
+
+ if (opt_idx < 0)
+ {
+ hyphens -= opt_idx;
+ option_buffer[0] = c;
+ option_buffer[1] = '\0';
+ option = option_buffer;
+ }
+ else
+ option = long_options[opt_idx].name;
+
+ error (exit_status, 0, gettext (msgid), hyphens, option, arg);
+}
+
+/* Like xstrtol_error, except exit with a failure status. */
+
+void
+xstrtol_fatal (enum strtol_error err,
+ 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/gnu/xstrtol.c b/gnu/xstrtol.c
new file mode 100644
index 00000000..cd3f2098
--- /dev/null
+++ b/gnu/xstrtol.c
@@ -0,0 +1,243 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+/* A more useful interface to strtol.
+
+ Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2012 Free Software
+ Foundation, Inc.
+
+ This 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 __strtol
+# define __strtol strtol
+# define __strtol_t long int
+# define __xstrtol xstrtol
+# define STRTOL_T_MINIMUM LONG_MIN
+# define STRTOL_T_MAXIMUM LONG_MAX
+#endif
+
+#include <config.h>
+
+#include "xstrtol.h"
+
+/* Some pre-ANSI implementations (e.g. SunOS 4)
+ need stderr defined if assertion checking is enabled. */
+#include <stdio.h>
+
+#include <assert.h>
+#include <ctype.h>
+#include <errno.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "intprops.h"
+
+/* xstrtoll.c and xstrtoull.c, which include this file, require that
+ ULLONG_MAX, LLONG_MAX, LLONG_MIN are defined, but <limits.h> does not
+ define them on all platforms. */
+#ifndef ULLONG_MAX
+# define ULLONG_MAX TYPE_MAXIMUM (unsigned long long)
+#endif
+#ifndef LLONG_MAX
+# define LLONG_MAX TYPE_MAXIMUM (long long int)
+#endif
+#ifndef LLONG_MIN
+# define LLONG_MIN TYPE_MINIMUM (long long int)
+#endif
+
+static strtol_error
+bkm_scale (__strtol_t *x, int scale_factor)
+{
+ if (TYPE_SIGNED (__strtol_t) && *x < STRTOL_T_MINIMUM / scale_factor)
+ {
+ *x = STRTOL_T_MINIMUM;
+ return LONGINT_OVERFLOW;
+ }
+ if (STRTOL_T_MAXIMUM / scale_factor < *x)
+ {
+ *x = STRTOL_T_MAXIMUM;
+ return LONGINT_OVERFLOW;
+ }
+ *x *= scale_factor;
+ return LONGINT_OK;
+}
+
+static strtol_error
+bkm_scale_by_power (__strtol_t *x, int base, int power)
+{
+ strtol_error err = LONGINT_OK;
+ while (power--)
+ err |= bkm_scale (x, base);
+ return err;
+}
+
+/* FIXME: comment. */
+
+strtol_error
+__xstrtol (const char *s, char **ptr, int strtol_base,
+ __strtol_t *val, const char *valid_suffixes)
+{
+ char *t_ptr;
+ char **p;
+ __strtol_t tmp;
+ strtol_error err = LONGINT_OK;
+
+ assert (0 <= strtol_base && strtol_base <= 36);
+
+ p = (ptr ? ptr : &t_ptr);
+
+ if (! TYPE_SIGNED (__strtol_t))
+ {
+ const char *q = s;
+ unsigned char ch = *q;
+ while (isspace (ch))
+ ch = *++q;
+ if (ch == '-')
+ return LONGINT_INVALID;
+ }
+
+ errno = 0;
+ tmp = __strtol (s, p, 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. */
+ if (valid_suffixes && **p && strchr (valid_suffixes, **p))
+ tmp = 1;
+ else
+ return LONGINT_INVALID;
+ }
+ else if (errno != 0)
+ {
+ if (errno != ERANGE)
+ return LONGINT_INVALID;
+ err = LONGINT_OVERFLOW;
+ }
+
+ /* Let valid_suffixes == NULL mean "allow any suffix". */
+ /* FIXME: update all callers except the ones that allow suffixes
+ after the number, changing last parameter NULL to "". */
+ if (!valid_suffixes)
+ {
+ *val = tmp;
+ return err;
+ }
+
+ if (**p != '\0')
+ {
+ int base = 1024;
+ int suffixes = 1;
+ strtol_error overflow;
+
+ if (!strchr (valid_suffixes, **p))
+ {
+ *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;
+ }
+ }
+
+ 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;
+ }
+
+ err |= overflow;
+ *p += suffixes;
+ if (**p)
+ err |= LONGINT_INVALID_SUFFIX_CHAR;
+ }
+
+ *val = tmp;
+ return err;
+}
diff --git a/gnu/xstrtol.h b/gnu/xstrtol.h
new file mode 100644
index 00000000..c15b21cf
--- /dev/null
+++ b/gnu/xstrtol.h
@@ -0,0 +1,75 @@
+/* -*- 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-2012 Free Software
+ Foundation, Inc.
+
+ This 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 XSTRTOL_H_
+# define XSTRTOL_H_ 1
+
+# include <getopt.h>
+# include <inttypes.h>
+
+# ifndef _STRTOL_ERROR
+enum strtol_error
+ {
+ LONGINT_OK = 0,
+
+ /* These two values can be ORed together, to indicate that both
+ errors occurred. */
+ LONGINT_OVERFLOW = 1,
+ LONGINT_INVALID_SUFFIX_CHAR = 2,
+
+ LONGINT_INVALID_SUFFIX_CHAR_WITH_OVERFLOW = (LONGINT_INVALID_SUFFIX_CHAR
+ | LONGINT_OVERFLOW),
+ LONGINT_INVALID = 4
+ };
+typedef enum strtol_error strtol_error;
+# endif
+
+# define _DECLARE_XSTRTOL(name, type) \
+ strtol_error name (const char *, char **, int, type *, const char *);
+_DECLARE_XSTRTOL (xstrtol, long int)
+_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
+
+/* Report an error for an invalid integer in an option argument.
+
+ ERR is the error code returned by one of the xstrto* functions.
+
+ Use OPT_IDX to decide whether to print the short option string "C"
+ or "-C" or a long option string derived from LONG_OPTION. OPT_IDX
+ is -2 if the short option "C" was used, without any leading "-"; it
+ is -1 if the short option "-C" was used; otherwise it is an index
+ into LONG_OPTIONS, which should have a name preceded by two '-'
+ characters.
+
+ ARG is the option-argument containing the integer.
+
+ After reporting an error, exit with a failure status. */
+
+void _Noreturn xstrtol_fatal (enum strtol_error,
+ int, char, struct option const *,
+ char const *);
+
+#endif /* not XSTRTOL_H_ */
diff --git a/gnu/xstrtoul.c b/gnu/xstrtoul.c
new file mode 100644
index 00000000..63968db7
--- /dev/null
+++ b/gnu/xstrtoul.c
@@ -0,0 +1,8 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#define __strtol strtoul
+#define __strtol_t unsigned long int
+#define __xstrtol xstrtoul
+#define STRTOL_T_MINIMUM 0
+#define STRTOL_T_MAXIMUM ULONG_MAX
+#include "xstrtol.c"
diff --git a/gnu/xstrtoumax.c b/gnu/xstrtoumax.c
new file mode 100644
index 00000000..fce8d5fd
--- /dev/null
+++ b/gnu/xstrtoumax.c
@@ -0,0 +1,8 @@
+/* -*- buffer-read-only: t -*- vi: set ro: */
+/* DO NOT EDIT! GENERATED AUTOMATICALLY! */
+#define __strtol strtoumax
+#define __strtol_t uintmax_t
+#define __xstrtol xstrtoumax
+#define STRTOL_T_MINIMUM 0
+#define STRTOL_T_MAXIMUM UINTMAX_MAX
+#include "xstrtol.c"
diff --git a/gnu/xvasprintf.c b/gnu/xvasprintf.c
new file mode 100644
index 00000000..27c9b413
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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 00000000..436b60e3
--- /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-2012 Free Software Foundation, Inc.
+
+ This 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>
+
+/* 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 _GL_ATTRIBUTE_FORMAT 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 _GL_ATTRIBUTE_FORMAT(spec) __attribute__ ((__format__ spec))
+#else
+# define _GL_ATTRIBUTE_FORMAT(spec) /* empty */
+#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, ...)
+ _GL_ATTRIBUTE_FORMAT ((__printf__, 1, 2));
+extern char *xvasprintf (const char *format, va_list args)
+ _GL_ATTRIBUTE_FORMAT ((__printf__, 1, 0));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _XVASPRINTF_H */
diff --git a/gnulib b/gnulib
new file mode 160000
+Subproject a9097796ff31942ab21b990723569493615f0fa
diff --git a/lib/.gitignore b/lib/.gitignore
index b1a5f865..e69de29b 100644
--- a/lib/.gitignore
+++ b/lib/.gitignore
@@ -1,10 +0,0 @@
-paxerror.c
-paxexit-status.c
-paxexit.c
-paxlib.h
-paxnames.c
-rmt-command.h
-rmt.h
-rtapelib.c
-system-ioctl.h
-system.h
diff --git a/lib/Makefile.in b/lib/Makefile.in
new file mode 100644
index 00000000..423557b5
--- /dev/null
+++ b/lib/Makefile.in
@@ -0,0 +1,1354 @@
+# 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@
+
+# Makefile for GNU tar library. -*- Makefile -*-
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 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, write to the Free Software Foundation, Inc.,
+# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@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 = 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/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/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+ $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.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/double-slash-root.m4 $(top_srcdir)/m4/dup.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/exponentd.m4 \
+ $(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fchdir.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/filenamecat.m4 \
+ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
+ $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+ $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
+ $(top_srcdir)/m4/getcwd-abort-bug.m4 \
+ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.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/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/iswblank.m4 \
+ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.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/libunistring-base.m4 \
+ $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
+ $(top_srcdir)/m4/linkat.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/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
+ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
+ $(top_srcdir)/m4/mkdtemp.m4 $(top_srcdir)/m4/mkfifo.m4 \
+ $(top_srcdir)/m4/mkfifoat.m4 $(top_srcdir)/m4/mknod.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/msvc-inval.m4 \
+ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/open.m4 \
+ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \
+ $(top_srcdir)/m4/parse-datetime.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/raise.m4 \
+ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/read.m4 \
+ $(top_srcdir)/m4/readdir.m4 $(top_srcdir)/m4/readlink.m4 \
+ $(top_srcdir)/m4/readlinkat.m4 $(top_srcdir)/m4/realloc.m4 \
+ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
+ $(top_srcdir)/m4/renameat.m4 $(top_srcdir)/m4/rewinddir.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/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
+ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stdalign.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/strtol.m4 \
+ $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
+ $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+ $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
+ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
+ $(top_srcdir)/m4/sys_types_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/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+ $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+ $(top_srcdir)/m4/utimensat.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)
+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)
+libtar_a_LIBADD =
+am_libtar_a_OBJECTS = paxerror.$(OBJEXT) paxexit-status.$(OBJEXT) \
+ paxnames.$(OBJEXT) prepargs.$(OBJEXT) rtapelib.$(OBJEXT) \
+ stdopen.$(OBJEXT)
+libtar_a_OBJECTS = $(am_libtar_a_OBJECTS)
+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 " $@;
+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)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = @pkglibexecdir@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+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_CHDIR = @GNULIB_CHDIR@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@
+GNULIB_DIRFD = @GNULIB_DIRFD@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
+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_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+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_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
+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_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
+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_GETS = @GNULIB_GETS@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
+GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
+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_MBTOWC = @GNULIB_MBTOWC@
+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_NONBLOCKING = @GNULIB_NONBLOCKING@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
+GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
+GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
+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_REWINDDIR = @GNULIB_REWINDDIR@
+GNULIB_RMDIR = @GNULIB_RMDIR@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SIGACTION = @GNULIB_SIGACTION@
+GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
+GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+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_STRERROR_R = @GNULIB_STRERROR_R@
+GNULIB_STRNCAT = @GNULIB_STRNCAT@
+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_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TIMEGM = @GNULIB_TIMEGM@
+GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNLINK = @GNULIB_UNLINK@
+GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
+GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
+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_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
+GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
+GREP = @GREP@
+HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
+HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
+HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
+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_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_DUP3 = @HAVE_DUP3@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FACCESSAT = @HAVE_FACCESSAT@
+HAVE_FCHDIR = @HAVE_FCHDIR@
+HAVE_FCHMODAT = @HAVE_FCHMODAT@
+HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSTATAT = @HAVE_FSTATAT@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_FUTIMENS = @HAVE_FUTIMENS@
+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_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWBLANK = @HAVE_ISWBLANK@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
+HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
+HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
+HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
+HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
+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_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSLEN = @HAVE_MBSLEN@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMCHR = @HAVE_MEMCHR@
+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_MKSTEMP = @HAVE_MKSTEMP@
+HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
+HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
+HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
+HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
+HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
+HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
+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_SIGSET_T = @HAVE_SIGSET_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_STRINGS_H = @HAVE_STRINGS_H@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRPTIME = @HAVE_STRPTIME@
+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_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+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_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNLINKAT = @HAVE_UNLINKAT@
+HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
+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_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
+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@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+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_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_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_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_SIGNAL_H = @NEXT_SIGNAL_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_SYS_TYPES_H = @NEXT_SYS_TYPES_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_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PU_RMT_PROG = @PU_RMT_PROG@
+RANLIB = @RANLIB@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
+REPLACE_DIRFD = @REPLACE_DIRFD@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_DUP = @REPLACE_DUP@
+REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+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_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
+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_MALLOC = @REPLACE_MALLOC@
+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_MBTOWC = @REPLACE_MBTOWC@
+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_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
+REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
+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_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPNCPY = @REPLACE_STPNCPY@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
+REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNDUP = @REPLACE_STRNDUP@
+REPLACE_STRNLEN = @REPLACE_STRNLEN@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
+REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
+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_WCSWIDTH = @REPLACE_WCSWIDTH@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
+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@
+STDALIGN_H = @STDALIGN_H@
+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@
+gltests_WITNESS = @gltests_WITNESS@
+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@
+lispdir = @lispdir@
+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@
+noinst_LIBRARIES = libtar.a
+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-status.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-am
+
+.SUFFIXES:
+.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 ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ 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 \
+ *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)
+libtar.a: $(libtar_a_OBJECTS) $(libtar_a_DEPENDENCIES)
+ $(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)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paxerror.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paxexit-status.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/paxnames.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/prepargs.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rtapelib.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/stdopen.Po@am__quote@
+
+.c.o:
+@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@ $(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) '$<'`
+
+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: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ 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: $(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
+check-am: all-am
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-am
+all-am: Makefile $(LIBRARIES) $(HEADERS)
+installdirs:
+install: $(BUILT_SOURCES)
+ $(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-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:
+
+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)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-am
+
+clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+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:
+
+maintainer-clean: maintainer-clean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: all check install install-am install-strip
+
+.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
+ $(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/paxerror.c b/lib/paxerror.c
new file mode 100644
index 00000000..56903a3e
--- /dev/null
+++ b/lib/paxerror.c
@@ -0,0 +1,359 @@
+/* Miscellaneous error functions
+
+ Copyright (C) 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. */
+
+#include <system.h>
+#include <paxlib.h>
+#include <quote.h>
+#include <quotearg.h>
+
+/* Decode MODE from its binary form in a stat structure, and encode it
+ into a 9-byte string STRING, terminated with a NUL. */
+
+void
+pax_decode_mode (mode_t mode, char *string)
+{
+ *string++ = mode & S_IRUSR ? 'r' : '-';
+ *string++ = mode & S_IWUSR ? 'w' : '-';
+ *string++ = (mode & S_ISUID
+ ? (mode & S_IXUSR ? 's' : 'S')
+ : (mode & S_IXUSR ? 'x' : '-'));
+ *string++ = mode & S_IRGRP ? 'r' : '-';
+ *string++ = mode & S_IWGRP ? 'w' : '-';
+ *string++ = (mode & S_ISGID
+ ? (mode & S_IXGRP ? 's' : 'S')
+ : (mode & S_IXGRP ? 'x' : '-'));
+ *string++ = mode & S_IROTH ? 'r' : '-';
+ *string++ = mode & S_IWOTH ? 'w' : '-';
+ *string++ = (mode & S_ISVTX
+ ? (mode & S_IXOTH ? 't' : 'T')
+ : (mode & S_IXOTH ? 'x' : '-'));
+ *string = '\0';
+}
+
+/* Report an error associated with the system call CALL and the
+ optional name NAME. */
+void
+call_arg_error (char const *call, char const *name)
+{
+ int e = errno;
+ /* 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'. */
+ ERROR ((0, e, _("%s: Cannot %s"), quotearg_colon (name), call));
+}
+
+/* Report a fatal error associated with the system call CALL and
+ the optional file name NAME. */
+void
+call_arg_fatal (char const *call, char const *name)
+{
+ int e = errno;
+ /* 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'. */
+ FATAL_ERROR ((0, e, _("%s: Cannot %s"), quotearg_colon (name), call));
+}
+
+/* Report a warning associated with the system call CALL and
+ the optional file name NAME. */
+void
+call_arg_warn (char const *call, char const *name)
+{
+ int e = errno;
+ /* 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'. */
+ WARN ((0, e, _("%s: Warning: Cannot %s"), quotearg_colon (name), call));
+}
+
+void
+chmod_error_details (char const *name, mode_t mode)
+{
+ int e = errno;
+ char buf[10];
+ pax_decode_mode (mode, buf);
+ ERROR ((0, e, _("%s: Cannot change mode to %s"),
+ quotearg_colon (name), buf));
+}
+
+void
+chown_error_details (char const *name, uid_t uid, gid_t gid)
+{
+ int e = errno;
+ ERROR ((0, e, _("%s: Cannot change ownership to uid %lu, gid %lu"),
+ quotearg_colon (name), (unsigned long) uid, (unsigned long) gid));
+}
+
+void
+close_error (char const *name)
+{
+ call_arg_error ("close", name);
+}
+
+void
+close_warn (char const *name)
+{
+ call_arg_warn ("close", name);
+}
+
+void
+exec_fatal (char const *name)
+{
+ call_arg_fatal ("exec", name);
+}
+
+void
+link_error (char const *target, char const *source)
+{
+ int e = errno;
+ ERROR ((0, e, _("%s: Cannot hard link to %s"),
+ quotearg_colon (source), quote_n (1, target)));
+}
+
+void
+mkdir_error (char const *name)
+{
+ call_arg_error ("mkdir", name);
+}
+
+void
+mkfifo_error (char const *name)
+{
+ call_arg_error ("mkfifo", name);
+}
+
+void
+mknod_error (char const *name)
+{
+ call_arg_error ("mknod", name);
+}
+
+void
+open_error (char const *name)
+{
+ call_arg_error ("open", name);
+}
+
+void
+open_fatal (char const *name)
+{
+ call_arg_fatal ("open", name);
+}
+
+void
+open_warn (char const *name)
+{
+ call_arg_warn ("open", name);
+}
+
+void
+read_error (char const *name)
+{
+ call_arg_error ("read", name);
+}
+
+void
+read_error_details (char const *name, off_t offset, size_t size)
+{
+ char buf[UINTMAX_STRSIZE_BOUND];
+ int e = errno;
+ ERROR ((0, e,
+ ngettext ("%s: Read error at byte %s, while reading %lu byte",
+ "%s: Read error at byte %s, while reading %lu bytes",
+ size),
+ quotearg_colon (name), STRINGIFY_BIGINT (offset, buf),
+ (unsigned long) size));
+}
+
+void
+read_warn_details (char const *name, off_t offset, size_t size)
+{
+ char buf[UINTMAX_STRSIZE_BOUND];
+ int e = errno;
+ WARN ((0, e,
+ ngettext ("%s: Warning: Read error at byte %s, while reading %lu byte",
+ "%s: Warning: Read error at byte %s, while reading %lu bytes",
+ size),
+ quotearg_colon (name), STRINGIFY_BIGINT (offset, buf),
+ (unsigned long) size));
+}
+
+void
+read_fatal (char const *name)
+{
+ call_arg_fatal ("read", name);
+}
+
+void
+read_fatal_details (char const *name, off_t offset, size_t size)
+{
+ char buf[UINTMAX_STRSIZE_BOUND];
+ int e = errno;
+ FATAL_ERROR ((0, e,
+ ngettext ("%s: Read error at byte %s, while reading %lu byte",
+ "%s: Read error at byte %s, while reading %lu bytes",
+ size),
+ quotearg_colon (name), STRINGIFY_BIGINT (offset, buf),
+ (unsigned long) size));
+}
+
+void
+readlink_error (char const *name)
+{
+ call_arg_error ("readlink", name);
+}
+
+void
+readlink_warn (char const *name)
+{
+ call_arg_warn ("readlink", name);
+}
+
+void
+rmdir_error (char const *name)
+{
+ call_arg_error ("rmdir", name);
+}
+
+void
+savedir_error (char const *name)
+{
+ call_arg_error ("savedir", name);
+}
+
+void
+savedir_warn (char const *name)
+{
+ call_arg_warn ("savedir", name);
+}
+
+void
+seek_error (char const *name)
+{
+ call_arg_error ("seek", name);
+}
+
+void
+seek_error_details (char const *name, off_t offset)
+{
+ char buf[UINTMAX_STRSIZE_BOUND];
+ int e = errno;
+ ERROR ((0, e, _("%s: Cannot seek to %s"),
+ quotearg_colon (name),
+ STRINGIFY_BIGINT (offset, buf)));
+}
+
+void
+seek_warn (char const *name)
+{
+ call_arg_warn ("seek", name);
+}
+
+void
+seek_warn_details (char const *name, off_t offset)
+{
+ char buf[UINTMAX_STRSIZE_BOUND];
+ int e = errno;
+ WARN ((0, e, _("%s: Warning: Cannot seek to %s"),
+ quotearg_colon (name),
+ STRINGIFY_BIGINT (offset, buf)));
+}
+
+void
+symlink_error (char const *contents, char const *name)
+{
+ int e = errno;
+ ERROR ((0, e, _("%s: Cannot create symlink to %s"),
+ quotearg_colon (name), quote_n (1, contents)));
+}
+
+void
+stat_fatal (char const *name)
+{
+ call_arg_fatal ("stat", name);
+}
+
+void
+stat_error (char const *name)
+{
+ call_arg_error ("stat", name);
+}
+
+void
+stat_warn (char const *name)
+{
+ call_arg_warn ("stat", name);
+}
+
+void
+truncate_error (char const *name)
+{
+ call_arg_error ("truncate", name);
+}
+
+void
+truncate_warn (char const *name)
+{
+ call_arg_warn ("truncate", name);
+}
+
+void
+unlink_error (char const *name)
+{
+ call_arg_error ("unlink", name);
+}
+
+void
+utime_error (char const *name)
+{
+ call_arg_error ("utime", name);
+}
+
+void
+waitpid_error (char const *name)
+{
+ call_arg_error ("waitpid", name);
+}
+
+void
+write_error (char const *name)
+{
+ call_arg_error ("write", name);
+}
+
+void
+write_error_details (char const *name, size_t status, size_t size)
+{
+ if (status == 0)
+ write_error (name);
+ else
+ ERROR ((0, 0,
+ ngettext ("%s: Wrote only %lu of %lu byte",
+ "%s: Wrote only %lu of %lu bytes",
+ size),
+ name, (unsigned long int) status, (unsigned long int) size));
+}
+
+void
+chdir_fatal (char const *name)
+{
+ call_arg_fatal ("chdir", name);
+}
diff --git a/lib/paxexit-status.c b/lib/paxexit-status.c
new file mode 100644
index 00000000..3c244abd
--- /dev/null
+++ b/lib/paxexit-status.c
@@ -0,0 +1,3 @@
+#include <system.h>
+#include <paxlib.h>
+int exit_status = PAXEXIT_SUCCESS;
diff --git a/lib/paxexit.c b/lib/paxexit.c
new file mode 100644
index 00000000..c36e7d56
--- /dev/null
+++ b/lib/paxexit.c
@@ -0,0 +1,26 @@
+/* Miscellaneous error functions
+
+ Copyright (C) 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. */
+
+#include <system.h>
+#include <paxlib.h>
+
+void
+pax_exit ()
+{
+ exit (exit_status);
+}
diff --git a/lib/paxlib.h b/lib/paxlib.h
new file mode 100644
index 00000000..d0ba45ba
--- /dev/null
+++ b/lib/paxlib.h
@@ -0,0 +1,112 @@
+/* This file is part of GNU paxutils
+
+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 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.
+*/
+
+#ifndef _paxlib_h_
+#define _paxlib_h_
+
+#include <inttostr.h>
+
+/* Error reporting functions and definitions */
+
+/* Exit status for paxutils app. Let's try to keep this list as simple as
+ possible. tar -d option strongly invites a status different for unequal
+ comparison and other errors. */
+#define PAXEXIT_SUCCESS 0
+#define PAXEXIT_DIFFERS 1
+#define PAXEXIT_FAILURE 2
+
+/* Both WARN and ERROR write a message on stderr and continue processing,
+ however ERROR manages so tar will exit unsuccessfully. FATAL_ERROR
+ writes a message on stderr and aborts immediately, with another message
+ line telling so. USAGE_ERROR works like FATAL_ERROR except that the
+ other message line suggests trying --help. All four macros accept a
+ single argument of the form ((0, errno, _("FORMAT"), Args...)). errno
+ is zero when the error is not being detected by the system. */
+
+#define WARN(Args) \
+ error Args
+#define ERROR(Args) \
+ (error Args, exit_status = PAXEXIT_FAILURE)
+#define FATAL_ERROR(Args) \
+ (error Args, fatal_exit ())
+#define USAGE_ERROR(Args) \
+ (error Args, usage (PAXEXIT_FAILURE))
+
+extern int exit_status;
+
+void pax_decode_mode (mode_t mode, char *string);
+void call_arg_error (char const *call, char const *name);
+void call_arg_fatal (char const *call, char const *name) __attribute__ ((noreturn));
+void call_arg_warn (char const *call, char const *name);
+void chmod_error_details (char const *name, mode_t mode);
+void chown_error_details (char const *name, uid_t uid, gid_t gid);
+
+void decode_mode (mode_t, char *);
+
+void chdir_fatal (char const *) __attribute__ ((noreturn));
+void chmod_error_details (char const *, mode_t);
+void chown_error_details (char const *, uid_t, gid_t);
+void close_error (char const *);
+void close_warn (char const *);
+void exec_fatal (char const *) __attribute__ ((noreturn));
+void link_error (char const *, char const *);
+void mkdir_error (char const *);
+void mkfifo_error (char const *);
+void mknod_error (char const *);
+void open_error (char const *);
+void open_fatal (char const *) __attribute__ ((noreturn));
+void open_warn (char const *);
+void read_error (char const *);
+void read_error_details (char const *, off_t, size_t);
+void read_fatal (char const *) __attribute__ ((noreturn));
+void read_fatal_details (char const *, off_t, size_t) __attribute__ ((noreturn));
+void read_warn_details (char const *, off_t, size_t);
+void readlink_error (char const *);
+void readlink_warn (char const *);
+void rmdir_error (char const *);
+void savedir_error (char const *);
+void savedir_warn (char const *);
+void seek_error (char const *);
+void seek_error_details (char const *, off_t);
+void seek_warn (char const *);
+void seek_warn_details (char const *, off_t);
+void stat_fatal (char const *) __attribute__ ((noreturn));
+void stat_error (char const *);
+void stat_warn (char const *);
+void symlink_error (char const *, char const *);
+void truncate_error (char const *);
+void truncate_warn (char const *);
+void unlink_error (char const *);
+void utime_error (char const *);
+void waitpid_error (char const *);
+void write_error (char const *);
+void write_error_details (char const *, size_t, size_t);
+
+void pax_exit (void) __attribute__ ((noreturn));
+void fatal_exit (void) __attribute__ ((noreturn));
+
+#define STRINGIFY_BIGINT(i, b) umaxtostr (i, b)
+
+
+/* Name-related functions */
+bool removed_prefixes_p (void);
+char *safer_name_suffix (char const *file_name, bool link_target, bool absolute_names);
+
+#endif
diff --git a/lib/paxnames.c b/lib/paxnames.c
new file mode 100644
index 00000000..5766d4cc
--- /dev/null
+++ b/lib/paxnames.c
@@ -0,0 +1,164 @@
+/* This file is part of GNU paxutils
+ Copyright (C) 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
+ 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 <hash.h>
+#include <paxlib.h>
+
+
+/* Hash tables of strings. */
+
+/* Calculate the hash of a string. */
+static size_t
+hash_string_hasher (void const *name, size_t n_buckets)
+{
+ return hash_string (name, n_buckets);
+}
+
+/* Compare two strings for equality. */
+static bool
+hash_string_compare (void const *name1, void const *name2)
+{
+ return strcmp (name1, name2) == 0;
+}
+
+/* Return zero if TABLE contains a LEN-character long prefix of STRING,
+ otherwise, insert a newly allocated copy of this prefix to TABLE and
+ return 1. If RETURN_PREFIX is not NULL, point it to the allocated
+ copy. */
+static bool
+hash_string_insert_prefix (Hash_table **table, char const *string, size_t len,
+ const char **return_prefix)
+{
+ Hash_table *t = *table;
+ char *s;
+ char *e;
+
+ if (len)
+ {
+ s = xmalloc (len + 1);
+ memcpy (s, string, len);
+ s[len] = 0;
+ }
+ else
+ s = xstrdup (string);
+
+ if (! ((t
+ || (*table = t = hash_initialize (0, 0, hash_string_hasher,
+ hash_string_compare, 0)))
+ && (e = hash_insert (t, s))))
+ xalloc_die ();
+
+ if (e == s)
+ {
+ if (return_prefix)
+ *return_prefix = s;
+ return 1;
+ }
+ else
+ {
+ free (s);
+ return 0;
+ }
+}
+
+
+static Hash_table *prefix_table[2];
+
+/* Return true if file names of some members in the archive were stripped off
+ their leading components. We could have used
+ return prefix_table[0] || prefix_table[1]
+ but the following seems to be safer: */
+bool
+removed_prefixes_p (void)
+{
+ return (prefix_table[0] && hash_get_n_entries (prefix_table[0]) != 0)
+ || (prefix_table[1] && hash_get_n_entries (prefix_table[1]) != 0);
+}
+
+/* Return a safer suffix of FILE_NAME, or "." if it has no safer
+ suffix. Check for fully specified file names and other atrocities.
+ Warn the user if we do not return NAME. If LINK_TARGET is 1,
+ FILE_NAME is the target of a hard link, not a member name.
+ If ABSOLUTE_NAMES is 0, strip filesystem prefix from the file name. */
+
+char *
+safer_name_suffix (char const *file_name, bool link_target,
+ bool absolute_names)
+{
+ char const *p;
+
+ if (absolute_names)
+ p = file_name;
+ else
+ {
+ /* Skip file system prefixes, leading file name components that contain
+ "..", and leading slashes. */
+
+ size_t prefix_len = FILE_SYSTEM_PREFIX_LEN (file_name);
+
+ for (p = file_name + prefix_len; *p; )
+ {
+ if (p[0] == '.' && p[1] == '.' && (ISSLASH (p[2]) || !p[2]))
+ prefix_len = p + 2 - file_name;
+
+ do
+ {
+ char c = *p++;
+ if (ISSLASH (c))
+ break;
+ }
+ while (*p);
+ }
+
+ for (p = file_name + prefix_len; ISSLASH (*p); p++)
+ continue;
+ prefix_len = p - file_name;
+
+ if (prefix_len)
+ {
+ const char *prefix;
+ if (hash_string_insert_prefix (&prefix_table[link_target], file_name,
+ prefix_len, &prefix))
+ {
+ static char const *const diagnostic[] =
+ {
+ N_("Removing leading `%s' from member names"),
+ N_("Removing leading `%s' from hard link targets")
+ };
+ WARN ((0, 0, _(diagnostic[link_target]), prefix));
+ }
+ }
+ }
+
+ if (! *p)
+ {
+ if (p == file_name)
+ {
+ static char const *const diagnostic[] =
+ {
+ N_("Substituting `.' for empty member name"),
+ N_("Substituting `.' for empty hard link target")
+ };
+ WARN ((0, 0, "%s", _(diagnostic[link_target])));
+ }
+
+ p = ".";
+ }
+
+ return (char *) p;
+}
diff --git a/lib/rmt.h b/lib/rmt.h
new file mode 100644
index 00000000..2ce9dc51
--- /dev/null
+++ b/lib/rmt.h
@@ -0,0 +1,99 @@
+/* Definitions for communicating with a remote tape drive.
+
+ Copyright (C) 1988, 1992, 1996, 1997, 2001, 2003, 2004, 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. */
+
+extern char *rmt_command;
+extern char *rmt_dev_name__;
+
+int rmt_open__ (const char *, int, int, const char *);
+int rmt_close__ (int);
+size_t rmt_read__ (int, char *, size_t);
+size_t rmt_write__ (int, char *, size_t);
+off_t rmt_lseek__ (int, off_t, int);
+int rmt_ioctl__ (int, int, char *);
+
+extern bool force_local_option;
+
+/* A filename is remote if it contains a colon not preceded by a slash,
+ to take care of `/:/' which is a shorthand for `/.../<CELL-NAME>/fs'
+ on machines running OSF's Distributing Computing Environment (DCE) and
+ Distributed File System (DFS). However, when --force-local, a
+ filename is never remote. */
+
+#define _remdev(dev_name) \
+ (!force_local_option && (rmt_dev_name__ = strchr (dev_name, ':')) \
+ && rmt_dev_name__ > (dev_name) \
+ && ! memchr (dev_name, '/', rmt_dev_name__ - (dev_name)))
+
+#define _isrmt(fd) \
+ ((fd) >= __REM_BIAS)
+
+#define __REM_BIAS (1 << 30)
+
+#ifndef O_CREAT
+# define O_CREAT 01000
+#endif
+
+#define rmtopen(dev_name, oflag, mode, command) \
+ (_remdev (dev_name) ? rmt_open__ (dev_name, oflag, __REM_BIAS, command) \
+ : open (dev_name, oflag, mode))
+
+#define rmtaccess(dev_name, amode) \
+ (_remdev (dev_name) ? 0 : access (dev_name, amode))
+
+#define rmtstat(dev_name, buffer) \
+ (_remdev (dev_name) ? (errno = EOPNOTSUPP), -1 : stat (dev_name, buffer))
+
+#define rmtcreat(dev_name, mode, command) \
+ (_remdev (dev_name) \
+ ? rmt_open__ (dev_name, O_CREAT | O_WRONLY, __REM_BIAS, command) \
+ : creat (dev_name, mode))
+
+#define rmtlstat(dev_name, muffer) \
+ (_remdev (dev_name) ? (errno = EOPNOTSUPP), -1 : lstat (dev_name, buffer))
+
+#define rmtread(fd, buffer, length) \
+ (_isrmt (fd) ? rmt_read__ (fd - __REM_BIAS, buffer, length) \
+ : safe_read (fd, buffer, length))
+
+#define rmtwrite(fd, buffer, length) \
+ (_isrmt (fd) ? rmt_write__ (fd - __REM_BIAS, buffer, length) \
+ : full_write (fd, buffer, length))
+
+#define rmtlseek(fd, offset, where) \
+ (_isrmt (fd) ? rmt_lseek__ (fd - __REM_BIAS, offset, where) \
+ : lseek (fd, offset, where))
+
+#define rmtclose(fd) \
+ (_isrmt (fd) ? rmt_close__ (fd - __REM_BIAS) : close (fd))
+
+#define rmtioctl(fd, request, argument) \
+ (_isrmt (fd) ? rmt_ioctl__ (fd - __REM_BIAS, request, argument) \
+ : ioctl (fd, request, argument))
+
+#define rmtdup(fd) \
+ (_isrmt (fd) ? (errno = EOPNOTSUPP), -1 : dup (fd))
+
+#define rmtfstat(fd, buffer) \
+ (_isrmt (fd) ? (errno = EOPNOTSUPP), -1 : fstat (fd, buffer))
+
+#define rmtfcntl(cd, command, argument) \
+ (_isrmt (fd) ? (errno = EOPNOTSUPP), -1 : fcntl (fd, command, argument))
+
+#define rmtisatty(fd) \
+ (_isrmt (fd) ? 0 : isatty (fd))
diff --git a/lib/rtapelib.c b/lib/rtapelib.c
new file mode 100644
index 00000000..3aee4286
--- /dev/null
+++ b/lib/rtapelib.c
@@ -0,0 +1,750 @@
+/* Functions for communicating with a remote tape drive.
+
+ Copyright (C) 1988, 1992, 1994, 1996, 1997, 1999, 2000, 2001, 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. */
+
+/* The man page rmt(8) for /etc/rmt documents the remote mag tape protocol
+ which rdump and rrestore use. Unfortunately, the man page is *WRONG*.
+ The author of the routines I'm including originally wrote his code just
+ based on the man page, and it didn't work, so he went to the rdump source
+ to figure out why. The only thing he had to change was to check for the
+ 'F' return code in addition to the 'E', and to separate the various
+ arguments with \n instead of a space. I personally don't think that this
+ is much of a problem, but I wanted to point it out. -- Arnold Robbins
+
+ Originally written by Jeff Lee, modified some by Arnold Robbins. Redone
+ as a library that can replace open, read, write, etc., by Fred Fish, with
+ some additional work by Arnold Robbins. Modified to make all rmt* calls
+ into macros for speed by Jay Fenlason. Use -DWITH_REXEC for rexec
+ code, courtesy of Dan Kegel. */
+
+#include "system.h"
+#include "system-ioctl.h"
+
+#include <safe-read.h>
+#include <full-write.h>
+
+/* Try hard to get EOPNOTSUPP defined. 486/ISC has it in net/errno.h,
+ 3B2/SVR3 has it in sys/inet.h. Otherwise, like on MSDOS, use EINVAL. */
+
+#ifndef EOPNOTSUPP
+# if HAVE_NET_ERRNO_H
+# include <net/errno.h>
+# endif
+# if HAVE_SYS_INET_H
+# include <sys/inet.h>
+# endif
+# ifndef EOPNOTSUPP
+# define EOPNOTSUPP EINVAL
+# endif
+#endif
+
+#include <signal.h>
+
+#if HAVE_NETDB_H
+# include <netdb.h>
+#endif
+
+#include <rmt.h>
+#include <rmt-command.h>
+
+/* Exit status if exec errors. */
+#define EXIT_ON_EXEC_ERROR 128
+
+/* FIXME: Size of buffers for reading and writing commands to rmt. */
+#define COMMAND_BUFFER_SIZE 64
+
+#ifndef RETSIGTYPE
+# define RETSIGTYPE void
+#endif
+
+/* FIXME: Maximum number of simultaneous remote tape connections. */
+#define MAXUNIT 4
+
+#define PREAD 0 /* read file descriptor from pipe() */
+#define PWRITE 1 /* write file descriptor from pipe() */
+
+/* Return the parent's read side of remote tape connection Fd. */
+#define READ_SIDE(Fd) (from_remote[Fd][PREAD])
+
+/* Return the parent's write side of remote tape connection Fd. */
+#define WRITE_SIDE(Fd) (to_remote[Fd][PWRITE])
+
+/* The pipes for receiving data from remote tape drives. */
+static int from_remote[MAXUNIT][2] = {{-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}};
+
+/* The pipes for sending data to remote tape drives. */
+static int to_remote[MAXUNIT][2] = {{-1, -1}, {-1, -1}, {-1, -1}, {-1, -1}};
+
+char *rmt_command = DEFAULT_RMT_COMMAND;
+
+/* Temporary variable used by macros in rmt.h. */
+char *rmt_dev_name__;
+
+/* If true, always consider file names to be local, even if they contain
+ colons */
+bool force_local_option;
+
+
+
+/* Close remote tape connection HANDLE, and reset errno to ERRNO_VALUE. */
+static void
+_rmt_shutdown (int handle, int errno_value)
+{
+ close (READ_SIDE (handle));
+ close (WRITE_SIDE (handle));
+ READ_SIDE (handle) = -1;
+ WRITE_SIDE (handle) = -1;
+ errno = errno_value;
+}
+
+/* Attempt to perform the remote tape command specified in BUFFER on
+ remote tape connection HANDLE. Return 0 if successful, -1 on
+ error. */
+static int
+do_command (int handle, const char *buffer)
+{
+ /* Save the current pipe handler and try to make the request. */
+
+ size_t length = strlen (buffer);
+ RETSIGTYPE (*pipe_handler) (int) = signal (SIGPIPE, SIG_IGN);
+ ssize_t written = full_write (WRITE_SIDE (handle), buffer, length);
+ signal (SIGPIPE, pipe_handler);
+
+ if (written == length)
+ return 0;
+
+ /* Something went wrong. Close down and go home. */
+
+ _rmt_shutdown (handle, EIO);
+ return -1;
+}
+
+static char *
+get_status_string (int handle, char *command_buffer)
+{
+ char *cursor;
+ int counter;
+
+ /* Read the reply command line. */
+
+ for (counter = 0, cursor = command_buffer;
+ counter < COMMAND_BUFFER_SIZE;
+ counter++, cursor++)
+ {
+ if (safe_read (READ_SIDE (handle), cursor, 1) != 1)
+ {
+ _rmt_shutdown (handle, EIO);
+ return 0;
+ }
+ if (*cursor == '\n')
+ {
+ *cursor = '\0';
+ break;
+ }
+ }
+
+ if (counter == COMMAND_BUFFER_SIZE)
+ {
+ _rmt_shutdown (handle, EIO);
+ return 0;
+ }
+
+ /* Check the return status. */
+
+ for (cursor = command_buffer; *cursor; cursor++)
+ if (*cursor != ' ')
+ break;
+
+ if (*cursor == 'E' || *cursor == 'F')
+ {
+ /* Skip the error message line. */
+
+ /* FIXME: there is better to do than merely ignoring error messages
+ coming from the remote end. Translate them, too... */
+
+ {
+ char character;
+
+ while (safe_read (READ_SIDE (handle), &character, 1) == 1)
+ if (character == '\n')
+ break;
+ }
+
+ errno = atoi (cursor + 1);
+
+ if (*cursor == 'F')
+ _rmt_shutdown (handle, errno);
+
+ return 0;
+ }
+
+ /* Check for mis-synced pipes. */
+
+ if (*cursor != 'A')
+ {
+ _rmt_shutdown (handle, EIO);
+ return 0;
+ }
+
+ /* Got an `A' (success) response. */
+
+ return cursor + 1;
+}
+
+/* Read and return the status from remote tape connection HANDLE. If
+ an error occurred, return -1 and set errno. */
+static long int
+get_status (int handle)
+{
+ char command_buffer[COMMAND_BUFFER_SIZE];
+ const char *status = get_status_string (handle, command_buffer);
+ if (status)
+ {
+ long int result = atol (status);
+ if (0 <= result)
+ return result;
+ errno = EIO;
+ }
+ return -1;
+}
+
+static off_t
+get_status_off (int handle)
+{
+ char command_buffer[COMMAND_BUFFER_SIZE];
+ const char *status = get_status_string (handle, command_buffer);
+
+ if (! status)
+ return -1;
+ else
+ {
+ /* Parse status, taking care to check for overflow.
+ We can't use standard functions,
+ since off_t might be longer than long. */
+
+ off_t count = 0;
+ int negative;
+
+ for (; *status == ' ' || *status == '\t'; status++)
+ continue;
+
+ negative = *status == '-';
+ status += negative || *status == '+';
+
+ for (;;)
+ {
+ int digit = *status++ - '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))
+ return -1;
+ count = nc;
+ }
+ }
+
+ return count;
+ }
+}
+
+#if WITH_REXEC
+
+/* Execute /etc/rmt as user USER on remote system HOST using rexec.
+ Return a file descriptor of a bidirectional socket for stdin and
+ stdout. If USER is zero, use the current username.
+
+ By default, this code is not used, since it requires that the user
+ have a .netrc file in his/her home directory, or that the
+ application designer be willing to have rexec prompt for login and
+ password info. This may be unacceptable, and .rhosts files for use
+ with rsh are much more common on BSD systems. */
+static int
+_rmt_rexec (char *host, char *user)
+{
+ int saved_stdin = dup (STDIN_FILENO);
+ int saved_stdout = dup (STDOUT_FILENO);
+ struct servent *rexecserv;
+ int result;
+
+ /* When using cpio -o < filename, stdin is no longer the tty. But the
+ rexec subroutine reads the login and the passwd on stdin, to allow
+ remote execution of the command. So, reopen stdin and stdout on
+ /dev/tty before the rexec and give them back their original value
+ after. */
+
+ if (! freopen ("/dev/tty", "r", stdin))
+ freopen ("/dev/null", "r", stdin);
+ if (! freopen ("/dev/tty", "w", stdout))
+ freopen ("/dev/null", "w", stdout);
+
+ if (rexecserv = getservbyname ("exec", "tcp"), !rexecserv)
+ error (EXIT_ON_EXEC_ERROR, 0, _("exec/tcp: Service not available"));
+
+ result = rexec (&host, rexecserv->s_port, user, 0, rmt_command, 0);
+ if (fclose (stdin) == EOF)
+ error (0, errno, _("stdin"));
+ fdopen (saved_stdin, "r");
+ if (fclose (stdout) == EOF)
+ error (0, errno, _("stdout"));
+ fdopen (saved_stdout, "w");
+
+ return result;
+}
+
+#endif /* WITH_REXEC */
+
+/* Place into BUF a string representing OFLAG, which must be suitable
+ as argument 2 of `open'. BUF must be large enough to hold the
+ result. This function should generate a string that decode_oflag
+ can parse. */
+static void
+encode_oflag (char *buf, int oflag)
+{
+ sprintf (buf, "%d ", oflag);
+
+ switch (oflag & O_ACCMODE)
+ {
+ case O_RDONLY: strcat (buf, "O_RDONLY"); break;
+ case O_RDWR: strcat (buf, "O_RDWR"); break;
+ case O_WRONLY: strcat (buf, "O_WRONLY"); break;
+ default: abort ();
+ }
+
+#ifdef O_APPEND
+ if (oflag & O_APPEND) strcat (buf, "|O_APPEND");
+#endif
+ if (oflag & O_CREAT) strcat (buf, "|O_CREAT");
+#ifdef O_DSYNC
+ if (oflag & O_DSYNC) strcat (buf, "|O_DSYNC");
+#endif
+ if (oflag & O_EXCL) strcat (buf, "|O_EXCL");
+#ifdef O_LARGEFILE
+ if (oflag & O_LARGEFILE) strcat (buf, "|O_LARGEFILE");
+#endif
+#ifdef O_NOCTTY
+ if (oflag & O_NOCTTY) strcat (buf, "|O_NOCTTY");
+#endif
+ if (oflag & O_NONBLOCK) strcat (buf, "|O_NONBLOCK");
+#ifdef O_RSYNC
+ if (oflag & O_RSYNC) strcat (buf, "|O_RSYNC");
+#endif
+#ifdef O_SYNC
+ if (oflag & O_SYNC) strcat (buf, "|O_SYNC");
+#endif
+ if (oflag & O_TRUNC) strcat (buf, "|O_TRUNC");
+}
+
+/* Open a file (a magnetic tape device?) on the system specified in
+ FILE_NAME, as the given user. FILE_NAME has the form `[USER@]HOST:FILE'.
+ OPEN_MODE is O_RDONLY, O_WRONLY, etc. If successful, return the
+ remote pipe number plus BIAS. REMOTE_SHELL may be overridden. On
+ error, return -1. */
+int
+rmt_open__ (const char *file_name, int open_mode, int bias,
+ const char *remote_shell)
+{
+ int remote_pipe_number; /* pseudo, biased file descriptor */
+ char *file_name_copy; /* copy of file_name string */
+ char *remote_host; /* remote host name */
+ char *remote_file; /* remote file name (often a device) */
+ char *remote_user; /* remote user name */
+
+ /* Find an unused pair of file descriptors. */
+
+ for (remote_pipe_number = 0;
+ remote_pipe_number < MAXUNIT;
+ remote_pipe_number++)
+ if (READ_SIDE (remote_pipe_number) == -1
+ && WRITE_SIDE (remote_pipe_number) == -1)
+ break;
+
+ if (remote_pipe_number == MAXUNIT)
+ {
+ errno = EMFILE;
+ return -1;
+ }
+
+ /* Pull apart the system and device, and optional user. */
+
+ {
+ char *cursor;
+
+ file_name_copy = xstrdup (file_name);
+ remote_host = file_name_copy;
+ remote_user = 0;
+ remote_file = 0;
+
+ for (cursor = file_name_copy; *cursor; cursor++)
+ switch (*cursor)
+ {
+ default:
+ break;
+
+ case '\n':
+ /* Do not allow newlines in the file_name, since the protocol
+ uses newline delimiters. */
+ free (file_name_copy);
+ errno = ENOENT;
+ return -1;
+
+ case '@':
+ if (!remote_user)
+ {
+ remote_user = remote_host;
+ *cursor = '\0';
+ remote_host = cursor + 1;
+ }
+ break;
+
+ case ':':
+ if (!remote_file)
+ {
+ *cursor = '\0';
+ remote_file = cursor + 1;
+ }
+ break;
+ }
+ }
+
+ /* 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;
+
+#if WITH_REXEC
+
+ /* Execute the remote command using rexec. */
+
+ READ_SIDE (remote_pipe_number) = _rmt_rexec (remote_host, remote_user);
+ if (READ_SIDE (remote_pipe_number) < 0)
+ {
+ int e = errno;
+ free (file_name_copy);
+ errno = e;
+ return -1;
+ }
+
+ WRITE_SIDE (remote_pipe_number) = READ_SIDE (remote_pipe_number);
+
+#else /* not WITH_REXEC */
+ {
+ const char *remote_shell_basename;
+ pid_t status;
+
+ /* Identify the remote command to be executed. */
+
+ if (!remote_shell)
+ {
+#ifdef REMOTE_SHELL
+ remote_shell = REMOTE_SHELL;
+#else
+ free (file_name_copy);
+ errno = EIO;
+ return -1;
+#endif
+ }
+ remote_shell_basename = last_component (remote_shell);
+
+ /* Set up the pipes for the `rsh' command, and fork. */
+
+ if (pipe (to_remote[remote_pipe_number]) == -1
+ || pipe (from_remote[remote_pipe_number]) == -1)
+ {
+ int e = errno;
+ free (file_name_copy);
+ errno = e;
+ return -1;
+ }
+
+ status = fork ();
+ if (status == -1)
+ {
+ int e = errno;
+ free (file_name_copy);
+ errno = e;
+ return -1;
+ }
+
+ if (status == 0)
+ {
+ /* Child. */
+
+ close (STDIN_FILENO);
+ dup (to_remote[remote_pipe_number][PREAD]);
+ close (to_remote[remote_pipe_number][PREAD]);
+ close (to_remote[remote_pipe_number][PWRITE]);
+
+ close (STDOUT_FILENO);
+ dup (from_remote[remote_pipe_number][PWRITE]);
+ close (from_remote[remote_pipe_number][PREAD]);
+ close (from_remote[remote_pipe_number][PWRITE]);
+
+ sys_reset_uid_gid ();
+
+ if (remote_user)
+ execl (remote_shell, remote_shell_basename, remote_host,
+ "-l", remote_user, rmt_command, (char *) 0);
+ else
+ execl (remote_shell, remote_shell_basename, remote_host,
+ rmt_command, (char *) 0);
+
+ /* Bad problems if we get here. */
+
+ /* In a previous version, _exit was used here instead of exit. */
+ error (EXIT_ON_EXEC_ERROR, errno, _("Cannot execute remote shell"));
+ }
+
+ /* Parent. */
+
+ close (from_remote[remote_pipe_number][PWRITE]);
+ close (to_remote[remote_pipe_number][PREAD]);
+ }
+#endif /* not WITH_REXEC */
+
+ /* Attempt to open the tape device. */
+
+ {
+ size_t remote_file_len = strlen (remote_file);
+ char *command_buffer = xmalloc (remote_file_len + 1000);
+ sprintf (command_buffer, "O%s\n", remote_file);
+ encode_oflag (command_buffer + remote_file_len + 2, open_mode);
+ strcat (command_buffer, "\n");
+ if (do_command (remote_pipe_number, command_buffer) == -1
+ || get_status (remote_pipe_number) == -1)
+ {
+ int e = errno;
+ free (command_buffer);
+ free (file_name_copy);
+ _rmt_shutdown (remote_pipe_number, e);
+ return -1;
+ }
+ free (command_buffer);
+ }
+
+ free (file_name_copy);
+ return remote_pipe_number + bias;
+}
+
+/* Close remote tape connection HANDLE and shut down. Return 0 if
+ successful, -1 on error. */
+int
+rmt_close__ (int handle)
+{
+ long int status;
+
+ if (do_command (handle, "C\n") == -1)
+ return -1;
+
+ status = get_status (handle);
+ _rmt_shutdown (handle, errno);
+ return status;
+}
+
+/* Read up to LENGTH bytes into BUFFER from remote tape connection HANDLE.
+ Return the number of bytes read on success, SAFE_READ_ERROR on error. */
+size_t
+rmt_read__ (int handle, char *buffer, size_t length)
+{
+ char command_buffer[COMMAND_BUFFER_SIZE];
+ size_t status;
+ size_t rlen;
+ size_t counter;
+
+ sprintf (command_buffer, "R%lu\n", (unsigned long) length);
+ if (do_command (handle, command_buffer) == -1
+ || (status = get_status (handle)) == SAFE_READ_ERROR
+ || status > length)
+ return SAFE_READ_ERROR;
+
+ for (counter = 0; counter < status; counter += rlen, buffer += rlen)
+ {
+ rlen = safe_read (READ_SIDE (handle), buffer, status - counter);
+ if (rlen == SAFE_READ_ERROR || rlen == 0)
+ {
+ _rmt_shutdown (handle, EIO);
+ return SAFE_READ_ERROR;
+ }
+ }
+
+ return status;
+}
+
+/* Write LENGTH bytes from BUFFER to remote tape connection HANDLE.
+ Return the number of bytes written. */
+size_t
+rmt_write__ (int handle, char *buffer, size_t length)
+{
+ char command_buffer[COMMAND_BUFFER_SIZE];
+ RETSIGTYPE (*pipe_handler) (int);
+ size_t written;
+
+ sprintf (command_buffer, "W%lu\n", (unsigned long) length);
+ if (do_command (handle, command_buffer) == -1)
+ return 0;
+
+ pipe_handler = signal (SIGPIPE, SIG_IGN);
+ written = full_write (WRITE_SIDE (handle), buffer, length);
+ signal (SIGPIPE, pipe_handler);
+ if (written == length)
+ {
+ long int r = get_status (handle);
+ if (r < 0)
+ return 0;
+ if (r == length)
+ return length;
+ written = r;
+ }
+
+ /* Write error. */
+
+ _rmt_shutdown (handle, EIO);
+ return written;
+}
+
+/* Perform an imitation lseek operation on remote tape connection
+ HANDLE. Return the new file offset if successful, -1 if on error. */
+off_t
+rmt_lseek__ (int handle, off_t offset, int whence)
+{
+ char command_buffer[COMMAND_BUFFER_SIZE];
+ char operand_buffer[UINTMAX_STRSIZE_BOUND];
+ uintmax_t u = offset < 0 ? - (uintmax_t) offset : (uintmax_t) offset;
+ char *p = operand_buffer + sizeof operand_buffer;
+
+ *--p = 0;
+ do
+ *--p = '0' + (int) (u % 10);
+ while ((u /= 10) != 0);
+ if (offset < 0)
+ *--p = '-';
+
+ switch (whence)
+ {
+ case SEEK_SET: whence = 0; break;
+ case SEEK_CUR: whence = 1; break;
+ case SEEK_END: whence = 2; break;
+ default: abort ();
+ }
+
+ sprintf (command_buffer, "L%s\n%d\n", p, whence);
+
+ if (do_command (handle, command_buffer) == -1)
+ return -1;
+
+ return get_status_off (handle);
+}
+
+/* Perform a raw tape operation on remote tape connection HANDLE.
+ Return the results of the ioctl, or -1 on error. */
+int
+rmt_ioctl__ (int handle, int operation, char *argument)
+{
+ switch (operation)
+ {
+ default:
+ errno = EOPNOTSUPP;
+ return -1;
+
+#ifdef MTIOCTOP
+ case MTIOCTOP:
+ {
+ char command_buffer[COMMAND_BUFFER_SIZE];
+ char operand_buffer[UINTMAX_STRSIZE_BOUND];
+ uintmax_t u = (((struct mtop *) argument)->mt_count < 0
+ ? - (uintmax_t) ((struct mtop *) argument)->mt_count
+ : (uintmax_t) ((struct mtop *) argument)->mt_count);
+ char *p = operand_buffer + sizeof operand_buffer;
+
+ *--p = 0;
+ do
+ *--p = '0' + (int) (u % 10);
+ while ((u /= 10) != 0);
+ if (((struct mtop *) argument)->mt_count < 0)
+ *--p = '-';
+
+ /* MTIOCTOP is the easy one. Nothing is transferred in binary. */
+
+ sprintf (command_buffer, "I%d\n%s\n",
+ ((struct mtop *) argument)->mt_op, p);
+ if (do_command (handle, command_buffer) == -1)
+ return -1;
+
+ return get_status (handle);
+ }
+#endif /* MTIOCTOP */
+
+#ifdef MTIOCGET
+ case MTIOCGET:
+ {
+ ssize_t status;
+ size_t counter;
+
+ /* Grab the status and read it directly into the structure. This
+ assumes that the status buffer is not padded and that 2 shorts
+ fit in a long without any word alignment problems; i.e., the
+ whole struct is contiguous. NOTE - this is probably NOT a good
+ assumption. */
+
+ if (do_command (handle, "S") == -1
+ || (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);
+ if (counter == SAFE_READ_ERROR || counter == 0)
+ {
+ _rmt_shutdown (handle, EIO);
+ return -1;
+ }
+ }
+
+ /* Check for byte position. mt_type (or mt_model) is a small integer
+ field (normally) so we will check its magnitude. If it is larger
+ than 256, we will assume that the bytes are swapped and go through
+ and reverse all the bytes. */
+
+ if (((struct mtget *) argument)->MTIO_CHECK_FIELD < 256)
+ return 0;
+
+ for (counter = 0; counter < status; counter += 2)
+ {
+ char copy = argument[counter];
+
+ argument[counter] = argument[counter + 1];
+ argument[counter + 1] = copy;
+ }
+
+ return 0;
+ }
+#endif /* MTIOCGET */
+
+ }
+}
diff --git a/lib/system-ioctl.h b/lib/system-ioctl.h
new file mode 100644
index 00000000..f3276cfe
--- /dev/null
+++ b/lib/system-ioctl.h
@@ -0,0 +1,55 @@
+/* System dependent definitions for GNU tar's use of ioctl macros.
+
+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 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. */
+
+/* This is a real challenge to properly get MTIO* symbols :-(. ISC uses
+ <sys/gentape.h>. SCO and BSDi uses <sys/tape.h>; BSDi also requires
+ <sys/tprintf.h> and <sys/device.h> for defining tp_dev and tpr_t. It
+ seems that the rest use <sys/mtio.h>, which itself requires other files,
+ depending on systems. Pyramid defines _IOW in <sgtty.h>, for example. */
+
+#if HAVE_SYS_GENTAPE_H
+# include <sys/gentape.h>
+#else
+# if HAVE_SYS_TAPE_H
+# if HAVE_SYS_DEVICE_H
+# include <sys/device.h>
+# endif
+# if HAVE_SYS_PARAM_H
+# include <sys/param.h>
+# endif
+# if HAVE_SYS_BUF_H
+# include <sys/buf.h>
+# endif
+# if HAVE_SYS_TPRINTF_H
+# include <sys/tprintf.h>
+# endif
+# include <sys/tape.h>
+# else
+# if HAVE_SYS_MTIO_H
+# include <sys/ioctl.h>
+# if HAVE_SGTTY_H
+# include <sgtty.h>
+# endif
+# if HAVE_SYS_IO_TRIOCTL_H
+# include <sys/io/trioctl.h>
+# endif
+# include <sys/mtio.h>
+# endif
+# endif
+#endif
diff --git a/lib/system.h b/lib/system.h
new file mode 100644
index 00000000..2deb585b
--- /dev/null
+++ b/lib/system.h
@@ -0,0 +1,480 @@
+/* System dependent definitions for GNU tar.
+
+ Copyright (C) 1994, 1995, 1996, 1997, 1998, 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. */
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <alloca.h>
+
+#ifndef __attribute__
+/* This feature is available in gcc versions 2.5 and later. */
+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
+# define __attribute__(spec) /* empty */
+# endif
+#endif
+
+#include <sys/types.h>
+#include <ctype.h>
+
+/* IN_CTYPE_DOMAIN (C) is nonzero if the unsigned char C can safely be given
+ as an argument to <ctype.h> macros like `isspace'. */
+#if STDC_HEADERS
+# define IN_CTYPE_DOMAIN(c) 1
+#else
+# define IN_CTYPE_DOMAIN(c) ((unsigned) (c) <= 0177)
+#endif
+
+#define ISDIGIT(c) ((unsigned) (c) - '0' <= 9)
+#define ISODIGIT(c) ((unsigned) (c) - '0' <= 7)
+#define ISPRINT(c) (IN_CTYPE_DOMAIN (c) && isprint (c))
+#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c))
+
+/* Declare string and memory handling routines. Take care that an ANSI
+ string.h and pre-ANSI memory.h might conflict, and that memory.h and
+ strings.h conflict on some systems. */
+
+#if STDC_HEADERS || HAVE_STRING_H
+# include <string.h>
+# if !STDC_HEADERS && HAVE_MEMORY_H
+# include <memory.h>
+# endif
+#else
+# include <strings.h>
+# ifndef strchr
+# define strchr index
+# endif
+# ifndef strrchr
+# define strrchr rindex
+# endif
+# ifndef memcpy
+# define memcpy(d, s, n) bcopy ((char const *) (s), (char *) (d), n)
+# endif
+# ifndef memcmp
+# define memcmp(a, b, n) bcmp ((char const *) (a), (char const *) (b), n)
+# endif
+#endif
+
+/* Declare errno. */
+
+#include <errno.h>
+#ifndef errno
+extern int errno;
+#endif
+
+/* Declare open parameters. */
+
+#if HAVE_FCNTL_H
+# include <fcntl.h>
+#else
+# include <sys/file.h>
+#endif
+ /* Pick only one of the next three: */
+#ifndef O_RDONLY
+# define O_RDONLY 0 /* only allow read */
+#endif
+#ifndef O_WRONLY
+# define O_WRONLY 1 /* only allow write */
+#endif
+#ifndef O_RDWR
+# define O_RDWR 2 /* both are allowed */
+#endif
+#ifndef O_ACCMODE
+# define O_ACCMODE (O_RDONLY | O_RDWR | O_WRONLY)
+#endif
+ /* The rest can be OR-ed in to the above: */
+#ifndef O_CREAT
+# define O_CREAT 8 /* create file if needed */
+#endif
+#ifndef O_EXCL
+# define O_EXCL 16 /* file cannot already exist */
+#endif
+#ifndef O_TRUNC
+# define O_TRUNC 32 /* truncate file on open */
+#endif
+
+#ifndef O_BINARY
+# define O_BINARY 0
+#endif
+#ifndef O_DIRECTORY
+# define O_DIRECTORY 0
+#endif
+#ifndef O_NOATIME
+# define O_NOATIME 0
+#endif
+#ifndef O_NONBLOCK
+# define O_NONBLOCK 0
+#endif
+
+/* Declare file status routines and bits. */
+
+#include <sys/stat.h>
+
+#if !HAVE_LSTAT && !defined lstat
+# define lstat stat
+#endif
+
+#if STX_HIDDEN && !_LARGE_FILES /* AIX */
+# ifdef stat
+# undef stat
+# endif
+# define stat(file_name, buf) statx (file_name, buf, STATSIZE, STX_HIDDEN)
+# ifdef lstat
+# undef lstat
+# endif
+# define lstat(file_name, buf) statx (file_name, buf, STATSIZE, STX_HIDDEN | STX_LINK)
+#endif
+
+#if STAT_MACROS_BROKEN
+# undef S_ISBLK
+# undef S_ISCHR
+# undef S_ISCTG
+# undef S_ISDIR
+# undef S_ISFIFO
+# undef S_ISLNK
+# undef S_ISREG
+# undef S_ISSOCK
+#endif
+
+/* On MSDOS, there are missing things from <sys/stat.h>. */
+#if MSDOS
+# define S_ISUID 0
+# define S_ISGID 0
+# define S_ISVTX 0
+#endif
+
+#ifndef S_ISDIR
+# define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
+#endif
+#ifndef S_ISREG
+# define S_ISREG(mode) (((mode) & S_IFMT) == S_IFREG)
+#endif
+
+#ifndef S_ISBLK
+# ifdef S_IFBLK
+# define S_ISBLK(mode) (((mode) & S_IFMT) == S_IFBLK)
+# else
+# define S_ISBLK(mode) 0
+# endif
+#endif
+#ifndef S_ISCHR
+# ifdef S_IFCHR
+# define S_ISCHR(mode) (((mode) & S_IFMT) == S_IFCHR)
+# else
+# define S_ISCHR(mode) 0
+# endif
+#endif
+#ifndef S_ISCTG
+# ifdef S_IFCTG
+# define S_ISCTG(mode) (((mode) & S_IFMT) == S_IFCTG)
+# else
+# define S_ISCTG(mode) 0
+# endif
+#endif
+#ifndef S_ISDOOR
+# define S_ISDOOR(mode) 0
+#endif
+#ifndef S_ISFIFO
+# ifdef S_IFIFO
+# define S_ISFIFO(mode) (((mode) & S_IFMT) == S_IFIFO)
+# else
+# define S_ISFIFO(mode) 0
+# endif
+#endif
+#ifndef S_ISLNK
+# ifdef S_IFLNK
+# define S_ISLNK(mode) (((mode) & S_IFMT) == S_IFLNK)
+# else
+# define S_ISLNK(mode) 0
+# endif
+#endif
+#ifndef S_ISSOCK
+# ifdef S_IFSOCK
+# define S_ISSOCK(mode) (((mode) & S_IFMT) == S_IFSOCK)
+# else
+# define S_ISSOCK(mode) 0
+# endif
+#endif
+
+#if !HAVE_MKFIFO && !defined mkfifo && defined S_IFIFO
+# define mkfifo(file_name, mode) (mknod (file_name, (mode) | S_IFIFO, 0))
+#endif
+
+#ifndef S_ISUID
+# define S_ISUID 0004000
+#endif
+#ifndef S_ISGID
+# define S_ISGID 0002000
+#endif
+#ifndef S_ISVTX
+# define S_ISVTX 0001000
+#endif
+#ifndef S_IRUSR
+# define S_IRUSR 0000400
+#endif
+#ifndef S_IWUSR
+# define S_IWUSR 0000200
+#endif
+#ifndef S_IXUSR
+# define S_IXUSR 0000100
+#endif
+#ifndef S_IRGRP
+# define S_IRGRP 0000040
+#endif
+#ifndef S_IWGRP
+# define S_IWGRP 0000020
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0000010
+#endif
+#ifndef S_IROTH
+# define S_IROTH 0000004
+#endif
+#ifndef S_IWOTH
+# define S_IWOTH 0000002
+#endif
+#ifndef S_IXOTH
+# define S_IXOTH 0000001
+#endif
+
+#define MODE_WXUSR (S_IWUSR | S_IXUSR)
+#define MODE_R (S_IRUSR | S_IRGRP | S_IROTH)
+#define MODE_RW (S_IWUSR | S_IWGRP | S_IWOTH | MODE_R)
+#define MODE_RWX (S_IXUSR | S_IXGRP | S_IXOTH | MODE_RW)
+#define MODE_ALL (S_ISUID | S_ISGID | S_ISVTX | MODE_RWX)
+
+/* Include <unistd.h> before any preprocessor test of _POSIX_VERSION. */
+#include <unistd.h>
+
+#ifndef SEEK_SET
+# define SEEK_SET 0
+#endif
+#ifndef SEEK_CUR
+# define SEEK_CUR 1
+#endif
+#ifndef SEEK_END
+# define SEEK_END 2
+#endif
+
+#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 make device, major and minor. Since major is a function on
+ SVR4, we have to resort to GOT_MAJOR instead of just testing if
+ major is #define'd. */
+
+#if MAJOR_IN_MKDEV
+# include <sys/mkdev.h>
+# if !defined(makedev) && defined(mkdev)
+# define makedev(a,b) mkdev((a),(b))
+# endif
+# define GOT_MAJOR
+#endif
+
+#if MAJOR_IN_SYSMACROS
+# include <sys/sysmacros.h>
+# define GOT_MAJOR
+#endif
+
+/* Some <sys/types.h> defines the macros. */
+#ifdef major
+# define GOT_MAJOR
+#endif
+
+#ifndef GOT_MAJOR
+# if MSDOS
+# define major(device) (device)
+# define minor(device) (device)
+# define makedev(major, minor) (((major) << 8) | (minor))
+# define GOT_MAJOR
+# endif
+#endif
+
+/* For HP-UX before HP-UX 8, major/minor are not in <sys/sysmacros.h>. */
+#ifndef GOT_MAJOR
+# if defined(hpux) || defined(__hpux__) || defined(__hpux)
+# include <sys/mknod.h>
+# define GOT_MAJOR
+# endif
+#endif
+
+#ifndef GOT_MAJOR
+# define major(device) (((device) >> 8) & 0xff)
+# define minor(device) ((device) & 0xff)
+# define makedev(major, minor) (((major) << 8) | (minor))
+#endif
+
+#undef GOT_MAJOR
+
+/* Declare wait status. */
+
+#if HAVE_SYS_WAIT_H
+# include <sys/wait.h>
+#endif
+#ifndef WEXITSTATUS
+# define WEXITSTATUS(s) (((s) >> 8) & 0xff)
+#endif
+#ifndef WIFSIGNALED
+# define WIFSIGNALED(s) (((s) & 0xffff) - 1 < (unsigned) 0xff)
+#endif
+#ifndef WTERMSIG
+# define WTERMSIG(s) ((s) & 0x7f)
+#endif
+
+/* FIXME: It is wrong to use BLOCKSIZE for buffers when the logical block
+ size is greater than 512 bytes; so ST_BLKSIZE code below, in preparation
+ for some cleanup in this area, later. */
+
+/* Extract or fake data from a `struct stat'. ST_BLKSIZE gives the
+ optimal I/O blocksize for the file, in bytes. Some systems, like
+ Sequents, return st_blksize of 0 on pipes. */
+
+#define DEFAULT_ST_BLKSIZE 512
+
+#if !HAVE_ST_BLKSIZE
+# define ST_BLKSIZE(statbuf) DEFAULT_ST_BLKSIZE
+#else
+# define ST_BLKSIZE(statbuf) \
+ ((statbuf).st_blksize > 0 ? (statbuf).st_blksize : DEFAULT_ST_BLKSIZE)
+#endif
+
+/* Extract or fake data from a `struct stat'. ST_NBLOCKS gives the
+ number of ST_NBLOCKSIZE-byte blocks in the file (including indirect blocks).
+ HP-UX counts st_blocks in 1024-byte units,
+ this loses when mixing HP-UX and BSD filesystems with NFS. AIX PS/2
+ counts st_blocks in 4K units. */
+
+#if !HAVE_ST_BLOCKS
+# if defined(_POSIX_SOURCE) || !defined(BSIZE)
+# define ST_NBLOCKS(statbuf) ((statbuf).st_size / ST_NBLOCKSIZE + ((statbuf).st_size % ST_NBLOCKSIZE != 0))
+# else
+ off_t st_blocks ();
+# define ST_NBLOCKS(statbuf) (st_blocks ((statbuf).st_size))
+# endif
+#else
+# define ST_NBLOCKS(statbuf) ((statbuf).st_blocks)
+# if defined(hpux) || defined(__hpux__) || defined(__hpux)
+# define ST_NBLOCKSIZE 1024
+# else
+# if defined(_AIX) && defined(_I386)
+# define ST_NBLOCKSIZE (4 * 1024)
+# endif
+# endif
+#endif
+
+#ifndef ST_NBLOCKSIZE
+# define ST_NBLOCKSIZE 512
+#endif
+
+#define ST_IS_SPARSE(st) \
+ (ST_NBLOCKS (st) \
+ < ((st).st_size / ST_NBLOCKSIZE + ((st).st_size % ST_NBLOCKSIZE != 0)))
+
+/* Declare standard functions. */
+
+#if STDC_HEADERS
+# include <stdlib.h>
+#else
+void *malloc ();
+char *getenv ();
+#endif
+
+#include <stdbool.h>
+#include <stddef.h>
+
+#include <stdio.h>
+#if !defined _POSIX_VERSION && MSDOS
+# include <io.h>
+#endif
+
+#if WITH_DMALLOC
+# define DMALLOC_FUNC_CHECK
+# include <dmalloc.h>
+#endif
+
+#include <limits.h>
+
+#ifndef MB_LEN_MAX
+# define MB_LEN_MAX 1
+#endif
+
+#include <inttypes.h>
+
+#include <intprops.h>
+
+#define UINTMAX_STRSIZE_BOUND INT_BUFSIZE_BOUND (uintmax_t)
+
+/* Prototypes for external functions. */
+
+#if HAVE_LOCALE_H
+# include <locale.h>
+#endif
+#if !HAVE_SETLOCALE
+# define setlocale(category, locale) /* empty */
+#endif
+
+#include <time.h>
+#ifdef TIME_WITH_SYS_TIME
+# include <sys/time.h>
+#endif
+
+/* Library modules. */
+
+#include <dirname.h>
+#include <error.h>
+#include <savedir.h>
+#include <unlocked-io.h>
+#include <xalloc.h>
+
+#include <gettext.h>
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
+#ifdef HAVE_PWD_H
+# include <pwd.h>
+#endif
+#ifdef HAVE_GRP_H
+# include <grp.h>
+#endif
+
+#if MSDOS
+# include <process.h>
+# define SET_BINARY_MODE(arc) setmode(arc, O_BINARY)
+# define ERRNO_IS_EACCES errno == EACCES
+# define mkdir(file, mode) (mkdir) (file)
+# define TTY_NAME "con"
+# define sys_reset_uid_gid()
+#else
+# define SET_BINARY_MODE(arc)
+# define ERRNO_IS_EACCES 0
+# define TTY_NAME "/dev/tty"
+# define sys_reset_uid_gid() \
+ do { setuid (getuid ()); setgid (getgid ()); } while (0)
+#endif
+
+#if XENIX
+# include <sys/inode.h>
+#endif
diff --git a/m4/.gitignore b/m4/.gitignore
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/m4/.gitignore
diff --git a/m4/00gnulib.m4 b/m4/00gnulib.m4
new file mode 100644
index 00000000..d978cb89
--- /dev/null
+++ b/m4/00gnulib.m4
@@ -0,0 +1,30 @@
+# 00gnulib.m4 serial 2
+dnl Copyright (C) 2009-2012 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 file must be named something that sorts before all other
+dnl gnulib-provided .m4 files. It is needed until such time as we can
+dnl assume Autoconf 2.64, with its improved AC_DEFUN_ONCE semantics.
+
+# AC_DEFUN_ONCE([NAME], VALUE)
+# ----------------------------
+# Define NAME to expand to VALUE on the first use (whether by direct
+# expansion, or by AC_REQUIRE), and to nothing on all subsequent uses.
+# Avoid bugs in AC_REQUIRE in Autoconf 2.63 and earlier. This
+# definition is slower than the version in Autoconf 2.64, because it
+# can only use interfaces that existed since 2.59; but it achieves the
+# same effect. Quoting is necessary to avoid confusing Automake.
+m4_version_prereq([2.63.263], [],
+[m4_define([AC][_DEFUN_ONCE],
+ [AC][_DEFUN([$1],
+ [AC_REQUIRE([_gl_DEFUN_ONCE([$1])],
+ [m4_indir([_gl_DEFUN_ONCE([$1])])])])]dnl
+[AC][_DEFUN([_gl_DEFUN_ONCE([$1])], [$2])])])
+
+# gl_00GNULIB
+# -----------
+# Witness macro that this file has been included. Needed to force
+# Automake to include this file prior to all other gnulib .m4 files.
+AC_DEFUN([gl_00GNULIB])
diff --git a/m4/alloca.m4 b/m4/alloca.m4
new file mode 100644
index 00000000..656924be
--- /dev/null
+++ b/m4/alloca.m4
@@ -0,0 +1,121 @@
+# alloca.m4 serial 14
+dnl Copyright (C) 2002-2004, 2006-2007, 2009-2012 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_ALLOCA],
+[
+ AC_REQUIRE([AC_FUNC_ALLOCA])
+ if test $ac_cv_func_alloca_works = no; then
+ gl_PREREQ_ALLOCA
+ fi
+
+ # Define an additional variable used in the Makefile substitution.
+ if test $ac_cv_working_alloca_h = yes; then
+ AC_CACHE_CHECK([for alloca as a compiler built-in], [gl_cv_rpl_alloca], [
+ AC_EGREP_CPP([Need own alloca], [
+#if defined __GNUC__ || defined _AIX || defined _MSC_VER
+ Need own alloca
+#endif
+ ], [gl_cv_rpl_alloca=yes], [gl_cv_rpl_alloca=no])
+ ])
+ if test $gl_cv_rpl_alloca = yes; then
+ dnl OK, alloca can be implemented through a compiler built-in.
+ AC_DEFINE([HAVE_ALLOCA], [1],
+ [Define to 1 if you have 'alloca' after including <alloca.h>,
+ a header that may be supplied by this distribution.])
+ ALLOCA_H=alloca.h
+ else
+ dnl alloca exists as a library function, i.e. it is slow and probably
+ dnl a memory leak. Don't define HAVE_ALLOCA in this case.
+ ALLOCA_H=
+ fi
+ else
+ ALLOCA_H=alloca.h
+ fi
+ AC_SUBST([ALLOCA_H])
+ AM_CONDITIONAL([GL_GENERATE_ALLOCA_H], [test -n "$ALLOCA_H"])
+])
+
+# Prerequisites of lib/alloca.c.
+# STACK_DIRECTION is already handled by AC_FUNC_ALLOCA.
+AC_DEFUN([gl_PREREQ_ALLOCA], [:])
+
+# This works around a bug in autoconf <= 2.68.
+# See <http://lists.gnu.org/archive/html/bug-gnulib/2011-06/msg00277.html>.
+
+m4_version_prereq([2.69], [] ,[
+
+# This is taken from the following Autoconf patch:
+# http://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=6cd9f12520b0d6f76d3230d7565feba1ecf29497
+
+# _AC_LIBOBJ_ALLOCA
+# -----------------
+# Set up the LIBOBJ replacement of 'alloca'. Well, not exactly
+# AC_LIBOBJ since we actually set the output variable 'ALLOCA'.
+# Nevertheless, for Automake, AC_LIBSOURCES it.
+m4_define([_AC_LIBOBJ_ALLOCA],
+[# The SVR3 libPW and SVR4 libucb both contain incompatible functions
+# that cause trouble. Some versions do not even contain alloca or
+# contain a buggy version. If you still want to use their alloca,
+# use ar to extract alloca.o from them instead of compiling alloca.c.
+AC_LIBSOURCES(alloca.c)
+AC_SUBST([ALLOCA], [\${LIBOBJDIR}alloca.$ac_objext])dnl
+AC_DEFINE(C_ALLOCA, 1, [Define to 1 if using 'alloca.c'.])
+
+AC_CACHE_CHECK(whether 'alloca.c' needs Cray hooks, ac_cv_os_cray,
+[AC_EGREP_CPP(webecray,
+[#if defined CRAY && ! defined CRAY2
+webecray
+#else
+wenotbecray
+#endif
+], ac_cv_os_cray=yes, ac_cv_os_cray=no)])
+if test $ac_cv_os_cray = yes; then
+ for ac_func in _getb67 GETB67 getb67; do
+ AC_CHECK_FUNC($ac_func,
+ [AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func,
+ [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.])
+ break])
+ done
+fi
+
+AC_CACHE_CHECK([stack direction for C alloca],
+ [ac_cv_c_stack_direction],
+[AC_RUN_IFELSE([AC_LANG_SOURCE(
+[AC_INCLUDES_DEFAULT
+int
+find_stack_direction (int *addr, int depth)
+{
+ int dir, dummy = 0;
+ if (! addr)
+ addr = &dummy;
+ *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
+ dir = depth ? find_stack_direction (addr, depth - 1) : 0;
+ return dir + dummy;
+}
+
+int
+main (int argc, char **argv)
+{
+ return find_stack_direction (0, argc + !argv + 20) < 0;
+}])],
+ [ac_cv_c_stack_direction=1],
+ [ac_cv_c_stack_direction=-1],
+ [ac_cv_c_stack_direction=0])])
+AH_VERBATIM([STACK_DIRECTION],
+[/* If using the C implementation of alloca, define if you know the
+ direction of stack growth for your system; otherwise it will be
+ automatically deduced at runtime.
+ STACK_DIRECTION > 0 => grows toward higher addresses
+ STACK_DIRECTION < 0 => grows toward lower addresses
+ STACK_DIRECTION = 0 => direction of growth unknown */
+@%:@undef STACK_DIRECTION])dnl
+AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
+])# _AC_LIBOBJ_ALLOCA
+])
diff --git a/m4/argp.m4 b/m4/argp.m4
new file mode 100644
index 00000000..87c7da68
--- /dev/null
+++ b/m4/argp.m4
@@ -0,0 +1,65 @@
+# argp.m4 serial 13
+dnl Copyright (C) 2003-2012 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_ARGP],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([AC_C_RESTRICT])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ 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],
+ [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],
+ [Define to 1 to add extern declaration of program_invocation_short_name to argp.h])],
+ [[#include <errno.h>]])
+
+ # Check if program_invocation_name and program_invocation_short_name
+ # 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.
+ AC_MSG_CHECKING([whether program_invocation_name is defined])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <argp.h>]],
+ [[program_invocation_name = "test";]])],
+ [AC_DEFINE([HAVE_PROGRAM_INVOCATION_NAME], [1],
+ [Define if program_invocation_name is defined])
+ AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])])
+
+ AC_MSG_CHECKING([whether program_invocation_short_name is defined])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <argp.h>]],
+ [[program_invocation_short_name = "test";]])],
+ [AC_DEFINE([HAVE_PROGRAM_INVOCATION_SHORT_NAME], [1],
+ [Define if program_invocation_short_name is defined])
+ AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])])
+
+ AC_CHECK_DECLS_ONCE([clearerr_unlocked])
+ AC_CHECK_DECLS_ONCE([feof_unlocked])
+ AC_CHECK_DECLS_ONCE([ferror_unlocked])
+ AC_CHECK_DECLS_ONCE([fflush_unlocked])
+ AC_CHECK_DECLS_ONCE([fgets_unlocked])
+ AC_CHECK_DECLS_ONCE([fputc_unlocked])
+ AC_CHECK_DECLS_ONCE([fputs_unlocked])
+ AC_CHECK_DECLS_ONCE([fread_unlocked])
+ AC_CHECK_DECLS_ONCE([fwrite_unlocked])
+ AC_CHECK_DECLS_ONCE([getc_unlocked])
+ AC_CHECK_DECLS_ONCE([getchar_unlocked])
+ AC_CHECK_DECLS_ONCE([putc_unlocked])
+ AC_CHECK_DECLS_ONCE([putchar_unlocked])
+ AC_CHECK_FUNCS_ONCE([flockfile funlockfile])
+ AC_CHECK_HEADERS_ONCE([features.h linewrap.h])
+])
+
+dnl argp-parse.c depends on GNU getopt internals, therefore use GNU getopt
+dnl always.
+AC_DEFUN([gl_REPLACE_GETOPT_ALWAYS], [])
diff --git a/m4/backupfile.m4 b/m4/backupfile.m4
new file mode 100644
index 00000000..639ca82d
--- /dev/null
+++ b/m4/backupfile.m4
@@ -0,0 +1,13 @@
+# backupfile.m4 serial 14
+dnl Copyright (C) 2002-2006, 2009-2012 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 Prerequisites of lib/backupfile.c.
+AC_DEFUN([gl_BACKUPFILE],
+[
+ AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
+ AC_REQUIRE([AC_SYS_LONG_FILE_NAMES])
+ AC_CHECK_FUNCS_ONCE([pathconf])
+])
diff --git a/m4/bison.m4 b/m4/bison.m4
new file mode 100644
index 00000000..2c4afbe1
--- /dev/null
+++ b/m4/bison.m4
@@ -0,0 +1,24 @@
+# serial 7
+
+# Copyright (C) 2002, 2005, 2009-2012 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_BISON],
+[
+ # parse-datetime.y works with bison only.
+ : ${YACC='bison -y'}
+dnl
+dnl Declaring YACC & YFLAGS precious will not be necessary after GNULIB
+dnl requires an Autoconf greater than 2.59c, but it will probably still be
+dnl useful to override the description of YACC in the --help output, re
+dnl parse-datetime.y assuming 'bison -y'.
+ AC_ARG_VAR([YACC],
+[The "Yet Another C Compiler" implementation to use. Defaults to 'bison -y'.
+Values other than 'bison -y' will most likely break on most systems.])dnl
+ AC_ARG_VAR([YFLAGS],
+[YFLAGS contains the list arguments that will be passed by default to Bison.
+This script will default YFLAGS to the empty string to avoid a default value of
+'-d' given by some make applications.])dnl
+])
diff --git a/m4/btowc.m4 b/m4/btowc.m4
new file mode 100644
index 00000000..e565321c
--- /dev/null
+++ b/m4/btowc.m4
@@ -0,0 +1,116 @@
+# btowc.m4 serial 10
+dnl Copyright (C) 2008-2012 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_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
+ else
+
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gt_LOCALE_FR])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl Cygwin 1.7.2 btowc('\0') is WEOF, not 0.
+ AC_CACHE_CHECK([whether btowc(0) is correct],
+ [gl_cv_func_btowc_nul],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <string.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>
+int main ()
+{
+ if (btowc ('\0') != 0)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_btowc_nul=yes],
+ [gl_cv_func_btowc_nul=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess no on Cygwin.
+ cygwin*) gl_cv_func_btowc_nul="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_nul="guessing yes" ;;
+ esac
+changequote([,])dnl
+ ])
+ ])
+
+ dnl IRIX 6.5 btowc(EOF) is 0xFF, not WEOF.
+ AC_CACHE_CHECK([whether btowc(EOF) is correct],
+ [gl_cv_func_btowc_eof],
+ [
+ dnl Initial guess, used when cross-compiling or when no suitable locale
+ dnl is present.
+changequote(,)dnl
+ case "$host_os" in
+ # Guess no on IRIX.
+ irix*) gl_cv_func_btowc_eof="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_btowc_eof="guessing yes" ;;
+ esac
+changequote([,])dnl
+ if test $LOCALE_FR != none; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ if (btowc (EOF) != WEOF)
+ return 1;
+ }
+ return 0;
+}]])],
+ [gl_cv_func_btowc_eof=yes],
+ [gl_cv_func_btowc_eof=no],
+ [:])
+ fi
+ ])
+
+ case "$gl_cv_func_btowc_nul" in
+ *yes) ;;
+ *) REPLACE_BTOWC=1 ;;
+ esac
+ case "$gl_cv_func_btowc_eof" in
+ *yes) ;;
+ *) REPLACE_BTOWC=1 ;;
+ esac
+ fi
+])
+
+# Prerequisites of lib/btowc.c.
+AC_DEFUN([gl_PREREQ_BTOWC], [
+ :
+])
diff --git a/m4/canonicalize.m4 b/m4/canonicalize.m4
new file mode 100644
index 00000000..623253ff
--- /dev/null
+++ b/m4/canonicalize.m4
@@ -0,0 +1,101 @@
+# canonicalize.m4 serial 23
+
+dnl Copyright (C) 2003-2007, 2009-2012 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_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_STDLIB_H_DEFAULTS])
+ AC_REQUIRE([gl_CANONICALIZE_LGPL_SEPARATE])
+ if test $ac_cv_func_canonicalize_file_name = no; then
+ HAVE_CANONICALIZE_FILE_NAME=0
+ 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
+ REPLACE_CANONICALIZE_FILE_NAME=1
+ REPLACE_REALPATH=1
+ fi
+])
+
+# Like gl_CANONICALIZE_LGPL, except prepare for separate compilation
+# (no REPLACE_CANONICALIZE_FILE_NAME, no REPLACE_REALPATH, 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
+ mkdir conftest.d
+ AC_RUN_IFELSE([
+ AC_LANG_PROGRAM([[
+ ]GL_NOCRASH[
+ #include <stdlib.h>
+ #include <string.h>
+ ]], [[
+ int result = 0;
+ {
+ char *name = realpath ("conftest.a", NULL);
+ if (!(name && *name == '/'))
+ result |= 1;
+ }
+ {
+ char *name = realpath ("conftest.b/../conftest.a", NULL);
+ if (name != NULL)
+ result |= 2;
+ }
+ {
+ char *name = realpath ("conftest.a/", NULL);
+ if (name != NULL)
+ result |= 4;
+ }
+ {
+ char *name1 = realpath (".", NULL);
+ char *name2 = realpath ("conftest.d//./..", NULL);
+ if (strcmp (name1, name2) != 0)
+ result |= 8;
+ }
+ return result;
+ ]])
+ ], [gl_cv_func_realpath_works=yes], [gl_cv_func_realpath_works=no],
+ [gl_cv_func_realpath_works="guessing no"])
+ rm -rf conftest.a conftest.d
+ ])
+ 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
new file mode 100644
index 00000000..6180891b
--- /dev/null
+++ b/m4/chdir-long.m4
@@ -0,0 +1,34 @@
+#serial 14
+
+# Use Gnulib's robust chdir function.
+# It can handle arbitrarily long directory names, which means
+# that when it is given the name of an existing directory, it
+# never fails with ENAMETOOLONG.
+# Arrange to compile chdir-long.c only on systems that define PATH_MAX.
+
+dnl Copyright (C) 2004-2007, 2009-2012 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 Jim Meyering.
+
+AC_DEFUN([gl_FUNC_CHDIR_LONG],
+[
+ AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+ AC_CACHE_CHECK([whether this system has an arbitrary file name length limit],
+ gl_cv_have_arbitrary_file_name_length_limit,
+ [AC_EGREP_CPP([have_arbitrary_file_name_length_limit],
+ gl_PATHMAX_SNIPPET[
+#ifdef PATH_MAX
+have_arbitrary_file_name_length_limit
+#endif],
+ gl_cv_have_arbitrary_file_name_length_limit=yes,
+ gl_cv_have_arbitrary_file_name_length_limit=no)])
+])
+
+AC_DEFUN([gl_PREREQ_CHDIR_LONG],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ :
+])
diff --git a/m4/chown.m4 b/m4/chown.m4
new file mode 100644
index 00000000..5f20e1b1
--- /dev/null
+++ b/m4/chown.m4
@@ -0,0 +1,135 @@
+# serial 25
+# Determine whether we need the chown wrapper.
+
+dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2012 Free Software
+dnl Foundation, Inc.
+
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+# chown should accept arguments of -1 for uid and gid, and it should
+# dereference symlinks. If it doesn't, arrange to use the replacement
+# function.
+
+# From Jim Meyering.
+
+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])
+
+ dnl mingw lacks chown altogether.
+ if test $ac_cv_func_chown = no; then
+ HAVE_CHOWN=0
+ else
+ dnl Some old systems treated chown like lchown.
+ if test $gl_cv_func_chown_follows_symlink = no; then
+ REPLACE_CHOWN=1
+ fi
+
+ dnl Some old systems tried to use uid/gid -1 literally.
+ 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
+ fi
+
+ dnl Solaris 9 ignores trailing slash.
+ dnl FreeBSD 7.2 mishandles trailing slash on symlinks.
+ dnl Likewise for AIX 7.1.
+ AC_CACHE_CHECK([whether chown honors trailing slash],
+ [gl_cv_func_chown_slash_works],
+ [touch conftest.file && rm -f conftest.link
+ AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+]], [[ if (symlink ("conftest.file", "conftest.link")) return 1;
+ if (chown ("conftest.link/", getuid (), getgid ()) == 0) return 2;
+ ]])],
+ [gl_cv_func_chown_slash_works=yes],
+ [gl_cv_func_chown_slash_works=no],
+ [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
+ 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
+ fi
+ fi
+])
+
+# Determine whether chown follows symlinks (it should).
+AC_DEFUN_ONCE([gl_FUNC_CHOWN_FOLLOWS_SYMLINK],
+[
+ AC_CACHE_CHECK(
+ [whether chown dereferences symlinks],
+ [gl_cv_func_chown_follows_symlink],
+ [
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <errno.h>
+
+ int
+ main ()
+ {
+ int result = 0;
+ char const *dangling_symlink = "conftest.dangle";
+
+ unlink (dangling_symlink);
+ if (symlink ("conftest.no-such", dangling_symlink))
+ abort ();
+
+ /* Exit successfully on a conforming system,
+ i.e., where chown must fail with ENOENT. */
+ if (chown (dangling_symlink, getuid (), getgid ()) == 0)
+ result |= 1;
+ if (errno != ENOENT)
+ result |= 2;
+ return result;
+ }
+ ]])],
+ [gl_cv_func_chown_follows_symlink=yes],
+ [gl_cv_func_chown_follows_symlink=no],
+ [gl_cv_func_chown_follows_symlink=yes]
+ )
+ ]
+ )
+
+ if test $gl_cv_func_chown_follows_symlink = no; then
+ AC_DEFINE([CHOWN_MODIFIES_SYMLINK], [1],
+ [Define if chown modifies symlinks.])
+ fi
+])
diff --git a/m4/clock_time.m4 b/m4/clock_time.m4
new file mode 100644
index 00000000..0bec0ef8
--- /dev/null
+++ b/m4/clock_time.m4
@@ -0,0 +1,31 @@
+# clock_time.m4 serial 10
+dnl Copyright (C) 2002-2006, 2009-2012 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.
+
+# Check for clock_gettime and clock_settime, and set LIB_CLOCK_GETTIME.
+# For a program named, say foo, you should add a line like the following
+# in the corresponding Makefile.am file:
+# foo_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)
+
+AC_DEFUN([gl_CLOCK_TIME],
+[
+ dnl Persuade glibc and Solaris <time.h> to declare these functions.
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ # Solaris 2.5.1 needs -lposix4 to get the clock_gettime function.
+ # Solaris 7 prefers the library name -lrt to the obsolescent name -lposix4.
+
+ # 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_CHECK_FUNCS([clock_gettime clock_settime])
+ LIBS=$gl_saved_libs
+])
diff --git a/m4/close-stream.m4 b/m4/close-stream.m4
new file mode 100644
index 00000000..be0c8a22
--- /dev/null
+++ b/m4/close-stream.m4
@@ -0,0 +1,11 @@
+#serial 4
+dnl Copyright (C) 2006-2007, 2009-2012 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 Prerequisites of lib/close-stream.c.
+AC_DEFUN([gl_CLOSE_STREAM],
+[
+ :
+])
diff --git a/m4/close.m4 b/m4/close.m4
new file mode 100644
index 00000000..379e70d8
--- /dev/null
+++ b/m4/close.m4
@@ -0,0 +1,33 @@
+# close.m4 serial 8
+dnl Copyright (C) 2008-2012 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_CLOSE],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_CLOSE=1
+ fi
+ 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.
+ REPLACE_CLOSE=1
+ fi
+ ])
+ dnl Replace close() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ if test $REPLACE_CLOSE = 0; then
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_CLOSE=1
+ fi
+ fi
+ ])
+])
diff --git a/m4/closedir.m4 b/m4/closedir.m4
new file mode 100644
index 00000000..8a2fba4b
--- /dev/null
+++ b/m4/closedir.m4
@@ -0,0 +1,25 @@
+# closedir.m4 serial 2
+dnl Copyright (C) 2011-2012 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_CLOSEDIR],
+[
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_FUNCS([closedir])
+ if test $ac_cv_func_closedir = no; then
+ HAVE_CLOSEDIR=0
+ fi
+ dnl Replace closedir() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_CLOSEDIR = 1; then
+ REPLACE_CLOSEDIR=1
+ fi
+ fi
+ ])
+])
diff --git a/m4/closeout.m4 b/m4/closeout.m4
new file mode 100644
index 00000000..71395c1a
--- /dev/null
+++ b/m4/closeout.m4
@@ -0,0 +1,12 @@
+# closeout.m4 serial 6
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2012 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 Prerequisites of lib/closeout.c.
+AC_DEFUN([gl_CLOSEOUT],
+[
+ :
+])
diff --git a/m4/codeset.m4 b/m4/codeset.m4
new file mode 100644
index 00000000..cf53d241
--- /dev/null
+++ b/m4/codeset.m4
@@ -0,0 +1,23 @@
+# codeset.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2000-2002, 2006, 2008-2012 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 Bruno Haible.
+
+AC_DEFUN([AM_LANGINFO_CODESET],
+[
+ AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <langinfo.h>]],
+ [[char* cs = nl_langinfo(CODESET); return !cs;]])],
+ [am_cv_langinfo_codeset=yes],
+ [am_cv_langinfo_codeset=no])
+ ])
+ if test $am_cv_langinfo_codeset = yes; then
+ AC_DEFINE([HAVE_LANGINFO_CODESET], [1],
+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+ fi
+])
diff --git a/m4/configmake.m4 b/m4/configmake.m4
new file mode 100644
index 00000000..8c82371e
--- /dev/null
+++ b/m4/configmake.m4
@@ -0,0 +1,50 @@
+# configmake.m4 serial 1
+dnl Copyright (C) 2010-2012 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_CONFIGMAKE_PREP
+# ------------------
+# Guarantee all of the standard directory variables, even when used with
+# autoconf 2.59 (datarootdir wasn't supported until 2.59c) or automake
+# 1.9.6 (pkglibexecdir wasn't supported until 1.10b.).
+AC_DEFUN([gl_CONFIGMAKE_PREP],
+[
+ dnl Technically, datadir should default to datarootdir. But if
+ dnl autoconf is too old to provide datarootdir, then reversing the
+ dnl definition is a reasonable compromise. Only AC_SUBST a variable
+ dnl if it was not already defined earlier by autoconf.
+ if test "x$datarootdir" = x; then
+ AC_SUBST([datarootdir], ['${datadir}'])
+ fi
+ dnl Copy the approach used in autoconf 2.60.
+ if test "x$docdir" = x; then
+ AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME],
+ ['${datarootdir}/doc/${PACKAGE_TARNAME}'],
+ ['${datarootdir}/doc/${PACKAGE}'])])
+ fi
+ dnl The remaining variables missing from autoconf 2.59 are easier.
+ if test "x$htmldir" = x; then
+ AC_SUBST([htmldir], ['${docdir}'])
+ fi
+ if test "x$dvidir" = x; then
+ AC_SUBST([dvidir], ['${docdir}'])
+ fi
+ if test "x$pdfdir" = x; then
+ AC_SUBST([pdfdir], ['${docdir}'])
+ fi
+ if test "x$psdir" = x; then
+ AC_SUBST([psdir], ['${docdir}'])
+ fi
+ if test "x$lispdir" = x; then
+ AC_SUBST([lispdir], ['${datarootdir}/emacs/site-lisp'])
+ fi
+ if test "x$localedir" = x; then
+ AC_SUBST([localedir], ['${datarootdir}/locale'])
+ fi
+
+ dnl Automake 1.9.6 only lacks pkglibexecdir; and since 1.11 merely
+ dnl provides it without AC_SUBST, this blind use of AC_SUBST is safe.
+ AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}'])
+])
diff --git a/m4/d-ino.m4 b/m4/d-ino.m4
new file mode 100644
index 00000000..03087bf5
--- /dev/null
+++ b/m4/d-ino.m4
@@ -0,0 +1,46 @@
+# serial 12
+
+dnl From Jim Meyering.
+dnl
+dnl Check whether struct dirent has a member named d_ino.
+dnl
+
+# Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2012 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_CHECK_TYPE_STRUCT_DIRENT_D_INO],
+ [AC_CACHE_CHECK([for d_ino member in directory struct],
+ 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);
+ if (! e)
+ return 2;
+ if (stat (e->d_name, &st) != 0)
+ return 3;
+ if (e->d_ino != st.st_ino)
+ return 4;
+ return 0;
+ ]])],
+ [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.])
+ fi
+ ]
+)
diff --git a/m4/dirent-safer.m4 b/m4/dirent-safer.m4
new file mode 100644
index 00000000..98012474
--- /dev/null
+++ b/m4/dirent-safer.m4
@@ -0,0 +1,10 @@
+#serial 2
+dnl Copyright (C) 2009-2012 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_DIRENT_SAFER],
+[
+ AC_CHECK_FUNCS_ONCE([fdopendir])
+])
diff --git a/m4/dirent_h.m4 b/m4/dirent_h.m4
new file mode 100644
index 00000000..f6c0fa7b
--- /dev/null
+++ b/m4/dirent_h.m4
@@ -0,0 +1,64 @@
+# dirent_h.m4 serial 16
+dnl Copyright (C) 2008-2012 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 Bruno Haible.
+
+AC_DEFUN([gl_DIRENT_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_DIRENT_H_DEFAULTS])
+
+ dnl <dirent.h> is always overridden, because of GNULIB_POSIXCHECK.
+ gl_CHECK_NEXT_HEADERS([dirent.h])
+ if test $ac_cv_header_dirent_h = yes; then
+ HAVE_DIRENT_H=1
+ else
+ HAVE_DIRENT_H=0
+ fi
+ AC_SUBST([HAVE_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 closedir dirfd fdopendir opendir readdir rewinddir scandir])
+])
+
+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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_DIRENT_H_DEFAULTS],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR
+ GNULIB_OPENDIR=0; AC_SUBST([GNULIB_OPENDIR])
+ GNULIB_READDIR=0; AC_SUBST([GNULIB_READDIR])
+ GNULIB_REWINDDIR=0; AC_SUBST([GNULIB_REWINDDIR])
+ GNULIB_CLOSEDIR=0; AC_SUBST([GNULIB_CLOSEDIR])
+ 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_OPENDIR=1; AC_SUBST([HAVE_OPENDIR])
+ HAVE_READDIR=1; AC_SUBST([HAVE_READDIR])
+ HAVE_REWINDDIR=1; AC_SUBST([HAVE_REWINDDIR])
+ HAVE_CLOSEDIR=1; AC_SUBST([HAVE_CLOSEDIR])
+ HAVE_DECL_DIRFD=1; AC_SUBST([HAVE_DECL_DIRFD])
+ HAVE_DECL_FDOPENDIR=1;AC_SUBST([HAVE_DECL_FDOPENDIR])
+ HAVE_FDOPENDIR=1; AC_SUBST([HAVE_FDOPENDIR])
+ HAVE_SCANDIR=1; AC_SUBST([HAVE_SCANDIR])
+ HAVE_ALPHASORT=1; AC_SUBST([HAVE_ALPHASORT])
+ REPLACE_OPENDIR=0; AC_SUBST([REPLACE_OPENDIR])
+ REPLACE_CLOSEDIR=0; AC_SUBST([REPLACE_CLOSEDIR])
+ REPLACE_DIRFD=0; AC_SUBST([REPLACE_DIRFD])
+ REPLACE_FDOPENDIR=0; AC_SUBST([REPLACE_FDOPENDIR])
+])
diff --git a/m4/dirfd.m4 b/m4/dirfd.m4
new file mode 100644
index 00000000..fc475d78
--- /dev/null
+++ b/m4/dirfd.m4
@@ -0,0 +1,83 @@
+# serial 22 -*- Autoconf -*-
+
+dnl Find out how to get the file descriptor associated with an open DIR*.
+
+# Copyright (C) 2001-2006, 2008-2012 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 From Jim Meyering
+
+AC_DEFUN([gl_FUNC_DIRFD],
+[
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ dnl Persuade glibc <dirent.h> to declare dirfd().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_FUNCS([dirfd])
+ AC_CHECK_DECLS([dirfd], , ,
+ [[#include <sys/types.h>
+ #include <dirent.h>]])
+ if test $ac_cv_have_decl_dirfd = no; then
+ HAVE_DECL_DIRFD=0
+ fi
+
+ AC_CACHE_CHECK([whether dirfd is a macro],
+ gl_cv_func_dirfd_macro,
+ [AC_EGREP_CPP([dirent_header_defines_dirfd], [
+#include <sys/types.h>
+#include <dirent.h>
+#ifdef dirfd
+ dirent_header_defines_dirfd
+#endif],
+ gl_cv_func_dirfd_macro=yes,
+ gl_cv_func_dirfd_macro=no)])
+
+ # Use the replacement only if we have no function or macro with that name.
+ if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+ if test $ac_cv_have_decl_dirfd = yes; then
+ # If the system declares dirfd already, let's declare rpl_dirfd instead.
+ REPLACE_DIRFD=1
+ fi
+ fi
+])
+
+dnl Prerequisites of lib/dirfd.c.
+AC_DEFUN([gl_PREREQ_DIRFD],
+[
+ AC_CACHE_CHECK([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
+
+ 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
+ ]
+ )
+ 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])
+ fi
+ AH_VERBATIM([DIR_TO_FD],
+ [#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
+#endif
+])
+])
diff --git a/m4/dirname.m4 b/m4/dirname.m4
new file mode 100644
index 00000000..65639ec8
--- /dev/null
+++ b/m4/dirname.m4
@@ -0,0 +1,19 @@
+#serial 10 -*- autoconf -*-
+dnl Copyright (C) 2002-2006, 2009-2012 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_DEFUN([gl_DIRNAME_LGPL],
+[
+ dnl Prerequisites of lib/dirname.h.
+ AC_REQUIRE([gl_DOUBLE_SLASH_ROOT])
+
+ dnl No prerequisites of lib/basename-lgpl.c, lib/dirname-lgpl.c,
+ dnl lib/stripslash.c.
+])
diff --git a/m4/double-slash-root.m4 b/m4/double-slash-root.m4
new file mode 100644
index 00000000..1e037513
--- /dev/null
+++ b/m4/double-slash-root.m4
@@ -0,0 +1,38 @@
+# double-slash-root.m4 serial 4 -*- Autoconf -*-
+dnl Copyright (C) 2006, 2008-2012 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_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
+ 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])
+ if test "$gl_cv_double_slash_root" = yes; then
+ AC_DEFINE([DOUBLE_SLASH_IS_DISTINCT_ROOT], [1],
+ [Define to 1 if // is a file system root distinct from /.])
+ fi
+])
diff --git a/m4/dup.m4 b/m4/dup.m4
new file mode 100644
index 00000000..bec5880a
--- /dev/null
+++ b/m4/dup.m4
@@ -0,0 +1,27 @@
+# dup.m4 serial 2
+dnl Copyright (C) 2011-2012 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_DUP],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_DUP=1
+ fi
+ dnl Replace dup() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_DUP=1
+ fi
+ ])
+])
+
+# Prerequisites of lib/dup.c.
+AC_DEFUN([gl_PREREQ_DUP], [
+ AC_REQUIRE([AC_C_INLINE])
+])
diff --git a/m4/dup2.m4 b/m4/dup2.m4
new file mode 100644
index 00000000..dec27fae
--- /dev/null
+++ b/m4/dup2.m4
@@ -0,0 +1,78 @@
+#serial 17
+dnl Copyright (C) 2002, 2005, 2007, 2009-2012 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_DUP2],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ m4_ifdef([gl_FUNC_DUP2_OBSOLETE], [
+ AC_CHECK_FUNCS_ONCE([dup2])
+ if test $ac_cv_func_dup2 = no; then
+ HAVE_DUP2=0
+ fi
+ ], [
+ AC_DEFINE([HAVE_DUP2], [1], [Define to 1 if you have the 'dup2' function.])
+ ])
+ if test $HAVE_DUP2 = 1; then
+ AC_CACHE_CHECK([whether dup2 works], [gl_cv_func_dup2_works],
+ [AC_RUN_IFELSE([
+ AC_LANG_PROGRAM([[#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>]],
+ [int result = 0;
+#ifdef FD_CLOEXEC
+ if (fcntl (1, F_SETFD, FD_CLOEXEC) == -1)
+ result |= 1;
+#endif
+ if (dup2 (1, 1) == 0)
+ result |= 2;
+#ifdef FD_CLOEXEC
+ if (fcntl (1, F_GETFD) != FD_CLOEXEC)
+ result |= 4;
+#endif
+ close (0);
+ if (dup2 (0, 0) != -1)
+ result |= 8;
+ /* Many gnulib modules require POSIX conformance of EBADF. */
+ if (dup2 (2, 1000000) == -1 && errno != EBADF)
+ result |= 16;
+ return result;
+ ])
+ ],
+ [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;;
+ haiku*) # on Haiku alpha 2, dup2(1, 1) resets FD_CLOEXEC.
+ gl_cv_func_dup2_works=no;;
+ *) gl_cv_func_dup2_works=yes;;
+ esac])
+ ])
+ if test "$gl_cv_func_dup2_works" = no; then
+ REPLACE_DUP2=1
+ fi
+ fi
+ dnl Replace dup2() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_DUP2 = 1; then
+ REPLACE_DUP2=1
+ fi
+ fi
+ ])
+])
+
+# Prerequisites of lib/dup2.c.
+AC_DEFUN([gl_PREREQ_DUP2], [])
diff --git a/m4/eealloc.m4 b/m4/eealloc.m4
new file mode 100644
index 00000000..75f17e2f
--- /dev/null
+++ b/m4/eealloc.m4
@@ -0,0 +1,32 @@
+# eealloc.m4 serial 2
+dnl Copyright (C) 2003, 2009-2012 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_EEALLOC],
+[
+ AC_REQUIRE([gl_EEMALLOC])
+ AC_REQUIRE([gl_EEREALLOC])
+ AC_REQUIRE([AC_C_INLINE])
+])
+
+AC_DEFUN([gl_EEMALLOC],
+[
+ _AC_FUNC_MALLOC_IF(
+ [gl_cv_func_malloc_0_nonnull=1],
+ [gl_cv_func_malloc_0_nonnull=0])
+ AC_DEFINE_UNQUOTED([MALLOC_0_IS_NONNULL], [$gl_cv_func_malloc_0_nonnull],
+ [If malloc(0) is != NULL, define this to 1. Otherwise define this
+ to 0.])
+])
+
+AC_DEFUN([gl_EEREALLOC],
+[
+ _AC_FUNC_REALLOC_IF(
+ [gl_cv_func_realloc_0_nonnull=1],
+ [gl_cv_func_realloc_0_nonnull=0])
+ AC_DEFINE_UNQUOTED([REALLOC_0_IS_NONNULL], [$gl_cv_func_realloc_0_nonnull],
+ [If realloc(NULL,0) is != NULL, define this to 1. Otherwise define this
+ to 0.])
+])
diff --git a/m4/environ.m4 b/m4/environ.m4
new file mode 100644
index 00000000..8eb57c9d
--- /dev/null
+++ b/m4/environ.m4
@@ -0,0 +1,47 @@
+# environ.m4 serial 6
+dnl Copyright (C) 2001-2004, 2006-2012 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_ENVIRON],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ dnl Persuade glibc <unistd.h> to declare environ.
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ gt_CHECK_VAR_DECL(
+ [#if HAVE_UNISTD_H
+ #include <unistd.h>
+ #endif
+ /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */
+ #include <stdlib.h>
+ ],
+ [environ])
+ if test $gt_cv_var_environ_declaration != yes; then
+ HAVE_DECL_ENVIRON=0
+ fi
+])
+
+# Check if a variable is properly declared.
+# gt_CHECK_VAR_DECL(includes,variable)
+AC_DEFUN([gt_CHECK_VAR_DECL],
+[
+ define([gt_cv_var], [gt_cv_var_]$2[_declaration])
+ AC_MSG_CHECKING([if $2 is properly declared])
+ AC_CACHE_VAL([gt_cv_var], [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[$1
+ extern struct { int foo; } $2;]],
+ [[$2.foo = 1;]])],
+ [gt_cv_var=no],
+ [gt_cv_var=yes])])
+ AC_MSG_RESULT([$gt_cv_var])
+ if test $gt_cv_var = yes; then
+ AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1,
+ [Define if you have the declaration of $2.])
+ fi
+ undefine([gt_cv_var])
+])
diff --git a/m4/errno_h.m4 b/m4/errno_h.m4
new file mode 100644
index 00000000..4f0bb835
--- /dev/null
+++ b/m4/errno_h.m4
@@ -0,0 +1,125 @@
+# errno_h.m4 serial 10
+dnl Copyright (C) 2004, 2006, 2008-2012 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_HEADER_ERRNO_H],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CACHE_CHECK([for complete errno.h], [gl_cv_header_errno_h_complete], [
+ AC_EGREP_CPP([booboo],[
+#include <errno.h>
+#if !defined ENOMSG
+booboo
+#endif
+#if !defined EIDRM
+booboo
+#endif
+#if !defined ENOLINK
+booboo
+#endif
+#if !defined EPROTO
+booboo
+#endif
+#if !defined EMULTIHOP
+booboo
+#endif
+#if !defined EBADMSG
+booboo
+#endif
+#if !defined EOVERFLOW
+booboo
+#endif
+#if !defined ENOTSUP
+booboo
+#endif
+#if !defined ENETRESET
+booboo
+#endif
+#if !defined ECONNABORTED
+booboo
+#endif
+#if !defined ESTALE
+booboo
+#endif
+#if !defined EDQUOT
+booboo
+#endif
+#if !defined ECANCELED
+booboo
+#endif
+ ],
+ [gl_cv_header_errno_h_complete=no],
+ [gl_cv_header_errno_h_complete=yes])
+ ])
+ if test $gl_cv_header_errno_h_complete = yes; then
+ ERRNO_H=''
+ else
+ gl_NEXT_HEADERS([errno.h])
+ ERRNO_H='errno.h'
+ fi
+ AC_SUBST([ERRNO_H])
+ AM_CONDITIONAL([GL_GENERATE_ERRNO_H], [test -n "$ERRNO_H"])
+ gl_REPLACE_ERRNO_VALUE([EMULTIHOP])
+ gl_REPLACE_ERRNO_VALUE([ENOLINK])
+ gl_REPLACE_ERRNO_VALUE([EOVERFLOW])
+])
+
+# Assuming $1 = EOVERFLOW.
+# The EOVERFLOW errno value ought to be defined in <errno.h>, according to
+# POSIX. But some systems (like OpenBSD 4.0 or AIX 3) don't define it, and
+# some systems (like OSF/1) define it when _XOPEN_SOURCE_EXTENDED is defined.
+# Check for the value of EOVERFLOW.
+# Set the variables EOVERFLOW_HIDDEN and EOVERFLOW_VALUE.
+AC_DEFUN([gl_REPLACE_ERRNO_VALUE],
+[
+ if test -n "$ERRNO_H"; then
+ AC_CACHE_CHECK([for ]$1[ value], [gl_cv_header_errno_h_]$1, [
+ AC_EGREP_CPP([yes],[
+#include <errno.h>
+#ifdef ]$1[
+yes
+#endif
+ ],
+ [gl_cv_header_errno_h_]$1[=yes],
+ [gl_cv_header_errno_h_]$1[=no])
+ if test $gl_cv_header_errno_h_]$1[ = no; then
+ AC_EGREP_CPP([yes],[
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+#ifdef ]$1[
+yes
+#endif
+ ], [gl_cv_header_errno_h_]$1[=hidden])
+ if test $gl_cv_header_errno_h_]$1[ = hidden; then
+ dnl The macro exists but is hidden.
+ dnl Define it to the same value.
+ AC_COMPUTE_INT([gl_cv_header_errno_h_]$1, $1, [
+#define _XOPEN_SOURCE_EXTENDED 1
+#include <errno.h>
+/* The following two lines are a workaround against an autoconf-2.52 bug. */
+#include <stdio.h>
+#include <stdlib.h>
+])
+ fi
+ fi
+ ])
+ case $gl_cv_header_errno_h_]$1[ in
+ yes | no)
+ ]$1[_HIDDEN=0; ]$1[_VALUE=
+ ;;
+ *)
+ ]$1[_HIDDEN=1; ]$1[_VALUE="$gl_cv_header_errno_h_]$1["
+ ;;
+ esac
+ AC_SUBST($1[_HIDDEN])
+ AC_SUBST($1[_VALUE])
+ fi
+])
+
+dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
+dnl Remove this when we can assume autoconf >= 2.61.
+m4_ifdef([AC_COMPUTE_INT], [], [
+ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+])
diff --git a/m4/error.m4 b/m4/error.m4
new file mode 100644
index 00000000..5d9c70a4
--- /dev/null
+++ b/m4/error.m4
@@ -0,0 +1,28 @@
+#serial 14
+
+# Copyright (C) 1996-1998, 2001-2004, 2009-2012 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_ERROR],
+[
+ dnl We don't use AC_FUNC_ERROR_AT_LINE any more, because it is no longer
+ dnl maintained in Autoconf and because it invokes AC_LIBOBJ.
+ AC_CACHE_CHECK([for error_at_line], [ac_cv_lib_error_at_line],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <error.h>]],
+ [[error_at_line (0, 0, "", 0, "an error occurred");]])],
+ [ac_cv_lib_error_at_line=yes],
+ [ac_cv_lib_error_at_line=no])])
+])
+
+# Prerequisites of lib/error.c.
+AC_DEFUN([gl_PREREQ_ERROR],
+[
+ AC_REQUIRE([AC_FUNC_STRERROR_R])
+ AC_REQUIRE([AC_C_INLINE])
+ :
+])
diff --git a/m4/exponentd.m4 b/m4/exponentd.m4
new file mode 100644
index 00000000..48df999a
--- /dev/null
+++ b/m4/exponentd.m4
@@ -0,0 +1,115 @@
+# exponentd.m4 serial 2
+dnl Copyright (C) 2007-2008, 2010-2012 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_DOUBLE_EXPONENT_LOCATION],
+[
+ AC_CACHE_CHECK([where to find the exponent in a 'double'],
+ [gl_cv_cc_double_expbit0],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <float.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#define NWORDS \
+ ((sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int))
+typedef union { double value; unsigned int word[NWORDS]; } memory_double;
+static unsigned int ored_words[NWORDS];
+static unsigned int anded_words[NWORDS];
+static void add_to_ored_words (double x)
+{
+ memory_double m;
+ size_t i;
+ /* Clear it first, in case sizeof (double) < sizeof (memory_double). */
+ memset (&m, 0, sizeof (memory_double));
+ m.value = x;
+ for (i = 0; i < NWORDS; i++)
+ {
+ ored_words[i] |= m.word[i];
+ anded_words[i] &= m.word[i];
+ }
+}
+int main ()
+{
+ size_t j;
+ FILE *fp = fopen ("conftest.out", "w");
+ if (fp == NULL)
+ return 1;
+ for (j = 0; j < NWORDS; j++)
+ anded_words[j] = ~ (unsigned int) 0;
+ add_to_ored_words (0.25);
+ add_to_ored_words (0.5);
+ add_to_ored_words (1.0);
+ add_to_ored_words (2.0);
+ add_to_ored_words (4.0);
+ /* Remove bits that are common (e.g. if representation of the first mantissa
+ bit is explicit). */
+ for (j = 0; j < NWORDS; j++)
+ ored_words[j] &= ~anded_words[j];
+ /* Now find the nonzero word. */
+ for (j = 0; j < NWORDS; j++)
+ if (ored_words[j] != 0)
+ break;
+ if (j < NWORDS)
+ {
+ size_t i;
+ for (i = j + 1; i < NWORDS; i++)
+ if (ored_words[i] != 0)
+ {
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+ }
+ for (i = 0; ; i++)
+ if ((ored_words[j] >> i) & 1)
+ {
+ fprintf (fp, "word %d bit %d", (int) j, (int) i);
+ return (fclose (fp) != 0);
+ }
+ }
+ fprintf (fp, "unknown");
+ return (fclose (fp) != 0);
+}
+ ]])],
+ [gl_cv_cc_double_expbit0=`cat conftest.out`],
+ [gl_cv_cc_double_expbit0="unknown"],
+ [
+ dnl On ARM, there are two 'double' floating-point formats, used by
+ dnl different sets of instructions: The older FPA instructions assume
+ dnl that they are stored in big-endian word order, while the words
+ dnl (like integer types) are stored in little-endian byte order.
+ dnl The newer VFP instructions assume little-endian order consistenly.
+ AC_EGREP_CPP([mixed_endianness], [
+#if defined arm || defined __arm || defined __arm__
+ mixed_endianness
+#endif
+ ],
+ [gl_cv_cc_double_expbit0="unknown"],
+ [
+ pushdef([AC_MSG_CHECKING],[:])dnl
+ pushdef([AC_MSG_RESULT],[:])dnl
+ pushdef([AC_MSG_RESULT_UNQUOTED],[:])dnl
+ AC_C_BIGENDIAN(
+ [gl_cv_cc_double_expbit0="word 0 bit 20"],
+ [gl_cv_cc_double_expbit0="word 1 bit 20"],
+ [gl_cv_cc_double_expbit0="unknown"])
+ popdef([AC_MSG_RESULT_UNQUOTED])dnl
+ popdef([AC_MSG_RESULT])dnl
+ popdef([AC_MSG_CHECKING])dnl
+ ])
+ ])
+ rm -f conftest.out
+ ])
+ case "$gl_cv_cc_double_expbit0" in
+ word*bit*)
+ word=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word //' -e 's/ bit.*//'`
+ bit=`echo "$gl_cv_cc_double_expbit0" | sed -e 's/word.*bit //'`
+ AC_DEFINE_UNQUOTED([DBL_EXPBIT0_WORD], [$word],
+ [Define as the word index where to find the exponent of 'double'.])
+ AC_DEFINE_UNQUOTED([DBL_EXPBIT0_BIT], [$bit],
+ [Define as the bit index in the word where to find bit 0 of the exponent of 'double'.])
+ ;;
+ esac
+])
diff --git a/m4/extensions.m4 b/m4/extensions.m4
new file mode 100644
index 00000000..0bfaef6f
--- /dev/null
+++ b/m4/extensions.m4
@@ -0,0 +1,123 @@
+# serial 11 -*- Autoconf -*-
+# Enable extensions on systems that normally disable them.
+
+# Copyright (C) 2003, 2006-2012 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.
+
+# This definition of AC_USE_SYSTEM_EXTENSIONS is stolen from CVS
+# Autoconf. Perhaps we can remove this once we can assume Autoconf
+# 2.62 or later everywhere, but since CVS Autoconf mutates rapidly
+# 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,
+# typically due to standards-conformance issues.
+# Remember that #undef in AH_VERBATIM gets replaced with #define by
+# AC_DEFINE. The goal here is to define all known feature-enabling
+# macros, then, if reports of conflicts are made, disable macros that
+# cause problems on some platforms (such as __EXTENSIONS__).
+AC_DEFUN_ONCE([AC_USE_SYSTEM_EXTENSIONS],
+[AC_BEFORE([$0], [AC_COMPILE_IFELSE])dnl
+AC_BEFORE([$0], [AC_RUN_IFELSE])dnl
+
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ AC_CHECK_HEADER([minix/config.h], [MINIX=yes], [MINIX=])
+ if test "$MINIX" = yes; then
+ AC_DEFINE([_POSIX_SOURCE], [1],
+ [Define to 1 if you need to in order for 'stat' and other
+ things to work.])
+ AC_DEFINE([_POSIX_1_SOURCE], [2],
+ [Define to 2 if the system does not provide POSIX.1 features
+ except with this defined.])
+ AC_DEFINE([_MINIX], [1],
+ [Define to 1 if on MINIX.])
+ fi
+
+ dnl HP-UX 11.11 defines mbstate_t only if _XOPEN_SOURCE is defined to 500,
+ dnl regardless of whether the flags -Ae or _D_HPUX_SOURCE=1 are already
+ dnl provided.
+ case "$host_os" in
+ hpux*)
+ AC_DEFINE([_XOPEN_SOURCE], [500],
+ [Define to 500 only on HP-UX.])
+ ;;
+ esac
+
+ AH_VERBATIM([__EXTENSIONS__],
+[/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable general extensions on MacOS X. */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable threading extensions on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+])
+ AC_CACHE_CHECK([whether it is safe to define __EXTENSIONS__],
+ [ac_cv_safe_to_define___extensions__],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[
+# 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 &&
+ AC_DEFINE([__EXTENSIONS__])
+ AC_DEFINE([_ALL_SOURCE])
+ AC_DEFINE([_DARWIN_C_SOURCE])
+ AC_DEFINE([_GNU_SOURCE])
+ AC_DEFINE([_POSIX_PTHREAD_SEMANTICS])
+ AC_DEFINE([_TANDEM_SOURCE])
+])# AC_USE_SYSTEM_EXTENSIONS
+
+# gl_USE_SYSTEM_EXTENSIONS
+# ------------------------
+# Enable extensions on systems that normally disable them,
+# typically due to standards-conformance issues.
+AC_DEFUN_ONCE([gl_USE_SYSTEM_EXTENSIONS],
+[
+ dnl Require this macro before AC_USE_SYSTEM_EXTENSIONS.
+ dnl gnulib does not need it. But if it gets required by third-party macros
+ dnl after AC_USE_SYSTEM_EXTENSIONS is required, autoconf 2.62..2.63 emit a
+ dnl warning: "AC_COMPILE_IFELSE was called before AC_USE_SYSTEM_EXTENSIONS".
+ dnl Note: We can do this only for one of the macros AC_AIX, AC_GNU_SOURCE,
+ dnl AC_MINIX. If people still use AC_AIX or AC_MINIX, they are out of luck.
+ AC_REQUIRE([AC_GNU_SOURCE])
+
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+])
diff --git a/m4/fchdir.m4 b/m4/fchdir.m4
new file mode 100644
index 00000000..85796c1a
--- /dev/null
+++ b/m4/fchdir.m4
@@ -0,0 +1,51 @@
+# fchdir.m4 serial 20
+dnl Copyright (C) 2006-2012 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_FCHDIR],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_DECLS_ONCE([fchdir])
+ if test $ac_cv_have_decl_fchdir = no; then
+ HAVE_DECL_FCHDIR=0
+ fi
+
+ AC_REQUIRE([gl_TEST_FCHDIR])
+ if test $HAVE_FCHDIR = 0; then
+ AC_LIBOBJ([fchdir])
+ gl_PREREQ_FCHDIR
+ 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.
+ 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.])
+ fi
+ fi
+])
+
+# Determine whether to use the overrides in lib/fchdir.c.
+AC_DEFUN([gl_TEST_FCHDIR],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([fchdir])
+ if test $ac_cv_func_fchdir = no; then
+ HAVE_FCHDIR=0
+ fi
+])
+
+# Prerequisites of lib/fchdir.c.
+AC_DEFUN([gl_PREREQ_FCHDIR], [:])
diff --git a/m4/fcntl-o.m4 b/m4/fcntl-o.m4
new file mode 100644
index 00000000..9862741f
--- /dev/null
+++ b/m4/fcntl-o.m4
@@ -0,0 +1,123 @@
+# fcntl-o.m4 serial 4
+dnl Copyright (C) 2006, 2009-2012 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.
+ dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes
+ dnl AC_GNU_SOURCE.
+ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
+ [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
+ [AC_REQUIRE([AC_GNU_SOURCE])])
+
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CHECK_FUNCS_ONCE([symlink])
+ 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>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <io.h>
+ # include <stdlib.h>
+ # defined sleep(n) _sleep ((n) * 1000)
+ #endif
+ #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 result = !constants;
+ #if HAVE_SYMLINK
+ {
+ static char const sym[] = "conftest.sym";
+ if (symlink (".", sym) != 0)
+ result |= 2;
+ else
+ {
+ int fd = open (sym, O_RDONLY | O_NOFOLLOW);
+ if (fd >= 0)
+ {
+ close (fd);
+ result |= 4;
+ }
+ }
+ unlink (sym);
+ }
+ #endif
+ {
+ static char const file[] = "confdefs.h";
+ int fd = open (file, O_RDONLY | O_NOATIME);
+ if (fd < 0)
+ result |= 8;
+ else
+ {
+ struct stat st0;
+ if (fstat (fd, &st0) != 0)
+ result |= 16;
+ else
+ {
+ char c;
+ sleep (1);
+ if (read (fd, &c, 1) != 1)
+ result |= 24;
+ else
+ {
+ if (close (fd) != 0)
+ result |= 32;
+ else
+ {
+ struct stat st1;
+ if (stat (file, &st1) != 0)
+ result |= 40;
+ else
+ if (st0.st_atime != st1.st_atime)
+ result |= 64;
+ }
+ }
+ }
+ }
+ }
+ return result;]])],
+ [gl_cv_header_working_fcntl_h=yes],
+ [case $? in #(
+ 4) gl_cv_header_working_fcntl_h='no (bad O_NOFOLLOW)';; #(
+ 64) gl_cv_header_working_fcntl_h='no (bad O_NOATIME)';; #(
+ 68) 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 00000000..0631bd6f
--- /dev/null
+++ b/m4/fcntl.m4
@@ -0,0 +1,95 @@
+# fcntl.m4 serial 5
+dnl Copyright (C) 2009-2012 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
+ dnl haiku alpha 2 F_DUPFD has wrong errno
+ 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>
+#include <errno.h>
+]], [[int result = 0;
+ if (fcntl (0, F_DUPFD, -1) != -1) result |= 1;
+ if (errno != EINVAL) result |= 2;
+ return result;
+ ]])],
+ [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
+ dnl Replace fcntl() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ gl_REPLACE_FCNTL
+ 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
+])
diff --git a/m4/fcntl_h.m4 b/m4/fcntl_h.m4
new file mode 100644
index 00000000..cac28aeb
--- /dev/null
+++ b/m4/fcntl_h.m4
@@ -0,0 +1,50 @@
+# serial 15
+# Configure fcntl.h.
+dnl Copyright (C) 2006-2007, 2009-2012 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.
+
+AC_DEFUN([gl_FCNTL_H],
+[
+ AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+ AC_REQUIRE([gl_FCNTL_O_FLAGS])
+ gl_NEXT_HEADERS([fcntl.h])
+
+ dnl Ensure the type pid_t gets defined.
+ AC_REQUIRE([AC_TYPE_PID_T])
+
+ dnl Ensure the type mode_t gets defined.
+ AC_REQUIRE([AC_TYPE_MODE_T])
+
+ 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],
+[
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_FCNTL_H_DEFAULTS],
+[
+ GNULIB_FCNTL=0; AC_SUBST([GNULIB_FCNTL])
+ GNULIB_NONBLOCKING=0; AC_SUBST([GNULIB_NONBLOCKING])
+ GNULIB_OPEN=0; AC_SUBST([GNULIB_OPEN])
+ GNULIB_OPENAT=0; AC_SUBST([GNULIB_OPENAT])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ 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 00000000..2088b115
--- /dev/null
+++ b/m4/fdopendir.m4
@@ -0,0 +1,51 @@
+# serial 9
+# See if we need to provide fdopendir.
+
+dnl Copyright (C) 2009-2012 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_DIRENT_H_DEFAULTS])
+
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ dnl FreeBSD 7.3 has the function, but failed to declare it.
+ AC_CHECK_DECLS([fdopendir], [], [HAVE_DECL_FDOPENDIR=0], [[
+#include <dirent.h>
+ ]])
+ AC_CHECK_FUNCS_ONCE([fdopendir])
+ if test $ac_cv_func_fdopendir = no; then
+ 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>
+#include <unistd.h>
+#if !HAVE_DECL_FDOPENDIR
+extern
+# ifdef __cplusplus
+"C"
+# endif
+DIR *fdopendir (int);
+#endif
+]], [int result = 0;
+ int fd = open ("conftest.c", O_RDONLY);
+ if (fd < 0) result |= 1;
+ if (fdopendir (fd)) result |= 2;
+ if (close (fd)) result |= 4;
+ return result;])],
+ [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
+ fi
+ fi
+])
diff --git a/m4/fileblocks.m4 b/m4/fileblocks.m4
new file mode 100644
index 00000000..6cff3476
--- /dev/null
+++ b/m4/fileblocks.m4
@@ -0,0 +1,23 @@
+# fileblocks.m4 serial 6
+dnl Copyright (C) 2002, 2005-2006, 2009-2012 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_FILEBLOCKS],
+[
+ m4_pushdef([AC_LIBOBJ], [:])
+ dnl Note: AC_STRUCT_ST_BLOCKS does AC_LIBOBJ([fileblocks]).
+ AC_STRUCT_ST_BLOCKS
+ m4_popdef([AC_LIBOBJ])
+ dnl The stat-size module depends on this one and also assumes that
+ dnl HAVE_STRUCT_STAT_ST_BLOCKS is correctly defined. So if you
+ dnl remove the call above, please make sure that this does not
+ dnl introduce a bug into lib/stat-size.h.
+])
+
+# Prerequisites of lib/fileblocks.c.
+AC_DEFUN([gl_PREREQ_FILEBLOCKS], [
+ AC_CHECK_HEADERS_ONCE([sys/param.h])
+ :
+])
diff --git a/m4/filenamecat.m4 b/m4/filenamecat.m4
new file mode 100644
index 00000000..b552f12e
--- /dev/null
+++ b/m4/filenamecat.m4
@@ -0,0 +1,16 @@
+# filenamecat.m4 serial 11
+dnl Copyright (C) 2002-2006, 2009-2012 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_FILE_NAME_CONCAT],
+[
+ AC_REQUIRE([gl_FILE_NAME_CONCAT_LGPL])
+])
+
+AC_DEFUN([gl_FILE_NAME_CONCAT_LGPL],
+[
+ dnl Prerequisites of lib/filenamecat-lgpl.c.
+ AC_CHECK_FUNCS_ONCE([mempcpy])
+])
diff --git a/m4/float_h.m4 b/m4/float_h.m4
new file mode 100644
index 00000000..51c9c7b3
--- /dev/null
+++ b/m4/float_h.m4
@@ -0,0 +1,98 @@
+# float_h.m4 serial 9
+dnl Copyright (C) 2007, 2009-2012 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_FLOAT_H],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ FLOAT_H=
+ REPLACE_FLOAT_LDBL=0
+ case "$host_os" in
+ aix* | beos* | openbsd* | mirbsd* | irix*)
+ FLOAT_H=float.h
+ ;;
+ freebsd*)
+ case "$host_cpu" in
+changequote(,)dnl
+ i[34567]86 )
+changequote([,])dnl
+ FLOAT_H=float.h
+ ;;
+ x86_64 )
+ # On x86_64 systems, the C compiler may still be generating
+ # 32-bit code.
+ AC_EGREP_CPP([yes],
+ [#if defined __LP64__ || defined __x86_64__ || defined __amd64__
+ yes
+ #endif],
+ [],
+ [FLOAT_H=float.h])
+ ;;
+ esac
+ ;;
+ linux*)
+ case "$host_cpu" in
+ powerpc*)
+ FLOAT_H=float.h
+ ;;
+ esac
+ ;;
+ esac
+ case "$host_os" in
+ aix* | freebsd* | linux*)
+ if test -n "$FLOAT_H"; then
+ REPLACE_FLOAT_LDBL=1
+ fi
+ ;;
+ esac
+
+ dnl Test against glibc-2.7 Linux/SPARC64 bug.
+ REPLACE_ITOLD=0
+ AC_CACHE_CHECK([whether conversion from 'int' to 'long double' works],
+ [gl_cv_func_itold_works],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+int i = -1;
+volatile long double ld;
+int main ()
+{
+ ld += i * 1.0L;
+ if (ld > 0)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_itold_works=yes],
+ [gl_cv_func_itold_works=no],
+ [case "$host" in
+ sparc*-*-linux*)
+ AC_EGREP_CPP([yes],
+ [#if defined __LP64__ || defined __arch64__
+ yes
+ #endif],
+ [gl_cv_func_itold_works="guessing no"],
+ [gl_cv_func_itold_works="guessing yes"])
+ ;;
+ *) gl_cv_func_itold_works="guessing yes" ;;
+ esac
+ ])
+ ])
+ case "$gl_cv_func_itold_works" in
+ *no)
+ REPLACE_ITOLD=1
+ dnl We add the workaround to <float.h> but also to <math.h>,
+ dnl to increase the chances that the fix function gets pulled in.
+ FLOAT_H=float.h
+ ;;
+ esac
+
+ if test -n "$FLOAT_H"; then
+ gl_NEXT_HEADERS([float.h])
+ fi
+ AC_SUBST([FLOAT_H])
+ AM_CONDITIONAL([GL_GENERATE_FLOAT_H], [test -n "$FLOAT_H"])
+ AC_SUBST([REPLACE_ITOLD])
+])
diff --git a/m4/fnmatch.m4 b/m4/fnmatch.m4
new file mode 100644
index 00000000..07b43500
--- /dev/null
+++ b/m4/fnmatch.m4
@@ -0,0 +1,156 @@
+# Check for fnmatch - serial 8.
+
+# Copyright (C) 2000-2007, 2009-2012 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.
+
+# Autoconf defines AC_FUNC_FNMATCH, but that is obsolescent.
+# New applications should use the macros below instead.
+
+# 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=
+ 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 };
+ int result = 0;
+ if (!n ("a*", "", 0))
+ return 1;
+ if (!y ("a*", "abc", 0))
+ return 1;
+ if (!y ("[/b", "[/b", 0)) /*"]]"*/ /* glibc Bugzilla bug 12378 */
+ return 1;
+ if (!n ("d*/*1", "d/s/1", FNM_PATHNAME))
+ return 2;
+ if (!y ("a\\\\bc", "abc", 0))
+ return 3;
+ if (!n ("a\\\\bc", "abc", FNM_NOESCAPE))
+ return 3;
+ if (!y ("*x", ".x", 0))
+ return 4;
+ if (!n ("*x", ".x", FNM_PERIOD))
+ return 4;
+ if (!y (Apat, "\\\\", 0))
+ return 5;
+ if (!y (Apat, "A", 0))
+ return 5;
+ if (!y (apat, "\\\\", 0))
+ return 5;
+ if (!y (apat, "a", 0))
+ return 5;
+ if (!(n (Apat, A_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, a_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, A01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, a01, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(y (Apat, bs_1, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(y (apat, bs_1, 0) == ('a' < '\\\\')))
+ return 5;
+ if (!(n (Apat, bs01, 0) == ('A' < '\\\\')))
+ return 5;
+ if (!(n (apat, bs01, 0) == ('a' < '\\\\')))
+ return 5;
+ $gl_fnmatch_gnu_start
+ if (!y ("xxXX", "xXxX", FNM_CASEFOLD))
+ result |= 8;
+ if (!y ("a++(x|yy)b", "a+xyyyyxb", FNM_EXTMATCH))
+ result |= 16;
+ if (!n ("d*/*1", "d/s/1", FNM_FILE_NAME))
+ result |= 32;
+ if (!y ("*", "x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("x*", "x/y/z", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ if (!y ("*c*", "c/x", FNM_FILE_NAME | FNM_LEADING_DIR))
+ result |= 64;
+ $gl_fnmatch_gnu_end
+ return result;
+ ]])],
+ [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
+ fi
+ AC_SUBST([FNMATCH_H])
+ AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"])
+])
+
+# Request a POSIX compliant fnmatch function with GNU extensions.
+AC_DEFUN([gl_FUNC_FNMATCH_GNU],
+[
+ m4_divert_text([INIT_PREPARE], [gl_fnmatch_required=GNU])
+
+ AC_REQUIRE([gl_FUNC_FNMATCH_POSIX])
+])
+
+AC_DEFUN([gl_PREREQ_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_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])
+])
diff --git a/m4/fpending.m4 b/m4/fpending.m4
new file mode 100644
index 00000000..a818323b
--- /dev/null
+++ b/m4/fpending.m4
@@ -0,0 +1,87 @@
+# serial 18
+
+# Copyright (C) 2000-2001, 2004-2012 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 From Jim Meyering
+dnl Using code from emacs, based on suggestions from Paul Eggert
+dnl and Ulrich Drepper.
+
+dnl Find out how to determine the number of pending output bytes on a stream.
+dnl glibc (2.1.93 and newer) and Solaris provide __fpending. On other systems,
+dnl we have to grub around in the FILE struct.
+
+AC_DEFUN([gl_FUNC_FPENDING],
+[
+ AC_CHECK_HEADERS_ONCE([stdio_ext.h])
+ AC_CHECK_FUNCS_ONCE([__fpending])
+ fp_headers='
+# include <stdio.h>
+# if HAVE_STDIO_EXT_H
+# include <stdio_ext.h>
+# endif
+'
+ AC_CHECK_DECLS([__fpending], , , $fp_headers)
+])
+
+AC_DEFUN([gl_PREREQ_FPENDING],
+[
+ AC_CACHE_CHECK(
+ [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' \
+ \
+ '# Minix' \
+ 'fp->_ptr - fp->_buf' \
+ \
+ '# 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
+
+ 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_DEFINE_UNQUOTED([PENDING_OUTPUT_N_BYTES],
+ $ac_cv_sys_pending_output_n_bytes,
+ [the number of pending output bytes on stream 'fp'])
+])
diff --git a/m4/fseek.m4 b/m4/fseek.m4
new file mode 100644
index 00000000..d9cd70a9
--- /dev/null
+++ b/m4/fseek.m4
@@ -0,0 +1,15 @@
+# fseek.m4 serial 4
+dnl Copyright (C) 2007, 2009-2012 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_FSEEK],
+[
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_FSEEKO])
+ dnl When fseeko needs fixes, fseek needs them too.
+ if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+ REPLACE_FSEEK=1
+ fi
+])
diff --git a/m4/fseeko.m4 b/m4/fseeko.m4
new file mode 100644
index 00000000..be5bb35e
--- /dev/null
+++ b/m4/fseeko.m4
@@ -0,0 +1,61 @@
+# fseeko.m4 serial 15
+dnl Copyright (C) 2007-2012 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_FSEEKO],
+[
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_REQUIRE([gl_STDIN_LARGE_OFFSET])
+ AC_REQUIRE([AC_PROG_CC])
+
+ dnl Persuade glibc <stdio.h> to declare fseeko().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CACHE_CHECK([for fseeko], [gl_cv_func_fseeko],
+ [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>
+]], [fseeko (stdin, 0, 0);])],
+ [gl_cv_func_fseeko=yes], [gl_cv_func_fseeko=no])
+ ])
+
+ AC_CHECK_DECLS_ONCE([fseeko])
+ if test $ac_cv_have_decl_fseeko = no; then
+ HAVE_DECL_FSEEKO=0
+ fi
+
+ if test $gl_cv_func_fseeko = no; then
+ HAVE_FSEEKO=0
+ else
+ if test $gl_cv_var_stdin_large_offset = no; then
+ REPLACE_FSEEKO=1
+ fi
+ m4_ifdef([gl_FUNC_FFLUSH_STDIN], [
+ gl_FUNC_FFLUSH_STDIN
+ if test $gl_cv_func_fflush_stdin = no; then
+ REPLACE_FSEEKO=1
+ fi
+ ])
+ fi
+])
+
+dnl Code shared by fseeko and ftello. Determine if large files are supported,
+dnl but stdin does not start as a large file by default.
+AC_DEFUN([gl_STDIN_LARGE_OFFSET],
+ [
+ AC_CACHE_CHECK([whether stdin defaults to large file offsets],
+ [gl_cv_var_stdin_large_offset],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]],
+[[#if defined __SL64 && defined __SCLE /* cygwin */
+ /* Cygwin 1.5.24 and earlier fail to put stdin in 64-bit mode, making
+ fseeko/ftello needlessly fail. This bug was fixed in 1.5.25, and
+ it is easier to do a version check than building a runtime test. */
+# include <cygwin/version.h>
+# if CYGWIN_VERSION_DLL_COMBINED < CYGWIN_VERSION_DLL_MAKE_COMBINED (1005, 25)
+ choke me
+# endif
+#endif]])],
+ [gl_cv_var_stdin_large_offset=yes],
+ [gl_cv_var_stdin_large_offset=no])])
+])
diff --git a/m4/fstat.m4 b/m4/fstat.m4
new file mode 100644
index 00000000..e3f8f3e2
--- /dev/null
+++ b/m4/fstat.m4
@@ -0,0 +1,28 @@
+# fstat.m4 serial 1
+dnl Copyright (C) 2011-2012 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_FSTAT],
+[
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_FSTAT=1
+ fi
+ dnl Replace fstat() for supporting the gnulib-defined open() on directories.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0 \
+ && test "$gl_cv_func_open_directory_works" != yes; then
+ REPLACE_FSTAT=1
+ fi
+ ])
+])
+
+# Prerequisites of lib/fstat.c.
+AC_DEFUN([gl_PREREQ_FSTAT],
+[
+ AC_REQUIRE([AC_C_INLINE])
+])
diff --git a/m4/fstatat.m4 b/m4/fstatat.m4
new file mode 100644
index 00000000..a6885315
--- /dev/null
+++ b/m4/fstatat.m4
@@ -0,0 +1,60 @@
+# fstatat.m4 serial 2
+dnl Copyright (C) 2004-2012 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 Jim Meyering.
+
+# If we have the fstatat function, and it has the bug (in AIX 7.1)
+# that it does not fill in st_size correctly, use the replacement function.
+AC_DEFUN([gl_FUNC_FSTATAT],
+[
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CHECK_FUNCS_ONCE([fstatat])
+
+ if test $ac_cv_func_fstatat = no; then
+ HAVE_FSTATAT=0
+ else
+ dnl Test for an AIX 7.1 bug; see
+ dnl <http://lists.gnu.org/archive/html/bug-tar/2011-09/msg00015.html>.
+ AC_CACHE_CHECK([whether fstatat (..., 0) works],
+ [gl_cv_func_fstatat_zero_flag],
+ [AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+ #include <fcntl.h>
+ #include <sys/stat.h>
+ int
+ main (void)
+ {
+ struct stat a;
+ return fstatat (AT_FDCWD, ".", &a, 0) != 0;
+ }
+ ]])],
+ [gl_cv_func_fstatat_zero_flag=yes],
+ [gl_cv_func_fstatat_zero_flag=no],
+ [case "$host_os" in
+ aix*) gl_cv_func_fstatat_zero_flag="guessing no";;
+ *) gl_cv_func_fstatat_zero_flag="guessing yes";;
+ esac
+ ])
+ ])
+
+ case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ *yes+yes) ;;
+ *) REPLACE_FSTATAT=1
+ case $gl_cv_func_fstatat_zero_flag in
+ *yes)
+ AC_DEFINE([HAVE_WORKING_FSTATAT_ZERO_FLAG], [1],
+ [Define to 1 if fstatat (..., 0) works.
+ For example, it does not work in AIX 7.1.])
+ ;;
+ esac
+ ;;
+ esac
+ fi
+])
diff --git a/m4/futimens.m4 b/m4/futimens.m4
new file mode 100644
index 00000000..27b3b290
--- /dev/null
+++ b/m4/futimens.m4
@@ -0,0 +1,59 @@
+# serial 6
+# See if we need to provide futimens replacement.
+
+dnl Copyright (C) 2009-2012 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_FUTIMENS],
+[
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([futimens])
+ if test $ac_cv_func_futimens = no; then
+ HAVE_FUTIMENS=0
+ else
+ AC_CACHE_CHECK([whether futimens works],
+ [gl_cv_func_futimens_works],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <errno.h>
+]], [[struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+ int fd = creat ("conftest.file", 0600);
+ struct stat st;
+ if (fd < 0) return 1;
+ errno = 0;
+ if (futimens (AT_FDCWD, NULL) == 0) return 2;
+ if (errno != EBADF) return 3;
+ if (futimens (fd, ts)) return 4;
+ sleep (1);
+ ts[0].tv_nsec = UTIME_NOW;
+ ts[1].tv_nsec = UTIME_OMIT;
+ if (futimens (fd, ts)) return 5;
+ if (fstat (fd, &st)) return 6;
+ if (st.st_ctime < st.st_atime) return 7;
+ ]])],
+dnl FIXME: simplify this in 2012, when file system bugs are no longer common
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#ifdef __linux__
+/* The Linux kernel added futimens in 2.6.22, but has bugs with UTIME_OMIT
+ in several file systems as recently as 2.6.32. Always replace futimens
+ to support older kernels. */
+choke me
+#endif
+ ]])],
+ [gl_cv_func_futimens_works=yes],
+ [gl_cv_func_futimens_works="needs runtime check"])],
+ [gl_cv_func_futimens_works=no],
+ [gl_cv_func_futimens_works="guessing no"])
+ rm -f conftest.file])
+ if test "$gl_cv_func_futimens_works" != yes; then
+ REPLACE_FUTIMENS=1
+ fi
+ fi
+])
diff --git a/m4/getcwd-abort-bug.m4 b/m4/getcwd-abort-bug.m4
new file mode 100644
index 00000000..4146754c
--- /dev/null
+++ b/m4/getcwd-abort-bug.m4
@@ -0,0 +1,129 @@
+# serial 7
+# Determine whether getcwd aborts when the length of the working directory
+# 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-2012 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.
+
+# From Jim Meyering
+
+# gl_FUNC_GETCWD_ABORT_BUG([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+AC_DEFUN([gl_FUNC_GETCWD_ABORT_BUG],
+[
+ AC_CHECK_DECLS_ONCE([getcwd])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+ AC_CHECK_FUNCS([getpagesize])
+ AC_CACHE_CHECK([whether getcwd aborts when 4k < cwd_length < 16k],
+ gl_cv_func_getcwd_abort_bug,
+ [# Remove any remnants of a previous test.
+ rm -rf confdir-14B---
+ # Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir-14B---"
+ dnl Please keep this in sync with tests/test-getcwd.c.
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <direct.h>
+#endif
+#include <string.h>
+#include <sys/stat.h>
+
+]gl_PATHMAX_SNIPPET[
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir. */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* FIXME: skip the run-test altogether on systems without getpagesize. */
+#if ! HAVE_GETPAGESIZE
+# define getpagesize() 0
+#endif
+
+/* This size is chosen to be larger than PATH_MAX (4k), yet smaller than
+ the 16kB pagesize on ia64 linux. Those conditions make the code below
+ trigger a bug in glibc's getcwd implementation before 2.4.90-10. */
+#define TARGET_LEN (5 * 1024)
+
+int
+main ()
+{
+ char const *dir_name = "confdir-14B---";
+ char *cwd;
+ size_t initial_cwd_len;
+ int fail = 0;
+ size_t desired_depth;
+ size_t d;
+
+ /* The bug is triggered when PATH_MAX < getpagesize (), so skip
+ this relatively expensive and invasive test if that's not true. */
+ if (getpagesize () <= PATH_MAX)
+ return 0;
+
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ return 2;
+
+ initial_cwd_len = strlen (cwd);
+ free (cwd);
+ desired_depth = ((TARGET_LEN - 1 - initial_cwd_len)
+ / (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;
+ }
+ }
+
+ /* If libc has the bug in question, this invocation of getcwd
+ results in a failed assertion. */
+ cwd = getcwd (NULL, 0);
+ if (cwd == NULL)
+ fail = 4; /* getcwd failed: it refuses to return a string longer
+ than PATH_MAX. */
+ free (cwd);
+
+ /* Call rmdir first, in case the above chdir failed. */
+ rmdir (dir_name);
+ while (0 < d--)
+ {
+ if (chdir ("..") < 0)
+ {
+ fail = 5;
+ break;
+ }
+ rmdir (dir_name);
+ }
+
+ return fail;
+}
+ ]])],
+ [gl_cv_func_getcwd_abort_bug=no],
+ [dnl An abort will provoke an exit code of something like 134 (128 + 6).
+ dnl An exit code of 4 can also occur (in OpenBSD 4.9, NetBSD 5.1 for
+ dnl example): getcwd (NULL, 0) fails rather than returning a string
+ dnl longer than PATH_MAX. This may be POSIX compliant (in some
+ dnl interpretations of POSIX). But gnulib's getcwd module wants to
+ dnl provide a non-NULL value in this case.
+ ret=$?
+ if test $ret -ge 128 || test $ret = 4; then
+ gl_cv_func_getcwd_abort_bug=yes
+ else
+ gl_cv_func_getcwd_abort_bug=no
+ fi],
+ [gl_cv_func_getcwd_abort_bug=yes])
+ ])
+ AS_IF([test $gl_cv_func_getcwd_abort_bug = yes], [$1], [$2])
+])
diff --git a/m4/getcwd-path-max.m4 b/m4/getcwd-path-max.m4
new file mode 100644
index 00000000..68975617
--- /dev/null
+++ b/m4/getcwd-path-max.m4
@@ -0,0 +1,201 @@
+# serial 19
+# Check for several getcwd bugs with long file names.
+# If so, arrange to compile the wrapper function.
+
+# This is necessary for at least GNU libc on linux-2.4.19 and 2.4.20.
+# 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-2012 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.
+
+# From Jim Meyering
+
+AC_DEFUN([gl_FUNC_GETCWD_PATH_MAX],
+[
+ AC_CHECK_DECLS_ONCE([getcwd])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_REQUIRE([gl_PATHMAX_SNIPPET_PREREQ])
+ AC_CACHE_CHECK([whether getcwd handles long file names properly],
+ gl_cv_func_getcwd_path_max,
+ [# Arrange for deletion of the temporary directory this test creates.
+ ac_clean_files="$ac_clean_files confdir3"
+ dnl Please keep this in sync with tests/test-getcwd.c.
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+ [[
+#include <errno.h>
+#include <stdlib.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else
+# include <direct.h>
+#endif
+#include <string.h>
+#include <limits.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <fcntl.h>
+
+]gl_PATHMAX_SNIPPET[
+
+#ifndef AT_FDCWD
+# define AT_FDCWD 0
+#endif
+#ifdef ENAMETOOLONG
+# define is_ENAMETOOLONG(x) ((x) == ENAMETOOLONG)
+#else
+# define is_ENAMETOOLONG(x) 0
+#endif
+
+/* Don't get link errors because mkdir is redefined to rpl_mkdir. */
+#undef mkdir
+
+#ifndef S_IRWXU
+# define S_IRWXU 0700
+#endif
+
+/* The length of this name must be 8. */
+#define DIR_NAME "confdir3"
+#define DIR_NAME_LEN 8
+#define DIR_NAME_SIZE (DIR_NAME_LEN + 1)
+
+/* The length of "../". */
+#define DOTDOTSLASH_LEN 3
+
+/* Leftover bytes in the buffer, to work around library or OS bugs. */
+#define BUF_SLOP 20
+
+int
+main ()
+{
+#ifndef PATH_MAX
+ /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
+ at least not on a local file system. And if we were to start worrying
+ about remote file systems, we'd have to enable the wrapper function
+ all of the time, just to be safe. That's not worth the cost. */
+ exit (0);
+#elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
+ - DIR_NAME_SIZE - BUF_SLOP) \
+ <= PATH_MAX)
+ /* FIXME: Assuming there's a system for which this is true,
+ this should be done in a compile test. */
+ exit (0);
+#else
+ char buf[PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1)
+ + DIR_NAME_SIZE + BUF_SLOP];
+ char *cwd = getcwd (buf, PATH_MAX);
+ size_t initial_cwd_len;
+ size_t cwd_len;
+ int fail = 0;
+ size_t n_chdirs = 0;
+
+ if (cwd == NULL)
+ exit (10);
+
+ cwd_len = initial_cwd_len = strlen (cwd);
+
+ while (1)
+ {
+ size_t dotdot_max = PATH_MAX * (DIR_NAME_SIZE / DOTDOTSLASH_LEN);
+ char *c = NULL;
+
+ 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. */
+ if (mkdir (DIR_NAME, S_IRWXU) < 0 || chdir (DIR_NAME) < 0)
+ {
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ fail = 20;
+ break;
+ }
+
+ if (PATH_MAX <= cwd_len && cwd_len < PATH_MAX + DIR_NAME_SIZE)
+ {
+ c = getcwd (buf, PATH_MAX);
+ if (!c && errno == ENOENT)
+ {
+ fail = 11;
+ break;
+ }
+ if (c)
+ {
+ fail = 31;
+ break;
+ }
+ if (! (errno == ERANGE || is_ENAMETOOLONG (errno)))
+ {
+ fail = 21;
+ 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 = 22;
+ break;
+ }
+ if (AT_FDCWD || errno == ERANGE || errno == ENOENT)
+ {
+ fail = 12;
+ break;
+ }
+ }
+ }
+
+ if (c && strlen (c) != cwd_len)
+ {
+ fail = 23;
+ break;
+ }
+ ++n_chdirs;
+ }
+
+ /* Leaving behind such a deep directory is not polite.
+ So clean up here, right away, even though the driving
+ shell script would also clean up. */
+ {
+ size_t i;
+
+ /* Try rmdir first, in case the chdir failed. */
+ rmdir (DIR_NAME);
+ for (i = 0; i <= n_chdirs; i++)
+ {
+ if (chdir ("..") < 0)
+ break;
+ if (rmdir (DIR_NAME) != 0)
+ break;
+ }
+ }
+
+ exit (fail);
+#endif
+}
+ ]])],
+ [gl_cv_func_getcwd_path_max=yes],
+ [case $? in
+ 10|11|12) gl_cv_func_getcwd_path_max='no, but it is partly working';;
+ 31) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+ *) gl_cv_func_getcwd_path_max=no;;
+ esac],
+ [case "$host_os" in
+ aix*) gl_cv_func_getcwd_path_max='no, it has the AIX bug';;
+ *) gl_cv_func_getcwd_path_max=no;;
+ esac])
+ ])
+])
diff --git a/m4/getcwd.m4 b/m4/getcwd.m4
new file mode 100644
index 00000000..ccb1f47b
--- /dev/null
+++ b/m4/getcwd.m4
@@ -0,0 +1,156 @@
+# getcwd.m4 - check for working getcwd that is compatible with glibc
+
+# Copyright (C) 2001, 2003-2007, 2009-2012 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 11
+
+AC_DEFUN([gl_FUNC_GETCWD_NULL],
+ [
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CACHE_CHECK([whether getcwd (NULL, 0) allocates memory for result],
+ [gl_cv_func_getcwd_null],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+# if HAVE_UNISTD_H
+# include <unistd.h>
+# else /* on Windows with MSVC */
+# include <direct.h>
+# endif
+# ifndef getcwd
+ char *getcwd ();
+# endif
+]], [[
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* mingw cwd does not start with '/', but getcwd does allocate.
+ However, mingw fails to honor non-zero size. */
+#else
+ if (chdir ("/") != 0)
+ return 1;
+ else
+ {
+ char *f = getcwd (NULL, 0);
+ if (! f)
+ return 2;
+ if (f[0] != '/')
+ return 3;
+ if (f[1] != '\0')
+ return 4;
+ return 0;
+ }
+#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";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_getcwd_null="guessing no";;
+ esac
+ ]])])
+])
+
+AC_DEFUN([gl_FUNC_GETCWD_SIGNATURE],
+[
+ AC_CACHE_CHECK([for getcwd with POSIX signature],
+ [gl_cv_func_getcwd_posix_signature],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>]],
+ [[extern
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *getcwd (char *, size_t);
+ ]])
+ ],
+ [gl_cv_func_getcwd_posix_signature=yes],
+ [gl_cv_func_getcwd_posix_signature=no])
+ ])
+])
+
+dnl Guarantee that getcwd will malloc with a NULL first argument. Assumes
+dnl that either the system getcwd is robust, or that calling code is okay
+dnl with spurious failures when run from a directory with an absolute name
+dnl larger than 4k bytes.
+dnl
+dnl Assumes that getcwd exists; if you are worried about obsolete
+dnl platforms that lacked getcwd(), then you need to use the GPL module.
+AC_DEFUN([gl_FUNC_GETCWD_LGPL],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_GETCWD_NULL])
+ AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE])
+
+ case $gl_cv_func_getcwd_null,$gl_cv_func_getcwd_posix_signature in
+ *yes,yes) ;;
+ *)
+ dnl Minimal replacement lib/getcwd-lgpl.c.
+ REPLACE_GETCWD=1
+ ;;
+ esac
+])
+
+dnl Check for all known getcwd bugs; useful for a program likely to be
+dnl executed from an arbitrary location.
+AC_DEFUN([gl_FUNC_GETCWD],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_GETCWD_NULL])
+ AC_REQUIRE([gl_FUNC_GETCWD_SIGNATURE])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ gl_abort_bug=no
+ case "$host_os" in
+ mingw*)
+ gl_cv_func_getcwd_path_max=yes
+ ;;
+ *)
+ gl_FUNC_GETCWD_PATH_MAX
+ case "$gl_cv_func_getcwd_null" in
+ *yes)
+ gl_FUNC_GETCWD_ABORT_BUG([gl_abort_bug=yes])
+ ;;
+ esac
+ ;;
+ esac
+ dnl Define HAVE_MINIMALLY_WORKING_GETCWD and HAVE_PARTLY_WORKING_GETCWD
+ dnl if appropriate.
+ case "$gl_cv_func_getcwd_path_max" in
+ "no, it has the AIX bug") ;;
+ *)
+ AC_DEFINE([HAVE_MINIMALLY_WORKING_GETCWD], [1],
+ [Define to 1 if getcwd minimally works, that is, its result can be
+ trusted when it succeeds.])
+ ;;
+ esac
+ case "$gl_cv_func_getcwd_path_max" in
+ "no, but it is partly working")
+ AC_DEFINE([HAVE_PARTLY_WORKING_GETCWD], [1],
+ [Define to 1 if getcwd works, except it sometimes fails when it
+ shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT.])
+ ;;
+ esac
+
+ if { case "$gl_cv_func_getcwd_null" in *yes) false;; *) true;; esac; } \
+ || test $gl_cv_func_getcwd_posix_signature != yes \
+ || test "$gl_cv_func_getcwd_path_max" != yes \
+ || test $gl_abort_bug = yes; then
+ REPLACE_GETCWD=1
+ fi
+])
+
+# Prerequisites of lib/getcwd.c, when full replacement is in effect.
+AC_DEFUN([gl_PREREQ_GETCWD],
+[
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([gl_CHECK_TYPE_STRUCT_DIRENT_D_INO])
+ :
+])
diff --git a/m4/getdelim.m4 b/m4/getdelim.m4
new file mode 100644
index 00000000..8bd3d3f8
--- /dev/null
+++ b/m4/getdelim.m4
@@ -0,0 +1,86 @@
+# getdelim.m4 serial 9
+
+dnl Copyright (C) 2005-2007, 2009-2012 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,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_PREREQ([2.59])
+
+AC_DEFUN([gl_FUNC_GETDELIM],
+[
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+
+ dnl Persuade glibc <stdio.h> to declare getdelim().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_DECLS_ONCE([getdelim])
+
+ AC_CHECK_FUNCS_ONCE([getdelim])
+ if test $ac_cv_func_getdelim = yes; then
+ HAVE_GETDELIM=1
+ 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 2;
+ }
+ {
+ /* 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 3;
+ }
+ 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) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+#endif
+ ],
+ [gl_cv_func_working_getdelim=yes],
+ [gl_cv_func_working_getdelim=no])]
+ )])
+ if test $gl_cv_func_working_getdelim = no; then
+ REPLACE_GETDELIM=1
+ fi
+ else
+ HAVE_GETDELIM=0
+ fi
+
+ if test $ac_cv_have_decl_getdelim = no; then
+ HAVE_DECL_GETDELIM=0
+ fi
+])
+
+# Prerequisites of lib/getdelim.c.
+AC_DEFUN([gl_PREREQ_GETDELIM],
+[
+ AC_CHECK_FUNCS([flockfile funlockfile])
+ AC_CHECK_DECLS([getc_unlocked])
+])
diff --git a/m4/getdtablesize.m4 b/m4/getdtablesize.m4
new file mode 100644
index 00000000..81488ba5
--- /dev/null
+++ b/m4/getdtablesize.m4
@@ -0,0 +1,19 @@
+# getdtablesize.m4 serial 3
+dnl Copyright (C) 2008-2012 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
+ fi
+])
+
+# Prerequisites of lib/getdtablesize.c.
+AC_DEFUN([gl_PREREQ_GETDTABLESIZE], [
+ AC_REQUIRE([AC_C_INLINE])
+])
diff --git a/m4/getline.m4 b/m4/getline.m4
new file mode 100644
index 00000000..01f38cfb
--- /dev/null
+++ b/m4/getline.m4
@@ -0,0 +1,94 @@
+# getline.m4 serial 25
+
+dnl Copyright (C) 1998-2003, 2005-2007, 2009-2012 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,
+dnl with or without modifications, as long as this notice is preserved.
+
+AC_PREREQ([2.59])
+
+dnl See if there's a working, system-supplied version of the getline function.
+dnl We can't just do AC_REPLACE_FUNCS([getline]) because some systems
+dnl have a function by that name in -linet that doesn't have anything
+dnl to do with the function we need.
+AC_DEFUN([gl_FUNC_GETLINE],
+[
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+
+ dnl Persuade glibc <stdio.h> to declare getline().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_DECLS_ONCE([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])
+ if test $gl_getline_needs_run_time_check = yes; then
+ AC_CACHE_CHECK([for working getline function], [am_cv_func_working_getline],
+ [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 = getline (&line, &siz, in);
+ if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
+ return 2;
+ }
+ {
+ /* 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 3;
+ }
+ 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.
+ , 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) && !defined __UCLIBC__
+ Lucky GNU user
+ #endif
+#endif
+ ],
+ [am_cv_func_working_getline=yes],
+ [am_cv_func_working_getline=no])]
+ )])
+ fi
+
+ if test $ac_cv_have_decl_getline = no; then
+ HAVE_DECL_GETLINE=0
+ 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
+ fi
+])
+
+# Prerequisites of lib/getline.c.
+AC_DEFUN([gl_PREREQ_GETLINE],
+[
+ :
+])
diff --git a/m4/getopt.m4 b/m4/getopt.m4
new file mode 100644
index 00000000..2aea8959
--- /dev/null
+++ b/m4/getopt.m4
@@ -0,0 +1,341 @@
+# getopt.m4 serial 39
+dnl Copyright (C) 2002-2006, 2008-2012 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.
+
+# 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])
+ dnl Other modules can request the gnulib implementation of the getopt
+ dnl functions unconditionally, by defining gl_REPLACE_GETOPT_ALWAYS.
+ dnl argp.m4 does this.
+ m4_ifdef([gl_REPLACE_GETOPT_ALWAYS], [
+ gl_GETOPT_IFELSE([], [])
+ REPLACE_GETOPT=1
+ ], [
+ REPLACE_GETOPT=0
+ gl_GETOPT_IFELSE([
+ REPLACE_GETOPT=1
+ ],
+ [])
+ ])
+ if test $REPLACE_GETOPT = 1; then
+ dnl Arrange for getopt.h to be created.
+ gl_GETOPT_SUBSTITUTE_HEADER
+ fi
+])
+
+# 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])
+])
+
+# emacs' configure.in uses this.
+AC_DEFUN([gl_GETOPT_IFELSE],
+[
+ 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],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([AC_PROG_AWK]) dnl for awk that supports ENVIRON
+
+ dnl Persuade Solaris <unistd.h> to declare optarg, optind, opterr, optopt.
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ gl_CHECK_NEXT_HEADERS([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
+
+ 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.
+ dnl POSIX 2008 does not specify leading '+' behavior, but see
+ dnl http://austingroupbugs.net/view.php?id=191 for a recommendation on
+ dnl the next version of POSIX. For now, we only guarantee leading '+'
+ dnl behavior with getopt-gnu.
+ if test -z "$gl_replace_getopt"; then
+ AC_CACHE_CHECK([whether getopt is POSIX compatible],
+ [gl_cv_func_getopt_posix],
+ [
+ dnl BSD getopt_long uses an incompatible method to reset option
+ dnl processing. Existence of the optreset variable, in and of
+ dnl itself, is not a reason to replace getopt, but knowledge
+ dnl of the variable is needed to determine how to reset and
+ dnl whether a reset reparses the environment. Solaris
+ dnl supports neither optreset nor optind=0, but keeps no state
+ dnl that needs a reset beyond setting optind=1; detect Solaris
+ dnl by getopt_clip.
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>]],
+ [[int *p = &optreset; return optreset;]])],
+ [gl_optind_min=1],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <getopt.h>]],
+ [[return !getopt_clip;]])],
+ [gl_optind_min=1],
+ [gl_optind_min=0])])
+
+ dnl This test fails on mingw and succeeds on many other platforms.
+ gl_save_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS -DOPTIND_MIN=$gl_optind_min"
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+int
+main ()
+{
+ {
+ static char program[] = "program";
+ static char a[] = "-a";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, a, foo, bar, NULL };
+ int c;
+
+ optind = OPTIND_MIN;
+ opterr = 0;
+
+ c = getopt (4, argv, "ab");
+ if (!(c == 'a'))
+ return 1;
+ c = getopt (4, argv, "ab");
+ if (!(c == -1))
+ return 2;
+ if (!(optind == 2))
+ return 3;
+ }
+ /* Some internal state exists at this point. */
+ {
+ static char program[] = "program";
+ static char donald[] = "donald";
+ static char p[] = "-p";
+ static char billy[] = "billy";
+ static char duck[] = "duck";
+ static char a[] = "-a";
+ static char bar[] = "bar";
+ char *argv[] = { program, donald, p, billy, duck, a, bar, NULL };
+ int c;
+
+ optind = OPTIND_MIN;
+ opterr = 0;
+
+ c = getopt (7, 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;
+ }
+ /* Detect MacOS 10.5, AIX 7.1 bug. */
+ {
+ static char program[] = "program";
+ static char ab[] = "-ab";
+ char *argv[3] = { program, ab, NULL };
+ optind = OPTIND_MIN;
+ opterr = 0;
+ if (getopt (2, argv, "ab:") != 'a')
+ return 13;
+ if (getopt (2, argv, "ab:") != '?')
+ return 14;
+ if (optopt != 'b')
+ return 15;
+ if (optind != 2)
+ return 16;
+ }
+
+ 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";;
+ darwin* | aix*) gl_cv_func_getopt_posix="guessing no";;
+ *) gl_cv_func_getopt_posix="guessing yes";;
+ esac
+ ])
+ CPPFLAGS=$gl_save_CPPFLAGS
+ ])
+ 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
+ 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.
+ # Bash ties 'set -o posix' to a non-exported POSIXLY_CORRECT;
+ # so take care to revert to the correct (non-)export state.
+dnl GNU Coding Standards currently allow awk but not env; besides, env
+dnl is ambiguous with environment values that contain newlines.
+ gl_awk_probe='BEGIN { if ("POSIXLY_CORRECT" in ENVIRON) print "x" }'
+ case ${POSIXLY_CORRECT+x}`$AWK "$gl_awk_probe" </dev/null` in
+ xx) gl_had_POSIXLY_CORRECT=exported ;;
+ x) gl_had_POSIXLY_CORRECT=yes ;;
+ *) gl_had_POSIXLY_CORRECT= ;;
+ esac
+ POSIXLY_CORRECT=1
+ export POSIXLY_CORRECT
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[#include <getopt.h>
+ #include <stddef.h>
+ #include <string.h>
+ ]GL_NOCRASH[
+ ]], [[
+ int result = 0;
+
+ nocrash_init();
+
+ /* 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. */
+ {
+ static char conftest[] = "conftest";
+ static char plus[] = "-+";
+ char *argv[3] = { conftest, plus, NULL };
+ opterr = 0;
+ if (getopt (2, argv, "+a") != '?')
+ result |= 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. */
+ {
+ static char program[] = "program";
+ static char p[] = "-p";
+ static char foo[] = "foo";
+ static char bar[] = "bar";
+ char *argv[] = { program, p, foo, bar, NULL };
+
+ optind = 1;
+ if (getopt (4, argv, "p::") != 'p')
+ result |= 2;
+ else if (optarg != NULL)
+ result |= 4;
+ else if (getopt (4, argv, "p::") != -1)
+ result |= 6;
+ else if (optind != 2)
+ result |= 8;
+ }
+ /* This code succeeds on glibc 2.8 and fails on Cygwin 1.7.0. */
+ {
+ static char program[] = "program";
+ static char foo[] = "foo";
+ static char p[] = "-p";
+ char *argv[] = { program, foo, p, NULL };
+ optind = 0;
+ if (getopt (3, argv, "-p") != 1)
+ result |= 16;
+ else if (getopt (3, argv, "-p") != 'p')
+ result |= 32;
+ }
+ /* This code fails on glibc 2.11. */
+ {
+ static char program[] = "program";
+ static char b[] = "-b";
+ static char a[] = "-a";
+ char *argv[] = { program, b, a, NULL };
+ optind = opterr = 0;
+ if (getopt (3, argv, "+:a:b") != 'b')
+ result |= 64;
+ else if (getopt (3, argv, "+:a:b") != ':')
+ result |= 64;
+ }
+ /* This code dumps core on glibc 2.14. */
+ {
+ static char program[] = "program";
+ static char w[] = "-W";
+ static char dummy[] = "dummy";
+ char *argv[] = { program, w, dummy, NULL };
+ optind = opterr = 1;
+ if (getopt (3, argv, "W;") != 'W')
+ result |= 128;
+ }
+ return result;
+ ]])],
+ [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
+ ])
+ case $gl_had_POSIXLY_CORRECT in
+ exported) ;;
+ yes) AS_UNSET([POSIXLY_CORRECT]); POSIXLY_CORRECT=1 ;;
+ *) AS_UNSET([POSIXLY_CORRECT]) ;;
+ esac
+ ])
+ if test "$gl_cv_func_getopt_gnu" = "no"; then
+ gl_replace_getopt=yes
+ fi
+ fi
+])
+
+# emacs' configure.in uses this.
+AC_DEFUN([gl_GETOPT_SUBSTITUTE_HEADER],
+[
+ 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])
+])
+
+# 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
new file mode 100644
index 00000000..156133ae
--- /dev/null
+++ b/m4/getpagesize.m4
@@ -0,0 +1,32 @@
+# getpagesize.m4 serial 9
+dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2012 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_GETPAGESIZE],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CHECK_FUNCS([getpagesize])
+ if test $ac_cv_func_getpagesize = no; then
+ HAVE_GETPAGESIZE=0
+ AC_CHECK_HEADERS([OS.h])
+ if test $ac_cv_header_OS_h = yes; then
+ HAVE_OS_H=1
+ fi
+ AC_CHECK_HEADERS([sys/param.h])
+ if test $ac_cv_header_sys_param_h = yes; then
+ HAVE_SYS_PARAM_H=1
+ fi
+ fi
+ case "$host_os" in
+ mingw*)
+ REPLACE_GETPAGESIZE=1
+ ;;
+ esac
+ dnl Also check whether it's declared.
+ dnl mingw has getpagesize() in libgcc.a but doesn't declare it.
+ AC_CHECK_DECL([getpagesize], , [HAVE_DECL_GETPAGESIZE=0])
+])
diff --git a/m4/gettext.m4 b/m4/gettext.m4
new file mode 100644
index 00000000..8a6c575e
--- /dev/null
+++ b/m4/gettext.m4
@@ -0,0 +1,402 @@
+# gettext.m4 serial 64 (gettext-0.18.2)
+dnl Copyright (C) 1995-2012 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
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010.
+
+dnl Macro to add for using GNU gettext.
+
+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
+dnl default (if it is not specified or empty) is 'no-libtool'.
+dnl INTLSYMBOL should be 'external' for packages with no intl directory,
+dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+dnl If INTLSYMBOL is 'use-libtool', then a libtool library
+dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl depending on --{enable,disable}-{shared,static} and on the presence of
+dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
+dnl $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl implementations (in libc or libintl) without the ngettext() function
+dnl will be ignored. If NEEDSYMBOL is specified and is
+dnl 'need-formatstring-macros', then GNU gettext implementations that don't
+dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+dnl INTLDIR is used to find the intl libraries. If empty,
+dnl the value '$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl and used.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl Catalog format: none
+dnl Catalog extension: none
+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_GNU_GETTEXT],
+[
+ dnl Argument checking.
+ ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+ [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])])
+ ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old],
+ [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])])
+ ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+ [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+ define([gt_included_intl],
+ ifelse([$1], [external],
+ ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]),
+ [yes]))
+ define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
+ gt_NEEDS_INIT
+ AM_GNU_GETTEXT_NEED([$2])
+
+ AC_REQUIRE([AM_PO_SUBDIRS])dnl
+ ifelse(gt_included_intl, yes, [
+ AC_REQUIRE([AM_INTL_SUBDIR])dnl
+ ])
+
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ dnl Ideally we would do this search only after the
+ dnl if test "$USE_NLS" = "yes"; then
+ dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+ dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+ dnl the configure script would need to contain the same shell code
+ dnl again, outside any 'if'. There are two solutions:
+ dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+ dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+ dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+ dnl documented, we avoid it.
+ ifelse(gt_included_intl, yes, , [
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+ ])
+
+ dnl Sometimes, on MacOS X, libintl requires linking with CoreFoundation.
+ gt_INTL_MACOSX
+
+ dnl Set USE_NLS.
+ AC_REQUIRE([AM_NLS])
+
+ ifelse(gt_included_intl, yes, [
+ BUILD_INCLUDED_LIBINTL=no
+ USE_INCLUDED_LIBINTL=no
+ ])
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ dnl Add a version number to the cache macros.
+ case " $gt_needs " in
+ *" need-formatstring-macros "*) gt_api_version=3 ;;
+ *" need-ngettext "*) gt_api_version=2 ;;
+ *) gt_api_version=1 ;;
+ esac
+ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
+ dnl If we use NLS figure out what method
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+ ifelse(gt_included_intl, yes, [
+ AC_MSG_CHECKING([whether included gettext is requested])
+ AC_ARG_WITH([included-gettext],
+ [ --with-included-gettext use the GNU gettext library included here],
+ nls_cv_force_use_gnu_gettext=$withval,
+ nls_cv_force_use_gnu_gettext=no)
+ AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext])
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ ])
+ dnl User does not insist on using GNU NLS library. Figure out what
+ dnl to use. If GNU gettext is available we use this. Else we have
+ dnl to fall back to GNU NLS library.
+
+ if test $gt_api_version -ge 3; then
+ gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+'
+ else
+ gt_revision_test_code=
+ fi
+ if test $gt_api_version -ge 2; then
+ gt_expression_test_code=' + * ngettext ("", "", 0)'
+ else
+ gt_expression_test_code=
+ fi
+
+ AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+ ]],
+ [[
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+ ]])],
+ [eval "$gt_func_gnugettext_libc=yes"],
+ [eval "$gt_func_gnugettext_libc=no"])])
+
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ ifelse(gt_included_intl, yes, , [
+ AM_ICONV_LINK
+ ])
+ dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+ dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+ dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+ dnl even if libiconv doesn't exist.
+ AC_LIB_LINKFLAGS_BODY([intl])
+ AC_CACHE_CHECK([for GNU gettext in libintl],
+ [$gt_func_gnugettext_libintl],
+ [gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ dnl Now see whether libintl exists and does not depend on libiconv.
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+ ]],
+ [[
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+ ]])],
+ [eval "$gt_func_gnugettext_libintl=yes"],
+ [eval "$gt_func_gnugettext_libintl=no"])
+ dnl Now see whether libintl exists and depends on libiconv.
+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+ ]],
+ [[
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+ ]])],
+ [LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ eval "$gt_func_gnugettext_libintl=yes"
+ ])
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"])
+ fi
+
+ dnl If an already present or preinstalled GNU gettext() is found,
+ dnl use it. But if this macro is used in GNU gettext, and GNU
+ dnl gettext is already preinstalled in libintl, we update this
+ dnl libintl. (Cf. the install rule in intl/Makefile.in.)
+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ dnl Reset the values set by searching for libintl.
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+ dnl GNU gettext is not found in the C library.
+ dnl Fall back on included GNU gettext library.
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions used to generate GNU NLS library.
+ BUILD_INCLUDED_LIBINTL=yes
+ USE_INCLUDED_LIBINTL=yes
+ LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
+ LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+ fi
+
+ CATOBJEXT=
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions to use GNU gettext tools.
+ CATOBJEXT=.gmo
+ fi
+ ])
+
+ if test -n "$INTL_MACOSX_LIBS"; then
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Some extra flags are needed during linking.
+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+ fi
+ fi
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ AC_DEFINE([ENABLE_NLS], [1],
+ [Define to 1 if translation of program messages to the user's native language
+ is requested.])
+ else
+ USE_NLS=no
+ fi
+ fi
+
+ AC_MSG_CHECKING([whether to use NLS])
+ AC_MSG_RESULT([$USE_NLS])
+ if test "$USE_NLS" = "yes"; then
+ AC_MSG_CHECKING([where the gettext function comes from])
+ 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"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ AC_MSG_RESULT([$gt_source])
+ 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
+ AC_MSG_CHECKING([how to link with libintl])
+ AC_MSG_RESULT([$LIBINTL])
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+ fi
+
+ dnl For backward compatibility. Some packages may be using this.
+ AC_DEFINE([HAVE_GETTEXT], [1],
+ [Define if the GNU gettext() function is already present or preinstalled.])
+ AC_DEFINE([HAVE_DCGETTEXT], [1],
+ [Define if the GNU dcgettext() function is already present or preinstalled.])
+ fi
+
+ dnl We need to process the po/ directory.
+ POSUB=po
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+ dnl to 'yes' because some of the testsuite requires it.
+ if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
+ BUILD_INCLUDED_LIBINTL=yes
+ fi
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST([BUILD_INCLUDED_LIBINTL])
+ AC_SUBST([USE_INCLUDED_LIBINTL])
+ AC_SUBST([CATOBJEXT])
+
+ dnl For backward compatibility. Some configure.ins may be using this.
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ DATADIRNAME=share
+ AC_SUBST([DATADIRNAME])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INSTOBJEXT=.mo
+ AC_SUBST([INSTOBJEXT])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ GENCAT=gencat
+ AC_SUBST([GENCAT])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INTLOBJS=
+ if test "$USE_INCLUDED_LIBINTL" = yes; then
+ INTLOBJS="\$(GETTOBJS)"
+ fi
+ AC_SUBST([INTLOBJS])
+
+ dnl Enable libtool support if the surrounding package wishes it.
+ INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+ AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX])
+ ])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INTLLIBS="$LIBINTL"
+ AC_SUBST([INTLLIBS])
+
+ dnl Make all documented variables known to autoconf.
+ AC_SUBST([LIBINTL])
+ AC_SUBST([LTLIBINTL])
+ AC_SUBST([POSUB])
+])
+
+
+dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized.
+m4_define([gt_NEEDS_INIT],
+[
+ m4_divert_text([DEFAULTS], [gt_needs=])
+ m4_define([gt_NEEDS_INIT], [])
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL])
+AC_DEFUN([AM_GNU_GETTEXT_NEED],
+[
+ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"])
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
+ AC_DEFUN([gl_LOCK_EARLY], [])
diff --git a/m4/gettime.m4 b/m4/gettime.m4
new file mode 100644
index 00000000..7d03d125
--- /dev/null
+++ b/m4/gettime.m4
@@ -0,0 +1,13 @@
+# gettime.m4 serial 8
+dnl Copyright (C) 2002, 2004-2006, 2009-2012 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_GETTIME],
+[
+ dnl Prerequisites of lib/gettime.c.
+ AC_REQUIRE([gl_CLOCK_TIME])
+ AC_REQUIRE([gl_TIMESPEC])
+ AC_CHECK_FUNCS_ONCE([gettimeofday nanotime])
+])
diff --git a/m4/gettimeofday.m4 b/m4/gettimeofday.m4
new file mode 100644
index 00000000..2385e395
--- /dev/null
+++ b/m4/gettimeofday.m4
@@ -0,0 +1,125 @@
+# serial 17
+
+# Copyright (C) 2001-2003, 2005, 2007, 2009-2012 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 From Jim Meyering.
+
+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])
+
+ gl_gettimeofday_timezone=void
+ if test $ac_cv_func_gettimeofday != yes; then
+ HAVE_GETTIMEOFDAY=0
+ 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
+ fi
+ m4_ifdef([gl_FUNC_TZSET_CLOBBER], [
+ gl_FUNC_TZSET_CLOBBER
+ if test $gl_cv_func_tzset_clobber = yes; then
+ REPLACE_GETTIMEOFDAY=1
+ gl_GETTIMEOFDAY_REPLACE_LOCALTIME
+ AC_DEFINE([tzset], [rpl_tzset],
+ [Define to rpl_tzset if the wrapper function should be used.])
+ AC_DEFINE([TZSET_CLOBBERS_LOCALTIME], [1],
+ [Define if tzset clobbers localtime's static buffer.])
+ 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.])
+])
+
+
+dnl See if gettimeofday clobbers the static buffer that localtime uses
+dnl for its return value. The gettimeofday function from Mac OS X 10.0.4
+dnl (i.e., Darwin 1.3.7) has this problem.
+dnl
+dnl If it does, then arrange to use gettimeofday and localtime only via
+dnl the wrapper functions that work around the problem.
+
+AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER],
+[
+ AC_REQUIRE([gl_HEADER_SYS_TIME_H])
+
+ AC_CACHE_CHECK([whether gettimeofday clobbers localtime buffer],
+ [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;
+ ]])],
+ [gl_cv_func_gettimeofday_clobber=no],
+ [gl_cv_func_gettimeofday_clobber=yes],
+ dnl When crosscompiling, assume it is broken.
+ [gl_cv_func_gettimeofday_clobber=yes])])
+
+ if test $gl_cv_func_gettimeofday_clobber = yes; then
+ REPLACE_GETTIMEOFDAY=1
+ gl_GETTIMEOFDAY_REPLACE_LOCALTIME
+ AC_DEFINE([GETTIMEOFDAY_CLOBBERS_LOCALTIME], [1],
+ [Define if gettimeofday clobbers the localtime buffer.])
+ fi
+])
+
+AC_DEFUN([gl_GETTIMEOFDAY_REPLACE_LOCALTIME], [
+ AC_DEFINE([gmtime], [rpl_gmtime],
+ [Define to rpl_gmtime if the replacement function should be used.])
+ AC_DEFINE([localtime], [rpl_localtime],
+ [Define to rpl_localtime if the replacement function should be used.])
+])
+
+# Prerequisites of lib/gettimeofday.c.
+AC_DEFUN([gl_PREREQ_GETTIMEOFDAY], [
+ AC_CHECK_HEADERS([sys/timeb.h])
+ AC_CHECK_FUNCS([_ftime])
+])
diff --git a/m4/glibc21.m4 b/m4/glibc21.m4
new file mode 100644
index 00000000..c938fb1a
--- /dev/null
+++ b/m4/glibc21.m4
@@ -0,0 +1,34 @@
+# glibc21.m4 serial 5
+dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2012 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.
+
+# Test for the GNU C Library, version 2.1 or newer, or uClibc.
+# From Bruno Haible.
+
+AC_DEFUN([gl_GLIBC21],
+ [
+ AC_CACHE_CHECK([whether we are using the GNU C Library >= 2.1 or uClibc],
+ [ac_cv_gnu_library_2_1],
+ [AC_EGREP_CPP([Lucky],
+ [
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+ Lucky GNU user
+ #endif
+#endif
+#ifdef __UCLIBC__
+ Lucky user
+#endif
+ ],
+ [ac_cv_gnu_library_2_1=yes],
+ [ac_cv_gnu_library_2_1=no])
+ ]
+ )
+ AC_SUBST([GLIBC21])
+ GLIBC21="$ac_cv_gnu_library_2_1"
+ ]
+)
diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4
new file mode 100644
index 00000000..261f421b
--- /dev/null
+++ b/m4/gnulib-cache.m4
@@ -0,0 +1,115 @@
+# -*- buffer-read-only: t -*- vi: set ro:
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+#
+# 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
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file 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 file. If not, see <http://www.gnu.org/licenses/>.
+#
+# 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.
+#
+# This file represents the specification of how gnulib-tool is used.
+# It acts as a cache: It is written and read by gnulib-tool.
+# In projects that use version control, this file is meant to be put under
+# version control, like the configure.ac and various Makefile.am files.
+
+
+# Specification in the form of a command-line invocation:
+# 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-conditional-dependencies --no-libtool --macro-prefix=gl alloca argmatch argp argp-version-etc backupfile closeout configmake dirname error exclude exitfail fdopendir fdutimensat fileblocks fnmatch-gnu fseeko full-write futimens getline getopt-gnu getpagesize gettext gettime gitlog-to-changelog hash human inttostr inttypes lchown linkat localcharset mkdtemp mkfifoat modechange obstack openat parse-datetime priv-set progname quote quotearg readlinkat renameat rpmatch safe-read savedir setenv snprintf stat-time stdbool stdint stpcpy strdup-posix strerror strtol strtoul symlinkat timespec unlinkdir unlocked-io utimensat version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax xvasprintf
+
+# Specification in the form of a few gnulib-tool.m4 macro invocations:
+gl_LOCAL_DIR([gl])
+gl_MODULES([
+ alloca
+ argmatch
+ argp
+ argp-version-etc
+ backupfile
+ closeout
+ configmake
+ dirname
+ error
+ exclude
+ exitfail
+ fdopendir
+ fdutimensat
+ fileblocks
+ fnmatch-gnu
+ fseeko
+ full-write
+ futimens
+ getline
+ getopt-gnu
+ getpagesize
+ gettext
+ gettime
+ gitlog-to-changelog
+ hash
+ human
+ inttostr
+ inttypes
+ lchown
+ linkat
+ localcharset
+ mkdtemp
+ mkfifoat
+ modechange
+ obstack
+ openat
+ parse-datetime
+ priv-set
+ progname
+ quote
+ quotearg
+ readlinkat
+ renameat
+ rpmatch
+ safe-read
+ savedir
+ setenv
+ snprintf
+ stat-time
+ stdbool
+ stdint
+ stpcpy
+ strdup-posix
+ strerror
+ strtol
+ strtoul
+ symlinkat
+ timespec
+ unlinkdir
+ unlocked-io
+ utimensat
+ version-etc-fsf
+ xalloc
+ xalloc-die
+ xgetcwd
+ xstrtoumax
+ xvasprintf
+])
+gl_AVOID([ lock])
+gl_SOURCE_BASE([gnu])
+gl_M4_BASE([m4])
+gl_PO_BASE([])
+gl_DOC_BASE([doc])
+gl_TESTS_BASE([tests])
+gl_LIB([libgnu])
+gl_MAKEFILE_NAME([])
+gl_MACRO_PREFIX([gl])
+gl_PO_DOMAIN([])
+gl_WITNESS_C_DOMAIN([])
diff --git a/m4/gnulib-common.m4 b/m4/gnulib-common.m4
new file mode 100644
index 00000000..ae4d2548
--- /dev/null
+++ b/m4/gnulib-common.m4
@@ -0,0 +1,372 @@
+# gnulib-common.m4 serial 32
+dnl Copyright (C) 2007-2012 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_COMMON
+# is expanded unconditionally through gnulib-tool magic.
+AC_DEFUN([gl_COMMON], [
+ dnl Use AC_REQUIRE here, so that the code is expanded once only.
+ AC_REQUIRE([gl_00GNULIB])
+ AC_REQUIRE([gl_COMMON_BODY])
+])
+AC_DEFUN([gl_COMMON_BODY], [
+ AH_VERBATIM([_Noreturn],
+[/* The _Noreturn keyword of C11. */
+#ifndef _Noreturn
+# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \
+ || 0x5110 <= __SUNPRO_C)
+# define _Noreturn __attribute__ ((__noreturn__))
+# elif defined _MSC_VER && 1200 <= _MSC_VER
+# define _Noreturn __declspec (noreturn)
+# else
+# define _Noreturn
+# endif
+#endif
+])
+ AH_VERBATIM([isoc99_inline],
+[/* Work around a bug in Apple GCC 4.0.1 build 5465: In C99 mode, it supports
+ the ISO C 99 semantics of 'extern inline' (unlike the GNU C semantics of
+ earlier versions), but does not display it by setting __GNUC_STDC_INLINE__.
+ __APPLE__ && __MACH__ test for MacOS X.
+ __APPLE_CC__ tests for the Apple compiler and its version.
+ __STDC_VERSION__ tests for the C99 mode. */
+#if defined __APPLE__ && defined __MACH__ && __APPLE_CC__ >= 5465 && !defined __cplusplus && __STDC_VERSION__ >= 199901L && !defined __GNUC_STDC_INLINE__
+# define __GNUC_STDC_INLINE__ 1
+#endif])
+ AH_VERBATIM([unused_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 _GL_UNUSED __attribute__ ((__unused__))
+#else
+# 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
+
+/* The __pure__ attribute was added in gcc 2.96. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
+# define _GL_ATTRIBUTE_PURE __attribute__ ((__pure__))
+#else
+# define _GL_ATTRIBUTE_PURE /* empty */
+#endif
+
+/* The __const__ attribute was added in gcc 2.95. */
+#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 95)
+# define _GL_ATTRIBUTE_CONST __attribute__ ((__const__))
+#else
+# define _GL_ATTRIBUTE_CONST /* empty */
+#endif
+])
+ dnl Preparation for running test programs:
+ dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not
+ dnl to /dev/tty, so they can be redirected to log files. Such diagnostics
+ dnl arise e.g., in the macros gl_PRINTF_DIRECTIVE_N, gl_SNPRINTF_DIRECTIVE_N.
+ LIBC_FATAL_STDERR_=1
+ export LIBC_FATAL_STDERR_
+])
+
+# gl_MODULE_INDICATOR_CONDITION
+# expands to a C preprocessor expression that evaluates to 1 or 0, depending
+# whether a gnulib module that has been requested shall be considered present
+# or not.
+m4_define([gl_MODULE_INDICATOR_CONDITION], [1])
+
+# gl_MODULE_INDICATOR_SET_VARIABLE([modulename])
+# sets the shell variable that indicates the presence of the given module to
+# a C preprocessor expression that will evaluate to 1.
+AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE],
+[
+ gl_MODULE_INDICATOR_SET_VARIABLE_AUX(
+ [GNULIB_[]m4_translit([[$1]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])],
+ [gl_MODULE_INDICATOR_CONDITION])
+])
+
+# gl_MODULE_INDICATOR_SET_VARIABLE_AUX([variable])
+# modifies the shell variable to include the gl_MODULE_INDICATOR_CONDITION.
+# The shell variable's value is a C preprocessor expression that evaluates
+# to 0 or 1.
+AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX],
+[
+ m4_if(m4_defn([gl_MODULE_INDICATOR_CONDITION]), [1],
+ [
+ dnl Simplify the expression VALUE || 1 to 1.
+ $1=1
+ ],
+ [gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([$1],
+ [gl_MODULE_INDICATOR_CONDITION])])
+])
+
+# gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR([variable], [condition])
+# modifies the shell variable to include the given condition. The shell
+# variable's value is a C preprocessor expression that evaluates to 0 or 1.
+AC_DEFUN([gl_MODULE_INDICATOR_SET_VARIABLE_AUX_OR],
+[
+ dnl Simplify the expression 1 || CONDITION to 1.
+ if test "$[]$1" != 1; then
+ dnl Simplify the expression 0 || CONDITION to CONDITION.
+ if test "$[]$1" = 0; then
+ $1=$2
+ else
+ $1="($[]$1 || $2)"
+ fi
+ fi
+])
+
+# gl_MODULE_INDICATOR([modulename])
+# defines a C macro indicating the presence of the given module
+# in a location where it can be used.
+# | Value | Value |
+# | in lib/ | in tests/ |
+# --------------------------------------------+---------+-----------+
+# Module present among main modules: | 1 | 1 |
+# --------------------------------------------+---------+-----------+
+# Module present among tests-related modules: | 0 | 1 |
+# --------------------------------------------+---------+-----------+
+# Module not present at all: | 0 | 0 |
+# --------------------------------------------+---------+-----------+
+AC_DEFUN([gl_MODULE_INDICATOR],
+[
+ AC_DEFINE_UNQUOTED([GNULIB_]m4_translit([[$1]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]),
+ [gl_MODULE_INDICATOR_CONDITION],
+ [Define to a C preprocessor expression that evaluates to 1 or 0,
+ depending whether the gnulib module $1 shall be considered present.])
+])
+
+# gl_MODULE_INDICATOR_FOR_TESTS([modulename])
+# defines a C macro indicating the presence of the given module
+# in lib or tests. This is useful to determine whether the module
+# should be tested.
+# | Value | Value |
+# | in lib/ | in tests/ |
+# --------------------------------------------+---------+-----------+
+# Module present among main modules: | 1 | 1 |
+# --------------------------------------------+---------+-----------+
+# Module present among tests-related modules: | 1 | 1 |
+# --------------------------------------------+---------+-----------+
+# Module not present at all: | 0 | 0 |
+# --------------------------------------------+---------+-----------+
+AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS],
+[
+ AC_DEFINE([GNULIB_TEST_]m4_translit([[$1]],
+ [abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___]), [1],
+ [Define to 1 when the gnulib module $1 should be tested.])
+])
+
+# gl_ASSERT_NO_GNULIB_POSIXCHECK
+# asserts that there will never be a need to #define GNULIB_POSIXCHECK.
+# and thereby enables an optimization of configure and config.h.
+# Used by Emacs.
+AC_DEFUN([gl_ASSERT_NO_GNULIB_POSIXCHECK],
+[
+ dnl Override gl_WARN_ON_USE_PREPARE.
+ dnl But hide this definition from 'aclocal'.
+ AC_DEFUN([gl_W][ARN_ON_USE_PREPARE], [])
+])
+
+# gl_ASSERT_NO_GNULIB_TESTS
+# asserts that there will be no gnulib tests in the scope of the configure.ac
+# and thereby enables an optimization of config.h.
+# Used by Emacs.
+AC_DEFUN([gl_ASSERT_NO_GNULIB_TESTS],
+[
+ dnl Override gl_MODULE_INDICATOR_FOR_TESTS.
+ AC_DEFUN([gl_MODULE_INDICATOR_FOR_TESTS], [])
+])
+
+# Test whether <features.h> exists.
+# Set HAVE_FEATURES_H.
+AC_DEFUN([gl_FEATURES_H],
+[
+ AC_CHECK_HEADERS_ONCE([features.h])
+ if test $ac_cv_header_features_h = yes; then
+ HAVE_FEATURES_H=1
+ else
+ HAVE_FEATURES_H=0
+ fi
+ AC_SUBST([HAVE_FEATURES_H])
+])
+
+# m4_foreach_w
+# is a backport of autoconf-2.59c's m4_foreach_w.
+# Remove this macro when we can assume autoconf >= 2.60.
+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])])])
+
+# gl_PROG_CC_C99
+# Modifies the value of the shell variable CC in an attempt to make $CC
+# understand ISO C99 source code.
+# This is like AC_PROG_CC_C99, except that
+# - AC_PROG_CC_C99 did not exist in Autoconf versions < 2.60,
+# - AC_PROG_CC_C99 does not mix well with AC_PROG_CC_STDC
+# <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00367.html>,
+# but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99
+# <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00441.html>.
+# Remaining problems:
+# - When AC_PROG_CC_STDC is invoked twice, it adds the C99 enabling options
+# to CC twice
+# <http://lists.gnu.org/archive/html/bug-gnulib/2011-09/msg00431.html>.
+# - AC_PROG_CC_STDC is likely to change now that C11 is an ISO standard.
+AC_DEFUN([gl_PROG_CC_C99],
+[
+ dnl Change that version number to the minimum Autoconf version that supports
+ dnl mixing AC_PROG_CC_C99 calls with AC_PROG_CC_STDC calls.
+ m4_version_prereq([9.0],
+ [AC_REQUIRE([AC_PROG_CC_C99])],
+ [AC_REQUIRE([AC_PROG_CC_STDC])])
+])
+
+# gl_PROG_AR_RANLIB
+# Determines the values for AR, ARFLAGS, RANLIB that fit with the compiler.
+# The user can set the variables AR, ARFLAGS, RANLIB if he wants to override
+# the values.
+AC_DEFUN([gl_PROG_AR_RANLIB],
+[
+ dnl Minix 3 comes with two toolchains: The Amsterdam Compiler Kit compiler
+ dnl as "cc", and GCC as "gcc". They have different object file formats and
+ dnl library formats. In particular, the GNU binutils programs ar, ranlib
+ dnl produce libraries that work only with gcc, not with cc.
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CACHE_CHECK([for Minix Amsterdam compiler], [gl_cv_c_amsterdam_compiler],
+ [
+ AC_EGREP_CPP([Amsterdam],
+ [
+#ifdef __ACK__
+Amsterdam
+#endif
+ ],
+ [gl_cv_c_amsterdam_compiler=yes],
+ [gl_cv_c_amsterdam_compiler=no])
+ ])
+ if test -z "$AR"; then
+ if test $gl_cv_c_amsterdam_compiler = yes; then
+ AR='cc -c.a'
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='-o'
+ fi
+ else
+ dnl Use the Automake-documented default values for AR and ARFLAGS,
+ dnl but prefer ${host}-ar over ar (useful for cross-compiling).
+ AC_CHECK_TOOL([AR], [ar], [ar])
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='cru'
+ fi
+ fi
+ else
+ if test -z "$ARFLAGS"; then
+ ARFLAGS='cru'
+ fi
+ fi
+ AC_SUBST([AR])
+ AC_SUBST([ARFLAGS])
+ if test -z "$RANLIB"; then
+ if test $gl_cv_c_amsterdam_compiler = yes; then
+ RANLIB=':'
+ else
+ dnl Use the ranlib program if it is available.
+ AC_PROG_RANLIB
+ fi
+ fi
+ AC_SUBST([RANLIB])
+])
+
+# 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)'
+ AC_SUBST([MKDIR_P])])])
+
+# AC_C_RESTRICT
+# This definition overrides the AC_C_RESTRICT macro from autoconf 2.60..2.61,
+# so that mixed use of GNU C and GNU C++ and mixed use of Sun C and Sun C++
+# works.
+# This definition can be removed once autoconf >= 2.62 can be assumed.
+m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.62]),[-1],[
+AC_DEFUN([AC_C_RESTRICT],
+[AC_CACHE_CHECK([for C/C++ restrict keyword], [ac_cv_c_restrict],
+ [ac_cv_c_restrict=no
+ # The order here caters to the fact that C++ does not require 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 s[1];
+ 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
+ ])
+ AH_VERBATIM([restrict],
+[/* Define to the equivalent of the C99 'restrict' keyword, or to
+ nothing if this is not supported. Do not define if restrict is
+ supported directly. */
+#undef restrict
+/* Work around a bug in Sun C++: it does not support _Restrict, even
+ though the corresponding Sun C compiler does, which causes
+ "#define restrict _Restrict" in the previous line. Perhaps some future
+ version of Sun C++ will work with _Restrict; if so, it'll probably
+ define __RESTRICT, just as Sun C does. */
+#if defined __SUNPRO_CC && !defined __RESTRICT
+# define _Restrict
+#endif])
+ case $ac_cv_c_restrict in
+ restrict) ;;
+ no) AC_DEFINE([restrict], []) ;;
+ *) AC_DEFINE_UNQUOTED([restrict], [$ac_cv_c_restrict]) ;;
+ esac
+])
+])
+
+# gl_BIGENDIAN
+# is like AC_C_BIGENDIAN, except that it can be AC_REQUIREd.
+# Note that AC_REQUIRE([AC_C_BIGENDIAN]) does not work reliably because some
+# macros invoke AC_C_BIGENDIAN with arguments.
+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
new file mode 100644
index 00000000..cf8b78a7
--- /dev/null
+++ b/m4/gnulib-comp.m4
@@ -0,0 +1,1647 @@
+# -*- buffer-read-only: t -*- vi: set ro:
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# Copyright (C) 2002-2012 Free Software Foundation, Inc.
+#
+# 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
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This file 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 file. If not, see <http://www.gnu.org/licenses/>.
+#
+# 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.
+#
+# This file represents the compiled summary of the specification in
+# gnulib-cache.m4. It lists the computed macro invocations that need
+# to be invoked from configure.ac.
+# In projects that use version control, this file can be treated like
+# other built files.
+
+
+# This macro should be invoked from ./configure.ac, in the section
+# "Checks for programs", right after AC_PROG_CC, and certainly before
+# any checks for libraries, header files, types and library functions.
+AC_DEFUN([gl_EARLY],
+[
+ m4_pattern_forbid([^gl_[A-Z]])dnl the gnulib macro namespace
+ m4_pattern_allow([^gl_ES$])dnl a valid locale name
+ m4_pattern_allow([^gl_LIBOBJS$])dnl a variable
+ m4_pattern_allow([^gl_LTLIBOBJS$])dnl a variable
+ AC_REQUIRE([gl_PROG_AR_RANLIB])
+ AC_REQUIRE([AM_PROG_CC_C_O])
+ # Code from module alloca:
+ # Code from module alloca-opt:
+ # Code from module allocator:
+ # Code from module areadlink:
+ # Code from module areadlinkat:
+ # Code from module argmatch:
+ # Code from module argp:
+ # Code from module argp-version-etc:
+ # Code from module at-internal:
+ # Code from module backupfile:
+ # Code from module bitrotate:
+ # Code from module btowc:
+ # Code from module c-ctype:
+ # Code from module c-strcase:
+ # Code from module c-strcaseeq:
+ # Code from module canonicalize-lgpl:
+ # Code from module careadlinkat:
+ # Code from module chdir:
+ # Code from module chdir-long:
+ # Code from module chown:
+ # Code from module clock-time:
+ # Code from module cloexec:
+ # Code from module close:
+ # Code from module close-stream:
+ # Code from module closedir:
+ # Code from module closeout:
+ # Code from module configmake:
+ # Code from module d-ino:
+ # Code from module dirent:
+ # Code from module dirent-safer:
+ # Code from module dirfd:
+ # Code from module dirname:
+ # Code from module dirname-lgpl:
+ # Code from module dosname:
+ # Code from module double-slash-root:
+ # Code from module dup:
+ # Code from module dup2:
+ # Code from module environ:
+ # Code from module errno:
+ # Code from module error:
+ # Code from module exclude:
+ # Code from module exitfail:
+ # Code from module extensions:
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ # Code from module fchdir:
+ # Code from module fcntl:
+ # Code from module fcntl-h:
+ # Code from module fd-hook:
+ # Code from module fdopendir:
+ # Code from module fdutimensat:
+ # Code from module fileblocks:
+ # Code from module filename:
+ # Code from module filenamecat-lgpl:
+ # Code from module float:
+ # Code from module fnmatch:
+ # Code from module fnmatch-gnu:
+ # Code from module fpending:
+ # Code from module fseek:
+ # Code from module fseeko:
+ AC_REQUIRE([AC_FUNC_FSEEKO])
+ # Code from module fstat:
+ # Code from module fstatat:
+ # Code from module full-write:
+ # Code from module futimens:
+ # Code from module getcwd:
+ # Code from module getcwd-lgpl:
+ # Code from module getdelim:
+ # Code from module getdtablesize:
+ # Code from module getline:
+ # Code from module getopt-gnu:
+ # Code from module getopt-posix:
+ # Code from module getpagesize:
+ # Code from module gettext:
+ # Code from module gettext-h:
+ # Code from module gettime:
+ # Code from module gettimeofday:
+ # Code from module gitlog-to-changelog:
+ # Code from module hash:
+ # Code from module havelib:
+ # Code from module human:
+ # Code from module include_next:
+ # Code from module inline:
+ # Code from module intprops:
+ # Code from module inttostr:
+ # Code from module inttypes:
+ # Code from module inttypes-incomplete:
+ # Code from module iswblank:
+ # Code from module langinfo:
+ # Code from module largefile:
+ AC_REQUIRE([AC_SYS_LARGEFILE])
+ # Code from module lchown:
+ # Code from module link:
+ # Code from module link-follow:
+ # Code from module linkat:
+ # Code from module localcharset:
+ # Code from module lseek:
+ # Code from module lstat:
+ # Code from module malloc-gnu:
+ # Code from module malloc-posix:
+ # Code from module malloca:
+ # Code from module mbchar:
+ # Code from module mbrtowc:
+ # Code from module mbscasecmp:
+ # Code from module mbsinit:
+ # Code from module mbsrtowcs:
+ # Code from module mbtowc:
+ # Code from module mbuiter:
+ # Code from module memchr:
+ # Code from module mempcpy:
+ # Code from module memrchr:
+ # Code from module mkdtemp:
+ # Code from module mkfifo:
+ # Code from module mkfifoat:
+ # Code from module mknod:
+ # Code from module mktime:
+ # Code from module modechange:
+ # Code from module msvc-inval:
+ # Code from module msvc-nothrow:
+ # Code from module multiarch:
+ # Code from module nl_langinfo:
+ # Code from module nocrash:
+ # Code from module obstack:
+ # Code from module open:
+ # Code from module openat:
+ # Code from module openat-die:
+ # Code from module openat-h:
+ # Code from module opendir:
+ # Code from module parse-datetime:
+ # Code from module pathmax:
+ # Code from module priv-set:
+ # Code from module progname:
+ # Code from module quote:
+ # Code from module quotearg:
+ # Code from module quotearg-simple:
+ # Code from module raise:
+ # Code from module rawmemchr:
+ # Code from module read:
+ # Code from module readdir:
+ # Code from module readlink:
+ # Code from module readlinkat:
+ # Code from module realloc-posix:
+ # Code from module regex:
+ # Code from module rename:
+ # Code from module renameat:
+ # Code from module rewinddir:
+ # Code from module rmdir:
+ # Code from module rpmatch:
+ # Code from module safe-read:
+ # Code from module safe-write:
+ # Code from module same-inode:
+ # Code from module save-cwd:
+ # Code from module savedir:
+ # Code from module setenv:
+ # Code from module signal-h:
+ # Code from module size_max:
+ # Code from module sleep:
+ # Code from module snippet/_Noreturn:
+ # Code from module snippet/arg-nonnull:
+ # Code from module snippet/c++defs:
+ # Code from module snippet/warn-on-use:
+ # Code from module snprintf:
+ # Code from module ssize_t:
+ # Code from module stat:
+ # Code from module stat-macros:
+ # Code from module stat-time:
+ # Code from module stdalign:
+ # Code from module stdarg:
+ dnl Some compilers (e.g., AIX 5.3 cc) need to be in c99 mode
+ dnl for the builtin va_copy to work. With Autoconf 2.60 or later,
+ dnl gl_PROG_CC_C99 arranges for this. With older Autoconf gl_PROG_CC_C99
+ dnl shouldn't hurt, though installers are on their own to set c99 mode.
+ gl_PROG_CC_C99
+ # Code from module stdbool:
+ # Code from module stddef:
+ # Code from module stdint:
+ # Code from module stdio:
+ # Code from module stdlib:
+ # Code from module stpcpy:
+ # Code from module strcase:
+ # Code from module strchrnul:
+ # Code from module strdup-posix:
+ # Code from module streq:
+ # Code from module strerror:
+ # Code from module strerror-override:
+ # Code from module string:
+ # Code from module strings:
+ # Code from module strndup:
+ # Code from module strnlen:
+ # Code from module strnlen1:
+ # Code from module strtol:
+ # Code from module strtoul:
+ # Code from module strtoull:
+ # Code from module strtoumax:
+ # Code from module symlink:
+ # Code from module symlinkat:
+ # Code from module sys_stat:
+ # Code from module sys_time:
+ # Code from module sys_types:
+ # Code from module sysexits:
+ # Code from module tempname:
+ # Code from module time:
+ # Code from module time_r:
+ # Code from module timespec:
+ # Code from module unistd:
+ # Code from module unistd-safer:
+ # Code from module unitypes:
+ # Code from module uniwidth/base:
+ # Code from module uniwidth/width:
+ # Code from module unlinkdir:
+ # Code from module unlocked-io:
+ # Code from module unsetenv:
+ # Code from module utimens:
+ # Code from module utimensat:
+ # Code from module vasnprintf:
+ # Code from module vasprintf:
+ # Code from module verify:
+ # Code from module version-etc:
+ # Code from module version-etc-fsf:
+ # Code from module vsnprintf:
+ # Code from module wchar:
+ # Code from module wcrtomb:
+ # Code from module wctype-h:
+ # Code from module wcwidth:
+ # Code from module write:
+ # Code from module xalloc:
+ # Code from module xalloc-die:
+ # Code from module xalloc-oversized:
+ # Code from module xgetcwd:
+ # Code from module xsize:
+ # Code from module xstrndup:
+ # Code from module xstrtol:
+ # Code from module xstrtoumax:
+ # Code from module xvasprintf:
+])
+
+# This macro should be invoked from ./configure.ac, in the section
+# "Check for header files, types and library functions".
+AC_DEFUN([gl_INIT],
+[
+ AM_CONDITIONAL([GL_COND_LIBTOOL], [false])
+ gl_cond_libtool=false
+ gl_libdeps=
+ gl_ltlibdeps=
+ gl_m4_base='m4'
+ m4_pushdef([AC_LIBOBJ], m4_defn([gl_LIBOBJ]))
+ m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gl_REPLACE_FUNCS]))
+ m4_pushdef([AC_LIBSOURCES], m4_defn([gl_LIBSOURCES]))
+ m4_pushdef([gl_LIBSOURCES_LIST], [])
+ m4_pushdef([gl_LIBSOURCES_DIR], [])
+ gl_COMMON
+ gl_source_base='gnu'
+gl_FUNC_ALLOCA
+gl_MODULE_INDICATOR([areadlinkat])
+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])])
+AC_LIBOBJ([openat-proc])
+gl_BACKUPFILE
+AC_REQUIRE([AC_C_INLINE])
+gl_FUNC_BTOWC
+if test $HAVE_BTOWC = 0 || test $REPLACE_BTOWC = 1; then
+ AC_LIBOBJ([btowc])
+ gl_PREREQ_BTOWC
+fi
+gl_WCHAR_MODULE_INDICATOR([btowc])
+gl_CANONICALIZE_LGPL
+if test $HAVE_CANONICALIZE_FILE_NAME = 0 || test $REPLACE_CANONICALIZE_FILE_NAME = 1; then
+ AC_LIBOBJ([canonicalize-lgpl])
+fi
+gl_MODULE_INDICATOR([canonicalize-lgpl])
+gl_STDLIB_MODULE_INDICATOR([canonicalize_file_name])
+gl_STDLIB_MODULE_INDICATOR([realpath])
+AC_CHECK_FUNCS_ONCE([readlinkat])
+gl_UNISTD_MODULE_INDICATOR([chdir])
+gl_FUNC_CHDIR_LONG
+if test $gl_cv_have_arbitrary_file_name_length_limit = yes; then
+ AC_LIBOBJ([chdir-long])
+ gl_PREREQ_CHDIR_LONG
+fi
+gl_FUNC_CHOWN
+if test $HAVE_CHOWN = 0 || test $REPLACE_CHOWN = 1; then
+ AC_LIBOBJ([chown])
+fi
+if test $REPLACE_CHOWN = 1 && test $ac_cv_func_fchown = no; then
+ AC_LIBOBJ([fchown-stub])
+fi
+gl_UNISTD_MODULE_INDICATOR([chown])
+gl_CLOCK_TIME
+gl_MODULE_INDICATOR_FOR_TESTS([cloexec])
+gl_FUNC_CLOSE
+if test $REPLACE_CLOSE = 1; then
+ AC_LIBOBJ([close])
+fi
+gl_UNISTD_MODULE_INDICATOR([close])
+gl_CLOSE_STREAM
+gl_MODULE_INDICATOR([close-stream])
+gl_FUNC_CLOSEDIR
+if test $HAVE_CLOSEDIR = 0 || test $REPLACE_CLOSEDIR = 1; then
+ AC_LIBOBJ([closedir])
+fi
+gl_DIRENT_MODULE_INDICATOR([closedir])
+gl_CLOSEOUT
+gl_CONFIGMAKE_PREP
+gl_CHECK_TYPE_STRUCT_DIRENT_D_INO
+gl_DIRENT_H
+gl_DIRENT_SAFER
+gl_MODULE_INDICATOR([dirent-safer])
+gl_FUNC_DIRFD
+if test $ac_cv_func_dirfd = no && test $gl_cv_func_dirfd_macro = no; then
+ AC_LIBOBJ([dirfd])
+ gl_PREREQ_DIRFD
+fi
+gl_DIRENT_MODULE_INDICATOR([dirfd])
+gl_DIRNAME
+gl_MODULE_INDICATOR([dirname])
+gl_DIRNAME_LGPL
+gl_DOUBLE_SLASH_ROOT
+gl_FUNC_DUP
+if test $REPLACE_DUP = 1; then
+ AC_LIBOBJ([dup])
+ gl_PREREQ_DUP
+fi
+gl_UNISTD_MODULE_INDICATOR([dup])
+gl_FUNC_DUP2
+if test $HAVE_DUP2 = 0 || test $REPLACE_DUP2 = 1; then
+ AC_LIBOBJ([dup2])
+ gl_PREREQ_DUP2
+fi
+gl_UNISTD_MODULE_INDICATOR([dup2])
+gl_ENVIRON
+gl_UNISTD_MODULE_INDICATOR([environ])
+gl_HEADER_ERRNO_H
+gl_ERROR
+if test $ac_cv_lib_error_at_line = no; then
+ AC_LIBOBJ([error])
+ gl_PREREQ_ERROR
+fi
+m4_ifdef([AM_XGETTEXT_OPTION],
+ [AM_][XGETTEXT_OPTION([--flag=error:3:c-format])
+ AM_][XGETTEXT_OPTION([--flag=error_at_line:5:c-format])])
+gl_FUNC_FCHDIR
+gl_UNISTD_MODULE_INDICATOR([fchdir])
+gl_FUNC_FCNTL
+if test $HAVE_FCNTL = 0 || test $REPLACE_FCNTL = 1; then
+ AC_LIBOBJ([fcntl])
+fi
+gl_FCNTL_MODULE_INDICATOR([fcntl])
+gl_FCNTL_H
+gl_FUNC_FDOPENDIR
+if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then
+ AC_LIBOBJ([fdopendir])
+fi
+gl_DIRENT_MODULE_INDICATOR([fdopendir])
+gl_MODULE_INDICATOR([fdopendir])
+AC_REQUIRE([AC_C_INLINE]) dnl because 'inline' is used in lib/utimens.h
+gl_MODULE_INDICATOR([fdutimensat])
+gl_FILEBLOCKS
+if test $ac_cv_member_struct_stat_st_blocks = no; then
+ AC_LIBOBJ([fileblocks])
+ gl_PREREQ_FILEBLOCKS
+fi
+gl_FILE_NAME_CONCAT_LGPL
+gl_FLOAT_H
+if test $REPLACE_FLOAT_LDBL = 1; then
+ AC_LIBOBJ([float])
+fi
+if test $REPLACE_ITOLD = 1; then
+ AC_LIBOBJ([itold])
+fi
+gl_FUNC_FNMATCH_POSIX
+if test -n "$FNMATCH_H"; then
+ AC_LIBOBJ([fnmatch])
+ gl_PREREQ_FNMATCH
+fi
+gl_FUNC_FNMATCH_GNU
+if test -n "$FNMATCH_H"; then
+ AC_LIBOBJ([fnmatch])
+ gl_PREREQ_FNMATCH
+fi
+gl_FUNC_FPENDING
+if test $ac_cv_func___fpending = no; then
+ AC_LIBOBJ([fpending])
+ gl_PREREQ_FPENDING
+fi
+gl_FUNC_FSEEK
+if test $REPLACE_FSEEK = 1; then
+ AC_LIBOBJ([fseek])
+fi
+gl_STDIO_MODULE_INDICATOR([fseek])
+gl_FUNC_FSEEKO
+if test $HAVE_FSEEKO = 0 || test $REPLACE_FSEEKO = 1; then
+ AC_LIBOBJ([fseeko])
+fi
+gl_STDIO_MODULE_INDICATOR([fseeko])
+gl_FUNC_FSTAT
+if test $REPLACE_FSTAT = 1; then
+ AC_LIBOBJ([fstat])
+ gl_PREREQ_FSTAT
+fi
+gl_SYS_STAT_MODULE_INDICATOR([fstat])
+gl_FUNC_FSTATAT
+if test $HAVE_FSTATAT = 0 || test $REPLACE_FSTATAT = 1; then
+ AC_LIBOBJ([fstatat])
+fi
+AC_REQUIRE([AC_C_INLINE]) dnl because 'inline' is used in lib/openat.h
+gl_MODULE_INDICATOR([fstatat]) dnl for lib/openat.h
+gl_SYS_STAT_MODULE_INDICATOR([fstatat])
+gl_FUNC_FUTIMENS
+if test $HAVE_FUTIMENS = 0 || test $REPLACE_FUTIMENS = 1; then
+ AC_LIBOBJ([futimens])
+fi
+gl_SYS_STAT_MODULE_INDICATOR([futimens])
+gl_FUNC_GETCWD
+if test $REPLACE_GETCWD = 1; then
+ AC_LIBOBJ([getcwd])
+ gl_PREREQ_GETCWD
+fi
+gl_MODULE_INDICATOR([getcwd])
+gl_UNISTD_MODULE_INDICATOR([getcwd])
+gl_FUNC_GETCWD_LGPL
+if test $REPLACE_GETCWD = 1; then
+ AC_LIBOBJ([getcwd-lgpl])
+fi
+gl_UNISTD_MODULE_INDICATOR([getcwd])
+gl_FUNC_GETDELIM
+if test $HAVE_GETDELIM = 0 || test $REPLACE_GETDELIM = 1; then
+ AC_LIBOBJ([getdelim])
+ gl_PREREQ_GETDELIM
+fi
+gl_STDIO_MODULE_INDICATOR([getdelim])
+gl_FUNC_GETDTABLESIZE
+if test $HAVE_GETDTABLESIZE = 0; then
+ AC_LIBOBJ([getdtablesize])
+ gl_PREREQ_GETDTABLESIZE
+fi
+gl_UNISTD_MODULE_INDICATOR([getdtablesize])
+gl_FUNC_GETLINE
+if test $REPLACE_GETLINE = 1; then
+ AC_LIBOBJ([getline])
+ gl_PREREQ_GETLINE
+fi
+gl_STDIO_MODULE_INDICATOR([getline])
+gl_FUNC_GETOPT_GNU
+if test $REPLACE_GETOPT = 1; then
+ AC_LIBOBJ([getopt])
+ AC_LIBOBJ([getopt1])
+ gl_PREREQ_GETOPT
+ dnl Arrange for unistd.h to include getopt.h.
+ GNULIB_GL_UNISTD_H_GETOPT=1
+fi
+AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
+gl_MODULE_INDICATOR_FOR_TESTS([getopt-gnu])
+gl_FUNC_GETOPT_POSIX
+if test $REPLACE_GETOPT = 1; then
+ AC_LIBOBJ([getopt])
+ AC_LIBOBJ([getopt1])
+ gl_PREREQ_GETOPT
+ dnl Arrange for unistd.h to include getopt.h.
+ GNULIB_GL_UNISTD_H_GETOPT=1
+fi
+AC_SUBST([GNULIB_GL_UNISTD_H_GETOPT])
+gl_FUNC_GETPAGESIZE
+if test $REPLACE_GETPAGESIZE = 1; then
+ AC_LIBOBJ([getpagesize])
+fi
+gl_UNISTD_MODULE_INDICATOR([getpagesize])
+dnl you must add AM_GNU_GETTEXT([external]) or similar to configure.ac.
+AM_GNU_GETTEXT_VERSION([0.18.1])
+AC_SUBST([LIBINTL])
+AC_SUBST([LTLIBINTL])
+gl_GETTIME
+gl_FUNC_GETTIMEOFDAY
+if test $HAVE_GETTIMEOFDAY = 0 || test $REPLACE_GETTIMEOFDAY = 1; then
+ AC_LIBOBJ([gettimeofday])
+ gl_PREREQ_GETTIMEOFDAY
+fi
+gl_SYS_TIME_MODULE_INDICATOR([gettimeofday])
+gl_HUMAN
+gl_INLINE
+gl_INTTOSTR
+gl_INTTYPES_H
+gl_INTTYPES_INCOMPLETE
+gl_FUNC_ISWBLANK
+if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ :
+else
+ if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+ AC_LIBOBJ([iswblank])
+ fi
+fi
+gl_WCTYPE_MODULE_INDICATOR([iswblank])
+gl_LANGINFO_H
+gl_FUNC_LCHOWN
+if test $HAVE_LCHOWN = 0 || test $REPLACE_LCHOWN = 1; then
+ AC_LIBOBJ([lchown])
+fi
+gl_UNISTD_MODULE_INDICATOR([lchown])
+gl_FUNC_LINK
+if test $HAVE_LINK = 0 || test $REPLACE_LINK = 1; then
+ AC_LIBOBJ([link])
+fi
+gl_UNISTD_MODULE_INDICATOR([link])
+gl_FUNC_LINK_FOLLOWS_SYMLINK
+gl_FUNC_LINKAT
+if test $HAVE_LINKAT = 0 || test $REPLACE_LINKAT = 1; then
+ AC_LIBOBJ([linkat])
+fi
+if test $HAVE_LINKAT = 0; then
+ AC_LIBOBJ([at-func2])
+fi
+gl_UNISTD_MODULE_INDICATOR([linkat])
+gl_LOCALCHARSET
+LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\""
+AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT])
+gl_FUNC_LSEEK
+if test $REPLACE_LSEEK = 1; then
+ AC_LIBOBJ([lseek])
+fi
+gl_UNISTD_MODULE_INDICATOR([lseek])
+gl_FUNC_LSTAT
+if test $REPLACE_LSTAT = 1; then
+ AC_LIBOBJ([lstat])
+ gl_PREREQ_LSTAT
+fi
+gl_SYS_STAT_MODULE_INDICATOR([lstat])
+gl_FUNC_MALLOC_GNU
+if test $REPLACE_MALLOC = 1; then
+ AC_LIBOBJ([malloc])
+fi
+gl_MODULE_INDICATOR([malloc-gnu])
+gl_FUNC_MALLOC_POSIX
+if test $REPLACE_MALLOC = 1; then
+ AC_LIBOBJ([malloc])
+fi
+gl_STDLIB_MODULE_INDICATOR([malloc-posix])
+gl_MALLOCA
+gl_MBCHAR
+gl_FUNC_MBRTOWC
+if test $HAVE_MBRTOWC = 0 || test $REPLACE_MBRTOWC = 1; then
+ AC_LIBOBJ([mbrtowc])
+ gl_PREREQ_MBRTOWC
+fi
+gl_WCHAR_MODULE_INDICATOR([mbrtowc])
+gl_STRING_MODULE_INDICATOR([mbscasecmp])
+gl_FUNC_MBSINIT
+if test $HAVE_MBSINIT = 0 || test $REPLACE_MBSINIT = 1; then
+ AC_LIBOBJ([mbsinit])
+ gl_PREREQ_MBSINIT
+fi
+gl_WCHAR_MODULE_INDICATOR([mbsinit])
+gl_FUNC_MBSRTOWCS
+if test $HAVE_MBSRTOWCS = 0 || test $REPLACE_MBSRTOWCS = 1; then
+ AC_LIBOBJ([mbsrtowcs])
+ AC_LIBOBJ([mbsrtowcs-state])
+ gl_PREREQ_MBSRTOWCS
+fi
+gl_WCHAR_MODULE_INDICATOR([mbsrtowcs])
+gl_FUNC_MBTOWC
+if test $REPLACE_MBTOWC = 1; then
+ AC_LIBOBJ([mbtowc])
+ gl_PREREQ_MBTOWC
+fi
+gl_STDLIB_MODULE_INDICATOR([mbtowc])
+gl_MBITER
+gl_FUNC_MEMCHR
+if test $HAVE_MEMCHR = 0 || test $REPLACE_MEMCHR = 1; then
+ AC_LIBOBJ([memchr])
+ gl_PREREQ_MEMCHR
+fi
+gl_STRING_MODULE_INDICATOR([memchr])
+gl_FUNC_MEMPCPY
+if test $HAVE_MEMPCPY = 0; then
+ AC_LIBOBJ([mempcpy])
+ gl_PREREQ_MEMPCPY
+fi
+gl_STRING_MODULE_INDICATOR([mempcpy])
+gl_FUNC_MEMRCHR
+if test $ac_cv_func_memrchr = no; then
+ AC_LIBOBJ([memrchr])
+ gl_PREREQ_MEMRCHR
+fi
+gl_STRING_MODULE_INDICATOR([memrchr])
+gl_FUNC_MKDTEMP
+if test $HAVE_MKDTEMP = 0; then
+ AC_LIBOBJ([mkdtemp])
+ gl_PREREQ_MKDTEMP
+fi
+gl_STDLIB_MODULE_INDICATOR([mkdtemp])
+gl_FUNC_MKFIFO
+if test $HAVE_MKFIFO = 0 || test $REPLACE_MKFIFO = 1; then
+ AC_LIBOBJ([mkfifo])
+fi
+gl_UNISTD_MODULE_INDICATOR([mkfifo])
+gl_FUNC_MKFIFOAT
+if test $HAVE_MKFIFOAT = 0; then
+ AC_LIBOBJ([mkfifoat])
+fi
+if test $HAVE_MKNODAT = 0; then
+ AC_LIBOBJ([mknodat])
+fi
+gl_SYS_STAT_MODULE_INDICATOR([mkfifoat])
+gl_SYS_STAT_MODULE_INDICATOR([mknodat])
+gl_FUNC_MKNOD
+if test $HAVE_MKNOD = 0 || test $REPLACE_MKNOD = 1; then
+ AC_LIBOBJ([mknod])
+fi
+gl_UNISTD_MODULE_INDICATOR([mknod])
+gl_FUNC_MKTIME
+if test $REPLACE_MKTIME = 1; then
+ AC_LIBOBJ([mktime])
+ gl_PREREQ_MKTIME
+fi
+gl_TIME_MODULE_INDICATOR([mktime])
+gl_MODECHANGE
+gl_MSVC_INVAL
+if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ AC_LIBOBJ([msvc-inval])
+fi
+gl_MSVC_NOTHROW
+if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ AC_LIBOBJ([msvc-nothrow])
+fi
+gl_MULTIARCH
+gl_FUNC_NL_LANGINFO
+if test $HAVE_NL_LANGINFO = 0 || test $REPLACE_NL_LANGINFO = 1; then
+ AC_LIBOBJ([nl_langinfo])
+fi
+gl_LANGINFO_MODULE_INDICATOR([nl_langinfo])
+AC_FUNC_OBSTACK
+dnl Note: AC_FUNC_OBSTACK does AC_LIBSOURCES([obstack.h, obstack.c]).
+gl_FUNC_OPEN
+if test $REPLACE_OPEN = 1; then
+ AC_LIBOBJ([open])
+ gl_PREREQ_OPEN
+fi
+gl_FCNTL_MODULE_INDICATOR([open])
+gl_FUNC_OPENAT
+if test $HAVE_OPENAT = 0 || test $REPLACE_OPENAT = 1; then
+ AC_LIBOBJ([openat])
+ gl_PREREQ_OPENAT
+fi
+gl_MODULE_INDICATOR([openat]) dnl for lib/getcwd.c
+gl_FCNTL_MODULE_INDICATOR([openat])
+gl_FUNC_OPENDIR
+if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then
+ AC_LIBOBJ([opendir])
+fi
+gl_DIRENT_MODULE_INDICATOR([opendir])
+gl_PARSE_DATETIME
+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_RAISE
+if test $HAVE_RAISE = 0 || test $REPLACE_RAISE = 1; then
+ AC_LIBOBJ([raise])
+ gl_PREREQ_RAISE
+fi
+gl_SIGNAL_MODULE_INDICATOR([raise])
+gl_FUNC_RAWMEMCHR
+if test $HAVE_RAWMEMCHR = 0; then
+ AC_LIBOBJ([rawmemchr])
+ gl_PREREQ_RAWMEMCHR
+fi
+gl_STRING_MODULE_INDICATOR([rawmemchr])
+gl_FUNC_READ
+if test $REPLACE_READ = 1; then
+ AC_LIBOBJ([read])
+ gl_PREREQ_READ
+fi
+gl_UNISTD_MODULE_INDICATOR([read])
+gl_FUNC_READDIR
+if test $HAVE_READDIR = 0; then
+ AC_LIBOBJ([readdir])
+fi
+gl_DIRENT_MODULE_INDICATOR([readdir])
+gl_FUNC_READLINK
+if test $HAVE_READLINK = 0 || test $REPLACE_READLINK = 1; then
+ AC_LIBOBJ([readlink])
+ gl_PREREQ_READLINK
+fi
+gl_UNISTD_MODULE_INDICATOR([readlink])
+gl_FUNC_READLINKAT
+if test $HAVE_READLINKAT = 0; then
+ AC_LIBOBJ([readlinkat])
+fi
+gl_UNISTD_MODULE_INDICATOR([readlinkat])
+gl_FUNC_REALLOC_POSIX
+if test $REPLACE_REALLOC = 1; then
+ AC_LIBOBJ([realloc])
+fi
+gl_STDLIB_MODULE_INDICATOR([realloc-posix])
+gl_REGEX
+if test $ac_use_included_regex = yes; then
+ AC_LIBOBJ([regex])
+ gl_PREREQ_REGEX
+fi
+gl_FUNC_RENAME
+if test $REPLACE_RENAME = 1; then
+ AC_LIBOBJ([rename])
+fi
+gl_STDIO_MODULE_INDICATOR([rename])
+gl_FUNC_RENAMEAT
+if test $HAVE_RENAMEAT = 0 || test $REPLACE_RENAMEAT = 1; then
+ AC_LIBOBJ([renameat])
+fi
+if test $HAVE_RENAMEAT = 0; then
+ AC_LIBOBJ([at-func2])
+fi
+gl_STDIO_MODULE_INDICATOR([renameat])
+gl_FUNC_REWINDDIR
+if test $HAVE_REWINDDIR = 0; then
+ AC_LIBOBJ([rewinddir])
+fi
+gl_DIRENT_MODULE_INDICATOR([rewinddir])
+gl_FUNC_RMDIR
+if test $REPLACE_RMDIR = 1; then
+ AC_LIBOBJ([rmdir])
+fi
+gl_UNISTD_MODULE_INDICATOR([rmdir])
+gl_FUNC_RPMATCH
+if test $HAVE_RPMATCH = 0; then
+ AC_LIBOBJ([rpmatch])
+ gl_PREREQ_RPMATCH
+fi
+gl_STDLIB_MODULE_INDICATOR([rpmatch])
+gl_PREREQ_SAFE_READ
+gl_PREREQ_SAFE_WRITE
+gl_SAVE_CWD
+gl_SAVEDIR
+gl_FUNC_SETENV
+if test $HAVE_SETENV = 0 || test $REPLACE_SETENV = 1; then
+ AC_LIBOBJ([setenv])
+fi
+gl_STDLIB_MODULE_INDICATOR([setenv])
+gl_SIGNAL_H
+gl_SIZE_MAX
+gl_FUNC_SLEEP
+if test $HAVE_SLEEP = 0 || test $REPLACE_SLEEP = 1; then
+ AC_LIBOBJ([sleep])
+fi
+gl_UNISTD_MODULE_INDICATOR([sleep])
+gl_FUNC_SNPRINTF
+gl_STDIO_MODULE_INDICATOR([snprintf])
+gl_MODULE_INDICATOR([snprintf])
+gt_TYPE_SSIZE_T
+gl_FUNC_STAT
+if test $REPLACE_STAT = 1; then
+ AC_LIBOBJ([stat])
+ gl_PREREQ_STAT
+fi
+gl_SYS_STAT_MODULE_INDICATOR([stat])
+gl_STAT_TIME
+gl_STAT_BIRTHTIME
+gl_STDALIGN_H
+gl_STDARG_H
+AM_STDBOOL_H
+gl_STDDEF_H
+gl_STDINT_H
+gl_STDIO_H
+gl_STDLIB_H
+gl_FUNC_STPCPY
+if test $HAVE_STPCPY = 0; then
+ AC_LIBOBJ([stpcpy])
+ gl_PREREQ_STPCPY
+fi
+gl_STRING_MODULE_INDICATOR([stpcpy])
+gl_STRCASE
+if test $HAVE_STRCASECMP = 0; then
+ AC_LIBOBJ([strcasecmp])
+ gl_PREREQ_STRCASECMP
+fi
+if test $HAVE_STRNCASECMP = 0; then
+ AC_LIBOBJ([strncasecmp])
+ gl_PREREQ_STRNCASECMP
+fi
+gl_FUNC_STRCHRNUL
+if test $HAVE_STRCHRNUL = 0 || test $REPLACE_STRCHRNUL = 1; then
+ AC_LIBOBJ([strchrnul])
+ gl_PREREQ_STRCHRNUL
+fi
+gl_STRING_MODULE_INDICATOR([strchrnul])
+gl_FUNC_STRDUP_POSIX
+if test $ac_cv_func_strdup = no || test $REPLACE_STRDUP = 1; then
+ AC_LIBOBJ([strdup])
+ gl_PREREQ_STRDUP
+fi
+gl_STRING_MODULE_INDICATOR([strdup])
+gl_FUNC_STRERROR
+if test $REPLACE_STRERROR = 1; then
+ AC_LIBOBJ([strerror])
+fi
+gl_MODULE_INDICATOR([strerror])
+gl_STRING_MODULE_INDICATOR([strerror])
+AC_REQUIRE([gl_HEADER_ERRNO_H])
+AC_REQUIRE([gl_FUNC_STRERROR_0])
+if test -n "$ERRNO_H" || test $REPLACE_STRERROR_0 = 1; then
+ AC_LIBOBJ([strerror-override])
+ gl_PREREQ_SYS_H_WINSOCK2
+fi
+gl_HEADER_STRING_H
+gl_HEADER_STRINGS_H
+gl_FUNC_STRNDUP
+if test $HAVE_STRNDUP = 0 || test $REPLACE_STRNDUP = 1; then
+ AC_LIBOBJ([strndup])
+fi
+gl_STRING_MODULE_INDICATOR([strndup])
+gl_FUNC_STRNLEN
+if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+ AC_LIBOBJ([strnlen])
+ gl_PREREQ_STRNLEN
+fi
+gl_STRING_MODULE_INDICATOR([strnlen])
+gl_FUNC_STRTOL
+if test $ac_cv_func_strtol = no; then
+ AC_LIBOBJ([strtol])
+fi
+gl_FUNC_STRTOUL
+if test $ac_cv_func_strtoul = no; then
+ AC_LIBOBJ([strtoul])
+fi
+gl_FUNC_STRTOULL
+if test $HAVE_STRTOULL = 0; then
+ AC_LIBOBJ([strtoull])
+ gl_PREREQ_STRTOULL
+fi
+gl_STDLIB_MODULE_INDICATOR([strtoull])
+gl_FUNC_STRTOUMAX
+if test $ac_cv_func_strtoumax = no; then
+ AC_LIBOBJ([strtoumax])
+ gl_PREREQ_STRTOUMAX
+fi
+gl_INTTYPES_MODULE_INDICATOR([strtoumax])
+gl_FUNC_SYMLINK
+if test $HAVE_SYMLINK = 0 || test $REPLACE_SYMLINK = 1; then
+ AC_LIBOBJ([symlink])
+fi
+gl_UNISTD_MODULE_INDICATOR([symlink])
+gl_FUNC_SYMLINKAT
+if test $HAVE_SYMLINKAT = 0; then
+ AC_LIBOBJ([symlinkat])
+fi
+gl_UNISTD_MODULE_INDICATOR([symlinkat])
+gl_HEADER_SYS_STAT_H
+AC_PROG_MKDIR_P
+gl_HEADER_SYS_TIME_H
+AC_PROG_MKDIR_P
+gl_SYS_TYPES_H
+AC_PROG_MKDIR_P
+gl_SYSEXITS
+gl_FUNC_GEN_TEMPNAME
+gl_HEADER_TIME_H
+gl_TIME_R
+if test $HAVE_LOCALTIME_R = 0 || test $REPLACE_LOCALTIME_R = 1; then
+ AC_LIBOBJ([time_r])
+ gl_PREREQ_TIME_R
+fi
+gl_TIME_MODULE_INDICATOR([time_r])
+gl_TIMESPEC
+gl_UNISTD_H
+gl_UNISTD_SAFER
+gl_LIBUNISTRING_LIBHEADER([0.9], [unitypes.h])
+gl_LIBUNISTRING_LIBHEADER([0.9], [uniwidth.h])
+gl_LIBUNISTRING_MODULE([0.9.4], [uniwidth/width])
+gl_UNLINKDIR
+gl_FUNC_GLIBC_UNLOCKED_IO
+gl_FUNC_UNSETENV
+if test $HAVE_UNSETENV = 0 || test $REPLACE_UNSETENV = 1; then
+ AC_LIBOBJ([unsetenv])
+ gl_PREREQ_UNSETENV
+fi
+gl_STDLIB_MODULE_INDICATOR([unsetenv])
+gl_UTIMENS
+gl_FUNC_UTIMENSAT
+if test $HAVE_UTIMENSAT = 0 || test $REPLACE_UTIMENSAT = 1; then
+ AC_LIBOBJ([utimensat])
+fi
+gl_SYS_STAT_MODULE_INDICATOR([utimensat])
+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
+gl_FUNC_WCRTOMB
+if test $HAVE_WCRTOMB = 0 || test $REPLACE_WCRTOMB = 1; then
+ AC_LIBOBJ([wcrtomb])
+ gl_PREREQ_WCRTOMB
+fi
+gl_WCHAR_MODULE_INDICATOR([wcrtomb])
+gl_WCTYPE_H
+gl_FUNC_WCWIDTH
+if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then
+ AC_LIBOBJ([wcwidth])
+fi
+gl_WCHAR_MODULE_INDICATOR([wcwidth])
+gl_FUNC_WRITE
+if test $REPLACE_WRITE = 1; then
+ AC_LIBOBJ([write])
+ gl_PREREQ_WRITE
+fi
+gl_UNISTD_MODULE_INDICATOR([write])
+gl_XALLOC
+gl_XGETCWD
+gl_XSIZE
+gl_XSTRNDUP
+gl_XSTRTOL
+gl_XVASPRINTF
+m4_ifdef([AM_XGETTEXT_OPTION],
+ [AM_][XGETTEXT_OPTION([--flag=xasprintf:1:c-format])])
+ # End of code from modules
+ m4_ifval(gl_LIBSOURCES_LIST, [
+ m4_syscmd([test ! -d ]m4_defn([gl_LIBSOURCES_DIR])[ ||
+ for gl_file in ]gl_LIBSOURCES_LIST[ ; do
+ if test ! -r ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file ; then
+ echo "missing file ]m4_defn([gl_LIBSOURCES_DIR])[/$gl_file" >&2
+ exit 1
+ fi
+ done])dnl
+ m4_if(m4_sysval, [0], [],
+ [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])])
+ ])
+ m4_popdef([gl_LIBSOURCES_DIR])
+ m4_popdef([gl_LIBSOURCES_LIST])
+ m4_popdef([AC_LIBSOURCES])
+ m4_popdef([AC_REPLACE_FUNCS])
+ m4_popdef([AC_LIBOBJ])
+ AC_CONFIG_COMMANDS_PRE([
+ gl_libobjs=
+ gl_ltlibobjs=
+ 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 -e "$sed_drop_objext" | sort | uniq`; do
+ gl_libobjs="$gl_libobjs $i.$ac_objext"
+ gl_ltlibobjs="$gl_ltlibobjs $i.lo"
+ done
+ fi
+ AC_SUBST([gl_LIBOBJS], [$gl_libobjs])
+ AC_SUBST([gl_LTLIBOBJS], [$gl_ltlibobjs])
+ ])
+ gltests_libdeps=
+ gltests_ltlibdeps=
+ m4_pushdef([AC_LIBOBJ], m4_defn([gltests_LIBOBJ]))
+ m4_pushdef([AC_REPLACE_FUNCS], m4_defn([gltests_REPLACE_FUNCS]))
+ m4_pushdef([AC_LIBSOURCES], m4_defn([gltests_LIBSOURCES]))
+ m4_pushdef([gltests_LIBSOURCES_LIST], [])
+ m4_pushdef([gltests_LIBSOURCES_DIR], [])
+ gl_COMMON
+ gl_source_base='tests'
+changequote(,)dnl
+ gltests_WITNESS=IN_`echo "${PACKAGE-$PACKAGE_TARNAME}" | LC_ALL=C tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ | LC_ALL=C sed -e 's/[^A-Z0-9_]/_/g'`_GNULIB_TESTS
+changequote([, ])dnl
+ AC_SUBST([gltests_WITNESS])
+ gl_module_indicator_condition=$gltests_WITNESS
+ m4_pushdef([gl_MODULE_INDICATOR_CONDITION], [$gl_module_indicator_condition])
+ m4_popdef([gl_MODULE_INDICATOR_CONDITION])
+ m4_ifval(gltests_LIBSOURCES_LIST, [
+ m4_syscmd([test ! -d ]m4_defn([gltests_LIBSOURCES_DIR])[ ||
+ for gl_file in ]gltests_LIBSOURCES_LIST[ ; do
+ if test ! -r ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file ; then
+ echo "missing file ]m4_defn([gltests_LIBSOURCES_DIR])[/$gl_file" >&2
+ exit 1
+ fi
+ done])dnl
+ m4_if(m4_sysval, [0], [],
+ [AC_FATAL([expected source file, required through AC_LIBSOURCES, not found])])
+ ])
+ m4_popdef([gltests_LIBSOURCES_DIR])
+ m4_popdef([gltests_LIBSOURCES_LIST])
+ m4_popdef([AC_LIBSOURCES])
+ m4_popdef([AC_REPLACE_FUNCS])
+ m4_popdef([AC_LIBOBJ])
+ AC_CONFIG_COMMANDS_PRE([
+ gltests_libobjs=
+ gltests_ltlibobjs=
+ 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 -e "$sed_drop_objext" | sort | uniq`; do
+ gltests_libobjs="$gltests_libobjs $i.$ac_objext"
+ gltests_ltlibobjs="$gltests_ltlibobjs $i.lo"
+ done
+ fi
+ AC_SUBST([gltests_LIBOBJS], [$gltests_libobjs])
+ AC_SUBST([gltests_LTLIBOBJS], [$gltests_ltlibobjs])
+ ])
+ 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
+# into gl_LIBOBJS instead of into LIBOBJS.
+AC_DEFUN([gl_LIBOBJ], [
+ AS_LITERAL_IF([$1], [gl_LIBSOURCES([$1.c])])dnl
+ gl_LIBOBJS="$gl_LIBOBJS $1.$ac_objext"
+])
+
+# Like AC_REPLACE_FUNCS, except that the module name goes
+# into gl_LIBOBJS instead of into LIBOBJS.
+AC_DEFUN([gl_REPLACE_FUNCS], [
+ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl
+ AC_CHECK_FUNCS([$1], , [gl_LIBOBJ($ac_func)])
+])
+
+# Like AC_LIBSOURCES, except the directory where the source file is
+# expected is derived from the gnulib-tool parameterization,
+# and alloca is special cased (for the alloca-opt module).
+# We could also entirely rely on EXTRA_lib..._SOURCES.
+AC_DEFUN([gl_LIBSOURCES], [
+ m4_foreach([_gl_NAME], [$1], [
+ m4_if(_gl_NAME, [alloca.c], [], [
+ m4_define([gl_LIBSOURCES_DIR], [gnu])
+ m4_append([gl_LIBSOURCES_LIST], _gl_NAME, [ ])
+ ])
+ ])
+])
+
+# Like AC_LIBOBJ, except that the module name goes
+# into gltests_LIBOBJS instead of into LIBOBJS.
+AC_DEFUN([gltests_LIBOBJ], [
+ AS_LITERAL_IF([$1], [gltests_LIBSOURCES([$1.c])])dnl
+ gltests_LIBOBJS="$gltests_LIBOBJS $1.$ac_objext"
+])
+
+# Like AC_REPLACE_FUNCS, except that the module name goes
+# into gltests_LIBOBJS instead of into LIBOBJS.
+AC_DEFUN([gltests_REPLACE_FUNCS], [
+ m4_foreach_w([gl_NAME], [$1], [AC_LIBSOURCES(gl_NAME[.c])])dnl
+ AC_CHECK_FUNCS([$1], , [gltests_LIBOBJ($ac_func)])
+])
+
+# Like AC_LIBSOURCES, except the directory where the source file is
+# expected is derived from the gnulib-tool parameterization,
+# and alloca is special cased (for the alloca-opt module).
+# We could also entirely rely on EXTRA_lib..._SOURCES.
+AC_DEFUN([gltests_LIBSOURCES], [
+ m4_foreach([_gl_NAME], [$1], [
+ m4_if(_gl_NAME, [alloca.c], [], [
+ m4_define([gltests_LIBSOURCES_DIR], [tests])
+ m4_append([gltests_LIBSOURCES_LIST], _gl_NAME, [ ])
+ ])
+ ])
+])
+
+# 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/config.rpath
+ build-aux/gitlog-to-changelog
+ build-aux/snippet/_Noreturn.h
+ build-aux/snippet/arg-nonnull.h
+ build-aux/snippet/c++defs.h
+ build-aux/snippet/warn-on-use.h
+ doc/parse-datetime.texi
+ lib/alloca.c
+ lib/alloca.in.h
+ lib/allocator.c
+ lib/allocator.h
+ lib/anytostr.c
+ lib/areadlink.c
+ lib/areadlink.h
+ lib/areadlinkat.c
+ lib/argmatch.c
+ lib/argmatch.h
+ lib/argp-ba.c
+ lib/argp-eexst.c
+ lib/argp-fmtstream.c
+ lib/argp-fmtstream.h
+ lib/argp-fs-xinl.c
+ lib/argp-help.c
+ lib/argp-namefrob.h
+ lib/argp-parse.c
+ 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/at-func2.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/c-strcase.h
+ lib/c-strcasecmp.c
+ lib/c-strcaseeq.h
+ lib/c-strncasecmp.c
+ lib/canonicalize-lgpl.c
+ lib/careadlinkat.c
+ lib/careadlinkat.h
+ lib/chdir-long.c
+ lib/chdir-long.h
+ lib/chown.c
+ lib/cloexec.c
+ lib/cloexec.h
+ lib/close-stream.c
+ lib/close-stream.h
+ lib/close.c
+ lib/closedir.c
+ lib/closeout.c
+ lib/closeout.h
+ lib/config.charset
+ lib/dirent--.h
+ lib/dirent-private.h
+ lib/dirent-safer.h
+ lib/dirent.in.h
+ lib/dirfd.c
+ lib/dirname-lgpl.c
+ lib/dirname.c
+ lib/dirname.h
+ lib/dosname.h
+ lib/dup-safer.c
+ lib/dup.c
+ lib/dup2.c
+ lib/errno.in.h
+ lib/error.c
+ lib/error.h
+ lib/exclude.c
+ lib/exclude.h
+ lib/exitfail.c
+ lib/exitfail.h
+ lib/fchdir.c
+ lib/fchown-stub.c
+ lib/fcntl.c
+ lib/fcntl.in.h
+ lib/fd-hook.c
+ lib/fd-hook.h
+ lib/fd-safer.c
+ lib/fdopendir.c
+ lib/fdutimensat.c
+ lib/fileblocks.c
+ lib/filename.h
+ lib/filenamecat-lgpl.c
+ lib/filenamecat.h
+ lib/float+.h
+ lib/float.c
+ lib/float.in.h
+ lib/fnmatch.c
+ lib/fnmatch.in.h
+ lib/fnmatch_loop.c
+ lib/fpending.c
+ lib/fpending.h
+ lib/fseek.c
+ lib/fseeko.c
+ lib/fstat.c
+ lib/fstatat.c
+ lib/full-write.c
+ lib/full-write.h
+ lib/futimens.c
+ lib/getcwd-lgpl.c
+ lib/getcwd.c
+ lib/getdelim.c
+ lib/getdtablesize.c
+ lib/getline.c
+ lib/getopt.c
+ lib/getopt.in.h
+ lib/getopt1.c
+ lib/getopt_int.h
+ lib/getpagesize.c
+ lib/gettext.h
+ lib/gettime.c
+ lib/gettimeofday.c
+ lib/hash.c
+ lib/hash.h
+ lib/human.c
+ lib/human.h
+ lib/imaxtostr.c
+ lib/intprops.h
+ lib/inttostr.c
+ lib/inttostr.h
+ lib/inttypes.in.h
+ lib/iswblank.c
+ lib/itold.c
+ lib/langinfo.in.h
+ lib/lchown.c
+ lib/link.c
+ lib/linkat.c
+ lib/localcharset.c
+ lib/localcharset.h
+ lib/lseek.c
+ lib/lstat.c
+ lib/malloc.c
+ lib/malloca.c
+ lib/malloca.h
+ lib/malloca.valgrind
+ lib/mbchar.c
+ lib/mbchar.h
+ lib/mbrtowc.c
+ lib/mbscasecmp.c
+ lib/mbsinit.c
+ lib/mbsrtowcs-impl.h
+ lib/mbsrtowcs-state.c
+ lib/mbsrtowcs.c
+ lib/mbtowc-impl.h
+ lib/mbtowc.c
+ lib/mbuiter.h
+ lib/memchr.c
+ lib/memchr.valgrind
+ lib/mempcpy.c
+ lib/memrchr.c
+ lib/mkdtemp.c
+ lib/mkfifo.c
+ lib/mkfifoat.c
+ lib/mknod.c
+ lib/mknodat.c
+ lib/mktime-internal.h
+ lib/mktime.c
+ lib/modechange.c
+ lib/modechange.h
+ lib/msvc-inval.c
+ lib/msvc-inval.h
+ lib/msvc-nothrow.c
+ lib/msvc-nothrow.h
+ lib/nl_langinfo.c
+ lib/obstack.c
+ lib/obstack.h
+ lib/offtostr.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/opendir.c
+ lib/parse-datetime.h
+ lib/parse-datetime.y
+ 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
+ lib/quotearg.h
+ lib/raise.c
+ lib/rawmemchr.c
+ lib/rawmemchr.valgrind
+ lib/read.c
+ lib/readdir.c
+ lib/readlink.c
+ lib/readlinkat.c
+ lib/realloc.c
+ lib/ref-add.sin
+ lib/ref-del.sin
+ lib/regcomp.c
+ lib/regex.c
+ lib/regex.h
+ lib/regex_internal.c
+ lib/regex_internal.h
+ lib/regexec.c
+ lib/rename.c
+ lib/renameat.c
+ lib/rewinddir.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/save-cwd.c
+ lib/save-cwd.h
+ lib/savedir.c
+ lib/savedir.h
+ lib/setenv.c
+ lib/signal.in.h
+ lib/size_max.h
+ lib/sleep.c
+ lib/snprintf.c
+ lib/stat-macros.h
+ lib/stat-time.h
+ lib/stat.c
+ lib/stdalign.in.h
+ lib/stdarg.in.h
+ lib/stdbool.in.h
+ lib/stddef.in.h
+ lib/stdint.in.h
+ lib/stdio-impl.h
+ lib/stdio.in.h
+ lib/stdlib.in.h
+ lib/stpcpy.c
+ lib/strcasecmp.c
+ lib/strchrnul.c
+ lib/strchrnul.valgrind
+ lib/strdup.c
+ lib/streq.h
+ lib/strerror-override.c
+ lib/strerror-override.h
+ lib/strerror.c
+ lib/string.in.h
+ lib/strings.in.h
+ lib/stripslash.c
+ lib/strncasecmp.c
+ lib/strndup.c
+ lib/strnlen.c
+ lib/strnlen1.c
+ lib/strnlen1.h
+ lib/strtoimax.c
+ lib/strtol.c
+ lib/strtoul.c
+ lib/strtoull.c
+ lib/strtoumax.c
+ lib/symlink.c
+ lib/symlinkat.c
+ lib/sys_stat.in.h
+ lib/sys_time.in.h
+ lib/sys_types.in.h
+ lib/sysexits.in.h
+ lib/tempname.c
+ lib/tempname.h
+ lib/time.in.h
+ lib/time_r.c
+ lib/timespec.h
+ lib/uinttostr.c
+ lib/umaxtostr.c
+ lib/unistd--.h
+ lib/unistd-safer.h
+ lib/unistd.in.h
+ lib/unitypes.in.h
+ lib/uniwidth.in.h
+ lib/uniwidth/cjk.h
+ lib/uniwidth/width.c
+ lib/unlinkdir.c
+ lib/unlinkdir.h
+ lib/unlocked-io.h
+ lib/unsetenv.c
+ lib/utimens.c
+ lib/utimens.h
+ lib/utimensat.c
+ 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/wchar.in.h
+ lib/wcrtomb.c
+ lib/wctype.in.h
+ lib/wcwidth.c
+ lib/write.c
+ lib/xalloc-die.c
+ lib/xalloc-oversized.h
+ lib/xalloc.h
+ lib/xasprintf.c
+ lib/xgetcwd.c
+ lib/xgetcwd.h
+ lib/xmalloc.c
+ lib/xsize.h
+ lib/xstrndup.c
+ lib/xstrndup.h
+ lib/xstrtol-error.c
+ lib/xstrtol.c
+ lib/xstrtol.h
+ lib/xstrtoul.c
+ lib/xstrtoumax.c
+ lib/xvasprintf.c
+ lib/xvasprintf.h
+ m4/00gnulib.m4
+ m4/alloca.m4
+ m4/argp.m4
+ m4/backupfile.m4
+ m4/bison.m4
+ m4/btowc.m4
+ m4/canonicalize.m4
+ m4/chdir-long.m4
+ m4/chown.m4
+ m4/clock_time.m4
+ m4/close-stream.m4
+ m4/close.m4
+ m4/closedir.m4
+ m4/closeout.m4
+ m4/codeset.m4
+ m4/configmake.m4
+ m4/d-ino.m4
+ m4/dirent-safer.m4
+ m4/dirent_h.m4
+ m4/dirfd.m4
+ m4/dirname.m4
+ m4/double-slash-root.m4
+ m4/dup.m4
+ m4/dup2.m4
+ m4/eealloc.m4
+ m4/environ.m4
+ m4/errno_h.m4
+ m4/error.m4
+ m4/exponentd.m4
+ m4/extensions.m4
+ m4/fchdir.m4
+ m4/fcntl-o.m4
+ m4/fcntl.m4
+ m4/fcntl_h.m4
+ m4/fdopendir.m4
+ m4/fileblocks.m4
+ m4/filenamecat.m4
+ m4/float_h.m4
+ m4/fnmatch.m4
+ m4/fpending.m4
+ m4/fseek.m4
+ m4/fseeko.m4
+ m4/fstat.m4
+ m4/fstatat.m4
+ m4/futimens.m4
+ m4/getcwd-abort-bug.m4
+ m4/getcwd-path-max.m4
+ m4/getcwd.m4
+ m4/getdelim.m4
+ m4/getdtablesize.m4
+ m4/getline.m4
+ m4/getopt.m4
+ m4/getpagesize.m4
+ m4/gettext.m4
+ m4/gettime.m4
+ m4/gettimeofday.m4
+ m4/glibc2.m4
+ m4/glibc21.m4
+ m4/gnulib-common.m4
+ m4/human.m4
+ m4/iconv.m4
+ m4/include_next.m4
+ m4/inline.m4
+ m4/intdiv0.m4
+ m4/intl.m4
+ m4/intldir.m4
+ m4/intlmacosx.m4
+ m4/intmax.m4
+ m4/intmax_t.m4
+ m4/inttostr.m4
+ m4/inttypes-pri.m4
+ m4/inttypes.m4
+ m4/inttypes_h.m4
+ m4/iswblank.m4
+ m4/langinfo_h.m4
+ m4/largefile.m4
+ m4/lchown.m4
+ m4/lcmessage.m4
+ m4/lib-ld.m4
+ m4/lib-link.m4
+ m4/lib-prefix.m4
+ m4/libunistring-base.m4
+ m4/link-follow.m4
+ m4/link.m4
+ m4/linkat.m4
+ m4/localcharset.m4
+ m4/locale-fr.m4
+ m4/locale-ja.m4
+ m4/locale-zh.m4
+ m4/lock.m4
+ m4/longlong.m4
+ m4/lseek.m4
+ m4/lstat.m4
+ m4/malloc.m4
+ m4/malloca.m4
+ m4/math_h.m4
+ m4/mbchar.m4
+ m4/mbiter.m4
+ m4/mbrtowc.m4
+ m4/mbsinit.m4
+ m4/mbsrtowcs.m4
+ m4/mbstate_t.m4
+ m4/mbtowc.m4
+ m4/memchr.m4
+ m4/mempcpy.m4
+ m4/memrchr.m4
+ m4/mkdtemp.m4
+ m4/mkfifo.m4
+ m4/mkfifoat.m4
+ m4/mknod.m4
+ m4/mktime.m4
+ m4/mmap-anon.m4
+ m4/mode_t.m4
+ m4/modechange.m4
+ m4/msvc-inval.m4
+ m4/msvc-nothrow.m4
+ m4/multiarch.m4
+ m4/nl_langinfo.m4
+ m4/nls.m4
+ m4/nocrash.m4
+ m4/open.m4
+ m4/openat.m4
+ m4/opendir.m4
+ m4/parse-datetime.m4
+ m4/pathmax.m4
+ m4/po.m4
+ m4/printf-posix.m4
+ m4/printf.m4
+ m4/priv-set.m4
+ m4/progtest.m4
+ m4/quote.m4
+ m4/quotearg.m4
+ m4/raise.m4
+ m4/rawmemchr.m4
+ m4/read.m4
+ m4/readdir.m4
+ m4/readlink.m4
+ m4/readlinkat.m4
+ m4/realloc.m4
+ m4/regex.m4
+ m4/rename.m4
+ m4/renameat.m4
+ m4/rewinddir.m4
+ m4/rmdir.m4
+ m4/rpmatch.m4
+ m4/safe-read.m4
+ m4/safe-write.m4
+ m4/save-cwd.m4
+ m4/savedir.m4
+ m4/setenv.m4
+ m4/signal_h.m4
+ m4/size_max.m4
+ m4/sleep.m4
+ m4/snprintf.m4
+ m4/ssize_t.m4
+ m4/stat-time.m4
+ m4/stat.m4
+ m4/stdalign.m4
+ m4/stdarg.m4
+ m4/stdbool.m4
+ m4/stddef_h.m4
+ m4/stdint.m4
+ m4/stdint_h.m4
+ m4/stdio_h.m4
+ m4/stdlib_h.m4
+ m4/stpcpy.m4
+ m4/strcase.m4
+ m4/strchrnul.m4
+ m4/strdup.m4
+ m4/strerror.m4
+ m4/string_h.m4
+ m4/strings_h.m4
+ m4/strndup.m4
+ m4/strnlen.m4
+ m4/strtol.m4
+ m4/strtoul.m4
+ m4/strtoull.m4
+ m4/strtoumax.m4
+ m4/symlink.m4
+ m4/symlinkat.m4
+ m4/sys_socket_h.m4
+ m4/sys_stat_h.m4
+ m4/sys_time_h.m4
+ m4/sys_types_h.m4
+ m4/sysexits.m4
+ m4/tempname.m4
+ m4/threadlib.m4
+ m4/time_h.m4
+ m4/time_r.m4
+ m4/timespec.m4
+ m4/tm_gmtoff.m4
+ m4/uintmax_t.m4
+ m4/unistd-safer.m4
+ m4/unistd_h.m4
+ m4/unlinkdir.m4
+ m4/unlocked-io.m4
+ m4/utimbuf.m4
+ m4/utimens.m4
+ m4/utimensat.m4
+ m4/utimes.m4
+ m4/vasnprintf.m4
+ m4/vasprintf.m4
+ m4/version-etc.m4
+ m4/visibility.m4
+ m4/vsnprintf.m4
+ m4/warn-on-use.m4
+ m4/wchar_h.m4
+ m4/wchar_t.m4
+ m4/wcrtomb.m4
+ m4/wctype_h.m4
+ m4/wcwidth.m4
+ m4/wint_t.m4
+ m4/write.m4
+ m4/xalloc.m4
+ m4/xgetcwd.m4
+ m4/xsize.m4
+ m4/xstrndup.m4
+ m4/xstrtol.m4
+ m4/xvasprintf.m4
+])
diff --git a/m4/gnulib-tool.m4 b/m4/gnulib-tool.m4
new file mode 100644
index 00000000..a09ffc1d
--- /dev/null
+++ b/m4/gnulib-tool.m4
@@ -0,0 +1,57 @@
+# gnulib-tool.m4 serial 2
+dnl Copyright (C) 2004-2005, 2009-2012 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 The following macros need not be invoked explicitly.
+dnl Invoking them does nothing except to declare default arguments
+dnl for "gnulib-tool --import".
+
+dnl Usage: gl_LOCAL_DIR([DIR])
+AC_DEFUN([gl_LOCAL_DIR], [])
+
+dnl Usage: gl_MODULES([module1 module2 ...])
+AC_DEFUN([gl_MODULES], [])
+
+dnl Usage: gl_AVOID([module1 module2 ...])
+AC_DEFUN([gl_AVOID], [])
+
+dnl Usage: gl_SOURCE_BASE([DIR])
+AC_DEFUN([gl_SOURCE_BASE], [])
+
+dnl Usage: gl_M4_BASE([DIR])
+AC_DEFUN([gl_M4_BASE], [])
+
+dnl Usage: gl_PO_BASE([DIR])
+AC_DEFUN([gl_PO_BASE], [])
+
+dnl Usage: gl_DOC_BASE([DIR])
+AC_DEFUN([gl_DOC_BASE], [])
+
+dnl Usage: gl_TESTS_BASE([DIR])
+AC_DEFUN([gl_TESTS_BASE], [])
+
+dnl Usage: gl_WITH_TESTS
+AC_DEFUN([gl_WITH_TESTS], [])
+
+dnl Usage: gl_LIB([LIBNAME])
+AC_DEFUN([gl_LIB], [])
+
+dnl Usage: gl_LGPL or gl_LGPL([VERSION])
+AC_DEFUN([gl_LGPL], [])
+
+dnl Usage: gl_MAKEFILE_NAME([FILENAME])
+AC_DEFUN([gl_MAKEFILE_NAME], [])
+
+dnl Usage: gl_LIBTOOL
+AC_DEFUN([gl_LIBTOOL], [])
+
+dnl Usage: gl_MACRO_PREFIX([PREFIX])
+AC_DEFUN([gl_MACRO_PREFIX], [])
+
+dnl Usage: gl_PO_DOMAIN([DOMAIN])
+AC_DEFUN([gl_PO_DOMAIN], [])
+
+dnl Usage: gl_VC_FILES([BOOLEAN])
+AC_DEFUN([gl_VC_FILES], [])
diff --git a/m4/human.m4 b/m4/human.m4
new file mode 100644
index 00000000..7129255c
--- /dev/null
+++ b/m4/human.m4
@@ -0,0 +1,11 @@
+#serial 11
+dnl Copyright (C) 2002-2006, 2009-2012 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 Prerequisites of lib/human.c.
+AC_DEFUN([gl_HUMAN],
+[
+ :
+])
diff --git a/m4/iconv.m4 b/m4/iconv.m4
new file mode 100644
index 00000000..6a47236c
--- /dev/null
+++ b/m4/iconv.m4
@@ -0,0 +1,268 @@
+# iconv.m4 serial 18 (gettext-0.18.2)
+dnl Copyright (C) 2000-2002, 2007-2012 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 Bruno Haible.
+
+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+[
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([iconv])
+])
+
+AC_DEFUN([AM_ICONV_LINK],
+[
+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+ dnl those with the standalone portable GNU libiconv installed).
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+
+ dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed libiconv and not disabled its use
+ dnl via --without-libiconv-prefix, he wants to use it. The first
+ dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed.
+ am_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+
+ AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stdlib.h>
+#include <iconv.h>
+ ]],
+ [[iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);]])],
+ [am_cv_func_iconv=yes])
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stdlib.h>
+#include <iconv.h>
+ ]],
+ [[iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);]])],
+ [am_cv_lib_iconv=yes]
+ [am_cv_func_iconv=yes])
+ LIBS="$am_save_LIBS"
+ fi
+ ])
+ 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, AIX 6.1..7.1, HP-UX 11.11,
+ dnl Solaris 10.
+ am_save_LIBS="$LIBS"
+ if test $am_cv_lib_iconv = yes; then
+ LIBS="$LIBS $LIBICONV"
+ fi
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+ int result = 0;
+ /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+ returns. */
+ {
+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+ if (cd_utf8_to_88591 != (iconv_t)(-1))
+ {
+ static const char input[] = "\342\202\254"; /* EURO SIGN */
+ 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_utf8_to_88591,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res == 0)
+ result |= 1;
+ iconv_close (cd_utf8_to_88591);
+ }
+ }
+ /* 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)
+ result |= 2;
+ iconv_close (cd_ascii_to_88591);
+ }
+ }
+ /* Test against AIX 6.1..7.1 bug: Buffer overrun. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304";
+ static char buf[2] = { (char)0xDE, (char)0xAD };
+ const char *inptr = input;
+ size_t inbytesleft = 1;
+ char *outptr = buf;
+ size_t outbytesleft = 1;
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD)
+ result |= 4;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#if 0 /* This bug could be worked around by the caller. */
+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */
+ {
+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+ if (cd_88591_to_utf8 != (iconv_t)(-1))
+ {
+ static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+ char buf[50];
+ const char *inptr = input;
+ size_t inbytesleft = strlen (input);
+ char *outptr = buf;
+ size_t outbytesleft = sizeof (buf);
+ size_t res = iconv (cd_88591_to_utf8,
+ (char **) &inptr, &inbytesleft,
+ &outptr, &outbytesleft);
+ if ((int)res > 0)
+ result |= 8;
+ iconv_close (cd_88591_to_utf8);
+ }
+ }
+#endif
+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+ provided. */
+ if (/* Try standardized names. */
+ iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+ /* Try IRIX, OSF/1 names. */
+ && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+ /* Try AIX names. */
+ && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+ /* Try HP-UX names. */
+ && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+ result |= 16;
+ return result;
+}]])],
+ [am_cv_func_iconv_works=yes],
+ [am_cv_func_iconv_works=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+ *) am_cv_func_iconv_works="guessing yes" ;;
+ esac
+changequote([,])dnl
+ ])
+ LIBS="$am_save_LIBS"
+ ])
+ case "$am_cv_func_iconv_works" in
+ *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+ *) am_func_iconv=yes ;;
+ esac
+ else
+ am_func_iconv=no am_cv_lib_iconv=no
+ fi
+ if test "$am_func_iconv" = yes; then
+ AC_DEFINE([HAVE_ICONV], [1],
+ [Define if you have the iconv() function and it works.])
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ AC_MSG_CHECKING([how to link with libiconv])
+ AC_MSG_RESULT([$LIBICONV])
+ else
+ dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+ dnl either.
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+ AC_SUBST([LIBICONV])
+ AC_SUBST([LTLIBICONV])
+])
+
+dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to
+dnl avoid warnings like
+dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
+dnl This is tricky because of the way 'aclocal' is implemented:
+dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
+dnl Otherwise aclocal's initial scan pass would miss the macro definition.
+dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
+dnl Otherwise aclocal would emit many "Use of uninitialized value $1"
+dnl warnings.
+m4_define([gl_iconv_AC_DEFUN],
+ m4_version_prereq([2.64],
+ [[AC_DEFUN_ONCE(
+ [$1], [$2])]],
+ [m4_ifdef([gl_00GNULIB],
+ [[AC_DEFUN_ONCE(
+ [$1], [$2])]],
+ [[AC_DEFUN(
+ [$1], [$2])]])]))
+gl_iconv_AC_DEFUN([AM_ICONV],
+[
+ AM_ICONV_LINK
+ if test "$am_cv_func_iconv" = yes; then
+ AC_MSG_CHECKING([for iconv declaration])
+ AC_CACHE_VAL([am_cv_proto_iconv], [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+ ]],
+ [[]])],
+ [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([
+ $am_cv_proto_iconv])
+ AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
+ [Define as const if the declaration of iconv() needs const.])
+ dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
+ m4_ifdef([gl_ICONV_H_DEFAULTS],
+ [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
+ if test -n "$am_cv_proto_iconv_arg1"; then
+ ICONV_CONST="const"
+ fi
+ ])
+ fi
+])
diff --git a/m4/include_next.m4 b/m4/include_next.m4
new file mode 100644
index 00000000..a60a2614
--- /dev/null
+++ b/m4/include_next.m4
@@ -0,0 +1,270 @@
+# include_next.m4 serial 23
+dnl Copyright (C) 2006-2012 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 Paul Eggert and Derek Price.
+
+dnl Sets INCLUDE_NEXT and PRAGMA_SYSTEM_HEADER.
+dnl
+dnl INCLUDE_NEXT expands to 'include_next' if the compiler supports it, or to
+dnl 'include' otherwise.
+dnl
+dnl INCLUDE_NEXT_AS_FIRST_DIRECTIVE expands to 'include_next' if the compiler
+dnl supports it in the special case that it is the first include directive in
+dnl the given file, or to 'include' otherwise.
+dnl
+dnl PRAGMA_SYSTEM_HEADER can be used in files that contain #include_next,
+dnl so as to avoid GCC warnings when the gcc option -pedantic is used.
+dnl '#pragma GCC system_header' has the same effect as if the file was found
+dnl through the include search path specified with '-isystem' options (as
+dnl opposed to the search path specified with '-I' options). Namely, gcc
+dnl does not warn about some things, and on some systems (Solaris and Interix)
+dnl __STDC__ evaluates to 0 instead of to 1. The latter is an undesired side
+dnl effect; we are therefore careful to use 'defined __STDC__' or '1' instead
+dnl of plain '__STDC__'.
+dnl
+dnl PRAGMA_COLUMNS can be used in files that override system header files, so
+dnl as to avoid compilation errors on HP NonStop systems when the gnulib file
+dnl is included by a system header file that does a "#pragma COLUMNS 80" (which
+dnl has the effect of truncating the lines of that file and all files that it
+dnl includes to 80 columns) and the gnulib file has lines longer than 80
+dnl columns.
+
+AC_DEFUN([gl_INCLUDE_NEXT],
+[
+ AC_LANG_PREPROC_REQUIRE()
+ AC_CACHE_CHECK([whether the preprocessor supports include_next],
+ [gl_cv_have_include_next],
+ [rm -rf conftestd1a conftestd1b conftestd2
+ mkdir conftestd1a conftestd1b conftestd2
+ 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>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+ cat <<EOF > conftestd1b/conftest.h
+#define DEFINED_IN_CONFTESTD1
+#include <stdio.h>
+#include_next <conftest.h>
+#ifdef DEFINED_IN_CONFTESTD2
+int foo;
+#else
+#error "include_next doesn't work"
+#endif
+EOF
+ cat <<EOF > conftestd2/conftest.h
+#ifndef DEFINED_IN_CONFTESTD1
+#error "include_next test doesn't work"
+#endif
+#define DEFINED_IN_CONFTESTD2
+EOF
+ gl_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1b -Iconftestd2"
+dnl We intentionally avoid using AC_LANG_SOURCE here.
+ AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]],
+ [gl_cv_have_include_next=yes],
+ [CPPFLAGS="$gl_save_CPPFLAGS -Iconftestd1a -Iconftestd2"
+ AC_COMPILE_IFELSE([AC_LANG_DEFINES_PROVIDED[#include <conftest.h>]],
+ [gl_cv_have_include_next=buggy],
+ [gl_cv_have_include_next=no])
+ ])
+ CPPFLAGS="$gl_save_CPPFLAGS"
+ rm -rf conftestd1a conftestd1b conftestd2
+ ])
+ PRAGMA_SYSTEM_HEADER=
+ if test $gl_cv_have_include_next = yes; then
+ INCLUDE_NEXT=include_next
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+ if test -n "$GCC"; then
+ PRAGMA_SYSTEM_HEADER='#pragma GCC system_header'
+ fi
+ else
+ if test $gl_cv_have_include_next = buggy; then
+ INCLUDE_NEXT=include
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include_next
+ else
+ INCLUDE_NEXT=include
+ INCLUDE_NEXT_AS_FIRST_DIRECTIVE=include
+ fi
+ fi
+ AC_SUBST([INCLUDE_NEXT])
+ AC_SUBST([INCLUDE_NEXT_AS_FIRST_DIRECTIVE])
+ AC_SUBST([PRAGMA_SYSTEM_HEADER])
+ AC_CACHE_CHECK([whether system header files limit the line length],
+ [gl_cv_pragma_columns],
+ [dnl HP NonStop systems, which define __TANDEM, have this misfeature.
+ AC_EGREP_CPP([choke me],
+ [
+#ifdef __TANDEM
+choke me
+#endif
+ ],
+ [gl_cv_pragma_columns=yes],
+ [gl_cv_pragma_columns=no])
+ ])
+ if test $gl_cv_pragma_columns = yes; then
+ PRAGMA_COLUMNS="#pragma COLUMNS 10000"
+ else
+ PRAGMA_COLUMNS=
+ fi
+ AC_SUBST([PRAGMA_COLUMNS])
+])
+
+# gl_CHECK_NEXT_HEADERS(HEADER1 HEADER2 ...)
+# ------------------------------------------
+# 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@
+# or
+# #@INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ @NEXT_AS_FIRST_DIRECTIVE_FOO_H@
+# behaves (after sed substitution) as if it contained
+# #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".
+# Use '""', not '<>', so that the /// cannot be confused with a C99 comment.
+# Note: This macro assumes that the header file is not empty after
+# preprocessing, i.e. it does not only define preprocessor macros but also
+# provides some type/enum definitions or function/variable declarations.
+#
+# This macro also checks whether each header exists, by invoking
+# AC_CHECK_HEADERS_ONCE or AC_CHECK_HEADERS on each argument.
+AC_DEFUN([gl_CHECK_NEXT_HEADERS],
+[
+ gl_NEXT_HEADERS_INTERNAL([$1], [check])
+])
+
+# gl_NEXT_HEADERS(HEADER1 HEADER2 ...)
+# ------------------------------------
+# Like gl_CHECK_NEXT_HEADERS, except do not check whether the headers exist.
+# This is suitable for headers like <stddef.h> that are standardized by C89
+# and therefore can be assumed to exist.
+AC_DEFUN([gl_NEXT_HEADERS],
+[
+ gl_NEXT_HEADERS_INTERNAL([$1], [assume])
+])
+
+# The guts of gl_CHECK_NEXT_HEADERS and gl_NEXT_HEADERS.
+AC_DEFUN([gl_NEXT_HEADERS_INTERNAL],
+[
+ AC_REQUIRE([gl_INCLUDE_NEXT])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ m4_if([$2], [check],
+ [AC_CHECK_HEADERS_ONCE([$1])
+ ])
+
+dnl FIXME: gl_next_header and gl_header_exists must be used unquoted
+dnl until we can assume autoconf 2.64 or newer.
+ m4_foreach_w([gl_HEADER_NAME], [$1],
+ [AS_VAR_PUSHDEF([gl_next_header],
+ [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_defn([gl_HEADER_NAME])[>],
+ m4_defn([gl_next_header]),
+ [m4_if([$2], [check],
+ [AS_VAR_PUSHDEF([gl_header_exists],
+ [ac_cv_header_]m4_defn([gl_HEADER_NAME]))
+ if test AS_VAR_GET(gl_header_exists) = yes; then
+ AS_VAR_POPDEF([gl_header_exists])
+ ])
+ 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
+ dnl files that contain only a #include of other header files and
+ dnl no non-comment tokens of their own. This leads to a failure
+ dnl to detect the absolute name of <dirent.h>, <signal.h>,
+ dnl <poll.h> and others. The workaround is to force preservation
+ dnl of comments through option -C. This ensures all necessary
+ dnl #line directives 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
+changequote(,)
+ case "$host_os" in
+ mingw*)
+ dnl For the sake of native Windows compilers (excluding gcc),
+ dnl treat backslash as a directory separator, like /.
+ dnl Actually, these compilers use a double-backslash as
+ dnl directory separator, inside the
+ dnl # line "filename"
+ dnl directives.
+ gl_dirsep_regex='[/\\]'
+ ;;
+ *)
+ gl_dirsep_regex='\/'
+ ;;
+ esac
+ dnl A sed expression that turns a string into a basic regular
+ dnl expression, for use within "/.../".
+ gl_make_literal_regex_sed='s,[]$^\\.*/[],\\&,g'
+changequote([,])
+ gl_header_literal_regex=`echo ']m4_defn([gl_HEADER_NAME])[' \
+ | sed -e "$gl_make_literal_regex_sed"`
+ gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{
+ s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/
+changequote(,)dnl
+ s|^/[^/]|//&|
+changequote([,])dnl
+ p
+ q
+ }'
+ 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 "$gl_absolute_header_sed"`'"'])
+ m4_if([$2], [check],
+ [else
+ AS_VAR_SET(gl_next_header, ['<'gl_HEADER_NAME'>'])
+ fi
+ ])
+ ])
+ fi
+ AC_SUBST(
+ 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])])
+])
+
+# Autoconf 2.68 added warnings for our use of AC_COMPILE_IFELSE;
+# this fallback is safe for all earlier autoconf versions.
+m4_define_default([AC_LANG_DEFINES_PROVIDED])
diff --git a/m4/inline.m4 b/m4/inline.m4
new file mode 100644
index 00000000..6fa99724
--- /dev/null
+++ b/m4/inline.m4
@@ -0,0 +1,40 @@
+# inline.m4 serial 4
+dnl Copyright (C) 2006, 2009-2012 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 Test for the 'inline' keyword or equivalent.
+dnl Define 'inline' to a supported equivalent, or to nothing if not supported,
+dnl like AC_C_INLINE does. Also, define HAVE_INLINE if 'inline' or an
+dnl equivalent is effectively supported, i.e. if the compiler is likely to
+dnl drop unused 'static inline' functions.
+AC_DEFUN([gl_INLINE],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ AC_CACHE_CHECK([whether the compiler generally respects inline],
+ [gl_cv_c_inline_effective],
+ [if test $ac_cv_c_inline = no; then
+ gl_cv_c_inline_effective=no
+ else
+ dnl GCC defines __NO_INLINE__ if not optimizing or if -fno-inline is
+ dnl specified.
+ dnl Use AC_COMPILE_IFELSE here, not AC_EGREP_CPP, because the result
+ dnl depends on optimization flags, which can be in CFLAGS.
+ dnl (AC_EGREP_CPP looks only at the CPPFLAGS.)
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[]],
+ [[#ifdef __NO_INLINE__
+ #error "inline is not effective"
+ #endif]])],
+ [gl_cv_c_inline_effective=yes],
+ [gl_cv_c_inline_effective=no])
+ fi
+ ])
+ if test $gl_cv_c_inline_effective = yes; then
+ AC_DEFINE([HAVE_INLINE], [1],
+ [Define to 1 if the compiler supports one of the keywords
+ 'inline', '__inline__', '__inline' and effectively inlines
+ functions marked as such.])
+ fi
+])
diff --git a/m4/intl.m4 b/m4/intl.m4
new file mode 100644
index 00000000..d67e29c5
--- /dev/null
+++ b/m4/intl.m4
@@ -0,0 +1,300 @@
+# intl.m4 serial 17c
+dnl Copyright (C) 1995-2012 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
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2009.
+
+AC_PREREQ([2.53])
+
+dnl Checks for all prerequisites of the intl subdirectory,
+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
+dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
+AC_DEFUN([AM_INTL_SUBDIR],
+[
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ AC_REQUIRE([gt_GLIBC2])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([gl_VISIBILITY])dnl
+ AC_REQUIRE([gt_INTL_SUBDIR_CORE])dnl
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])dnl
+ AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
+ AC_REQUIRE([gt_TYPE_WINT_T])dnl
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gt_TYPE_INTMAX_T])
+ AC_REQUIRE([gt_PRINTF_POSIX])
+ AC_REQUIRE([gl_GLIBC21])dnl
+ AC_REQUIRE([gl_XSIZE])dnl
+ AC_REQUIRE([gl_FCNTL_O_FLAGS])dnl
+ AC_REQUIRE([gt_INTL_MACOSX])dnl
+
+ dnl Support for automake's --enable-silent-rules.
+ case "$enable_silent_rules" in
+ yes) INTL_DEFAULT_VERBOSITY=0;;
+ no) INTL_DEFAULT_VERBOSITY=1;;
+ *) INTL_DEFAULT_VERBOSITY=1;;
+ esac
+ AC_SUBST([INTL_DEFAULT_VERBOSITY])
+
+ AC_CHECK_TYPE([ptrdiff_t], ,
+ [AC_DEFINE([ptrdiff_t], [long],
+ [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+ ])
+ AC_CHECK_HEADERS([stddef.h stdlib.h string.h])
+ AC_CHECK_FUNCS([asprintf fwprintf newlocale putenv setenv setlocale \
+ 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).
+ gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
+ gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
+
+ dnl Use the *_unlocked functions only if they are declared.
+ dnl (because some of them were defined without being declared in Solaris
+ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+ dnl on Solaris 2.5.1 to run on Solaris 2.6).
+ dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
+ gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
+
+ case $gt_cv_func_printf_posix in
+ *yes) HAVE_POSIX_PRINTF=1 ;;
+ *) HAVE_POSIX_PRINTF=0 ;;
+ esac
+ AC_SUBST([HAVE_POSIX_PRINTF])
+ if test "$ac_cv_func_asprintf" = yes; then
+ HAVE_ASPRINTF=1
+ else
+ HAVE_ASPRINTF=0
+ fi
+ AC_SUBST([HAVE_ASPRINTF])
+ if test "$ac_cv_func_snprintf" = yes; then
+ HAVE_SNPRINTF=1
+ else
+ HAVE_SNPRINTF=0
+ fi
+ AC_SUBST([HAVE_SNPRINTF])
+ if test "$ac_cv_func_newlocale" = yes; then
+ HAVE_NEWLOCALE=1
+ else
+ HAVE_NEWLOCALE=0
+ fi
+ AC_SUBST([HAVE_NEWLOCALE])
+ if test "$ac_cv_func_wprintf" = yes; then
+ HAVE_WPRINTF=1
+ else
+ HAVE_WPRINTF=0
+ fi
+ AC_SUBST([HAVE_WPRINTF])
+
+ AM_LANGINFO_CODESET
+ gt_LC_MESSAGES
+
+ dnl Compilation on mingw and Cygwin needs special Makefile rules, because
+ dnl 1. when we install a shared library, we must arrange to export
+ dnl auxiliary pointer variables for every exported variable,
+ dnl 2. when we install a shared library and a static library simultaneously,
+ dnl the include file specifies __declspec(dllimport) and therefore we
+ dnl must arrange to define the auxiliary pointer variables for the
+ dnl exported variables _also_ in the static library.
+ if test "$enable_shared" = yes; then
+ case "$host_os" in
+ mingw* | cygwin*) is_woe32dll=yes ;;
+ *) is_woe32dll=no ;;
+ esac
+ else
+ is_woe32dll=no
+ fi
+ WOE32DLL=$is_woe32dll
+ AC_SUBST([WOE32DLL])
+
+ dnl On mingw and Cygwin, we can activate special Makefile rules which add
+ dnl version information to the shared libraries and executables.
+ case "$host_os" in
+ mingw* | cygwin*) is_woe32=yes ;;
+ *) is_woe32=no ;;
+ esac
+ WOE32=$is_woe32
+ AC_SUBST([WOE32])
+ if test $WOE32 = yes; then
+ dnl Check for a program that compiles Windows resource files.
+ AC_CHECK_TOOL([WINDRES], [windres])
+ fi
+
+ dnl Determine whether when creating a library, "-lc" should be passed to
+ dnl libtool or not. On many platforms, it is required for the libtool option
+ dnl -no-undefined to work. On HP-UX, however, the -lc - stored by libtool
+ dnl in the *.la files - makes it impossible to create multithreaded programs,
+ dnl because libtool also reorders the -lc to come before the -pthread, and
+ dnl this disables pthread_create() <http://docs.hp.com/en/1896/pthreads.html>.
+ case "$host_os" in
+ hpux*) LTLIBC="" ;;
+ *) LTLIBC="-lc" ;;
+ esac
+ AC_SUBST([LTLIBC])
+
+ dnl Rename some macros and functions used for locking.
+ AH_BOTTOM([
+#define __libc_lock_t gl_lock_t
+#define __libc_lock_define gl_lock_define
+#define __libc_lock_define_initialized gl_lock_define_initialized
+#define __libc_lock_init gl_lock_init
+#define __libc_lock_lock gl_lock_lock
+#define __libc_lock_unlock gl_lock_unlock
+#define __libc_lock_recursive_t gl_recursive_lock_t
+#define __libc_lock_define_recursive gl_recursive_lock_define
+#define __libc_lock_define_initialized_recursive gl_recursive_lock_define_initialized
+#define __libc_lock_init_recursive gl_recursive_lock_init
+#define __libc_lock_lock_recursive gl_recursive_lock_lock
+#define __libc_lock_unlock_recursive gl_recursive_lock_unlock
+#define glthread_in_use libintl_thread_in_use
+#define glthread_lock_init_func libintl_lock_init_func
+#define glthread_lock_lock_func libintl_lock_lock_func
+#define glthread_lock_unlock_func libintl_lock_unlock_func
+#define glthread_lock_destroy_func libintl_lock_destroy_func
+#define glthread_rwlock_init_multithreaded libintl_rwlock_init_multithreaded
+#define glthread_rwlock_init_func libintl_rwlock_init_func
+#define glthread_rwlock_rdlock_multithreaded libintl_rwlock_rdlock_multithreaded
+#define glthread_rwlock_rdlock_func libintl_rwlock_rdlock_func
+#define glthread_rwlock_wrlock_multithreaded libintl_rwlock_wrlock_multithreaded
+#define glthread_rwlock_wrlock_func libintl_rwlock_wrlock_func
+#define glthread_rwlock_unlock_multithreaded libintl_rwlock_unlock_multithreaded
+#define glthread_rwlock_unlock_func libintl_rwlock_unlock_func
+#define glthread_rwlock_destroy_multithreaded libintl_rwlock_destroy_multithreaded
+#define glthread_rwlock_destroy_func libintl_rwlock_destroy_func
+#define glthread_recursive_lock_init_multithreaded libintl_recursive_lock_init_multithreaded
+#define glthread_recursive_lock_init_func libintl_recursive_lock_init_func
+#define glthread_recursive_lock_lock_multithreaded libintl_recursive_lock_lock_multithreaded
+#define glthread_recursive_lock_lock_func libintl_recursive_lock_lock_func
+#define glthread_recursive_lock_unlock_multithreaded libintl_recursive_lock_unlock_multithreaded
+#define glthread_recursive_lock_unlock_func libintl_recursive_lock_unlock_func
+#define glthread_recursive_lock_destroy_multithreaded libintl_recursive_lock_destroy_multithreaded
+#define glthread_recursive_lock_destroy_func libintl_recursive_lock_destroy_func
+#define glthread_once_func libintl_once_func
+#define glthread_once_singlethreaded libintl_once_singlethreaded
+#define glthread_once_multithreaded libintl_once_multithreaded
+])
+])
+
+
+dnl Checks for the core files of the intl subdirectory:
+dnl dcigettext.c
+dnl eval-plural.h
+dnl explodename.c
+dnl finddomain.c
+dnl gettextP.h
+dnl gmo.h
+dnl hash-string.h hash-string.c
+dnl l10nflist.c
+dnl libgnuintl.h.in (except the *printf stuff)
+dnl loadinfo.h
+dnl loadmsgcat.c
+dnl localealias.c
+dnl log.c
+dnl plural-exp.h plural-exp.c
+dnl plural.y
+dnl Used by libglocale.
+AC_DEFUN([gt_INTL_SUBDIR_CORE],
+[
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+ AC_REQUIRE([gt_INTDIV0])dnl
+ AC_REQUIRE([gl_AC_TYPE_UINTMAX_T])dnl
+ AC_REQUIRE([gt_INTTYPES_PRI])dnl
+ AC_REQUIRE([gl_LOCK])dnl
+
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[int foo (int a) { a = __builtin_expect (a, 10); return a == 10 ? 0 : 1; }]],
+ [[]])],
+ [AC_DEFINE([HAVE_BUILTIN_EXPECT], [1],
+ [Define to 1 if the compiler understands __builtin_expect.])])
+
+ AC_CHECK_HEADERS([argz.h inttypes.h limits.h unistd.h sys/param.h])
+ AC_CHECK_FUNCS([getcwd getegid geteuid getgid getuid mempcpy munmap \
+ stpcpy strcasecmp strdup strtoul tsearch uselocale argz_count \
+ argz_stringify argz_next __fsetlocking])
+
+ dnl Use the *_unlocked functions only if they are declared.
+ dnl (because some of them were defined without being declared in Solaris
+ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+ dnl on Solaris 2.5.1 to run on Solaris 2.6).
+ dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
+ gt_CHECK_DECL([feof_unlocked], [#include <stdio.h>])
+ gt_CHECK_DECL([fgets_unlocked], [#include <stdio.h>])
+
+ AM_ICONV
+
+ dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+ dnl because plural.y uses bison specific features. It requires at least
+ dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+ dnl compile.
+ dnl bison is only needed for the maintainer (who touches plural.y). But in
+ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+ dnl the rule in general Makefile. Now, some people carelessly touch the
+ dnl files or have a broken "make" program, hence the plural.c rule will
+ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+ dnl present or too old.
+ AC_CHECK_PROGS([INTLBISON], [bison])
+ if test -z "$INTLBISON"; then
+ ac_verc_fail=yes
+ else
+ dnl Found it, now check the version.
+ AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+changequote([,])dnl
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ esac
+ AC_MSG_RESULT([$ac_prog_version])
+ fi
+ if test $ac_verc_fail = yes; then
+ INTLBISON=:
+ fi
+])
+
+
+dnl gt_CHECK_DECL(FUNC, INCLUDES)
+dnl Check whether a function is declared.
+AC_DEFUN([gt_CHECK_DECL],
+[
+ AC_CACHE_CHECK([whether $1 is declared], [ac_cv_have_decl_$1],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[$2]],
+ [[
+#ifndef $1
+ char *p = (char *) $1;
+#endif
+ ]])],
+ [ac_cv_have_decl_$1=yes],
+ [ac_cv_have_decl_$1=no])])
+ if test $ac_cv_have_decl_$1 = yes; then
+ gt_value=1
+ else
+ gt_value=0
+ fi
+ AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
+ [Define to 1 if you have the declaration of '$1', and to 0 if you don't.])
+])
diff --git a/m4/intldir.m4 b/m4/intldir.m4
new file mode 100644
index 00000000..b81de616
--- /dev/null
+++ b/m4/intldir.m4
@@ -0,0 +1,19 @@
+# intldir.m4 serial 2 (gettext-0.18)
+dnl Copyright (C) 2006, 2009-2012 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
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+AC_PREREQ([2.52])
+
+dnl Tells the AM_GNU_GETTEXT macro to consider an intl/ directory.
+AC_DEFUN([AM_GNU_GETTEXT_INTL_SUBDIR], [])
diff --git a/m4/intlmacosx.m4 b/m4/intlmacosx.m4
new file mode 100644
index 00000000..dc2ddfed
--- /dev/null
+++ b/m4/intlmacosx.m4
@@ -0,0 +1,56 @@
+# intlmacosx.m4 serial 4 (gettext-0.18.2)
+dnl Copyright (C) 2004-2012 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
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Checks for special options needed on MacOS X.
+dnl Defines INTL_MACOSX_LIBS.
+AC_DEFUN([gt_INTL_MACOSX],
+[
+ dnl Check for API introduced in MacOS X 10.2.
+ AC_CACHE_CHECK([for CFPreferencesCopyAppValue],
+ [gt_cv_func_CFPreferencesCopyAppValue],
+ [gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <CoreFoundation/CFPreferences.h>]],
+ [[CFPreferencesCopyAppValue(NULL, NULL)]])],
+ [gt_cv_func_CFPreferencesCopyAppValue=yes],
+ [gt_cv_func_CFPreferencesCopyAppValue=no])
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
+ AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1],
+ [Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in the CoreFoundation framework.])
+ fi
+ dnl Check for API introduced in MacOS X 10.3.
+ AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent],
+ [gt_save_LIBS="$LIBS"
+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <CoreFoundation/CFLocale.h>]],
+ [[CFLocaleCopyCurrent();]])],
+ [gt_cv_func_CFLocaleCopyCurrent=yes],
+ [gt_cv_func_CFLocaleCopyCurrent=no])
+ LIBS="$gt_save_LIBS"])
+ if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1],
+ [Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the CoreFoundation framework.])
+ fi
+ INTL_MACOSX_LIBS=
+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+ fi
+ AC_SUBST([INTL_MACOSX_LIBS])
+])
diff --git a/m4/intmax.m4 b/m4/intmax.m4
new file mode 100644
index 00000000..e3b251fd
--- /dev/null
+++ b/m4/intmax.m4
@@ -0,0 +1,36 @@
+# intmax.m4 serial 6 (gettext-0.18.2)
+dnl Copyright (C) 2002-2005, 2008-2012 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 Bruno Haible.
+dnl Test whether the system has the 'intmax_t' type, but don't attempt to
+dnl find a replacement if it is lacking.
+
+AC_DEFUN([gt_TYPE_INTMAX_T],
+[
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_CACHE_CHECK([for intmax_t], [gt_cv_c_intmax_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+ ]],
+ [[intmax_t x = -1;
+ return !x;]])],
+ [gt_cv_c_intmax_t=yes],
+ [gt_cv_c_intmax_t=no])])
+ if test $gt_cv_c_intmax_t = yes; then
+ AC_DEFINE([HAVE_INTMAX_T], [1],
+ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
+ fi
+])
diff --git a/m4/intmax_t.m4 b/m4/intmax_t.m4
new file mode 100644
index 00000000..c1a4a75d
--- /dev/null
+++ b/m4/intmax_t.m4
@@ -0,0 +1,67 @@
+# intmax_t.m4 serial 8
+dnl Copyright (C) 1997-2004, 2006-2007, 2009-2012 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 Paul Eggert.
+
+AC_PREREQ([2.53])
+
+# Define intmax_t to 'long' or 'long long'
+# if it is not already defined in <stdint.h> or <inttypes.h>.
+
+AC_DEFUN([gl_AC_TYPE_INTMAX_T],
+[
+ dnl For simplicity, we assume that a header file defines 'intmax_t' if and
+ dnl only if it defines 'uintmax_t'.
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ test $ac_cv_type_long_long_int = yes \
+ && ac_type='long long' \
+ || ac_type='long'
+ AC_DEFINE_UNQUOTED([intmax_t], [$ac_type],
+ [Define to long or long long if <inttypes.h> and <stdint.h> don't define.])
+ else
+ AC_DEFINE([HAVE_INTMAX_T], [1],
+ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
+ fi
+])
+
+dnl An alternative would be to explicitly test for 'intmax_t'.
+
+AC_DEFUN([gt_AC_TYPE_INTMAX_T],
+[
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_CACHE_CHECK([for intmax_t], [gt_cv_c_intmax_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <stddef.h>
+#include <stdlib.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+#include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+#include <inttypes.h>
+#endif
+ ]],
+ [[intmax_t x = -1; return !x;]])],
+ [gt_cv_c_intmax_t=yes],
+ [gt_cv_c_intmax_t=no])])
+ if test $gt_cv_c_intmax_t = yes; then
+ AC_DEFINE([HAVE_INTMAX_T], [1],
+ [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
+ else
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ test $ac_cv_type_long_long_int = yes \
+ && ac_type='long long' \
+ || ac_type='long'
+ AC_DEFINE_UNQUOTED([intmax_t], [$ac_type],
+ [Define to long or long long if <stdint.h> and <inttypes.h> don't define.])
+ fi
+])
diff --git a/m4/inttostr.m4 b/m4/inttostr.m4
new file mode 100644
index 00000000..850451fd
--- /dev/null
+++ b/m4/inttostr.m4
@@ -0,0 +1,32 @@
+#serial 8
+dnl Copyright (C) 2004-2006, 2009-2012 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_INTTOSTR],
+[
+ gl_PREREQ_INTTOSTR
+ gl_PREREQ_IMAXTOSTR
+ gl_PREREQ_OFFTOSTR
+ gl_PREREQ_UMAXTOSTR
+ gl_PREREQ_UINTTOSTR
+])
+
+# Prerequisites of lib/inttostr.h.
+AC_DEFUN([gl_PREREQ_INTTOSTR], [
+ AC_REQUIRE([AC_TYPE_OFF_T])
+ :
+])
+
+# Prerequisites of lib/imaxtostr.c.
+AC_DEFUN([gl_PREREQ_IMAXTOSTR], [:])
+
+# Prerequisites of lib/offtostr.c.
+AC_DEFUN([gl_PREREQ_OFFTOSTR], [:])
+
+# Prerequisites of lib/umaxtostr.c.
+AC_DEFUN([gl_PREREQ_UMAXTOSTR], [:])
+
+# Prerequisites of lib/uinttostr.c.
+AC_DEFUN([gl_PREREQ_UINTTOSTR], [:])
diff --git a/m4/inttypes-pri.m4 b/m4/inttypes-pri.m4
new file mode 100644
index 00000000..977206fa
--- /dev/null
+++ b/m4/inttypes-pri.m4
@@ -0,0 +1,42 @@
+# inttypes-pri.m4 serial 7 (gettext-0.18.2)
+dnl Copyright (C) 1997-2002, 2006, 2008-2012 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 Bruno Haible.
+
+AC_PREREQ([2.53])
+
+# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
+# macros to non-string values. This is the case on AIX 4.3.3.
+
+AC_DEFUN([gt_INTTYPES_PRI],
+[
+ AC_CHECK_HEADERS([inttypes.h])
+ if test $ac_cv_header_inttypes_h = yes; then
+ AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
+ [gt_cv_inttypes_pri_broken],
+ [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <inttypes.h>
+#ifdef PRId32
+char *p = PRId32;
+#endif
+ ]],
+ [[]])],
+ [gt_cv_inttypes_pri_broken=no],
+ [gt_cv_inttypes_pri_broken=yes])
+ ])
+ fi
+ if test "$gt_cv_inttypes_pri_broken" = yes; then
+ AC_DEFINE_UNQUOTED([PRI_MACROS_BROKEN], [1],
+ [Define if <inttypes.h> exists and defines unusable PRI* macros.])
+ PRI_MACROS_BROKEN=1
+ else
+ PRI_MACROS_BROKEN=0
+ fi
+ AC_SUBST([PRI_MACROS_BROKEN])
+])
diff --git a/m4/inttypes.m4 b/m4/inttypes.m4
new file mode 100644
index 00000000..eec4f41d
--- /dev/null
+++ b/m4/inttypes.m4
@@ -0,0 +1,157 @@
+# inttypes.m4 serial 26
+dnl Copyright (C) 2006-2012 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 Derek Price, Bruno Haible.
+dnl Test whether <inttypes.h> is supported or must be substituted.
+
+AC_DEFUN([gl_INTTYPES_H],
+[
+ AC_REQUIRE([gl_INTTYPES_INCOMPLETE])
+ gl_INTTYPES_PRI_SCN
+])
+
+AC_DEFUN_ONCE([gl_INTTYPES_INCOMPLETE],
+[
+ AC_REQUIRE([gl_STDINT_H])
+ AC_CHECK_HEADERS_ONCE([inttypes.h])
+
+ dnl Override <inttypes.h> always, so that the portability warnings work.
+ AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
+ gl_CHECK_NEXT_HEADERS([inttypes.h])
+
+ AC_REQUIRE([gl_MULTIARCH])
+
+ 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])
+])
+
+# Ensure that the PRI* and SCN* macros are defined appropriately.
+AC_DEFUN([gl_INTTYPES_PRI_SCN],
+[
+ AC_REQUIRE([gt_INTTYPES_PRI])
+
+ 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])
+
+ 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
+ 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
+])
+
+# Define the symbol $1 to be 1 if the condition is true, 0 otherwise.
+# If $2 is true, the condition is $3; otherwise if long long int is supported
+# approximate the condition with $4; otherwise, assume the condition is false.
+# The condition should work on all C99 platforms; the approximations should be
+# good enough to work on all practical pre-C99 platforms.
+# $2 is evaluated by the C preprocessor, $3 and $4 as compile-time constants.
+AC_DEFUN([gl_INTTYPES_CHECK_LONG_LONG_INT_CONDITION],
+[
+ AC_CACHE_CHECK([whether $3],
+ [gl_cv_test_$1],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[/* 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 $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
+ $1=1;
+ else
+ $1=0;
+ fi
+ AC_SUBST([$1])
+])
+
+AC_DEFUN([gl_INTTYPES_MODULE_INDICATOR],
+[
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+])
+
+AC_DEFUN([gl_INTTYPES_H_DEFAULTS],
+[
+ GNULIB_IMAXABS=0; AC_SUBST([GNULIB_IMAXABS])
+ GNULIB_IMAXDIV=0; AC_SUBST([GNULIB_IMAXDIV])
+ GNULIB_STRTOIMAX=0; AC_SUBST([GNULIB_STRTOIMAX])
+ GNULIB_STRTOUMAX=0; AC_SUBST([GNULIB_STRTOUMAX])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_DECL_IMAXABS=1; AC_SUBST([HAVE_DECL_IMAXABS])
+ HAVE_DECL_IMAXDIV=1; AC_SUBST([HAVE_DECL_IMAXDIV])
+ HAVE_DECL_STRTOIMAX=1; AC_SUBST([HAVE_DECL_STRTOIMAX])
+ HAVE_DECL_STRTOUMAX=1; AC_SUBST([HAVE_DECL_STRTOUMAX])
+ REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX])
+ INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX])
+ INT64_MAX_EQ_LONG_MAX='defined _LP64'; AC_SUBST([INT64_MAX_EQ_LONG_MAX])
+ PRI_MACROS_BROKEN=0; AC_SUBST([PRI_MACROS_BROKEN])
+ PRIPTR_PREFIX=__PRIPTR_PREFIX; AC_SUBST([PRIPTR_PREFIX])
+ UINT32_MAX_LT_UINTMAX_MAX=1; AC_SUBST([UINT32_MAX_LT_UINTMAX_MAX])
+ UINT64_MAX_EQ_ULONG_MAX='defined _LP64'; AC_SUBST([UINT64_MAX_EQ_ULONG_MAX])
+])
diff --git a/m4/inttypes_h.m4 b/m4/inttypes_h.m4
new file mode 100644
index 00000000..91c7bca6
--- /dev/null
+++ b/m4/inttypes_h.m4
@@ -0,0 +1,29 @@
+# inttypes_h.m4 serial 10
+dnl Copyright (C) 1997-2004, 2006, 2008-2012 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 Paul Eggert.
+
+# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([gl_AC_HEADER_INTTYPES_H],
+[
+ AC_CACHE_CHECK([for inttypes.h], [gl_cv_header_inttypes_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <sys/types.h>
+#include <inttypes.h>
+ ]],
+ [[uintmax_t i = (uintmax_t) -1; return !i;]])],
+ [gl_cv_header_inttypes_h=yes],
+ [gl_cv_header_inttypes_h=no])])
+ if test $gl_cv_header_inttypes_h = yes; then
+ AC_DEFINE_UNQUOTED([HAVE_INTTYPES_H_WITH_UINTMAX], [1],
+ [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
+ and declares uintmax_t. ])
+ fi
+])
diff --git a/m4/iswblank.m4 b/m4/iswblank.m4
new file mode 100644
index 00000000..8e63a034
--- /dev/null
+++ b/m4/iswblank.m4
@@ -0,0 +1,41 @@
+# iswblank.m4 serial 4
+dnl Copyright (C) 2011-2012 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_ISWBLANK],
+[
+ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
+ AC_REQUIRE([gl_WCTYPE_H])
+ dnl Persuade glibc <wctype.h> to declare iswblank().
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([iswblank])
+ AC_CHECK_DECLS([iswblank], , , [[
+/* 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 <wctype.h>
+]])
+ if test $ac_cv_func_iswblank = no; then
+ HAVE_ISWBLANK=0
+ if test $ac_cv_have_decl_iswblank = yes; then
+ REPLACE_ISWBLANK=1
+ fi
+ fi
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ dnl Redefine all of iswcntrl, ..., towupper in <wctype.h>.
+ :
+ else
+ if test $HAVE_ISWBLANK = 0 || test $REPLACE_ISWBLANK = 1; then
+ dnl Redefine only iswblank.
+ :
+ fi
+ fi
+
+])
diff --git a/m4/langinfo_h.m4 b/m4/langinfo_h.m4
new file mode 100644
index 00000000..b93fe706
--- /dev/null
+++ b/m4/langinfo_h.m4
@@ -0,0 +1,105 @@
+# langinfo_h.m4 serial 7
+dnl Copyright (C) 2009-2012 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])
+
+ dnl <langinfo.h> is always overridden, because of GNULIB_POSIXCHECK.
+ 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_T_FMT_AMPM=0
+ HAVE_LANGINFO_ERA=0
+ HAVE_LANGINFO_YESEXPR=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. T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3.
+ 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 T_FMT_AMPM],
+ [gl_cv_header_langinfo_t_fmt_ampm],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <langinfo.h>
+int a = T_FMT_AMPM;
+]])],
+ [gl_cv_header_langinfo_t_fmt_ampm=yes],
+ [gl_cv_header_langinfo_t_fmt_ampm=no])
+ ])
+ if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then
+ HAVE_LANGINFO_T_FMT_AMPM=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
+ AC_CACHE_CHECK([whether langinfo.h defines YESEXPR],
+ [gl_cv_header_langinfo_yesexpr],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <langinfo.h>
+int a = YESEXPR;
+]])],
+ [gl_cv_header_langinfo_yesexpr=yes],
+ [gl_cv_header_langinfo_yesexpr=no])
+ ])
+ if test $gl_cv_header_langinfo_yesexpr = yes; then
+ HAVE_LANGINFO_YESEXPR=1
+ fi
+ else
+ HAVE_LANGINFO_H=0
+ fi
+ AC_SUBST([HAVE_LANGINFO_H])
+ AC_SUBST([HAVE_LANGINFO_CODESET])
+ AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM])
+ AC_SUBST([HAVE_LANGINFO_ERA])
+ AC_SUBST([HAVE_LANGINFO_YESEXPR])
+
+ 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$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/largefile.m4 b/m4/largefile.m4
new file mode 100644
index 00000000..1369bbe5
--- /dev/null
+++ b/m4/largefile.m4
@@ -0,0 +1,104 @@
+# Enable large files on systems where this is not the default.
+
+# Copyright 1992-1996, 1998-2012 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.
+
+# The following implementation works around a problem in autoconf <= 2.68;
+# AC_SYS_LARGEFILE does not configure for large inodes on Mac OS X 10.5.
+m4_version_prereq([2.69], [] ,[
+
+# _AC_SYS_LARGEFILE_TEST_INCLUDES
+# -------------------------------
+m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES],
+[@%:@include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+@%:@define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1]];[]dnl
+])
+
+
+# _AC_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE,
+# CACHE-VAR,
+# DESCRIPTION,
+# PROLOGUE, [FUNCTION-BODY])
+# --------------------------------------------------------
+m4_define([_AC_SYS_LARGEFILE_MACRO_VALUE],
+[AC_CACHE_CHECK([for $1 value needed for large files], [$3],
+[while :; do
+ m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+ [AC_LANG_PROGRAM([$5], [$6])],
+ [$3=no; break])
+ m4_ifval([$6], [AC_LINK_IFELSE], [AC_COMPILE_IFELSE])(
+ [AC_LANG_PROGRAM([@%:@define $1 $2
+$5], [$6])],
+ [$3=$2; break])
+ $3=unknown
+ break
+done])
+case $$3 in #(
+ no | unknown) ;;
+ *) AC_DEFINE_UNQUOTED([$1], [$$3], [$4]);;
+esac
+rm -rf conftest*[]dnl
+])# _AC_SYS_LARGEFILE_MACRO_VALUE
+
+
+# AC_SYS_LARGEFILE
+# ----------------
+# By default, many hosts won't let programs access large files;
+# one must use special compiler options to get large-file access to work.
+# For more details about this brain damage please see:
+# http://www.unix-systems.org/version2/whatsnew/lfs20mar.html
+AC_DEFUN([AC_SYS_LARGEFILE],
+[AC_ARG_ENABLE(largefile,
+ [ --disable-largefile omit support for large files])
+if test "$enable_largefile" != no; then
+
+ AC_CACHE_CHECK([for special C compiler options needed for large files],
+ ac_cv_sys_largefile_CC,
+ [ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ AC_LANG_CONFTEST([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_INCLUDES])])
+ AC_COMPILE_IFELSE([], [break])
+ CC="$CC -n32"
+ AC_COMPILE_IFELSE([], [ac_cv_sys_largefile_CC=' -n32'; break])
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi])
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+ _AC_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64,
+ ac_cv_sys_file_offset_bits,
+ [Number of bits in a file offset, on hosts where this is settable.],
+ [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ _AC_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1,
+ ac_cv_sys_large_files,
+ [Define for large files, on AIX-style hosts.],
+ [_AC_SYS_LARGEFILE_TEST_INCLUDES])
+ fi
+
+ AH_VERBATIM([_DARWIN_USE_64_BIT_INODE],
+[/* Enable large inode numbers on Mac OS X. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif])
+fi
+])# AC_SYS_LARGEFILE
+
+])# m4_version_prereq 2.69
diff --git a/m4/lchown.m4 b/m4/lchown.m4
new file mode 100644
index 00000000..7ce578bc
--- /dev/null
+++ b/m4/lchown.m4
@@ -0,0 +1,28 @@
+# serial 16
+# Determine whether we need the lchown wrapper.
+
+dnl Copyright (C) 1998, 2001, 2003-2007, 2009-2012 Free Software Foundation,
+dnl Inc.
+
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Jim Meyering.
+dnl Provide lchown on systems that lack it, and work around bugs
+dnl on systems that have it.
+
+AC_DEFUN([gl_FUNC_LCHOWN],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_CHOWN])
+ AC_CHECK_FUNCS_ONCE([lchmod])
+ AC_CHECK_FUNCS([lchown])
+ if test $ac_cv_func_lchown = no; then
+ HAVE_LCHOWN=0
+ 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.
+ REPLACE_LCHOWN=1
+ fi
+])
diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4
new file mode 100644
index 00000000..4e1374d9
--- /dev/null
+++ b/m4/lib-ld.m4
@@ -0,0 +1,109 @@
+# lib-ld.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 1996-2003, 2009-2012 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 Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
+
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld],
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes ;;
+*)
+ acl_cv_prog_gnu_ld=no ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH([gnu-ld],
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]* | [A-Za-z]:[\\/]*)]
+ [re_direlt='/[^/][^/]*/\.\./']
+ # 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%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL([acl_cv_path_LD],
+[if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # 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" != yes && break ;;
+ esac
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT([$LD])
+else
+ AC_MSG_RESULT([no])
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
diff --git a/m4/lib-link.m4 b/m4/lib-link.m4
new file mode 100644
index 00000000..d11b4b43
--- /dev/null
+++ b/m4/lib-link.m4
@@ -0,0 +1,777 @@
+# lib-link.m4 serial 26 (gettext-0.18.2)
+dnl Copyright (C) 2001-2012 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 Bruno Haible.
+
+AC_PREREQ([2.54])
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+dnl Sets and AC_SUBSTs the LIB${NAME}_PREFIX variable to nonempty if libname
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ pushdef([Name],[m4_translit([$1],[./+-], [____])])
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+ ac_cv_lib[]Name[]_prefix="$LIB[]NAME[]_PREFIX"
+ ])
+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+ LIB[]NAME[]_PREFIX="$ac_cv_lib[]Name[]_prefix"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ AC_SUBST([LIB]NAME[_PREFIX])
+ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+ dnl results of this search when this library appears as a dependency.
+ HAVE_LIB[]NAME=yes
+ popdef([NAME])
+ popdef([Name])
+])
+
+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. 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
+dnl was found in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ pushdef([Name],[m4_translit([$1],[./+-], [____])])
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+
+ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed lib[]Name and not disabled its use
+ dnl via --without-lib[]Name-prefix, he wants to use it.
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+ ac_save_LIBS="$LIBS"
+ dnl If $LIB[]NAME contains some -l options, add it to the end of LIBS,
+ dnl because these -l options might require -L options that are present in
+ dnl LIBS. -l options benefit only from the -L options listed before it.
+ dnl Otherwise, add it to the front of LIBS, because it may be a static
+ dnl library that depends on another static library that is present in LIBS.
+ dnl Static libraries benefit only from the static libraries listed after
+ dnl it.
+ case " $LIB[]NAME" in
+ *" -l"*) LIBS="$LIBS $LIB[]NAME" ;;
+ *) LIBS="$LIB[]NAME $LIBS" ;;
+ esac
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[$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 lib][$1 library.])
+ AC_MSG_CHECKING([how to link with lib[]$1])
+ AC_MSG_RESULT([$LIB[]NAME])
+ else
+ HAVE_LIB[]NAME=no
+ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+ dnl $INC[]NAME either.
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ LIB[]NAME=
+ LTLIB[]NAME=
+ LIB[]NAME[]_PREFIX=
+ fi
+ AC_SUBST([HAVE_LIB]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ AC_SUBST([LIB]NAME[_PREFIX])
+ popdef([NAME])
+ popdef([Name])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl acl_libext,
+dnl acl_shlibext,
+dnl acl_libname_spec,
+dnl acl_library_names_spec,
+dnl acl_hardcode_libdir_flag_spec,
+dnl acl_hardcode_libdir_separator,
+dnl acl_hardcode_direct,
+dnl acl_hardcode_minus_L.
+AC_DEFUN([AC_LIB_RPATH],
+[
+ dnl Tell automake >= 1.10 to complain if config.rpath is missing.
+ m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
+ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
+ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
+ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+ AC_CACHE_CHECK([for shared library run path origin], [acl_cv_rpath], [
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+ ])
+ wl="$acl_cv_wl"
+ acl_libext="$acl_cv_libext"
+ acl_shlibext="$acl_cv_shlibext"
+ acl_libname_spec="$acl_cv_libname_spec"
+ acl_library_names_spec="$acl_cv_library_names_spec"
+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ acl_hardcode_direct="$acl_cv_hardcode_direct"
+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ dnl Determine whether the user wants rpath handling at all.
+ AC_ARG_ENABLE([rpath],
+ [ --disable-rpath do not hardcode runtime library paths],
+ :, enable_rpath=yes)
+])
+
+dnl AC_LIB_FROMPACKAGE(name, package)
+dnl declares that libname comes from the given package. The configure file
+dnl will then not have a --with-libname-prefix option but a
+dnl --with-package-prefix option. Several libraries can come from the same
+dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar
+dnl macro call that searches for libname.
+AC_DEFUN([AC_LIB_FROMPACKAGE],
+[
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ define([acl_frompackage_]NAME, [$2])
+ popdef([NAME])
+ pushdef([PACK],[$2])
+ pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ define([acl_libsinpackage_]PACKUP,
+ m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[, ]],)[lib$1])
+ popdef([PACKUP])
+ popdef([PACK])
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found
+dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])])
+ pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
+ pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
+ dnl Autoconf >= 2.61 supports dots in --with options.
+ pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_ARG_WITH(P_A_C_K[-prefix],
+[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib
+ --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ if test "$acl_libdirstem2" != "$acl_libdirstem" \
+ && ! test -d "$withval/$acl_libdirstem"; then
+ additional_libdir="$withval/$acl_libdirstem2"
+ fi
+ fi
+ fi
+])
+ dnl Search the library and its dependencies in $additional_libdir and
+ dnl $LDFLAGS. Using breadth-first-seach.
+ LIB[]NAME=
+ 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=
+ names_next_round='$1 $2'
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+ dnl or AC_LIB_HAVE_LINKFLAGS call.
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+ else
+ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+ dnl that this library doesn't exist. So just drop it.
+ :
+ fi
+ else
+ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+ dnl and the already constructed $LIBNAME/$LTLIBNAME.
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name
+ if test -n "$acl_shlibext"; then
+ shrext=".$acl_shlibext" # typically: shrext=.so
+ else
+ shrext=
+ fi
+ if test $use_additional = yes; then
+ dir="$additional_libdir"
+ dnl The same code as in the loop below:
+ dnl First look for a shared library.
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ dnl Then look for a static library.
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ dnl First look for a shared library.
+ if test -n "$acl_shlibext"; then
+ if test -f "$dir/$libname$shrext"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext"
+ else
+ if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+ ver=`(cd "$dir" && \
+ for f in "$libname$shrext".*; do echo "$f"; done \
+ | sed -e "s,^$libname$shrext\\\\.,," \
+ | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+ | sed 1q ) 2>/dev/null`
+ if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+ found_dir="$dir"
+ found_so="$dir/$libname$shrext.$ver"
+ fi
+ else
+ eval library_names=\"$acl_library_names_spec\"
+ for f in $library_names; do
+ if test -f "$dir/$f"; then
+ found_dir="$dir"
+ found_so="$dir/$f"
+ break
+ fi
+ done
+ fi
+ fi
+ fi
+ dnl Then look for a static library.
+ if test "X$found_dir" = "X"; then
+ if test -f "$dir/$libname.$acl_libext"; then
+ found_dir="$dir"
+ found_a="$dir/$libname.$acl_libext"
+ fi
+ fi
+ if test "X$found_dir" != "X"; then
+ if test -f "$dir/$libname.la"; then
+ found_la="$dir/$libname.la"
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ dnl Found the library.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ dnl Linking with a shared library. We attempt to hardcode its
+ dnl directory into the executable's runpath, unless it's the
+ dnl standard /usr/lib.
+ if test "$enable_rpath" = no \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+ || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+ dnl No hardcoding is needed.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ dnl The hardcoding into $LIBNAME is system dependent.
+ if test "$acl_hardcode_direct" = yes; then
+ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+ dnl resulting binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ dnl Rely on "-L$found_dir".
+ dnl But don't add it if it's already contained in the LDFLAGS
+ dnl or the already constructed $LIBNAME
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+ fi
+ if test "$acl_hardcode_minus_L" != no; then
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH
+ dnl here, because this doesn't fit in flags passed to the
+ dnl compiler. So give up. No hardcoding. This affects only
+ dnl very old systems.
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ dnl Linking with a static library.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+ else
+ dnl We shouldn't come here, but anyway it's good to have a
+ dnl fallback.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+ fi
+ fi
+ dnl Assume the include files are nearby.
+ additional_includedir=
+ case "$found_dir" in
+ */$acl_libdirstem | */$acl_libdirstem/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+ if test "$name" = '$1'; then
+ LIB[]NAME[]_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ */$acl_libdirstem2 | */$acl_libdirstem2/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+ if test "$name" = '$1'; then
+ LIB[]NAME[]_PREFIX="$basedir"
+ fi
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ dnl Potentially add $additional_includedir to $INCNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 3. if it's already present in $CPPFLAGS or the already
+ dnl constructed $INCNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INC[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $INCNAME.
+ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ dnl Look for dependencies.
+ if test -n "$found_la"; then
+ dnl Read the .la file. It defines the variables
+ dnl dlname, library_names, old_library, dependency_libs, current,
+ dnl age, revision, installed, dlopen, dlpreopen, libdir.
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ dnl We use only dependency_libs.
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 3. if it's already present in $LDFLAGS or the already
+ dnl constructed $LIBNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+ && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+ || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LIBNAME.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LTLIBNAME.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ dnl Handle this in the next round.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ dnl Handle this in the next round. Throw away the .la's
+ dnl directory; it is already contained in a preceding -L
+ dnl option.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ dnl Most likely an immediate library name.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ dnl Didn't find the library; assume it is in the system directories
+ dnl known to the linker and runtime loader. (All the system
+ dnl directories known to the linker should also be known to the
+ dnl runtime loader, otherwise the system is severely misconfigured.)
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$acl_hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user must
+ dnl pass all path elements in one option. We can arrange that for a
+ dnl single library, but not when more than one $LIBNAMEs are used.
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+ done
+ dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl.
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ dnl When using libtool, the option that works for both libraries and
+ dnl executables is -R. The -R options are cumulative.
+ for found_dir in $ltrpathdirs; do
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+ done
+ fi
+ popdef([P_A_C_K])
+ popdef([PACKLIBS])
+ popdef([PACKUP])
+ popdef([PACK])
+ popdef([NAME])
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+ for element in [$2]; do
+ haveit=
+ for x in $[$1]; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ [$1]="${[$1]}${[$1]:+ }$element"
+ fi
+ done
+])
+
+dnl For those cases where a variable contains several -L and -l options
+dnl referring to unknown libraries and directories, this macro determines the
+dnl necessary additional linker options for the runtime path.
+dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL])
+dnl sets LDADDVAR to linker options needed together with LIBSVALUE.
+dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed,
+dnl otherwise linking without libtool is assumed.
+AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
+[
+ AC_REQUIRE([AC_LIB_RPATH])
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ $1=
+ if test "$enable_rpath" != no; then
+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode directories into the resulting
+ dnl binary.
+ rpathdirs=
+ next=
+ for opt in $2; do
+ if test -n "$next"; then
+ dir="$next"
+ dnl No need to hardcode the standard /usr/lib.
+ if test "X$dir" != "X/usr/$acl_libdirstem" \
+ && test "X$dir" != "X/usr/$acl_libdirstem2"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ next=
+ else
+ case $opt in
+ -L) next=yes ;;
+ -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
+ dnl No need to hardcode the standard /usr/lib.
+ if test "X$dir" != "X/usr/$acl_libdirstem" \
+ && test "X$dir" != "X/usr/$acl_libdirstem2"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ next= ;;
+ *) next= ;;
+ esac
+ fi
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n ""$3""; then
+ dnl libtool is used for linking. Use -R options.
+ for dir in $rpathdirs; do
+ $1="${$1}${$1:+ }-R$dir"
+ done
+ else
+ dnl The linker is used for linking directly.
+ if test -n "$acl_hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user
+ dnl must pass all path elements in one option.
+ alldirs=
+ for dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ $1="$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$dir"
+ eval flag=\"$acl_hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ $1="${$1}${$1:+ }$flag"
+ done
+ fi
+ fi
+ fi
+ fi
+ fi
+ AC_SUBST([$1])
+])
diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4
new file mode 100644
index 00000000..007aa053
--- /dev/null
+++ b/m4/lib-prefix.m4
@@ -0,0 +1,224 @@
+# lib-prefix.m4 serial 7 (gettext-0.18)
+dnl Copyright (C) 2001-2005, 2008-2012 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 Bruno Haible.
+
+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
+dnl require excessive bracketing.
+ifdef([AC_HELP_STRING],
+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB])
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_LIB_ARG_WITH([lib-prefix],
+[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+ --without-lib-prefix don't search for libraries in includedir and libdir],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/$acl_libdirstem"
+ fi
+ fi
+])
+ if test $use_additional = yes; then
+ dnl Potentially add $additional_includedir to $CPPFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's already present in $CPPFLAGS,
+ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ for x in $CPPFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $CPPFLAGS.
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ dnl Potentially add $additional_libdir to $LDFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's already present in $LDFLAGS,
+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then
+ haveit=
+ for x in $LDFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LDFLAGS.
+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ $1
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_PREPARE_MULTILIB creates
+dnl - a variable acl_libdirstem, containing the basename of the libdir, either
+dnl "lib" or "lib64" or "lib/64",
+dnl - a variable acl_libdirstem2, as a secondary possible value for
+dnl acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or
+dnl "lib/amd64".
+AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
+[
+ dnl There is no formal standard regarding lib and lib64.
+ dnl On glibc systems, the current practice is that on a system supporting
+ dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
+ dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
+ dnl the compiler's default mode by looking at the compiler's library search
+ dnl path. If at least one of its elements ends in /lib64 or points to a
+ dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
+ dnl Otherwise we use the default, namely "lib".
+ dnl On Solaris systems, the current practice is that on a system supporting
+ dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
+ dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
+ dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ acl_libdirstem=lib
+ acl_libdirstem2=
+ case "$host_os" in
+ solaris*)
+ dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
+ dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>.
+ dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
+ dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
+ dnl symlink is missing, so we set acl_libdirstem2 too.
+ AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
+ [AC_EGREP_CPP([sixtyfour bits], [
+#ifdef _LP64
+sixtyfour bits
+#endif
+ ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
+ ])
+ if test $gl_cv_solaris_64bit = yes; then
+ acl_libdirstem=lib/64
+ case "$host_cpu" in
+ sparc*) acl_libdirstem2=lib/sparcv9 ;;
+ i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
+ esac
+ fi
+ ;;
+ *)
+ searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+ if test -n "$searchpath"; then
+ acl_save_IFS="${IFS= }"; IFS=":"
+ for searchdir in $searchpath; do
+ 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 ;;
+ esac ;;
+ esac
+ fi
+ done
+ IFS="$acl_save_IFS"
+ fi
+ ;;
+ esac
+ test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+])
diff --git a/m4/libunistring-base.m4 b/m4/libunistring-base.m4
new file mode 100644
index 00000000..d91c42b9
--- /dev/null
+++ b/m4/libunistring-base.m4
@@ -0,0 +1,141 @@
+# libunistring-base.m4 serial 5
+dnl Copyright (C) 2010-2012 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 Paolo Bonzini and Bruno Haible.
+
+dnl gl_LIBUNISTRING_MODULE([VERSION], [Module])
+dnl Declares that the source files of Module should be compiled, unless we
+dnl are linking with libunistring and its version is >= the given VERSION.
+dnl Defines an automake conditional LIBUNISTRING_COMPILE_$MODULE that is
+dnl true if the source files of Module should be compiled.
+dnl This macro is to be used for public libunistring API, not for
+dnl undocumented API.
+dnl
+dnl You have to bump the VERSION argument to the next projected version
+dnl number each time you make a change that affects the behaviour of the
+dnl functions defined in Module (even if the sources of Module itself do not
+dnl change).
+
+AC_DEFUN([gl_LIBUNISTRING_MODULE],
+[
+ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE])
+ dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from
+ dnl gl_LIBUNISTRING_CORE if that macro has been run.
+ AM_CONDITIONAL(AS_TR_CPP([LIBUNISTRING_COMPILE_$2]),
+ [gl_LIBUNISTRING_VERSION_CMP([$1])])
+])
+
+dnl gl_LIBUNISTRING_LIBHEADER([VERSION], [HeaderFile])
+dnl Declares that HeaderFile should be created, unless we are linking
+dnl with libunistring and its version is >= the given VERSION.
+dnl HeaderFile should be relative to the lib directory and end in '.h'.
+dnl Prepares for substituting LIBUNISTRING_HEADERFILE (to HeaderFile or empty).
+dnl
+dnl When we are linking with the already installed libunistring and its version
+dnl is < VERSION, we create HeaderFile here, because we may compile functions
+dnl (via gl_LIBUNISTRING_MODULE above) that are not contained in the installed
+dnl version.
+dnl When we are linking with the already installed libunistring and its version
+dnl is > VERSION, we don't create HeaderFile here: it could cause compilation
+dnl errors in other libunistring header files if some types are missing.
+dnl
+dnl You have to bump the VERSION argument to the next projected version
+dnl number each time you make a non-comment change to the HeaderFile.
+
+AC_DEFUN([gl_LIBUNISTRING_LIBHEADER],
+[
+ AC_REQUIRE([gl_LIBUNISTRING_LIB_PREPARE])
+ dnl Use the variables HAVE_LIBUNISTRING, LIBUNISTRING_VERSION from
+ dnl gl_LIBUNISTRING_CORE if that macro has been run.
+ if gl_LIBUNISTRING_VERSION_CMP([$1]); then
+ LIBUNISTRING_[]AS_TR_CPP([$2])='$2'
+ else
+ LIBUNISTRING_[]AS_TR_CPP([$2])=
+ fi
+ AC_SUBST([LIBUNISTRING_]AS_TR_CPP([$2]))
+])
+
+dnl Miscellaneous preparations/initializations.
+
+AC_DEFUN([gl_LIBUNISTRING_LIB_PREPARE],
+[
+ dnl Ensure that HAVE_LIBUNISTRING is fully determined at this point.
+ m4_ifdef([gl_LIBUNISTRING], [AC_REQUIRE([gl_LIBUNISTRING])])
+
+ AC_REQUIRE([AC_PROG_AWK])
+
+dnl Sed expressions to extract the parts of a version number.
+changequote(,)
+gl_libunistring_sed_extract_major='/^[0-9]/{s/^\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_minor='/^[0-9][0-9]*[.][0-9]/{s/^[0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+gl_libunistring_sed_extract_subminor='/^[0-9][0-9]*[.][0-9][0-9]*[.][0-9]/{s/^[0-9]*[.][0-9]*[.]\([0-9]*\).*/\1/p;q;}
+i\
+0
+q
+'
+changequote([,])
+
+ if test "$HAVE_LIBUNISTRING" = yes; then
+ LIBUNISTRING_VERSION_MAJOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_major"`
+ LIBUNISTRING_VERSION_MINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_minor"`
+ LIBUNISTRING_VERSION_SUBMINOR=`echo "$LIBUNISTRING_VERSION" | sed -n -e "$gl_libunistring_sed_extract_subminor"`
+ fi
+])
+
+dnl gl_LIBUNISTRING_VERSION_CMP([VERSION])
+dnl Expands to a shell statement that evaluates to true if LIBUNISTRING_VERSION
+dnl is less than the VERSION argument.
+AC_DEFUN([gl_LIBUNISTRING_VERSION_CMP],
+[ { test "$HAVE_LIBUNISTRING" != yes \
+ || {
+ dnl AS_LITERAL_IF exists and works fine since autoconf-2.59 at least.
+ AS_LITERAL_IF([$1],
+ [dnl This is the optimized variant, that assumes the argument is a literal:
+ m4_pushdef([requested_version_major],
+ [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^\([0-9]*\).*], [\1]), [])])
+ m4_pushdef([requested_version_minor],
+ [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.]\([0-9]*\).*], [\1]), [$1])])
+ m4_pushdef([requested_version_subminor],
+ [gl_LIBUNISTRING_ARG_OR_ZERO(m4_bpatsubst([$1], [^[0-9]*[.][0-9]*[.]\([0-9]*\).*], [\1]), [$1])])
+ test $LIBUNISTRING_VERSION_MAJOR -lt requested_version_major \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq requested_version_major \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt requested_version_minor \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq requested_version_minor \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt requested_version_subminor
+ }
+ }
+ }
+ m4_popdef([requested_version_subminor])
+ m4_popdef([requested_version_minor])
+ m4_popdef([requested_version_major])
+ ],
+ [dnl This is the unoptimized variant:
+ requested_version_major=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_major"`
+ requested_version_minor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_minor"`
+ requested_version_subminor=`echo '$1' | sed -n -e "$gl_libunistring_sed_extract_subminor"`
+ test $LIBUNISTRING_VERSION_MAJOR -lt $requested_version_major \
+ || { test $LIBUNISTRING_VERSION_MAJOR -eq $requested_version_major \
+ && { test $LIBUNISTRING_VERSION_MINOR -lt $requested_version_minor \
+ || { test $LIBUNISTRING_VERSION_MINOR -eq $requested_version_minor \
+ && test $LIBUNISTRING_VERSION_SUBMINOR -lt $requested_version_subminor
+ }
+ }
+ }
+ ])
+ }
+ }])
+
+dnl gl_LIBUNISTRING_ARG_OR_ZERO([ARG], [ORIG]) expands to ARG if it is not the
+dnl same as ORIG, otherwise to 0.
+m4_define([gl_LIBUNISTRING_ARG_OR_ZERO], [m4_if([$1], [$2], [0], [$1])])
diff --git a/m4/link-follow.m4 b/m4/link-follow.m4
new file mode 100644
index 00000000..0dc31887
--- /dev/null
+++ b/m4/link-follow.m4
@@ -0,0 +1,99 @@
+# serial 17
+dnl Run a program to determine whether link(2) follows symlinks.
+dnl Set LINK_FOLLOWS_SYMLINKS accordingly.
+
+# Copyright (C) 1999-2001, 2004-2006, 2009-2012 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 This macro can be used to emulate POSIX linkat. If
+dnl LINK_FOLLOWS_SYMLINKS is 0, link matches linkat(,0), and
+dnl linkat(,AT_SYMLINK_FOLLOW) requires a readlink. If it is 1,
+dnl link matches linkat(,AT_SYMLINK_FOLLOW), and there is no way
+dnl to do linkat(,0) on symlinks (on all other file types,
+dnl link() is sufficient). If it is -1, use a Solaris specific
+dnl runtime test. If it is -2, use a generic runtime test.
+AC_DEFUN([gl_FUNC_LINK_FOLLOWS_SYMLINK],
+[dnl
+ AC_CHECK_FUNCS_ONCE([readlink])
+ dnl Mingw lacks link, although gnulib provides a good replacement.
+ dnl However, it also lacks symlink, so there's nothing to test in
+ dnl the first place, and no reason to need to distinguish between
+ dnl linkat variants. So, we set LINK_FOLLOWS_SYMLINKS to 0.
+ gl_link_follows_symlinks=0 # assume GNU behavior
+ if test $ac_cv_func_readlink = yes; then
+ dnl Solaris has an __xpg4 variable in libc, and it determines the
+ dnl behaviour of link(): It dereferences a symlink if and only if
+ dnl __xpg4 != 0.
+ AC_CACHE_CHECK([for __xpg4], [gl_cv_have___xpg4],
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[extern int __xpg4;]],
+ [[return __xpg4;]])],
+ [gl_cv_have___xpg4=yes],
+ [gl_cv_have___xpg4=no])
+ ])
+ if test $gl_cv_have___xpg4 = yes; then
+ gl_link_follows_symlinks=-1
+ else
+ AC_CACHE_CHECK([whether link(2) dereferences a symlink],
+ [gl_cv_func_link_follows_symlink],
+ [
+ # Create a regular file.
+ echo > conftest.file
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+# include <sys/types.h>
+# include <sys/stat.h>
+# include <unistd.h>
+# include <stdlib.h>
+
+# define SAME_INODE(Stat_buf_1, Stat_buf_2) \
+ ((Stat_buf_1).st_ino == (Stat_buf_2).st_ino \
+ && (Stat_buf_1).st_dev == (Stat_buf_2).st_dev)
+
+ int
+ main ()
+ {
+ const char *file = "conftest.file";
+ const char *sym = "conftest.sym";
+ const char *hard = "conftest.hard";
+ struct stat sb_file, sb_hard;
+
+ /* Create a symlink to the regular file. */
+ if (symlink (file, sym))
+ return 2;
+
+ /* Create a hard link to that symlink. */
+ if (link (sym, hard))
+ return 3;
+
+ if (lstat (hard, &sb_hard))
+ return 4;
+ if (lstat (file, &sb_file))
+ return 5;
+
+ /* If the dev/inode of hard and file are the same, then
+ the link call followed the symlink. */
+ return SAME_INODE (sb_hard, sb_file) ? 1 : 0;
+ }
+ ]])],
+ [gl_cv_func_link_follows_symlink=no], dnl GNU behavior
+ [gl_cv_func_link_follows_symlink=yes], dnl Followed link/compile failed
+ [gl_cv_func_link_follows_symlink=unknown] dnl We're cross compiling.
+ )
+ rm -f conftest.file conftest.sym conftest.hard
+ ])
+ case $gl_cv_func_link_follows_symlink in
+ yes) gl_link_follows_symlinks=1 ;;
+ no) ;; # already defaulted to 0
+ *) gl_link_follows_symlinks=-2 ;;
+ esac
+ fi
+ fi
+ AC_DEFINE_UNQUOTED([LINK_FOLLOWS_SYMLINKS], [$gl_link_follows_symlinks],
+ [Define to 1 if 'link(2)' dereferences symbolic links, 0 if it
+ creates hard links to symlinks, -1 if it depends on the variable __xpg4,
+ and -2 if unknown.])
+])
diff --git a/m4/link.m4 b/m4/link.m4
new file mode 100644
index 00000000..e0dc7801
--- /dev/null
+++ b/m4/link.m4
@@ -0,0 +1,45 @@
+# link.m4 serial 7
+dnl Copyright (C) 2009-2012 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_LINK],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([link])
+ if test $ac_cv_func_link = no; then
+ HAVE_LINK=0
+ else
+ AC_CACHE_CHECK([whether link obeys POSIX],
+ [gl_cv_func_link_works],
+ [touch conftest.a
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.a conftest.lnk
+ fi
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>
+ ]],
+ [[int result = 0;
+ if (!link ("conftest.a", "conftest.b/"))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!link ("conftest.lnk/", "conftest.b"))
+ result |= 2;
+ if (rename ("conftest.a", "conftest.b"))
+ result |= 4;
+ if (!link ("conftest.b", "conftest.lnk"))
+ result |= 8;
+#endif
+ return result;
+ ]])],
+ [gl_cv_func_link_works=yes], [gl_cv_func_link_works=no],
+ [gl_cv_func_link_works="guessing no"])
+ rm -f conftest.a conftest.b conftest.lnk])
+ if test "$gl_cv_func_link_works" != yes; then
+ REPLACE_LINK=1
+ fi
+ fi
+])
diff --git a/m4/linkat.m4 b/m4/linkat.m4
new file mode 100644
index 00000000..b0b7d7bd
--- /dev/null
+++ b/m4/linkat.m4
@@ -0,0 +1,95 @@
+# serial 6
+# See if we need to provide linkat replacement.
+
+dnl Copyright (C) 2009-2012 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_LINKAT],
+[
+ AC_REQUIRE([gl_FUNC_OPENAT])
+ AC_REQUIRE([gl_FUNC_LINK_FOLLOWS_SYMLINK])
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CHECK_FUNCS_ONCE([linkat symlink])
+ AC_CHECK_HEADERS_ONCE([sys/param.h])
+ if test $ac_cv_func_linkat = no; then
+ HAVE_LINKAT=0
+ else
+ AC_CACHE_CHECK([whether linkat(,AT_SYMLINK_FOLLOW) works],
+ [gl_cv_func_linkat_follow],
+ [rm -rf conftest.f1 conftest.f2
+ touch conftest.f1
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <fcntl.h>
+#include <unistd.h>
+#ifdef __linux__
+/* Linux added linkat in 2.6.16, but did not add AT_SYMLINK_FOLLOW
+ until 2.6.18. Always replace linkat to support older kernels. */
+choke me
+#endif
+]], [return linkat (AT_FDCWD, "conftest.f1", AT_FDCWD, "conftest.f2",
+ AT_SYMLINK_FOLLOW);])],
+ [gl_cv_func_linkat_follow=yes],
+ [gl_cv_func_linkat_follow="need runtime check"])
+ rm -rf conftest.f1 conftest.f2])
+ AC_CACHE_CHECK([whether linkat handles trailing slash correctly],
+ [gl_cv_func_linkat_slash],
+ [rm -rf conftest.a conftest.b conftest.c conftest.d
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <stdio.h>
+ ]],
+ [[int result;
+ int fd;
+ /* Create a regular file. */
+ fd = open ("conftest.a", O_CREAT | O_EXCL | O_WRONLY, 0600);
+ if (fd < 0)
+ return 1;
+ if (write (fd, "hello", 5) < 5)
+ return 2;
+ if (close (fd) < 0)
+ return 3;
+ /* Test whether hard links are supported on the current
+ device. */
+ if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.b",
+ AT_SYMLINK_FOLLOW) < 0)
+ return 0;
+ result = 0;
+ /* Test whether a trailing "/" is treated like "/.". */
+ if (linkat (AT_FDCWD, "conftest.a/", AT_FDCWD, "conftest.c",
+ AT_SYMLINK_FOLLOW) == 0)
+ result |= 4;
+ if (linkat (AT_FDCWD, "conftest.a", AT_FDCWD, "conftest.d/",
+ AT_SYMLINK_FOLLOW) == 0)
+ result |= 8;
+ return result;
+ ]])],
+ [gl_cv_func_linkat_slash=yes],
+ [gl_cv_func_linkat_slash=no],
+ [# Guess yes on glibc systems, no otherwise.
+ case "$host_os" in
+ *-gnu*) gl_cv_func_linkat_slash="guessing yes";;
+ *) gl_cv_func_linkat_slash="guessing no";;
+ esac
+ ])
+ rm -rf conftest.a conftest.b conftest.c conftest.d])
+ case "$gl_cv_func_linkat_slash" in
+ *yes) gl_linkat_slash_bug=0 ;;
+ *) gl_linkat_slash_bug=1 ;;
+ esac
+ if test "$gl_cv_func_linkat_follow" != yes \
+ || test $gl_linkat_slash_bug = 1; then
+ REPLACE_LINKAT=1
+ AC_DEFINE_UNQUOTED([LINKAT_TRAILING_SLASH_BUG], [$gl_linkat_slash_bug],
+ [Define to 1 if linkat fails to recognize a trailing slash.])
+ fi
+ fi
+])
diff --git a/m4/localcharset.m4 b/m4/localcharset.m4
new file mode 100644
index 00000000..8010379b
--- /dev/null
+++ b/m4/localcharset.m4
@@ -0,0 +1,17 @@
+# localcharset.m4 serial 7
+dnl Copyright (C) 2002, 2004, 2006, 2009-2012 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_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.
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_GLIBC21])
+])
diff --git a/m4/locale-fr.m4 b/m4/locale-fr.m4
new file mode 100644
index 00000000..4cb14b5f
--- /dev/null
+++ b/m4/locale-fr.m4
@@ -0,0 +1,246 @@
+# locale-fr.m4 serial 14
+dnl Copyright (C) 2003, 2005-2012 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 Bruno Haible.
+
+dnl Determine the name of a french locale with traditional encoding.
+AC_DEFUN([gt_LOCALE_FR],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AM_LANGINFO_CODESET])
+ AC_CACHE_CHECK([for a traditional french locale], [gt_cv_locale_fr], [
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
+changequote(,)dnl
+#include <locale.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 () {
+ /* Check whether the given locale name is recognized by the system. */
+#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 the abbreviation of the second month, the second
+ character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is only
+ one byte long. 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) < 3 || buf[2] != 'v') return 1;
+ /* Check whether the decimal separator is a comma.
+ On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+ are nl_langinfo(RADIXCHAR) are both ".". */
+ if (localeconv () ->decimal_point[0] != ',') return 1;
+ return 0;
+}
+changequote([,])dnl
+ ])])
+ if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the native Windows locale name.
+ if (LC_ALL=French_France.1252 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=French_France.1252
+ else
+ # None found.
+ gt_cv_locale_fr=none
+ fi
+ ;;
+ *)
+ # 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 usual locale name.
+ if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=fr_FR.ISO-8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.ISO-8859-1
+ else
+ # Test for the AIX, OSF/1, FreeBSD, NetBSD, OpenBSD locale name.
+ if (LC_ALL=fr_FR.ISO8859-1 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.ISO8859-1
+ else
+ # Test for the HP-UX locale name.
+ if (LC_ALL=fr_FR.iso88591 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr_FR.iso88591
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=fr LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr=fr
+ else
+ # None found.
+ gt_cv_locale_fr=none
+ fi
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+ ])
+ LOCALE_FR=$gt_cv_locale_fr
+ AC_SUBST([LOCALE_FR])
+])
+
+dnl Determine the name of a french locale with UTF-8 encoding.
+AC_DEFUN([gt_LOCALE_FR_UTF8],
+[
+ AC_REQUIRE([AM_LANGINFO_CODESET])
+ AC_CACHE_CHECK([for a french Unicode locale], [gt_cv_locale_fr_utf8], [
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
+changequote(,)dnl
+#include <locale.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 () {
+ /* On BeOS and Haiku, locales are not implemented in libc. Rather, libintl
+ imitates locale dependent behaviour by looking at the environment
+ variables, and all locales use the UTF-8 encoding. */
+#if !(defined __BEOS__ || defined __HAIKU__)
+ /* Check whether the given locale name is recognized by the system. */
+# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+# else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+# endif
+ /* 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 the abbreviation of the second month, the second
+ character (should be U+00E9: LATIN SMALL LETTER E WITH ACUTE) is
+ two bytes long, with UTF-8 encoding. */
+ t.tm_year = 1975 - 1900; t.tm_mon = 2 - 1; t.tm_mday = 4;
+ if (strftime (buf, sizeof (buf), "%b", &t) < 4
+ || buf[1] != (char) 0xc3 || buf[2] != (char) 0xa9 || buf[3] != 'v')
+ return 1;
+#endif
+ /* Check whether the decimal separator is a comma.
+ On NetBSD 3.0 in the fr_FR.ISO8859-1 locale, localeconv()->decimal_point
+ are nl_langinfo(RADIXCHAR) are both ".". */
+ if (localeconv () ->decimal_point[0] != ',') return 1;
+ return 0;
+}
+changequote([,])dnl
+ ])])
+ if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the hypothetical native Windows locale name.
+ if (LC_ALL=French_France.65001 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=French_France.65001
+ else
+ # None found.
+ gt_cv_locale_fr_utf8=none
+ fi
+ ;;
+ *)
+ # 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 usual locale name.
+ if (LC_ALL=fr_FR LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr_FR
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=fr_FR.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr_FR.UTF-8
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=fr.UTF-8 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_fr_utf8=fr.UTF-8
+ else
+ # None found.
+ gt_cv_locale_fr_utf8=none
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+ ])
+ LOCALE_FR_UTF8=$gt_cv_locale_fr_utf8
+ AC_SUBST([LOCALE_FR_UTF8])
+])
diff --git a/m4/locale-ja.m4 b/m4/locale-ja.m4
new file mode 100644
index 00000000..b427f099
--- /dev/null
+++ b/m4/locale-ja.m4
@@ -0,0 +1,136 @@
+# locale-ja.m4 serial 10
+dnl Copyright (C) 2003, 2005-2012 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 Bruno Haible.
+
+dnl Determine the name of a japanese locale with EUC-JP encoding.
+AC_DEFUN([gt_LOCALE_JA],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AM_LANGINFO_CODESET])
+ AC_CACHE_CHECK([for a traditional japanese locale], [gt_cv_locale_ja], [
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
+changequote(,)dnl
+#include <locale.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 (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 MB_CUR_MAX is > 1. This excludes the dysfunctional locales
+ on Cygwin 1.5.x. */
+ if (MB_CUR_MAX == 1)
+ return 1;
+ /* Check whether in a month name, no byte in the range 0x80..0x9F occurs.
+ This excludes the UTF-8 encoding (except on MirBSD). */
+ 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;
+ return 0;
+}
+changequote([,])dnl
+ ])])
+ if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Note that on native Windows, the Japanese locale is
+ # Japanese_Japan.932, and CP932 is very different from EUC-JP, so we
+ # cannot use it here.
+ gt_cv_locale_ja=none
+ ;;
+ *)
+ # 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 AIX locale name.
+ if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP
+ else
+ # Test for the locale name with explicit encoding suffix.
+ if (LC_ALL=ja_JP.EUC-JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.EUC-JP
+ else
+ # Test for the HP-UX, OSF/1, NetBSD locale name.
+ if (LC_ALL=ja_JP.eucJP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.eucJP
+ else
+ # Test for the IRIX, FreeBSD locale name.
+ if (LC_ALL=ja_JP.EUC LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja_JP.EUC
+ else
+ # Test for the Solaris 7 locale name.
+ if (LC_ALL=ja LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_ja=ja
+ else
+ # Special test for NetBSD 1.6.
+ if test -f /usr/share/locale/ja_JP.eucJP/LC_CTYPE; then
+ gt_cv_locale_ja=ja_JP.eucJP
+ else
+ # None found.
+ gt_cv_locale_ja=none
+ fi
+ fi
+ fi
+ fi
+ fi
+ fi
+ ;;
+ esac
+ fi
+ rm -fr conftest*
+ ])
+ LOCALE_JA=$gt_cv_locale_ja
+ AC_SUBST([LOCALE_JA])
+])
diff --git a/m4/locale-zh.m4 b/m4/locale-zh.m4
new file mode 100644
index 00000000..de1a43b3
--- /dev/null
+++ b/m4/locale-zh.m4
@@ -0,0 +1,130 @@
+# locale-zh.m4 serial 10
+dnl Copyright (C) 2003, 2005-2012 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 Bruno Haible.
+
+dnl Determine the name of a chinese locale with GB18030 encoding.
+AC_DEFUN([gt_LOCALE_ZH_CN],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AM_LANGINFO_CODESET])
+ AC_CACHE_CHECK([for a transitional chinese locale], [gt_cv_locale_zh_CN], [
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
+changequote(,)dnl
+#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 (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
+ /* On native Windows, setlocale(category, "") looks at the system settings,
+ not at the environment variables. Also, when an encoding suffix such
+ as ".65001" or ".54936" is speficied, it succeeds but sets the LC_CTYPE
+ category of the locale to "C". */
+ if (setlocale (LC_ALL, getenv ("LC_ALL")) == NULL
+ || strcmp (setlocale (LC_CTYPE, NULL), "C") == 0)
+ return 1;
+#else
+ if (setlocale (LC_ALL, "") == NULL) return 1;
+#endif
+ /* 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.
+ On MirBSD 10, when an unsupported locale is specified, setlocale()
+ succeeds but then nl_langinfo(CODESET) is "UTF-8". */
+#if HAVE_LANGINFO_CODESET
+ {
+ const char *cs = nl_langinfo (CODESET);
+ if (cs[0] == '\0' || strcmp (cs, "ASCII") == 0 || strcmp (cs, "646") == 0
+ || strcmp (cs, "UTF-8") == 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 (except on MirBSD). */
+ 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;
+}
+changequote([,])dnl
+ ])])
+ if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
+ case "$host_os" in
+ # Handle native Windows specially, because there setlocale() interprets
+ # "ar" as "Arabic" or "Arabic_Saudi Arabia.1256",
+ # "fr" or "fra" as "French" or "French_France.1252",
+ # "ge"(!) or "deu"(!) as "German" or "German_Germany.1252",
+ # "ja" as "Japanese" or "Japanese_Japan.932",
+ # and similar.
+ mingw*)
+ # Test for the hypothetical native Windows locale name.
+ if (LC_ALL=Chinese_China.54936 LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; then
+ gt_cv_locale_zh_CN=Chinese_China.54936
+ else
+ # None found.
+ gt_cv_locale_zh_CN=none
+ fi
+ ;;
+ solaris2.8)
+ # On Solaris 8, the locales zh_CN.GB18030, zh_CN.GBK, zh.GBK are
+ # broken. One witness is the test case in gl_MBRTOWC_SANITYCHECK.
+ # Another witness is that "LC_ALL=zh_CN.GB18030 bash -c true" dumps core.
+ gt_cv_locale_zh_CN=none
+ ;;
+ *)
+ # 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
+ ;;
+ esac
+ 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*
+ ])
+ LOCALE_ZH_CN=$gt_cv_locale_zh_CN
+ AC_SUBST([LOCALE_ZH_CN])
+])
diff --git a/m4/longdouble.m4 b/m4/longdouble.m4
new file mode 100644
index 00000000..03e796a9
--- /dev/null
+++ b/m4/longdouble.m4
@@ -0,0 +1,33 @@
+# -*- buffer-read-only: t -*- vi: set ro:
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# longdouble.m4 serial 2 (gettext-0.15)
+dnl Copyright (C) 2002-2003, 2006 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 Bruno Haible.
+dnl Test whether the compiler supports the 'long double' type.
+dnl Prerequisite: AC_PROG_CC
+
+dnl This file is only needed in autoconf <= 2.59. Newer versions of autoconf
+dnl have a macro AC_TYPE_LONG_DOUBLE with identical semantics.
+
+AC_DEFUN([gt_TYPE_LONGDOUBLE],
+[
+ AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
+ [if test "$GCC" = yes; then
+ gt_cv_c_long_double=yes
+ else
+ AC_TRY_COMPILE([
+ /* The Stardent Vistra knows sizeof(long double), but does not support it. */
+ long double foo = 0.0;
+ /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
+ int array [2*(sizeof(long double) >= sizeof(double)) - 1];
+ ], ,
+ gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
+ fi])
+ if test $gt_cv_c_long_double = yes; then
+ AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
+ fi
+])
diff --git a/m4/longlong.m4 b/m4/longlong.m4
new file mode 100644
index 00000000..b9c65c75
--- /dev/null
+++ b/m4/longlong.m4
@@ -0,0 +1,113 @@
+# longlong.m4 serial 17
+dnl Copyright (C) 1999-2007, 2009-2012 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 Paul Eggert.
+
+# Define HAVE_LONG_LONG_INT if 'long long int' works.
+# This fixes a bug in Autoconf 2.61, and can be faster
+# than what's in Autoconf 2.62 through 2.68.
+
+# Note: If the type 'long long int' exists but is only 32 bits large
+# (as on some very old compilers), HAVE_LONG_LONG_INT will not be
+# defined. In this case you can treat 'long long int' like 'long int'.
+
+AC_DEFUN([AC_TYPE_LONG_LONG_INT],
+[
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+ AC_CACHE_CHECK([for long long int], [ac_cv_type_long_long_int],
+ [ac_cv_type_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ ac_cv_type_long_long_int=$ac_cv_type_unsigned_long_long_int
+ if test $ac_cv_type_long_long_int = yes; then
+ dnl Catch a bug in Tandem NonStop Kernel (OSS) cc -O circa 2004.
+ dnl If cross compiling, assume the bug is not 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=no],
+ [:])
+ fi
+ fi])
+ if test $ac_cv_type_long_long_int = yes; then
+ AC_DEFINE([HAVE_LONG_LONG_INT], [1],
+ [Define to 1 if the system has the type 'long long int'.])
+ fi
+])
+
+# Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works.
+# This fixes a bug in Autoconf 2.61, and can be faster
+# than what's in Autoconf 2.62 through 2.68.
+
+# Note: If the type 'unsigned long long int' exists but is only 32 bits
+# large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT
+# will not be defined. In this case you can treat 'unsigned long long int'
+# like 'unsigned long int'.
+
+AC_DEFUN([AC_TYPE_UNSIGNED_LONG_LONG_INT],
+[
+ AC_CACHE_CHECK([for unsigned long long int],
+ [ac_cv_type_unsigned_long_long_int],
+ [ac_cv_type_unsigned_long_long_int=yes
+ if test "x${ac_cv_prog_cc_c99-no}" = xno; then
+ AC_LINK_IFELSE(
+ [_AC_TYPE_LONG_LONG_SNIPPET],
+ [],
+ [ac_cv_type_unsigned_long_long_int=no])
+ fi])
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+ AC_DEFINE([HAVE_UNSIGNED_LONG_LONG_INT], [1],
+ [Define to 1 if the system has the type 'unsigned long long int'.])
+ fi
+])
+
+# Expands to a C program that can be used to test for simultaneous support
+# of 'long long' and 'unsigned long long'. We don't want to say that
+# 'long long' is available if 'unsigned long long' is not, or vice versa,
+# because too many programs rely on the symmetry between signed and unsigned
+# integer types (excluding 'bool').
+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. */
+ /* 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)];
+ typedef int b[(18446744073709551615ULL <= (unsigned long long int) -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));]])
+])
diff --git a/m4/lseek.m4 b/m4/lseek.m4
new file mode 100644
index 00000000..86db59ec
--- /dev/null
+++ b/m4/lseek.m4
@@ -0,0 +1,48 @@
+# lseek.m4 serial 8
+dnl Copyright (C) 2007, 2009-2012 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_LSEEK],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CACHE_CHECK([whether lseek detects pipes], [gl_cv_func_lseek_pipe],
+ [if test $cross_compiling = no; then
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/types.h> /* for off_t */
+#include <stdio.h> /* for SEEK_CUR */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#else /* on Windows with MSVC */
+# include <io.h>
+#endif
+]], [[
+ /* 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 \
+ && 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([AC_LANG_SOURCE([[
+#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])
+ fi])
+ if test $gl_cv_func_lseek_pipe = no; then
+ REPLACE_LSEEK=1
+ AC_DEFINE([LSEEK_PIPE_BROKEN], [1],
+ [Define to 1 if lseek does not detect pipes.])
+ fi
+])
diff --git a/m4/lstat.m4 b/m4/lstat.m4
new file mode 100644
index 00000000..b83858bd
--- /dev/null
+++ b/m4/lstat.m4
@@ -0,0 +1,70 @@
+# serial 24
+
+# Copyright (C) 1997-2001, 2003-2012 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 From Jim Meyering.
+
+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 is a no-op.
+ AC_CHECK_FUNCS_ONCE([lstat])
+ if test $ac_cv_func_lstat = yes; then
+ AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then
+ REPLACE_LSTAT=1
+ fi
+ else
+ HAVE_LSTAT=0
+ fi
+])
+
+# Prerequisites of lib/lstat.c.
+AC_DEFUN([gl_PREREQ_LSTAT],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ :
+])
+
+AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK],
+[
+ dnl We don't use AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK any more, because it
+ dnl is no longer maintained in Autoconf and because it invokes AC_LIBOBJ.
+ AC_CACHE_CHECK([whether lstat correctly handles trailing slash],
+ [gl_cv_func_lstat_dereferences_slashed_symlink],
+ [rm -f conftest.sym conftest.file
+ echo >conftest.file
+ if test "$as_ln_s" = "ln -s" && ln -s conftest.file conftest.sym; then
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [AC_INCLUDES_DEFAULT],
+ [[struct stat sbuf;
+ /* Linux will dereference the symlink and fail, as required by
+ POSIX. 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;
+ ]])],
+ [gl_cv_func_lstat_dereferences_slashed_symlink=yes],
+ [gl_cv_func_lstat_dereferences_slashed_symlink=no],
+ [# When cross-compiling, be pessimistic so we will end up using the
+ # replacement version of lstat that checks for trailing slashes and
+ # calls lstat a second time when necessary.
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+ ])
+ else
+ # If the 'ln -s' command failed, then we probably don't even
+ # have an lstat function.
+ gl_cv_func_lstat_dereferences_slashed_symlink=no
+ fi
+ rm -f conftest.sym conftest.file
+ ])
+ test $gl_cv_func_lstat_dereferences_slashed_symlink = yes &&
+ AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
+ [Define to 1 if 'lstat' dereferences a symlink specified
+ with a trailing slash.])
+])
diff --git a/m4/malloc.m4 b/m4/malloc.m4
new file mode 100644
index 00000000..d3c39f5d
--- /dev/null
+++ b/m4/malloc.m4
@@ -0,0 +1,60 @@
+# malloc.m4 serial 13
+dnl Copyright (C) 2007, 2009-2012 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_FUNC_MALLOC_GNU
+# ------------------
+# Test whether 'malloc (0)' is handled like in GNU libc, and replace malloc if
+# it is not.
+AC_DEFUN([gl_FUNC_MALLOC_GNU],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ dnl _AC_FUNC_MALLOC_IF is defined in Autoconf.
+ _AC_FUNC_MALLOC_IF(
+ [AC_DEFINE([HAVE_MALLOC_GNU], [1],
+ [Define to 1 if your system has a GNU libc compatible 'malloc'
+ function, and to 0 otherwise.])],
+ [AC_DEFINE([HAVE_MALLOC_GNU], [0])
+ REPLACE_MALLOC=1
+ ])
+])
+
+# gl_FUNC_MALLOC_POSIX
+# --------------------
+# Test whether 'malloc' is POSIX compliant (sets errno to ENOMEM when it
+# fails), and replace malloc if it is not.
+AC_DEFUN([gl_FUNC_MALLOC_POSIX],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+ if test $gl_cv_func_malloc_posix = yes; then
+ AC_DEFINE([HAVE_MALLOC_POSIX], [1],
+ [Define if the 'malloc' function is POSIX compliant.])
+ else
+ REPLACE_MALLOC=1
+ fi
+])
+
+# Test whether malloc, realloc, calloc are POSIX compliant,
+# Set gl_cv_func_malloc_posix to yes or no accordingly.
+AC_DEFUN([gl_CHECK_MALLOC_POSIX],
+[
+ AC_CACHE_CHECK([whether malloc, realloc, calloc are POSIX compliant],
+ [gl_cv_func_malloc_posix],
+ [
+ dnl It is too dangerous to try to allocate a large amount of memory:
+ dnl some systems go to their knees when you do that. So assume that
+ dnl all Unix implementations of the function are POSIX compliant.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[]],
+ [[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+ choke me
+ #endif
+ ]])],
+ [gl_cv_func_malloc_posix=yes],
+ [gl_cv_func_malloc_posix=no])
+ ])
+])
diff --git a/m4/malloca.m4 b/m4/malloca.m4
new file mode 100644
index 00000000..7841979f
--- /dev/null
+++ b/m4/malloca.m4
@@ -0,0 +1,15 @@
+# malloca.m4 serial 1
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2012 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_MALLOCA],
+[
+ dnl Use the autoconf tests for alloca(), but not the AC_SUBSTed variables
+ dnl @ALLOCA@ and @LTALLOCA@.
+ dnl gl_FUNC_ALLOCA dnl Already brought in by the module dependencies.
+ AC_REQUIRE([gl_EEMALLOC])
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+])
diff --git a/m4/math_h.m4 b/m4/math_h.m4
new file mode 100644
index 00000000..5d7d52bb
--- /dev/null
+++ b/m4/math_h.m4
@@ -0,0 +1,243 @@
+# math_h.m4 serial 56
+dnl Copyright (C) 2007-2012 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_MATH_H],
+[
+ AC_REQUIRE([gl_MATH_H_DEFAULTS])
+ gl_CHECK_NEXT_HEADERS([math.h])
+ AC_REQUIRE([AC_C_INLINE])
+
+ AC_CACHE_CHECK([whether NAN macro works], [gl_cv_header_math_nan_works],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
+ [[/* Solaris 10 has a broken definition of NAN. Other platforms
+ fail to provide NAN, or provide it only in C99 mode; this
+ test only needs to fail when NAN is provided but wrong. */
+ float f = 1.0f;
+#ifdef NAN
+ f = NAN;
+#endif
+ return f == 0;]])],
+ [gl_cv_header_math_nan_works=yes],
+ [gl_cv_header_math_nan_works=no])])
+ if test $gl_cv_header_math_nan_works = no; then
+ REPLACE_NAN=1
+ fi
+ AC_CACHE_CHECK([whether HUGE_VAL works], [gl_cv_header_math_huge_val_works],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[@%:@include <math.h>]],
+ [[/* Solaris 10 has a broken definition of HUGE_VAL. */
+ double d = HUGE_VAL;
+ return d == 0;]])],
+ [gl_cv_header_math_huge_val_works=yes],
+ [gl_cv_header_math_huge_val_works=no])])
+ if test $gl_cv_header_math_huge_val_works = no; then
+ REPLACE_HUGE_VAL=1
+ fi
+
+ 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 <math.h>]],
+ [acosf acosl asinf asinl atanf atanl
+ ceilf ceill copysign copysignf copysignl cosf cosl coshf
+ expf expl fabsf floorf floorl fma fmaf fmal fmodf frexpf frexpl
+ ldexpf ldexpl logb logf logl log10f modff powf
+ rint rintf rintl round roundf roundl sinf sinl sinhf sqrtf sqrtl
+ tanf tanl tanhf trunc truncf truncl])
+])
+
+AC_DEFUN([gl_MATH_MODULE_INDICATOR],
+[
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_MATH_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_MATH_H_DEFAULTS],
+[
+ GNULIB_ACOSF=0; AC_SUBST([GNULIB_ACOSF])
+ GNULIB_ACOSL=0; AC_SUBST([GNULIB_ACOSL])
+ GNULIB_ASINF=0; AC_SUBST([GNULIB_ASINF])
+ GNULIB_ASINL=0; AC_SUBST([GNULIB_ASINL])
+ GNULIB_ATANF=0; AC_SUBST([GNULIB_ATANF])
+ GNULIB_ATANL=0; AC_SUBST([GNULIB_ATANL])
+ GNULIB_ATAN2F=0; AC_SUBST([GNULIB_ATAN2F])
+ GNULIB_CEIL=0; AC_SUBST([GNULIB_CEIL])
+ GNULIB_CEILF=0; AC_SUBST([GNULIB_CEILF])
+ GNULIB_CEILL=0; AC_SUBST([GNULIB_CEILL])
+ GNULIB_COPYSIGN=0; AC_SUBST([GNULIB_COPYSIGN])
+ GNULIB_COPYSIGNF=0; AC_SUBST([GNULIB_COPYSIGNF])
+ GNULIB_COPYSIGNL=0; AC_SUBST([GNULIB_COPYSIGNL])
+ GNULIB_COSF=0; AC_SUBST([GNULIB_COSF])
+ GNULIB_COSL=0; AC_SUBST([GNULIB_COSL])
+ GNULIB_COSHF=0; AC_SUBST([GNULIB_COSHF])
+ GNULIB_EXPF=0; AC_SUBST([GNULIB_EXPF])
+ GNULIB_EXPL=0; AC_SUBST([GNULIB_EXPL])
+ GNULIB_FABSF=0; AC_SUBST([GNULIB_FABSF])
+ GNULIB_FLOOR=0; AC_SUBST([GNULIB_FLOOR])
+ GNULIB_FLOORF=0; AC_SUBST([GNULIB_FLOORF])
+ GNULIB_FLOORL=0; AC_SUBST([GNULIB_FLOORL])
+ GNULIB_FMA=0; AC_SUBST([GNULIB_FMA])
+ GNULIB_FMAF=0; AC_SUBST([GNULIB_FMAF])
+ GNULIB_FMAL=0; AC_SUBST([GNULIB_FMAL])
+ GNULIB_FMODF=0; AC_SUBST([GNULIB_FMODF])
+ GNULIB_FREXPF=0; AC_SUBST([GNULIB_FREXPF])
+ GNULIB_FREXP=0; AC_SUBST([GNULIB_FREXP])
+ GNULIB_FREXPL=0; AC_SUBST([GNULIB_FREXPL])
+ GNULIB_ISFINITE=0; AC_SUBST([GNULIB_ISFINITE])
+ GNULIB_ISINF=0; AC_SUBST([GNULIB_ISINF])
+ GNULIB_ISNAN=0; AC_SUBST([GNULIB_ISNAN])
+ GNULIB_ISNANF=0; AC_SUBST([GNULIB_ISNANF])
+ GNULIB_ISNAND=0; AC_SUBST([GNULIB_ISNAND])
+ GNULIB_ISNANL=0; AC_SUBST([GNULIB_ISNANL])
+ GNULIB_LDEXPF=0; AC_SUBST([GNULIB_LDEXPF])
+ GNULIB_LDEXPL=0; AC_SUBST([GNULIB_LDEXPL])
+ GNULIB_LOGB=0; AC_SUBST([GNULIB_LOGB])
+ GNULIB_LOGF=0; AC_SUBST([GNULIB_LOGF])
+ GNULIB_LOGL=0; AC_SUBST([GNULIB_LOGL])
+ GNULIB_LOG10F=0; AC_SUBST([GNULIB_LOG10F])
+ GNULIB_MODFF=0; AC_SUBST([GNULIB_MODFF])
+ GNULIB_POWF=0; AC_SUBST([GNULIB_POWF])
+ GNULIB_RINT=0; AC_SUBST([GNULIB_RINT])
+ GNULIB_RINTF=0; AC_SUBST([GNULIB_RINTF])
+ GNULIB_RINTL=0; AC_SUBST([GNULIB_RINTL])
+ GNULIB_ROUND=0; AC_SUBST([GNULIB_ROUND])
+ GNULIB_ROUNDF=0; AC_SUBST([GNULIB_ROUNDF])
+ GNULIB_ROUNDL=0; AC_SUBST([GNULIB_ROUNDL])
+ GNULIB_SIGNBIT=0; AC_SUBST([GNULIB_SIGNBIT])
+ GNULIB_SINF=0; AC_SUBST([GNULIB_SINF])
+ GNULIB_SINL=0; AC_SUBST([GNULIB_SINL])
+ GNULIB_SINHF=0; AC_SUBST([GNULIB_SINHF])
+ GNULIB_SQRTF=0; AC_SUBST([GNULIB_SQRTF])
+ GNULIB_SQRTL=0; AC_SUBST([GNULIB_SQRTL])
+ GNULIB_TANF=0; AC_SUBST([GNULIB_TANF])
+ GNULIB_TANL=0; AC_SUBST([GNULIB_TANL])
+ GNULIB_TANHF=0; AC_SUBST([GNULIB_TANHF])
+ GNULIB_TRUNC=0; AC_SUBST([GNULIB_TRUNC])
+ GNULIB_TRUNCF=0; AC_SUBST([GNULIB_TRUNCF])
+ GNULIB_TRUNCL=0; AC_SUBST([GNULIB_TRUNCL])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_ACOSF=1; AC_SUBST([HAVE_ACOSF])
+ HAVE_ACOSL=1; AC_SUBST([HAVE_ACOSL])
+ HAVE_ASINF=1; AC_SUBST([HAVE_ASINF])
+ HAVE_ASINL=1; AC_SUBST([HAVE_ASINL])
+ HAVE_ATANF=1; AC_SUBST([HAVE_ATANF])
+ HAVE_ATANL=1; AC_SUBST([HAVE_ATANL])
+ HAVE_ATAN2F=1; AC_SUBST([HAVE_ATAN2F])
+ HAVE_COPYSIGN=1; AC_SUBST([HAVE_COPYSIGN])
+ HAVE_COPYSIGNF=1; AC_SUBST([HAVE_COPYSIGNF])
+ HAVE_COPYSIGNL=1; AC_SUBST([HAVE_COPYSIGNL])
+ HAVE_COSF=1; AC_SUBST([HAVE_COSF])
+ HAVE_COSL=1; AC_SUBST([HAVE_COSL])
+ HAVE_COSHF=1; AC_SUBST([HAVE_COSHF])
+ HAVE_EXPF=1; AC_SUBST([HAVE_EXPF])
+ HAVE_EXPL=1; AC_SUBST([HAVE_EXPL])
+ HAVE_FABSF=1; AC_SUBST([HAVE_FABSF])
+ HAVE_FMA=1; AC_SUBST([HAVE_FMA])
+ HAVE_FMAF=1; AC_SUBST([HAVE_FMAF])
+ HAVE_FMAL=1; AC_SUBST([HAVE_FMAL])
+ HAVE_FMODF=1; AC_SUBST([HAVE_FMODF])
+ HAVE_FREXPF=1; AC_SUBST([HAVE_FREXPF])
+ HAVE_ISNANF=1; AC_SUBST([HAVE_ISNANF])
+ HAVE_ISNAND=1; AC_SUBST([HAVE_ISNAND])
+ HAVE_ISNANL=1; AC_SUBST([HAVE_ISNANL])
+ HAVE_LDEXPF=1; AC_SUBST([HAVE_LDEXPF])
+ HAVE_LOGF=1; AC_SUBST([HAVE_LOGF])
+ HAVE_LOGL=1; AC_SUBST([HAVE_LOGL])
+ HAVE_LOG10F=1; AC_SUBST([HAVE_LOG10F])
+ HAVE_MODFF=1; AC_SUBST([HAVE_MODFF])
+ HAVE_POWF=1; AC_SUBST([HAVE_POWF])
+ HAVE_RINT=1; AC_SUBST([HAVE_RINT])
+ HAVE_RINTF=1; AC_SUBST([HAVE_RINTF])
+ HAVE_RINTL=1; AC_SUBST([HAVE_RINTL])
+ HAVE_SINF=1; AC_SUBST([HAVE_SINF])
+ HAVE_SINL=1; AC_SUBST([HAVE_SINL])
+ HAVE_SINHF=1; AC_SUBST([HAVE_SINHF])
+ HAVE_SQRTF=1; AC_SUBST([HAVE_SQRTF])
+ HAVE_SQRTL=1; AC_SUBST([HAVE_SQRTL])
+ HAVE_TANF=1; AC_SUBST([HAVE_TANF])
+ HAVE_TANL=1; AC_SUBST([HAVE_TANL])
+ HAVE_TANHF=1; AC_SUBST([HAVE_TANHF])
+ HAVE_DECL_ACOSL=1; AC_SUBST([HAVE_DECL_ACOSL])
+ HAVE_DECL_ASINL=1; AC_SUBST([HAVE_DECL_ASINL])
+ HAVE_DECL_ATANL=1; AC_SUBST([HAVE_DECL_ATANL])
+ HAVE_DECL_CEILF=1; AC_SUBST([HAVE_DECL_CEILF])
+ HAVE_DECL_CEILL=1; AC_SUBST([HAVE_DECL_CEILL])
+ HAVE_DECL_COSL=1; AC_SUBST([HAVE_DECL_COSL])
+ HAVE_DECL_EXPL=1; AC_SUBST([HAVE_DECL_EXPL])
+ HAVE_DECL_FLOORF=1; AC_SUBST([HAVE_DECL_FLOORF])
+ HAVE_DECL_FLOORL=1; AC_SUBST([HAVE_DECL_FLOORL])
+ HAVE_DECL_FREXPL=1; AC_SUBST([HAVE_DECL_FREXPL])
+ HAVE_DECL_LDEXPL=1; AC_SUBST([HAVE_DECL_LDEXPL])
+ HAVE_DECL_LOGB=1; AC_SUBST([HAVE_DECL_LOGB])
+ HAVE_DECL_LOGL=1; AC_SUBST([HAVE_DECL_LOGL])
+ HAVE_DECL_ROUND=1; AC_SUBST([HAVE_DECL_ROUND])
+ HAVE_DECL_ROUNDF=1; AC_SUBST([HAVE_DECL_ROUNDF])
+ HAVE_DECL_ROUNDL=1; AC_SUBST([HAVE_DECL_ROUNDL])
+ HAVE_DECL_SINL=1; AC_SUBST([HAVE_DECL_SINL])
+ HAVE_DECL_SQRTL=1; AC_SUBST([HAVE_DECL_SQRTL])
+ HAVE_DECL_TANL=1; AC_SUBST([HAVE_DECL_TANL])
+ HAVE_DECL_TRUNC=1; AC_SUBST([HAVE_DECL_TRUNC])
+ HAVE_DECL_TRUNCF=1; AC_SUBST([HAVE_DECL_TRUNCF])
+ HAVE_DECL_TRUNCL=1; AC_SUBST([HAVE_DECL_TRUNCL])
+ REPLACE_CEIL=0; AC_SUBST([REPLACE_CEIL])
+ REPLACE_CEILF=0; AC_SUBST([REPLACE_CEILF])
+ REPLACE_CEILL=0; AC_SUBST([REPLACE_CEILL])
+ REPLACE_FLOOR=0; AC_SUBST([REPLACE_FLOOR])
+ REPLACE_FLOORF=0; AC_SUBST([REPLACE_FLOORF])
+ REPLACE_FLOORL=0; AC_SUBST([REPLACE_FLOORL])
+ REPLACE_FMA=0; AC_SUBST([REPLACE_FMA])
+ REPLACE_FMAF=0; AC_SUBST([REPLACE_FMAF])
+ REPLACE_FMAL=0; AC_SUBST([REPLACE_FMAL])
+ REPLACE_FREXPF=0; AC_SUBST([REPLACE_FREXPF])
+ REPLACE_FREXP=0; AC_SUBST([REPLACE_FREXP])
+ REPLACE_FREXPL=0; AC_SUBST([REPLACE_FREXPL])
+ REPLACE_HUGE_VAL=0; AC_SUBST([REPLACE_HUGE_VAL])
+ REPLACE_ISFINITE=0; AC_SUBST([REPLACE_ISFINITE])
+ REPLACE_ISINF=0; AC_SUBST([REPLACE_ISINF])
+ REPLACE_ISNAN=0; AC_SUBST([REPLACE_ISNAN])
+ REPLACE_LDEXPL=0; AC_SUBST([REPLACE_LDEXPL])
+ REPLACE_NAN=0; AC_SUBST([REPLACE_NAN])
+ REPLACE_ROUND=0; AC_SUBST([REPLACE_ROUND])
+ REPLACE_ROUNDF=0; AC_SUBST([REPLACE_ROUNDF])
+ REPLACE_ROUNDL=0; AC_SUBST([REPLACE_ROUNDL])
+ REPLACE_SIGNBIT=0; AC_SUBST([REPLACE_SIGNBIT])
+ REPLACE_SIGNBIT_USING_GCC=0; AC_SUBST([REPLACE_SIGNBIT_USING_GCC])
+ REPLACE_TRUNC=0; AC_SUBST([REPLACE_TRUNC])
+ REPLACE_TRUNCF=0; AC_SUBST([REPLACE_TRUNCF])
+ REPLACE_TRUNCL=0; AC_SUBST([REPLACE_TRUNCL])
+])
+
+# gl_LONG_DOUBLE_VS_DOUBLE
+# determines whether 'long double' and 'double' have the same representation.
+# Sets variable HAVE_SAME_LONG_DOUBLE_AS_DOUBLE to 0 or 1, and defines
+# HAVE_SAME_LONG_DOUBLE_AS_DOUBLE accordingly.
+# The currently known platforms where this is the case are:
+# Linux/HPPA, Minix 3.1.8, AIX 5, AIX 6 and 7 with xlc, MSVC 9.
+AC_DEFUN([gl_LONG_DOUBLE_VS_DOUBLE],
+[
+ AC_CACHE_CHECK([whether long double and double are the same],
+ [gl_cv_long_double_equals_double],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <float.h>]],
+ [[typedef int check[sizeof (long double) == sizeof (double)
+ && LDBL_MANT_DIG == DBL_MANT_DIG
+ && LDBL_MAX_EXP == DBL_MAX_EXP
+ && LDBL_MIN_EXP == DBL_MIN_EXP
+ ? 1 : -1];
+ ]])],
+ [gl_cv_long_double_equals_double=yes],
+ [gl_cv_long_double_equals_double=no])
+ ])
+ if test $gl_cv_long_double_equals_double = yes; then
+ AC_DEFINE([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE], [1],
+ [Define to 1 if 'long double' and 'double' have the same representation.])
+ HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=1
+ else
+ HAVE_SAME_LONG_DOUBLE_AS_DOUBLE=0
+ fi
+ AC_SUBST([HAVE_SAME_LONG_DOUBLE_AS_DOUBLE])
+])
diff --git a/m4/mbchar.m4 b/m4/mbchar.m4
new file mode 100644
index 00000000..77af4b4a
--- /dev/null
+++ b/m4/mbchar.m4
@@ -0,0 +1,14 @@
+# mbchar.m4 serial 8
+dnl Copyright (C) 2005-2007, 2009-2012 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 autoconf tests required for use of mbchar.m4
+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
new file mode 100644
index 00000000..42e05b82
--- /dev/null
+++ b/m4/mbiter.m4
@@ -0,0 +1,15 @@
+# mbiter.m4 serial 6
+dnl Copyright (C) 2005, 2008-2012 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 autoconf tests required for use of mbiter.h
+dnl From Bruno Haible.
+
+AC_DEFUN([gl_MBITER],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ :
+])
diff --git a/m4/mbrtowc.m4 b/m4/mbrtowc.m4
new file mode 100644
index 00000000..8f829c8e
--- /dev/null
+++ b/m4/mbrtowc.m4
@@ -0,0 +1,572 @@
+# mbrtowc.m4 serial 25
+dnl Copyright (C) 2001-2002, 2004-2005, 2008-2012 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_MBRTOWC],
+[
+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ gl_MBSTATE_T_BROKEN
+
+ AC_CHECK_FUNCS_ONCE([mbrtowc])
+ if test $ac_cv_func_mbrtowc = no; then
+ HAVE_MBRTOWC=0
+ AC_CHECK_DECLS([mbrtowc],,, [[
+/* 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>
+]])
+ if test $ac_cv_have_decl_mbrtowc = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares mbrtowc() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_MBRTOWC=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBRTOWC=1
+ else
+ gl_MBRTOWC_NULL_ARG1
+ gl_MBRTOWC_NULL_ARG2
+ gl_MBRTOWC_RETVAL
+ gl_MBRTOWC_NUL_RETVAL
+ case "$gl_cv_func_mbrtowc_null_arg1" in
+ *yes) ;;
+ *) AC_DEFINE([MBRTOWC_NULL_ARG1_BUG], [1],
+ [Define if the mbrtowc function has the NULL pwc argument bug.])
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_null_arg2" in
+ *yes) ;;
+ *) AC_DEFINE([MBRTOWC_NULL_ARG2_BUG], [1],
+ [Define if the mbrtowc function has the NULL string argument bug.])
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_retval" in
+ *yes) ;;
+ *) AC_DEFINE([MBRTOWC_RETVAL_BUG], [1],
+ [Define if the mbrtowc function returns a wrong return value.])
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ case "$gl_cv_func_mbrtowc_nul_retval" in
+ *yes) ;;
+ *) AC_DEFINE([MBRTOWC_NUL_RETVAL_BUG], [1],
+ [Define if the mbrtowc function does not return 0 for a NUL character.])
+ REPLACE_MBRTOWC=1
+ ;;
+ esac
+ fi
+ fi
+])
+
+dnl Test whether mbsinit() and mbrtowc() need to be overridden in a way that
+dnl redefines the semantics of the given mbstate_t type.
+dnl Result is REPLACE_MBSTATE_T.
+dnl When this is set to 1, we replace both mbsinit() and mbrtowc(), in order to
+dnl avoid inconsistencies.
+
+AC_DEFUN([gl_MBSTATE_T_BROKEN],
+[
+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ AC_CHECK_FUNCS_ONCE([mbsinit])
+ 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=1 ;;
+ esac
+ case "$gl_cv_func_mbrtowc_sanitycheck" in
+ *yes) ;;
+ *) REPLACE_MBSTATE_T=1 ;;
+ esac
+ else
+ REPLACE_MBSTATE_T=1
+ fi
+])
+
+dnl Test whether mbrtowc puts the state into non-initial state when parsing an
+dnl incomplete multibyte character.
+dnl Result is gl_cv_func_mbrtowc_incomplete_state.
+
+AC_DEFUN([gl_MBRTOWC_INCOMPLETE_STATE],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gt_LOCALE_JA])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether mbrtowc handles incomplete characters],
+ [gl_cv_func_mbrtowc_incomplete_state],
+ [
+ dnl Initial guess, used when cross-compiling or when no suitable locale
+ dnl is present.
+changequote(,)dnl
+ case "$host_os" in
+ # Guess no on AIX and OSF/1.
+ aix* | osf*) gl_cv_func_mbrtowc_incomplete_state="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_incomplete_state="guessing yes" ;;
+ esac
+changequote([,])dnl
+ if test $LOCALE_JA != none; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+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;
+}]])],
+ [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_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+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
+ ])
+])
+
+dnl Test whether mbrtowc supports a NULL pwc argument correctly.
+dnl Result is gl_cv_func_mbrtowc_null_arg1.
+
+AC_DEFUN([gl_MBRTOWC_NULL_ARG1],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether mbrtowc handles a NULL pwc argument],
+ [gl_cv_func_mbrtowc_null_arg1],
+ [
+ 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.
+ solaris*) gl_cv_func_mbrtowc_null_arg1="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_null_arg1="guessing yes" ;;
+ esac
+changequote([,])dnl
+ if test $LOCALE_FR_UTF8 != none; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <stdlib.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+
+ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ {
+ char input[] = "\303\237er";
+ mbstate_t state;
+ wchar_t wc;
+ size_t ret;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ wc = (wchar_t) 0xBADFACE;
+ ret = mbrtowc (&wc, input, 5, &state);
+ if (ret != 2)
+ result |= 1;
+ if (!mbsinit (&state))
+ result |= 2;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ ret = mbrtowc (NULL, input, 5, &state);
+ if (ret != 2) /* Solaris 7 fails here: ret is -1. */
+ result |= 4;
+ if (!mbsinit (&state))
+ result |= 8;
+ }
+ return result;
+}]])],
+ [gl_cv_func_mbrtowc_null_arg1=yes],
+ [gl_cv_func_mbrtowc_null_arg1=no],
+ [:])
+ fi
+ ])
+])
+
+dnl Test whether mbrtowc supports a NULL string argument correctly.
+dnl Result is gl_cv_func_mbrtowc_null_arg2.
+
+AC_DEFUN([gl_MBRTOWC_NULL_ARG2],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether mbrtowc handles a NULL string argument],
+ [gl_cv_func_mbrtowc_null_arg2],
+ [
+ dnl Initial guess, used when cross-compiling or when no suitable locale
+ dnl is present.
+changequote(,)dnl
+ case "$host_os" in
+ # Guess no on OSF/1.
+ osf*) gl_cv_func_mbrtowc_null_arg2="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_null_arg2="guessing yes" ;;
+ esac
+changequote([,])dnl
+ if test $LOCALE_FR_UTF8 != none; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+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;
+}]])],
+ [gl_cv_func_mbrtowc_null_arg2=yes],
+ [gl_cv_func_mbrtowc_null_arg2=no],
+ [:])
+ fi
+ ])
+])
+
+dnl Test whether mbrtowc, when parsing the end of a multibyte character,
+dnl correctly returns the number of bytes that were needed to complete the
+dnl character (not the total number of bytes of the multibyte character).
+dnl Result is gl_cv_func_mbrtowc_retval.
+
+AC_DEFUN([gl_MBRTOWC_RETVAL],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gt_LOCALE_FR_UTF8])
+ AC_REQUIRE([gt_LOCALE_JA])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CACHE_CHECK([whether mbrtowc has a correct return value],
+ [gl_cv_func_mbrtowc_retval],
+ [
+ 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, Solaris, native Windows.
+ hpux* | solaris* | mingw*) gl_cv_func_mbrtowc_retval="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbrtowc_retval="guessing yes" ;;
+ esac
+changequote([,])dnl
+ if test $LOCALE_FR_UTF8 != none || test $LOCALE_JA != none \
+ || { case "$host_os" in mingw*) true;; *) false;; esac; }; then
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ int found_some_locale = 0;
+ /* 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)
+ result |= 1;
+ }
+ found_some_locale = 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)
+ result |= 2;
+ }
+ found_some_locale = 1;
+ }
+ /* This fails on native Windows. */
+ if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
+ {
+ char input[] = "<\223\372\226\173\214\352>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 4;
+ }
+ found_some_locale = 1;
+ }
+ if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
+ {
+ char input[] = "<\244\351\245\273\273\171>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 8;
+ }
+ found_some_locale = 1;
+ }
+ if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
+ {
+ char input[] = "<\310\325\261\276\325\132>"; /* "<日本語>" */
+ mbstate_t state;
+ wchar_t wc;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbrtowc (&wc, input + 3, 1, &state) == (size_t)(-2))
+ {
+ input[3] = '\0';
+ if (mbrtowc (&wc, input + 4, 4, &state) != 1)
+ result |= 16;
+ }
+ found_some_locale = 1;
+ }
+ return (found_some_locale ? result : 77);
+}]])],
+ [gl_cv_func_mbrtowc_retval=yes],
+ [if test $? != 77; then
+ gl_cv_func_mbrtowc_retval=no
+ fi
+ ],
+ [:])
+ fi
+ ])
+])
+
+dnl Test whether mbrtowc, when parsing a NUL character, correctly returns 0.
+dnl Result is gl_cv_func_mbrtowc_nul_retval.
+
+AC_DEFUN([gl_MBRTOWC_NUL_RETVAL],
+[
+ 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 returns 0 when parsing a NUL character],
+ [gl_cv_func_mbrtowc_nul_retval],
+ [
+ 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 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
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ /* 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;
+}]])],
+ [gl_cv_func_mbrtowc_nul_retval=yes],
+ [gl_cv_func_mbrtowc_nul_retval=no],
+ [:])
+ fi
+ ])
+])
+
+# Prerequisites of lib/mbrtowc.c.
+AC_DEFUN([gl_PREREQ_MBRTOWC], [
+ :
+])
+
+
+dnl From Paul Eggert
+
+dnl This is an override of an autoconf macro.
+
+AC_DEFUN([AC_FUNC_MBRTOWC],
+[
+ dnl Same as AC_FUNC_MBRTOWC in autoconf-2.60.
+ AC_CACHE_CHECK([whether mbrtowc and mbstate_t are properly declared],
+ gl_cv_func_mbrtowc,
+ [AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[/* 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>]],
+ [[wchar_t wc;
+ char const s[] = "";
+ size_t n = 1;
+ mbstate_t state;
+ return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));]])],
+ gl_cv_func_mbrtowc=yes,
+ gl_cv_func_mbrtowc=no)])
+ if test $gl_cv_func_mbrtowc = yes; then
+ AC_DEFINE([HAVE_MBRTOWC], [1],
+ [Define to 1 if mbrtowc and mbstate_t are properly declared.])
+ fi
+])
diff --git a/m4/mbsinit.m4 b/m4/mbsinit.m4
new file mode 100644
index 00000000..da56c3d1
--- /dev/null
+++ b/m4/mbsinit.m4
@@ -0,0 +1,51 @@
+# mbsinit.m4 serial 8
+dnl Copyright (C) 2008, 2010-2012 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_MBSINIT],
+[
+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ gl_MBSTATE_T_BROKEN
+
+ AC_CHECK_FUNCS_ONCE([mbsinit])
+ if test $ac_cv_func_mbsinit = no; then
+ HAVE_MBSINIT=0
+ AC_CHECK_DECLS([mbsinit],,, [[
+/* 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>
+]])
+ if test $ac_cv_have_decl_mbsinit = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares mbsinit() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_MBSINIT=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBSINIT=1
+ else
+ dnl On mingw, mbsinit() always returns 1, which is inappropriate for
+ dnl states produced by mbrtowc() for an incomplete multibyte character
+ dnl in multibyte locales.
+ case "$host_os" in
+ mingw*) REPLACE_MBSINIT=1 ;;
+ esac
+ fi
+ fi
+])
+
+# Prerequisites of lib/mbsinit.c.
+AC_DEFUN([gl_PREREQ_MBSINIT], [
+ :
+])
diff --git a/m4/mbsrtowcs.m4 b/m4/mbsrtowcs.m4
new file mode 100644
index 00000000..a95f6064
--- /dev/null
+++ b/m4/mbsrtowcs.m4
@@ -0,0 +1,155 @@
+# mbsrtowcs.m4 serial 13
+dnl Copyright (C) 2008-2012 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
+
+ AC_CHECK_FUNCS_ONCE([mbsrtowcs])
+ if test $ac_cv_func_mbsrtowcs = no; then
+ HAVE_MBSRTOWCS=0
+ AC_CHECK_DECLS([mbsrtowcs],,, [[
+/* 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>
+]])
+ if test $ac_cv_have_decl_mbsrtowcs = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares mbsrtowcs() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_MBSRTOWCS=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_MBSRTOWCS=1
+ else
+ gl_MBSRTOWCS_WORKS
+ case "$gl_cv_func_mbsrtowcs_works" in
+ *yes) ;;
+ *) REPLACE_MBSRTOWCS=1 ;;
+ esac
+ fi
+ 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])
+ 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, Solaris, mingw.
+ hpux* | solaris* | mingw*) gl_cv_func_mbsrtowcs_works="guessing no" ;;
+ # Guess yes otherwise.
+ *) gl_cv_func_mbsrtowcs_works="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
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ /* Test whether the function supports a NULL destination argument.
+ This fails on native Windows. */
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ const char input[] = "\337er";
+ const char *src = input;
+ mbstate_t state;
+
+ memset (&state, '\0', sizeof (mbstate_t));
+ if (mbsrtowcs (NULL, &src, 1, &state) != 3
+ || src != input)
+ result |= 1;
+ }
+ /* 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)
+ result |= 2;
+ }
+ }
+ 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)
+ result |= 4;
+ }
+ }
+ 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)
+ result |= 8;
+ }
+ }
+ return result;
+}]])],
+ [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
new file mode 100644
index 00000000..61a8190c
--- /dev/null
+++ b/m4/mbstate_t.m4
@@ -0,0 +1,41 @@
+# mbstate_t.m4 serial 13
+dnl Copyright (C) 2000-2002, 2008-2012 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.
+
+# From Paul Eggert.
+
+# BeOS 5 has <wchar.h> but does not define mbstate_t,
+# so you can't declare an object of that type.
+# Check for this incompatibility with Standard C.
+
+# AC_TYPE_MBSTATE_T
+# -----------------
+AC_DEFUN([AC_TYPE_MBSTATE_T],
+[
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) dnl for HP-UX 11.11
+
+ AC_CACHE_CHECK([for mbstate_t], [ac_cv_type_mbstate_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [AC_INCLUDES_DEFAULT[
+/* 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>]],
+ [[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.])
+ else
+ AC_DEFINE([mbstate_t], [int],
+ [Define to a type if <wchar.h> does not define.])
+ fi
+])
diff --git a/m4/mbtowc.m4 b/m4/mbtowc.m4
new file mode 100644
index 00000000..fec0d258
--- /dev/null
+++ b/m4/mbtowc.m4
@@ -0,0 +1,19 @@
+# mbtowc.m4 serial 2
+dnl Copyright (C) 2011-2012 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_MBTOWC],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+
+ if false; then
+ REPLACE_MBTOWC=1
+ fi
+])
+
+# Prerequisites of lib/mbtowc.c.
+AC_DEFUN([gl_PREREQ_MBTOWC], [
+ :
+])
diff --git a/m4/memchr.m4 b/m4/memchr.m4
new file mode 100644
index 00000000..00402945
--- /dev/null
+++ b/m4/memchr.m4
@@ -0,0 +1,88 @@
+# memchr.m4 serial 12
+dnl Copyright (C) 2002-2004, 2009-2012 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])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ m4_ifdef([gl_FUNC_MEMCHR_OBSOLETE], [
+ dnl These days, we assume memchr is present. But if support for old
+ dnl platforms is desired:
+ AC_CHECK_FUNCS_ONCE([memchr])
+ if test $ac_cv_func_memchr = no; then
+ HAVE_MEMCHR=0
+ fi
+ ])
+ if test $HAVE_MEMCHR = 1; 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
+]], [[
+ int result = 0;
+ 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))
+ result |= 1;
+ strcpy (fence - 9, "12345678");
+ if (memchr (fence - 9, 0, 79) != fence - 1)
+ result |= 2;
+ if (memchr (fence - 1, 0, 3) != fence - 1)
+ result |= 4;
+ }
+ return result;
+]])], [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
+ REPLACE_MEMCHR=1
+ 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
new file mode 100644
index 00000000..c926941d
--- /dev/null
+++ b/m4/mempcpy.m4
@@ -0,0 +1,26 @@
+# mempcpy.m4 serial 11
+dnl Copyright (C) 2003-2004, 2006-2007, 2009-2012 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_MEMPCPY],
+[
+ dnl Persuade glibc <string.h> to declare mempcpy().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ dnl The mempcpy() declaration in lib/string.in.h uses 'restrict'.
+ AC_REQUIRE([AC_C_RESTRICT])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_FUNCS([mempcpy])
+ if test $ac_cv_func_mempcpy = no; then
+ HAVE_MEMPCPY=0
+ fi
+])
+
+# Prerequisites of lib/mempcpy.c.
+AC_DEFUN([gl_PREREQ_MEMPCPY], [
+ :
+])
diff --git a/m4/memrchr.m4 b/m4/memrchr.m4
new file mode 100644
index 00000000..3bcaf668
--- /dev/null
+++ b/m4/memrchr.m4
@@ -0,0 +1,23 @@
+# memrchr.m4 serial 10
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2012 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_MEMRCHR],
+[
+ dnl Persuade glibc <string.h> to declare memrchr().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_DECLS_ONCE([memrchr])
+ if test $ac_cv_have_decl_memrchr = no; then
+ HAVE_DECL_MEMRCHR=0
+ fi
+
+ AC_CHECK_FUNCS([memrchr])
+])
+
+# Prerequisites of lib/memrchr.c.
+AC_DEFUN([gl_PREREQ_MEMRCHR], [:])
diff --git a/m4/mkdtemp.m4 b/m4/mkdtemp.m4
new file mode 100644
index 00000000..885832d3
--- /dev/null
+++ b/m4/mkdtemp.m4
@@ -0,0 +1,20 @@
+# mkdtemp.m4 serial 8
+dnl Copyright (C) 2001-2003, 2006-2007, 2009-2012 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_MKDTEMP],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_CHECK_FUNCS([mkdtemp])
+ if test $ac_cv_func_mkdtemp = no; then
+ HAVE_MKDTEMP=0
+ fi
+])
+
+# Prerequisites of lib/mkdtemp.c
+AC_DEFUN([gl_PREREQ_MKDTEMP],
+[:
+])
diff --git a/m4/mkfifo.m4 b/m4/mkfifo.m4
new file mode 100644
index 00000000..3c88e622
--- /dev/null
+++ b/m4/mkfifo.m4
@@ -0,0 +1,48 @@
+# serial 3
+# See if we need to provide mkfifo replacement.
+
+dnl Copyright (C) 2009-2012 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_MKFIFO],
+[
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([mkfifo])
+ if test $ac_cv_func_mkfifo = no; then
+ HAVE_MKFIFO=0
+ else
+ dnl Check for Solaris 9 and FreeBSD bug with trailing slash.
+ AC_CHECK_FUNCS_ONCE([lstat])
+ AC_CACHE_CHECK([whether mkfifo rejects trailing slashes],
+ [gl_cv_func_mkfifo_works],
+ [# 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>
+ ]],
+ [[int result = 0;
+ if (!mkfifo ("conftest.tmp/", 0600))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!mkfifo ("conftest.lnk/", 0600))
+ result |= 2;
+#endif
+ return result;
+ ]])],
+ [gl_cv_func_mkfifo_works=yes], [gl_cv_func_mkfifo_works=no],
+ [gl_cv_func_mkfifo_works="guessing no"])
+ rm -f conftest.tmp conftest.lnk])
+ if test "$gl_cv_func_mkfifo_works" != yes; then
+ AC_DEFINE([MKFIFO_TRAILING_SLASH_BUG], [1], [Define to 1 if mkfifo
+ does not reject trailing slash])
+ REPLACE_MKFIFO=1
+ fi
+ fi
+])
diff --git a/m4/mkfifoat.m4 b/m4/mkfifoat.m4
new file mode 100644
index 00000000..8e3883fb
--- /dev/null
+++ b/m4/mkfifoat.m4
@@ -0,0 +1,22 @@
+# serial 3
+# See if we need to provide mkfifoat/mknodat replacement.
+
+dnl Copyright (C) 2009-2012 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_MKFIFOAT],
+[
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_OPENAT])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([mkfifoat mknodat])
+ if test $ac_cv_func_mkfifoat = no; then
+ # No known system has mkfifoat but not mknodat
+ HAVE_MKFIFOAT=0
+ HAVE_MKNODAT=0
+ fi
+])
diff --git a/m4/mknod.m4 b/m4/mknod.m4
new file mode 100644
index 00000000..04c55de3
--- /dev/null
+++ b/m4/mknod.m4
@@ -0,0 +1,48 @@
+# serial 4
+# See if we need to provide mknod replacement.
+
+dnl Copyright (C) 2009-2012 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_MKNOD],
+[
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_FUNC_MKFIFO])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([mknod])
+ if test $ac_cv_func_mknod = no; then
+ HAVE_MKNOD=0
+ else
+ dnl Detect BSD bug, where mknod requires root privileges to create fifo.
+ AC_CACHE_CHECK([whether mknod can create fifo without root privileges],
+ [gl_cv_func_mknod_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/stat.h>
+ #include <unistd.h>
+]], [[/* Indeterminate for super-user, assume no. Why are you running
+ configure as root, anyway? */
+ if (!geteuid ()) return 99;
+ if (mknod ("conftest.fifo", S_IFIFO | 0600, 0)) return 2;]])],
+ [gl_cv_func_mknod_works=yes],
+ [if test $? = 99 && test x"$FORCE_UNSAFE_CONFIGURE" = x; then
+ AC_MSG_FAILURE([you should not run configure as root ]dnl
+[(set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check)])
+ fi
+ gl_cv_func_mknod_works=no],
+ [gl_cv_func_mknod_works="guessing no"])
+ rm -f conftest.fifo])
+ if test "$gl_cv_func_mknod_works" != yes; then
+ AC_DEFINE([MKNOD_FIFO_BUG], [1], [Define to 1 if mknod cannot create
+ a fifo without super-user privileges])
+ fi
+ dnl Systems that mishandle trailing slash on mkfifo also goof on mknod.
+ if test $REPLACE_MKFIFO = 1 || test "$gl_cv_func_mknod_works" != yes; then
+ REPLACE_MKNOD=1
+ fi
+ fi
+])
diff --git a/m4/mktime.m4 b/m4/mktime.m4
new file mode 100644
index 00000000..5e05dfa6
--- /dev/null
+++ b/m4/mktime.m4
@@ -0,0 +1,250 @@
+# serial 21
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2012 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.
+
+AC_DEFUN([gl_FUNC_MKTIME],
+[
+ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+
+ dnl We don't use AC_FUNC_MKTIME any more, because it is no longer maintained
+ dnl in Autoconf and because it invokes AC_LIBOBJ.
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CHECK_FUNCS_ONCE([alarm])
+ AC_REQUIRE([gl_MULTIARCH])
+ if test $APPLE_UNIVERSAL_BUILD = 1; then
+ # A universal build on Apple MacOS X platforms.
+ # The test result would be 'yes' in 32-bit mode and 'no' in 64-bit mode.
+ # But we need a configuration result that is valid in both modes.
+ gl_cv_func_working_mktime=no
+ fi
+ AC_CACHE_CHECK([for working mktime], [gl_cv_func_working_mktime],
+ [AC_RUN_IFELSE(
+ [AC_LANG_SOURCE(
+[[/* Test program from Paul Eggert and Tony Leneis. */
+#include <limits.h>
+#include <stdlib.h>
+#include <time.h>
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+
+#ifndef HAVE_ALARM
+# define alarm(X) /* empty */
+#endif
+
+/* Work around redefinition to rpl_putenv by other config tests. */
+#undef putenv
+
+static time_t time_t_max;
+static time_t time_t_min;
+
+/* Values we'll use to set the TZ environment variable. */
+static char *tz_strings[] = {
+ (char *) 0, "TZ=GMT0", "TZ=JST-9",
+ "TZ=EST+3EDT+2,M10.1.0/00:00:00,M2.3.0/00:00:00"
+};
+#define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
+
+/* Return 0 if mktime fails to convert a date in the spring-forward gap.
+ Based on a problem report from Andreas Jaeger. */
+static int
+spring_forward_gap ()
+{
+ /* glibc (up to about 1998-10-07) failed this test. */
+ struct tm tm;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ tm.tm_year = 98;
+ tm.tm_mon = 3;
+ tm.tm_mday = 5;
+ tm.tm_hour = 2;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+ return mktime (&tm) != (time_t) -1;
+}
+
+static int
+mktime_test1 (time_t now)
+{
+ struct tm *lt;
+ return ! (lt = localtime (&now)) || mktime (lt) == now;
+}
+
+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)));
+}
+
+static int
+irix_6_4_bug ()
+{
+ /* Based on code from Ariel Faigon. */
+ struct tm tm;
+ tm.tm_year = 96;
+ tm.tm_mon = 3;
+ tm.tm_mday = 0;
+ tm.tm_hour = 0;
+ tm.tm_min = 0;
+ tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+ mktime (&tm);
+ return tm.tm_mon == 2 && tm.tm_mday == 31;
+}
+
+static int
+bigtime_test (int j)
+{
+ struct tm tm;
+ time_t now;
+ tm.tm_year = tm.tm_mon = tm.tm_mday = tm.tm_hour = tm.tm_min = tm.tm_sec = j;
+ now = mktime (&tm);
+ if (now != (time_t) -1)
+ {
+ 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;
+ }
+ return 1;
+}
+
+static int
+year_2050_test ()
+{
+ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
+ ignoring leap seconds. */
+ unsigned long int answer = 2527315200UL;
+
+ struct tm tm;
+ time_t t;
+ tm.tm_year = 2050 - 1900;
+ tm.tm_mon = 2 - 1;
+ tm.tm_mday = 1;
+ tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
+ tm.tm_isdst = -1;
+
+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
+ instead of "TZ=America/Vancouver" in order to detect the bug even
+ on systems that don't support the Olson extension, or don't have the
+ full zoneinfo tables installed. */
+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
+
+ t = mktime (&tm);
+
+ /* Check that the result is either a failure, or close enough
+ 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));
+}
+
+int
+main ()
+{
+ int result = 0;
+ time_t t, delta;
+ int i, j;
+ int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1;
+ int time_t_signed = ! ((time_t) 0 < (time_t) -1);
+
+ /* This test makes some buggy mktime implementations loop.
+ Give up after 60 seconds; a mktime slower than that
+ isn't worth using anyway. */
+ alarm (60);
+
+ time_t_max = (! time_t_signed
+ ? (time_t) -1
+ : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
+ * 2 + 1));
+ time_t_min = (! time_t_signed
+ ? (time_t) 0
+ : time_t_signed_magnitude
+ ? ~ (time_t) 0
+ : ~ time_t_max);
+
+ delta = time_t_max / 997; /* a suitable prime number */
+ for (i = 0; i < N_STRINGS; i++)
+ {
+ if (tz_strings[i])
+ putenv (tz_strings[i]);
+
+ for (t = 0; t <= time_t_max - delta; t += delta)
+ if (! mktime_test (t))
+ result |= 1;
+ if (! (mktime_test ((time_t) 1)
+ && mktime_test ((time_t) (60 * 60))
+ && mktime_test ((time_t) (60 * 60 * 24))))
+ result |= 2;
+
+ for (j = 1; ; j <<= 1)
+ if (! bigtime_test (j))
+ result |= 4;
+ else if (INT_MAX / 2 < j)
+ break;
+ if (! bigtime_test (INT_MAX))
+ result |= 8;
+ }
+ if (! irix_6_4_bug ())
+ result |= 16;
+ if (! spring_forward_gap ())
+ result |= 32;
+ if (! year_2050_test ())
+ result |= 64;
+ return result;
+}]])],
+ [gl_cv_func_working_mktime=yes],
+ [gl_cv_func_working_mktime=no],
+ [gl_cv_func_working_mktime=no])
+ ])
+
+ if test $gl_cv_func_working_mktime = no; then
+ REPLACE_MKTIME=1
+ else
+ REPLACE_MKTIME=0
+ fi
+])
+
+AC_DEFUN([gl_FUNC_MKTIME_INTERNAL], [
+ AC_REQUIRE([gl_FUNC_MKTIME])
+ if test $REPLACE_MKTIME = 0; then
+ dnl BeOS has __mktime_internal in libc, but other platforms don't.
+ AC_CHECK_FUNC([__mktime_internal],
+ [AC_DEFINE([mktime_internal], [__mktime_internal],
+ [Define to the real name of the mktime_internal function.])
+ ],
+ [dnl mktime works but it doesn't export __mktime_internal,
+ dnl so we need to substitute our own mktime implementation.
+ REPLACE_MKTIME=1
+ ])
+ fi
+])
+
+# Prerequisites of lib/mktime.c.
+AC_DEFUN([gl_PREREQ_MKTIME],
+[
+ AC_REQUIRE([AC_C_INLINE])
+])
diff --git a/m4/mmap-anon.m4 b/m4/mmap-anon.m4
new file mode 100644
index 00000000..4613cbe5
--- /dev/null
+++ b/m4/mmap-anon.m4
@@ -0,0 +1,55 @@
+# mmap-anon.m4 serial 9
+dnl Copyright (C) 2005, 2007, 2009-2012 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 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 00000000..40f612a6
--- /dev/null
+++ b/m4/mode_t.m4
@@ -0,0 +1,26 @@
+# mode_t.m4 serial 2
+dnl Copyright (C) 2009-2012 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
new file mode 100644
index 00000000..a59d88d7
--- /dev/null
+++ b/m4/modechange.m4
@@ -0,0 +1,11 @@
+# modechange.m4 serial 7
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2012 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_MODECHANGE],
+[
+ :
+])
diff --git a/m4/msvc-inval.m4 b/m4/msvc-inval.m4
new file mode 100644
index 00000000..8db46175
--- /dev/null
+++ b/m4/msvc-inval.m4
@@ -0,0 +1,19 @@
+# msvc-inval.m4 serial 1
+dnl Copyright (C) 2011-2012 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_MSVC_INVAL],
+[
+ AC_CHECK_FUNCS_ONCE([_set_invalid_parameter_handler])
+ if test $ac_cv_func__set_invalid_parameter_handler = yes; then
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=1
+ AC_DEFINE([HAVE_MSVC_INVALID_PARAMETER_HANDLER], [1],
+ [Define to 1 on MSVC platforms that have the "invalid parameter handler"
+ concept.])
+ else
+ HAVE_MSVC_INVALID_PARAMETER_HANDLER=0
+ fi
+ AC_SUBST([HAVE_MSVC_INVALID_PARAMETER_HANDLER])
+])
diff --git a/m4/msvc-nothrow.m4 b/m4/msvc-nothrow.m4
new file mode 100644
index 00000000..01250507
--- /dev/null
+++ b/m4/msvc-nothrow.m4
@@ -0,0 +1,10 @@
+# msvc-nothrow.m4 serial 1
+dnl Copyright (C) 2011-2012 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_MSVC_NOTHROW],
+[
+ AC_REQUIRE([gl_MSVC_INVAL])
+])
diff --git a/m4/multiarch.m4 b/m4/multiarch.m4
new file mode 100644
index 00000000..b424dce6
--- /dev/null
+++ b/m4/multiarch.m4
@@ -0,0 +1,62 @@
+# multiarch.m4 serial 6
+dnl Copyright (C) 2008-2012 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.
+
+# Determine whether the compiler is or may be producing universal binaries.
+#
+# On MacOS X 10.5 and later systems, the user can create libraries and
+# executables that work on multiple system types--known as "fat" or
+# "universal" binaries--by specifying multiple '-arch' options to the
+# compiler but only a single '-arch' option to the preprocessor. Like
+# this:
+#
+# ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+# CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+# CPP="gcc -E" CXXCPP="g++ -E"
+#
+# Detect this situation and set APPLE_UNIVERSAL_BUILD accordingly.
+
+AC_DEFUN_ONCE([gl_MULTIARCH],
+[
+ dnl Code similar to autoconf-2.63 AC_C_BIGENDIAN.
+ gl_cv_c_multiarch=no
+ AC_COMPILE_IFELSE(
+ [AC_LANG_SOURCE(
+ [[#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+ ]])],
+ [
+ dnl Check for potential -arch flags. It is not universal unless
+ dnl there are at least two -arch flags with different values.
+ arch=
+ prev=
+ for word in ${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}; do
+ if test -n "$prev"; then
+ case $word in
+ i?86 | x86_64 | ppc | ppc64)
+ if test -z "$arch" || test "$arch" = "$word"; then
+ arch="$word"
+ else
+ gl_cv_c_multiarch=yes
+ fi
+ ;;
+ esac
+ prev=
+ else
+ if test "x$word" = "x-arch"; then
+ prev=arch
+ fi
+ fi
+ done
+ ])
+ if test $gl_cv_c_multiarch = yes; then
+ APPLE_UNIVERSAL_BUILD=1
+ else
+ APPLE_UNIVERSAL_BUILD=0
+ fi
+ AC_SUBST([APPLE_UNIVERSAL_BUILD])
+])
diff --git a/m4/nl_langinfo.m4 b/m4/nl_langinfo.m4
new file mode 100644
index 00000000..80fe60d5
--- /dev/null
+++ b/m4/nl_langinfo.m4
@@ -0,0 +1,50 @@
+# nl_langinfo.m4 serial 5
+dnl Copyright (C) 2009-2012 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])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ if test $ac_cv_func_nl_langinfo = yes; then
+ # On Irix 6.5, YESEXPR is defined, but nl_langinfo(YESEXPR) is broken.
+ AC_CACHE_CHECK([whether YESEXPR works],
+ [gl_cv_func_nl_langinfo_yesexpr_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[#include <langinfo.h>
+]], [[return !*nl_langinfo(YESEXPR);
+]])],
+ [gl_cv_func_nl_langinfo_yesexpr_works=yes],
+ [gl_cv_func_nl_langinfo_yesexpr_works=no],
+ [
+ case "$host_os" in
+ # Guess no on irix systems.
+ irix*) gl_cv_func_nl_langinfo_yesexpr_works="guessing no";;
+ # Guess yes elsewhere.
+ *) gl_cv_func_nl_langinfo_yesexpr_works="guessing yes";;
+ esac
+ ])
+ ])
+ case $gl_cv_func_nl_langinfo_yesexpr_works in
+ *yes) FUNC_NL_LANGINFO_YESEXPR_WORKS=1 ;;
+ *) FUNC_NL_LANGINFO_YESEXPR_WORKS=0 ;;
+ esac
+ AC_DEFINE_UNQUOTED([FUNC_NL_LANGINFO_YESEXPR_WORKS],
+ [$FUNC_NL_LANGINFO_YESEXPR_WORKS],
+ [Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string.])
+ if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \
+ && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then
+ :
+ else
+ REPLACE_NL_LANGINFO=1
+ AC_DEFINE([REPLACE_NL_LANGINFO], [1],
+ [Define if nl_langinfo exists but is overridden by gnulib.])
+ fi
+ else
+ HAVE_NL_LANGINFO=0
+ fi
+])
diff --git a/m4/nls.m4 b/m4/nls.m4
new file mode 100644
index 00000000..0866677c
--- /dev/null
+++ b/m4/nls.m4
@@ -0,0 +1,32 @@
+# nls.m4 serial 5 (gettext-0.18)
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2012 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
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ([2.50])
+
+AC_DEFUN([AM_NLS],
+[
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE([nls],
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT([$USE_NLS])
+ AC_SUBST([USE_NLS])
+])
diff --git a/m4/nocrash.m4 b/m4/nocrash.m4
new file mode 100644
index 00000000..08ef8254
--- /dev/null
+++ b/m4/nocrash.m4
@@ -0,0 +1,130 @@
+# nocrash.m4 serial 3
+dnl Copyright (C) 2005, 2009-2012 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 Based on libsigsegv, from Bruno Haible and Paolo Bonzini.
+
+AC_PREREQ([2.13])
+
+dnl Expands to some code for use in .c programs that will cause the configure
+dnl test to exit instead of crashing. This is useful to avoid triggering
+dnl action from a background debugger and to avoid core dumps.
+dnl Usage: ...
+dnl ]GL_NOCRASH[
+dnl ...
+dnl int main() { nocrash_init(); ... }
+AC_DEFUN([GL_NOCRASH],[[
+#include <stdlib.h>
+#if defined __MACH__ && defined __APPLE__
+/* Avoid a crash on MacOS X. */
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <mach/thread_status.h>
+#include <mach/exception.h>
+#include <mach/task.h>
+#include <pthread.h>
+/* The exception port on which our thread listens. */
+static mach_port_t our_exception_port;
+/* The main function of the thread listening for exceptions of type
+ EXC_BAD_ACCESS. */
+static void *
+mach_exception_thread (void *arg)
+{
+ /* Buffer for a message to be received. */
+ struct {
+ mach_msg_header_t head;
+ mach_msg_body_t msgh_body;
+ char data[1024];
+ } msg;
+ mach_msg_return_t retval;
+ /* Wait for a message on the exception port. */
+ retval = mach_msg (&msg.head, MACH_RCV_MSG | MACH_RCV_LARGE, 0, sizeof (msg),
+ our_exception_port, MACH_MSG_TIMEOUT_NONE, MACH_PORT_NULL);
+ if (retval != MACH_MSG_SUCCESS)
+ abort ();
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+ mach_port_t self = mach_task_self ();
+ /* Allocate a port on which the thread shall listen for exceptions. */
+ if (mach_port_allocate (self, MACH_PORT_RIGHT_RECEIVE, &our_exception_port)
+ == KERN_SUCCESS) {
+ /* See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/mach_port_insert_right.html. */
+ if (mach_port_insert_right (self, our_exception_port, our_exception_port,
+ MACH_MSG_TYPE_MAKE_SEND)
+ == KERN_SUCCESS) {
+ /* The exceptions we want to catch. Only EXC_BAD_ACCESS is interesting
+ for us. */
+ exception_mask_t mask = EXC_MASK_BAD_ACCESS;
+ /* Create the thread listening on the exception port. */
+ pthread_attr_t attr;
+ pthread_t thread;
+ if (pthread_attr_init (&attr) == 0
+ && pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED) == 0
+ && pthread_create (&thread, &attr, mach_exception_thread, NULL) == 0) {
+ pthread_attr_destroy (&attr);
+ /* Replace the exception port info for these exceptions with our own.
+ Note that we replace the exception port for the entire task, not only
+ for a particular thread. This has the effect that when our exception
+ port gets the message, the thread specific exception port has already
+ been asked, and we don't need to bother about it.
+ See http://web.mit.edu/darwin/src/modules/xnu/osfmk/man/task_set_exception_ports.html. */
+ task_set_exception_ports (self, mask, our_exception_port,
+ EXCEPTION_DEFAULT, MACHINE_THREAD_STATE);
+ }
+ }
+ }
+}
+#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+/* Avoid a crash on native Windows. */
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <winerror.h>
+static LONG WINAPI
+exception_filter (EXCEPTION_POINTERS *ExceptionInfo)
+{
+ switch (ExceptionInfo->ExceptionRecord->ExceptionCode)
+ {
+ case EXCEPTION_ACCESS_VIOLATION:
+ case EXCEPTION_IN_PAGE_ERROR:
+ case EXCEPTION_STACK_OVERFLOW:
+ case EXCEPTION_GUARD_PAGE:
+ case EXCEPTION_PRIV_INSTRUCTION:
+ case EXCEPTION_ILLEGAL_INSTRUCTION:
+ case EXCEPTION_DATATYPE_MISALIGNMENT:
+ case EXCEPTION_ARRAY_BOUNDS_EXCEEDED:
+ case EXCEPTION_NONCONTINUABLE_EXCEPTION:
+ exit (1);
+ }
+ return EXCEPTION_CONTINUE_SEARCH;
+}
+static void
+nocrash_init (void)
+{
+ SetUnhandledExceptionFilter ((LPTOP_LEVEL_EXCEPTION_FILTER) exception_filter);
+}
+#else
+/* Avoid a crash on POSIX systems. */
+#include <signal.h>
+/* A POSIX signal handler. */
+static void
+exception_handler (int sig)
+{
+ exit (1);
+}
+static void
+nocrash_init (void)
+{
+#ifdef SIGSEGV
+ signal (SIGSEGV, exception_handler);
+#endif
+#ifdef SIGBUS
+ signal (SIGBUS, exception_handler);
+#endif
+}
+#endif
+]])
diff --git a/m4/open.m4 b/m4/open.m4
new file mode 100644
index 00000000..c85971dc
--- /dev/null
+++ b/m4/open.m4
@@ -0,0 +1,92 @@
+# open.m4 serial 13
+dnl Copyright (C) 2007-2012 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_OPEN],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ case "$host_os" in
+ mingw* | pw*)
+ REPLACE_OPEN=1
+ ;;
+ *)
+ dnl open("foo/") should not create a file when the file name has a
+ 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_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <fcntl.h>
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+int main ()
+{
+ int result = 0;
+#if HAVE_LSTAT
+ if (open ("conftest.lnk/", O_RDONLY) != -1)
+ result |= 1;
+#endif
+ if (open ("conftest.sl/", O_CREAT, 0600) >= 0)
+ result |= 2;
+ return result;
+}]])],
+ [gl_cv_func_open_slash=yes],
+ [gl_cv_func_open_slash=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ freebsd* | aix* | hpux* | solaris2.[0-9] | solaris2.[0-9].*)
+ gl_cv_func_open_slash="guessing no" ;;
+ *)
+ gl_cv_func_open_slash="guessing yes" ;;
+ esac
+changequote([,])dnl
+ ])
+ rm -f conftest.sl conftest.tmp conftest.lnk
+ ])
+ case "$gl_cv_func_open_slash" in
+ *no)
+ AC_DEFINE([OPEN_TRAILING_SLASH_BUG], [1],
+ [Define to 1 if open() fails to recognize a trailing slash.])
+ REPLACE_OPEN=1
+ ;;
+ esac
+ ;;
+ esac
+ dnl Replace open() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ if test $REPLACE_OPEN = 0; then
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ REPLACE_OPEN=1
+ fi
+ fi
+ ])
+ dnl Replace open() for supporting the gnulib-defined O_NONBLOCK flag.
+ m4_ifdef([gl_NONBLOCKING_IO], [
+ if test $REPLACE_OPEN = 0; then
+ gl_NONBLOCKING_IO
+ if test $gl_cv_have_open_O_NONBLOCK != yes; then
+ REPLACE_OPEN=1
+ fi
+ fi
+ ])
+])
+
+# 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
new file mode 100644
index 00000000..33281d2c
--- /dev/null
+++ b/m4/openat.m4
@@ -0,0 +1,37 @@
+# serial 43
+# See if we need to use our replacement for Solaris' openat et al functions.
+
+dnl Copyright (C) 2004-2012 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 Jim Meyering.
+
+AC_DEFUN([gl_FUNC_OPENAT],
+[
+ AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([openat])
+ AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+ case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
+ yes+yes)
+ ;;
+ yes+*)
+ # Solaris 9 has *at functions, but uniformly mishandles trailing
+ # slash in all of them.
+ REPLACE_OPENAT=1
+ ;;
+ *)
+ HAVE_OPENAT=0
+ ;;
+ esac
+])
+
+# Prerequisites of lib/openat.c.
+AC_DEFUN([gl_PREREQ_OPENAT],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
+ :
+])
diff --git a/m4/opendir.m4 b/m4/opendir.m4
new file mode 100644
index 00000000..08da440b
--- /dev/null
+++ b/m4/opendir.m4
@@ -0,0 +1,25 @@
+# opendir.m4 serial 2
+dnl Copyright (C) 2011-2012 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_OPENDIR],
+[
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_FUNCS([opendir])
+ if test $ac_cv_func_opendir = no; then
+ HAVE_OPENDIR=0
+ fi
+ dnl Replace opendir() for supporting the gnulib-defined fchdir() function,
+ dnl to keep fchdir's bookkeeping up-to-date.
+ m4_ifdef([gl_FUNC_FCHDIR], [
+ gl_TEST_FCHDIR
+ if test $HAVE_FCHDIR = 0; then
+ if test $HAVE_OPENDIR = 1; then
+ REPLACE_OPENDIR=1
+ fi
+ fi
+ ])
+])
diff --git a/m4/parse-datetime.m4 b/m4/parse-datetime.m4
new file mode 100644
index 00000000..8efefbe8
--- /dev/null
+++ b/m4/parse-datetime.m4
@@ -0,0 +1,55 @@
+# parse-datetime.m4 serial 19
+dnl Copyright (C) 2002-2006, 2008-2012 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 Define HAVE_COMPOUND_LITERALS if the C compiler supports compound literals
+dnl as in ISO C99.
+dnl Note that compound literals such as (struct s) { 3, 4 } can be used for
+dnl initialization of stack-allocated variables, but are not constant
+dnl expressions and therefore cannot be used as initializer for global or
+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_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
+ AC_DEFINE([HAVE_COMPOUND_LITERALS], [1],
+ [Define if you have compound literals.])
+ fi
+])
+
+AC_DEFUN([gl_PARSE_DATETIME],
+[
+ dnl Prerequisites of lib/parse-datetime.h.
+ AC_REQUIRE([AM_STDBOOL_H])
+ AC_REQUIRE([gl_TIMESPEC])
+
+ dnl Prerequisites of lib/parse-datetime.y.
+ AC_REQUIRE([gl_BISON])
+ AC_REQUIRE([gl_C_COMPOUND_LITERALS])
+ 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 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) ((t) 0 < (t) -1 \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 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/pathmax.m4 b/m4/pathmax.m4
new file mode 100644
index 00000000..01178612
--- /dev/null
+++ b/m4/pathmax.m4
@@ -0,0 +1,42 @@
+# pathmax.m4 serial 10
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2012 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_PATHMAX],
+[
+ dnl Prerequisites of lib/pathmax.h.
+ AC_CHECK_HEADERS_ONCE([sys/param.h])
+])
+
+# Expands to a piece of C program that defines PATH_MAX in the same way as
+# "pathmax.h" will do.
+AC_DEFUN([gl_PATHMAX_SNIPPET], [[
+/* Arrange to define PATH_MAX, like "pathmax.h" does. */
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <limits.h>
+#if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN
+# include <sys/param.h>
+#endif
+#if !defined PATH_MAX && defined MAXPATHLEN
+# define PATH_MAX MAXPATHLEN
+#endif
+#ifdef __hpux
+# undef PATH_MAX
+# define PATH_MAX 1024
+#endif
+#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# undef PATH_MAX
+# define PATH_MAX 260
+#endif
+]])
+
+# Prerequisites of gl_PATHMAX_SNIPPET.
+AC_DEFUN([gl_PATHMAX_SNIPPET_PREREQ],
+[
+ AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h])
+])
diff --git a/m4/paxutils.m4 b/m4/paxutils.m4
new file mode 100644
index 00000000..f7f9c84b
--- /dev/null
+++ b/m4/paxutils.m4
@@ -0,0 +1,7 @@
+# This file is generated automatically. Please, do not edit.
+#
+AC_DEFUN([tar_PAXUTILS],[
+PU_RMT
+PU_RTAPELIB
+PU_SYSTEM
+])
diff --git a/m4/po.m4 b/m4/po.m4
new file mode 100644
index 00000000..6bf122a2
--- /dev/null
+++ b/m4/po.m4
@@ -0,0 +1,452 @@
+# po.m4 serial 17a
+dnl Copyright (C) 1995-2012 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
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ([2.50])
+
+dnl Checks for all prerequisites of the po subdirectory.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_PROG_MKDIR_P])dnl defined by automake
+ AC_REQUIRE([AM_NLS])dnl
+
+ dnl Release version of the gettext macros. This is used to ensure that
+ dnl the gettext macros and po/Makefile.in.in are in sync.
+ AC_SUBST([GETTEXT_MACRO_VERSION], [0.18])
+
+ dnl Perform the following tests also if --disable-nls has been given,
+ dnl because they are needed for "make dist" to work.
+
+ dnl Search for GNU msgfmt in the PATH.
+ dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+ dnl The second test excludes FreeBSD msgfmt.
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT])
+
+ dnl Test whether it is GNU msgfmt >= 0.15.
+changequote(,)dnl
+ case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+ *) MSGFMT_015=$MSGFMT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([MSGFMT_015])
+changequote(,)dnl
+ case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+ *) GMSGFMT_015=$GMSGFMT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([GMSGFMT_015])
+
+ dnl Search for GNU xgettext 0.12 or newer in the PATH.
+ dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+ dnl The second test excludes FreeBSD xgettext.
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ dnl Remove leftover from FreeBSD xgettext call.
+ rm -f messages.po
+
+ dnl Test whether it is GNU xgettext >= 0.15.
+changequote(,)dnl
+ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+ *) XGETTEXT_015=$XGETTEXT ;;
+ esac
+changequote([,])dnl
+ AC_SUBST([XGETTEXT_015])
+
+ dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+ AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+ [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
+
+ dnl Installation directories.
+ dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we
+ dnl have to define it here, so that it can be used in po/Makefile.
+ test -n "$localedir" || localedir='${datadir}/locale'
+ AC_SUBST([localedir])
+
+ dnl Support for AM_XGETTEXT_OPTION.
+ test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+ AC_SUBST([XGETTEXT_EXTRA_OPTIONS])
+
+ AC_CONFIG_COMMANDS([po-directories], [[
+ for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ # Treat a directory as a PO directory if and only if it has a
+ # POTFILES.in file. This allows packages to have multiple PO
+ # directories under different names or in different locations.
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ gt_tab=`printf '\t'`
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ${gt_tab}]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ POMAKEFILEDEPS="POTFILES.in"
+ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+ # on $ac_dir but don't depend on user-specified configuration
+ # parameters.
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # The set of available languages was given in configure.in.
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+ fi
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+ fi
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+ if test -f "$f"; then
+ case "$f" in
+ *.orig | *.bak | *~) ;;
+ *) cat "$f" >> "$ac_dir/Makefile" ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done]],
+ [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+ # from automake < 1.5.
+ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+ ])
+])
+
+dnl Postprocesses a Makefile in a directory containing PO files.
+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
+[
+ # When this code is run, in config.status, two variables have already been
+ # set:
+ # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
+ # - LINGUAS is the value of the environment variable LINGUAS at configure
+ # time.
+
+changequote(,)dnl
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ # Find a way to echo strings without interpreting backslash.
+ if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='echo'
+ else
+ if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='printf %s\n'
+ else
+ echo_func () {
+ cat <<EOT
+$*
+EOT
+ }
+ gt_echo='echo_func'
+ fi
+ fi
+
+ # A sed script that extracts the value of VARIABLE from a Makefile.
+ tab=`printf '\t'`
+ sed_x_variable='
+# Test if the hold space is empty.
+x
+s/P/P/
+x
+ta
+# Yes it was empty. Look if we have the expected variable definition.
+/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=/{
+ # Seen the first line of the variable definition.
+ s/^['"${tab}"' ]*VARIABLE['"${tab}"' ]*=//
+ ba
+}
+bd
+:a
+# Here we are processing a line from the variable definition.
+# Remove comment, more precisely replace it with a space.
+s/#.*$/ /
+# See if the line ends in a backslash.
+tb
+:b
+s/\\$//
+# Print the line, without the trailing backslash.
+p
+tc
+# There was no trailing backslash. The end of the variable definition is
+# reached. Clear the hold space.
+s/^.*$//
+x
+bd
+:c
+# A trailing backslash means that the variable definition continues in the
+# next line. Put a nonempty string into the hold space to indicate this.
+s/^.*$/P/
+x
+:d
+'
+changequote([,])dnl
+
+ # Set POTFILES to the value of the Makefile variable POTFILES.
+ sed_x_POTFILES=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`
+ POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
+ # Compute POTFILES_DEPS as
+ # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
+ POTFILES_DEPS=
+ for file in $POTFILES; do
+ POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
+ done
+ POMAKEFILEDEPS=""
+
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
+ sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
+ ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+ fi
+ # Hide the ALL_LINGUAS assigment from automake < 1.5.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ # Compute PROPERTIESFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
+ # Compute CLASSFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
+ # Compute QMFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
+ # Compute MSGFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
+ # Compute RESOURCESDLLFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ PROPERTIESFILES=
+ CLASSFILES=
+ QMFILES=
+ MSGFILES=
+ RESOURCESDLLFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
+ CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
+ QMFILES="$QMFILES $srcdirpre$lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ JAVACATALOGS=
+ QTCATALOGS=
+ TCLCATALOGS=
+ CSHARPCATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
+ QTCATALOGS="$QTCATALOGS $lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ fi
+
+ sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+ tab=`printf '\t'`
+ if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang.msg: $lang.po
+${tab}@echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+${tab}\$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/_/-/g' -e 's/^sr-CS/sr-SP/' -e 's/@latin$/-Latn/' -e 's/@cyrillic$/-Cyrl/' -e 's/^sr-SP$/sr-SP-Latn/' -e 's/^uz-UZ$/uz-UZ-Latn/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
+${tab}@echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+${tab}\$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if test -n "$POMAKEFILEDEPS"; then
+ cat >> "$ac_file.tmp" <<EOF
+Makefile: $POMAKEFILEDEPS
+EOF
+ fi
+ mv "$ac_file.tmp" "$ac_file"
+])
+
+dnl Initializes the accumulator used by AM_XGETTEXT_OPTION.
+AC_DEFUN([AM_XGETTEXT_OPTION_INIT],
+[
+ XGETTEXT_EXTRA_OPTIONS=
+])
+
+dnl Registers an option to be passed to xgettext in the po subdirectory.
+AC_DEFUN([AM_XGETTEXT_OPTION],
+[
+ AC_REQUIRE([AM_XGETTEXT_OPTION_INIT])
+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1"
+])
diff --git a/m4/printf.m4 b/m4/printf.m4
new file mode 100644
index 00000000..d75aca07
--- /dev/null
+++ b/m4/printf.m4
@@ -0,0 +1,1569 @@
+# printf.m4 serial 48
+dnl Copyright (C) 2003, 2007-2012 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 Test whether the *printf family of functions supports the 'j', 'z', 't',
+dnl 'L' size specifiers. (ISO C99, POSIX:2001)
+dnl Result is gl_cv_func_printf_sizes_c99.
+
+AC_DEFUN([gl_PRINTF_SIZES_C99],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gl_AC_HEADER_STDINT_H])
+ AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports size specifiers as in C99],
+ [gl_cv_func_printf_sizes_c99],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#if HAVE_STDINT_H_WITH_UINTMAX
+# include <stdint.h>
+#endif
+#if HAVE_INTTYPES_H_WITH_UINTMAX
+# include <inttypes.h>
+#endif
+static char buf[100];
+int main ()
+{
+ int result = 0;
+#if HAVE_STDINT_H_WITH_UINTMAX || HAVE_INTTYPES_H_WITH_UINTMAX
+ buf[0] = '\0';
+ if (sprintf (buf, "%ju %d", (uintmax_t) 12345671, 33, 44, 55) < 0
+ || strcmp (buf, "12345671 33") != 0)
+ result |= 1;
+#endif
+ buf[0] = '\0';
+ if (sprintf (buf, "%zu %d", (size_t) 12345672, 33, 44, 55) < 0
+ || strcmp (buf, "12345672 33") != 0)
+ result |= 2;
+ buf[0] = '\0';
+ if (sprintf (buf, "%tu %d", (ptrdiff_t) 12345673, 33, 44, 55) < 0
+ || strcmp (buf, "12345673 33") != 0)
+ result |= 4;
+ buf[0] = '\0';
+ if (sprintf (buf, "%Lg %d", (long double) 1.5, 33, 44, 55) < 0
+ || strcmp (buf, "1.5 33") != 0)
+ result |= 8;
+ return result;
+}]])],
+ [gl_cv_func_printf_sizes_c99=yes],
+ [gl_cv_func_printf_sizes_c99=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_printf_sizes_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_printf_sizes_c99="guessing no";;
+ darwin*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # Guess yes on OpenBSD >= 3.9.
+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+ gl_cv_func_printf_sizes_c99="guessing no";;
+ openbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # Guess yes on Solaris >= 2.10.
+ solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ solaris*) gl_cv_func_printf_sizes_c99="guessing no";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_printf_sizes_c99="guessing no";;
+ netbsd*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_sizes_c99="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the *printf family of functions supports 'long double'
+dnl arguments together with the 'L' size specifier. (ISO C99, POSIX:2001)
+dnl Result is gl_cv_func_printf_long_double.
+
+AC_DEFUN([gl_PRINTF_LONG_DOUBLE],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports 'long double' arguments],
+ [gl_cv_func_printf_long_double],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[10000];
+int main ()
+{
+ int result = 0;
+ buf[0] = '\0';
+ if (sprintf (buf, "%Lf %d", 1.75L, 33, 44, 55) < 0
+ || strcmp (buf, "1.750000 33") != 0)
+ result |= 1;
+ buf[0] = '\0';
+ if (sprintf (buf, "%Le %d", 1.75L, 33, 44, 55) < 0
+ || strcmp (buf, "1.750000e+00 33") != 0)
+ result |= 2;
+ buf[0] = '\0';
+ if (sprintf (buf, "%Lg %d", 1.75L, 33, 44, 55) < 0
+ || strcmp (buf, "1.75 33") != 0)
+ result |= 4;
+ return result;
+}]])],
+ [gl_cv_func_printf_long_double=yes],
+ [gl_cv_func_printf_long_double=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ beos*) gl_cv_func_printf_long_double="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_long_double="guessing no";;
+ *) gl_cv_func_printf_long_double="guessing yes";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the *printf family of functions supports infinite and NaN
+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],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports infinite 'double' arguments],
+ [gl_cv_func_printf_infinite],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static int
+strisnan (const char *string, size_t start_index, size_t end_index)
+{
+ if (start_index < end_index)
+ {
+ if (string[start_index] == '-')
+ start_index++;
+ if (start_index + 3 <= end_index
+ && memcmp (string + start_index, "nan", 3) == 0)
+ {
+ start_index += 3;
+ if (start_index == end_index
+ || (string[start_index] == '(' && string[end_index - 1] == ')'))
+ return 1;
+ }
+ }
+ 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 ()
+{
+ int result = 0;
+ if (sprintf (buf, "%f", 1.0 / zero) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%f", -1.0 / zero) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%f", zero / zero) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ if (sprintf (buf, "%e", 1.0 / zero) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 4;
+ if (sprintf (buf, "%e", -1.0 / zero) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 4;
+ if (sprintf (buf, "%e", zero / zero) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 8;
+ if (sprintf (buf, "%g", 1.0 / zero) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 16;
+ if (sprintf (buf, "%g", -1.0 / zero) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 16;
+ if (sprintf (buf, "%g", zero / zero) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 32;
+ /* This test fails on HP-UX 10.20. */
+ if (have_minus_zero ())
+ if (sprintf (buf, "%g", - zero) < 0
+ || strcmp (buf, "-0") != 0)
+ result |= 64;
+ return result;
+}]])],
+ [gl_cv_func_printf_infinite=yes],
+ [gl_cv_func_printf_infinite=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess yes on FreeBSD >= 6.
+ freebsd[1-5]*) gl_cv_func_printf_infinite="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_printf_infinite="guessing no";;
+ darwin*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess yes on HP-UX >= 11.
+ hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite="guessing no";;
+ hpux*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_printf_infinite="guessing no";;
+ netbsd*) gl_cv_func_printf_infinite="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_printf_infinite="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_infinite="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the *printf family of functions supports infinite and NaN
+dnl 'long double' arguments in the %f, %e, %g directives. (ISO C99, POSIX:2001)
+dnl Result is gl_cv_func_printf_infinite_long_double.
+
+AC_DEFUN([gl_PRINTF_INFINITE_LONG_DOUBLE],
+[
+ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gl_BIGENDIAN])
+ AC_REQUIRE([gl_LONG_DOUBLE_VS_DOUBLE])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ dnl The user can set or unset the variable gl_printf_safe to indicate
+ dnl that he wishes a safe handling of non-IEEE-754 'long double' values.
+ if test -n "$gl_printf_safe"; then
+ AC_DEFINE([CHECK_PRINTF_SAFE], [1],
+ [Define if you wish *printf() functions that have a safe handling of
+ non-IEEE-754 'long double' values.])
+ fi
+ case "$gl_cv_func_printf_long_double" in
+ *yes)
+ AC_CACHE_CHECK([whether printf supports infinite 'long double' arguments],
+ [gl_cv_func_printf_infinite_long_double],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+]GL_NOCRASH[
+#include <float.h>
+#include <stdio.h>
+#include <string.h>
+static int
+strisnan (const char *string, size_t start_index, size_t end_index)
+{
+ if (start_index < end_index)
+ {
+ if (string[start_index] == '-')
+ start_index++;
+ if (start_index + 3 <= end_index
+ && memcmp (string + start_index, "nan", 3) == 0)
+ {
+ start_index += 3;
+ if (start_index == end_index
+ || (string[start_index] == '(' && string[end_index - 1] == ')'))
+ return 1;
+ }
+ }
+ return 0;
+}
+static char buf[10000];
+static long double zeroL = 0.0L;
+int main ()
+{
+ int result = 0;
+ nocrash_init();
+ if (sprintf (buf, "%Lf", 1.0L / zeroL) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Lf", -1.0L / zeroL) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Lf", zeroL / zeroL) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 1;
+ if (sprintf (buf, "%Le", 1.0L / zeroL) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Le", -1.0L / zeroL) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Le", zeroL / zeroL) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 1;
+ if (sprintf (buf, "%Lg", 1.0L / zeroL) < 0
+ || (strcmp (buf, "inf") != 0 && strcmp (buf, "infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Lg", -1.0L / zeroL) < 0
+ || (strcmp (buf, "-inf") != 0 && strcmp (buf, "-infinity") != 0))
+ result |= 1;
+ if (sprintf (buf, "%Lg", zeroL / zeroL) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 1;
+#if CHECK_PRINTF_SAFE && ((defined __ia64 && LDBL_MANT_DIG == 64) || (defined __x86_64__ || defined __amd64__) || (defined __i386 || defined __i386__ || defined _I386 || defined _M_IX86 || defined _X86_)) && !HAVE_SAME_LONG_DOUBLE_AS_DOUBLE
+/* Representation of an 80-bit 'long double' as an initializer for a sequence
+ of 'unsigned int' words. */
+# ifdef WORDS_BIGENDIAN
+# define LDBL80_WORDS(exponent,manthi,mantlo) \
+ { ((unsigned int) (exponent) << 16) | ((unsigned int) (manthi) >> 16), \
+ ((unsigned int) (manthi) << 16) | (unsigned int) (mantlo) >> 16), \
+ (unsigned int) (mantlo) << 16 \
+ }
+# else
+# define LDBL80_WORDS(exponent,manthi,mantlo) \
+ { mantlo, manthi, exponent }
+# endif
+ { /* Quiet NaN. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0xFFFF, 0xC3333333, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ }
+ {
+ /* Signalling NaN. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0xFFFF, 0x83333333, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 2;
+ }
+ { /* Pseudo-NaN. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0xFFFF, 0x40000001, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 4;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 4;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 4;
+ }
+ { /* Pseudo-Infinity. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0xFFFF, 0x00000000, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 8;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 8;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 8;
+ }
+ { /* Pseudo-Zero. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0x4004, 0x00000000, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 16;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 16;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 16;
+ }
+ { /* Unnormalized number. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0x4000, 0x63333333, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 32;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 32;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 32;
+ }
+ { /* Pseudo-Denormal. */
+ static union { unsigned int word[4]; long double value; } x =
+ { LDBL80_WORDS (0x0000, 0x83333333, 0x00000000) };
+ if (sprintf (buf, "%Lf", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 64;
+ if (sprintf (buf, "%Le", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 64;
+ if (sprintf (buf, "%Lg", x.value) < 0
+ || !strisnan (buf, 0, strlen (buf)))
+ result |= 64;
+ }
+#endif
+ return result;
+}]])],
+ [gl_cv_func_printf_infinite_long_double=yes],
+ [gl_cv_func_printf_infinite_long_double=no],
+ [
+changequote(,)dnl
+ case "$host_cpu" in
+ # Guess no on ia64, x86_64, i386.
+ ia64 | x86_64 | i*86) gl_cv_func_printf_infinite_long_double="guessing no";;
+ *)
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+ # Guess yes on FreeBSD >= 6.
+ freebsd[1-5]*) gl_cv_func_printf_infinite_long_double="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+ # Guess yes on HP-UX >= 11.
+ hpux[7-9]* | hpux10*) gl_cv_func_printf_infinite_long_double="guessing no";;
+ hpux*) gl_cv_func_printf_infinite_long_double="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_infinite_long_double="guessing no";;
+ esac
+ ;;
+ esac
+changequote([,])dnl
+ ])
+ ])
+ ;;
+ *)
+ gl_cv_func_printf_infinite_long_double="irrelevant"
+ ;;
+ esac
+])
+
+dnl Test whether the *printf family of functions supports the 'a' and 'A'
+dnl conversion specifier for hexadecimal output of floating-point numbers.
+dnl (ISO C99, POSIX:2001)
+dnl Result is gl_cv_func_printf_directive_a.
+
+AC_DEFUN([gl_PRINTF_DIRECTIVE_A],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the 'a' and 'A' directives],
+ [gl_cv_func_printf_directive_a],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+static double zero = 0.0;
+int main ()
+{
+ int result = 0;
+ if (sprintf (buf, "%a %d", 3.1416015625, 33, 44, 55) < 0
+ || (strcmp (buf, "0x1.922p+1 33") != 0
+ && strcmp (buf, "0x3.244p+0 33") != 0
+ && strcmp (buf, "0x6.488p-1 33") != 0
+ && strcmp (buf, "0xc.91p-2 33") != 0))
+ result |= 1;
+ if (sprintf (buf, "%A %d", -3.1416015625, 33, 44, 55) < 0
+ || (strcmp (buf, "-0X1.922P+1 33") != 0
+ && strcmp (buf, "-0X3.244P+0 33") != 0
+ && strcmp (buf, "-0X6.488P-1 33") != 0
+ && strcmp (buf, "-0XC.91P-2 33") != 0))
+ result |= 2;
+ /* This catches a FreeBSD 6.1 bug: it doesn't round. */
+ if (sprintf (buf, "%.2a %d", 1.51, 33, 44, 55) < 0
+ || (strcmp (buf, "0x1.83p+0 33") != 0
+ && strcmp (buf, "0x3.05p-1 33") != 0
+ && strcmp (buf, "0x6.0ap-2 33") != 0
+ && strcmp (buf, "0xc.14p-3 33") != 0))
+ result |= 4;
+ /* This catches a FreeBSD 6.1 bug. See
+ <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html> */
+ if (sprintf (buf, "%010a %d", 1.0 / zero, 33, 44, 55) < 0
+ || buf[0] == '0')
+ result |= 8;
+ /* This catches a MacOS X 10.3.9 (Darwin 7.9) bug. */
+ if (sprintf (buf, "%.1a", 1.999) < 0
+ || (strcmp (buf, "0x1.0p+1") != 0
+ && strcmp (buf, "0x2.0p+0") != 0
+ && strcmp (buf, "0x4.0p-1") != 0
+ && strcmp (buf, "0x8.0p-2") != 0))
+ result |= 16;
+ /* This catches the same MacOS X 10.3.9 (Darwin 7.9) bug and also a
+ glibc 2.4 bug <http://sourceware.org/bugzilla/show_bug.cgi?id=2908>. */
+ if (sprintf (buf, "%.1La", 1.999L) < 0
+ || (strcmp (buf, "0x1.0p+1") != 0
+ && strcmp (buf, "0x2.0p+0") != 0
+ && strcmp (buf, "0x4.0p-1") != 0
+ && strcmp (buf, "0x8.0p-2") != 0))
+ result |= 32;
+ return result;
+}]])],
+ [gl_cv_func_printf_directive_a=yes],
+ [gl_cv_func_printf_directive_a=no],
+ [
+ case "$host_os" in
+ # Guess yes on glibc >= 2.5 systems.
+ *-gnu*)
+ AC_EGREP_CPP([BZ2908], [
+ #include <features.h>
+ #ifdef __GNU_LIBRARY__
+ #if ((__GLIBC__ == 2 && __GLIBC_MINOR__ >= 5) || (__GLIBC__ > 2)) && !defined __UCLIBC__
+ BZ2908
+ #endif
+ #endif
+ ],
+ [gl_cv_func_printf_directive_a="guessing yes"],
+ [gl_cv_func_printf_directive_a="guessing no"])
+ ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_directive_a="guessing no";;
+ esac
+ ])
+ ])
+])
+
+dnl Test whether the *printf family of functions supports the %F format
+dnl directive. (ISO C99, POSIX:2001)
+dnl Result is gl_cv_func_printf_directive_f.
+
+AC_DEFUN([gl_PRINTF_DIRECTIVE_F],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the 'F' directive],
+ [gl_cv_func_printf_directive_f],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+static double zero = 0.0;
+int main ()
+{
+ int result = 0;
+ if (sprintf (buf, "%F %d", 1234567.0, 33, 44, 55) < 0
+ || strcmp (buf, "1234567.000000 33") != 0)
+ result |= 1;
+ if (sprintf (buf, "%F", 1.0 / zero) < 0
+ || (strcmp (buf, "INF") != 0 && strcmp (buf, "INFINITY") != 0))
+ result |= 2;
+ /* This catches a Cygwin 1.5.x bug. */
+ if (sprintf (buf, "%.F", 1234.0) < 0
+ || strcmp (buf, "1234") != 0)
+ result |= 4;
+ return result;
+}]])],
+ [gl_cv_func_printf_directive_f=yes],
+ [gl_cv_func_printf_directive_f=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_directive_f="guessing yes";;
+ # Guess yes on FreeBSD >= 6.
+ freebsd[1-5]*) gl_cv_func_printf_directive_f="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_printf_directive_f="guessing no";;
+ darwin*) gl_cv_func_printf_directive_f="guessing yes";;
+ # Guess yes on Solaris >= 2.10.
+ solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ solaris*) gl_cv_func_printf_sizes_c99="guessing no";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_directive_f="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the *printf family of functions supports the %n format
+dnl directive. (ISO C99, POSIX:2001)
+dnl Result is gl_cv_func_printf_directive_n.
+
+AC_DEFUN([gl_PRINTF_DIRECTIVE_N],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the 'n' directive],
+ [gl_cv_func_printf_directive_n],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#ifdef _MSC_VER
+/* See page about "Parameter Validation" on msdn.microsoft.com. */
+static void cdecl
+invalid_parameter_handler (const wchar_t *expression,
+ const wchar_t *function,
+ const wchar_t *file, unsigned int line,
+ uintptr_t dummy)
+{
+ exit (1);
+}
+#endif
+static char fmtstring[10];
+static char buf[100];
+int main ()
+{
+ int count = -1;
+#ifdef _MSC_VER
+ _set_invalid_parameter_handler (invalid_parameter_handler);
+#endif
+ /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2)
+ support %n in format strings in read-only memory but not in writable
+ memory. */
+ strcpy (fmtstring, "%d %n");
+ if (sprintf (buf, fmtstring, 123, &count, 33, 44, 55) < 0
+ || strcmp (buf, "123 ") != 0
+ || count != 4)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_printf_directive_n=yes],
+ [gl_cv_func_printf_directive_n=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ mingw*) gl_cv_func_printf_directive_n="guessing no";;
+ *) gl_cv_func_printf_directive_n="guessing yes";;
+ esac
+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_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+/* 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 ()
+{
+ int result = 0;
+ 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)
+ result |= 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)
+ result |= 2;
+ }
+ /* 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)
+ result |= 8;
+ }
+ return result;
+}]])],
+ [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.
+
+AC_DEFUN([gl_PRINTF_POSITIONS],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports POSIX/XSI format strings with positions],
+ [gl_cv_func_printf_positions],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+/* The string "%2$d %1$d", with dollar characters protected from the shell's
+ dollar expansion (possibly an autoconf bug). */
+static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
+static char buf[100];
+int main ()
+{
+ sprintf (buf, format, 33, 55);
+ return (strcmp (buf, "55 33") != 0);
+}]])],
+ [gl_cv_func_printf_positions=yes],
+ [gl_cv_func_printf_positions=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ netbsd[1-3]* | netbsdelf[1-3]* | netbsdaout[1-3]* | netbsdcoff[1-3]*)
+ gl_cv_func_printf_positions="guessing no";;
+ beos*) gl_cv_func_printf_positions="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_positions="guessing no";;
+ *) gl_cv_func_printf_positions="guessing yes";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the *printf family of functions supports POSIX/XSI format
+dnl strings with the ' flag for grouping of decimal digits. (POSIX:2001)
+dnl Result is gl_cv_func_printf_flag_grouping.
+
+AC_DEFUN([gl_PRINTF_FLAG_GROUPING],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the grouping flag],
+ [gl_cv_func_printf_flag_grouping],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+int main ()
+{
+ if (sprintf (buf, "%'d %d", 1234567, 99) < 0
+ || buf[strlen (buf) - 1] != '9')
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_printf_flag_grouping=yes],
+ [gl_cv_func_printf_flag_grouping=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ cygwin*) gl_cv_func_printf_flag_grouping="guessing no";;
+ netbsd*) gl_cv_func_printf_flag_grouping="guessing no";;
+ mingw* | pw*) gl_cv_func_printf_flag_grouping="guessing no";;
+ *) gl_cv_func_printf_flag_grouping="guessing yes";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the *printf family of functions supports the - flag correctly.
+dnl (ISO C99.) See
+dnl <http://lists.gnu.org/archive/html/bug-coreutils/2008-02/msg00035.html>
+dnl Result is gl_cv_func_printf_flag_leftadjust.
+
+AC_DEFUN([gl_PRINTF_FLAG_LEFTADJUST],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the left-adjust flag correctly],
+ [gl_cv_func_printf_flag_leftadjust],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+int main ()
+{
+ /* Check that a '-' flag is not annihilated by a negative width. */
+ if (sprintf (buf, "a%-*sc", -3, "b") < 0
+ || strcmp (buf, "ab c") != 0)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_printf_flag_leftadjust=yes],
+ [gl_cv_func_printf_flag_leftadjust=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on HP-UX 11.
+ hpux11*) gl_cv_func_printf_flag_leftadjust="guessing yes";;
+ # Guess no on HP-UX 10 and older.
+ hpux*) gl_cv_func_printf_flag_leftadjust="guessing no";;
+ # Guess yes otherwise.
+ *) gl_cv_func_printf_flag_leftadjust="guessing yes";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the *printf family of functions supports padding of non-finite
+dnl values with the 0 flag correctly. (ISO C99 + TC1 + TC2.) See
+dnl <http://lists.gnu.org/archive/html/bug-gnulib/2007-04/msg00107.html>
+dnl Result is gl_cv_func_printf_flag_zero.
+
+AC_DEFUN([gl_PRINTF_FLAG_ZERO],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports the zero flag correctly],
+ [gl_cv_func_printf_flag_zero],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[100];
+static double zero = 0.0;
+int main ()
+{
+ if (sprintf (buf, "%010f", 1.0 / zero, 33, 44, 55) < 0
+ || (strcmp (buf, " inf") != 0
+ && strcmp (buf, " infinity") != 0))
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_printf_flag_zero=yes],
+ [gl_cv_func_printf_flag_zero=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_printf_flag_zero="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_flag_zero="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the *printf family of functions supports large precisions.
+dnl On mingw, precisions larger than 512 are treated like 512, in integer,
+dnl floating-point or pointer output. On Solaris 10/x86, precisions larger
+dnl than 510 in floating-point output crash the program. On Solaris 10/SPARC,
+dnl precisions larger than 510 in floating-point output yield wrong results.
+dnl On AIX 7.1, precisions larger than 998 in floating-point output yield
+dnl wrong results. On BeOS, precisions larger than 1044 crash the program.
+dnl Result is gl_cv_func_printf_precision.
+
+AC_DEFUN([gl_PRINTF_PRECISION],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf supports large precisions],
+ [gl_cv_func_printf_precision],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+static char buf[5000];
+int main ()
+{
+ int result = 0;
+#ifdef __BEOS__
+ /* On BeOS, this would crash and show a dialog box. Avoid the crash. */
+ return 1;
+#endif
+ if (sprintf (buf, "%.4000d %d", 1, 33, 44) < 4000 + 3)
+ result |= 1;
+ if (sprintf (buf, "%.4000f %d", 1.0, 33, 44) < 4000 + 5)
+ result |= 2;
+ if (sprintf (buf, "%.511f %d", 1.0, 33, 44) < 511 + 5
+ || buf[0] != '1')
+ result |= 4;
+ if (sprintf (buf, "%.999f %d", 1.0, 33, 44) < 999 + 5
+ || buf[0] != '1')
+ result |= 4;
+ return result;
+}]])],
+ [gl_cv_func_printf_precision=yes],
+ [gl_cv_func_printf_precision=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess no only on Solaris, native Windows, and BeOS systems.
+ solaris*) gl_cv_func_printf_precision="guessing no" ;;
+ mingw* | pw*) gl_cv_func_printf_precision="guessing no" ;;
+ beos*) gl_cv_func_printf_precision="guessing no" ;;
+ *) gl_cv_func_printf_precision="guessing yes" ;;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the *printf family of functions recovers gracefully in case
+dnl of an out-of-memory condition, or whether it crashes the entire program.
+dnl Result is gl_cv_func_printf_enomem.
+
+AC_DEFUN([gl_PRINTF_ENOMEM],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gl_MULTIARCH])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether printf survives out-of-memory conditions],
+ [gl_cv_func_printf_enomem],
+ [
+ gl_cv_func_printf_enomem="guessing no"
+ if test "$cross_compiling" = no; then
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+ AC_LANG_CONFTEST([AC_LANG_SOURCE([
+]GL_NOCRASH[
+changequote(,)dnl
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+#include <errno.h>
+int main()
+{
+ struct rlimit limit;
+ int ret;
+ nocrash_init ();
+ /* Some printf implementations allocate temporary space with malloc. */
+ /* On BSD systems, malloc() is limited by RLIMIT_DATA. */
+#ifdef RLIMIT_DATA
+ if (getrlimit (RLIMIT_DATA, &limit) < 0)
+ return 77;
+ if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
+ limit.rlim_max = 5000000;
+ limit.rlim_cur = limit.rlim_max;
+ if (setrlimit (RLIMIT_DATA, &limit) < 0)
+ return 77;
+#endif
+ /* On Linux systems, malloc() is limited by RLIMIT_AS. */
+#ifdef RLIMIT_AS
+ if (getrlimit (RLIMIT_AS, &limit) < 0)
+ return 77;
+ if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
+ limit.rlim_max = 5000000;
+ limit.rlim_cur = limit.rlim_max;
+ if (setrlimit (RLIMIT_AS, &limit) < 0)
+ return 77;
+#endif
+ /* Some printf implementations allocate temporary space on the stack. */
+#ifdef RLIMIT_STACK
+ if (getrlimit (RLIMIT_STACK, &limit) < 0)
+ return 77;
+ if (limit.rlim_max == RLIM_INFINITY || limit.rlim_max > 5000000)
+ limit.rlim_max = 5000000;
+ limit.rlim_cur = limit.rlim_max;
+ if (setrlimit (RLIMIT_STACK, &limit) < 0)
+ return 77;
+#endif
+ ret = printf ("%.5000000f", 1.0);
+ return !(ret == 5000002 || (ret < 0 && errno == ENOMEM));
+}
+changequote([,])dnl
+ ])])
+ if AC_TRY_EVAL([ac_link]) && test -s conftest$ac_exeext; then
+ (./conftest
+ result=$?
+ if test $result != 0 && test $result != 77; then result=1; fi
+ exit $result
+ ) >/dev/null 2>/dev/null
+ case $? in
+ 0) gl_cv_func_printf_enomem="yes" ;;
+ 77) gl_cv_func_printf_enomem="guessing no" ;;
+ *) gl_cv_func_printf_enomem="no" ;;
+ esac
+ else
+ gl_cv_func_printf_enomem="guessing no"
+ fi
+ rm -fr conftest*
+ else
+ dnl A universal build on Apple MacOS X platforms.
+ dnl The result would be 'no' in 32-bit mode and 'yes' in 64-bit mode.
+ dnl But we need a configuration result that is valid in both modes.
+ gl_cv_func_printf_enomem="guessing no"
+ fi
+ fi
+ if test "$gl_cv_func_printf_enomem" = "guessing no"; then
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on Solaris.
+ solaris*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on AIX.
+ aix*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on HP-UX/hppa.
+ hpux*) case "$host_cpu" in
+ hppa*) gl_cv_func_printf_enomem="guessing yes";;
+ *) gl_cv_func_printf_enomem="guessing no";;
+ esac
+ ;;
+ # Guess yes on IRIX.
+ irix*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on OSF/1.
+ osf*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_printf_enomem="guessing yes";;
+ # Guess yes on Haiku.
+ haiku*) gl_cv_func_printf_enomem="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_printf_enomem="guessing no";;
+ esac
+changequote([,])dnl
+ fi
+ ])
+])
+
+dnl Test whether the snprintf function exists. (ISO C99, POSIX:2001)
+dnl Result is ac_cv_func_snprintf.
+
+AC_DEFUN([gl_SNPRINTF_PRESENCE],
+[
+ AC_CHECK_FUNCS_ONCE([snprintf])
+])
+
+dnl Test whether the string produced by the snprintf function is always NUL
+dnl terminated. (ISO C99, POSIX:2001)
+dnl Result is gl_cv_func_snprintf_truncation_c99.
+
+AC_DEFUN([gl_SNPRINTF_TRUNCATION_C99],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_SNPRINTF_PRESENCE])
+ AC_CACHE_CHECK([whether snprintf truncates the result as in C99],
+ [gl_cv_func_snprintf_truncation_c99],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+static char buf[100];
+int main ()
+{
+ strcpy (buf, "ABCDEF");
+ my_snprintf (buf, 3, "%d %d", 4567, 89);
+ if (memcmp (buf, "45\0DEF", 6) != 0)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_snprintf_truncation_c99=yes],
+ [gl_cv_func_snprintf_truncation_c99=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ darwin*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on OpenBSD >= 3.9.
+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+ gl_cv_func_snprintf_truncation_c99="guessing no";;
+ openbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on Solaris >= 2.6.
+ solaris2.[0-5] | solaris2.[0-5].*)
+ gl_cv_func_snprintf_truncation_c99="guessing no";;
+ solaris*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on AIX >= 4.
+ aix[1-3]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ aix*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on HP-UX >= 11.
+ hpux[7-9]* | hpux10*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ hpux*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on IRIX >= 6.5.
+ irix6.5) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on OSF/1 >= 5.
+ osf[3-4]*) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ osf*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_snprintf_truncation_c99="guessing no";;
+ netbsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_snprintf_truncation_c99="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_snprintf_truncation_c99="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the return value of the snprintf function is the number
+dnl of bytes (excluding the terminating NUL) that would have been produced
+dnl if the buffer had been large enough. (ISO C99, POSIX:2001)
+dnl For example, this test program fails on IRIX 6.5:
+dnl ---------------------------------------------------------------------
+dnl #include <stdio.h>
+dnl int main()
+dnl {
+dnl static char buf[8];
+dnl int retval = snprintf (buf, 3, "%d", 12345);
+dnl return retval >= 0 && retval < 3;
+dnl }
+dnl ---------------------------------------------------------------------
+dnl Result is gl_cv_func_snprintf_retval_c99.
+
+AC_DEFUN_ONCE([gl_SNPRINTF_RETVAL_C99],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_SNPRINTF_PRESENCE])
+ AC_CACHE_CHECK([whether snprintf returns a byte count as in C99],
+ [gl_cv_func_snprintf_retval_c99],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+static char buf[100];
+int main ()
+{
+ strcpy (buf, "ABCDEF");
+ if (my_snprintf (buf, 3, "%d %d", 4567, 89) != 7)
+ return 1;
+ if (my_snprintf (buf, 0, "%d %d", 4567, 89) != 7)
+ return 2;
+ if (my_snprintf (NULL, 0, "%d %d", 4567, 89) != 7)
+ return 3;
+ return 0;
+}]])],
+ [gl_cv_func_snprintf_retval_c99=yes],
+ [gl_cv_func_snprintf_retval_c99=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ darwin*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on OpenBSD >= 3.9.
+ openbsd[1-2].* | openbsd3.[0-8] | openbsd3.[0-8].*)
+ gl_cv_func_snprintf_retval_c99="guessing no";;
+ openbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on Solaris >= 2.10.
+ solaris2.[1-9][0-9]*) gl_cv_func_printf_sizes_c99="guessing yes";;
+ solaris*) gl_cv_func_printf_sizes_c99="guessing no";;
+ # Guess yes on AIX >= 4.
+ aix[1-3]*) gl_cv_func_snprintf_retval_c99="guessing no";;
+ aix*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_snprintf_retval_c99="guessing no";;
+ netbsd*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_snprintf_retval_c99="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_snprintf_retval_c99="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the snprintf function supports the %n format directive
+dnl also in truncated portions of the format string. (ISO C99, POSIX:2001)
+dnl Result is gl_cv_func_snprintf_directive_n.
+
+AC_DEFUN([gl_SNPRINTF_DIRECTIVE_N],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_REQUIRE([gl_SNPRINTF_PRESENCE])
+ AC_CACHE_CHECK([whether snprintf fully supports the 'n' directive],
+ [gl_cv_func_snprintf_directive_n],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#include <string.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+static char fmtstring[10];
+static char buf[100];
+int main ()
+{
+ int count = -1;
+ /* Copy the format string. Some systems (glibc with _FORTIFY_SOURCE=2)
+ support %n in format strings in read-only memory but not in writable
+ memory. */
+ strcpy (fmtstring, "%d %n");
+ my_snprintf (buf, 4, fmtstring, 12345, &count, 33, 44, 55);
+ if (count != 6)
+ return 1;
+ return 0;
+}]])],
+ [gl_cv_func_snprintf_directive_n=yes],
+ [gl_cv_func_snprintf_directive_n=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_snprintf_directive_n="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_snprintf_directive_n="guessing no";;
+ darwin*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on Solaris >= 2.6.
+ solaris2.[0-5] | solaris2.[0-5].*)
+ gl_cv_func_snprintf_directive_n="guessing no";;
+ solaris*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on AIX >= 4.
+ aix[1-3]*) gl_cv_func_snprintf_directive_n="guessing no";;
+ aix*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on IRIX >= 6.5.
+ irix6.5) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on OSF/1 >= 5.
+ osf[3-4]*) gl_cv_func_snprintf_directive_n="guessing no";;
+ osf*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_snprintf_directive_n="guessing no";;
+ netbsd*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_snprintf_directive_n="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_snprintf_directive_n="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl Test whether the snprintf function, when passed a size = 1, writes any
+dnl output without bounds in this case, behaving like sprintf. This is the
+dnl case on Linux libc5.
+dnl Result is gl_cv_func_snprintf_size1.
+
+AC_DEFUN([gl_SNPRINTF_SIZE1],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([gl_SNPRINTF_PRESENCE])
+ AC_CACHE_CHECK([whether snprintf respects a size of 1],
+ [gl_cv_func_snprintf_size1],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#if HAVE_SNPRINTF
+# define my_snprintf snprintf
+#else
+# include <stdarg.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+#endif
+int main()
+{
+ static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+ my_snprintf (buf, 1, "%d", 12345);
+ return buf[1] != 'E';
+}]])],
+ [gl_cv_func_snprintf_size1=yes],
+ [gl_cv_func_snprintf_size1=no],
+ [gl_cv_func_snprintf_size1="guessing yes"])
+ ])
+])
+
+dnl Test whether the vsnprintf function, when passed a zero size, produces no
+dnl output. (ISO C99, POSIX:2001)
+dnl For example, snprintf nevertheless writes a NUL byte in this case
+dnl on OSF/1 5.1:
+dnl ---------------------------------------------------------------------
+dnl #include <stdio.h>
+dnl int main()
+dnl {
+dnl static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+dnl snprintf (buf, 0, "%d", 12345);
+dnl return buf[0] != 'D';
+dnl }
+dnl ---------------------------------------------------------------------
+dnl And vsnprintf writes any output without bounds in this case, behaving like
+dnl vsprintf, on HP-UX 11 and OSF/1 5.1:
+dnl ---------------------------------------------------------------------
+dnl #include <stdarg.h>
+dnl #include <stdio.h>
+dnl static int my_snprintf (char *buf, int size, const char *format, ...)
+dnl {
+dnl va_list args;
+dnl int ret;
+dnl va_start (args, format);
+dnl ret = vsnprintf (buf, size, format, args);
+dnl va_end (args);
+dnl return ret;
+dnl }
+dnl int main()
+dnl {
+dnl static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+dnl my_snprintf (buf, 0, "%d", 12345);
+dnl return buf[0] != 'D';
+dnl }
+dnl ---------------------------------------------------------------------
+dnl Result is gl_cv_func_vsnprintf_zerosize_c99.
+
+AC_DEFUN([gl_VSNPRINTF_ZEROSIZE_C99],
+[
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
+ AC_CACHE_CHECK([whether vsnprintf respects a zero size as in C99],
+ [gl_cv_func_vsnprintf_zerosize_c99],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdarg.h>
+#include <stdio.h>
+static int my_snprintf (char *buf, int size, const char *format, ...)
+{
+ va_list args;
+ int ret;
+ va_start (args, format);
+ ret = vsnprintf (buf, size, format, args);
+ va_end (args);
+ return ret;
+}
+int main()
+{
+ static char buf[8] = { 'D', 'E', 'A', 'D', 'B', 'E', 'E', 'F' };
+ my_snprintf (buf, 0, "%d", 12345);
+ return buf[0] != 'D';
+}]])],
+ [gl_cv_func_vsnprintf_zerosize_c99=yes],
+ [gl_cv_func_vsnprintf_zerosize_c99=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on FreeBSD >= 5.
+ freebsd[1-4]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on MacOS X >= 10.3.
+ darwin[1-6].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ darwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on Cygwin.
+ cygwin*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on Solaris >= 2.6.
+ solaris2.[0-5] | solaris2.[0-5].*)
+ gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ solaris*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on AIX >= 4.
+ aix[1-3]*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ aix*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on IRIX >= 6.5.
+ irix6.5) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on NetBSD >= 3.
+ netbsd[1-2]* | netbsdelf[1-2]* | netbsdaout[1-2]* | netbsdcoff[1-2]*)
+ gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ netbsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on BeOS.
+ beos*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # Guess yes on mingw.
+ mingw* | pw*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_vsnprintf_zerosize_c99="guessing no";;
+ esac
+changequote([,])dnl
+ ])
+ ])
+])
+
+dnl The results of these tests on various platforms are:
+dnl
+dnl 1 = gl_PRINTF_SIZES_C99
+dnl 2 = gl_PRINTF_LONG_DOUBLE
+dnl 3 = gl_PRINTF_INFINITE
+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_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...
+dnl 3 = checking whether printf supports infinite 'double' arguments...
+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 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 20
+dnl glibc 2.5 . . . . . . . . . . . . . . . . . . . .
+dnl glibc 2.3.6 . . . . # . . . . . . . . . . . . . . .
+dnl FreeBSD 5.4, 6.1 . . . . # . . . . . . # . # . . . . . .
+dnl MacOS X 10.5.8 . . . # # . . . . . . # . . . . . . . .
+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 11 2011-11 . . # # # . . # . . . # . . . . . . . .
+dnl Solaris 10 . . # # # . . # . . . # # . . . . . . .
+dnl Solaris 2.6 ... 9 # . # # # # . # . . . # # . . . # . . .
+dnl Solaris 2.5.1 # . # # # # . # . . . # . . # # # # # #
+dnl AIX 7.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 5.0 . . . # # . . . . . . # . # . . . . . .
+dnl NetBSD 4.0 . ? ? ? ? ? . ? . ? ? ? ? ? . . . ? ? ?
+dnl NetBSD 3.0 . . . . # # . ? # # ? # . # . . . . . .
+dnl Haiku . . . # # # . # . . . . . ? . . ? . . .
+dnl BeOS # # . # # # . ? # . ? . # ? . . ? . . .
+dnl old mingw / msvcrt # # # # # # . . # # . # # ? . # # # . .
+dnl MSVC 9 # # # # # # # . # # . # # ? # # # # . .
+dnl mingw 2009-2011 . # . # . . . . # # . . . ? . . . . . .
+dnl mingw-w64 2011 # # # # # # . . # # . # # ? . # # # . .
diff --git a/m4/priv-set.m4 b/m4/priv-set.m4
new file mode 100644
index 00000000..538757b7
--- /dev/null
+++ b/m4/priv-set.m4
@@ -0,0 +1,16 @@
+# serial 7
+
+# Copyright (C) 2009-2012 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])
+ AC_CHECK_HEADERS_ONCE([priv.h])
+])
diff --git a/m4/progtest.m4 b/m4/progtest.m4
new file mode 100644
index 00000000..ce3abbc7
--- /dev/null
+++ b/m4/progtest.m4
@@ -0,0 +1,91 @@
+# progtest.m4 serial 7 (gettext-0.18.2)
+dnl Copyright (C) 1996-2003, 2005, 2008-2012 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
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+AC_PREREQ([2.50])
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which
+ # contains only /bin. Note that ksh looks also at the FPATH variable,
+ # so we have to set that as well for the test.
+ 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
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL([ac_cv_path_$1],
+[case "[$]$1" in
+ [[\\/]]* | ?:[[\\/]]*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+ AC_MSG_RESULT([$][$1])
+else
+ AC_MSG_RESULT([no])
+fi
+AC_SUBST([$1])dnl
+])
diff --git a/m4/quote.m4 b/m4/quote.m4
new file mode 100644
index 00000000..7b055847
--- /dev/null
+++ b/m4/quote.m4
@@ -0,0 +1,13 @@
+# quote.m4 serial 6
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2012 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_QUOTE],
+[
+ dnl Prerequisites of lib/quote.c.
+ dnl (none)
+ :
+])
diff --git a/m4/quotearg.m4 b/m4/quotearg.m4
new file mode 100644
index 00000000..09c36bb2
--- /dev/null
+++ b/m4/quotearg.m4
@@ -0,0 +1,10 @@
+# quotearg.m4 serial 9
+dnl Copyright (C) 2002, 2004-2012 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_QUOTEARG],
+[
+ :
+])
diff --git a/m4/raise.m4 b/m4/raise.m4
new file mode 100644
index 00000000..18eb8b91
--- /dev/null
+++ b/m4/raise.m4
@@ -0,0 +1,36 @@
+# raise.m4 serial 2
+dnl Copyright (C) 2011-2012 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_RAISE],
+[
+ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ AC_CHECK_FUNCS([raise])
+ if test $ac_cv_func_raise = no; then
+ HAVE_RAISE=0
+ else
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_RAISE=1
+ fi
+ m4_ifdef([gl_SIGNALBLOCKING], [
+ gl_SIGNALBLOCKING
+ if test $HAVE_POSIX_SIGNALBLOCKING = 0; then
+ m4_ifdef([gl_SIGNAL_SIGPIPE], [
+ gl_SIGNAL_SIGPIPE
+ if test $gl_cv_header_signal_h_SIGPIPE != yes; then
+ REPLACE_RAISE=1
+ fi
+ ], [:])
+ fi
+ ])
+ fi
+])
+
+# Prerequisites of lib/raise.c.
+AC_DEFUN([gl_PREREQ_RAISE], [
+ AC_REQUIRE([AC_C_INLINE])
+])
diff --git a/m4/rawmemchr.m4 b/m4/rawmemchr.m4
new file mode 100644
index 00000000..19301644
--- /dev/null
+++ b/m4/rawmemchr.m4
@@ -0,0 +1,20 @@
+# rawmemchr.m4 serial 2
+dnl Copyright (C) 2003, 2007-2012 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_RAWMEMCHR],
+[
+ dnl Persuade glibc <string.h> to declare rawmemchr().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_FUNCS([rawmemchr])
+ if test $ac_cv_func_rawmemchr = no; then
+ HAVE_RAWMEMCHR=0
+ fi
+])
+
+# Prerequisites of lib/strchrnul.c.
+AC_DEFUN([gl_PREREQ_RAWMEMCHR], [:])
diff --git a/m4/read.m4 b/m4/read.m4
new file mode 100644
index 00000000..69aeb096
--- /dev/null
+++ b/m4/read.m4
@@ -0,0 +1,29 @@
+# read.m4 serial 3
+dnl Copyright (C) 2011-2012 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_READ],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_READ=1
+ fi
+ dnl This ifdef is just an optimization, to avoid performing a configure
+ dnl check whose result is not used. It does not make the test of
+ dnl GNULIB_UNISTD_H_NONBLOCKING or GNULIB_NONBLOCKING redundant.
+ m4_ifdef([gl_NONBLOCKING_IO], [
+ gl_NONBLOCKING_IO
+ if test $gl_cv_have_nonblocking != yes; then
+ REPLACE_READ=1
+ fi
+ ])
+])
+
+# Prerequisites of lib/read.c.
+AC_DEFUN([gl_PREREQ_READ],
+[
+ AC_REQUIRE([AC_C_INLINE])
+])
diff --git a/m4/readdir.m4 b/m4/readdir.m4
new file mode 100644
index 00000000..437ec08c
--- /dev/null
+++ b/m4/readdir.m4
@@ -0,0 +1,15 @@
+# readdir.m4 serial 1
+dnl Copyright (C) 2011-2012 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_READDIR],
+[
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_FUNCS([readdir])
+ if test $ac_cv_func_readdir = no; then
+ HAVE_READDIR=0
+ fi
+])
diff --git a/m4/readlink.m4 b/m4/readlink.m4
new file mode 100644
index 00000000..107083f7
--- /dev/null
+++ b/m4/readlink.m4
@@ -0,0 +1,59 @@
+# readlink.m4 serial 11
+dnl Copyright (C) 2003, 2007, 2009-2012 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_READLINK],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([readlink])
+ if test $ac_cv_func_readlink = no; then
+ HAVE_READLINK=0
+ 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
+ elif test "$gl_cv_decl_readlink_works" != yes; then
+ REPLACE_READLINK=1
+ fi
+ fi
+])
+
+# Like gl_FUNC_READLINK, except prepare for separate compilation
+# (no REPLACE_READLINK, no AC_LIBOBJ).
+AC_DEFUN([gl_FUNC_READLINK_SEPARATE],
+[
+ AC_CHECK_FUNCS_ONCE([readlink])
+ gl_PREREQ_READLINK
+])
+
+# Prerequisites of lib/readlink.c.
+AC_DEFUN([gl_PREREQ_READLINK],
+[
+ :
+])
diff --git a/m4/readlinkat.m4 b/m4/readlinkat.m4
new file mode 100644
index 00000000..455ab7ef
--- /dev/null
+++ b/m4/readlinkat.m4
@@ -0,0 +1,20 @@
+# serial 2
+# See if we need to provide readlinkat replacement.
+
+dnl Copyright (C) 2009-2012 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_READLINKAT],
+[
+ AC_REQUIRE([gl_FUNC_OPENAT])
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([readlinkat])
+ if test $ac_cv_func_readlinkat = no; then
+ HAVE_READLINKAT=0
+ fi
+])
diff --git a/m4/realloc.m4 b/m4/realloc.m4
new file mode 100644
index 00000000..039ed192
--- /dev/null
+++ b/m4/realloc.m4
@@ -0,0 +1,38 @@
+# realloc.m4 serial 12
+dnl Copyright (C) 2007, 2009-2012 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_FUNC_REALLOC_GNU
+# -------------------
+# Test whether 'realloc (0, 0)' is handled like in GNU libc, and replace
+# realloc if it is not.
+AC_DEFUN([gl_FUNC_REALLOC_GNU],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ dnl _AC_FUNC_REALLOC_IF is defined in Autoconf.
+ _AC_FUNC_REALLOC_IF(
+ [AC_DEFINE([HAVE_REALLOC_GNU], [1],
+ [Define to 1 if your system has a GNU libc compatible 'realloc'
+ function, and to 0 otherwise.])],
+ [AC_DEFINE([HAVE_REALLOC_GNU], [0])
+ REPLACE_REALLOC=1
+ ])
+])# gl_FUNC_REALLOC_GNU
+
+# gl_FUNC_REALLOC_POSIX
+# ---------------------
+# Test whether 'realloc' is POSIX compliant (sets errno to ENOMEM when it
+# fails), and replace realloc if it is not.
+AC_DEFUN([gl_FUNC_REALLOC_POSIX],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+ if test $gl_cv_func_malloc_posix = yes; then
+ AC_DEFINE([HAVE_REALLOC_POSIX], [1],
+ [Define if the 'realloc' function is POSIX compliant.])
+ else
+ REPLACE_REALLOC=1
+ fi
+])
diff --git a/m4/regex.m4 b/m4/regex.m4
new file mode 100644
index 00000000..08f1352e
--- /dev/null
+++ b/m4/regex.m4
@@ -0,0 +1,223 @@
+# serial 60
+
+# Copyright (C) 1996-2001, 2003-2012 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 Initially derived from code in GNU grep.
+dnl Mostly written by Jim Meyering.
+
+AC_PREREQ([2.50])
+
+AC_DEFUN([gl_REGEX],
+[
+ AC_ARG_WITH([included-regex],
+ [AS_HELP_STRING([--without-included-regex],
+ [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],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [AC_INCLUDES_DEFAULT[
+ #include <locale.h>
+ #include <limits.h>
+ #include <regex.h>
+ ]],
+ [[int result = 0;
+ static struct re_pattern_buffer regex;
+ unsigned char folded_chars[UCHAR_MAX + 1];
+ int i;
+ const char *s;
+ struct re_registers regs;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern (pat, sizeof pat - 1, &regex);
+ if (s)
+ result |= 1;
+ else if (re_search (&regex, data, sizeof data - 1,
+ 0, sizeof data - 1, &regs)
+ != -1)
+ result |= 1;
+ if (! setlocale (LC_ALL, "C"))
+ return 1;
+ }
+
+ /* This test is from glibc bug 3957, reported by Andrew Mackey. */
+ re_set_syntax (RE_SYNTAX_EGREP | RE_HAT_LISTS_NOT_NEWLINE);
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("a[^x]b", 6, &regex);
+ if (s)
+ result |= 2;
+ /* This should fail, but succeeds for glibc-2.5. */
+ else if (re_search (&regex, "a\nb", 3, 0, 3, &regs) != -1)
+ result |= 2;
+
+ /* This regular expression is from Spencer ere test number 75
+ in grep-2.3. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP);
+ memset (&regex, 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, &regex);
+ /* This should fail with _Invalid character class name_ error. */
+ if (!s)
+ result |= 4;
+
+ /* Ensure that [b-a] is diagnosed as invalid, when
+ using RE_NO_EMPTY_RANGES. */
+ re_set_syntax (RE_SYNTAX_POSIX_EGREP | RE_NO_EMPTY_RANGES);
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("a[b-a]", 6, &regex);
+ if (s == 0)
+ result |= 8;
+
+ /* This should succeed, but does not for glibc-2.1.3. */
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("{1", 2, &regex);
+ if (s)
+ result |= 8;
+
+ /* The following example is derived from a problem report
+ against gawk from Jorge Stolfi <stolfi@ic.unicamp.br>. */
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("[an\371]*n", 7, &regex);
+ if (s)
+ result |= 8;
+ /* This should match, but does not for glibc-2.2.1. */
+ else if (re_match (&regex, "an", 2, 0, &regs) != 2)
+ result |= 8;
+
+ memset (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("x", 1, &regex);
+ if (s)
+ result |= 8;
+ /* glibc-2.2.93 does not work with a negative RANGE argument. */
+ else if (re_search (&regex, "wxy", 3, 2, -2, &regs) != 1)
+ result |= 8;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("x", 1, &regex);
+ if (s)
+ result |= 16;
+ else if (re_search (&regex, "WXY", 3, 0, 3, &regs) < 0)
+ result |= 16;
+
+ /* 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 (&regex, 0, sizeof regex);
+ s = re_compile_pattern ("[[:alnum:]_-]\\\\+$", 16, &regex);
+ if (s)
+ result |= 32;
+
+ /* REG_STARTEND was added to glibc on 2004-01-15.
+ Reject older versions. */
+ if (! REG_STARTEND)
+ result |= 64;
+
+#if 0
+ /* It would be nice to reject hosts whose regoff_t values are too
+ narrow (including glibc on hosts with 64-bit ptrdiff_t and
+ 32-bit int), but we should wait until glibc implements this
+ feature. Otherwise, support for equivalence classes and
+ multibyte collation symbols would always be broken except
+ when compiling --without-included-regex. */
+ if (sizeof (regoff_t) < sizeof (ptrdiff_t)
+ || sizeof (regoff_t) < sizeof (ssize_t))
+ result |= 64;
+#endif
+
+ return result;
+ ]])],
+ [gl_cv_func_re_compile_pattern_working=yes],
+ [gl_cv_func_re_compile_pattern_working=no],
+ dnl When crosscompiling, assume it is not working.
+ [gl_cv_func_re_compile_pattern_working=no])])
+ case $gl_cv_func_re_compile_pattern_working in #(
+ yes) ac_use_included_regex=no;; #(
+ no) ac_use_included_regex=yes;;
+ esac
+ ;;
+ *) AC_MSG_ERROR([Invalid value for --with-included-regex: $with_included_regex])
+ ;;
+ esac
+
+ if test $ac_use_included_regex = yes; then
+ AC_DEFINE([_REGEX_LARGE_OFFSETS], [1],
+ [Define if you want regoff_t to be at least as wide POSIX requires.])
+ AC_DEFINE([re_syntax_options], [rpl_re_syntax_options],
+ [Define to rpl_re_syntax_options if the replacement should be used.])
+ AC_DEFINE([re_set_syntax], [rpl_re_set_syntax],
+ [Define to rpl_re_set_syntax if the replacement should be used.])
+ AC_DEFINE([re_compile_pattern], [rpl_re_compile_pattern],
+ [Define to rpl_re_compile_pattern if the replacement should be used.])
+ AC_DEFINE([re_compile_fastmap], [rpl_re_compile_fastmap],
+ [Define to rpl_re_compile_fastmap if the replacement should be used.])
+ AC_DEFINE([re_search], [rpl_re_search],
+ [Define to rpl_re_search if the replacement should be used.])
+ AC_DEFINE([re_search_2], [rpl_re_search_2],
+ [Define to rpl_re_search_2 if the replacement should be used.])
+ AC_DEFINE([re_match], [rpl_re_match],
+ [Define to rpl_re_match if the replacement should be used.])
+ AC_DEFINE([re_match_2], [rpl_re_match_2],
+ [Define to rpl_re_match_2 if the replacement should be used.])
+ AC_DEFINE([re_set_registers], [rpl_re_set_registers],
+ [Define to rpl_re_set_registers if the replacement should be used.])
+ AC_DEFINE([re_comp], [rpl_re_comp],
+ [Define to rpl_re_comp if the replacement should be used.])
+ AC_DEFINE([re_exec], [rpl_re_exec],
+ [Define to rpl_re_exec if the replacement should be used.])
+ AC_DEFINE([regcomp], [rpl_regcomp],
+ [Define to rpl_regcomp if the replacement should be used.])
+ AC_DEFINE([regexec], [rpl_regexec],
+ [Define to rpl_regexec if the replacement should be used.])
+ AC_DEFINE([regerror], [rpl_regerror],
+ [Define to rpl_regerror if the replacement should be used.])
+ AC_DEFINE([regfree], [rpl_regfree],
+ [Define to rpl_regfree if the replacement should be used.])
+ fi
+])
+
+# Prerequisites of lib/regex.c and lib/regex_internal.c.
+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])
+ AC_CHECK_FUNCS_ONCE([isblank iswctype wcscoll])
+ AC_CHECK_DECLS([isblank], [], [], [[#include <ctype.h>]])
+])
diff --git a/m4/rename.m4 b/m4/rename.m4
new file mode 100644
index 00000000..59cc5c76
--- /dev/null
+++ b/m4/rename.m4
@@ -0,0 +1,189 @@
+# serial 25
+
+# Copyright (C) 2001, 2003, 2005-2006, 2009-2012 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 From Volker Borchert.
+dnl Determine whether rename works for source file names with a trailing slash.
+dnl The rename from SunOS 4.1.1_U1 doesn't.
+dnl
+dnl If it doesn't, then define RENAME_TRAILING_SLASH_BUG and arrange
+dnl to compile the wrapper function.
+dnl
+
+AC_DEFUN([gl_FUNC_RENAME],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([lstat])
+
+ dnl Solaris 10, AIX 7.1 mistakenly allow rename("file","name/").
+ dnl NetBSD 1.6 mistakenly forbids rename("dir","name/").
+ dnl FreeBSD 7.2 mistakenly allows rename("file","link-to-file/").
+ dnl The Solaris bug can be worked around without stripping
+ dnl trailing slash, while the NetBSD bug requires stripping;
+ dnl the two conditions can be distinguished by whether hard
+ dnl links are also broken.
+ AC_CACHE_CHECK([whether rename honors trailing slash on destination],
+ [gl_cv_func_rename_slash_dst_works],
+ [rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+ touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+ AC_MSG_ERROR([cannot create temporary files])
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.f conftest.lnk
+ fi
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[
+# include <stdio.h>
+# include <stdlib.h>
+ ]],
+ [[int result = 0;
+ if (rename ("conftest.f1", "conftest.f2/") == 0)
+ result |= 1;
+ if (rename ("conftest.d1", "conftest.d2/") != 0)
+ result |= 2;
+#if HAVE_LSTAT
+ if (rename ("conftest.f", "conftest.lnk/") == 0)
+ result |= 4;
+#endif
+ return result;
+ ]])],
+ [gl_cv_func_rename_slash_dst_works=yes],
+ [gl_cv_func_rename_slash_dst_works=no],
+ dnl When crosscompiling, assume rename is broken.
+ [gl_cv_func_rename_slash_dst_works="guessing no"])
+ rm -rf conftest.f conftest.f1 conftest.f2 conftest.d1 conftest.d2 conftest.lnk
+ ])
+ if test "x$gl_cv_func_rename_slash_dst_works" != xyes; then
+ REPLACE_RENAME=1
+ AC_DEFINE([RENAME_TRAILING_SLASH_DEST_BUG], [1],
+ [Define if rename does not correctly handle slashes on the destination
+ argument, such as on Solaris 10 or NetBSD 1.6.])
+ fi
+
+ dnl SunOS 4.1.1_U1 mistakenly forbids rename("dir/","name").
+ dnl Solaris 9 mistakenly allows rename("file/","name").
+ dnl FreeBSD 7.2 mistakenly allows rename("link-to-file/","name").
+ dnl These bugs require stripping trailing slash to avoid corrupting
+ dnl symlinks with a trailing slash.
+ AC_CACHE_CHECK([whether rename honors trailing slash on source],
+ [gl_cv_func_rename_slash_src_works],
+ [rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+ touch conftest.f && touch conftest.f1 && mkdir conftest.d1 ||
+ AC_MSG_ERROR([cannot create temporary files])
+ # Assume that if we have lstat, we can also check symlinks.
+ if test $ac_cv_func_lstat = yes; then
+ ln -s conftest.f conftest.lnk
+ fi
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[
+# include <stdio.h>
+# include <stdlib.h>
+ ]],
+ [[int result = 0;
+ if (rename ("conftest.f1/", "conftest.d3") == 0)
+ result |= 1;
+ if (rename ("conftest.d1/", "conftest.d2") != 0)
+ result |= 2;
+#if HAVE_LSTAT
+ if (rename ("conftest.lnk/", "conftest.f") == 0)
+ result |= 4;
+#endif
+ return result;
+ ]])],
+ [gl_cv_func_rename_slash_src_works=yes],
+ [gl_cv_func_rename_slash_src_works=no],
+ dnl When crosscompiling, assume rename is broken.
+ [gl_cv_func_rename_slash_src_works="guessing no"])
+ rm -rf conftest.f conftest.f1 conftest.d1 conftest.d2 conftest.d3 conftest.lnk
+ ])
+ if test "x$gl_cv_func_rename_slash_src_works" != xyes; then
+ REPLACE_RENAME=1
+ AC_DEFINE([RENAME_TRAILING_SLASH_SOURCE_BUG], [1],
+ [Define if rename does not correctly handle slashes on the source
+ argument, such as on Solaris 9 or cygwin 1.5.])
+ fi
+
+ dnl NetBSD 1.6 and cygwin 1.5.x mistakenly reduce hard link count
+ dnl on rename("h1","h2").
+ dnl This bug requires stat'ting targets prior to attempting rename.
+ AC_CHECK_FUNCS_ONCE([link])
+ AC_CACHE_CHECK([whether rename manages hard links correctly],
+ [gl_cv_func_rename_link_works],
+ [if test $ac_cv_func_link = yes; then
+ rm -rf conftest.f conftest.f1
+ if touch conftest.f && ln conftest.f conftest.f1 &&
+ set x `ls -i conftest.f conftest.f1` && test "$2" = "$4"; then
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[
+# include <stdio.h>
+# include <stdlib.h>
+# include <unistd.h>
+ ]],
+ [[int result = 0;
+ if (rename ("conftest.f", "conftest.f1"))
+ result |= 1;
+ if (unlink ("conftest.f1"))
+ result |= 2;
+ if (rename ("conftest.f", "conftest.f"))
+ result |= 4;
+ if (rename ("conftest.f1", "conftest.f1") == 0)
+ result |= 8;
+ return result;
+ ]])],
+ [gl_cv_func_rename_link_works=yes],
+ [gl_cv_func_rename_link_works=no],
+ dnl When crosscompiling, assume rename is broken.
+ [gl_cv_func_rename_link_works="guessing no"])
+ else
+ gl_cv_func_rename_link_works="guessing no"
+ fi
+ rm -rf conftest.f conftest.f1
+ else
+ gl_cv_func_rename_link_works=yes
+ fi
+ ])
+ if test "x$gl_cv_func_rename_link_works" != xyes; then
+ REPLACE_RENAME=1
+ AC_DEFINE([RENAME_HARD_LINK_BUG], [1],
+ [Define if rename fails to leave hard links alone, as on NetBSD 1.6
+ or Cygwin 1.5.])
+ fi
+
+ dnl Cygwin 1.5.x mistakenly allows rename("dir","file").
+ dnl mingw mistakenly forbids rename("dir1","dir2").
+ dnl These bugs require stripping trailing slash to avoid corrupting
+ dnl symlinks with a trailing slash.
+ AC_CACHE_CHECK([whether rename manages existing destinations correctly],
+ [gl_cv_func_rename_dest_works],
+ [rm -rf conftest.f conftest.d1 conftest.d2
+ touch conftest.f && mkdir conftest.d1 conftest.d2 ||
+ AC_MSG_ERROR([cannot create temporary files])
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[
+# include <stdio.h>
+# include <stdlib.h>
+ ]],
+ [[int result = 0;
+ if (rename ("conftest.d1", "conftest.d2") != 0)
+ result |= 1;
+ if (rename ("conftest.d2", "conftest.f") == 0)
+ result |= 2;
+ return result;
+ ]])],
+ [gl_cv_func_rename_dest_works=yes],
+ [gl_cv_func_rename_dest_works=no],
+ dnl When crosscompiling, assume rename is broken.
+ [gl_cv_func_rename_dest_works="guessing no"])
+ rm -rf conftest.f conftest.d1 conftest.d2
+ ])
+ if test "x$gl_cv_func_rename_dest_works" != xyes; then
+ REPLACE_RENAME=1
+ AC_DEFINE([RENAME_DEST_EXISTS_BUG], [1],
+ [Define if rename does not work when the destination file exists,
+ as on Cygwin 1.5 or Windows.])
+ fi
+])
diff --git a/m4/renameat.m4 b/m4/renameat.m4
new file mode 100644
index 00000000..495bf05f
--- /dev/null
+++ b/m4/renameat.m4
@@ -0,0 +1,24 @@
+# serial 3
+# See if we need to provide renameat replacement.
+
+dnl Copyright (C) 2009-2012 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_RENAMEAT],
+[
+ AC_REQUIRE([gl_FUNC_OPENAT])
+ AC_REQUIRE([gl_FUNC_RENAME])
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([renameat])
+ if test $ac_cv_func_renameat = no; then
+ HAVE_RENAMEAT=0
+ elif test $REPLACE_RENAME = 1; then
+ dnl Solaris 9 and 10 have the same bugs in renameat as in rename.
+ REPLACE_RENAMEAT=1
+ fi
+])
diff --git a/m4/rewinddir.m4 b/m4/rewinddir.m4
new file mode 100644
index 00000000..57463988
--- /dev/null
+++ b/m4/rewinddir.m4
@@ -0,0 +1,15 @@
+# rewinddir.m4 serial 1
+dnl Copyright (C) 2011-2012 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_REWINDDIR],
+[
+ AC_REQUIRE([gl_DIRENT_H_DEFAULTS])
+
+ AC_CHECK_FUNCS([rewinddir])
+ if test $ac_cv_func_rewinddir = no; then
+ HAVE_REWINDDIR=0
+ fi
+])
diff --git a/m4/rmdir.m4 b/m4/rmdir.m4
new file mode 100644
index 00000000..c5f24cda
--- /dev/null
+++ b/m4/rmdir.m4
@@ -0,0 +1,39 @@
+# rmdir.m4 serial 12
+dnl Copyright (C) 2002, 2005, 2009-2012 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_UNISTD_H_DEFAULTS])
+ dnl Detect cygwin 1.5.x bug.
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ 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>
+ #if HAVE_UNISTD_H
+ # include <unistd.h>
+ #else /* on Windows with MSVC */
+ # include <direct.h>
+ #endif
+]], [[int result = 0;
+ if (!rmdir ("conftest.file/"))
+ result |= 1;
+ else if (errno != ENOTDIR)
+ result |= 2;
+ if (!rmdir ("conftest.dir/./"))
+ result |= 4;
+ return result;
+ ]])],
+ [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
+ fi
+])
diff --git a/m4/rmt.m4 b/m4/rmt.m4
new file mode 100644
index 00000000..5225a6b9
--- /dev/null
+++ b/m4/rmt.m4
@@ -0,0 +1,71 @@
+
+AC_DEFUN([PU_RMT],[
+ # Set LIB_SETSOCKOPT to -lnsl -lsocket if necessary.
+ pu_save_LIBS=$LIBS
+ LIB_SETSOCKOPT=
+ AC_SEARCH_LIBS(setsockopt, [socket], ,
+ [AC_SEARCH_LIBS(setsockopt, [socket], , , [-lnsl])])
+ AC_SEARCH_LIBS(setsockopt, [nsl])
+
+ case "$ac_cv_search_setsockopt" in
+ -l*) LIB_SETSOCKOPT=$ac_cv_search_setsockopt
+ esac
+ AC_SUBST(LIB_SETSOCKOPT)
+ LIBS=$pu_save_LIBS
+
+ enable_rmt() {
+ if test $ac_cv_header_sys_mtio_h = yes; then
+ AC_CACHE_CHECK(for remote tape header files, pu_cv_header_rmt,
+ [AC_TRY_CPP([
+#if HAVE_SGTTY_H
+# include <sgtty.h>
+#endif
+#include <sys/socket.h>],
+ pu_cv_header_rmt=yes,
+ pu_cv_header_rmt=no)])
+ test $pu_cv_header_rmt = yes && PU_RMT_PROG='rmt$(EXEEXT)'
+ AC_SUBST(PU_RMT_PROG)
+ fi
+ }
+
+ AC_CHECK_HEADERS([sys/mtio.h])
+ AC_CACHE_CHECK(which ioctl field to test for reversed bytes,
+ pu_cv_header_mtio_check_field,
+ [AC_EGREP_HEADER(mt_model, sys/mtio.h,
+ pu_cv_header_mtio_check_field=mt_model,
+ pu_cv_header_mtio_check_field=mt_type)])
+ AC_DEFINE_UNQUOTED(MTIO_CHECK_FIELD,
+ $pu_cv_header_mtio_check_field,
+ [Define to mt_model (v.g., for DG/UX), else to mt_type.])
+
+
+ AC_ARG_VAR([DEFAULT_RMT_DIR],
+ [Define full file name of the directory where to install `rmt'. (default: $(libexecdir))])
+ if test "x$DEFAULT_RMT_DIR" != x; then
+ DEFAULT_RMT_COMMAND=$DEFAULT_RMT_DIR/rmt
+ else
+ DEFAULT_RMT_DIR='$(libexecdir)'
+ fi
+
+ AC_MSG_CHECKING([whether to build rmt])
+ AC_ARG_WITH([rmt],
+ AC_HELP_STRING([--with-rmt=FILE],
+ [Use FILE as the default `rmt' program. Do not build included copy of `rmt'.]),
+ [case $withval in
+ yes|no) AC_MSG_ERROR([Invalid argument to --with-rmt]);;
+ /*) DEFAULT_RMT_COMMAND=$withval
+ AC_MSG_RESULT([no, use $withval instead]);;
+ *) AC_MSG_ERROR([Argument to --with-rmt must be an absolute file name]);;
+ esac],
+ [AC_MSG_RESULT([yes])
+ enable_rmt
+ if test "$PU_RMT_PROG" = ""; then
+ AC_MSG_WARN([not building rmt, required header files are missing])
+ fi])
+
+ AC_SUBST(DEFAULT_RMT_COMMAND)
+ if test "x$DEFAULT_RMT_COMMAND" != x; then
+ AC_DEFINE_UNQUOTED(DEFAULT_RMT_COMMAND, "$DEFAULT_RMT_COMMAND",
+ [Define full file name of rmt program.])
+ fi
+])
diff --git a/m4/rpmatch.m4 b/m4/rpmatch.m4
new file mode 100644
index 00000000..36eb82a0
--- /dev/null
+++ b/m4/rpmatch.m4
@@ -0,0 +1,31 @@
+# rpmatch.m4 serial 10
+dnl Copyright (C) 2002-2003, 2007-2012 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_RPMATCH],
+[
+ dnl Persuade glibc <stdlib.h> to declare rpmatch().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_CHECK_FUNCS([rpmatch])
+ if test $ac_cv_func_rpmatch = no; then
+ HAVE_RPMATCH=0
+ fi
+])
+
+# Prerequisites of lib/rpmatch.c.
+AC_DEFUN([gl_PREREQ_RPMATCH], [
+ AC_CACHE_CHECK([for nl_langinfo and YESEXPR], [gl_cv_langinfo_yesexpr],
+ [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])
+ ])
+ if test $gl_cv_langinfo_yesexpr = yes; then
+ AC_DEFINE([HAVE_LANGINFO_YESEXPR], [1],
+ [Define if you have <langinfo.h> and nl_langinfo(YESEXPR).])
+ fi
+])
diff --git a/m4/rtapelib.m4 b/m4/rtapelib.m4
new file mode 100644
index 00000000..7b2c5039
--- /dev/null
+++ b/m4/rtapelib.m4
@@ -0,0 +1,3 @@
+AC_DEFUN([PU_RTAPELIB],[
+ AC_CHECK_HEADERS_ONCE([net/errno.h sys/inet.h netdb.h])
+])
diff --git a/m4/safe-read.m4 b/m4/safe-read.m4
new file mode 100644
index 00000000..c82acdb9
--- /dev/null
+++ b/m4/safe-read.m4
@@ -0,0 +1,12 @@
+# safe-read.m4 serial 6
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2012 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.
+
+# Prerequisites of lib/safe-read.c.
+AC_DEFUN([gl_PREREQ_SAFE_READ],
+[
+ AC_REQUIRE([gt_TYPE_SSIZE_T])
+])
diff --git a/m4/safe-write.m4 b/m4/safe-write.m4
new file mode 100644
index 00000000..c1eff6e2
--- /dev/null
+++ b/m4/safe-write.m4
@@ -0,0 +1,11 @@
+# safe-write.m4 serial 4
+dnl Copyright (C) 2002, 2005-2006, 2009-2012 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.
+
+# Prerequisites of lib/safe-write.c.
+AC_DEFUN([gl_PREREQ_SAFE_WRITE],
+[
+ gl_PREREQ_SAFE_READ
+])
diff --git a/m4/save-cwd.m4 b/m4/save-cwd.m4
new file mode 100644
index 00000000..30963402
--- /dev/null
+++ b/m4/save-cwd.m4
@@ -0,0 +1,11 @@
+# serial 10
+dnl Copyright (C) 2002-2006, 2009-2012 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 Prerequisites for lib/save-cwd.c.
+AC_DEFUN([gl_SAVE_CWD],
+[
+ AC_CHECK_FUNCS_ONCE([fchdir])
+])
diff --git a/m4/savedir.m4 b/m4/savedir.m4
new file mode 100644
index 00000000..486a1dd2
--- /dev/null
+++ b/m4/savedir.m4
@@ -0,0 +1,11 @@
+# savedir.m4 serial 10
+dnl Copyright (C) 2002-2003, 2005-2006, 2009-2012 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_SAVEDIR],
+[
+ :
+])
diff --git a/m4/setenv.m4 b/m4/setenv.m4
new file mode 100644
index 00000000..a1f30bc4
--- /dev/null
+++ b/m4/setenv.m4
@@ -0,0 +1,140 @@
+# setenv.m4 serial 25
+dnl Copyright (C) 2001-2004, 2006-2012 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_FUNC_SETENV_SEPARATE])
+ 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>
+ #include <string.h>
+ ]], [[
+ int result = 0;
+ {
+ if (setenv ("", "", 0) != -1)
+ result |= 1;
+ else if (errno != EINVAL)
+ result |= 2;
+ }
+ {
+ if (setenv ("a", "=", 1) != 0)
+ result |= 4;
+ else if (strcmp (getenv ("a"), "=") != 0)
+ result |= 8;
+ }
+ return result;
+ ]])],
+ [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
+ fi
+ fi
+])
+
+# Like gl_FUNC_SETENV, except prepare for separate compilation
+# (no REPLACE_SETENV, no AC_LIBOBJ).
+AC_DEFUN([gl_FUNC_SETENV_SEPARATE],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_CHECK_DECLS_ONCE([setenv])
+ if test $ac_cv_have_decl_setenv = no; then
+ HAVE_DECL_SETENV=0
+ fi
+ AC_CHECK_FUNCS_ONCE([setenv])
+ gl_PREREQ_SETENV
+])
+
+AC_DEFUN([gl_FUNC_UNSETENV],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ AC_CHECK_DECLS_ONCE([unsetenv])
+ if test $ac_cv_have_decl_unsetenv = no; then
+ HAVE_DECL_UNSETENV=0
+ fi
+ AC_CHECK_FUNCS([unsetenv])
+ if test $ac_cv_func_unsetenv = no; then
+ HAVE_UNSETENV=0
+ else
+ HAVE_UNSETENV=1
+ dnl Some BSDs return void, failing to do error checking.
+ AC_CACHE_CHECK([for unsetenv() return type], [gt_cv_func_unsetenv_ret],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#undef _BSD
+#define _BSD 1 /* unhide unsetenv declaration in OSF/1 5.1 <stdlib.h> */
+#include <stdlib.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+int unsetenv (const char *name);
+ ]],
+ [[]])],
+ [gt_cv_func_unsetenv_ret='int'],
+ [gt_cv_func_unsetenv_ret='void'])])
+ if test $gt_cv_func_unsetenv_ret = 'void'; then
+ AC_DEFINE([VOID_UNSETENV], [1], [Define to 1 if unsetenv returns void
+ instead of int.])
+ REPLACE_UNSETENV=1
+ fi
+
+ dnl Solaris 10 unsetenv does not remove all copies of a name.
+ dnl Haiku alpha 2 unsetenv gets confused by assignment to environ.
+ dnl OpenBSD 4.7 unsetenv("") does not fail.
+ AC_CACHE_CHECK([whether unsetenv obeys POSIX],
+ [gl_cv_func_unsetenv_works],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+ #include <stdlib.h>
+ #include <errno.h>
+ extern char **environ;
+ ]], [[
+ char entry1[] = "a=1";
+ char entry2[] = "b=2";
+ char *env[] = { entry1, entry2, NULL };
+ if (putenv ((char *) "a=1")) return 1;
+ if (putenv (entry2)) return 2;
+ entry2[0] = 'a';
+ unsetenv ("a");
+ if (getenv ("a")) return 3;
+ if (!unsetenv ("") || errno != EINVAL) return 4;
+ entry2[0] = 'b';
+ environ = env;
+ if (!getenv ("a")) return 5;
+ entry2[0] = 'a';
+ unsetenv ("a");
+ if (getenv ("a")) return 6;
+ ]])],
+ [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
+ fi
+ fi
+])
+
+# Prerequisites of lib/setenv.c.
+AC_DEFUN([gl_PREREQ_SETENV],
+[
+ AC_REQUIRE([AC_FUNC_ALLOCA])
+ AC_REQUIRE([gl_ENVIRON])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+ AC_CHECK_HEADERS([search.h])
+ AC_CHECK_FUNCS([tsearch])
+])
+
+# Prerequisites of lib/unsetenv.c.
+AC_DEFUN([gl_PREREQ_UNSETENV],
+[
+ AC_REQUIRE([gl_ENVIRON])
+ AC_CHECK_HEADERS_ONCE([unistd.h])
+])
diff --git a/m4/signal_h.m4 b/m4/signal_h.m4
new file mode 100644
index 00000000..ed4d7306
--- /dev/null
+++ b/m4/signal_h.m4
@@ -0,0 +1,83 @@
+# signal_h.m4 serial 18
+dnl Copyright (C) 2007-2012 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_SIGNAL_H],
+[
+ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
+ AC_REQUIRE([gl_CHECK_TYPE_SIGSET_T])
+ gl_NEXT_HEADERS([signal.h])
+
+# AIX declares sig_atomic_t to already include volatile, and C89 compilers
+# then choke on 'volatile sig_atomic_t'. C99 requires that it compile.
+ AC_CHECK_TYPE([volatile sig_atomic_t], [],
+ [HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=0], [[
+#include <signal.h>
+ ]])
+
+ dnl Ensure the type pid_t gets defined.
+ AC_REQUIRE([AC_TYPE_PID_T])
+
+ AC_REQUIRE([AC_TYPE_UID_T])
+
+ dnl Persuade glibc <signal.h> to define sighandler_t.
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_TYPE([sighandler_t], [], [HAVE_SIGHANDLER_T=0], [[
+#include <signal.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 <signal.h>
+ ]], [pthread_sigmask sigaction
+ sigaddset sigdelset sigemptyset sigfillset sigismember
+ sigpending sigprocmask])
+])
+
+AC_DEFUN([gl_CHECK_TYPE_SIGSET_T],
+[
+ AC_CHECK_TYPES([sigset_t],
+ [gl_cv_type_sigset_t=yes], [gl_cv_type_sigset_t=no],
+ [[
+ #include <signal.h>
+ /* Mingw defines sigset_t not in <signal.h>, but in <sys/types.h>. */
+ #include <sys/types.h>
+ ]])
+ if test $gl_cv_type_sigset_t != yes; then
+ HAVE_SIGSET_T=0
+ fi
+])
+
+AC_DEFUN([gl_SIGNAL_MODULE_INDICATOR],
+[
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_SIGNAL_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_SIGNAL_H_DEFAULTS],
+[
+ GNULIB_PTHREAD_SIGMASK=0; AC_SUBST([GNULIB_PTHREAD_SIGMASK])
+ GNULIB_RAISE=0; AC_SUBST([GNULIB_RAISE])
+ GNULIB_SIGNAL_H_SIGPIPE=0; AC_SUBST([GNULIB_SIGNAL_H_SIGPIPE])
+ GNULIB_SIGPROCMASK=0; AC_SUBST([GNULIB_SIGPROCMASK])
+ GNULIB_SIGACTION=0; AC_SUBST([GNULIB_SIGACTION])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_POSIX_SIGNALBLOCKING=1; AC_SUBST([HAVE_POSIX_SIGNALBLOCKING])
+ HAVE_PTHREAD_SIGMASK=1; AC_SUBST([HAVE_PTHREAD_SIGMASK])
+ HAVE_RAISE=1; AC_SUBST([HAVE_RAISE])
+ HAVE_SIGSET_T=1; AC_SUBST([HAVE_SIGSET_T])
+ HAVE_SIGINFO_T=1; AC_SUBST([HAVE_SIGINFO_T])
+ HAVE_SIGACTION=1; AC_SUBST([HAVE_SIGACTION])
+ HAVE_STRUCT_SIGACTION_SA_SIGACTION=1;
+ AC_SUBST([HAVE_STRUCT_SIGACTION_SA_SIGACTION])
+ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T=1;
+ AC_SUBST([HAVE_TYPE_VOLATILE_SIG_ATOMIC_T])
+ HAVE_SIGHANDLER_T=1; AC_SUBST([HAVE_SIGHANDLER_T])
+ REPLACE_PTHREAD_SIGMASK=0; AC_SUBST([REPLACE_PTHREAD_SIGMASK])
+ REPLACE_RAISE=0; AC_SUBST([REPLACE_RAISE])
+])
diff --git a/m4/size_max.m4 b/m4/size_max.m4
new file mode 100644
index 00000000..5a8162bc
--- /dev/null
+++ b/m4/size_max.m4
@@ -0,0 +1,79 @@
+# size_max.m4 serial 10
+dnl Copyright (C) 2003, 2005-2006, 2008-2012 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 Bruno Haible.
+
+AC_DEFUN([gl_SIZE_MAX],
+[
+ AC_CHECK_HEADERS([stdint.h])
+ dnl First test whether the system already has SIZE_MAX.
+ AC_CACHE_CHECK([for SIZE_MAX], [gl_cv_size_max], [
+ gl_cv_size_max=
+ AC_EGREP_CPP([Found it], [
+#include <limits.h>
+#if HAVE_STDINT_H
+#include <stdint.h>
+#endif
+#ifdef SIZE_MAX
+Found it
+#endif
+], [gl_cv_size_max=yes])
+ if test -z "$gl_cv_size_max"; then
+ dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
+ dnl than the type 'unsigned long'. Try hard to find a definition that can
+ dnl be used in a preprocessor #if, i.e. doesn't contain a cast.
+ AC_COMPUTE_INT([size_t_bits_minus_1], [sizeof (size_t) * CHAR_BIT - 1],
+ [#include <stddef.h>
+#include <limits.h>], [size_t_bits_minus_1=])
+ AC_COMPUTE_INT([fits_in_uint], [sizeof (size_t) <= sizeof (unsigned int)],
+ [#include <stddef.h>], [fits_in_uint=])
+ if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
+ if test $fits_in_uint = 1; then
+ dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
+ dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stddef.h>
+ extern size_t foo;
+ extern unsigned long foo;
+ ]],
+ [[]])],
+ [fits_in_uint=0])
+ fi
+ dnl We cannot use 'expr' to simplify this expression, because 'expr'
+ dnl works only with 'long' integers in the host environment, while we
+ dnl might be cross-compiling from a 32-bit platform to a 64-bit platform.
+ if test $fits_in_uint = 1; then
+ gl_cv_size_max="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ else
+ gl_cv_size_max="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
+ fi
+ else
+ dnl Shouldn't happen, but who knows...
+ gl_cv_size_max='((size_t)~(size_t)0)'
+ fi
+ fi
+ ])
+ 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.
+dnl Remove this when we can assume autoconf >= 2.61.
+m4_ifdef([AC_COMPUTE_INT], [], [
+ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+])
diff --git a/m4/sleep.m4 b/m4/sleep.m4
new file mode 100644
index 00000000..7e736d45
--- /dev/null
+++ b/m4/sleep.m4
@@ -0,0 +1,52 @@
+# sleep.m4 serial 6
+dnl Copyright (C) 2007-2012 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_SLEEP],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ dnl We expect to see the declaration of sleep() in a header file.
+ dnl Older versions of mingw have a sleep() function that is an alias to
+ dnl _sleep() in MSVCRT. It has a different signature than POSIX 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
+ 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);
+ if (remaining > pentecost)
+ return 3;
+ if (remaining <= pentecost - 10)
+ return 4;
+ return 0;
+ ]])],
+ [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
+ fi
+ fi
+])
diff --git a/m4/snprintf.m4 b/m4/snprintf.m4
new file mode 100644
index 00000000..de94eddf
--- /dev/null
+++ b/m4/snprintf.m4
@@ -0,0 +1,54 @@
+# snprintf.m4 serial 6
+dnl Copyright (C) 2002-2004, 2007-2012 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 Libintl 0.17 will replace snprintf only if it does not support %1$s,
+dnl but defers to any gnulib snprintf replacements. Therefore, gnulib
+dnl must guarantee that the decision for replacing snprintf is a superset
+dnl of the reasons checked by libintl.
+AC_DEFUN([gl_FUNC_SNPRINTF],
+[
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ gl_cv_func_snprintf_usable=no
+ AC_CHECK_FUNCS([snprintf])
+ if test $ac_cv_func_snprintf = yes; then
+ gl_SNPRINTF_SIZE1
+ case "$gl_cv_func_snprintf_size1" in
+ *yes)
+ gl_SNPRINTF_RETVAL_C99
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+ gl_PRINTF_POSITIONS
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_snprintf_usable=yes
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ if test $gl_cv_func_snprintf_usable = no; then
+ gl_REPLACE_SNPRINTF
+ fi
+ AC_CHECK_DECLS_ONCE([snprintf])
+ if test $ac_cv_have_decl_snprintf = no; then
+ HAVE_DECL_SNPRINTF=0
+ fi
+])
+
+AC_DEFUN([gl_REPLACE_SNPRINTF],
+[
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_LIBOBJ([snprintf])
+ if test $ac_cv_func_snprintf = yes; then
+ REPLACE_SNPRINTF=1
+ fi
+ gl_PREREQ_SNPRINTF
+])
+
+# Prerequisites of lib/snprintf.c.
+AC_DEFUN([gl_PREREQ_SNPRINTF], [:])
diff --git a/m4/ssize_t.m4 b/m4/ssize_t.m4
new file mode 100644
index 00000000..209d64c8
--- /dev/null
+++ b/m4/ssize_t.m4
@@ -0,0 +1,23 @@
+# ssize_t.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2001-2003, 2006, 2010-2012 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 Bruno Haible.
+dnl Test whether ssize_t is defined.
+
+AC_DEFUN([gt_TYPE_SSIZE_T],
+[
+ AC_CACHE_CHECK([for ssize_t], [gt_cv_ssize_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/types.h>]],
+ [[int x = sizeof (ssize_t *) + sizeof (ssize_t);
+ return !x;]])],
+ [gt_cv_ssize_t=yes], [gt_cv_ssize_t=no])])
+ if test $gt_cv_ssize_t = no; then
+ AC_DEFINE([ssize_t], [int],
+ [Define as a signed type of the same size as size_t.])
+ fi
+])
diff --git a/m4/stat-time.m4 b/m4/stat-time.m4
new file mode 100644
index 00000000..2dbb1f3c
--- /dev/null
+++ b/m4/stat-time.m4
@@ -0,0 +1,85 @@
+# Checks for stat-related time functions.
+
+# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2012 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 From Paul Eggert.
+
+# st_atim.tv_nsec - Linux, Solaris, Cygwin
+# st_atimespec.tv_nsec - FreeBSD, NetBSD, if ! defined _POSIX_SOURCE
+# st_atimensec - FreeBSD, NetBSD, if defined _POSIX_SOURCE
+# st_atim.st__tim.tv_nsec - UnixWare (at least 2.1.2 through 7.1)
+
+# st_birthtimespec - FreeBSD, NetBSD (hidden on OpenBSD 3.9, anyway)
+# st_birthtim - Cygwin 1.7.0+
+
+AC_DEFUN([gl_STAT_TIME],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_HEADERS_ONCE([sys/time.h])
+
+ 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_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.])
+ 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>])],
+ [#include <sys/types.h>
+ #include <sys/stat.h>])],
+ [#include <sys/types.h>
+ #include <sys/stat.h>])
+])
+
+# Check for st_birthtime, a feature from UFS2 (FreeBSD, NetBSD, OpenBSD, etc.)
+# and NTFS (Cygwin).
+# There was a time when this field was named st_createtime (21 June
+# 2002 to 16 July 2002) But that window is very small and applied only
+# to development code, so systems still using that configuration are
+# not supported. See revisions 1.10 and 1.11 of FreeBSD's
+# src/sys/ufs/ufs/dinode.h.
+#
+AC_DEFUN([gl_STAT_BIRTHTIME],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_HEADERS_ONCE([sys/time.h])
+ 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>])
+])
diff --git a/m4/stat.m4 b/m4/stat.m4
new file mode 100644
index 00000000..d67dbcde
--- /dev/null
+++ b/m4/stat.m4
@@ -0,0 +1,68 @@
+# serial 8
+
+# Copyright (C) 2009-2012 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_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 AIX 7.1, Solaris 9 mistakenly succeed 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>
+]], [[int result = 0;
+ struct stat st;
+ if (!stat ("conftest.tmp/", &st))
+ result |= 1;
+#if HAVE_LSTAT
+ if (!stat ("conftest.lnk/", &st))
+ result |= 2;
+#endif
+ return result;
+ ]])],
+ [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
+])
+
+# Prerequisites of lib/stat.c.
+AC_DEFUN([gl_PREREQ_STAT],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ :
+])
diff --git a/m4/stdalign.m4 b/m4/stdalign.m4
new file mode 100644
index 00000000..9752ba56
--- /dev/null
+++ b/m4/stdalign.m4
@@ -0,0 +1,37 @@
+# Check for stdalign.h that conforms to C11.
+
+dnl Copyright 2011-2012 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.
+
+# Prepare for substituting <stdalign.h> if it is not supported.
+
+AC_DEFUN([gl_STDALIGN_H],
+[
+ AC_CACHE_CHECK([for working stdalign.h],
+ [gl_cv_header_working_stdalign_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdalign.h>
+ int align_int = alignof (int) + _Alignof (double);
+
+ /* Test _Alignas only on platforms where gnulib can help. */
+ #if \
+ (__GNUC__ || __IBMC__ || __IBMCPP__ \
+ || 0x5110 <= __SUNPRO_C || 1300 <= _MSC_VER)
+ int alignas (8) alignas_int = 1;
+ #endif
+ ]])],
+ [gl_cv_header_working_stdalign_h=yes],
+ [gl_cv_header_working_stdalign_h=no])])
+
+ if test $gl_cv_header_working_stdalign_h = yes; then
+ STDALIGN_H=''
+ else
+ STDALIGN_H='stdalign.h'
+ fi
+
+ AC_SUBST([STDALIGN_H])
+ AM_CONDITIONAL([GL_GENERATE_STDALIGN_H], [test -n "$STDALIGN_H"])
+])
diff --git a/m4/stdarg.m4 b/m4/stdarg.m4
new file mode 100644
index 00000000..5c313cb8
--- /dev/null
+++ b/m4/stdarg.m4
@@ -0,0 +1,78 @@
+# stdarg.m4 serial 6
+dnl Copyright (C) 2006, 2008-2012 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 Bruno Haible.
+dnl Provide a working va_copy in combination with <stdarg.h>.
+
+AC_DEFUN([gl_STDARG_H],
+[
+ STDARG_H=''
+ NEXT_STDARG_H='<stdarg.h>'
+ AC_MSG_CHECKING([for va_copy])
+ AC_CACHE_VAL([gl_cv_func_va_copy], [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdarg.h>]],
+ [[
+#ifndef va_copy
+void (*func) (va_list, va_list) = va_copy;
+#endif
+ ]])],
+ [gl_cv_func_va_copy=yes],
+ [gl_cv_func_va_copy=no])])
+ AC_MSG_RESULT([$gl_cv_func_va_copy])
+ if test $gl_cv_func_va_copy = no; then
+ dnl Provide a substitute.
+ dnl Usually a simple definition in <config.h> is enough. Not so on AIX 5
+ dnl with some versions of the /usr/vac/bin/cc compiler. It has an <stdarg.h>
+ dnl which does '#undef va_copy', leading to a missing va_copy symbol. For
+ dnl this platform, we use an <stdarg.h> substitute. But we cannot use this
+ dnl approach on other platforms, because <stdarg.h> often defines only
+ dnl preprocessor macros and gl_ABSOLUTE_HEADER, gl_CHECK_NEXT_HEADERS do
+ dnl not work in this situation.
+ AC_EGREP_CPP([vaccine],
+ [#if defined _AIX && !defined __GNUC__
+ AIX vaccine
+ #endif
+ ], [gl_aixcc=yes], [gl_aixcc=no])
+ if test $gl_aixcc = yes; then
+ dnl Provide a substitute <stdarg.h> file.
+ STDARG_H=stdarg.h
+ gl_NEXT_HEADERS([stdarg.h])
+ dnl Fallback for the case when <stdarg.h> contains only macro definitions.
+ if test "$gl_cv_next_stdarg_h" = '""'; then
+ gl_cv_next_stdarg_h='"///usr/include/stdarg.h"'
+ NEXT_STDARG_H="$gl_cv_next_stdarg_h"
+ fi
+ else
+ dnl Provide a substitute in <config.h>, either __va_copy or as a simple
+ dnl assignment.
+ gl_CACHE_VAL_SILENT([gl_cv_func___va_copy], [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stdarg.h>]],
+ [[
+#ifndef __va_copy
+error, bail out
+#endif
+ ]])],
+ [gl_cv_func___va_copy=yes],
+ [gl_cv_func___va_copy=no])])
+ if test $gl_cv_func___va_copy = yes; then
+ AC_DEFINE([va_copy], [__va_copy],
+ [Define as a macro for copying va_list variables.])
+ else
+ AH_VERBATIM([gl_VA_COPY], [/* A replacement for va_copy, if needed. */
+#define gl_va_copy(a,b) ((a) = (b))])
+ AC_DEFINE([va_copy], [gl_va_copy],
+ [Define as a macro for copying va_list variables.])
+ fi
+ fi
+ fi
+ AC_SUBST([STDARG_H])
+ AM_CONDITIONAL([GL_GENERATE_STDARG_H], [test -n "$STDARG_H"])
+ AC_SUBST([NEXT_STDARG_H])
+])
diff --git a/m4/stdbool.m4 b/m4/stdbool.m4
new file mode 100644
index 00000000..eabfa645
--- /dev/null
+++ b/m4/stdbool.m4
@@ -0,0 +1,100 @@
+# Check for stdbool.h that conforms to C99.
+
+dnl Copyright (C) 2002-2006, 2009-2012 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.
+
+#serial 5
+
+# Prepare for substituting <stdbool.h> if it is not supported.
+
+AC_DEFUN([AM_STDBOOL_H],
+[
+ AC_REQUIRE([AC_CHECK_HEADER_STDBOOL])
+
+ # 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
+ AC_SUBST([STDBOOL_H])
+ AM_CONDITIONAL([GL_GENERATE_STDBOOL_H], [test -n "$STDBOOL_H"])
+
+ if test "$ac_cv_type__Bool" = yes; then
+ HAVE__BOOL=1
+ else
+ HAVE__BOOL=0
+ fi
+ AC_SUBST([HAVE__BOOL])
+])
+
+# AM_STDBOOL_H will be renamed to gl_STDBOOL_H in the future.
+AC_DEFUN([gl_STDBOOL_H], [AM_STDBOOL_H])
+
+# This version of the macro is needed in autoconf <= 2.68.
+
+AC_DEFUN([AC_CHECK_HEADER_STDBOOL],
+ [AC_CACHE_CHECK([for stdbool.h that conforms to C99],
+ [ac_cv_header_stdbool_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+ #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];
+ /* See body of main program for 'e'. */
+ 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 };
+ /* The following fails for
+ HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+ _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];
+ /* 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;
+ ]],
+ [[
+ bool e = &s;
+ *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])
+])
diff --git a/m4/stddef_h.m4 b/m4/stddef_h.m4
new file mode 100644
index 00000000..cc116096
--- /dev/null
+++ b/m4/stddef_h.m4
@@ -0,0 +1,47 @@
+dnl A placeholder for POSIX 2008 <stddef.h>, for platforms that have issues.
+# stddef_h.m4 serial 4
+dnl Copyright (C) 2009-2012 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])
+ STDDEF_H=
+ 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
+ AC_SUBST([STDDEF_H])
+ AM_CONDITIONAL([GL_GENERATE_STDDEF_H], [test -n "$STDDEF_H"])
+ if test -n "$STDDEF_H"; then
+ gl_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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$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])
+])
diff --git a/m4/stdint.m4 b/m4/stdint.m4
new file mode 100644
index 00000000..28d342ea
--- /dev/null
+++ b/m4/stdint.m4
@@ -0,0 +1,484 @@
+# stdint.m4 serial 43
+dnl Copyright (C) 2001-2012 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 Paul Eggert and Bruno Haible.
+dnl Test whether <stdint.h> is supported or must be substituted.
+
+AC_DEFUN_ONCE([gl_STDINT_H],
+[
+ AC_PREREQ([2.59])dnl
+
+ dnl Check for long long int and unsigned long long int.
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ if test $ac_cv_type_long_long_int = yes; then
+ HAVE_LONG_LONG_INT=1
+ else
+ HAVE_LONG_LONG_INT=0
+ fi
+ AC_SUBST([HAVE_LONG_LONG_INT])
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+ if test $ac_cv_type_unsigned_long_long_int = yes; then
+ HAVE_UNSIGNED_LONG_LONG_INT=1
+ else
+ HAVE_UNSIGNED_LONG_LONG_INT=0
+ fi
+ AC_SUBST([HAVE_UNSIGNED_LONG_LONG_INT])
+
+ dnl Check for <wchar.h>, in the same way as gl_WCHAR_H does.
+ 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])
+
+ dnl Check for <inttypes.h>.
+ dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_inttypes_h.
+ if test $ac_cv_header_inttypes_h = yes; then
+ HAVE_INTTYPES_H=1
+ else
+ HAVE_INTTYPES_H=0
+ fi
+ AC_SUBST([HAVE_INTTYPES_H])
+
+ dnl Check for <sys/types.h>.
+ dnl AC_INCLUDES_DEFAULT defines $ac_cv_header_sys_types_h.
+ if test $ac_cv_header_sys_types_h = yes; then
+ HAVE_SYS_TYPES_H=1
+ else
+ HAVE_SYS_TYPES_H=0
+ fi
+ AC_SUBST([HAVE_SYS_TYPES_H])
+
+ gl_CHECK_NEXT_HEADERS([stdint.h])
+ if test $ac_cv_header_stdint_h = yes; then
+ HAVE_STDINT_H=1
+ else
+ HAVE_STDINT_H=0
+ fi
+ AC_SUBST([HAVE_STDINT_H])
+
+ dnl Now see whether we need a substitute <stdint.h>.
+ if test $ac_cv_header_stdint_h = yes; then
+ AC_CACHE_CHECK([whether stdint.h conforms to C99],
+ [gl_cv_header_working_stdint_h],
+ [gl_cv_header_working_stdint_h=no
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+#define _GL_JUST_INCLUDE_SYSTEM_STDINT_H 1 /* work if build isn't clean */
+#include <stdint.h>
+/* Dragonfly defines WCHAR_MIN, WCHAR_MAX only in <wchar.h>. */
+#if !(defined WCHAR_MIN && defined WCHAR_MAX)
+#error "WCHAR_MIN, WCHAR_MAX not defined in <stdint.h>"
+#endif
+]
+gl_STDINT_INCLUDES
+[
+#ifdef INT8_MAX
+int8_t a1 = INT8_MAX;
+int8_t a1min = INT8_MIN;
+#endif
+#ifdef INT16_MAX
+int16_t a2 = INT16_MAX;
+int16_t a2min = INT16_MIN;
+#endif
+#ifdef INT32_MAX
+int32_t a3 = INT32_MAX;
+int32_t a3min = INT32_MIN;
+#endif
+#ifdef INT64_MAX
+int64_t a4 = INT64_MAX;
+int64_t a4min = INT64_MIN;
+#endif
+#ifdef UINT8_MAX
+uint8_t b1 = UINT8_MAX;
+#else
+typedef int b1[(unsigned char) -1 != 255 ? 1 : -1];
+#endif
+#ifdef UINT16_MAX
+uint16_t b2 = UINT16_MAX;
+#endif
+#ifdef UINT32_MAX
+uint32_t b3 = UINT32_MAX;
+#endif
+#ifdef UINT64_MAX
+uint64_t b4 = UINT64_MAX;
+#endif
+int_least8_t c1 = INT8_C (0x7f);
+int_least8_t c1max = INT_LEAST8_MAX;
+int_least8_t c1min = INT_LEAST8_MIN;
+int_least16_t c2 = INT16_C (0x7fff);
+int_least16_t c2max = INT_LEAST16_MAX;
+int_least16_t c2min = INT_LEAST16_MIN;
+int_least32_t c3 = INT32_C (0x7fffffff);
+int_least32_t c3max = INT_LEAST32_MAX;
+int_least32_t c3min = INT_LEAST32_MIN;
+int_least64_t c4 = INT64_C (0x7fffffffffffffff);
+int_least64_t c4max = INT_LEAST64_MAX;
+int_least64_t c4min = INT_LEAST64_MIN;
+uint_least8_t d1 = UINT8_C (0xff);
+uint_least8_t d1max = UINT_LEAST8_MAX;
+uint_least16_t d2 = UINT16_C (0xffff);
+uint_least16_t d2max = UINT_LEAST16_MAX;
+uint_least32_t d3 = UINT32_C (0xffffffff);
+uint_least32_t d3max = UINT_LEAST32_MAX;
+uint_least64_t d4 = UINT64_C (0xffffffffffffffff);
+uint_least64_t d4max = UINT_LEAST64_MAX;
+int_fast8_t e1 = INT_FAST8_MAX;
+int_fast8_t e1min = INT_FAST8_MIN;
+int_fast16_t e2 = INT_FAST16_MAX;
+int_fast16_t e2min = INT_FAST16_MIN;
+int_fast32_t e3 = INT_FAST32_MAX;
+int_fast32_t e3min = INT_FAST32_MIN;
+int_fast64_t e4 = INT_FAST64_MAX;
+int_fast64_t e4min = INT_FAST64_MIN;
+uint_fast8_t f1 = UINT_FAST8_MAX;
+uint_fast16_t f2 = UINT_FAST16_MAX;
+uint_fast32_t f3 = UINT_FAST32_MAX;
+uint_fast64_t f4 = UINT_FAST64_MAX;
+#ifdef INTPTR_MAX
+intptr_t g = INTPTR_MAX;
+intptr_t gmin = INTPTR_MIN;
+#endif
+#ifdef UINTPTR_MAX
+uintptr_t h = UINTPTR_MAX;
+#endif
+intmax_t i = INTMAX_MAX;
+uintmax_t j = UINTMAX_MAX;
+
+#include <limits.h> /* for CHAR_BIT */
+#define TYPE_MINIMUM(t) \
+ ((t) ((t) 0 < (t) -1 ? (t) 0 : ~ TYPE_MAXIMUM (t)))
+#define TYPE_MAXIMUM(t) \
+ ((t) ((t) 0 < (t) -1 \
+ ? (t) -1 \
+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1)))
+struct s {
+ int check_PTRDIFF:
+ PTRDIFF_MIN == TYPE_MINIMUM (ptrdiff_t)
+ && PTRDIFF_MAX == TYPE_MAXIMUM (ptrdiff_t)
+ ? 1 : -1;
+ /* Detect bug in FreeBSD 6.0 / ia64. */
+ int check_SIG_ATOMIC:
+ SIG_ATOMIC_MIN == TYPE_MINIMUM (sig_atomic_t)
+ && SIG_ATOMIC_MAX == TYPE_MAXIMUM (sig_atomic_t)
+ ? 1 : -1;
+ int check_SIZE: SIZE_MAX == TYPE_MAXIMUM (size_t) ? 1 : -1;
+ int check_WCHAR:
+ WCHAR_MIN == TYPE_MINIMUM (wchar_t)
+ && WCHAR_MAX == TYPE_MAXIMUM (wchar_t)
+ ? 1 : -1;
+ /* Detect bug in mingw. */
+ int check_WINT:
+ WINT_MIN == TYPE_MINIMUM (wint_t)
+ && WINT_MAX == TYPE_MAXIMUM (wint_t)
+ ? 1 : -1;
+
+ /* Detect bugs in glibc 2.4 and Solaris 10 stdint.h, among others. */
+ int check_UINT8_C:
+ (-1 < UINT8_C (0)) == (-1 < (uint_least8_t) 0) ? 1 : -1;
+ int check_UINT16_C:
+ (-1 < UINT16_C (0)) == (-1 < (uint_least16_t) 0) ? 1 : -1;
+
+ /* Detect bugs in OpenBSD 3.9 stdint.h. */
+#ifdef UINT8_MAX
+ int check_uint8: (uint8_t) -1 == UINT8_MAX ? 1 : -1;
+#endif
+#ifdef UINT16_MAX
+ int check_uint16: (uint16_t) -1 == UINT16_MAX ? 1 : -1;
+#endif
+#ifdef UINT32_MAX
+ int check_uint32: (uint32_t) -1 == UINT32_MAX ? 1 : -1;
+#endif
+#ifdef UINT64_MAX
+ int check_uint64: (uint64_t) -1 == UINT64_MAX ? 1 : -1;
+#endif
+ int check_uint_least8: (uint_least8_t) -1 == UINT_LEAST8_MAX ? 1 : -1;
+ int check_uint_least16: (uint_least16_t) -1 == UINT_LEAST16_MAX ? 1 : -1;
+ int check_uint_least32: (uint_least32_t) -1 == UINT_LEAST32_MAX ? 1 : -1;
+ int check_uint_least64: (uint_least64_t) -1 == UINT_LEAST64_MAX ? 1 : -1;
+ int check_uint_fast8: (uint_fast8_t) -1 == UINT_FAST8_MAX ? 1 : -1;
+ int check_uint_fast16: (uint_fast16_t) -1 == UINT_FAST16_MAX ? 1 : -1;
+ int check_uint_fast32: (uint_fast32_t) -1 == UINT_FAST32_MAX ? 1 : -1;
+ int check_uint_fast64: (uint_fast64_t) -1 == UINT_FAST64_MAX ? 1 : -1;
+ int check_uintptr: (uintptr_t) -1 == UINTPTR_MAX ? 1 : -1;
+ int check_uintmax: (uintmax_t) -1 == UINTMAX_MAX ? 1 : -1;
+ int check_size: (size_t) -1 == SIZE_MAX ? 1 : -1;
+};
+ ]])],
+ [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 _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 mv - macro_values + 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=
+ else
+ dnl Check for <sys/inttypes.h>, and for
+ dnl <sys/bitypes.h> (used in Linux libc4 >= 4.6.7 and libc5).
+ AC_CHECK_HEADERS([sys/inttypes.h sys/bitypes.h])
+ if test $ac_cv_header_sys_inttypes_h = yes; then
+ HAVE_SYS_INTTYPES_H=1
+ else
+ HAVE_SYS_INTTYPES_H=0
+ fi
+ AC_SUBST([HAVE_SYS_INTTYPES_H])
+ if test $ac_cv_header_sys_bitypes_h = yes; then
+ HAVE_SYS_BITYPES_H=1
+ else
+ HAVE_SYS_BITYPES_H=0
+ fi
+ AC_SUBST([HAVE_SYS_BITYPES_H])
+
+ gl_STDINT_TYPE_PROPERTIES
+ STDINT_H=stdint.h
+ fi
+ AC_SUBST([STDINT_H])
+ AM_CONDITIONAL([GL_GENERATE_STDINT_H], [test -n "$STDINT_H"])
+])
+
+dnl gl_STDINT_BITSIZEOF(TYPES, INCLUDES)
+dnl Determine the size of each of the given types in bits.
+AC_DEFUN([gl_STDINT_BITSIZEOF],
+[
+ dnl Use a shell loop, to avoid bloating configure, and
+ dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+ dnl config.h.in,
+ dnl - extra AC_SUBST calls, so that the right substitutions are made.
+ m4_foreach_w([gltype], [$1],
+ [AH_TEMPLATE([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+ [Define to the number of bits in type ']gltype['.])])
+ for gltype in $1 ; do
+ AC_CACHE_CHECK([for bit size of $gltype], [gl_cv_bitsizeof_${gltype}],
+ [AC_COMPUTE_INT([result], [sizeof ($gltype) * CHAR_BIT],
+ [$2
+#include <limits.h>], [result=unknown])
+ eval gl_cv_bitsizeof_${gltype}=\$result
+ ])
+ eval result=\$gl_cv_bitsizeof_${gltype}
+ if test $result = unknown; then
+ dnl Use a nonempty default, because some compilers, such as IRIX 5 cc,
+ dnl do a syntax check even on unused #if conditions and give an error
+ dnl on valid C code like this:
+ dnl #if 0
+ dnl # if > 32
+ dnl # endif
+ dnl #endif
+ result=0
+ fi
+ GLTYPE=`echo "$gltype" | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ AC_DEFINE_UNQUOTED([BITSIZEOF_${GLTYPE}], [$result])
+ eval BITSIZEOF_${GLTYPE}=\$result
+ done
+ m4_foreach_w([gltype], [$1],
+ [AC_SUBST([BITSIZEOF_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+])
+
+dnl gl_CHECK_TYPES_SIGNED(TYPES, INCLUDES)
+dnl Determine the signedness of each of the given types.
+dnl Define HAVE_SIGNED_TYPE if type is signed.
+AC_DEFUN([gl_CHECK_TYPES_SIGNED],
+[
+ dnl Use a shell loop, to avoid bloating configure, and
+ dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+ dnl config.h.in,
+ dnl - extra AC_SUBST calls, so that the right substitutions are made.
+ m4_foreach_w([gltype], [$1],
+ [AH_TEMPLATE([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]),
+ [Define to 1 if ']gltype[' is a signed integer type.])])
+ for gltype in $1 ; do
+ AC_CACHE_CHECK([whether $gltype is signed], [gl_cv_type_${gltype}_signed],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([$2[
+ int verify[2 * (($gltype) -1 < ($gltype) 0) - 1];]])],
+ result=yes, result=no)
+ eval gl_cv_type_${gltype}_signed=\$result
+ ])
+ eval result=\$gl_cv_type_${gltype}_signed
+ GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ if test "$result" = yes; then
+ AC_DEFINE_UNQUOTED([HAVE_SIGNED_${GLTYPE}], [1])
+ eval HAVE_SIGNED_${GLTYPE}=1
+ else
+ eval HAVE_SIGNED_${GLTYPE}=0
+ fi
+ done
+ m4_foreach_w([gltype], [$1],
+ [AC_SUBST([HAVE_SIGNED_]m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_]))])
+])
+
+dnl gl_INTEGER_TYPE_SUFFIX(TYPES, INCLUDES)
+dnl Determine the suffix to use for integer constants of the given types.
+dnl Define t_SUFFIX for each such type.
+AC_DEFUN([gl_INTEGER_TYPE_SUFFIX],
+[
+ dnl Use a shell loop, to avoid bloating configure, and
+ dnl - extra AH_TEMPLATE calls, so that autoheader knows what to put into
+ dnl config.h.in,
+ dnl - extra AC_SUBST calls, so that the right substitutions are made.
+ m4_foreach_w([gltype], [$1],
+ [AH_TEMPLATE(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX],
+ [Define to l, ll, u, ul, ull, etc., as suitable for
+ constants of type ']gltype['.])])
+ for gltype in $1 ; do
+ AC_CACHE_CHECK([for $gltype integer literal suffix],
+ [gl_cv_type_${gltype}_suffix],
+ [eval gl_cv_type_${gltype}_suffix=no
+ eval result=\$gl_cv_type_${gltype}_signed
+ if test "$result" = yes; then
+ glsufu=
+ else
+ glsufu=u
+ fi
+ 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';;
+ ui64)gltype1='unsigned __int64';;
+ esac
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([$2[
+ extern $gltype foo;
+ extern $gltype1 foo;]])],
+ [eval gl_cv_type_${gltype}_suffix=\$glsuf])
+ eval result=\$gl_cv_type_${gltype}_suffix
+ test "$result" != no && break
+ done])
+ GLTYPE=`echo $gltype | tr 'abcdefghijklmnopqrstuvwxyz ' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
+ eval result=\$gl_cv_type_${gltype}_suffix
+ test "$result" = no && result=
+ eval ${GLTYPE}_SUFFIX=\$result
+ AC_DEFINE_UNQUOTED([${GLTYPE}_SUFFIX], [$result])
+ done
+ m4_foreach_w([gltype], [$1],
+ [AC_SUBST(m4_translit(gltype,[abcdefghijklmnopqrstuvwxyz ],[ABCDEFGHIJKLMNOPQRSTUVWXYZ_])[_SUFFIX])])
+])
+
+dnl gl_STDINT_INCLUDES
+AC_DEFUN([gl_STDINT_INCLUDES],
+[[
+ /* 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
+]])
+
+dnl gl_STDINT_TYPE_PROPERTIES
+dnl Compute HAVE_SIGNED_t, BITSIZEOF_t and t_SUFFIX, for all the types t
+dnl of interest to stdint.in.h.
+AC_DEFUN([gl_STDINT_TYPE_PROPERTIES],
+[
+ AC_REQUIRE([gl_MULTIARCH])
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+ gl_STDINT_BITSIZEOF([ptrdiff_t size_t],
+ [gl_STDINT_INCLUDES])
+ fi
+ gl_STDINT_BITSIZEOF([sig_atomic_t wchar_t wint_t],
+ [gl_STDINT_INCLUDES])
+ gl_CHECK_TYPES_SIGNED([sig_atomic_t wchar_t wint_t],
+ [gl_STDINT_INCLUDES])
+ gl_cv_type_ptrdiff_t_signed=yes
+ gl_cv_type_size_t_signed=no
+ if test $APPLE_UNIVERSAL_BUILD = 0; then
+ gl_INTEGER_TYPE_SUFFIX([ptrdiff_t size_t],
+ [gl_STDINT_INCLUDES])
+ fi
+ gl_INTEGER_TYPE_SUFFIX([sig_atomic_t wchar_t wint_t],
+ [gl_STDINT_INCLUDES])
+
+ dnl If wint_t is smaller than 'int', it cannot satisfy the ISO C 99
+ dnl requirement that wint_t is "unchanged by default argument promotions".
+ dnl In this case gnulib's <wchar.h> and <wctype.h> override wint_t.
+ dnl Set the variable BITSIZEOF_WINT_T accordingly.
+ if test $BITSIZEOF_WINT_T -lt 32; then
+ BITSIZEOF_WINT_T=32
+ fi
+])
+
+dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in.
+dnl Remove this when we can assume autoconf >= 2.61.
+m4_ifdef([AC_COMPUTE_INT], [], [
+ AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])])
+])
+
+# Hey Emacs!
+# Local Variables:
+# indent-tabs-mode: nil
+# End:
diff --git a/m4/stdint_h.m4 b/m4/stdint_h.m4
new file mode 100644
index 00000000..581de960
--- /dev/null
+++ b/m4/stdint_h.m4
@@ -0,0 +1,27 @@
+# stdint_h.m4 serial 9
+dnl Copyright (C) 1997-2004, 2006, 2008-2012 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 Paul Eggert.
+
+# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
+# doesn't clash with <sys/types.h>, and declares uintmax_t.
+
+AC_DEFUN([gl_AC_HEADER_STDINT_H],
+[
+ AC_CACHE_CHECK([for stdint.h], [gl_cv_header_stdint_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <sys/types.h>
+ #include <stdint.h>]],
+ [[uintmax_t i = (uintmax_t) -1; return !i;]])],
+ [gl_cv_header_stdint_h=yes],
+ [gl_cv_header_stdint_h=no])])
+ if test $gl_cv_header_stdint_h = yes; then
+ AC_DEFINE_UNQUOTED([HAVE_STDINT_H_WITH_UINTMAX], [1],
+ [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
+ and declares uintmax_t. ])
+ fi
+])
diff --git a/m4/stdio_h.m4 b/m4/stdio_h.m4
new file mode 100644
index 00000000..1973e8db
--- /dev/null
+++ b/m4/stdio_h.m4
@@ -0,0 +1,195 @@
+# stdio_h.m4 serial 40
+dnl Copyright (C) 2007-2012 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_STDIO_H],
+[
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_REQUIRE([AC_C_INLINE])
+ gl_NEXT_HEADERS([stdio.h])
+
+ dnl No need to create extra modules for these functions. Everyone who uses
+ dnl <stdio.h> likely needs them.
+ GNULIB_FSCANF=1
+ GNULIB_SCANF=1
+ GNULIB_FGETC=1
+ GNULIB_GETC=1
+ GNULIB_GETCHAR=1
+ GNULIB_FGETS=1
+ GNULIB_GETS=1
+ GNULIB_FREAD=1
+ dnl This ifdef is necessary to avoid an error "missing file lib/stdio-read.c"
+ dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+ dnl also an optimization, to avoid performing a configure check whose result
+ dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
+ dnl or GNULIB_NONBLOCKING redundant.
+ m4_ifdef([gl_NONBLOCKING_IO], [
+ gl_NONBLOCKING_IO
+ if test $gl_cv_have_nonblocking != yes; then
+ REPLACE_STDIO_READ_FUNCS=1
+ AC_LIBOBJ([stdio-read])
+ fi
+ ])
+
+ dnl No need to create extra modules for these functions. Everyone who uses
+ dnl <stdio.h> likely needs them.
+ GNULIB_FPRINTF=1
+ GNULIB_PRINTF=1
+ GNULIB_VFPRINTF=1
+ GNULIB_VPRINTF=1
+ GNULIB_FPUTC=1
+ GNULIB_PUTC=1
+ GNULIB_PUTCHAR=1
+ GNULIB_FPUTS=1
+ GNULIB_PUTS=1
+ GNULIB_FWRITE=1
+ dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
+ dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+ dnl also an optimization, to avoid performing a configure check whose result
+ dnl is not used. But it does not make the test of GNULIB_STDIO_H_SIGPIPE or
+ dnl GNULIB_SIGPIPE redundant.
+ m4_ifdef([gl_SIGNAL_SIGPIPE], [
+ gl_SIGNAL_SIGPIPE
+ if test $gl_cv_header_signal_h_SIGPIPE != yes; then
+ REPLACE_STDIO_WRITE_FUNCS=1
+ AC_LIBOBJ([stdio-write])
+ fi
+ ])
+ dnl This ifdef is necessary to avoid an error "missing file lib/stdio-write.c"
+ dnl "expected source file, required through AC_LIBSOURCES, not found". It is
+ dnl also an optimization, to avoid performing a configure check whose result
+ dnl is not used. But it does not make the test of GNULIB_STDIO_H_NONBLOCKING
+ dnl or GNULIB_NONBLOCKING redundant.
+ m4_ifdef([gl_NONBLOCKING_IO], [
+ gl_NONBLOCKING_IO
+ if test $gl_cv_have_nonblocking != yes; then
+ REPLACE_STDIO_WRITE_FUNCS=1
+ 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 pclose popen renameat
+ snprintf tmpfile vdprintf vsnprintf])
+])
+
+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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_STDIO_H_DEFAULTS],
+[
+ GNULIB_DPRINTF=0; AC_SUBST([GNULIB_DPRINTF])
+ GNULIB_FCLOSE=0; AC_SUBST([GNULIB_FCLOSE])
+ GNULIB_FDOPEN=0; AC_SUBST([GNULIB_FDOPEN])
+ GNULIB_FFLUSH=0; AC_SUBST([GNULIB_FFLUSH])
+ GNULIB_FGETC=0; AC_SUBST([GNULIB_FGETC])
+ GNULIB_FGETS=0; AC_SUBST([GNULIB_FGETS])
+ 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_FREAD=0; AC_SUBST([GNULIB_FREAD])
+ GNULIB_FREOPEN=0; AC_SUBST([GNULIB_FREOPEN])
+ GNULIB_FSCANF=0; AC_SUBST([GNULIB_FSCANF])
+ 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_FWRITE=0; AC_SUBST([GNULIB_FWRITE])
+ GNULIB_GETC=0; AC_SUBST([GNULIB_GETC])
+ GNULIB_GETCHAR=0; AC_SUBST([GNULIB_GETCHAR])
+ GNULIB_GETDELIM=0; AC_SUBST([GNULIB_GETDELIM])
+ GNULIB_GETLINE=0; AC_SUBST([GNULIB_GETLINE])
+ GNULIB_GETS=0; AC_SUBST([GNULIB_GETS])
+ GNULIB_OBSTACK_PRINTF=0; AC_SUBST([GNULIB_OBSTACK_PRINTF])
+ GNULIB_OBSTACK_PRINTF_POSIX=0; AC_SUBST([GNULIB_OBSTACK_PRINTF_POSIX])
+ GNULIB_PCLOSE=0; AC_SUBST([GNULIB_PCLOSE])
+ 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_SCANF=0; AC_SUBST([GNULIB_SCANF])
+ GNULIB_SNPRINTF=0; AC_SUBST([GNULIB_SNPRINTF])
+ GNULIB_SPRINTF_POSIX=0; AC_SUBST([GNULIB_SPRINTF_POSIX])
+ GNULIB_STDIO_H_NONBLOCKING=0; AC_SUBST([GNULIB_STDIO_H_NONBLOCKING])
+ GNULIB_STDIO_H_SIGPIPE=0; AC_SUBST([GNULIB_STDIO_H_SIGPIPE])
+ GNULIB_TMPFILE=0; AC_SUBST([GNULIB_TMPFILE])
+ GNULIB_VASPRINTF=0; AC_SUBST([GNULIB_VASPRINTF])
+ GNULIB_VFSCANF=0; AC_SUBST([GNULIB_VFSCANF])
+ GNULIB_VSCANF=0; AC_SUBST([GNULIB_VSCANF])
+ 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.
+ HAVE_DECL_FPURGE=1; AC_SUBST([HAVE_DECL_FPURGE])
+ HAVE_DECL_FSEEKO=1; AC_SUBST([HAVE_DECL_FSEEKO])
+ HAVE_DECL_FTELLO=1; AC_SUBST([HAVE_DECL_FTELLO])
+ 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])
+ HAVE_DECL_VSNPRINTF=1; AC_SUBST([HAVE_DECL_VSNPRINTF])
+ HAVE_DPRINTF=1; AC_SUBST([HAVE_DPRINTF])
+ HAVE_FSEEKO=1; AC_SUBST([HAVE_FSEEKO])
+ HAVE_FTELLO=1; AC_SUBST([HAVE_FTELLO])
+ HAVE_PCLOSE=1; AC_SUBST([HAVE_PCLOSE])
+ HAVE_POPEN=1; AC_SUBST([HAVE_POPEN])
+ HAVE_RENAMEAT=1; AC_SUBST([HAVE_RENAMEAT])
+ HAVE_VASPRINTF=1; AC_SUBST([HAVE_VASPRINTF])
+ HAVE_VDPRINTF=1; AC_SUBST([HAVE_VDPRINTF])
+ REPLACE_DPRINTF=0; AC_SUBST([REPLACE_DPRINTF])
+ REPLACE_FCLOSE=0; AC_SUBST([REPLACE_FCLOSE])
+ REPLACE_FDOPEN=0; AC_SUBST([REPLACE_FDOPEN])
+ 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])
+ REPLACE_FSEEK=0; AC_SUBST([REPLACE_FSEEK])
+ REPLACE_FSEEKO=0; AC_SUBST([REPLACE_FSEEKO])
+ REPLACE_FTELL=0; AC_SUBST([REPLACE_FTELL])
+ 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_READ_FUNCS=0; AC_SUBST([REPLACE_STDIO_READ_FUNCS])
+ REPLACE_STDIO_WRITE_FUNCS=0; AC_SUBST([REPLACE_STDIO_WRITE_FUNCS])
+ REPLACE_TMPFILE=0; AC_SUBST([REPLACE_TMPFILE])
+ 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])
+])
diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4
new file mode 100644
index 00000000..ab43728a
--- /dev/null
+++ b/m4/stdlib_h.m4
@@ -0,0 +1,114 @@
+# stdlib_h.m4 serial 41
+dnl Copyright (C) 2007-2012 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_STDLIB_H],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ gl_NEXT_HEADERS([stdlib.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 <stdlib.h>
+#if HAVE_SYS_LOADAVG_H
+# include <sys/loadavg.h>
+#endif
+#if HAVE_RANDOM_H
+# include <random.h>
+#endif
+ ]], [_Exit atoll canonicalize_file_name getloadavg getsubopt grantpt
+ initstate initstate_r mkdtemp mkostemp mkostemps mkstemp mkstemps
+ posix_openpt ptsname ptsname_r random random_r realpath rpmatch
+ setenv setstate setstate_r srandom srandom_r
+ strtod strtoll strtoull unlockpt unsetenv])
+])
+
+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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_STDLIB_H_DEFAULTS],
+[
+ GNULIB__EXIT=0; AC_SUBST([GNULIB__EXIT])
+ 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_GRANTPT=0; AC_SUBST([GNULIB_GRANTPT])
+ GNULIB_MALLOC_POSIX=0; AC_SUBST([GNULIB_MALLOC_POSIX])
+ GNULIB_MBTOWC=0; AC_SUBST([GNULIB_MBTOWC])
+ 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_POSIX_OPENPT=0; AC_SUBST([GNULIB_POSIX_OPENPT])
+ GNULIB_PTSNAME=0; AC_SUBST([GNULIB_PTSNAME])
+ GNULIB_PTSNAME_R=0; AC_SUBST([GNULIB_PTSNAME_R])
+ GNULIB_PUTENV=0; AC_SUBST([GNULIB_PUTENV])
+ GNULIB_RANDOM=0; AC_SUBST([GNULIB_RANDOM])
+ 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])
+ GNULIB_STRTOLL=0; AC_SUBST([GNULIB_STRTOLL])
+ GNULIB_STRTOULL=0; AC_SUBST([GNULIB_STRTOULL])
+ GNULIB_SYSTEM_POSIX=0; AC_SUBST([GNULIB_SYSTEM_POSIX])
+ GNULIB_UNLOCKPT=0; AC_SUBST([GNULIB_UNLOCKPT])
+ GNULIB_UNSETENV=0; AC_SUBST([GNULIB_UNSETENV])
+ GNULIB_WCTOMB=0; AC_SUBST([GNULIB_WCTOMB])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE__EXIT=1; AC_SUBST([HAVE__EXIT])
+ HAVE_ATOLL=1; AC_SUBST([HAVE_ATOLL])
+ 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_GRANTPT=1; AC_SUBST([HAVE_GRANTPT])
+ HAVE_MKDTEMP=1; AC_SUBST([HAVE_MKDTEMP])
+ HAVE_MKOSTEMP=1; AC_SUBST([HAVE_MKOSTEMP])
+ HAVE_MKOSTEMPS=1; AC_SUBST([HAVE_MKOSTEMPS])
+ HAVE_MKSTEMP=1; AC_SUBST([HAVE_MKSTEMP])
+ HAVE_MKSTEMPS=1; AC_SUBST([HAVE_MKSTEMPS])
+ HAVE_POSIX_OPENPT=1; AC_SUBST([HAVE_POSIX_OPENPT])
+ HAVE_PTSNAME=1; AC_SUBST([HAVE_PTSNAME])
+ HAVE_PTSNAME_R=1; AC_SUBST([HAVE_PTSNAME_R])
+ HAVE_RANDOM=1; AC_SUBST([HAVE_RANDOM])
+ HAVE_RANDOM_H=1; AC_SUBST([HAVE_RANDOM_H])
+ HAVE_RANDOM_R=1; AC_SUBST([HAVE_RANDOM_R])
+ HAVE_REALPATH=1; AC_SUBST([HAVE_REALPATH])
+ HAVE_RPMATCH=1; AC_SUBST([HAVE_RPMATCH])
+ HAVE_SETENV=1; AC_SUBST([HAVE_SETENV])
+ HAVE_DECL_SETENV=1; AC_SUBST([HAVE_DECL_SETENV])
+ HAVE_STRTOD=1; AC_SUBST([HAVE_STRTOD])
+ HAVE_STRTOLL=1; AC_SUBST([HAVE_STRTOLL])
+ HAVE_STRTOULL=1; AC_SUBST([HAVE_STRTOULL])
+ HAVE_STRUCT_RANDOM_DATA=1; AC_SUBST([HAVE_STRUCT_RANDOM_DATA])
+ HAVE_SYS_LOADAVG_H=0; AC_SUBST([HAVE_SYS_LOADAVG_H])
+ HAVE_UNLOCKPT=1; AC_SUBST([HAVE_UNLOCKPT])
+ HAVE_DECL_UNSETENV=1; AC_SUBST([HAVE_DECL_UNSETENV])
+ REPLACE_CALLOC=0; AC_SUBST([REPLACE_CALLOC])
+ REPLACE_CANONICALIZE_FILE_NAME=0; AC_SUBST([REPLACE_CANONICALIZE_FILE_NAME])
+ REPLACE_MALLOC=0; AC_SUBST([REPLACE_MALLOC])
+ REPLACE_MBTOWC=0; AC_SUBST([REPLACE_MBTOWC])
+ REPLACE_MKSTEMP=0; AC_SUBST([REPLACE_MKSTEMP])
+ REPLACE_PTSNAME_R=0; AC_SUBST([REPLACE_PTSNAME_R])
+ REPLACE_PUTENV=0; AC_SUBST([REPLACE_PUTENV])
+ REPLACE_RANDOM_R=0; AC_SUBST([REPLACE_RANDOM_R])
+ REPLACE_REALLOC=0; AC_SUBST([REPLACE_REALLOC])
+ REPLACE_REALPATH=0; AC_SUBST([REPLACE_REALPATH])
+ REPLACE_SETENV=0; AC_SUBST([REPLACE_SETENV])
+ REPLACE_STRTOD=0; AC_SUBST([REPLACE_STRTOD])
+ REPLACE_UNSETENV=0; AC_SUBST([REPLACE_UNSETENV])
+ REPLACE_WCTOMB=0; AC_SUBST([REPLACE_WCTOMB])
+])
diff --git a/m4/stpcpy.m4 b/m4/stpcpy.m4
new file mode 100644
index 00000000..8e954578
--- /dev/null
+++ b/m4/stpcpy.m4
@@ -0,0 +1,25 @@
+# stpcpy.m4 serial 8
+dnl Copyright (C) 2002, 2007, 2009-2012 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_STPCPY],
+[
+ dnl Persuade glibc <string.h> to declare stpcpy().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ dnl The stpcpy() declaration in lib/string.in.h uses 'restrict'.
+ AC_REQUIRE([AC_C_RESTRICT])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_FUNCS([stpcpy])
+ if test $ac_cv_func_stpcpy = no; then
+ HAVE_STPCPY=0
+ fi
+])
+
+# Prerequisites of lib/stpcpy.c.
+AC_DEFUN([gl_PREREQ_STPCPY], [
+ :
+])
diff --git a/m4/strcase.m4 b/m4/strcase.m4
new file mode 100644
index 00000000..717fa9c3
--- /dev/null
+++ b/m4/strcase.m4
@@ -0,0 +1,45 @@
+# strcase.m4 serial 11
+dnl Copyright (C) 2002, 2005-2012 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_STRCASE],
+[
+ gl_FUNC_STRCASECMP
+ gl_FUNC_STRNCASECMP
+])
+
+AC_DEFUN([gl_FUNC_STRCASECMP],
+[
+ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+ AC_CHECK_FUNCS([strcasecmp])
+ if test $ac_cv_func_strcasecmp = no; then
+ HAVE_STRCASECMP=0
+ fi
+])
+
+AC_DEFUN([gl_FUNC_STRNCASECMP],
+[
+ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+ AC_CHECK_FUNCS([strncasecmp])
+ if test $ac_cv_func_strncasecmp = yes; then
+ HAVE_STRNCASECMP=1
+ else
+ HAVE_STRNCASECMP=0
+ fi
+ AC_CHECK_DECLS([strncasecmp])
+ if test $ac_cv_have_decl_strncasecmp = no; then
+ HAVE_DECL_STRNCASECMP=0
+ fi
+])
+
+# Prerequisites of lib/strcasecmp.c.
+AC_DEFUN([gl_PREREQ_STRCASECMP], [
+ :
+])
+
+# Prerequisites of lib/strncasecmp.c.
+AC_DEFUN([gl_PREREQ_STRNCASECMP], [
+ :
+])
diff --git a/m4/strchrnul.m4 b/m4/strchrnul.m4
new file mode 100644
index 00000000..d3dfb9af
--- /dev/null
+++ b/m4/strchrnul.m4
@@ -0,0 +1,50 @@
+# strchrnul.m4 serial 9
+dnl Copyright (C) 2003, 2007, 2009-2012 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_STRCHRNUL],
+[
+ dnl Persuade glibc <string.h> to declare strchrnul().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_FUNCS([strchrnul])
+ if test $ac_cv_func_strchrnul = no; then
+ HAVE_STRCHRNUL=0
+ else
+ AC_CACHE_CHECK([whether strchrnul works],
+ [gl_cv_func_strchrnul_works],
+ [AC_RUN_IFELSE([AC_LANG_PROGRAM([[
+#include <string.h> /* for strchrnul */
+]], [[const char *buf = "a";
+ return strchrnul (buf, 'b') != buf + 1;
+ ]])],
+ [gl_cv_func_strchrnul_works=yes],
+ [gl_cv_func_strchrnul_works=no],
+ [dnl Cygwin 1.7.9 introduced strchrnul, but it was broken until 1.7.10
+ AC_EGREP_CPP([Lucky user],
+ [
+#if defined __CYGWIN__
+ #include <cygwin/version.h>
+ #if CYGWIN_VERSION_DLL_COMBINED > CYGWIN_VERSION_DLL_MAKE_COMBINED (1007, 9)
+ Lucky user
+ #endif
+#else
+ Lucky user
+#endif
+ ],
+ [gl_cv_func_strchrnul_works="guessing yes"],
+ [gl_cv_func_strchrnul_works="guessing no"])
+ ])
+ ])
+ case "$gl_cv_func_strchrnul_works" in
+ *yes) ;;
+ *) REPLACE_STRCHRNUL=1 ;;
+ esac
+ fi
+])
+
+# Prerequisites of lib/strchrnul.c.
+AC_DEFUN([gl_PREREQ_STRCHRNUL], [:])
diff --git a/m4/strdup.m4 b/m4/strdup.m4
new file mode 100644
index 00000000..db0c8c1d
--- /dev/null
+++ b/m4/strdup.m4
@@ -0,0 +1,36 @@
+# strdup.m4 serial 13
+
+dnl Copyright (C) 2002-2012 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_STRDUP],
+[
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([strdup])
+ AC_CHECK_DECLS_ONCE([strdup])
+ if test $ac_cv_have_decl_strdup = no; then
+ HAVE_DECL_STRDUP=0
+ fi
+])
+
+AC_DEFUN([gl_FUNC_STRDUP_POSIX],
+[
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_REQUIRE([gl_CHECK_MALLOC_POSIX])
+ AC_CHECK_FUNCS_ONCE([strdup])
+ if test $ac_cv_func_strdup = yes; then
+ if test $gl_cv_func_malloc_posix != yes; then
+ REPLACE_STRDUP=1
+ fi
+ fi
+ AC_CHECK_DECLS_ONCE([strdup])
+ if test $ac_cv_have_decl_strdup = no; then
+ HAVE_DECL_STRDUP=0
+ fi
+])
+
+# Prerequisites of lib/strdup.c.
+AC_DEFUN([gl_PREREQ_STRDUP], [:])
diff --git a/m4/strerror.m4 b/m4/strerror.m4
new file mode 100644
index 00000000..6bf14ef1
--- /dev/null
+++ b/m4/strerror.m4
@@ -0,0 +1,78 @@
+# strerror.m4 serial 16
+dnl Copyright (C) 2002, 2007-2012 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_STRERROR],
+[
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ AC_REQUIRE([gl_HEADER_ERRNO_H])
+ AC_REQUIRE([gl_FUNC_STRERROR_0])
+ m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+ AC_REQUIRE([gl_FUNC_STRERROR_R_WORKS])
+ ])
+ if test "$ERRNO_H:$REPLACE_STRERROR_0" = :0; then
+ AC_CACHE_CHECK([for working strerror function],
+ [gl_cv_func_working_strerror],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <string.h>
+ ]],
+ [[if (!*strerror (-2)) return 1;]])],
+ [gl_cv_func_working_strerror=yes],
+ [gl_cv_func_working_strerror=no],
+ [dnl Be pessimistic on cross-compiles for now.
+ gl_cv_func_working_strerror="guessing no"])
+ ])
+ if test "$gl_cv_func_working_strerror" != yes; then
+ dnl The system's strerror() fails to return a string for out-of-range
+ dnl integers. Replace it.
+ REPLACE_STRERROR=1
+ fi
+ m4_ifdef([gl_FUNC_STRERROR_R_WORKS], [
+ dnl If the system's strerror_r or __xpg_strerror_r clobbers strerror's
+ dnl buffer, we must replace strerror.
+ case "$gl_cv_func_strerror_r_works" in
+ *no) REPLACE_STRERROR=1 ;;
+ esac
+ ])
+ else
+ dnl The system's strerror() cannot know about the new errno values we add
+ dnl to <errno.h>, or any fix for strerror(0). Replace it.
+ REPLACE_STRERROR=1
+ fi
+])
+
+dnl Detect if strerror(0) passes (that is, does not set errno, and does not
+dnl return a string that matches strerror(-1)).
+AC_DEFUN([gl_FUNC_STRERROR_0],
+[
+ REPLACE_STRERROR_0=0
+ AC_CACHE_CHECK([whether strerror(0) succeeds],
+ [gl_cv_func_strerror_0_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <string.h>
+ #include <errno.h>
+ ]],
+ [[int result = 0;
+ char *str;
+ errno = 0;
+ str = strerror (0);
+ if (!*str) result |= 1;
+ if (errno) result |= 2;
+ if (strstr (str, "nknown") || strstr (str, "ndefined"))
+ result |= 4;
+ return result;]])],
+ [gl_cv_func_strerror_0_works=yes],
+ [gl_cv_func_strerror_0_works=no],
+ [dnl Be pessimistic on cross-compiles for now.
+ gl_cv_func_strerror_0_works="guessing no"])
+ ])
+ if test "$gl_cv_func_strerror_0_works" != yes; then
+ REPLACE_STRERROR_0=1
+ AC_DEFINE([REPLACE_STRERROR_0], [1], [Define to 1 if strerror(0)
+ does not return a message implying success.])
+ fi
+])
diff --git a/m4/string_h.m4 b/m4/string_h.m4
new file mode 100644
index 00000000..5677e092
--- /dev/null
+++ b/m4/string_h.m4
@@ -0,0 +1,120 @@
+# Configure a GNU-like replacement for <string.h>.
+
+# Copyright (C) 2007-2012 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 21
+
+# Written by Paul Eggert.
+
+AC_DEFUN([gl_HEADER_STRING_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_HEADER_STRING_H_BODY])
+])
+
+AC_DEFUN([gl_HEADER_STRING_H_BODY],
+[
+ AC_REQUIRE([AC_C_RESTRICT])
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+ gl_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>
+ ]],
+ [ffsl ffsll memmem mempcpy memrchr rawmemchr stpcpy stpncpy strchrnul
+ strdup strncat strndup strnlen strpbrk strsep strcasestr strtok_r
+ strerror_r strsignal strverscmp])
+])
+
+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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_HEADER_STRING_H_DEFAULTS],
+[
+ GNULIB_FFSL=0; AC_SUBST([GNULIB_FFSL])
+ GNULIB_FFSLL=0; AC_SUBST([GNULIB_FFSLL])
+ 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])
+ GNULIB_RAWMEMCHR=0; AC_SUBST([GNULIB_RAWMEMCHR])
+ GNULIB_STPCPY=0; AC_SUBST([GNULIB_STPCPY])
+ GNULIB_STPNCPY=0; AC_SUBST([GNULIB_STPNCPY])
+ GNULIB_STRCHRNUL=0; AC_SUBST([GNULIB_STRCHRNUL])
+ GNULIB_STRDUP=0; AC_SUBST([GNULIB_STRDUP])
+ GNULIB_STRNCAT=0; AC_SUBST([GNULIB_STRNCAT])
+ GNULIB_STRNDUP=0; AC_SUBST([GNULIB_STRNDUP])
+ GNULIB_STRNLEN=0; AC_SUBST([GNULIB_STRNLEN])
+ GNULIB_STRPBRK=0; AC_SUBST([GNULIB_STRPBRK])
+ GNULIB_STRSEP=0; AC_SUBST([GNULIB_STRSEP])
+ GNULIB_STRSTR=0; AC_SUBST([GNULIB_STRSTR])
+ GNULIB_STRCASESTR=0; AC_SUBST([GNULIB_STRCASESTR])
+ GNULIB_STRTOK_R=0; AC_SUBST([GNULIB_STRTOK_R])
+ GNULIB_MBSLEN=0; AC_SUBST([GNULIB_MBSLEN])
+ GNULIB_MBSNLEN=0; AC_SUBST([GNULIB_MBSNLEN])
+ GNULIB_MBSCHR=0; AC_SUBST([GNULIB_MBSCHR])
+ GNULIB_MBSRCHR=0; AC_SUBST([GNULIB_MBSRCHR])
+ GNULIB_MBSSTR=0; AC_SUBST([GNULIB_MBSSTR])
+ GNULIB_MBSCASECMP=0; AC_SUBST([GNULIB_MBSCASECMP])
+ GNULIB_MBSNCASECMP=0; AC_SUBST([GNULIB_MBSNCASECMP])
+ GNULIB_MBSPCASECMP=0; AC_SUBST([GNULIB_MBSPCASECMP])
+ GNULIB_MBSCASESTR=0; AC_SUBST([GNULIB_MBSCASESTR])
+ GNULIB_MBSCSPN=0; AC_SUBST([GNULIB_MBSCSPN])
+ GNULIB_MBSPBRK=0; AC_SUBST([GNULIB_MBSPBRK])
+ GNULIB_MBSSPN=0; AC_SUBST([GNULIB_MBSSPN])
+ GNULIB_MBSSEP=0; AC_SUBST([GNULIB_MBSSEP])
+ GNULIB_MBSTOK_R=0; AC_SUBST([GNULIB_MBSTOK_R])
+ GNULIB_STRERROR=0; AC_SUBST([GNULIB_STRERROR])
+ GNULIB_STRERROR_R=0; AC_SUBST([GNULIB_STRERROR_R])
+ GNULIB_STRSIGNAL=0; AC_SUBST([GNULIB_STRSIGNAL])
+ 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_FFSL=1; AC_SUBST([HAVE_FFSL])
+ HAVE_FFSLL=1; AC_SUBST([HAVE_FFSLL])
+ HAVE_MEMCHR=1; AC_SUBST([HAVE_MEMCHR])
+ 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_R=1; AC_SUBST([HAVE_DECL_STRERROR_R])
+ 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_STPNCPY=0; AC_SUBST([REPLACE_STPNCPY])
+ REPLACE_STRDUP=0; AC_SUBST([REPLACE_STRDUP])
+ REPLACE_STRSTR=0; AC_SUBST([REPLACE_STRSTR])
+ REPLACE_STRCASESTR=0; AC_SUBST([REPLACE_STRCASESTR])
+ REPLACE_STRCHRNUL=0; AC_SUBST([REPLACE_STRCHRNUL])
+ REPLACE_STRERROR=0; AC_SUBST([REPLACE_STRERROR])
+ REPLACE_STRERROR_R=0; AC_SUBST([REPLACE_STRERROR_R])
+ REPLACE_STRNCAT=0; AC_SUBST([REPLACE_STRNCAT])
+ REPLACE_STRNDUP=0; AC_SUBST([REPLACE_STRNDUP])
+ REPLACE_STRNLEN=0; AC_SUBST([REPLACE_STRNLEN])
+ 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
new file mode 100644
index 00000000..a057e1c8
--- /dev/null
+++ b/m4/strings_h.m4
@@ -0,0 +1,52 @@
+# Configure a replacement for <strings.h>.
+# serial 6
+
+# Copyright (C) 2007, 2009-2012 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_HEADER_STRINGS_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_HEADER_STRINGS_H_BODY])
+])
+
+AC_DEFUN([gl_HEADER_STRINGS_H_BODY],
+[
+ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+
+ gl_CHECK_NEXT_HEADERS([strings.h])
+ if test $ac_cv_header_strings_h = yes; then
+ HAVE_STRINGS_H=1
+ else
+ HAVE_STRINGS_H=0
+ fi
+ AC_SUBST([HAVE_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([[
+ /* Minix 3.1.8 has a bug: <sys/types.h> must be included before
+ <strings.h>. */
+ #include <sys/types.h>
+ #include <strings.h>
+ ]], [ffs strcasecmp strncasecmp])
+])
+
+AC_DEFUN([gl_STRINGS_MODULE_INDICATOR],
+[
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_HEADER_STRINGS_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+])
+
+AC_DEFUN([gl_HEADER_STRINGS_H_DEFAULTS],
+[
+ GNULIB_FFS=0; AC_SUBST([GNULIB_FFS])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_FFS=1; AC_SUBST([HAVE_FFS])
+ HAVE_STRCASECMP=1; AC_SUBST([HAVE_STRCASECMP])
+ HAVE_DECL_STRNCASECMP=1; AC_SUBST([HAVE_DECL_STRNCASECMP])
+])
diff --git a/m4/strndup.m4 b/m4/strndup.m4
new file mode 100644
index 00000000..bdde5fe1
--- /dev/null
+++ b/m4/strndup.m4
@@ -0,0 +1,55 @@
+# strndup.m4 serial 20
+dnl Copyright (C) 2002-2003, 2005-2012 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_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
+
+ if test $ac_cv_func_strndup = yes; then
+ HAVE_STRNDUP=1
+ # 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
+ #ifdef __cplusplus
+ "C"
+ #endif
+ char *strndup (const char *, size_t);
+#endif
+ char *s;
+ s = strndup ("some longer string", 15);
+ free (s);
+ s = strndup ("shorter string", 13);
+ return s[13] != '\0';]])],
+ [gl_cv_func_strndup_works=yes],
+ [gl_cv_func_strndup_works=no],
+ [
+changequote(,)dnl
+ case $host_os in
+ aix | aix[3-6]*) gl_cv_func_strndup_works="guessing no";;
+ *) gl_cv_func_strndup_works="guessing yes";;
+ esac
+changequote([,])dnl
+ ])])
+ case $gl_cv_func_strndup_works in
+ *no) REPLACE_STRNDUP=1 ;;
+ esac
+ else
+ HAVE_STRNDUP=0
+ fi
+])
diff --git a/m4/strnlen.m4 b/m4/strnlen.m4
new file mode 100644
index 00000000..d97e3075
--- /dev/null
+++ b/m4/strnlen.m4
@@ -0,0 +1,30 @@
+# strnlen.m4 serial 13
+dnl Copyright (C) 2002-2003, 2005-2007, 2009-2012 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_STRNLEN],
+[
+ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS])
+
+ dnl Persuade glibc <string.h> to declare strnlen().
+ AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_DECLS_ONCE([strnlen])
+ if test $ac_cv_have_decl_strnlen = no; then
+ HAVE_DECL_STRNLEN=0
+ else
+ m4_pushdef([AC_LIBOBJ], [:])
+ dnl Note: AC_FUNC_STRNLEN does AC_LIBOBJ([strnlen]).
+ AC_FUNC_STRNLEN
+ m4_popdef([AC_LIBOBJ])
+ if test $ac_cv_func_strnlen_working = no; then
+ REPLACE_STRNLEN=1
+ fi
+ fi
+])
+
+# Prerequisites of lib/strnlen.c.
+AC_DEFUN([gl_PREREQ_STRNLEN], [:])
diff --git a/m4/strtol.m4 b/m4/strtol.m4
new file mode 100644
index 00000000..6fca7411
--- /dev/null
+++ b/m4/strtol.m4
@@ -0,0 +1,10 @@
+# strtol.m4 serial 6
+dnl Copyright (C) 2002-2003, 2006, 2009-2012 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_STRTOL],
+[
+ AC_CHECK_FUNCS([strtol])
+])
diff --git a/m4/strtoul.m4 b/m4/strtoul.m4
new file mode 100644
index 00000000..93e22483
--- /dev/null
+++ b/m4/strtoul.m4
@@ -0,0 +1,10 @@
+# strtoul.m4 serial 5
+dnl Copyright (C) 2002, 2006, 2009-2012 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_STRTOUL],
+[
+ AC_CHECK_FUNCS([strtoul])
+])
diff --git a/m4/strtoull.m4 b/m4/strtoull.m4
new file mode 100644
index 00000000..7c659f57
--- /dev/null
+++ b/m4/strtoull.m4
@@ -0,0 +1,24 @@
+# strtoull.m4 serial 7
+dnl Copyright (C) 2002, 2004, 2006, 2008-2012 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_STRTOULL],
+[
+ AC_REQUIRE([gl_STDLIB_H_DEFAULTS])
+ dnl We don't need (and can't compile) the replacement strtoull
+ dnl unless the type 'unsigned long long int' exists.
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+ if test "$ac_cv_type_unsigned_long_long_int" = yes; then
+ AC_CHECK_FUNCS([strtoull])
+ if test $ac_cv_func_strtoull = no; then
+ HAVE_STRTOULL=0
+ fi
+ fi
+])
+
+# Prerequisites of lib/strtoull.c.
+AC_DEFUN([gl_PREREQ_STRTOULL], [
+ :
+])
diff --git a/m4/strtoumax.m4 b/m4/strtoumax.m4
new file mode 100644
index 00000000..5b2285c6
--- /dev/null
+++ b/m4/strtoumax.m4
@@ -0,0 +1,23 @@
+# strtoumax.m4 serial 11
+dnl Copyright (C) 2002-2004, 2006, 2009-2012 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_STRTOUMAX],
+[
+ AC_REQUIRE([gl_INTTYPES_H_DEFAULTS])
+
+ dnl On OSF/1 5.1 with cc, this function is declared but not defined.
+ AC_CHECK_FUNCS_ONCE([strtoumax])
+ AC_CHECK_DECLS_ONCE([strtoumax])
+ if test "$ac_cv_have_decl_strtoumax" != yes; then
+ HAVE_DECL_STRTOUMAX=0
+ fi
+])
+
+# Prerequisites of lib/strtoumax.c.
+AC_DEFUN([gl_PREREQ_STRTOUMAX], [
+ AC_CHECK_DECLS([strtoull])
+ AC_REQUIRE([AC_TYPE_UNSIGNED_LONG_LONG_INT])
+])
diff --git a/m4/symlink.m4 b/m4/symlink.m4
new file mode 100644
index 00000000..f84b21e4
--- /dev/null
+++ b/m4/symlink.m4
@@ -0,0 +1,43 @@
+# serial 5
+# See if we need to provide symlink replacement.
+
+dnl Copyright (C) 2009-2012 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_SYMLINK],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_CHECK_FUNCS_ONCE([symlink])
+ dnl The best we can do on mingw is provide a dummy that always fails, so
+ dnl that compilation can proceed with fewer ifdefs. On FreeBSD 7.2, AIX 7.1,
+ dnl and Solaris 9, we want to fix a bug with trailing slash handling.
+ if test $ac_cv_func_symlink = no; then
+ HAVE_SYMLINK=0
+ else
+ AC_CACHE_CHECK([whether symlink handles trailing slash correctly],
+ [gl_cv_func_symlink_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <unistd.h>
+ ]],
+ [[int result = 0;
+ if (!symlink ("a", "conftest.link/"))
+ result |= 1;
+ if (symlink ("conftest.f", "conftest.lnk2"))
+ result |= 2;
+ else if (!symlink ("a", "conftest.lnk2/"))
+ result |= 4;
+ return result;
+ ]])],
+ [gl_cv_func_symlink_works=yes], [gl_cv_func_symlink_works=no],
+ [gl_cv_func_symlink_works="guessing no"])
+ rm -f conftest.f conftest.link conftest.lnk2])
+ if test "$gl_cv_func_symlink_works" != yes; then
+ REPLACE_SYMLINK=1
+ fi
+ fi
+])
diff --git a/m4/symlinkat.m4 b/m4/symlinkat.m4
new file mode 100644
index 00000000..5b2713e7
--- /dev/null
+++ b/m4/symlinkat.m4
@@ -0,0 +1,20 @@
+# serial 5
+# See if we need to provide symlinkat replacement.
+
+dnl Copyright (C) 2009-2012 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_SYMLINKAT],
+[
+ AC_REQUIRE([gl_FUNC_OPENAT])
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([symlinkat])
+ if test $ac_cv_func_symlinkat = no; then
+ HAVE_SYMLINKAT=0
+ fi
+])
diff --git a/m4/sys_socket_h.m4 b/m4/sys_socket_h.m4
new file mode 100644
index 00000000..8d4e7e1e
--- /dev/null
+++ b/m4/sys_socket_h.m4
@@ -0,0 +1,177 @@
+# sys_socket_h.m4 serial 22
+dnl Copyright (C) 2005-2012 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 Simon Josefsson.
+
+AC_DEFUN([gl_HEADER_SYS_SOCKET],
+[
+ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AC_C_INLINE])
+
+ dnl On OSF/1, the functions recv(), send(), recvfrom(), sendto() have
+ dnl old-style declarations (with return type 'int' instead of 'ssize_t')
+ dnl unless _POSIX_PII_SOCKET is defined.
+ case "$host_os" in
+ osf*)
+ AC_DEFINE([_POSIX_PII_SOCKET], [1],
+ [Define to 1 in order to get the POSIX compatible declarations
+ of socket functions.])
+ ;;
+ esac
+
+ AC_CACHE_CHECK([whether <sys/socket.h> is self-contained],
+ [gl_cv_header_sys_socket_h_selfcontained],
+ [
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/socket.h>]], [[]])],
+ [gl_cv_header_sys_socket_h_selfcontained=yes],
+ [gl_cv_header_sys_socket_h_selfcontained=no])
+ ])
+ if test $gl_cv_header_sys_socket_h_selfcontained = yes; then
+ dnl If the shutdown function exists, <sys/socket.h> should define
+ dnl SHUT_RD, SHUT_WR, SHUT_RDWR.
+ AC_CHECK_FUNCS([shutdown])
+ if test $ac_cv_func_shutdown = yes; then
+ AC_CACHE_CHECK([whether <sys/socket.h> defines the SHUT_* macros],
+ [gl_cv_header_sys_socket_h_shut],
+ [
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM([[#include <sys/socket.h>]],
+ [[int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };]])],
+ [gl_cv_header_sys_socket_h_shut=yes],
+ [gl_cv_header_sys_socket_h_shut=no])
+ ])
+ if test $gl_cv_header_sys_socket_h_shut = no; then
+ SYS_SOCKET_H='sys/socket.h'
+ fi
+ fi
+ fi
+ # We need to check for ws2tcpip.h now.
+ gl_PREREQ_SYS_H_SOCKET
+ AC_CHECK_TYPES([struct sockaddr_storage, sa_family_t],,,[
+ /* sys/types.h is not needed according to POSIX, but the
+ sys/socket.h in i386-unknown-freebsd4.10 and
+ powerpc-apple-darwin5.5 required it. */
+#include <sys/types.h>
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h>
+#endif
+])
+ if test $ac_cv_type_struct_sockaddr_storage = no; then
+ HAVE_STRUCT_SOCKADDR_STORAGE=0
+ fi
+ if test $ac_cv_type_sa_family_t = no; then
+ HAVE_SA_FAMILY_T=0
+ fi
+ if test $ac_cv_type_struct_sockaddr_storage != no; then
+ AC_CHECK_MEMBERS([struct sockaddr_storage.ss_family],
+ [],
+ [HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=0],
+ [#include <sys/types.h>
+ #ifdef HAVE_SYS_SOCKET_H
+ #include <sys/socket.h>
+ #endif
+ #ifdef HAVE_WS2TCPIP_H
+ #include <ws2tcpip.h>
+ #endif
+ ])
+ fi
+ if test $HAVE_STRUCT_SOCKADDR_STORAGE = 0 || test $HAVE_SA_FAMILY_T = 0 \
+ || test $HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY = 0; then
+ SYS_SOCKET_H='sys/socket.h'
+ fi
+ gl_PREREQ_SYS_H_WINSOCK2
+
+ 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 prerequisite headers. */
+#include <sys/types.h>
+#include <sys/socket.h>
+ ]], [socket connect accept bind getpeername getsockname getsockopt
+ listen recv send recvfrom sendto setsockopt shutdown accept4])
+])
+
+AC_DEFUN([gl_PREREQ_SYS_H_SOCKET],
+[
+ dnl Check prerequisites of the <sys/socket.h> replacement.
+ AC_REQUIRE([gl_CHECK_SOCKET_HEADERS])
+ gl_CHECK_NEXT_HEADERS([sys/socket.h])
+ if test $ac_cv_header_sys_socket_h = yes; then
+ HAVE_SYS_SOCKET_H=1
+ HAVE_WS2TCPIP_H=0
+ else
+ HAVE_SYS_SOCKET_H=0
+ if test $ac_cv_header_ws2tcpip_h = yes; then
+ HAVE_WS2TCPIP_H=1
+ else
+ HAVE_WS2TCPIP_H=0
+ fi
+ fi
+ AC_SUBST([HAVE_SYS_SOCKET_H])
+ AC_SUBST([HAVE_WS2TCPIP_H])
+])
+
+# Common prerequisites of the <sys/socket.h> replacement and of the
+# <sys/select.h> replacement.
+# Sets and substitutes HAVE_WINSOCK2_H.
+AC_DEFUN([gl_PREREQ_SYS_H_WINSOCK2],
+[
+ m4_ifdef([gl_UNISTD_H_DEFAULTS], [AC_REQUIRE([gl_UNISTD_H_DEFAULTS])])
+ m4_ifdef([gl_SYS_IOCTL_H_DEFAULTS], [AC_REQUIRE([gl_SYS_IOCTL_H_DEFAULTS])])
+ AC_CHECK_HEADERS_ONCE([sys/socket.h])
+ if test $ac_cv_header_sys_socket_h != yes; then
+ dnl We cannot use AC_CHECK_HEADERS_ONCE here, because that would make
+ dnl the check for those headers unconditional; yet cygwin reports
+ dnl that the headers are present but cannot be compiled (since on
+ dnl cygwin, all socket information should come from sys/socket.h).
+ AC_CHECK_HEADERS([winsock2.h])
+ fi
+ if test "$ac_cv_header_winsock2_h" = yes; then
+ HAVE_WINSOCK2_H=1
+ UNISTD_H_HAVE_WINSOCK2_H=1
+ SYS_IOCTL_H_HAVE_WINSOCK2_H=1
+ else
+ HAVE_WINSOCK2_H=0
+ fi
+ AC_SUBST([HAVE_WINSOCK2_H])
+])
+
+AC_DEFUN([gl_SYS_SOCKET_MODULE_INDICATOR],
+[
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_SYS_SOCKET_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_SYS_SOCKET_H_DEFAULTS],
+[
+ GNULIB_SOCKET=0; AC_SUBST([GNULIB_SOCKET])
+ GNULIB_CONNECT=0; AC_SUBST([GNULIB_CONNECT])
+ GNULIB_ACCEPT=0; AC_SUBST([GNULIB_ACCEPT])
+ GNULIB_BIND=0; AC_SUBST([GNULIB_BIND])
+ GNULIB_GETPEERNAME=0; AC_SUBST([GNULIB_GETPEERNAME])
+ GNULIB_GETSOCKNAME=0; AC_SUBST([GNULIB_GETSOCKNAME])
+ GNULIB_GETSOCKOPT=0; AC_SUBST([GNULIB_GETSOCKOPT])
+ GNULIB_LISTEN=0; AC_SUBST([GNULIB_LISTEN])
+ GNULIB_RECV=0; AC_SUBST([GNULIB_RECV])
+ GNULIB_SEND=0; AC_SUBST([GNULIB_SEND])
+ GNULIB_RECVFROM=0; AC_SUBST([GNULIB_RECVFROM])
+ GNULIB_SENDTO=0; AC_SUBST([GNULIB_SENDTO])
+ GNULIB_SETSOCKOPT=0; AC_SUBST([GNULIB_SETSOCKOPT])
+ GNULIB_SHUTDOWN=0; AC_SUBST([GNULIB_SHUTDOWN])
+ GNULIB_ACCEPT4=0; AC_SUBST([GNULIB_ACCEPT4])
+ HAVE_STRUCT_SOCKADDR_STORAGE=1; AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE])
+ HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY=1;
+ AC_SUBST([HAVE_STRUCT_SOCKADDR_STORAGE_SS_FAMILY])
+ HAVE_SA_FAMILY_T=1; AC_SUBST([HAVE_SA_FAMILY_T])
+ HAVE_ACCEPT4=1; AC_SUBST([HAVE_ACCEPT4])
+])
diff --git a/m4/sys_stat_h.m4 b/m4/sys_stat_h.m4
new file mode 100644
index 00000000..a0b96bc3
--- /dev/null
+++ b/m4/sys_stat_h.m4
@@ -0,0 +1,86 @@
+# sys_stat_h.m4 serial 26 -*- Autoconf -*-
+dnl Copyright (C) 2006-2012 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 Provide a GNU-like <sys/stat.h>.
+
+AC_DEFUN([gl_HEADER_SYS_STAT_H],
+[
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+
+ dnl For the mkdir substitute.
+ AC_REQUIRE([AC_C_INLINE])
+
+ dnl Check for broken stat macros.
+ AC_REQUIRE([AC_HEADER_STAT])
+
+ gl_CHECK_NEXT_HEADERS([sys/stat.h])
+
+ dnl Ensure the type mode_t gets defined.
+ AC_REQUIRE([AC_TYPE_MODE_T])
+
+ dnl Define types that are supposed to be defined in <sys/types.h> or
+ dnl <sys/stat.h>.
+ AC_CHECK_TYPE([nlink_t], [],
+ [AC_DEFINE([nlink_t], [int],
+ [Define to the type of st_nlink in struct stat, or a supertype.])],
+ [#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 fstat fstatat futimens lchmod lstat mkdirat mkfifo mkfifoat
+ mknod mknodat stat utimensat])
+]) # gl_HEADER_SYS_STAT_H
+
+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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_SYS_STAT_H_DEFAULTS],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) dnl for REPLACE_FCHDIR
+ GNULIB_FCHMODAT=0; AC_SUBST([GNULIB_FCHMODAT])
+ GNULIB_FSTAT=0; AC_SUBST([GNULIB_FSTAT])
+ 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_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
new file mode 100644
index 00000000..bed37978
--- /dev/null
+++ b/m4/sys_time_h.m4
@@ -0,0 +1,78 @@
+# Configure a replacement for <sys/time.h>.
+# serial 7
+
+# Copyright (C) 2007, 2009-2012 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 and Martin Lambers.
+
+AC_DEFUN([gl_HEADER_SYS_TIME_H],
+[
+ dnl Use AC_REQUIRE here, so that the REPLACE_GETTIMEOFDAY=0 statement
+ dnl below is expanded once only, before all REPLACE_GETTIMEOFDAY=1
+ dnl statements that occur in other macros.
+ AC_REQUIRE([gl_HEADER_SYS_TIME_H_BODY])
+])
+
+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=0
+ fi
+
+ dnl On native Windows with MSVC, 'struct timeval' is defined in <winsock2.h>
+ dnl only. So include that header in the list.
+ gl_PREREQ_SYS_H_WINSOCK2
+ 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>
+ #if HAVE_WINSOCK2_H
+ # include <winsock2.h>
+ #endif
+ ]],
+ [[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=0
+ fi
+
+ 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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$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.
+ 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/sys_types_h.m4 b/m4/sys_types_h.m4
new file mode 100644
index 00000000..8d18ddb4
--- /dev/null
+++ b/m4/sys_types_h.m4
@@ -0,0 +1,21 @@
+# sys_types_h.m4 serial 2
+dnl Copyright (C) 2011-2012 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_SYS_TYPES_H],
+[
+ AC_REQUIRE([gl_SYS_TYPES_H_DEFAULTS])
+ gl_NEXT_HEADERS([sys/types.h])
+
+ dnl Ensure the type pid_t gets defined.
+ AC_REQUIRE([AC_TYPE_PID_T])
+
+ dnl Ensure the type mode_t gets defined.
+ AC_REQUIRE([AC_TYPE_MODE_T])
+])
+
+AC_DEFUN([gl_SYS_TYPES_H_DEFAULTS],
+[
+])
diff --git a/m4/sysexits.m4 b/m4/sysexits.m4
new file mode 100644
index 00000000..c5741d25
--- /dev/null
+++ b/m4/sysexits.m4
@@ -0,0 +1,44 @@
+# sysexits.m4 serial 6
+dnl Copyright (C) 2003, 2005, 2007, 2009-2012 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_SYSEXITS],
+[
+ AC_CHECK_HEADERS_ONCE([sysexits.h])
+ if test $ac_cv_header_sysexits_h = yes; then
+ HAVE_SYSEXITS_H=1
+ gl_CHECK_NEXT_HEADERS([sysexits.h])
+ 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
+ HAVE_SYSEXITS_H=0
+ SYSEXITS_H=sysexits.h
+ fi
+ AC_SUBST([HAVE_SYSEXITS_H])
+ AC_SUBST([SYSEXITS_H])
+ AM_CONDITIONAL([GL_GENERATE_SYSEXITS_H], [test -n "$SYSEXITS_H"])
+])
diff --git a/m4/system.m4 b/m4/system.m4
new file mode 100644
index 00000000..bafedda4
--- /dev/null
+++ b/m4/system.m4
@@ -0,0 +1,31 @@
+# Configuration for paxutils/lib/system.h.
+
+# 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.
+
+AC_DEFUN([PU_SYSTEM],[
+ AC_REQUIRE([AC_HEADER_STDC])
+
+ AC_CHECK_HEADERS_ONCE([string.h memory.h fcntl.h sys/wait.h \
+ sys/gentape.h sys/tape.h sys/device.h sys/param.h sys/tprintf.h sys/mtio.h \
+ sgtty.h sys/io/trioctl.h locale.h pwd.h grp.h])
+
+ AC_CHECK_HEADERS([sys/buf.h], [], [],
+ [#if HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif])
+
+ AC_REQUIRE([AC_HEADER_TIME])
+
+ AC_CHECK_MEMBERS([struct stat.st_blksize]) dnl instead of AC_STRUCT_ST_BLKSIZE
+ AC_REQUIRE([AC_STRUCT_ST_BLOCKS])
+ AC_REQUIRE([AC_STRUCT_ST_BLKSIZE])
+
+ AC_CHECK_FUNCS_ONCE(lstat mkfifo setlocale)
+ AC_REQUIRE([gl_INTTOSTR])
+ AC_REQUIRE([gl_STDINT_H])
+
+ AC_SEARCH_LIBS(gethostbyname, nsl)
+])
diff --git a/m4/tempname.m4 b/m4/tempname.m4
new file mode 100644
index 00000000..20ad78bc
--- /dev/null
+++ b/m4/tempname.m4
@@ -0,0 +1,19 @@
+#serial 5
+
+# Copyright (C) 2006-2007, 2009-2012 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.
+
+# glibc provides __gen_tempname as a wrapper for mk[ds]temp. Expose
+# it as a public API, and provide it on systems that are lacking.
+AC_DEFUN([gl_FUNC_GEN_TEMPNAME],
+[
+ gl_PREREQ_TEMPNAME
+])
+
+# Prerequisites of lib/tempname.c.
+AC_DEFUN([gl_PREREQ_TEMPNAME],
+[
+ :
+])
diff --git a/m4/threadlib.m4 b/m4/threadlib.m4
new file mode 100644
index 00000000..9cedb670
--- /dev/null
+++ b/m4/threadlib.m4
@@ -0,0 +1,371 @@
+# threadlib.m4 serial 9 (gettext-0.18.2)
+dnl Copyright (C) 2005-2012 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 Bruno Haible.
+
+dnl gl_THREADLIB
+dnl ------------
+dnl Tests for a multithreading library to be used.
+dnl If the configure.ac contains a definition of the gl_THREADLIB_DEFAULT_NO
+dnl (it must be placed before the invocation of gl_THREADLIB_EARLY!), then the
+dnl default is 'no', otherwise it is system dependent. In both cases, the user
+dnl can change the choice through the options --enable-threads=choice or
+dnl --disable-threads.
+dnl Defines at most one of the macros USE_POSIX_THREADS, USE_SOLARIS_THREADS,
+dnl USE_PTH_THREADS, USE_WINDOWS_THREADS
+dnl Sets the variables LIBTHREAD and LTLIBTHREAD to the linker options for use
+dnl in a Makefile (LIBTHREAD for use without libtool, LTLIBTHREAD for use with
+dnl libtool).
+dnl Sets the variables LIBMULTITHREAD and LTLIBMULTITHREAD similarly, for
+dnl programs that really need multithread functionality. The difference
+dnl between LIBTHREAD and LIBMULTITHREAD is that on platforms supporting weak
+dnl symbols, typically LIBTHREAD="" whereas LIBMULTITHREAD="-lpthread".
+dnl Adds to CPPFLAGS the flag -D_REENTRANT or -D_THREAD_SAFE if needed for
+dnl multithread-safe programs.
+
+AC_DEFUN([gl_THREADLIB_EARLY],
+[
+ AC_REQUIRE([gl_THREADLIB_EARLY_BODY])
+])
+
+dnl The guts of gl_THREADLIB_EARLY. Needs to be expanded only once.
+
+AC_DEFUN([gl_THREADLIB_EARLY_BODY],
+[
+ dnl Ordering constraints: This macro modifies CPPFLAGS in a way that
+ dnl influences the result of the autoconf tests that test for *_unlocked
+ dnl declarations, on AIX 5 at least. Therefore it must come early.
+ AC_BEFORE([$0], [gl_FUNC_GLIBC_UNLOCKED_IO])dnl
+ AC_BEFORE([$0], [gl_ARGP])dnl
+
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ dnl _GNU_SOURCE is needed for pthread_rwlock_t on glibc systems.
+ dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes
+ dnl AC_GNU_SOURCE.
+ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS],
+ [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])],
+ [AC_REQUIRE([AC_GNU_SOURCE])])
+ dnl Check for multithreading.
+ m4_ifdef([gl_THREADLIB_DEFAULT_NO],
+ [m4_divert_text([DEFAULTS], [gl_use_threads_default=no])],
+ [m4_divert_text([DEFAULTS], [gl_use_threads_default=])])
+ AC_ARG_ENABLE([threads],
+AC_HELP_STRING([--enable-threads={posix|solaris|pth|windows}], [specify multithreading API])m4_ifdef([gl_THREADLIB_DEFAULT_NO], [], [
+AC_HELP_STRING([--disable-threads], [build without multithread safety])]),
+ [gl_use_threads=$enableval],
+ [if test -n "$gl_use_threads_default"; then
+ gl_use_threads="$gl_use_threads_default"
+ else
+changequote(,)dnl
+ case "$host_os" in
+ dnl Disable multithreading by default on OSF/1, because it interferes
+ dnl with fork()/exec(): When msgexec is linked with -lpthread, its
+ dnl child process gets an endless segmentation fault inside execvp().
+ dnl Disable multithreading by default on Cygwin 1.5.x, because it has
+ dnl bugs that lead to endless loops or crashes. See
+ dnl <http://cygwin.com/ml/cygwin/2009-08/msg00283.html>.
+ osf*) gl_use_threads=no ;;
+ cygwin*)
+ case `uname -r` in
+ 1.[0-5].*) gl_use_threads=no ;;
+ *) gl_use_threads=yes ;;
+ esac
+ ;;
+ *) gl_use_threads=yes ;;
+ esac
+changequote([,])dnl
+ fi
+ ])
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
+ # For using <pthread.h>:
+ case "$host_os" in
+ osf*)
+ # On OSF/1, the compiler needs the flag -D_REENTRANT so that it
+ # groks <pthread.h>. cc also understands the flag -pthread, but
+ # we don't use it because 1. gcc-2.95 doesn't understand -pthread,
+ # 2. putting a flag into CPPFLAGS that has an effect on the linker
+ # causes the AC_LINK_IFELSE test below to succeed unexpectedly,
+ # leading to wrong values of LIBTHREAD and LTLIBTHREAD.
+ CPPFLAGS="$CPPFLAGS -D_REENTRANT"
+ ;;
+ esac
+ # Some systems optimize for single-threaded programs by default, and
+ # need special flags to disable these optimizations. For example, the
+ # definition of 'errno' in <errno.h>.
+ case "$host_os" in
+ aix* | freebsd*) CPPFLAGS="$CPPFLAGS -D_THREAD_SAFE" ;;
+ solaris*) CPPFLAGS="$CPPFLAGS -D_REENTRANT" ;;
+ esac
+ fi
+])
+
+dnl The guts of gl_THREADLIB. Needs to be expanded only once.
+
+AC_DEFUN([gl_THREADLIB_BODY],
+[
+ AC_REQUIRE([gl_THREADLIB_EARLY_BODY])
+ gl_threads_api=none
+ LIBTHREAD=
+ LTLIBTHREAD=
+ LIBMULTITHREAD=
+ LTLIBMULTITHREAD=
+ if test "$gl_use_threads" != no; then
+ dnl Check whether the compiler and linker support weak declarations.
+ AC_CACHE_CHECK([whether imported symbols can be declared weak],
+ [gl_cv_have_weak],
+ [gl_cv_have_weak=no
+ dnl First, test whether the compiler accepts it syntactically.
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[extern void xyzzy ();
+#pragma weak xyzzy]],
+ [[xyzzy();]])],
+ [gl_cv_have_weak=maybe])
+ if test $gl_cv_have_weak = maybe; then
+ dnl Second, test whether it actually works. On Cygwin 1.7.2, with
+ dnl gcc 4.3, symbols declared weak always evaluate to the address 0.
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <stdio.h>
+#pragma weak fputs
+int main ()
+{
+ return (fputs == NULL);
+}]])],
+ [gl_cv_have_weak=yes],
+ [gl_cv_have_weak=no],
+ [dnl When cross-compiling, assume that only ELF platforms support
+ dnl weak symbols.
+ AC_EGREP_CPP([Extensible Linking Format],
+ [#ifdef __ELF__
+ Extensible Linking Format
+ #endif
+ ],
+ [gl_cv_have_weak="guessing yes"],
+ [gl_cv_have_weak="guessing no"])
+ ])
+ fi
+ ])
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = posix; then
+ # On OSF/1, the compiler needs the flag -pthread or -D_REENTRANT so that
+ # it groks <pthread.h>. It's added above, in gl_THREADLIB_EARLY_BODY.
+ AC_CHECK_HEADER([pthread.h],
+ [gl_have_pthread_h=yes], [gl_have_pthread_h=no])
+ if test "$gl_have_pthread_h" = yes; then
+ # Other possible tests:
+ # -lpthreads (FSU threads, PCthreads)
+ # -lgthreads
+ gl_have_pthread=
+ # Test whether both pthread_mutex_lock and pthread_mutexattr_init exist
+ # in libc. IRIX 6.5 has the first one in both libc and libpthread, but
+ # the second one only in libpthread, and lock.c needs it.
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>]],
+ [[pthread_mutex_lock((pthread_mutex_t*)0);
+ pthread_mutexattr_init((pthread_mutexattr_t*)0);]])],
+ [gl_have_pthread=yes])
+ # Test for libpthread by looking for pthread_kill. (Not pthread_self,
+ # since it is defined as a macro on OSF/1.)
+ if test -n "$gl_have_pthread"; then
+ # The program links fine without libpthread. But it may actually
+ # need to link with libpthread in order to create multiple threads.
+ AC_CHECK_LIB([pthread], [pthread_kill],
+ [LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread
+ # On Solaris and HP-UX, most pthread functions exist also in libc.
+ # Therefore pthread_in_use() needs to actually try to create a
+ # thread: pthread_create from libc will fail, whereas
+ # pthread_create will actually create a thread.
+ case "$host_os" in
+ solaris* | hpux*)
+ AC_DEFINE([PTHREAD_IN_USE_DETECTION_HARD], [1],
+ [Define if the pthread_in_use() detection is hard.])
+ esac
+ ])
+ else
+ # Some library is needed. Try libpthread and libc_r.
+ AC_CHECK_LIB([pthread], [pthread_kill],
+ [gl_have_pthread=yes
+ LIBTHREAD=-lpthread LTLIBTHREAD=-lpthread
+ LIBMULTITHREAD=-lpthread LTLIBMULTITHREAD=-lpthread])
+ if test -z "$gl_have_pthread"; then
+ # For FreeBSD 4.
+ AC_CHECK_LIB([c_r], [pthread_kill],
+ [gl_have_pthread=yes
+ LIBTHREAD=-lc_r LTLIBTHREAD=-lc_r
+ LIBMULTITHREAD=-lc_r LTLIBMULTITHREAD=-lc_r])
+ fi
+ fi
+ if test -n "$gl_have_pthread"; then
+ gl_threads_api=posix
+ AC_DEFINE([USE_POSIX_THREADS], [1],
+ [Define if the POSIX multithreading library can be used.])
+ if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
+ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
+ AC_DEFINE([USE_POSIX_THREADS_WEAK], [1],
+ [Define if references to the POSIX multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -z "$gl_have_pthread"; then
+ if test "$gl_use_threads" = yes || test "$gl_use_threads" = solaris; then
+ gl_have_solaristhread=
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS -lthread"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+#include <thread.h>
+#include <synch.h>
+ ]],
+ [[thr_self();]])],
+ [gl_have_solaristhread=yes])
+ LIBS="$gl_save_LIBS"
+ if test -n "$gl_have_solaristhread"; then
+ gl_threads_api=solaris
+ LIBTHREAD=-lthread
+ LTLIBTHREAD=-lthread
+ LIBMULTITHREAD="$LIBTHREAD"
+ LTLIBMULTITHREAD="$LTLIBTHREAD"
+ AC_DEFINE([USE_SOLARIS_THREADS], [1],
+ [Define if the old Solaris multithreading library can be used.])
+ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
+ AC_DEFINE([USE_SOLARIS_THREADS_WEAK], [1],
+ [Define if references to the old Solaris multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ fi
+ fi
+ if test "$gl_use_threads" = pth; then
+ gl_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_LINKFLAGS([pth])
+ gl_have_pth=
+ gl_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBPTH"
+ AC_LINK_IFELSE(
+ [AC_LANG_PROGRAM([[#include <pth.h>]], [[pth_self();]])],
+ [gl_have_pth=yes])
+ LIBS="$gl_save_LIBS"
+ if test -n "$gl_have_pth"; then
+ gl_threads_api=pth
+ LIBTHREAD="$LIBPTH"
+ LTLIBTHREAD="$LTLIBPTH"
+ LIBMULTITHREAD="$LIBTHREAD"
+ LTLIBMULTITHREAD="$LTLIBTHREAD"
+ AC_DEFINE([USE_PTH_THREADS], [1],
+ [Define if the GNU Pth multithreading library can be used.])
+ if test -n "$LIBMULTITHREAD" || test -n "$LTLIBMULTITHREAD"; then
+ if case "$gl_cv_have_weak" in *yes) true;; *) false;; esac; then
+ AC_DEFINE([USE_PTH_THREADS_WEAK], [1],
+ [Define if references to the GNU Pth multithreading library should be made weak.])
+ LIBTHREAD=
+ LTLIBTHREAD=
+ fi
+ fi
+ else
+ CPPFLAGS="$gl_save_CPPFLAGS"
+ fi
+ fi
+ if test -z "$gl_have_pthread"; then
+ case "$gl_use_threads" in
+ yes | windows | win32) # The 'win32' is for backward compatibility.
+ if { case "$host_os" in
+ mingw*) true;;
+ *) false;;
+ esac
+ }; then
+ gl_threads_api=windows
+ AC_DEFINE([USE_WINDOWS_THREADS], [1],
+ [Define if the native Windows multithreading API can be used.])
+ fi
+ ;;
+ esac
+ fi
+ fi
+ AC_MSG_CHECKING([for multithread API to use])
+ AC_MSG_RESULT([$gl_threads_api])
+ AC_SUBST([LIBTHREAD])
+ AC_SUBST([LTLIBTHREAD])
+ AC_SUBST([LIBMULTITHREAD])
+ AC_SUBST([LTLIBMULTITHREAD])
+])
+
+AC_DEFUN([gl_THREADLIB],
+[
+ AC_REQUIRE([gl_THREADLIB_EARLY])
+ AC_REQUIRE([gl_THREADLIB_BODY])
+])
+
+
+dnl gl_DISABLE_THREADS
+dnl ------------------
+dnl Sets the gl_THREADLIB default so that threads are not used by default.
+dnl The user can still override it at installation time, by using the
+dnl configure option '--enable-threads'.
+
+AC_DEFUN([gl_DISABLE_THREADS], [
+ m4_divert_text([INIT_PREPARE], [gl_use_threads_default=no])
+])
+
+
+dnl Survey of platforms:
+dnl
+dnl Platform Available Compiler Supports test-lock
+dnl flavours option weak result
+dnl --------------- --------- --------- -------- ---------
+dnl Linux 2.4/glibc posix -lpthread Y OK
+dnl
+dnl GNU Hurd/glibc posix
+dnl
+dnl FreeBSD 5.3 posix -lc_r Y
+dnl posix -lkse ? Y
+dnl posix -lpthread ? Y
+dnl posix -lthr Y
+dnl
+dnl FreeBSD 5.2 posix -lc_r Y
+dnl posix -lkse Y
+dnl posix -lthr Y
+dnl
+dnl FreeBSD 4.0,4.10 posix -lc_r Y OK
+dnl
+dnl NetBSD 1.6 --
+dnl
+dnl OpenBSD 3.4 posix -lpthread Y OK
+dnl
+dnl MacOS X 10.[123] posix -lpthread Y OK
+dnl
+dnl Solaris 7,8,9 posix -lpthread Y Sol 7,8: 0.0; Sol 9: OK
+dnl solaris -lthread Y Sol 7,8: 0.0; Sol 9: OK
+dnl
+dnl HP-UX 11 posix -lpthread N (cc) OK
+dnl Y (gcc)
+dnl
+dnl IRIX 6.5 posix -lpthread Y 0.5
+dnl
+dnl AIX 4.3,5.1 posix -lpthread N AIX 4: 0.5; AIX 5: OK
+dnl
+dnl OSF/1 4.0,5.1 posix -pthread (cc) N OK
+dnl -lpthread (gcc) Y
+dnl
+dnl Cygwin posix -lpthread Y OK
+dnl
+dnl Any of the above pth -lpth 0.0
+dnl
+dnl Mingw windows N OK
+dnl
+dnl BeOS 5 --
+dnl
+dnl The test-lock result shows what happens if in test-lock.c EXPLICIT_YIELD is
+dnl turned off:
+dnl OK if all three tests terminate OK,
+dnl 0.5 if the first test terminates OK but the second one loops endlessly,
+dnl 0.0 if the first test already loops endlessly.
diff --git a/m4/time_h.m4 b/m4/time_h.m4
new file mode 100644
index 00000000..b88da764
--- /dev/null
+++ b/m4/time_h.m4
@@ -0,0 +1,109 @@
+# Configure a more-standard replacement for <time.h>.
+
+# Copyright (C) 2000-2001, 2003-2007, 2009-2012 Free Software Foundation, Inc.
+
+# serial 6
+
+# 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 and Jim Meyering.
+
+AC_DEFUN([gl_HEADER_TIME_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_HEADER_TIME_H_BODY])
+])
+
+AC_DEFUN([gl_HEADER_TIME_H_BODY],
+[
+ AC_REQUIRE([AC_C_RESTRICT])
+ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+ gl_NEXT_HEADERS([time.h])
+ AC_REQUIRE([gl_CHECK_TYPE_STRUCT_TIMESPEC])
+])
+
+dnl Define HAVE_STRUCT_TIMESPEC if 'struct timespec' is declared
+dnl in time.h, sys/time.h, or pthread.h.
+
+AC_DEFUN([gl_CHECK_TYPE_STRUCT_TIMESPEC],
+[
+ AC_CHECK_HEADERS_ONCE([sys/time.h])
+ AC_CACHE_CHECK([for struct timespec in <time.h>],
+ [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;]])],
+ [gl_cv_sys_struct_timespec_in_time_h=yes],
+ [gl_cv_sys_struct_timespec_in_time_h=no])])
+
+ TIME_H_DEFINES_STRUCT_TIMESPEC=0
+ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=0
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=0
+ if test $gl_cv_sys_struct_timespec_in_time_h = yes; then
+ TIME_H_DEFINES_STRUCT_TIMESPEC=1
+ else
+ 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])])
+ if test $gl_cv_sys_struct_timespec_in_sys_time_h = yes; then
+ SYS_TIME_H_DEFINES_STRUCT_TIMESPEC=1
+ else
+ AC_CACHE_CHECK([for struct timespec in <pthread.h>],
+ [gl_cv_sys_struct_timespec_in_pthread_h],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <pthread.h>
+ ]],
+ [[static struct timespec x; x.tv_sec = x.tv_nsec;]])],
+ [gl_cv_sys_struct_timespec_in_pthread_h=yes],
+ [gl_cv_sys_struct_timespec_in_pthread_h=no])])
+ if test $gl_cv_sys_struct_timespec_in_pthread_h = yes; then
+ PTHREAD_H_DEFINES_STRUCT_TIMESPEC=1
+ fi
+ fi
+ fi
+ AC_SUBST([TIME_H_DEFINES_STRUCT_TIMESPEC])
+ AC_SUBST([SYS_TIME_H_DEFINES_STRUCT_TIMESPEC])
+ AC_SUBST([PTHREAD_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_TIME_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$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])
+ GNULIB_TIME_R=0; AC_SUBST([GNULIB_TIME_R])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_DECL_LOCALTIME_R=1; AC_SUBST([HAVE_DECL_LOCALTIME_R])
+ HAVE_NANOSLEEP=1; AC_SUBST([HAVE_NANOSLEEP])
+ HAVE_STRPTIME=1; AC_SUBST([HAVE_STRPTIME])
+ HAVE_TIMEGM=1; AC_SUBST([HAVE_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_TIMEGM=GNULIB_PORTCHECK; AC_SUBST([REPLACE_TIMEGM])
+])
diff --git a/m4/time_r.m4 b/m4/time_r.m4
new file mode 100644
index 00000000..c3579fb3
--- /dev/null
+++ b/m4/time_r.m4
@@ -0,0 +1,58 @@
+dnl Reentrant time functions: localtime_r, gmtime_r.
+
+dnl Copyright (C) 2003, 2006-2012 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.
+
+AC_DEFUN([gl_TIME_R],
+[
+ dnl Persuade glibc and Solaris <time.h> to declare localtime_r.
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS])
+ AC_REQUIRE([AC_C_RESTRICT])
+
+ dnl Some systems don't declare localtime_r() and gmtime_r() if _REENTRANT is
+ dnl not defined.
+ AC_CHECK_DECLS_ONCE([localtime_r])
+ if test $ac_cv_have_decl_localtime_r = no; then
+ HAVE_DECL_LOCALTIME_R=0
+ fi
+
+ AC_CHECK_FUNCS_ONCE([localtime_r])
+ if test $ac_cv_func_localtime_r = yes; then
+ HAVE_LOCALTIME_R=1
+ AC_CACHE_CHECK([whether localtime_r is compatible with its POSIX signature],
+ [gl_cv_time_r_posix],
+ [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
+ REPLACE_LOCALTIME_R=0
+ else
+ REPLACE_LOCALTIME_R=1
+ fi
+ else
+ HAVE_LOCALTIME_R=0
+ fi
+])
+
+# Prerequisites of lib/time_r.c.
+AC_DEFUN([gl_PREREQ_TIME_R], [
+ :
+])
diff --git a/m4/timespec.m4 b/m4/timespec.m4
new file mode 100644
index 00000000..597b9c2d
--- /dev/null
+++ b/m4/timespec.m4
@@ -0,0 +1,15 @@
+#serial 14
+
+# Copyright (C) 2000-2001, 2003-2007, 2009-2012 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 From Jim Meyering
+
+AC_DEFUN([gl_TIMESPEC],
+[
+ dnl Prerequisites of lib/timespec.h.
+ AC_REQUIRE([AC_C_INLINE])
+])
diff --git a/m4/tm_gmtoff.m4 b/m4/tm_gmtoff.m4
new file mode 100644
index 00000000..c12e6cef
--- /dev/null
+++ b/m4/tm_gmtoff.m4
@@ -0,0 +1,14 @@
+# tm_gmtoff.m4 serial 3
+dnl Copyright (C) 2002, 2009-2012 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_TM_GMTOFF],
+[
+ AC_CHECK_MEMBER([struct tm.tm_gmtoff],
+ [AC_DEFINE([HAVE_TM_GMTOFF], [1],
+ [Define if struct tm has the tm_gmtoff member.])],
+ ,
+ [#include <time.h>])
+])
diff --git a/m4/unistd-safer.m4 b/m4/unistd-safer.m4
new file mode 100644
index 00000000..62e295bc
--- /dev/null
+++ b/m4/unistd-safer.m4
@@ -0,0 +1,10 @@
+#serial 9
+dnl Copyright (C) 2002, 2005-2006, 2009-2012 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_UNISTD_SAFER],
+[
+ AC_CHECK_FUNCS_ONCE([pipe])
+])
diff --git a/m4/unistd_h.m4 b/m4/unistd_h.m4
new file mode 100644
index 00000000..7595534f
--- /dev/null
+++ b/m4/unistd_h.m4
@@ -0,0 +1,183 @@
+# unistd_h.m4 serial 63
+dnl Copyright (C) 2006-2012 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 Simon Josefsson, Bruno Haible.
+
+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])
+ if test $ac_cv_header_unistd_h = yes; then
+ HAVE_UNISTD_H=1
+ else
+ HAVE_UNISTD_H=0
+ fi
+ AC_SUBST([HAVE_UNISTD_H])
+
+ dnl Ensure the type pid_t gets defined.
+ AC_REQUIRE([AC_TYPE_PID_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([[
+#if HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+/* Some systems declare various items in the wrong headers. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <fcntl.h>
+# include <stdio.h>
+# include <stdlib.h>
+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__
+# include <io.h>
+# endif
+#endif
+ ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat
+ fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups
+ gethostname getlogin getlogin_r getpagesize
+ getusershell setusershell endusershell
+ group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite
+ readlink readlinkat rmdir sethostname sleep symlink symlinkat ttyname_r
+ unlink unlinkat usleep])
+])
+
+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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_UNISTD_H_DEFAULTS],
+[
+ GNULIB_CHDIR=0; AC_SUBST([GNULIB_CHDIR])
+ GNULIB_CHOWN=0; AC_SUBST([GNULIB_CHOWN])
+ GNULIB_CLOSE=0; AC_SUBST([GNULIB_CLOSE])
+ GNULIB_DUP=0; AC_SUBST([GNULIB_DUP])
+ 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_FDATASYNC=0; AC_SUBST([GNULIB_FDATASYNC])
+ 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_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER])
+ GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY])
+ 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_PIPE=0; AC_SUBST([GNULIB_PIPE])
+ GNULIB_PIPE2=0; AC_SUBST([GNULIB_PIPE2])
+ GNULIB_PREAD=0; AC_SUBST([GNULIB_PREAD])
+ GNULIB_PWRITE=0; AC_SUBST([GNULIB_PWRITE])
+ GNULIB_READ=0; AC_SUBST([GNULIB_READ])
+ GNULIB_READLINK=0; AC_SUBST([GNULIB_READLINK])
+ GNULIB_READLINKAT=0; AC_SUBST([GNULIB_READLINKAT])
+ GNULIB_RMDIR=0; AC_SUBST([GNULIB_RMDIR])
+ GNULIB_SETHOSTNAME=0; AC_SUBST([GNULIB_SETHOSTNAME])
+ GNULIB_SLEEP=0; AC_SUBST([GNULIB_SLEEP])
+ GNULIB_SYMLINK=0; AC_SUBST([GNULIB_SYMLINK])
+ GNULIB_SYMLINKAT=0; AC_SUBST([GNULIB_SYMLINKAT])
+ GNULIB_TTYNAME_R=0; AC_SUBST([GNULIB_TTYNAME_R])
+ GNULIB_UNISTD_H_NONBLOCKING=0; AC_SUBST([GNULIB_UNISTD_H_NONBLOCKING])
+ 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_FCHDIR=1; AC_SUBST([HAVE_FCHDIR])
+ HAVE_FCHOWNAT=1; AC_SUBST([HAVE_FCHOWNAT])
+ HAVE_FDATASYNC=1; AC_SUBST([HAVE_FDATASYNC])
+ HAVE_FSYNC=1; AC_SUBST([HAVE_FSYNC])
+ HAVE_FTRUNCATE=1; AC_SUBST([HAVE_FTRUNCATE])
+ 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_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER])
+ HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN])
+ HAVE_LINK=1; AC_SUBST([HAVE_LINK])
+ HAVE_LINKAT=1; AC_SUBST([HAVE_LINKAT])
+ HAVE_PIPE=1; AC_SUBST([HAVE_PIPE])
+ HAVE_PIPE2=1; AC_SUBST([HAVE_PIPE2])
+ HAVE_PREAD=1; AC_SUBST([HAVE_PREAD])
+ HAVE_PWRITE=1; AC_SUBST([HAVE_PWRITE])
+ HAVE_READLINK=1; AC_SUBST([HAVE_READLINK])
+ HAVE_READLINKAT=1; AC_SUBST([HAVE_READLINKAT])
+ HAVE_SETHOSTNAME=1; AC_SUBST([HAVE_SETHOSTNAME])
+ HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP])
+ HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK])
+ HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT])
+ HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT])
+ HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP])
+ HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON])
+ HAVE_DECL_FCHDIR=1; AC_SUBST([HAVE_DECL_FCHDIR])
+ HAVE_DECL_FDATASYNC=1; AC_SUBST([HAVE_DECL_FDATASYNC])
+ HAVE_DECL_GETDOMAINNAME=1; AC_SUBST([HAVE_DECL_GETDOMAINNAME])
+ HAVE_DECL_GETLOGIN_R=1; AC_SUBST([HAVE_DECL_GETLOGIN_R])
+ HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE])
+ HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL])
+ HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME])
+ HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R])
+ HAVE_OS_H=0; AC_SUBST([HAVE_OS_H])
+ HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H])
+ 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_FCHOWNAT=0; AC_SUBST([REPLACE_FCHOWNAT])
+ REPLACE_GETCWD=0; AC_SUBST([REPLACE_GETCWD])
+ REPLACE_GETDOMAINNAME=0; AC_SUBST([REPLACE_GETDOMAINNAME])
+ REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R])
+ REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS])
+ REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE])
+ REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY])
+ 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_PWRITE=0; AC_SUBST([REPLACE_PWRITE])
+ REPLACE_READ=0; AC_SUBST([REPLACE_READ])
+ 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_TTYNAME_R=0; AC_SUBST([REPLACE_TTYNAME_R])
+ 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/unlinkdir.m4 b/m4/unlinkdir.m4
new file mode 100644
index 00000000..48cf33c4
--- /dev/null
+++ b/m4/unlinkdir.m4
@@ -0,0 +1,32 @@
+# serial 7
+
+# Copyright (C) 2005-2007, 2009-2012 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.
+
+AC_DEFUN([gl_UNLINKDIR],
+[
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_CHECK_HEADERS_ONCE([priv.h])
+
+ # The Hurd, the Linux kernel, the FreeBSD kernel version 2.2 and later,
+ # 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_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
new file mode 100644
index 00000000..c44adaee
--- /dev/null
+++ b/m4/unlocked-io.m4
@@ -0,0 +1,41 @@
+# unlocked-io.m4 serial 15
+
+# Copyright (C) 1998-2006, 2009-2012 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 From Jim Meyering.
+dnl
+dnl See if the glibc *_unlocked I/O macros or functions are available.
+dnl Use only those *_unlocked macros or functions that are declared
+dnl (because some of them were declared in Solaris 2.5.1 but were removed
+dnl in Solaris 2.6, whereas we want binaries built on Solaris 2.5.1 to run
+dnl on Solaris 2.6).
+
+AC_DEFUN([gl_FUNC_GLIBC_UNLOCKED_IO],
+[
+ AC_DEFINE([USE_UNLOCKED_IO], [1],
+ [Define to 1 if you want getc etc. to use unlocked I/O if available.
+ Unlocked I/O can improve performance in unithreaded apps,
+ but it is not safe for multithreaded apps.])
+
+ dnl Persuade glibc and Solaris <stdio.h> to declare
+ dnl fgets_unlocked(), fputs_unlocked() etc.
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+
+ AC_CHECK_DECLS_ONCE([clearerr_unlocked])
+ AC_CHECK_DECLS_ONCE([feof_unlocked])
+ AC_CHECK_DECLS_ONCE([ferror_unlocked])
+ AC_CHECK_DECLS_ONCE([fflush_unlocked])
+ AC_CHECK_DECLS_ONCE([fgets_unlocked])
+ AC_CHECK_DECLS_ONCE([fputc_unlocked])
+ AC_CHECK_DECLS_ONCE([fputs_unlocked])
+ AC_CHECK_DECLS_ONCE([fread_unlocked])
+ AC_CHECK_DECLS_ONCE([fwrite_unlocked])
+ AC_CHECK_DECLS_ONCE([getc_unlocked])
+ AC_CHECK_DECLS_ONCE([getchar_unlocked])
+ AC_CHECK_DECLS_ONCE([putc_unlocked])
+ AC_CHECK_DECLS_ONCE([putchar_unlocked])
+])
diff --git a/m4/utimbuf.m4 b/m4/utimbuf.m4
new file mode 100644
index 00000000..25eb85b3
--- /dev/null
+++ b/m4/utimbuf.m4
@@ -0,0 +1,39 @@
+# serial 9
+
+# Copyright (C) 1998-2001, 2003-2004, 2007, 2009-2012 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 From Jim Meyering
+
+dnl Define HAVE_STRUCT_UTIMBUF if 'struct utimbuf' is declared --
+dnl usually in <utime.h>.
+dnl Some systems have utime.h but don't declare the struct anywhere.
+
+AC_DEFUN([gl_CHECK_TYPE_STRUCT_UTIMBUF],
+[
+ AC_CHECK_HEADERS_ONCE([sys/time.h utime.h])
+ 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;]])],
+ [gl_cv_sys_struct_utimbuf=yes],
+ [gl_cv_sys_struct_utimbuf=no])])
+
+ if test $gl_cv_sys_struct_utimbuf = yes; then
+ AC_DEFINE([HAVE_STRUCT_UTIMBUF], [1],
+ [Define if struct utimbuf is declared -- usually in <utime.h>.
+ Some systems have utime.h but don't declare the struct anywhere. ])
+ fi
+])
diff --git a/m4/utimens.m4 b/m4/utimens.m4
new file mode 100644
index 00000000..8be4b077
--- /dev/null
+++ b/m4/utimens.m4
@@ -0,0 +1,40 @@
+dnl Copyright (C) 2003-2012 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 6
+
+AC_DEFUN([gl_UTIMENS],
+[
+ dnl Prerequisites of lib/utimens.c.
+ 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 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>
+#include <fcntl.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/utimensat.m4 b/m4/utimensat.m4
new file mode 100644
index 00000000..d1bafcc4
--- /dev/null
+++ b/m4/utimensat.m4
@@ -0,0 +1,71 @@
+# serial 5
+# See if we need to provide utimensat replacement.
+
+dnl Copyright (C) 2009-2012 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_UTIMENSAT],
+[
+ AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
+ AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
+ AC_CHECK_FUNCS_ONCE([utimensat])
+ if test $ac_cv_func_utimensat = no; then
+ HAVE_UTIMENSAT=0
+ else
+ AC_CACHE_CHECK([whether utimensat works],
+ [gl_cv_func_utimensat_works],
+ [AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([[
+#include <fcntl.h>
+#include <sys/stat.h>
+#include <unistd.h>
+]], [[int result = 0;
+ const char *f = "conftest.file";
+ if (close (creat (f, 0600)))
+ return 1;
+ /* Test whether the AT_SYMLINK_NOFOLLOW flag is supported. */
+ {
+ if (utimensat (AT_FDCWD, f, NULL, AT_SYMLINK_NOFOLLOW))
+ result |= 2;
+ }
+ /* Test whether UTIME_NOW and UTIME_OMIT work. */
+ {
+ struct timespec ts[2] = { { 1, UTIME_OMIT }, { 1, UTIME_NOW } };
+ if (utimensat (AT_FDCWD, f, ts, 0))
+ result |= 4;
+ }
+ sleep (1);
+ {
+ struct timespec ts[2] = { { 1, UTIME_NOW }, { 1, UTIME_OMIT } };
+ struct stat st;
+ if (utimensat (AT_FDCWD, f, ts, 0))
+ result |= 8;
+ if (stat (f, &st))
+ result |= 16;
+ else if (st.st_ctime < st.st_atime)
+ result |= 32;
+ }
+ return result;
+ ]])],
+dnl FIXME: simplify this in 2012, when file system bugs are no longer common
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#ifdef __linux__
+/* The Linux kernel added utimensat in 2.6.22, but has bugs with UTIME_OMIT
+ in several file systems as recently as 2.6.32. Always replace utimensat
+ to support older kernels. */
+choke me
+#endif
+ ]])],
+ [gl_cv_func_utimensat_works=yes],
+ [gl_cv_func_utimensat_works="needs runtime check"])],
+ [gl_cv_func_utimensat_works=no],
+ [gl_cv_func_utimensat_works="guessing no"])])
+ if test "$gl_cv_func_utimensat_works" != yes; then
+ REPLACE_UTIMENSAT=1
+ fi
+ fi
+])
diff --git a/m4/utimes.m4 b/m4/utimes.m4
new file mode 100644
index 00000000..417103a7
--- /dev/null
+++ b/m4/utimes.m4
@@ -0,0 +1,136 @@
+# Detect some bugs in glibc's implementation of utimes.
+# serial 3
+
+dnl Copyright (C) 2003-2005, 2009-2012 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.
+
+# See if we need to work around bugs in glibc's implementation of
+# utimes from 2003-07-12 to 2003-09-17.
+# First, there was a bug that would make utimes set mtime
+# and atime to zero (1970-01-01) unconditionally.
+# Then, there was code to round rather than truncate.
+# Then, there was an implementation (sparc64, Linux-2.4.28, glibc-2.3.3)
+# that didn't honor the NULL-means-set-to-current-time semantics.
+# Finally, there was also a version of utimes that failed on read-only
+# files, while utime worked fine (linux-2.2.20, glibc-2.2.5).
+#
+# From Jim Meyering, with suggestions from Paul Eggert.
+
+AC_DEFUN([gl_FUNC_UTIMES],
+[
+ AC_CACHE_CHECK([whether the utimes function works],
+ [gl_cv_func_working_utimes],
+ [
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <sys/time.h>
+#include <time.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <utime.h>
+
+static int
+inorder (time_t a, time_t b, time_t c)
+{
+ return a <= b && b <= c;
+}
+
+int
+main ()
+{
+ int result = 0;
+ char const *file = "conftest.utimes";
+ static struct timeval timeval[2] = {{9, 10}, {999999, 999999}};
+
+ /* Test whether utimes() essentially works. */
+ {
+ struct stat sbuf;
+ FILE *f = fopen (file, "w");
+ if (f == NULL)
+ result |= 1;
+ else if (fclose (f) != 0)
+ result |= 1;
+ else if (utimes (file, timeval) != 0)
+ result |= 2;
+ else if (lstat (file, &sbuf) != 0)
+ result |= 1;
+ else if (!(sbuf.st_atime == timeval[0].tv_sec
+ && sbuf.st_mtime == timeval[1].tv_sec))
+ result |= 4;
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ /* Test whether utimes() with a NULL argument sets the file's timestamp
+ to the current time. Use 'fstat' as well as 'time' to
+ determine the "current" time, to accommodate NFS file systems
+ if there is a time skew between the host and the NFS server. */
+ {
+ int fd = open (file, O_WRONLY|O_CREAT, 0644);
+ if (fd < 0)
+ result |= 1;
+ else
+ {
+ time_t t0, t2;
+ struct stat st0, st1, st2;
+ if (time (&t0) == (time_t) -1)
+ result |= 1;
+ else if (fstat (fd, &st0) != 0)
+ result |= 1;
+ else if (utimes (file, timeval) != 0)
+ result |= 2;
+ else if (utimes (file, NULL) != 0)
+ result |= 8;
+ else if (fstat (fd, &st1) != 0)
+ result |= 1;
+ else if (write (fd, "\n", 1) != 1)
+ result |= 1;
+ else if (fstat (fd, &st2) != 0)
+ result |= 1;
+ else if (time (&t2) == (time_t) -1)
+ result |= 1;
+ else
+ {
+ int m_ok_POSIX = inorder (t0, st1.st_mtime, t2);
+ int m_ok_NFS = inorder (st0.st_mtime, st1.st_mtime, st2.st_mtime);
+ if (! (st1.st_atime == st1.st_mtime))
+ result |= 16;
+ if (! (m_ok_POSIX || m_ok_NFS))
+ result |= 32;
+ }
+ if (close (fd) != 0)
+ result |= 1;
+ }
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ /* Test whether utimes() with a NULL argument works on read-only files. */
+ {
+ int fd = open (file, O_WRONLY|O_CREAT, 0444);
+ if (fd < 0)
+ result |= 1;
+ else if (close (fd) != 0)
+ result |= 1;
+ else if (utimes (file, NULL) != 0)
+ result |= 64;
+ if (unlink (file) != 0)
+ result |= 1;
+ }
+
+ return result;
+}
+ ]])],
+ [gl_cv_func_working_utimes=yes],
+ [gl_cv_func_working_utimes=no],
+ [gl_cv_func_working_utimes=no])])
+
+ if test $gl_cv_func_working_utimes = yes; then
+ AC_DEFINE([HAVE_WORKING_UTIMES], [1], [Define if utimes works properly. ])
+ fi
+])
diff --git a/m4/vasnprintf.m4 b/m4/vasnprintf.m4
new file mode 100644
index 00000000..61fe4992
--- /dev/null
+++ b/m4/vasnprintf.m4
@@ -0,0 +1,292 @@
+# vasnprintf.m4 serial 34
+dnl Copyright (C) 2002-2004, 2006-2012 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_VASNPRINTF],
+[
+ AC_CHECK_FUNCS_ONCE([vasnprintf])
+ if test $ac_cv_func_vasnprintf = no; then
+ gl_REPLACE_VASNPRINTF
+ fi
+])
+
+AC_DEFUN([gl_REPLACE_VASNPRINTF],
+[
+ AC_CHECK_FUNCS_ONCE([vasnprintf])
+ AC_LIBOBJ([vasnprintf])
+ AC_LIBOBJ([printf-args])
+ AC_LIBOBJ([printf-parse])
+ AC_LIBOBJ([asnprintf])
+ if test $ac_cv_func_vasnprintf = yes; then
+ AC_DEFINE([REPLACE_VASNPRINTF], [1],
+ [Define if vasnprintf exists but is overridden by gnulib.])
+ fi
+ gl_PREREQ_PRINTF_ARGS
+ gl_PREREQ_PRINTF_PARSE
+ gl_PREREQ_VASNPRINTF
+ gl_PREREQ_ASNPRINTF
+])
+
+# Prequisites of lib/printf-args.h, lib/printf-args.c.
+AC_DEFUN([gl_PREREQ_PRINTF_ARGS],
+[
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ AC_REQUIRE([gt_TYPE_WCHAR_T])
+ AC_REQUIRE([gt_TYPE_WINT_T])
+])
+
+# Prequisites of lib/printf-parse.h, lib/printf-parse.c.
+AC_DEFUN([gl_PREREQ_PRINTF_PARSE],
+[
+ AC_REQUIRE([gl_FEATURES_H])
+ AC_REQUIRE([AC_TYPE_LONG_LONG_INT])
+ AC_REQUIRE([gt_TYPE_WCHAR_T])
+ AC_REQUIRE([gt_TYPE_WINT_T])
+ AC_REQUIRE([AC_TYPE_SIZE_T])
+ AC_CHECK_TYPE([ptrdiff_t], ,
+ [AC_DEFINE([ptrdiff_t], [long],
+ [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+ ])
+ AC_REQUIRE([gt_AC_TYPE_INTMAX_T])
+])
+
+# Prerequisites of lib/vasnprintf.c.
+AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF],
+[
+ AC_REQUIRE([AC_C_INLINE])
+ 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 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>]])
+ dnl Knowing DBL_EXPBIT0_WORD and DBL_EXPBIT0_BIT enables an optimization
+ dnl in the code for NEED_PRINTF_LONG_DOUBLE || NEED_PRINTF_DOUBLE.
+ AC_REQUIRE([gl_DOUBLE_EXPONENT_LOCATION])
+ dnl We can avoid a lot of code by assuming that snprintf's return value
+ dnl conforms to ISO C99. So check that.
+ AC_REQUIRE([gl_SNPRINTF_RETVAL_C99])
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+ AC_DEFINE([HAVE_SNPRINTF_RETVAL_C99], [1],
+ [Define if the return value of the snprintf function is the number of
+ of bytes (excluding the terminating NUL) that would have been produced
+ if the buffer had been large enough.])
+ ;;
+ esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting 'long double'
+# arguments.
+AC_DEFUN_ONCE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE],
+[
+ AC_REQUIRE([gl_PRINTF_LONG_DOUBLE])
+ case "$gl_cv_func_printf_long_double" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ 'long double' arguments.])
+ ;;
+ esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting infinite 'double'
+# arguments.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE],
+[
+ AC_REQUIRE([gl_PRINTF_INFINITE])
+ case "$gl_cv_func_printf_infinite" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_INFINITE_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ infinite 'double' arguments.])
+ ;;
+ esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting infinite 'long double'
+# arguments.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_INFINITE_LONG_DOUBLE],
+[
+ AC_REQUIRE([gl_PRINTF_INFINITE_LONG_DOUBLE])
+ dnl There is no need to set NEED_PRINTF_INFINITE_LONG_DOUBLE if
+ dnl NEED_PRINTF_LONG_DOUBLE is already set.
+ AC_REQUIRE([gl_PREREQ_VASNPRINTF_LONG_DOUBLE])
+ case "$gl_cv_func_printf_long_double" in
+ *yes)
+ case "$gl_cv_func_printf_infinite_long_double" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_INFINITE_LONG_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ infinite 'long double' arguments.])
+ ;;
+ esac
+ ;;
+ esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting the 'a' directive.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_A],
+[
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_A])
+ case "$gl_cv_func_printf_directive_a" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_DIRECTIVE_A], [1],
+ [Define if the vasnprintf implementation needs special code for
+ the 'a' and 'A' directives.])
+ AC_CHECK_FUNCS([nl_langinfo])
+ ;;
+ esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting the 'F' directive.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_DIRECTIVE_F],
+[
+ AC_REQUIRE([gl_PRINTF_DIRECTIVE_F])
+ case "$gl_cv_func_printf_directive_f" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_DIRECTIVE_F], [1],
+ [Define if the vasnprintf implementation needs special code for
+ the 'F' directive.])
+ ;;
+ 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],
+[
+ AC_REQUIRE([gl_PRINTF_FLAG_GROUPING])
+ case "$gl_cv_func_printf_flag_grouping" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_FLAG_GROUPING], [1],
+ [Define if the vasnprintf implementation needs special code for the
+ ' flag.])
+ ;;
+ esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting the '-' flag.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_LEFTADJUST],
+[
+ AC_REQUIRE([gl_PRINTF_FLAG_LEFTADJUST])
+ case "$gl_cv_func_printf_flag_leftadjust" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_FLAG_LEFTADJUST], [1],
+ [Define if the vasnprintf implementation needs special code for the
+ '-' flag.])
+ ;;
+ esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting the 0 flag.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_FLAG_ZERO],
+[
+ AC_REQUIRE([gl_PRINTF_FLAG_ZERO])
+ case "$gl_cv_func_printf_flag_zero" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_FLAG_ZERO], [1],
+ [Define if the vasnprintf implementation needs special code for the
+ 0 flag.])
+ ;;
+ esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for supporting large precisions.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_PRECISION],
+[
+ AC_REQUIRE([gl_PRINTF_PRECISION])
+ case "$gl_cv_func_printf_precision" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_UNBOUNDED_PRECISION], [1],
+ [Define if the vasnprintf implementation needs special code for
+ supporting large precisions without arbitrary bounds.])
+ AC_DEFINE([NEED_PRINTF_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ 'double' arguments.])
+ AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ 'long double' arguments.])
+ ;;
+ esac
+])
+
+# Extra prerequisites of lib/vasnprintf.c for surviving out-of-memory
+# conditions.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_ENOMEM],
+[
+ AC_REQUIRE([gl_PRINTF_ENOMEM])
+ case "$gl_cv_func_printf_enomem" in
+ *yes)
+ ;;
+ *)
+ AC_DEFINE([NEED_PRINTF_ENOMEM], [1],
+ [Define if the vasnprintf implementation needs special code for
+ surviving out-of-memory conditions.])
+ AC_DEFINE([NEED_PRINTF_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ 'double' arguments.])
+ AC_DEFINE([NEED_PRINTF_LONG_DOUBLE], [1],
+ [Define if the vasnprintf implementation needs special code for
+ 'long double' arguments.])
+ ;;
+ esac
+])
+
+# Prerequisites of lib/vasnprintf.c including all extras for POSIX compliance.
+AC_DEFUN([gl_PREREQ_VASNPRINTF_WITH_EXTRAS],
+[
+ AC_REQUIRE([gl_PREREQ_VASNPRINTF])
+ gl_PREREQ_VASNPRINTF_LONG_DOUBLE
+ gl_PREREQ_VASNPRINTF_INFINITE_DOUBLE
+ 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
+ gl_PREREQ_VASNPRINTF_PRECISION
+ gl_PREREQ_VASNPRINTF_ENOMEM
+])
+
+# Prerequisites of lib/asnprintf.c.
+AC_DEFUN([gl_PREREQ_ASNPRINTF],
+[
+])
diff --git a/m4/vasprintf.m4 b/m4/vasprintf.m4
new file mode 100644
index 00000000..205ceea6
--- /dev/null
+++ b/m4/vasprintf.m4
@@ -0,0 +1,46 @@
+# vasprintf.m4 serial 6
+dnl Copyright (C) 2002-2003, 2006-2007, 2009-2012 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 00000000..4c6c6786
--- /dev/null
+++ b/m4/version-etc.m4
@@ -0,0 +1,33 @@
+# version-etc.m4 serial 1
+# Copyright (C) 2009-2012 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
new file mode 100644
index 00000000..22ec57be
--- /dev/null
+++ b/m4/vsnprintf.m4
@@ -0,0 +1,54 @@
+# vsnprintf.m4 serial 6
+dnl Copyright (C) 2002-2004, 2007-2012 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 Libintl 0.17 will replace vsnprintf only if it does not support %1$s,
+dnl but defers to any gnulib vsnprintf replacements. Therefore, gnulib
+dnl must guarantee that the decision for replacing vsnprintf is a superset
+dnl of the reasons checked by libintl.
+AC_DEFUN([gl_FUNC_VSNPRINTF],
+[
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ gl_cv_func_vsnprintf_usable=no
+ AC_CHECK_FUNCS([vsnprintf])
+ if test $ac_cv_func_vsnprintf = yes; then
+ gl_SNPRINTF_SIZE1
+ case "$gl_cv_func_snprintf_size1" in
+ *yes)
+ gl_SNPRINTF_RETVAL_C99
+ case "$gl_cv_func_snprintf_retval_c99" in
+ *yes)
+ gl_PRINTF_POSITIONS
+ case "$gl_cv_func_printf_positions" in
+ *yes)
+ gl_cv_func_vsnprintf_usable=yes
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ if test $gl_cv_func_vsnprintf_usable = no; then
+ gl_REPLACE_VSNPRINTF
+ fi
+ AC_CHECK_DECLS_ONCE([vsnprintf])
+ if test $ac_cv_have_decl_vsnprintf = no; then
+ HAVE_DECL_VSNPRINTF=0
+ fi
+])
+
+AC_DEFUN([gl_REPLACE_VSNPRINTF],
+[
+ AC_REQUIRE([gl_STDIO_H_DEFAULTS])
+ AC_LIBOBJ([vsnprintf])
+ if test $ac_cv_func_vsnprintf = yes; then
+ REPLACE_VSNPRINTF=1
+ fi
+ gl_PREREQ_VSNPRINTF
+])
+
+# Prerequisites of lib/vsnprintf.c.
+AC_DEFUN([gl_PREREQ_VSNPRINTF], [:])
diff --git a/m4/warn-on-use.m4 b/m4/warn-on-use.m4
new file mode 100644
index 00000000..03b113cf
--- /dev/null
+++ b/m4/warn-on-use.m4
@@ -0,0 +1,47 @@
+# warn-on-use.m4 serial 4
+dnl Copyright (C) 2010-2012 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
+dnl FIXME: gl_Symbol must be used unquoted until we can assume
+dnl autoconf 2.64 or newer.
+ 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_h.m4 b/m4/wchar_h.m4
new file mode 100644
index 00000000..c7a8b2d7
--- /dev/null
+++ b/m4/wchar_h.m4
@@ -0,0 +1,225 @@
+dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues.
+
+dnl Copyright (C) 2007-2012 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 39
+
+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.
+ 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([gl_FEATURES_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([[
+/* 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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+#endif
+#include <wchar.h>
+ ]],
+ [btowc wctob mbsinit mbrtowc mbrlen mbsrtowcs mbsnrtowcs wcrtomb
+ wcsrtombs wcsnrtombs wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset
+ wcslen wcsnlen wcscpy wcpcpy wcsncpy wcpncpy wcscat wcsncat wcscmp
+ wcsncmp wcscasecmp wcsncasecmp wcscoll wcsxfrm wcsdup wcschr wcsrchr
+ wcscspn wcsspn wcspbrk wcsstr wcstok wcswidth
+ ])
+])
+
+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
+/* 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>
+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
+/* 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>
+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
+])
+
+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])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$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])
+ GNULIB_WMEMCHR=0; AC_SUBST([GNULIB_WMEMCHR])
+ GNULIB_WMEMCMP=0; AC_SUBST([GNULIB_WMEMCMP])
+ GNULIB_WMEMCPY=0; AC_SUBST([GNULIB_WMEMCPY])
+ GNULIB_WMEMMOVE=0; AC_SUBST([GNULIB_WMEMMOVE])
+ GNULIB_WMEMSET=0; AC_SUBST([GNULIB_WMEMSET])
+ GNULIB_WCSLEN=0; AC_SUBST([GNULIB_WCSLEN])
+ GNULIB_WCSNLEN=0; AC_SUBST([GNULIB_WCSNLEN])
+ GNULIB_WCSCPY=0; AC_SUBST([GNULIB_WCSCPY])
+ GNULIB_WCPCPY=0; AC_SUBST([GNULIB_WCPCPY])
+ GNULIB_WCSNCPY=0; AC_SUBST([GNULIB_WCSNCPY])
+ GNULIB_WCPNCPY=0; AC_SUBST([GNULIB_WCPNCPY])
+ GNULIB_WCSCAT=0; AC_SUBST([GNULIB_WCSCAT])
+ GNULIB_WCSNCAT=0; AC_SUBST([GNULIB_WCSNCAT])
+ GNULIB_WCSCMP=0; AC_SUBST([GNULIB_WCSCMP])
+ GNULIB_WCSNCMP=0; AC_SUBST([GNULIB_WCSNCMP])
+ GNULIB_WCSCASECMP=0; AC_SUBST([GNULIB_WCSCASECMP])
+ GNULIB_WCSNCASECMP=0; AC_SUBST([GNULIB_WCSNCASECMP])
+ GNULIB_WCSCOLL=0; AC_SUBST([GNULIB_WCSCOLL])
+ GNULIB_WCSXFRM=0; AC_SUBST([GNULIB_WCSXFRM])
+ GNULIB_WCSDUP=0; AC_SUBST([GNULIB_WCSDUP])
+ GNULIB_WCSCHR=0; AC_SUBST([GNULIB_WCSCHR])
+ GNULIB_WCSRCHR=0; AC_SUBST([GNULIB_WCSRCHR])
+ GNULIB_WCSCSPN=0; AC_SUBST([GNULIB_WCSCSPN])
+ GNULIB_WCSSPN=0; AC_SUBST([GNULIB_WCSSPN])
+ GNULIB_WCSPBRK=0; AC_SUBST([GNULIB_WCSPBRK])
+ GNULIB_WCSSTR=0; AC_SUBST([GNULIB_WCSSTR])
+ GNULIB_WCSTOK=0; AC_SUBST([GNULIB_WCSTOK])
+ GNULIB_WCSWIDTH=0; AC_SUBST([GNULIB_WCSWIDTH])
+ 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_WMEMCHR=1; AC_SUBST([HAVE_WMEMCHR])
+ HAVE_WMEMCMP=1; AC_SUBST([HAVE_WMEMCMP])
+ HAVE_WMEMCPY=1; AC_SUBST([HAVE_WMEMCPY])
+ HAVE_WMEMMOVE=1; AC_SUBST([HAVE_WMEMMOVE])
+ HAVE_WMEMSET=1; AC_SUBST([HAVE_WMEMSET])
+ HAVE_WCSLEN=1; AC_SUBST([HAVE_WCSLEN])
+ HAVE_WCSNLEN=1; AC_SUBST([HAVE_WCSNLEN])
+ HAVE_WCSCPY=1; AC_SUBST([HAVE_WCSCPY])
+ HAVE_WCPCPY=1; AC_SUBST([HAVE_WCPCPY])
+ HAVE_WCSNCPY=1; AC_SUBST([HAVE_WCSNCPY])
+ HAVE_WCPNCPY=1; AC_SUBST([HAVE_WCPNCPY])
+ HAVE_WCSCAT=1; AC_SUBST([HAVE_WCSCAT])
+ HAVE_WCSNCAT=1; AC_SUBST([HAVE_WCSNCAT])
+ HAVE_WCSCMP=1; AC_SUBST([HAVE_WCSCMP])
+ HAVE_WCSNCMP=1; AC_SUBST([HAVE_WCSNCMP])
+ HAVE_WCSCASECMP=1; AC_SUBST([HAVE_WCSCASECMP])
+ HAVE_WCSNCASECMP=1; AC_SUBST([HAVE_WCSNCASECMP])
+ HAVE_WCSCOLL=1; AC_SUBST([HAVE_WCSCOLL])
+ HAVE_WCSXFRM=1; AC_SUBST([HAVE_WCSXFRM])
+ HAVE_WCSDUP=1; AC_SUBST([HAVE_WCSDUP])
+ HAVE_WCSCHR=1; AC_SUBST([HAVE_WCSCHR])
+ HAVE_WCSRCHR=1; AC_SUBST([HAVE_WCSRCHR])
+ HAVE_WCSCSPN=1; AC_SUBST([HAVE_WCSCSPN])
+ HAVE_WCSSPN=1; AC_SUBST([HAVE_WCSSPN])
+ HAVE_WCSPBRK=1; AC_SUBST([HAVE_WCSPBRK])
+ HAVE_WCSSTR=1; AC_SUBST([HAVE_WCSSTR])
+ HAVE_WCSTOK=1; AC_SUBST([HAVE_WCSTOK])
+ HAVE_WCSWIDTH=1; AC_SUBST([HAVE_WCSWIDTH])
+ 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])
+ REPLACE_WCSWIDTH=0; AC_SUBST([REPLACE_WCSWIDTH])
+])
diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4
new file mode 100644
index 00000000..534735d8
--- /dev/null
+++ b/m4/wchar_t.m4
@@ -0,0 +1,24 @@
+# wchar_t.m4 serial 4 (gettext-0.18.2)
+dnl Copyright (C) 2002-2003, 2008-2012 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 Bruno Haible.
+dnl Test whether <stddef.h> has the 'wchar_t' type.
+dnl Prerequisite: AC_PROG_CC
+
+AC_DEFUN([gt_TYPE_WCHAR_T],
+[
+ AC_CACHE_CHECK([for wchar_t], [gt_cv_c_wchar_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[#include <stddef.h>
+ wchar_t foo = (wchar_t)'\0';]],
+ [[]])],
+ [gt_cv_c_wchar_t=yes],
+ [gt_cv_c_wchar_t=no])])
+ if test $gt_cv_c_wchar_t = yes; then
+ AC_DEFINE([HAVE_WCHAR_T], [1], [Define if you have the 'wchar_t' type.])
+ fi
+])
diff --git a/m4/wcrtomb.m4 b/m4/wcrtomb.m4
new file mode 100644
index 00000000..00d7302e
--- /dev/null
+++ b/m4/wcrtomb.m4
@@ -0,0 +1,112 @@
+# wcrtomb.m4 serial 11
+dnl Copyright (C) 2008-2012 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_WCRTOMB],
+[
+ AC_REQUIRE([gl_WCHAR_H_DEFAULTS])
+
+ AC_REQUIRE([AC_TYPE_MBSTATE_T])
+ gl_MBSTATE_T_BROKEN
+
+ AC_CHECK_FUNCS_ONCE([wcrtomb])
+ if test $ac_cv_func_wcrtomb = no; then
+ HAVE_WCRTOMB=0
+ AC_CHECK_DECLS([wcrtomb],,, [[
+/* 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>
+]])
+ if test $ac_cv_have_decl_wcrtomb = yes; then
+ dnl On Minix 3.1.8, the system's <wchar.h> declares wcrtomb() although
+ dnl it does not have the function. Avoid a collision with gnulib's
+ dnl replacement.
+ REPLACE_WCRTOMB=1
+ fi
+ else
+ if test $REPLACE_MBSTATE_T = 1; then
+ REPLACE_WCRTOMB=1
+ else
+ 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])
+ 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 wcrtomb return value is correct],
+ [gl_cv_func_wcrtomb_retval],
+ [
+ dnl Initial guess, used when cross-compiling or when no suitable locale
+ dnl is present.
+changequote(,)dnl
+ case "$host_os" in
+ # 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
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+#include <string.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>
+int main ()
+{
+ int result = 0;
+ if (setlocale (LC_ALL, "$LOCALE_FR") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 1;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_FR_UTF8") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 2;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_JA") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 4;
+ }
+ if (setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
+ {
+ if (wcrtomb (NULL, 0, NULL) != 1)
+ result |= 8;
+ }
+ return result;
+}]])],
+ [gl_cv_func_wcrtomb_retval=yes],
+ [gl_cv_func_wcrtomb_retval=no],
+ [:])
+ fi
+ ])
+ case "$gl_cv_func_wcrtomb_retval" in
+ *yes) ;;
+ *) REPLACE_WCRTOMB=1 ;;
+ esac
+ fi
+ fi
+])
+
+# Prerequisites of lib/wcrtomb.c.
+AC_DEFUN([gl_PREREQ_WCRTOMB], [
+ :
+])
diff --git a/m4/wctype_h.m4 b/m4/wctype_h.m4
new file mode 100644
index 00000000..a1093830
--- /dev/null
+++ b/m4/wctype_h.m4
@@ -0,0 +1,211 @@
+# wctype_h.m4 serial 16
+
+dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it.
+
+dnl Copyright (C) 2006-2012 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.
+
+AC_DEFUN([gl_WCTYPE_H],
+[
+ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
+ 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
+ else
+ HAVE_ISWCNTRL=0
+ fi
+ AC_SUBST([HAVE_ISWCNTRL])
+
+ AC_REQUIRE([AC_C_INLINE])
+
+ 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])
+
+ gl_CHECK_NEXT_HEADERS([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_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+ /* 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 <wctype.h>
+ int main () { return iswprint ('x') == 0; }
+ ]])],
+ [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
+ #if __GNU_LIBRARY__ == 1
+ Linux libc5 i18n is broken.
+ #endif]], [])],
+ [gl_cv_func_iswcntrl_works=yes], [gl_cv_func_iswcntrl_works=no])
+ ])
+ ])
+ fi
+ HAVE_WCTYPE_H=1
+ else
+ HAVE_WCTYPE_H=0
+ fi
+ AC_SUBST([HAVE_WCTYPE_H])
+
+ if test "$gl_cv_func_iswcntrl_works" = no; then
+ REPLACE_ISWCNTRL=1
+ else
+ REPLACE_ISWCNTRL=0
+ fi
+ AC_SUBST([REPLACE_ISWCNTRL])
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_ISWCNTRL = 1; then
+ dnl Redefine all of iswcntrl, ..., iswxdigit in <wctype.h>.
+ :
+ fi
+
+ if test $REPLACE_ISWCNTRL = 1; then
+ REPLACE_TOWLOWER=1
+ else
+ AC_CHECK_FUNCS([towlower])
+ if test $ac_cv_func_towlower = yes; then
+ REPLACE_TOWLOWER=0
+ else
+ AC_CHECK_DECLS([towlower],,,
+ [[/* 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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ ]])
+ if test $ac_cv_have_decl_towlower = yes; then
+ dnl On Minix 3.1.8, the system's <wctype.h> declares towlower() and
+ dnl towupper() although it does not have the functions. Avoid a
+ dnl collision with gnulib's replacement.
+ REPLACE_TOWLOWER=1
+ else
+ REPLACE_TOWLOWER=0
+ fi
+ fi
+ fi
+ AC_SUBST([REPLACE_TOWLOWER])
+
+ if test $HAVE_ISWCNTRL = 0 || test $REPLACE_TOWLOWER = 1; then
+ dnl Redefine towlower, towupper in <wctype.h>.
+ :
+ fi
+
+ dnl We assume that the wctype() and iswctype() functions exist if and only
+ dnl if the type wctype_t is defined in <wchar.h> or in <wctype.h> if that
+ dnl exists.
+ dnl HP-UX 11.00 declares all these in <wchar.h> and lacks <wctype.h>.
+ AC_CACHE_CHECK([for wctype_t], [gl_cv_type_wctype_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[/* 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>
+ #if HAVE_WCTYPE_H
+ # include <wctype.h>
+ #endif
+ wctype_t a;
+ ]],
+ [[]])],
+ [gl_cv_type_wctype_t=yes],
+ [gl_cv_type_wctype_t=no])
+ ])
+ if test $gl_cv_type_wctype_t = no; then
+ HAVE_WCTYPE_T=0
+ fi
+
+ dnl We assume that the wctrans() and towctrans() functions exist if and only
+ dnl if the type wctrans_t is defined in <wctype.h>.
+ AC_CACHE_CHECK([for wctrans_t], [gl_cv_type_wctrans_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[/* 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 <wctype.h>
+ wctrans_t a;
+ ]],
+ [[]])],
+ [gl_cv_type_wctrans_t=yes],
+ [gl_cv_type_wctrans_t=no])
+ ])
+ if test $gl_cv_type_wctrans_t = no; then
+ HAVE_WCTRANS_T=0
+ fi
+
+ 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([[
+/* 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>. */
+#if !(defined __GLIBC__ && !defined __UCLIBC__)
+# include <stddef.h>
+# include <stdio.h>
+# include <time.h>
+# include <wchar.h>
+#endif
+#include <wctype.h>
+ ]],
+ [wctype iswctype wctrans towctrans
+ ])
+])
+
+AC_DEFUN([gl_WCTYPE_MODULE_INDICATOR],
+[
+ dnl Use AC_REQUIRE here, so that the default settings are expanded once only.
+ AC_REQUIRE([gl_WCTYPE_H_DEFAULTS])
+ gl_MODULE_INDICATOR_SET_VARIABLE([$1])
+ dnl Define it also as a C macro, for the benefit of the unit tests.
+ gl_MODULE_INDICATOR_FOR_TESTS([$1])
+])
+
+AC_DEFUN([gl_WCTYPE_H_DEFAULTS],
+[
+ GNULIB_ISWBLANK=0; AC_SUBST([GNULIB_ISWBLANK])
+ GNULIB_WCTYPE=0; AC_SUBST([GNULIB_WCTYPE])
+ GNULIB_ISWCTYPE=0; AC_SUBST([GNULIB_ISWCTYPE])
+ GNULIB_WCTRANS=0; AC_SUBST([GNULIB_WCTRANS])
+ GNULIB_TOWCTRANS=0; AC_SUBST([GNULIB_TOWCTRANS])
+ dnl Assume proper GNU behavior unless another module says otherwise.
+ HAVE_ISWBLANK=1; AC_SUBST([HAVE_ISWBLANK])
+ HAVE_WCTYPE_T=1; AC_SUBST([HAVE_WCTYPE_T])
+ HAVE_WCTRANS_T=1; AC_SUBST([HAVE_WCTRANS_T])
+ REPLACE_ISWBLANK=0; AC_SUBST([REPLACE_ISWBLANK])
+])
diff --git a/m4/wcwidth.m4 b/m4/wcwidth.m4
new file mode 100644
index 00000000..c54e7cc5
--- /dev/null
+++ b/m4/wcwidth.m4
@@ -0,0 +1,98 @@
+# wcwidth.m4 serial 21
+dnl Copyright (C) 2006-2012 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_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])
+
+ AC_REQUIRE([gt_TYPE_WCHAR_T])
+ AC_REQUIRE([gt_TYPE_WINT_T])
+
+ AC_CHECK_HEADERS_ONCE([wchar.h])
+ AC_CHECK_FUNCS_ONCE([wcwidth])
+
+ AC_CHECK_DECLS([wcwidth], [], [], [[
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.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>
+]])
+ if test $ac_cv_have_decl_wcwidth != yes; then
+ HAVE_DECL_WCWIDTH=0
+ fi
+
+ if test $ac_cv_func_wcwidth = yes; then
+ HAVE_WCWIDTH=1
+ dnl On MacOS X 10.3, wcwidth(0x0301) (COMBINING ACUTE ACCENT) returns 1.
+ dnl On OSF/1 5.1, wcwidth(0x200B) (ZERO WIDTH SPACE) returns 1.
+ dnl This leads to bugs in 'ls' (coreutils).
+ AC_CACHE_CHECK([whether wcwidth works reasonably in UTF-8 locales],
+ [gl_cv_func_wcwidth_works],
+ [
+ AC_RUN_IFELSE(
+ [AC_LANG_SOURCE([[
+#include <locale.h>
+/* AIX 3.2.5 declares wcwidth in <string.h>. */
+#include <string.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>
+#if !HAVE_DECL_WCWIDTH
+extern
+# ifdef __cplusplus
+"C"
+# endif
+int wcwidth (int);
+#endif
+int main ()
+{
+ int result = 0;
+ if (setlocale (LC_ALL, "fr_FR.UTF-8") != NULL)
+ {
+ if (wcwidth (0x0301) > 0)
+ result |= 1;
+ if (wcwidth (0x200B) > 0)
+ result |= 2;
+ }
+ return result;
+}]])],
+ [gl_cv_func_wcwidth_works=yes],
+ [gl_cv_func_wcwidth_works=no],
+ [
+changequote(,)dnl
+ case "$host_os" in
+ # Guess yes on glibc and AIX 7 systems.
+ *-gnu* | aix[7-9]*) 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) ;;
+ *no) REPLACE_WCWIDTH=1 ;;
+ esac
+ else
+ HAVE_WCWIDTH=0
+ fi
+ dnl We don't substitute HAVE_WCWIDTH. We assume that if the system does not
+ dnl have the wcwidth function, then it does not declare it.
+])
diff --git a/m4/wint_t.m4 b/m4/wint_t.m4
new file mode 100644
index 00000000..3260cce3
--- /dev/null
+++ b/m4/wint_t.m4
@@ -0,0 +1,32 @@
+# wint_t.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2003, 2007-2012 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 Bruno Haible.
+dnl Test whether <wchar.h> has the 'wint_t' type.
+dnl Prerequisite: AC_PROG_CC
+
+AC_DEFUN([gt_TYPE_WINT_T],
+[
+ AC_CACHE_CHECK([for wint_t], [gt_cv_c_wint_t],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+/* 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>
+ wint_t foo = (wchar_t)'\0';]],
+ [[]])],
+ [gt_cv_c_wint_t=yes],
+ [gt_cv_c_wint_t=no])])
+ if test $gt_cv_c_wint_t = yes; then
+ AC_DEFINE([HAVE_WINT_T], [1], [Define if you have the 'wint_t' type.])
+ fi
+])
diff --git a/m4/write.m4 b/m4/write.m4
new file mode 100644
index 00000000..a6b12298
--- /dev/null
+++ b/m4/write.m4
@@ -0,0 +1,35 @@
+# write.m4 serial 4
+dnl Copyright (C) 2008-2012 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_WRITE],
+[
+ AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
+ AC_REQUIRE([gl_MSVC_INVAL])
+ if test $HAVE_MSVC_INVALID_PARAMETER_HANDLER = 1; then
+ REPLACE_WRITE=1
+ fi
+ dnl This ifdef is just an optimization, to avoid performing a configure
+ dnl check whose result is not used. It does not make the test of
+ dnl GNULIB_UNISTD_H_SIGPIPE or GNULIB_SIGPIPE redundant.
+ m4_ifdef([gl_SIGNAL_SIGPIPE], [
+ gl_SIGNAL_SIGPIPE
+ if test $gl_cv_header_signal_h_SIGPIPE != yes; then
+ REPLACE_WRITE=1
+ fi
+ ])
+ m4_ifdef([gl_NONBLOCKING_IO], [
+ gl_NONBLOCKING_IO
+ if test $gl_cv_have_nonblocking != yes; then
+ REPLACE_WRITE=1
+ fi
+ ])
+])
+
+# Prerequisites of lib/write.c.
+AC_DEFUN([gl_PREREQ_WRITE],
+[
+ AC_REQUIRE([AC_C_INLINE])
+])
diff --git a/m4/xalloc.m4 b/m4/xalloc.m4
new file mode 100644
index 00000000..f47b649b
--- /dev/null
+++ b/m4/xalloc.m4
@@ -0,0 +1,22 @@
+# xalloc.m4 serial 17
+dnl Copyright (C) 2002-2006, 2009-2012 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_XALLOC],
+[
+ gl_PREREQ_XALLOC
+ gl_PREREQ_XMALLOC
+])
+
+# Prerequisites of lib/xalloc.h.
+AC_DEFUN([gl_PREREQ_XALLOC], [
+ AC_REQUIRE([gl_INLINE])
+ :
+])
+
+# Prerequisites of lib/xmalloc.c.
+AC_DEFUN([gl_PREREQ_XMALLOC], [
+ :
+])
diff --git a/m4/xgetcwd.m4 b/m4/xgetcwd.m4
new file mode 100644
index 00000000..fa2c87e3
--- /dev/null
+++ b/m4/xgetcwd.m4
@@ -0,0 +1,10 @@
+#serial 8
+dnl Copyright (C) 2002-2006, 2009-2012 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_XGETCWD],
+[
+ :
+])
diff --git a/m4/xsize.m4 b/m4/xsize.m4
new file mode 100644
index 00000000..b3b7feeb
--- /dev/null
+++ b/m4/xsize.m4
@@ -0,0 +1,13 @@
+# xsize.m4 serial 4
+dnl Copyright (C) 2003-2004, 2008-2012 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_XSIZE],
+[
+ dnl Prerequisites of lib/xsize.h.
+ AC_REQUIRE([gl_SIZE_MAX])
+ AC_REQUIRE([AC_C_INLINE])
+ AC_CHECK_HEADERS([stdint.h])
+])
diff --git a/m4/xstrndup.m4 b/m4/xstrndup.m4
new file mode 100644
index 00000000..1642ca51
--- /dev/null
+++ b/m4/xstrndup.m4
@@ -0,0 +1,15 @@
+# xstrndup.m4 serial 2
+dnl Copyright (C) 2003, 2009-2012 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_XSTRNDUP],
+[
+ gl_PREREQ_XSTRNDUP
+])
+
+# Prerequisites of lib/xstrndup.c.
+AC_DEFUN([gl_PREREQ_XSTRNDUP], [
+ :
+])
diff --git a/m4/xstrtol.m4 b/m4/xstrtol.m4
new file mode 100644
index 00000000..76f8f96e
--- /dev/null
+++ b/m4/xstrtol.m4
@@ -0,0 +1,10 @@
+#serial 11
+dnl Copyright (C) 2002-2007, 2009-2012 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_XSTRTOL],
+[
+ :
+])
diff --git a/m4/xvasprintf.m4 b/m4/xvasprintf.m4
new file mode 100644
index 00000000..0e19debd
--- /dev/null
+++ b/m4/xvasprintf.m4
@@ -0,0 +1,11 @@
+# xvasprintf.m4 serial 1
+dnl Copyright (C) 2006, 2009-2012 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_XVASPRINTF],
+[
+ dnl Prerequisites of lib/xvasprintf.c.
+ AC_REQUIRE([AC_C_INLINE])
+])
diff --git a/paxutils b/paxutils
new file mode 160000
+Subproject c2ae12c39ae97744f4c558dd6eee367a928a122
diff --git a/po/.gitignore b/po/.gitignore
index 0b73ada1..04acf7fa 100644
--- a/po/.gitignore
+++ b/po/.gitignore
@@ -1,22 +1,3 @@
*.gmo
*.mo
-*.po
-.reference
-LINGUAS
-Makefile
-Makefile.in
-Makefile.in.in
-Makevars
-Makevars.template
-POTFILES
-Rules-quot
-boldquot.sed
-en@boldquot.header
-en@quot.header
-insert-header.sed
-insert-header.sin
-quot.sed
-remove-potcdate.sed
-remove-potcdate.sin
-stamp-po
-tar.pot
+
diff --git a/po/.reference/bg.po b/po/.reference/bg.po
new file mode 100644
index 00000000..01a5ca95
--- /dev/null
+++ b/po/.reference/bg.po
@@ -0,0 +1,2412 @@
+# Bulgarian translation of GNU tar
+# Message catalog for coreutils
+# Copyright (C) 2006 Free Software Foundation, Inc.
+# This file is distributed under the same license as GNU tar.
+# Anton Zinoviev <zinoviev@debian.org>, 2000,2006.
+#
+# WARNING: Everywhere NUMBER is translated as N rather than as БРОЙ or ЧИСЛО
+#
+# This file should be sent to translation@iro.umontreal.ca with the
+# following subject line: TP-Robot tar-1.16.bg.po
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.16\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2006-10-21 18:41+0300\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"
+"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"
+
+#: lib/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "неправилен аргумент %s за %s"
+
+#: lib/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "двусмислен аргумент %s за %s"
+
+#: lib/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Допустими аргументи са:"
+
+#: lib/argp-help.c:148
+#, 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:221
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: параметърът ARGP_HELP_FMT изисква стойност"
+
+#: lib/argp-help.c:227
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: параметърът ARGP_HELP_FMT трябва да бъде положителен"
+
+#: lib/argp-help.c:236
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: непознат параметър ARGP_HELP_FMT"
+
+#: lib/argp-help.c:248
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Боклук в ARGP_HELP_FMT: %s"
+
+#: lib/argp-help.c:1229
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Аргументите, задължителните или незадължителни за дългите опции, са съответно задължителни или незадължителни и за кратките опции."
+
+#: lib/argp-help.c:1622
+msgid "Usage:"
+msgstr "Използване:"
+
+#: lib/argp-help.c:1626
+msgid " or: "
+msgstr " или: "
+
+#: lib/argp-help.c:1638
+msgid " [OPTION...]"
+msgstr " [ОПЦИЯ...]"
+
+#: lib/argp-help.c:1665
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Използвайте „%s --help“ or „%s --usage“ за повече информация.\n"
+
+#: lib/argp-help.c:1693 src/tar.c:1136
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr ""
+"Съобщавайте за програмни грешки на %s.\n"
+"За грешки в българския превод на <dict@fsa-bg.org>.\n"
+
+#: lib/argp-help.c:1912 lib/error.c:125
+msgid "Unknown system error"
+msgstr "Непозната системна грешка"
+
+#: lib/argp-parse.c:82 src/tar.c:717
+msgid "give this help list"
+msgstr "показва тази справка"
+
+#: lib/argp-parse.c:83 src/tar.c:718
+msgid "give a short usage message"
+msgstr "показва кратко съобщение за използването"
+
+#: lib/argp-parse.c:84 src/tar.c:450 src/tar.c:452 src/tar.c:521
+#: tests/genfile.c:126
+msgid "NAME"
+msgstr "ИМЕ"
+
+#: lib/argp-parse.c:84
+msgid "set the program name"
+msgstr "посочва името на програмата"
+
+#: lib/argp-parse.c:85
+msgid "SECS"
+msgstr "СЕК"
+
+#: lib/argp-parse.c:86 src/tar.c:723
+msgid "hang for SECS seconds (default 3600)"
+msgstr "спира за СЕК секунди (подразбира се 3600)"
+
+#: lib/argp-parse.c:143 src/tar.c:719
+msgid "print program version"
+msgstr "показва версията на програмата"
+
+#: lib/argp-parse.c:159
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Не е известна версията!?"
+
+#: lib/argp-parse.c:612
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Твърде много аргументи\n"
+
+#: lib/argp-parse.c:755
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Опцията би трябвало да е била разпозната!?"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: опцията „%s“ е двусмислена\n"
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: опцията „--%s“ не допуска аргумент\n"
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: опцията „%c%s“ не допуска аргумент\n"
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: опцията „%s“ изисква аргумент\n"
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: непозната опция „--%s“\n"
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: непозната опция „%c%s“\n"
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: неправилна опция -- %c\n"
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: неправилна опция -- %c\n"
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: опцията изисква аргумент -- %c\n"
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: опцията „-W %s“ е двусмислена\n"
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: опцията „-W %s“ не допуска аргумент\n"
+
+#: lib/human.c:484
+msgid "block size"
+msgstr "блоковият размер"
+
+#: lib/obstack.c:424 lib/obstack.c:426 lib/xalloc-die.c:35 src/extract.c:1361
+msgid "memory exhausted"
+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
+#, 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:211
+#, c-format
+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 байта"
+
+#: 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:132
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Премахва се началното „%s“ от имената на членове"
+
+#: lib/paxnames.c:133
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Премахва се началното „%s“ от целите на твърдите връзки"
+
+#: lib/paxnames.c:146
+msgid "Substituting `.' for empty member name"
+msgstr "Полага се „.“ вместо празно име на член"
+
+#: lib/paxnames.c:147
+msgid "Substituting `.' for empty hard link target"
+msgstr "Полага се „.“ вместо празна цел на твърда връзка"
+
+#. 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.
+#: lib/quotearg.c:243
+msgid "`"
+msgstr "„"
+
+#: lib/quotearg.c:244
+msgid "'"
+msgstr "“"
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr "^[дДoOyY]"
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr "^[нНkKnN]"
+
+#: 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:512
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Не може да се стартира отдалечена командна обвивка"
+
+#: rmt/rmt.c:142
+msgid "Input string too long"
+msgstr "Входният низ е твърде дълъг"
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr "Синтактична грешка в число"
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Не може да се задели място за буфер\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr "Не може да се задели място за буфер"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Използвайте „%s --help“ за повече информация.\n"
+
+#: rmt/rmt.c:308
+#, 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"
+
+#: rmt/rmt.c:315
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Съобщавайте за програмни грешки на <%s>.\n"
+
+#: rmt/rmt.c:397
+msgid "Seek offset error"
+msgstr "Грешка при позициониране"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+msgid "Seek offset out of range"
+msgstr "Мястото за позициониране е извън допустимия диапазон"
+
+#: rmt/rmt.c:428
+msgid "Seek direction out of range"
+msgstr "Посоката за отместване е недопустима"
+
+#: rmt/rmt.c:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Преждевременен край (eof)\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "Преждевременен край на файла"
+
+#: rmt/rmt.c:672
+msgid "Garbage command"
+msgstr "Непозната команда"
+
+#: src/buffer.c:317 src/buffer.c:326
+msgid "Total bytes written"
+msgstr "Общо записани байтове"
+
+#: src/buffer.c:324 src/buffer.c:338
+msgid "Total bytes read"
+msgstr "Общо прочетени байтове"
+
+#: src/buffer.c:328
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Общо изтрити байтове: %s\n"
+
+#: src/buffer.c:417
+msgid "(pipe)"
+msgstr "(канал)"
+
+#: src/buffer.c:440
+msgid "Invalid value for record_size"
+msgstr "Неправилна стойност на record_size"
+
+#: src/buffer.c:443
+msgid "No archive name given"
+msgstr "Не е посочено име на архив"
+
+#: src/buffer.c:487
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Не може да се проверяват архиви на стандартните вход/изход"
+
+#: src/buffer.c:500
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Архивът е компресиран. Използвайте опцията %s"
+
+#: src/buffer.c:547 src/tar.c:2131
+msgid "Cannot update compressed archives"
+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/buffer.c:597
+#, c-format
+msgid "Write checkpoint %u"
+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/buffer.c:603
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Контролна точка при четене %u"
+
+#: src/buffer.c:655
+msgid "At beginning of tape, quitting now"
+msgstr "В началото на лентата, край на изпълнението"
+
+#: src/buffer.c:661
+msgid "Too many errors, quitting"
+msgstr "Твърде много грешки, край на изпълнението"
+
+#: src/buffer.c:689
+#, 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:709
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Размер на записа = %lu блок"
+msgstr[1] "Размер на записа = %lu блока"
+
+#: src/buffer.c:782
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Невъзможно е връщане назад в архивния файл; той може да е нечитаем без опция -i"
+
+#: src/buffer.c:814
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek не завърши при граница на запис"
+
+#: src/buffer.c:870
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: съдържа неправилен номер на том"
+
+#: src/buffer.c:905
+msgid "Volume number overflow"
+msgstr "Препълване на номера на том"
+
+#: src/buffer.c:920
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Подгответе том №%d за %s и натиснете return: "
+
+#: src/buffer.c:926
+msgid "EOF where user reply was expected"
+msgstr "EOF, когато се очакваше отговор от потребителя"
+
+#: src/buffer.c:931 src/buffer.c:963
+msgid "WARNING: Archive is incomplete"
+msgstr "ВНИМАНИЕ: Архивът е незавършен"
+
+#: src/buffer.c:945
+#, 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"
+" y или return Продължава изпълнението\n"
+
+#: src/buffer.c:950
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Поражда вторична командна обвивка\n"
+
+#: src/buffer.c:951
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Извежда този списък\n"
+
+#: src/buffer.c:958
+msgid "No new volume; exiting.\n"
+msgstr "Няма повече томове; изход.\n"
+
+#: src/buffer.c:991
+msgid "File name not specified. Try again.\n"
+msgstr "Не е посочено име на файл. Опитайте отново.\n"
+
+#: src/buffer.c:1004
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Неправилна команда. Използвайте ? за справка.\n"
+
+#: src/buffer.c:1055
+#, c-format
+msgid "%s command failed"
+msgstr "командата %s не успя"
+
+#: src/buffer.c:1117 src/delete.c:210 src/list.c:169 src/update.c:165
+msgid "This does not look like a tar archive"
+msgstr "Това не прилича на tar-архив"
+
+#: src/buffer.c:1211
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s вероятно продължава в този том: заглавният запис съдържа отрязано име"
+
+#: src/buffer.c:1215
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s не продължава с този том"
+
+#: src/buffer.c:1229
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s е грешен размер (%s != %s + %s)"
+
+#: src/buffer.c:1239
+msgid "This volume is out of sequence"
+msgstr "Този том е извън поредицата"
+
+#: src/buffer.c:1285
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Архивът не е етикетиран да отговаря на %s"
+
+#: src/buffer.c:1288
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Томът %s не съответства на %s"
+
+#: src/buffer.c:1384
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: името на файла е твърде дълго, за да се побере в заглавен запис на многотомен ГНУ-архив и бе съкратено"
+
+#: src/compare.c:96
+#, 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:122
+msgid "Contents differ"
+msgstr "Съдържанието се различава"
+
+#: src/compare.c:149 src/extract.c:773 src/incremen.c:1191 src/list.c:374
+#: src/list.c:1294
+msgid "Unexpected EOF in archive"
+msgstr "Неочакван знак за край (EOF) в архива"
+
+#: src/compare.c:197 src/compare.c:213 src/compare.c:331 src/compare.c:395
+msgid "File type differs"
+msgstr "Файловите типове се различават"
+
+#: src/compare.c:200 src/compare.c:220 src/compare.c:345
+msgid "Mode differs"
+msgstr "Режимите за достъп се различават"
+
+#: src/compare.c:223
+msgid "Uid differs"
+msgstr "Собствениците се различават"
+
+#: src/compare.c:225
+msgid "Gid differs"
+msgstr "Групите се различават"
+
+#: src/compare.c:229
+msgid "Mod time differs"
+msgstr "Времената на промяна се различават"
+
+#: src/compare.c:233 src/compare.c:403
+msgid "Size differs"
+msgstr "Размерите се различават"
+
+#: src/compare.c:287
+#, c-format
+msgid "Not linked to %s"
+msgstr "Не е свързан с %s"
+
+#: src/compare.c:310
+msgid "Symlink differs"
+msgstr "Символните връзки се различават"
+
+#: src/compare.c:339
+msgid "Device number differs"
+msgstr "Номерата на устройство се различават"
+
+#: src/compare.c:445
+#, c-format
+msgid "Verify "
+msgstr "Проверка"
+
+#: src/compare.c:452
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Непознат файлов тип „%c“, сравнява се като обикновен файл"
+
+#: src/compare.c:508
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Архивът съдържа файлови имена, с отстранени префикси."
+
+#: src/compare.c:510
+msgid "Verification may fail to locate original files."
+msgstr "Проверката може и да не открие оригиналните файлове."
+
+#: src/compare.c:580
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "НЕУСПЕШНА ПРОВЕРКА: открита е %d неправилен заглавен запис"
+msgstr[1] "НЕУСПЕШНА ПРОВЕРКА: открити са %d неправилни заглавни записа"
+
+#: src/create.c:167
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "стойността на %s е извън границите %s на диапазона %s..%s; замества се с %s"
+
+#: src/create.c:173
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "стойността %s е извън границите %s на диапазона %s..%s"
+
+#: src/create.c:233
+msgid "Generating negative octal headers"
+msgstr "Генерират се отрицателни осмични заглавни записи"
+
+#: src/create.c:519 src/create.c:582
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: файловото име е твърде дълго (максимум %d); не е архивирано"
+
+#: src/create.c:529
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: файловото име е твърде дълго (не може да се раздели); не е архивирано"
+
+#: src/create.c:556
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: името на символната връзка е твърде дълго; не е архивирано"
+
+#: src/create.c:972
+#, 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:1112
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: файлът е в друга файлова система; не се архивира"
+
+#: src/create.c:1122
+#, c-format
+msgid "%s: contains a cache directory tag; not dumped"
+msgstr "%s: каталогът е обозначен като кеш; не се архивира"
+
+#: src/create.c:1280
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Непознат файлов тип; файлът се пренебрегва"
+
+#: src/create.c:1381
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "Неархивирани връзки с %s.\n"
+
+#: src/create.c:1452
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: файлът не е променен; не се архивира"
+
+#: src/create.c:1460
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: файлът е архив; не се архивира"
+
+#: src/create.c:1490
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Файлът бе изтрит преди да бъде прочетен"
+
+#: src/create.c:1562
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: файлът бе изменен по време на четене"
+
+#: src/create.c:1641
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: гнездото се пренебрегва"
+
+#: src/create.c:1646
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: пренебрегва се специалният файл тип door"
+
+#: src/delete.c:216 src/list.c:183 src/update.c:170
+msgid "Skipping to next header"
+msgstr "Пропуска се до следващия заглавен запис"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "Изтрива се незаглавен запис от архива"
+
+#: src/extract.c:194
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: записано е невероятно старо време %s"
+
+#: src/extract.c:211
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: записано е време %s, което е %s сек. в бъдещето"
+
+#: src/extract.c:383
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Неочаквана несъгласуваност при създаване на каталог"
+
+#: src/extract.c:576
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: каталогът бе преименуван преди да може да се извлече състоянието му"
+
+#: src/extract.c:711
+msgid "Extracting contiguous files as regular files"
+msgstr "Продължаващи файлове се извличат като обикновени файлове"
+
+#: src/extract.c:979
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Опитва се извличането на символни връзки като твърди"
+
+#: src/extract.c:1037
+#, c-format
+msgid "Reading %s\n"
+msgstr "Чете се %s\n"
+
+#: src/extract.c:1130
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Не може да се извлича -- файлът продължава с друг том"
+
+#: src/extract.c:1137 src/list.c:1057
+msgid "Unexpected long name header"
+msgstr "Неочаквано дълъг заглавен запис"
+
+#: src/extract.c:1143
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Непознат файлов тип „%c“, извлича се като обикновен файл"
+
+#: src/extract.c:1168
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Текущият %s е по-нов или със същата възраст"
+
+#: src/extract.c:1214
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Не можа да се направи резервно копие на този файл"
+
+#: src/extract.c:1342
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Бе невъзможно %s да се преименува на %s"
+
+#: src/extract.c:1354
+#, c-format
+msgid "Error is not recoverable: exiting now"
+msgstr "Грешката е непоправима: край на изпълнението"
+
+#: src/incremen.c:260 src/incremen.c:300
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Каталогът бе преименуват от %s"
+
+#: src/incremen.c:270
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Каталогът бе преименуван"
+
+#: src/incremen.c:311
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Каталогът е нов"
+
+#: src/incremen.c:697 src/incremen.c:714
+msgid "Invalid time stamp"
+msgstr "Записано е неправилно време"
+
+#: src/incremen.c:753
+msgid "Invalid modification time (seconds)"
+msgstr "Неправилно време на промяна (секунди)"
+
+#: src/incremen.c:768
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Неправилно време на промяна (наносекунди)"
+
+#: src/incremen.c:788
+msgid "Invalid device number"
+msgstr "Неправилен номер на устройство"
+
+#: src/incremen.c:803
+msgid "Invalid inode number"
+msgstr "Неправилен номер на i-възел"
+
+#: src/incremen.c:854 src/incremen.c:891
+msgid "Field too long while reading snapshot file"
+msgstr "Твърде дълго поле при четене на snapshot-файл"
+
+#: src/incremen.c:861 src/incremen.c:899
+msgid "Read error in snapshot file"
+msgstr "Грешка при четене в snapshot-файл"
+
+#: src/incremen.c:863 src/incremen.c:903 src/incremen.c:955
+#: src/incremen.c:1013
+msgid "Unexpected EOF in snapshot file"
+msgstr "Неочакван край на snapshot-файл"
+
+#: src/incremen.c:870 src/incremen.c:910
+msgid "Unexpected field value in snapshot file"
+msgstr "Неочаквана стойност на поле в snapshot-файл"
+
+#: src/incremen.c:1005
+msgid "Missing record terminator"
+msgstr "Липсва завършител на записа"
+
+#: src/incremen.c:1056 src/incremen.c:1059
+msgid "Bad incremental file format"
+msgstr "Грешен инкрементален файлов формат"
+
+#: src/incremen.c:1078
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Неподдържана версия на инкрементален формат: %<PRIuMAX>"
+
+#: src/incremen.c:1231
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Лошо формиран dumpdir: очаква се „%c“, а вместо това има %#3o"
+
+#: src/incremen.c:1241
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Лошо формиран dumpdir: „X“ е дублиран"
+
+#: src/incremen.c:1254
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Лошо формиран dumpdir: празно име в „R“"
+
+#: src/incremen.c:1267
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Лошо формиран dumpdir: „T“ не се предхожда от „R“"
+
+#: src/incremen.c:1273
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Лошо формиран dumpdir: празно име в „T“"
+
+#: src/incremen.c:1293
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Лошо формиран dumpdir: очаква се „%c“, вместо това данните свършват"
+
+#: src/incremen.c:1299
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Лошо формиран dumpdir: „X“ никога не се използва"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Не може да се създаде временен каталог, използвайки шаблона %s"
+
+#: src/incremen.c:1390
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Каталогът не се изчиства: не може да се достъпи"
+
+#: src/incremen.c:1403
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: каталогът е на друго устройство: не се изчиства"
+
+#: src/incremen.c:1411
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Изтрива се %s\n"
+
+#: src/incremen.c:1416
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Не може да се изтрие"
+
+#: src/list.c:115
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Пропуска се"
+
+#: src/list.c:133
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "блок %s: ** Блок от знаци NUL **\n"
+
+#: src/list.c:146
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Изолиран блок от нули при %s"
+
+#: src/list.c:157
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "блок %s: ** Край на файла **\n"
+
+#: src/list.c:180 src/list.c:1026 src/list.c:1262
+#, c-format
+msgid "block %s: "
+msgstr "блок %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:634
+#, 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:689
+#, 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:700
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Осмичната стойност %.*s в архива е извън диапазона за %s"
+
+#: src/list.c:721
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Архивът съдържа архаични заглавни записи по модул 64 (6 битови)"
+
+#: src/list.c:735
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Архивът е подписан с низ по модул 64 %s, който е е извън диапазона за %s"
+
+#: src/list.c:766
+#, 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:795
+#, 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:817
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Стойността %s в архива е извън допустимия диапазон за %s (%s..%s)"
+
+#: src/list.c:1193
+#, c-format
+msgid " link to %s\n"
+msgstr " връзка към %s\n"
+
+#: src/list.c:1201
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " непознат файлов тип %s\n"
+
+#: src/list.c:1219
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Дълга връзка--\n"
+
+#: src/list.c:1223
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Дълго име--\n"
+
+#: src/list.c:1227
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Заглавен запис на тома--\n"
+
+#: src/list.c:1235
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Продължава при байт %s--\n"
+
+#: src/list.c:1239
+#, c-format
+msgid "--Mangled file names--\n"
+msgstr "--Съкратени имена на файлове--\n"
+
+#: src/list.c:1267
+msgid "Creating directory:"
+msgstr "Създава се каталог:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Неочакван край EOF в съкратени имена"
+
+#: src/mangle.c:90 src/misc.c:467 src/misc.c:485
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Не може да се преименува на %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Преиманувано %s на %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Невъзможна символна връзка към %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Символна връзка %s към %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Непозната команда за оправяне на съкратени имена %s"
+
+#: src/misc.c:458
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Преименува се %s на %s\n"
+
+#: src/misc.c:490
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Преименува се %s обратно на %s\n"
+
+#: src/misc.c:632
+msgid "Cannot save working directory"
+msgstr "Не може да се запази работният каталог"
+
+#: src/misc.c:638
+msgid "Cannot change working directory"
+msgstr "Не може да се смени работният каталог"
+
+#: src/misc.c:728
+msgid "child process"
+msgstr "породен процес"
+
+#: src/misc.c:737
+msgid "interprocess channel"
+msgstr "междупроцесен канал"
+
+#. TRANSLATORS: The following three msgids form a single sentence.
+#.
+#: src/names.c:600
+msgid "Pattern matching characters used in file names. Please,"
+msgstr "Във файловите имена са използвани „*“ и „?“. Моля,"
+
+#: src/names.c:602
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+msgstr "използвайте --wildcards, за да позволите съпоставяне с образци,"
+
+#: src/names.c:604
+msgid "suppress this warning."
+msgstr "или --no-wildcards, за да не се извежда това предупреждение."
+
+#: src/names.c:619 src/names.c:637
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Не е открит в архива"
+
+#: src/names.c:622
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Необходимо срещане не е открито в архива"
+
+#: src/tar.c:79
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "И двете опции „-%s“ и „-%s“ изискват стандартен вход"
+
+#: src/tar.c:156
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Неправилен архивен формат"
+
+#: src/tar.c:180
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Поискани са ГНУ-възможности при несъвместим архивен формат"
+
+#: src/tar.c:241
+#, 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:323
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"„Tar“ на ГНУ запазва последователно много файлове в един лентов или дисков архив и може да възстановява в последствие отделни файлове от архива.\n"
+"\n"
+"Примери:\n"
+" tar -cf архив.tar дрън брън # Създава архив.tar от файловете дрън и брън\n"
+" tar -tvf архив.tar # Изрежда подробно всички файлове в архив.tar\n"
+" tar -xf архив.tar # Извлича от архив.tar всички файлове\n"
+
+#: src/tar.c:332
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Суфиксът за резервни копия е „~“, освен при промяна с --suffix или с\n"
+"променлива от обкръжението SIMPLE_BACKUP_SUFFIX. Методът за управление на\n"
+"версиите може да се посочва с --backup или с променливата VERSION_CONTROL.\n"
+"Допустими стойности са:\n"
+"\n"
+" none, off никога да не се правят резервни копия\n"
+" t, numbered да се правят номерирани резервни копия\n"
+" nil, existing номерирани, ако вече са правени номерирани, а прости иначе\n"
+" never, simple винаги да се правят прости резервни копия\n"
+
+#: src/tar.c:358
+msgid "Main operation mode:"
+msgstr "Вид основно действие:"
+
+#: src/tar.c:361
+msgid "list the contents of an archive"
+msgstr "изрежда съдържанието на архив"
+
+#: src/tar.c:363
+msgid "extract files from an archive"
+msgstr "извлича файлове от архива"
+
+#: src/tar.c:366
+msgid "create a new archive"
+msgstr "създава нов архив"
+
+#: src/tar.c:368
+msgid "find differences between archive and file system"
+msgstr "намира разликите между архива и файловата система"
+
+#: src/tar.c:371
+msgid "append files to the end of an archive"
+msgstr "добавя файлове в края на архив"
+
+#: src/tar.c:373
+msgid "only append files newer than copy in archive"
+msgstr "добавя само файлове, по-нови от копието в архива"
+
+#: src/tar.c:375
+msgid "append tar files to an archive"
+msgstr "прибавя tar-файлове към архива"
+
+#: src/tar.c:378
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "трие файлове от архива (не при магнитни ленти!)"
+
+#: src/tar.c:380
+msgid "test the archive volume label and exit"
+msgstr "проверява етикета на тома и завършва"
+
+#: src/tar.c:385
+msgid "Operation modifiers:"
+msgstr "Модификатори на действието:"
+
+#: src/tar.c:388
+msgid "handle sparse files efficiently"
+msgstr "работи ефективно с разредени файлове"
+
+#: src/tar.c:389
+msgid "MAJOR[.MINOR]"
+msgstr "ГОЛЯМ[.МАЛЪК]"
+
+#: src/tar.c:390
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "определя версията на формата разредени файлове (влече --sparse)"
+
+#: src/tar.c:392
+msgid "handle old GNU-format incremental backup"
+msgstr "със стар формат ГНУ за инкрементално архивиране"
+
+#: src/tar.c:393 src/tar.c:524 src/tar.c:588 src/tar.c:592 src/tar.c:602
+#: src/tar.c:679 tests/genfile.c:128 tests/genfile.c:173 tests/genfile.c:177
+#: tests/genfile.c:180
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: src/tar.c:394
+msgid "handle new GNU-format incremental backup"
+msgstr "с новия формат на ГНУ за инкрем. архивиране"
+
+#: src/tar.c:396
+msgid "do not exit with nonzero on unreadable files"
+msgstr "при нечитаеми файлове не завършва с грешка"
+
+#: src/tar.c:397 src/tar.c:519 src/tar.c:534 src/tar.c:632 tests/genfile.c:159
+msgid "NUMBER"
+msgstr "N"
+
+#: src/tar.c:398
+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 "обработва само N-тото срещане на всеки файл в архива; тази опция е правилна само в съчетание с една от подкомандите --delete, --diff, --extract или --list и когато списъкът от файлове е зададен или на командния ред, или с опция -T. Ако не е посочен N, се подразбира 1."
+
+#: src/tar.c:404
+msgid "archive is seekable"
+msgstr "архивът е с произволен достъп"
+
+#: src/tar.c:409
+msgid "Overwrite control:"
+msgstr "Регулиране заместването на файлове:"
+
+#: src/tar.c:412
+msgid "attempt to verify the archive after writing it"
+msgstr "след записа опитва да провери архива"
+
+#: src/tar.c:414
+msgid "remove files after adding them to the archive"
+msgstr "изтрива файловете след като ги добави в архива"
+
+#: src/tar.c:416
+msgid "don't replace existing files when extracting"
+msgstr "при извличане не замества съществуващи файлове"
+
+#: src/tar.c:418
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "не замества съществуващи файлове, ако са по-нови от копията им в архива"
+
+#: src/tar.c:420
+msgid "overwrite existing files when extracting"
+msgstr "при извличане замества съществуващи файлове"
+
+#: src/tar.c:422
+msgid "remove each file prior to extracting over it"
+msgstr "изтрива всеки файл преди да извлича върху него"
+
+#: src/tar.c:424
+msgid "empty hierarchies prior to extracting directory"
+msgstr "изпразва йерархията преди извличане на каталог"
+
+#: src/tar.c:426
+msgid "preserve metadata of existing directories"
+msgstr "запазва метаданните на съществуващи каталози"
+
+#: src/tar.c:428
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "при извличане замества метаданните на съществуващи каталози (подразбира се)"
+
+#: src/tar.c:434
+msgid "Select output stream:"
+msgstr "Избор на изходен поток:"
+
+#: src/tar.c:437
+msgid "extract files to standard output"
+msgstr "извлича файловете на стандартния изход"
+
+#: src/tar.c:438 src/tar.c:497 src/tar.c:499 tests/genfile.c:156
+#: tests/genfile.c:183
+msgid "COMMAND"
+msgstr "КОМАНДА"
+
+#: src/tar.c:439
+msgid "pipe extracted files to another program"
+msgstr "подава с канал всеки извлечен файл към КОМАНДА"
+
+#: src/tar.c:441
+msgid "ignore exit codes of children"
+msgstr "игнорира кода на завършване на породени процеси"
+
+#: src/tar.c:443
+msgid "treat non-zero exit codes of children as error"
+msgstr "счита за грешка всеки ненулев код на завършване на породен процес"
+
+#: src/tar.c:448
+msgid "Handling of file attributes:"
+msgstr "Подход спрямо файловите атрибути:"
+
+#: src/tar.c:451
+msgid "force NAME as owner for added files"
+msgstr "прави ИМЕ да е собственик на добавените файлове"
+
+#: src/tar.c:453
+msgid "force NAME as group for added files"
+msgstr "прави ИМЕ да бъде групата на добавените файлове"
+
+#: src/tar.c:454 src/tar.c:618
+msgid "DATE-OR-FILE"
+msgstr "ДАТА-ИЛИ-ФАЙЛ"
+
+#: src/tar.c:455
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "прави времето на промяна на добавяни файлове като ДАТА-ИЛИ-ФАЙЛ"
+
+#: src/tar.c:456
+msgid "CHANGES"
+msgstr "ПРОМЕНИ"
+
+#: src/tar.c:457
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "модифицира режима за достъп на добавени файлове"
+
+#: src/tar.c:459
+msgid "METHOD"
+msgstr "МЕТОД"
+
+#: src/tar.c:460
+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:464
+msgid "don't extract file modified time"
+msgstr "не извлича времето на промяна на файловете"
+
+#: src/tar.c:466
+msgid "try extracting files with the same ownership"
+msgstr "опитва да възстановява собствеността на файловете"
+
+#: src/tar.c:468
+msgid "extract files as yourself"
+msgstr "извлича файловете от ваше име"
+
+#: src/tar.c:470
+msgid "always use numbers for user/group names"
+msgstr "използва числа вместо имена за потребител и група"
+
+#: src/tar.c:472
+msgid "extract information about file permissions (default for superuser)"
+msgstr "възстановява точно (без umask) режима на достъп (подразбира се при привилегирован потребител)"
+
+#: src/tar.c:476
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "прилага umask на потребителя при извличане на файлове (подразбира се при обикновен потребител)"
+
+#: src/tar.c:478
+msgid "sort names to extract to match archive"
+msgstr "файловете за извличане са сортирани според архива"
+
+#: src/tar.c:481
+msgid "same as both -p and -s"
+msgstr "същото като едновременно -p и -s"
+
+#: src/tar.c:483
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "забавя настройката на времето на промяна и режима за достъп на извличаните каталози докато извличането завърши"
+
+#: src/tar.c:486
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "отменя ефекта на --delay-directory-restore"
+
+#: src/tar.c:491
+msgid "Device selection and switching:"
+msgstr "Избор на устройство и смяна:"
+
+#: src/tar.c:493
+msgid "ARCHIVE"
+msgstr "АРХИВ"
+
+#: src/tar.c:494
+msgid "use archive file or device ARCHIVE"
+msgstr "използва архивния файл или устройство АРХИВ"
+
+#: src/tar.c:496
+msgid "archive file is local even if it has a colon"
+msgstr "архивният файл е локален дори при двуеточие"
+
+#: src/tar.c:498
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "използва посочената КОМАНДА вместо rmt"
+
+#: src/tar.c:500
+msgid "use remote COMMAND instead of rsh"
+msgstr "използва посочената КОМАНДА вместо rsh"
+
+#: src/tar.c:504
+msgid "specify drive and density"
+msgstr "посочва устройство и гъстота"
+
+#: src/tar.c:518
+msgid "create/list/extract multi-volume archive"
+msgstr "създава/извежда/извлича многотомен архив"
+
+#: src/tar.c:520
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "смяна на лентата след запис на 1024 x N байта"
+
+#: src/tar.c:522
+msgid "run script at end of each tape (implies -M)"
+msgstr "изпълнява скрипт в края на всяка лента (влече -M)"
+
+#: src/tar.c:525
+msgid "use/update the volume number in FILE"
+msgstr "ползва от и обновява във ФАЙЛ номера на тома"
+
+#: src/tar.c:530
+msgid "Device blocking:"
+msgstr "Блокуване на устройството:"
+
+#: src/tar.c:532
+msgid "BLOCKS"
+msgstr "БЛОКОВЕ"
+
+#: src/tar.c:533
+msgid "BLOCKS x 512 bytes per record"
+msgstr "БЛОКОВЕ x 512 байта в секунда"
+
+#: src/tar.c:535
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "прави N-байтови записи, кратно на 512"
+
+#: src/tar.c:537
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "пренебрегва блоковете от нули и продължава"
+
+#: src/tar.c:539
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "преформира при четене блоковете (канали 4.2BSD)"
+
+#: src/tar.c:544
+msgid "Archive format selection:"
+msgstr "Избор на архивен формат:"
+
+#: src/tar.c:546 tests/genfile.c:146
+msgid "FORMAT"
+msgstr "ФОРМАТ"
+
+#: src/tar.c:547
+msgid "create archive of the given format"
+msgstr "създава архив с посочения формат"
+
+#: src/tar.c:549
+msgid "FORMAT is one of the following:"
+msgstr "ФОРМАТ е някой от следните:"
+
+#: src/tar.c:550
+msgid "old V7 tar format"
+msgstr "стар формат tar, V7"
+
+#: src/tar.c:553
+msgid "GNU format as per tar <= 1.12"
+msgstr "формат на ГНУ при tar <= 1.12"
+
+#: src/tar.c:555
+msgid "GNU tar 1.13.x format"
+msgstr "формат на версия 1.13.x на tar на ГНУ"
+
+#: src/tar.c:557
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "формат POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:559
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "формат POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:560
+msgid "same as pax"
+msgstr "същото като pax"
+
+#: src/tar.c:563
+msgid "same as --format=v7"
+msgstr "същото като --format=v7"
+
+#: src/tar.c:566
+msgid "same as --format=posix"
+msgstr "същото като --format=posix"
+
+#: src/tar.c:567
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "ключдума[[:]=стойност][,ключдума[[:]=стойност]]..."
+
+#: src/tar.c:568
+msgid "control pax keywords"
+msgstr "управляващи ключови думи за pax"
+
+#: src/tar.c:569
+msgid "TEXT"
+msgstr "ТЕКСТ"
+
+#: src/tar.c:570
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "създава архив с име на том ТЕКСТ; при извеждане или извличане сравнява името на тома с ТЕКСТ"
+
+#: src/tar.c:572
+msgid "filter the archive through bzip2"
+msgstr "прекарва архива през bzip2"
+
+#: src/tar.c:574
+msgid "filter the archive through gzip"
+msgstr "прекарва архива през gzip"
+
+#: src/tar.c:578
+msgid "filter the archive through compress"
+msgstr "прекарва архива през compress"
+
+#: src/tar.c:580
+msgid "PROG"
+msgstr "ПРОГ"
+
+#: src/tar.c:581
+msgid "filter through PROG (must accept -d)"
+msgstr "прекарва архива през ПРОГ (трябва да приема -d)"
+
+#: src/tar.c:586
+msgid "Local file selection:"
+msgstr "Избор на локален файл:"
+
+#: src/tar.c:589
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "добавя посочения ФАЙЛ към архива (полезно е, ако името му започва с минус)"
+
+#: src/tar.c:590
+msgid "DIR"
+msgstr "КАТ"
+
+#: src/tar.c:591
+msgid "change to directory DIR"
+msgstr "работи в каталога КАТ"
+
+#: src/tar.c:593
+msgid "get names to extract or create from FILE"
+msgstr "взема имената за извличане или създаване от ФАЙЛ"
+
+#: src/tar.c:595
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T чете имена, завършващи с нулев байт"
+
+#: src/tar.c:597
+msgid "unquote filenames read with -T (default)"
+msgstr "декодира „\\“ във файловите имена на -T (подразб.)"
+
+#: src/tar.c:599
+msgid "do not unquote filenames read with -T"
+msgstr "не декодира „\\“ във файловите имена на -T"
+
+#: src/tar.c:600 tests/genfile.c:132
+msgid "PATTERN"
+msgstr "ОБРАЗЕЦ"
+
+#: src/tar.c:601
+msgid "exclude files, given as a PATTERN"
+msgstr "без файловете, отговарящи на ОБРАЗЕЦ"
+
+#: src/tar.c:603
+msgid "exclude patterns listed in FILE"
+msgstr "пропуска файловете, отговарящи на образци в ФАЙЛ"
+
+#: src/tar.c:605
+msgid "exclude directories containing a cache tag"
+msgstr "без каталози, обозначени като кеширащи"
+
+#: src/tar.c:607
+msgid "avoid descending automatically in directories"
+msgstr "без автоматично влизане в подкаталозите"
+
+#: src/tar.c:609
+msgid "stay in local file system when creating archive"
+msgstr "работи в рамките на локалната файлова система"
+
+#: src/tar.c:611
+msgid "recurse into directories (default)"
+msgstr "влиза рекурсивно в подкаталозите (подразбира се)"
+
+#: src/tar.c:613
+msgid "don't strip leading `/'s from file names"
+msgstr "не маха „/“ в началото на файлови имена"
+
+#: src/tar.c:615
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "следва симв. връзки; архивира сочените файлове"
+
+#: src/tar.c:616
+msgid "MEMBER-NAME"
+msgstr "ЧЛЕН-ИМЕ"
+
+#: src/tar.c:617
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "започва от файл с име ЧЛЕН-ИМЕ в архива"
+
+#: src/tar.c:619
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "съхранява само файлове, по-нови от ДАТА-ИЛИ-ФАЙЛ"
+
+#: src/tar.c:621
+msgid "DATE"
+msgstr "ДАТА"
+
+#: src/tar.c:622
+msgid "compare date and time when data changed only"
+msgstr "сравнява времето само ако данните са променени"
+
+#: src/tar.c:623
+msgid "CONTROL"
+msgstr "МЕТОД"
+
+#: src/tar.c:624
+msgid "backup before removal, choose version CONTROL"
+msgstr "резервно копира съществуващи файлове с МЕТОД"
+
+#: src/tar.c:625 src/tar.c:696 src/tar.c:698 tests/genfile.c:162
+msgid "STRING"
+msgstr "НИЗ"
+
+#: src/tar.c:626
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "резервно копира преди да трие, използвайки НИЗ вместо обичайния суфикс („~“, освен ако не е бил сменен с променливата от обкръжението SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:631
+msgid "File name transformations:"
+msgstr "Промени на файловите имена:"
+
+#: src/tar.c:633
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "при извличане маха N начални каталози от файловите пътеки"
+
+#: src/tar.c:635
+msgid "EXPRESSION"
+msgstr "ИЗРАЗ"
+
+#: src/tar.c:636
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "преобразува файловите имена, използвайки посочения ИЗРАЗ за замяна на sed"
+
+#: src/tar.c:641
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Съпоставяне с файлови имена (влияе и на включващи, и на изключващи образци):"
+
+#: src/tar.c:644
+msgid "ignore case"
+msgstr "пренебрегва разликата между големи/малки букви"
+
+#: src/tar.c:646
+msgid "patterns match file name start"
+msgstr "съпоставянето с образците започва от началото на файловото име"
+
+#: src/tar.c:648
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "съпоставянето започва след кой да е „/“ (подразбира се при изключване)"
+
+#: src/tar.c:650
+msgid "case sensitive matching (default)"
+msgstr "отчита се разликата между малки и големи букви (подразбира се)"
+
+#: src/tar.c:652
+msgid "use wildcards (default for exclusion)"
+msgstr "ползва „*“ и „?“ (подразбира се за изключване)"
+
+#: src/tar.c:654
+msgid "verbatim string matching"
+msgstr "дословно низово сравнение"
+
+#: src/tar.c:656
+msgid "wildcards do not match `/'"
+msgstr "„/“ не пасва с „*“ и „?“"
+
+#: src/tar.c:658
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "„/“ пасва с „*“ и „?“ (подразб. за изключване)"
+
+#: src/tar.c:663
+msgid "Informative output:"
+msgstr "Извеждане на информация:"
+
+#: src/tar.c:666
+msgid "verbosely list files processed"
+msgstr "подробно изрежда обработените файлове"
+
+#: src/tar.c:667
+msgid "[.]NUMBER"
+msgstr "[.]N"
+
+#: src/tar.c:668
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "извежда напредъка след всеки N-ти запис (подразбира се 10)"
+
+#: src/tar.c:671
+msgid "print a message if not all links are dumped"
+msgstr "съобщава, ако не всички твърди връзки са включени"
+
+#: src/tar.c:672
+msgid "SIGNAL"
+msgstr "СИГНАЛ"
+
+#: src/tar.c:673
+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:678
+msgid "print file modification dates in UTC"
+msgstr "извежда времената по Гринуич"
+
+#: src/tar.c:680
+msgid "send verbose output to FILE"
+msgstr "изпраща подробния изход във ФАЙЛ"
+
+#: src/tar.c:682
+msgid "show block number within archive with each message"
+msgstr "показва номера на блок в архива с всяко съобщение"
+
+#: src/tar.c:684
+msgid "ask for confirmation for every action"
+msgstr "изисква потвърждение за всяко действие"
+
+#: src/tar.c:687
+msgid "show tar defaults"
+msgstr "показва подразбираното от tar"
+
+#: src/tar.c:689
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "при извеждане или извличане изрежда всеки каталог, който се пропуска по някаква причина"
+
+#: src/tar.c:691
+msgid "show file or archive names after transformation"
+msgstr "показва преобразуваните файлови имена в архива"
+
+#: src/tar.c:694
+msgid "STYLE"
+msgstr "НАЧИН"
+
+#: src/tar.c:695
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "начин за цитиране на специални знаци; вж. по-долу за стойностите на НАЧИН"
+
+#: src/tar.c:697
+msgid "additionally quote characters from STRING"
+msgstr "работи и със знаците от НИЗ като със специални"
+
+#: src/tar.c:699
+msgid "disable quoting for characters from STRING"
+msgstr "не работи със знаците от НИЗ като със специални"
+
+#: src/tar.c:704
+msgid "Compatibility options:"
+msgstr "Опции за съвместимост:"
+
+#: src/tar.c:707
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "при създаване е същото като --old-archive; при извличане е същото като --no-same-owner"
+
+#: src/tar.c:712
+msgid "Other options:"
+msgstr "Други опции:"
+
+#: src/tar.c:715
+msgid "disable use of some potentially harmful options"
+msgstr "забранява някои потенциално опасни опции"
+
+#: src/tar.c:819
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Не може да се използва повече от една опция „-Acdtrux“"
+
+#: src/tar.c:829
+msgid "Conflicting compression options"
+msgstr "Противоречащи си опции за компресиране"
+
+#: src/tar.c:885
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Непознато име на сигнал: %s"
+
+#: src/tar.c:909
+msgid "Date sample file not found"
+msgstr "Не е открит еталлонният файл за дата"
+
+#: src/tar.c:917
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Използва се %s вместо непознатия файлов формат за дата %s"
+
+#: src/tar.c:942
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Опция %s: Датата „%s“ се разглежда като %s"
+
+#: src/tar.c:1013
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: файловият списък вече е прочетен"
+
+#: src/tar.c:1068
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: файловото име съдържа нулев байт"
+
+#: src/tar.c:1130
+msgid "Valid arguments for --quoting-style options are:"
+msgstr "Правилни аргументи за опциите --quoting-style са:"
+
+#: src/tar.c:1133
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Този* tar подразбира следното:\n"
+
+#: src/tar.c:1166
+msgid "Invalid blocking factor"
+msgstr "Неправилен фактор за блокуване"
+
+#: src/tar.c:1238
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Внимание: опцията -I не се поддържа. Може би имате предвид -j или -T?"
+
+#: src/tar.c:1271
+msgid "Invalid tape length"
+msgstr "Неправилна дължина на лента"
+
+#: src/tar.c:1303
+msgid "More than one threshold date"
+msgstr "Повече от една ограничителна дата"
+
+#: src/tar.c:1358 src/tar.c:1361
+msgid "Invalid sparse version value"
+msgstr "Неправилна версия на формат разредени файлове"
+
+#: src/tar.c:1446
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' не се поддържа на тази платформа"
+
+#: src/tar.c:1463
+msgid "--checkpoint value is not an integer"
+msgstr "стойността на --checkpoint не е цяло число"
+
+#: src/tar.c:1533
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Неправилна група"
+
+#: src/tar.c:1540
+msgid "Invalid mode given on option"
+msgstr "На опция е подаден неправилен режим"
+
+#: src/tar.c:1593
+msgid "Invalid number"
+msgstr "Неправилно число"
+
+#: src/tar.c:1615
+msgid "Invalid owner"
+msgstr "Неправилен собственик"
+
+#: src/tar.c:1649
+msgid "Invalid record size"
+msgstr "Неправилен размер на запис"
+
+#: src/tar.c:1652
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Размерът на запис трябва да е кратен на %d."
+
+#: src/tar.c:1689
+msgid "Invalid number of elements"
+msgstr "Неправилен брой елементи"
+
+#: src/tar.c:1709
+msgid "Only one --to-command option allowed"
+msgstr "Позволява се само една опция --to-command"
+
+#: src/tar.c:1785
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Лошо образуван аргумент за гъстота: %s"
+
+#: src/tar.c:1811
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Непозната гъстота: „%c“"
+
+#: src/tar.c:1828
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Опциите „-[0-7][lmh]“ не се поддържат от *този* tar"
+
+#: src/tar.c:1863
+msgid "[FILE]..."
+msgstr "[ФАЙЛ]..."
+
+#: src/tar.c:1966
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Старата опция „%c“ изисква аргумент."
+
+#: src/tar.c:2048
+msgid "--occurrence is meaningless without a file list"
+msgstr "без списък файлове опцията --occurrence е безсмислена"
+
+#: src/tar.c:2054
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "не може да се използва --occurrence при пожелания начин на работа"
+
+#: src/tar.c:2084
+msgid "Multiple archive files require `-M' option"
+msgstr "Използването на много архивни файлове изисква опция „-M“"
+
+#: src/tar.c:2089
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Не може да се съчетават --listed-incremental с --newer"
+
+#: src/tar.c:2106
+#, 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:2119
+msgid "Cannot verify multi-volume archives"
+msgstr "Не може да се проверяват многотомни архиви"
+
+#: src/tar.c:2121
+msgid "Cannot verify compressed archives"
+msgstr "Не може да се проверяват компресирани архиви"
+
+#: src/tar.c:2127
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Не може да се използват многотомни компресирани архиви"
+
+#: src/tar.c:2133
+msgid "Cannot concatenate compressed archives"
+msgstr "Не може да се съединяват компресирани архиви"
+
+#: src/tar.c:2145
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "опцията --pax-option може да се използва само при архиви във формат POSIX"
+
+#: src/tar.c:2170
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Страхлив отказ да се създава празен архив"
+
+#: src/tar.c:2191
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Опциите „-Aru“ са несъвместими с „-f -“"
+
+#: src/tar.c:2280
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Трябва да посочите поне една от опциите „-Acdtrux“"
+
+#: src/tar.c:2331
+#, c-format
+msgid "Error exit delayed from previous errors"
+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 байта"
+
+#: src/xheader.c:160
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Ключовата дума %s е непозната или все още не е реализирана"
+
+#: src/xheader.c:186
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Образецът %s не може да се използва"
+
+#: src/xheader.c:196
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Ключовата дума %s не може да се отмени"
+
+#: src/xheader.c:500
+msgid "Malformed extended header: missing length"
+msgstr "Лошо формиран разширен заглавен запис: не е посочена дължина"
+
+#: src/xheader.c:508
+msgid "Extended header length is out of allowed range"
+msgstr "Дължината на разширен заглавен запис е извън допустимия диапазон"
+
+#: src/xheader.c:515
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Дължината %*s на разширен заглавен запис е извън допустимия диапазон"
+
+#: src/xheader.c:527
+msgid "Malformed extended header: missing blank after length"
+msgstr "Лошо формиран разширен заглавен запис: липсва интервал след дължината"
+
+#: src/xheader.c:535
+msgid "Malformed extended header: missing equal sign"
+msgstr "Лошо формиран разширен заглавен запис: липсва знак за равенство"
+
+#: src/xheader.c:541
+msgid "Malformed extended header: missing newline"
+msgstr "Лошо формиран разширен заглавен запис: липсва знак за нов ред"
+
+#: src/xheader.c:578
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Пренебрегва се непознатата ключова дума „%s“ за разширен заглавен запис"
+
+#: src/xheader.c:785
+#, 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:817
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Разширеният заглавен запис %s=%s е извън диапазона %s..%s"
+
+#: src/xheader.c:948 src/xheader.c:978 src/xheader.c:1291
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Неправилно формиран разширен заглавен запис: неправилен %s=%s"
+
+#: src/xheader.c:1244 src/xheader.c:1269 src/xheader.c:1319
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Неправилно формиран разширен заглавен запис: прекомерен %s=%s"
+
+#: src/xheader.c:1332
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Лошо формиран разширен заглавен запис: неправилен %s; очаква се разделител %c"
+
+#: src/xheader.c:1342
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Лошо формиран разширен заглавен запис: неправилен %s; нечетен брой стойности"
+
+#: tests/genfile.c:109
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile борави с файловете с данни за тестовия пакет GNU paxutils.\n"
+"ОПЦИИТЕ са:\n"
+
+#: tests/genfile.c:123
+msgid "File creation options:"
+msgstr "Опции за създаването на файл:"
+
+#: tests/genfile.c:124 tests/genfile.c:135
+msgid "SIZE"
+msgstr "РАЗМЕР"
+
+#: tests/genfile.c:125
+msgid "Create file of the given SIZE"
+msgstr "Създава файл с посочения РАЗМЕР"
+
+#: tests/genfile.c:127
+msgid "Write to file NAME, instead of standard output"
+msgstr "Запис във файл ИМЕ вместо на стандартния изход"
+
+#: tests/genfile.c:129
+msgid "Read file names from FILE"
+msgstr "Чете файловите имена от ФАЙЛ"
+
+#: tests/genfile.c:131
+msgid "-T reads null-terminated names"
+msgstr "-T чете имена, завършващи с нулев байт"
+
+#: tests/genfile.c:133
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Попълва файла с посочения ОБРАЗЕЦ. ОБРАЗЕЦ може да бъде „default“ или „zeros“"
+
+#: tests/genfile.c:136
+msgid "Size of a block for sparse file"
+msgstr "Размер на блок за разреден файл"
+
+#: tests/genfile.c:138
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Генерира разреден файл. Останалата част от командния ред дава карта на файла."
+
+#: tests/genfile.c:144
+msgid "File statistics options:"
+msgstr "Опции за файлови статистики:"
+
+#: tests/genfile.c:147
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Извежда съдържанието на структурата stat за всеки файл. По подразбиране ФОРМАТ е: "
+
+#: tests/genfile.c:154
+msgid "Synchronous execution options:"
+msgstr "Опции за синхронизирано изпълнение:"
+
+#: tests/genfile.c:157
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr "Изпълнява посочената КОМАНДА. Полезно с --checkpoint и някоя от --cut, --append, --touch"
+
+#: tests/genfile.c:160
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Изпълнява посоченото действие (вж. по-долу) до достигането на контролна точка N"
+
+#: tests/genfile.c:163
+msgid "Set date for next --touch option"
+msgstr "Посочва дата за следващата опция --touch"
+
+#: tests/genfile.c:166
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Извежда изпълнените контролни точки и кода на завършване на КОМАНДА"
+
+#: tests/genfile.c:171
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Синхронизирано изпълнение на действията. Те се изпълняват когато се достигне контролната точка с номер, посочен с --checkpoint."
+
+#: tests/genfile.c:174
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Отсича ФАЙЛ до размера, определен с предхождаща опция --length (подразбира се 0)"
+
+#: tests/genfile.c:178
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Добавя РАЗМЕР байтове към ФАЙЛ. РАЗМЕРът се определя от предхождаща опция --length."
+
+#: tests/genfile.c:181
+msgid "Update the access and modification times of FILE"
+msgstr "Обновява времето на достъп и промяна на FILE"
+
+#: tests/genfile.c:184
+msgid "Execute COMMAND"
+msgstr "Изпълнява КОМАНДА"
+
+#: tests/genfile.c:234
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Неправилен размер: %s"
+
+#: tests/genfile.c:239
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Номер извън допустимия диапазон: %s"
+
+#: tests/genfile.c:242
+#, c-format
+msgid "Negative size: %s"
+msgstr "Отрицателен размер: %s"
+
+#: tests/genfile.c:255 tests/genfile.c:544
+#, c-format
+msgid "stat(%s) failed"
+msgstr "не успя stat(%s)"
+
+#: tests/genfile.c:345
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Грешка при анализа на число до „%s“"
+
+#: tests/genfile.c:351
+#, c-format
+msgid "Unknown date format"
+msgstr "Непознат формат за дата"
+
+#: tests/genfile.c:374
+msgid "[ARGS...]"
+msgstr "[АРГУМ...]"
+
+#: tests/genfile.c:411 tests/genfile.c:448 tests/genfile.c:498
+#: tests/genfile.c:648 tests/genfile.c:662
+#, c-format
+msgid "cannot open `%s'"
+msgstr "Не може да се отвори „%s“"
+
+#: tests/genfile.c:431
+#, c-format
+msgid "file name contains null character"
+msgstr "името на файла съдържа нулев байт"
+
+#: tests/genfile.c:495
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "не може да се създават разредени файлове на стандартния изход, използвайте опцията --file"
+
+#: tests/genfile.c:571
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "неправилна маска (до „%s“)"
+
+#: tests/genfile.c:577 tests/genfile.c:610
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Непознато поле „%s“"
+
+#: tests/genfile.c:637
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "не може да се смени времето на „%s“"
+
+#: tests/genfile.c:791
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Командата завърши успешно\n"
+
+#: tests/genfile.c:793
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Командата завърши с код %d\n"
+
+#: tests/genfile.c:797
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Командата бе прекратена със сигнал %d\n"
+
+#: tests/genfile.c:799
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Командата бе спряна със сигнал %d\n"
+
+#: tests/genfile.c:802
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Командата генерира core\n"
+
+#: tests/genfile.c:805
+#, c-format
+msgid "Command terminated\n"
+msgstr "Командата бе прекратена\n"
+
+#: tests/genfile.c:837
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat изисква файлови имена"
+
+#: tests/genfile.c:850
+#, c-format
+msgid "too many arguments"
+msgstr "твърде много аргументи"
+
+#~ msgid "Time stamp out of range"
+#~ msgstr "Записано е време извън допустимия диапазон"
+
+#~ msgid "Modification time (seconds) out of range"
+#~ msgstr "Времето на промяна (секунди) е извън допустимия диапазон"
+
+#~ msgid "Modification time (nanoseconds) out of range"
+#~ msgstr "Времето на промяна (наносекунди) е извън допустимия диапазон"
+
+#~ msgid "Device number out of range"
+#~ msgstr "Номерът на устройство е извън допустимия диапазон"
+
+#~ msgid "Error reading time stamp"
+#~ msgstr "Грешка при четене на записаното време"
+
+#~ msgid "Unexpected EOF"
+#~ msgstr "Неочакван EOF"
+
+#~ msgid "same as -N"
+#~ msgstr "същото като -N"
+
+#~ msgid "creating multi-volume archives in posix format requires using --tape-length (-L) option"
+#~ msgstr "създаването на многотомен архив във формат POSIX изисква опция --tape-length (-L)"
+
+#~ msgid "Cannot close file #%d"
+#~ msgstr "Не може да се затвори файл #%d"
+
+#~ msgid "Cannot close descriptor %d"
+#~ msgstr "Не може да се затвори дескриптор %d"
+
+#~ msgid "Cannot properly duplicate %s"
+#~ msgstr "Не може да се клонира правилно %s"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "Не може да се използват компресирани или отдалечени архиви"
+
+#~ msgid "Cannot open pipe"
+#~ msgstr "Не може да се отвори именован канал"
+
+#~ msgid "Cannot fork"
+#~ msgstr "Не може да се породи процес"
+
+#~ msgid "tar (child)"
+#~ msgstr "tar (потомък)"
+
+#~ msgid "(child) Pipe to stdin"
+#~ msgstr "(потомък) Именован канал към стандартен изход"
+
+#~ msgid "Cannot open archive %s"
+#~ msgstr "Не може да се отвори архив %s"
+
+#~ msgid "Archive to stdout"
+#~ msgstr "Архив на стандартния изход"
+
+#~ msgid "Cannot exec %s"
+#~ msgstr "Не може да се изпълни %s"
+
+#~ msgid "Child cannot fork"
+#~ msgstr "Потомъкът не може да породи процес"
+
+#~ msgid "((child)) Pipe to stdout"
+#~ msgstr "((потомък)) Именован канал към стандартния изход"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (подпотомък)"
+
+#~ msgid "(grandchild) Pipe to stdin"
+#~ msgstr "(подпотомък) Именован канал към стандартния изход"
+
+#~ msgid "Cannot read from compression program"
+#~ msgstr "Не може да се чете от компресиращата програма"
+
+#~ msgid "(child) Pipe to stdout"
+#~ msgstr "(потомък) Именован канал към стандартния изход"
+
+#~ msgid "((child)) Pipe to stdin"
+#~ msgstr "((потомък)) Именован канал към стандартния изход"
+
+#~ msgid "(grandchild) Pipe to stdout"
+#~ msgstr "(подпотомък) Именован канал към стандартния изход"
+
+#~ msgid "Cannot write to compression program"
+#~ msgstr "Не може да се пише към компресиращата програма"
+
+#~ msgid "Write to compression program short %d bytes"
+#~ msgstr "Записът към компресиращата програма е по-къс с %d байта"
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "ВНИМАНИЕ: Томът е без заглавна част"
+
+#~ msgid "Archive %s EOF not on block boundary"
+#~ msgstr "EOF на архив %s не е на границата на блок"
+
+#~ msgid "Only read %d bytes from archive %s"
+#~ msgstr "Прочетени са само %d байта от архив %s"
+
+#~ msgid "WARNING: Cannot close %s (%d, %d)"
+#~ msgstr "ВНИМАНИЕ: Не може да се затвори %s (%d, %d)"
+
+#~ msgid "Child died with signal %d%s"
+#~ msgstr "Потомъкът е прекратен чрез сигнал %d%s"
+
+#~ msgid "Cannot fork!"
+#~ msgstr "Не може да се породи процес!"
+
+#~ msgid "Cannot exec a shell %s"
+#~ msgstr "Не може да се изпълни командната обвивка %s"
diff --git a/po/.reference/bg.s1 b/po/.reference/bg.s1
new file mode 100644
index 00000000..5502d1af
--- /dev/null
+++ b/po/.reference/bg.s1
@@ -0,0 +1 @@
+03816c9b30f1e0488dce81a40e58cc22b115d5dc -
diff --git a/po/.reference/ca.po b/po/.reference/ca.po
new file mode 100644
index 00000000..4be8d02d
--- /dev/null
+++ b/po/.reference/ca.po
@@ -0,0 +1,2615 @@
+# Catalan translation for tar.
+# Copyright (C) 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+# Àngel Mompó <mecatxis@gmail.com>, 2010, 2011.
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar-1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-19 11:52+0100\n"
+"Last-Translator: Àngel Mompó <mecatxis@gmail.com>\n"
+"Language-Team: Catalan <ca@dodds.net>\n"
+"Language: ca\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "el paràmetre %s no és vàlid per %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "el paràmetre %s és ambigu per %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Els paràmetres vàlids són:"
+
+#: gnu/argp-help.c:149
+#, c-format
+msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
+msgstr "ARGP_HELP_FMT: el valor de %s és més petit o igual que %s"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: El paràmetre ARGP_HELP_FMT necessita un valor"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: El paràmetre ARGP_HELP_FMT ha de ser positiu"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Paràmetre ARGP_HELP_FMT desconegut"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Hi ha brossa a ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Els paràmetres obligatoris o opcionals per les opcions llargues també ho són per les corresponents opcions curtes."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Ús:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " o: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [OPCIÓ...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Proveu «%s --help» o «%s --usage» per més informació.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Informeu dels errors de programació a %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Error de sistema desconegut"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "dóna aquesta llista d'ajuda"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "dóna un missatge curt sobre utilització"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NOM"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "definiu el nom del programa"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEGS"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "es penja durant SECS segons (per defecte 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "mostra la versió del programa"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ERROR DE PROGRAMA) Versió desconeguda!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Massa paràmetres\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ERROR DE PROGRAMA) Hauria de conèixer l'opció!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "error d'escriptura"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: l'opció «%s» és ambigua\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: l'opció «--%s» no permet cap paràmetre\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: l'opció «%c%s» no permet cap paràmetre\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: l'opció «--%s» necessita un paràmetre\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: opció no reconeguda «--%s»\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: opció no reconeguda «%c%s»\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: opció invàlida -- «%c»\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: l'opció necessita un paràmetre -- «%c»\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: l'opció «-W %s» és ambigua\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: l'opció «-W %s» no permet cap paràmetre\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: l'opció «-W %s» necessita un paràmetre\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "memòria exhaurida"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "No es pot desar el directori de treball actual"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "No es pot tornar al directori de treball inicial"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "«"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "»"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[sS]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Empaquetat per %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Empaquetat per %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Llicència GPLV3+: GNU GPL versió 3 o posterior <http://gnu.org/licenses/gpl.html>\n"
+"Això és programari lliure: podeu modificar-lo i redistribuir-lo si voleu.\n"
+"No hi ha CAP GARANTIA, en la mesura que ho permeti la llei.\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Escrit per %s. \n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:108
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Escrit per %s i %s. \n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "Escrit per %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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Escrit per %s, %s, %s,\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Escrit per %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Escrit per %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Escrit per %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Escrit per %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Escrit per %s,·%s,·%s \n"
+"%s,·%s,·%s,·%s,\n"
+"%s,·and·%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.
+#: 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 ""
+"Escrit per %s,·%s,·%s,\n"
+"%s,·%s,·%s,·%s,\n"
+"%s,·%s,·i d'altres.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Informeu dels errors a <%s>.\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Informeu %s errors a: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s pàgina inicial <%s>\n"
+
+#: gnu/version-etc.c:255
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "%s pàgina inicial: <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 "Ajuda general per quan es fa servir programari de 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: No es 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: Avís: No es pot %s"
+
+#: lib/paxerror.c:93
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: No es pot canviar el mode a %s"
+
+#: lib/paxerror.c:101
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: No es pot canviar la titularitat a uid %lu, gid %lu"
+
+#: lib/paxerror.c:127
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: No es pot crear l'enllaç dur amb %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 de lectura al byte %s, quan s'estava llegint %lu byte"
+msgstr[1] "%s: Error de lectura al byte %s, quan s'estaven llegint %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: Avís: Error de lectura al byte %s, quan s'estava llegint %lu byte"
+msgstr[1] "%s: Error de lectura al byte %s, quan s'estaven llegint %lu bytes"
+
+#: lib/paxerror.c:259
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: No es pot buscar a %s"
+
+#: lib/paxerror.c:275
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Avís: No es pot buscar a %s"
+
+#: lib/paxerror.c:284
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: No es pot crear l'enllaç simbòlic 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'ha escrit només %lu de %lu byte"
+msgstr[1] "%s: S'han escrit només %lu de %lu bytes"
+
+#: lib/paxnames.c:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Es treuen les primeres «%s» dels noms dels membres"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Es treuen les primeres «%s» dels objectius dels enllaços durs"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Se substitueixen «.» per noms buits de membres"
+
+#: lib/paxnames.c:155
+msgid "Substituting `.' for empty hard link target"
+msgstr "Se substitueixen «.» per objectius buits d'enllaços durs"
+
+#: lib/rtapelib.c:299
+#, c-format
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: El servei no està 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 "No es pot connectar amb %s: no s'ha pogut resoldre"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "No es pot executar un interpret d'ordres remot"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "La direcció de cerca està fora de rang"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "La direcció de cerca no és vàlida"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "L'òfset de cerca no és vàlid"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "L'òfset de cerca està fora de rang"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "La mida en bytes no és vàlida"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "La mida en bytes està fora de rang"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Final del fitxer prematur"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "El codi de l'operació no és vàlid"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "No se suporta la operació"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Arguments inesperats"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Manipula una unitat de cinta, acceptant comandes d'un procés remot"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NÚMERO"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "estableix el nivell de depuració"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FITXER"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "estableix el nom del fitxer de sortida de la depuració"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "no es pot obrir %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "massa arguments"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Ordre escombraria"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "No sembla un arxiu tar"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Bytes totals escrits"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Bytes totals llegits"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Bytes totals esborrats: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(conducte)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "El valor de record_size no és vàlid"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "No s'ha donat el nom de l'arxiu"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "No es pot verificar l'arxiu stdin/stdout"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "L'arxiu està comprimit. Feu servir l'opció %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "No es poden actualitzar els arxius comprimits"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Al principi de la cinta, se surt"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Massa errors, se surt"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Mida del registre = %lu bloc"
+msgstr[1] "Mida del registre = %lu blocs"
+
+#: src/buffer.c:913
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Bloc desalineat(byte %lu) a l'arxiu"
+msgstr[1] "Bloc desalineat(bytes %lu) a l'arxiu"
+
+#: src/buffer.c:990
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "No es pot tornar enrere al fitxer d'arxiu; potser no es pot llegir sense -i"
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek no s'ha aturat als límits d'un registre "
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: conté un número de volum invàlid"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Desbordament del número de volum"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Prepareu el volum #%d per %s i premeu retorn: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "Final del fitxer on s'esperava una resposta de l'usuari"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "AVÍS: L'arxiu és incomplet"
+
+#: src/buffer.c:1148
+#, 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 nom Dona el nom d'un fitxer nou pel següents (i següents) volum(s)\n"
+" q Interromp tar\n"
+" y Continua l'operació\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Engendra un interpret d'ordres\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Mostra aquesta ajuda\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "No hi ha cap volum nou; se surt.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "No s'ha especificat cap nom de fitxer. Torneu-ho a provar.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Entrada invàlida. Tecleja ? per mostrar l'ajuda.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "L'ordre %s ha fallat"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s possiblement continua en aquest volum: la capçalera conté un nom truncat"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s no continua a aquest volum"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s té una mida equivocada (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Aquest volum és fora de la seqüència (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "L'arxiu no està etiquetat per coincidir amb %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "El Volum %s no coincideix amb %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: El nom del fitxer és massa llarg per ser desat en una capçalera multivolum GNU. S'ha truncat"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "l'escriptura no ha acabat al límit d'un bloc"
+
+#: 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] "Només es pot llegir %lu de %lu byte"
+msgstr[1] "Només es poden llegir %lu de %lu bytes"
+
+#: src/compare.c:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "El contingut no coincideix"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Final de l'arxiu inesperat"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "El tipus de fitxer no coincideix"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "El mode no coincideix"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "L'identificador d'usuari no coincideix"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "L'identificador de grup d'usuaris no coincideix"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "La data de modificació no coincideix"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "La mida no coincideix"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "No s'ha enllaçat amb %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "L'enllaç tou no coincideix"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "El número de dispositiu no coincideix"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Verifiqueu "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Tipus de fitxer desconegut `%c', s'usa diff com si es tractés d'un fitxer normal"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "L'arxiu conté noms de fitxers amb els prefixes inicials esborrats."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "L'arxiu conté noms de fitxers transformats."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Pot ser que la verificació no pugui trobar els fitxers originals."
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "HA FALLAT LA VERIFICACIÓ: %d s'ha detectat una capçalera invàlida"
+msgstr[1] "HA FALLAT LA VERIFICACIÓ: %d s'han detectat capçaleres invàlides"
+
+#: src/compare.c:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Un sol bloc zero a %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: conté una etiqueta de directori de memòria cau %s; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "el valor %s està fora del rang%s %s..%s; es substitueix per %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "el valor %s està fora del rang %s %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "S'estan generant les capçaleres octals negatives"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: el nom del fitxer és massa llarg (màx %d); no s'aboca"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: el nom del fitxer és massa llarg (no es pot dividir); no s'aboca"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: el nom de l'enllaç és massa llarg; no s'aboca"
+
+#: src/create.c:1064
+#, 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: El fitxer s'encongeix %s byte; s'omple amb zero"
+msgstr[1] "%s: El fitxer s'encongeix %s bytes; s'omple amb zeros"
+
+#: src/create.c:1160
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: el fitxer es troba a un sistema de fitxers diferent; no s'aboca"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "els continguts no s'aboquen"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipus de fitxer desconegut; el fitxer s'ignora"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Falten els enllaços a %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: el fitxer no ha canviat; no s'aboca"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: el fitxer és l'arxiu; no s'aboca"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "el directori no s'aboca"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: el fitxer ha canviat mentre es llegia"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: sòcol ignorat"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: porta ignorada"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Es salta fins a la propera capçalera"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "S'esborra la no-capçalera de l'arxiu"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: marca horària inversemblantment antiga %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: la marca horària %s pertany %s s al futur"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inconsistència inesperada en crear el directori"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: S'ha canviat el nom del directori abans de poder extreure'n l'estat"
+
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Els fitxers contigus s'extreuen com fitxers normals"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Es prova d'extreure els enllaços simbòlics com enllaços durs"
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: No espot extreure -- el fitxer continua des d'un altre volum"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Nom de la capçalera inesperadament llarg"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Tipus de fitxer «%c» desconegut, s'extreu com un fitxer normal"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "L'actual %s és igual d'antic o més nou"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: No es pot fer la còpia de seguretat d'aquest fitxer"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "No es pot canviar el nom de %s a %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: El directori ha canviat de nom a partir de %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: El directori ha canviat de nom"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: El directori és nou"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Marca horària invàlida"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Modificació invalida del temps (segons)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Modificació invàlida del temps (nanosegons)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Número de dispositiu invàlid"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Número de node d'identificació invàlid"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Camp massa llarg en llegir el fitxer d'instantània"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Error de lectura del fitxer d'instantània"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Final de l'arxiu d'instantània inesperat"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Valor de camp inesperat del fitxer d'instantània"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Falta el terminador del registre"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Format del fitxer incremental erroni"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "No se suporta la versió del format incremental: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Directori d'abocament mal format: s'esperava «%c» i s'ha trobat %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Directori d'abocament mal format: «X» duplicada"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Directori d'abocament mal format: nom buit a «R»"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Directori d'abocament mal format: «T» no està  precedit de «R»"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Directori d'abocament mal format: nom buit a «T»"
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Directori d'abocament mal format: s'esperava «%c» però s'ha trobat el final de les dades"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Directori d'abocament mal format: no s'ha fet servir «X»"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "No es pot crear el directori temporal fent servir la plantilla %s"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: No es purga el directori: no se'n pot saber l'estat"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: el directori és en un dispositiu diferent: no es purga"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: S'elimina %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: No es pot esborrar"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: S'ometen"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloc %s: ** Bloc de NULs **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloc %s: ** Final del Fitxer **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "bloc %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Capçalera amb blancs on hi hauria d'haver un valor numèric %s"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "El valor octal de l'arxiu %.*s està fora del rang %s; s'assumeix el complement a dos"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "El valor octal de l'arxiu %.*s està fora del rang %s"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "L'arxiu conté capçaleres amb base 64 que estan esdevenint obsoletes"
+
+#: src/list.c:809
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "La cadena de signatura %s amb base 64 de l'arxiu està fora del rang %s"
+
+#: src/list.c:840
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "El valor amb base 256 de l'arxiu està fora del rang %s "
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:869
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "L'arxiu conté %.*s on hi hauria d'haver un valor numèric de tipus %s"
+
+#. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
+#: src/list.c:891
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "El valor %s de l'arxiu està fora del rang %s %s..%s"
+
+#: src/list.c:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " enllaç cap a %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tipus de fitxer desconegut %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Enllaç llarg--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nom Llarg--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Capçalera del volum--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Continua al byte %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Es crea el directori:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "No es pot trobar el directori de treball"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Es canvia el nom %s per %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: No es pot canviar el nom a %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Es torna a canviar el nom %s a %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: El fitxer s'ha esborrat abans de poder-lo llegir"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "procés descendent"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "canal d'intercomunicació"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Caràcters de patró de coincidència que es fan servir en noms de fitxers"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Feu servir --wildcards per habilitar els patrons de coincidència, o --no-wildcars per eliminar aquest avís."
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: No s'ha trobat a l'arxiu"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: No s'ha trobat cap coincidència a l'arxiu"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "L'etiqueta de l'arxiu no coincideix"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "No podeu fer servir la opció -C als llistats de fitxer amb --listed-incremental"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Només podeu fer servit una opció -C amb --listed-incemental"
+
+#: src/tar.c:81
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Ambdues opcions «-%s» i «-%s» necessiten la sortida estàndard"
+
+#: src/tar.c:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Format de fitxer invàlid"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "El format de l'arxiu és incompatible perquè requereix característiques de GNU"
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Estil de citació desconegut «%s». Feu servir «%s --quoting-style=help» per obtenir-ne una llista."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' desa molts fitxers agrupats en un sol arxiu de cinta o de disc, i pot recuperar fitxers individuals de l'arxiu.\n"
+"\n"
+"Exemples:\n"
+" tar -cf arxiu.tar foo bar # Crea l'arxiu.tar dels fitxers foo i bar.\n"
+" tar -tvf arxiu.tar # Fa una llista detallada dels fitxers que hi ha a l'arxiu.tar.\n"
+" tar -xf arxiu.tar # Extreu tots els fitxers de l'arxiu.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"El sufix de les còpies de seguretat és «~», a no ser que s'especifiqui amb --suffix o SIMPLE_BACKUP_SUFFIX.\n"
+"El control de versions pot ser especificat amb --backup or VERSION_CONTROL, els valors possibles son:\n"
+"\n"
+" none, off no facis mai còpies de seguretat\n"
+" t, numbered fes còpies de seguretat numerades\n"
+" nil, existing numerades si existeixen còpies de seguretat numerades, si no simples\n"
+" never, simple fes sempre còpies de seguretat simples\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Mode d'operació principal:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "Llista els continguts d'un arxiu"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "extreu fitxers d'un arxiu"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "crea un arxiu nou"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "cerca diferències entre un arxiu i el sistema de fitxers"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "afegeix fitxers al final d'un arxiu"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "només afegeix els fitxers més nous que les còpies dins l'arxiu"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "afegeix fitxers tar a un arxiu"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "esborra de l'arxiu (excepte en cintes magnètiques!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "prova l'etiqueta de volum de l'arxiu i surt"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Modificadors d'operació:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "tracta fitxers dispersos de manera eficient"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MENOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "estableix la versió del format de dispersió que cal fer servir (implica --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "tracta l'antic format incremental GNU de còpies de seguretat"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "tracta el nou format de còpies de seguretat incrementals de GNU"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "nivell de bolcat per l'arxiu llistat-incremental creat"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "no surtis si l'estat és diferent de zero quan trobis fitxers il·legibles "
+
+#: src/tar.c:429
+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 "processa només la ENÈssima aparició de cada fitxer a l'arxiu; aquesta opció només és vàlid amb una de les següents subcomandes --delete, --diff, --extract o --list i quan es dona una llista de fitxers ja sigui a la línia de comandes com amb l'opció -T; ENA val 1 per defecte"
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "l'arxiu pot buscar-se"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "L'arxiu no pot buscar-se"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "no comprovis el número de dispositiu quan creis arxius incrementals"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "comprova el número de dispositiu quan creis arxius incrementals (per defecte)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Control de sobreescriptura:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "intenta verificar l'arxiu després d'escriure'l"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "eliminar els fitxers després d'afegir-los a l'arxiu"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "no reemplacis els fitxers existents quan els extreguis"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "no reemplacis els fitxers existents que siguin més nous que les còpies de l'arxiu"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "sobreescriu els fitxers existents quan els extreguis"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "elimina cada fitxer abans d'extreure-hi a sobre"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "buida les jerarquies abans d'extreure el directori"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "conserva les metadades dels directoris existents"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "sobreescriu les metadades dels directoris existents quan s'extreguin (per defecte)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Selecciona la sortida del flux de dades:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "extreu els fitxers a la sortida estàndard"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "COMANDA"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "condueix els fitxers extrets a un altre programa"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ignora els codis de sortida dels processos fill"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "tracta els codis de sortida dels processos fills diferents de zero com a error"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Gestió dels atributs del fitxer:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "força NOM coma propietari dels fitxers afegits"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "força NOM com a grup pels fitxers afegits"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATA-O-FITXER"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "estableix mtime pels fitxers afegits des de DATA-O-FITXER"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "CANVIS"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "força CANVIS de mode (simbòlic) als fitxers que s'afegeixin"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "MÈTODE"
+
+#: src/tar.c:499
+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 "conserva les hores d'accés dels fitxers bolcats, ja sigui restaurant les hores després de llegir-los (MÈTODE='replace'; per defecte) o no posant primer les hores(MÈTODE='system')"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "no extreguis la data de modificació dels fitxers"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "intenta extreure els fitxers amb el mateix propietari que existeix a l'arxiu (per defecte pel superusuari)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "extreu el fitxer com a tu mateix com a propietari (per defecte pels usuaris ordinaris"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "fes servir sempre números pels noms de usuari/grup"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "extreu la informació dels permisos del fitxer (per defecte per al superusuari)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "fes servir els permisos especificats per l'usuari qua s'extreguin permisos de l'arxiu (per defecte per usuaris normals)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "ordena els noms a extreure per que coincideixin amb els de l'arxiu"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "el mateix que per -p i -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "no modifiquis els temps i els permisos dels directoris extrets fins que s'acabi l'extracció"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "cancel·la l'efecte de l'opció --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Selecció i canvi de dispositiu:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARXIU"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "fes servir el fitxer o dispositiu ARXIU"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "l'arxiu és local encara que tingui dos punts"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "fes servir la COMANDA rmt en comtes de rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "fes servir la COMANDA remota en comptes de rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "especifica la unitat i la densitat"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "crea/llista/extreu arxius de múltiples volums"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "canvia la cinta després d'escriure NÚMERO x 1024 bytes"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "executa seqüència al final de cada cinta (implica -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "fes servir/actualitza el número de volum del FITXER"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blocs als dispositius:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCS"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOCS x 512 bytes per registre"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "NÚMERO de bytes per registre, múltiple de 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignora els blocs posats a zero de l'arxiu (volen dir fi del fitxer)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "refés els blocs mentre els llegeixes (per conductes de 4.2BSD)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Selecció del format de l'arxiu: "
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "crea un arxiu del format especificat"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "El FORMAT és un dels següents"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "format tar de l'antiga versió 7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "format GNU tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "format GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "format POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "format POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "el mateix que pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "el mateix que --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "el mateix que --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "paraula clau[[:]=valor][,paraula clau[[:]=valor]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "controla les paraules clau de pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "crea l'arxiu amb el nom de volum TEXT. Quan es llista/s'extreu, utilitza TEXT com a patró global de noms de volum"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Opcions de compressió:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "utilitza el sufix de l'arxiu per determinar el programa de compressió"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "no fa servir el sufix de l'arxiu per determinar el programa de compressió"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROGRAMA"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtra mitjançant PROGRAMA (ha d'acceptar -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Selecció de fixter local:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "afegeix el FITXER a l'arxiu (útil si el nom comença per un guió)"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "DIRECTORI"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "Canvia al directori DIRECTORI"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "obté els noms que cal extreure u crear del FITXER"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T llegeix els noms acabats en nul, desactivar-ho amb -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "deshabilita l'efecte del la opció --null prèvia"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "treu les cometes dels noms dels fitxers llegits amb -T (per defecte)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "no treguis les cometes dels noms dels fitxers llegits amb -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "PATRÓ"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "exclou els fitxers que es donen com un PATRÓ"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "exclou els patrons que es llisten al FITXER"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "exclou el contingut dels directoris que continguin CACHEDIR.TAG, excepte el propi fitxer d'etiquetes"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "exclou tot el que estigui als directoris que continguin CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "exclou els directoris que continguin CACHEDIR.TAG "
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "exclou el contingut dels directoris que contenen el FITXER, excepte el FITXER mateix"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "exclou tot el que hi hagi al directori que contingui el FITXER"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "exclou els directoris que continguin el FITXER"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "exclou els directoris del sistema de control de versions"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "exclou els fitxers de còpia de seguretat i de blocat"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "no baixa automàticament als directoris"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "queda't al sistema de fitxers local quan creïs l'arxiu"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "incloure els subdirectoris (per defecte)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "no treguis les primeres «/» dels noms dels fitxers"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "segueix els enllaços simbòlics; arxiva i aboca els fitxers als quals apunten"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "segueix els enllaços durs; arxiva i aboca els fitxers als quals es refereix"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "NOM-DEL-MEMBRE"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "comença al membre NOM-DEL MEMBRE de l'arxiu"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "desa només els fitxers més nous que DATA-O-FITXER"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATA"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "compara la data i l'hora només quan les dades hagin canviat"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "fes una còpia de seguretat abans d'esborrar, tria el CONTROL de versions"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "CADENA"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "fa una còpia de seguretat abans d'esborrar, substitueix el sufix usual («~» si no s'ha definit la variable d'entorn SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Transformacions del nom del fitxer:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "treu NÚMERO components de la capçalera dels noms dels fitxers quan extreu"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "EXPRESSIÓ"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "fes servir l'EXPRESSIÓ de substitució sed per transformar els noms dels fitxers"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "opcions de concordança de nom de fitxer (afecta tant als patrons de inclusió com als d'exclusió):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "ignora diferències majúscules/minúscules"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "comprova els patrons del començament del nom del fitxer"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "comprova els patrons després de qualsevol «/» (per defecte a les exclusions) "
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "comprova diferències majúscules/minúscules (per defecte)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "fa servir comodins (per defecte a les exclusions)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "concordància exacte a les cadenes"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "els comodins no han de concordar amb «/»"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "els comodins han de concordar amb «/» (per defecte a les exclusions)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Sortida informativa:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "llista els fitxers processats detalladament"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "PARAULA CLAU"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "control d'avisos"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "mostra els missatges de progres cada NÚMERO registres (per defecte 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ACCIÓ"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "executa ACCIÓ a cada punt de comprovació"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "mostra un missatge si no s'aboquen tots els enllaços"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SENYAL"
+
+#: src/tar.c:751
+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 "mostra els bytes totals després de processar l'arxiu. Amb un argument - mostra els bytes totals quan es rep el SENYAL. Els senyals permesos són: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 i SIGUSR2. També s'accepta els noms sense el prefix SIG"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "mostra l'hora de modificació del fitxer en UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "Mostra l'hora del fitxer amb alta precisió"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "envia la sortida detallada al FITXER"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "mostra el número de bloc de dins l'arxiu a cada missatge"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "demana la confirmació per cada acció"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "mostra els valors per defecte de tar"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "quan es llisti o s'extregui, llista tots els directoris que no es corresponguin amb el criteri de cerca"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "mostra el nom del fitxer o de l'arxiu després de la transformació"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "ESTIL"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "estableix el nom de l'estil de citació; vegeu més avall una llista de valors vàlids per ESTIL"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "més caràcters de cometes des de CADENA"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "deshabilita els caràcters de cometa de la CADENA"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Opcions de compatibilitat:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "quan es crea, el mateix que --old-archive; quan s'extreu, el mateix que --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Altres opcions:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "desactiva l'ús de certes opcions potencialment perjudicials"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "No podeu especificar més d'un «-Acdtrux» o d'opció «--test-label»"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Opcions de compressió conflictives"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Nom del senyal desconegut: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "No s'ha trobat el fitxer de mostra de la data"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "S'està substituint %s pel format de data desconegut %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Opció %s: S'està tractant la data «%s» com a %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: la llista de fitxers ja s'ha llegit"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: la lectura del nom del fixter conté un caràcter nul"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtra l'arxiu a mitjançant %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Les opcions vàlides per la opció --quoting-style són:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Aquest* tar va per defecte en:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Factor de blocs invàlid"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Longitud de la cinta invàlida"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "valor invàlid del nivell d'increment"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Més d'una data del llindar"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "valor de la versió de la opció de dispersió invalid"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "No es permet l'ús de --atime-preserve=«system» en aquesta plataforma"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "El valor --checkpoint no és un enter"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Grup invàlid"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Mode invàlid donat a les opcions"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Número invàlid"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Propietari invàlid"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "La opció --preserve es obsoleta, en comptes d'això feu servir --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Mida del registre invàlida"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "La mida del registre ha de ser múltiple de %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Nombre d'elements invàlid"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Només es permet una opció --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Argument de densitat mal format: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Densitat desconeguda: «%c»"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Opcions «-[0-7][lmh]» no suportades per *aquest* tar"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[FITXER]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "L'opció antiga «%c» requereix un argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence no te sentit sense una llista de fitxers"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence no es pot utilitzar en el mode d'operació que ha requerit"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Per a múltiples arxius de fitxers es requereix l'opció «-M»"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "No es pot combinar --listed-incremental amb --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level no té sentit sense --listed-incremental"
+
+#: src/tar.c:2423
+#, 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'etiqueta del volum és massa llarga (el limit és %lu byte)"
+msgstr[1] "%s: l'etiqueta del volum és massa llarga (el limit és %lu bytes)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "No es poden verificar els arxius multi-volum"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "No es poden verificar els arxius comprimits"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "No es poden utilitzar arxius comprimits multi-volum"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "No es poden concatenar arxius comprimits"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option només es pot utilitzar en arxius POSIX"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "La llargada del volum no pot ser inferior que la mida del registre"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order no és compatible amb --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "S'està refusant covardament crear un arxiu buit"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Les opcions «-Aru» son incompatibles amb «-f -»"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Heu d'especificar una opció «-Acdtrux» o «--test-label»"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Se surt amb estat de fallida degut a errors prèvis"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: El fitxer s'encongeix %s byte"
+msgstr[1] "%s: El fitxer s'encongeix %s bytes"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "La paraula clau %s és desconeguda o encara no s'ha implementat"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "La marca horària està fora del rang permés"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "No s'ha pogut utilitzar el patró %s "
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "No s'ha pogut sobreescriure la paraula clau %s"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Capçalera estesa mal formada: falta la longitud"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Longitud de la capçalera estesa està fora del rang permès"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "La longitud de la capçalera estesa %*s està fora de rang"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Capçalera estesa mal formada: falta l'espai després de la longitud"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Capçalera estesa mal formada: falta el signe igual"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Capçalera estesa mal formada: falta el salt de línia"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "S'ignora la paraula clau desconeguda de la capçalera estesa «%s»"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "La paraula clau/parella de valors generada és massa llarga (paraula clau=%s, longitud=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "La capçalera estesa %s=%s està fora del rang %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Capçalera estesa mal formada: %s=%s invàlid"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Capçalera estesa mal formada: excedeix %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Capçalera estesa mal formada: %s invàlid, delimitador %c inesperat"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Capçalera estesa mal formada: %s invàlid: nombre de valors incorrecte"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: no és un temps d'espera vàlid"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: acció del punt de comprovació desconegut"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "escriu"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "llegeix"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Punt de comprovació d'escriptura %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Punt de comprovació de lectura %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile manipula els fitxers de dades al conjunt de programes de proves GNU paxutils.\n"
+"Les OPCIONS són:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Opcions de creació de fitxers:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "MIDA"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Crea un fitxer de la MIDA indicada"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Escriu al fitxer amb NOM, en comptes de la sortida estàndard"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Llegeix els noms dels fitxers del FITXER"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T llegeix els noms acabats en nul"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Omple el fitxer amb el PATRÓ indicat. El PATRÓ és «per defecte» o «zeros»"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Mida d'un bloc per fitxer dispers"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Genera un fitxer dispers. La resta de la línia de comandes indica el mapa del fitxer"
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "ÒFSET"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Cerca l'òfset donat abans d'escriure les dades"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Opcions de les estadístiques dels fitxers:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Mostra el contingut de l'estructura stat per cadascun dels fitxers indicats. El FORMAT per defecte és:"
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Opcions d'execució sincrónica:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPCIÓ"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Executa ARGS. Útil amb --checkpoint i i una entre --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Realitzar les accions donades (mirar avall) quan s'arrivi al punt de comprovació NÚMERO"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Defineix la data per a la següent opció --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Mostra els punts de comprovació executats i l'estat de sortida de la COMANDA"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Accions d'execució sincrónica. Aquestes son executades quan s'arriba al númerode punts de comprovació donat per --checkpoint"
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Talla el FITXER a la mida especificada amb la opció --length prèvia (o 0, si no s'ha especificat)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Afegeix MIDA bytes al FITXER. MIDA s'ha especificat amb la opció --length prèvia."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Actualitza les hores d'accés i modificació del FITXER"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Executa COMANDA"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Desfés l'enllaç del FITXER"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Mida invàlida: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Número fora de l'abast permés: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Mida negativa: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "Ha fallat la petició d'stat(%s)"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "mida del fitxer sol·licitada %lu, actual %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "el fitxer creat no és dispers"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Error en analitzar el número prop de «%s»"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Format de data desconegut"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGS...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "no es pot obrir «%s»"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "no es pot cercar"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "el nom del fitxer conté un caràcter nul"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "no es pot generar fitxers dispersos a la sortida estàndard, empreu la opció --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "màscara incorrecta (prop de «%s»)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Camp desconegut «%s»"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "no es pot definir el temps de «%s»"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "no es pot desfer l'enllaç «%s»"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "La comanda ha finalitzat amb èxit\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "La comanda ha fallat amb estat %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "La comanda ha finalitzat amb la senyal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "La comanda ha parat amb la senyal %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "La comanda ha abocat l'ànima\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Comanda finalitzada\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat requereix noms de fitxers"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: El directori s'ha esborrat abans de poder-lo llegir"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "No es pot desar al directori de treball"
diff --git a/po/.reference/ca.s1 b/po/.reference/ca.s1
new file mode 100644
index 00000000..42c20463
--- /dev/null
+++ b/po/.reference/ca.s1
@@ -0,0 +1 @@
+f9f6cbc9d1cecae0da1a92f1bcaee322eff054f0 -
diff --git a/po/.reference/cs.po b/po/.reference/cs.po
new file mode 100644
index 00000000..f076b07b
--- /dev/null
+++ b/po/.reference/cs.po
@@ -0,0 +1,3135 @@
+# 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, 2011.
+#
+# 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.
+#
+# 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)
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-13 19:24+0100\n"
+"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
+"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argument %s je pro %s neplatný"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argument %s není pro %s jednoznačný"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Platné argumenty jsou:"
+
+#: gnu/argp-help.c:149
+#, c-format
+msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
+msgstr "ARGP_HELP_FMT: hodnota %s je menší nebo rovna %s"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: parametr ARGP_HELP_FMT vyžaduje hodnotu"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: parametr ARGP_HELP_FMT musí být kladný"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Neznámý parametr ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Nepořádek v ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+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čů."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Použití:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr "nebo: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [PŘEPÍNAČ…]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Více informací získáte pomocí „%s --help“ nebo „%s --usage“.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Chyby v programu oznamujte na adrese %s (anglicky), připomínky k překladu na adrese <translation-team-cs@lists.sourceforge.net> (česky).\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Neznámá systémová chyba"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "vypíše tuto nápovědu"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "vypíše stručný návod na použití"
+
+# JMÉNO jako v příslušné položce nápovědy
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "JMÉNO"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "nastaví název programu"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEKUNDY"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "zastaví se na SEKUNDY sekund (implicitně 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "vypíše verzi programu"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(CHYBA PROGRAMU) Verze není známa!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Příliš mnoho argumentů\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(CHYBA PROGRAMU) Přepínač by měl být znám!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "chyba zápisu"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: přepínač „%s“ není jednoznačný\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, 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"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, 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"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: přepínač „--%s“ vyžaduje argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: nerozpoznaný přepínač „--%s“\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: nerozpoznaný přepínač „%c%s“\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: neplatný přepínač -- „%c“\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: přepínač vyžaduje argument -- %c\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: přepínač „-W %s“ není jednoznačný\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, 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"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: přepínač „-W %s“ vyžaduje argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "paměť vyčerpána"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "pracovní adresář nelze si nelze zapamatovat"
+
+#: gnu/openat-die.c:59
+#, c-format
+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.
+#.
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "„"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "“"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[aAyY].*"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN].*"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Zabaleno kým: %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+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.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+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.
+#: gnu/version-etc.c:108
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Napsali %s a %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\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"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Domovská stránka %s: <%s>\n"
+
+#: 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"
+
+#: 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"
+
+#. 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"
+
+#: 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
+#, 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Odstraňuje se úvodní „%s„ z názvů prvků"
+
+#: lib/paxnames.c:141
+#, 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:154
+msgid "Substituting `.' for empty member name"
+msgstr "Prázdný prvek názvu se nahradí „.“"
+
+#: lib/paxnames.c:155
+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 "K %s se nelze připojit: selhal překlad"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Vzdálený shell není možné spustit"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Směr posunu je mimo rozsah"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Chybný směr posunu"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Neplatná pozice posunu"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Pozice posunu je je mimo rozsah"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Neplatný počet bajtů"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Počet bajtů je mimo rozsah"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Předčasný konec souboru"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Neplatní kód operace"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operace není podporována"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Neočekávané argumenty"
+
+#: rmt/rmt.c:689
+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:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "ČÍSLO"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "nastaví úroveň ladění"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "SOUBOR"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "nastaví název souboru pro výstup ladění"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "„%s“ nelze otevřít"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "příliš mnoho argumentů"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Neznámý příkaz"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Toto pravděpodobně není tar archiv"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Celkem zapsáno bajtů"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Celkem přečteno bajtů"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Celkem smazáno bajtů: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(roura)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Chybná hodnota pro velikost záznamu"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Název archivu nebyl zadán"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Stdin/Stdout archiv nelze ověřit"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Archiv je komprimován. Použijte přepínač %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Komprimovaný archiv nelze aktualizovat"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Páska na začátku, končím"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Příliš mnoho chyb, končím"
+
+#: src/buffer.c:892
+#, 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 bloky"
+msgstr[2] "Velikost záznamu = %'lu bloků"
+
+#: src/buffer.c:913
+#, 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 bajty) v archivu"
+msgstr[2] "Nezarovnaný blok (%'lu bajtů) v archivu"
+
+#: src/buffer.c:990
+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ý"
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek se nezastavil na hranici záznamu"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: obsahuje neplatné číslo svazku"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "U čísla svazku nastalo přetečení"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Připravte svazek #%d pro archiv %s a stiskněte return:"
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "Místo uživatelské odpovědi byl zadán konec souboru"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "VAROVÁNÍ: Archiv je nekompletní"
+
+#: src/buffer.c:1148
+#, 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á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:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Vytvořit podshell\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Vypsat tuto nápovědu\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Není nový svazek; končím.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Název souboru nebyl zadán. Zkuste to znovu.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Neplatný vstup. Nápovědu obdržíte napsáním „?“ (otazníku).\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "příkaz %s selhal"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s možná pokračuje na tomto svazku: hlavička obsahuje zkrácený název"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nepokračuje na tomto svazku"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s je špatné délky (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Tento svazek není je mimo pořadí (%s − %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Pro vyhodnocení vzorku %s musí být archiv pojmenován"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Svazek %s neodpovídá vzorku %s"
+
+#: src/buffer.c:1674
+#, 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:1865
+msgid "write did not end on a block boundary"
+msgstr "zápis neskončil na konci hranice bloku"
+
+#: 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] "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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Obsahy se liší"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Neočekávaný konec archivu"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Typ souboru se liší"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Práva se liší"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "UID se liší"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "GID se liší"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Čas poslední modifikace se liší"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Velikost se liší"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Není odkazem na %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Symbolický odkaz se liší"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Číslo zařízení se liší"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Ověřuji "
+
+#: src/compare.c:464
+#, 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"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Archiv obsahuje názvy souborů, kterým byly odstraněny předpony."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Archiv obsahuje transformované názvy souborů."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Při kontrole může selhat nalezení původních souborů."
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Osiřelý nulový blok na pozici %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: obsahuje značku keše adresáře %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "hodnota %s typu %s je mimo rozsah %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Generuji záporné osmičkové hlavičky"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: název souboru je příliš dlouhý (max. %d); nezpracován"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: název souboru je příliš dlouhý (nelze jej rozdělit); nezpracován"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: název odkazu je příliš dlouhý; nezpracován"
+
+#: src/create.c:1064
+#, 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 %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:1160
+#, 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"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "obsah nezpracován"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Neznámý typ souboru; soubor ignorován"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Chybí odkazy na %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: soubor není změněn; neaktualizován"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: soubor je archiv; nearchivován"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "adresář nezpracován"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: soubor byl během čtení změněn"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: soket ignorován"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: dveře ignorovány"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Přeskakuji na další hlavičku"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Z archivu je mazáno to, co není hlavička"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: nemožně stará časová značka %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: časová značka %s je %s s v budoucnosti"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Neočekávaná inkonzistence, při vytváření adresáře"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Adresář byl přejmenován dříve, než bylo možné získat jeho stav"
+
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Souvisle uložené soubory rozbaluji jako obyčejné soubory"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Zkouším rozbalit symbolické odkazy jako pevné odkazy"
+
+#: src/extract.c:1365
+#, 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"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Neočekávaná hlavička dlouhého názvu"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Neznámý typ souboru „%c“, rozbalen jako normální soubor"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Současný soubor %s je novější nebo stejně starý"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Tento soubor nebylo možné zálohovat"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s nelze přejmenovat na %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Adresář byl přejmenován z %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Adresář byl přejmenován"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Adresář je nový"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Neplatný čas souboru"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Neplatný čas změny obsahu souboru (sekundy)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Neplatný čas změny obsahu souboru (nanosekundy)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Neplatné číslo zařízení"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Neplatné číslo i-uzlu"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Při čtení souboru snímku: položka je příliš dlouhá"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Chyba čtení uvnitř souboru snímku"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Neočekávaný konec souboru snímku"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Neočekávaná hodnota položky v souboru snímku"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Chybí uzávěr záznamu"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Chybný formát přírůstkového souboru"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Nepodporovaná verze přírůstkového formátu: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Poškozený dumpdir: očekáváno „%c“, ale nalezeno %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Poškozený dumpdir: „X“ duplikováno"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Poškozený dumpdir: prázdný název v „R“"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Poškozený dumpdir: „R“ není před „T“"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Poškozený dumpdir: prázdný název v „T“"
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Poškozený dumpdir: očekáváno „%c“, ale zjištěn konec dat"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Poškozený dumpdir: „X“ nebylo nikdy použito"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Podle šablony %s nelze vytvořit dočasný adresář"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Adresář nebude vyčištěn: nelze provést stat()"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: adresář je na jiném zařízení: nebude vyčištěn"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Mažu %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Nelze smazat"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Vynechávám"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok NUL **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Konec souboru **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:763
+#, 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"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Archiv obsahuje zastaralé base-64 hlavičky"
+
+#: src/list.c:809
+#, 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"
+
+#: src/list.c:840
+#, 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:869
+#, 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"
+
+#. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
+#: src/list.c:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " odkaz na %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " neznámý souborový typ %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Dlouhý odkaz--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Dlouhý název--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Hlavička svazku--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Pokračováno od %s bajtu--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Vytvářím adresář:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Nelze zjistit pracovní adresář"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Přejmenovávám %s na %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: nelze přejmenovat na %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Přejmenovávám %s zpět na %s\n"
+
+#: src/misc.c:850
+#, 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:871
+msgid "child process"
+msgstr "potomek"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "meziprocesový kanál"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "V názvech souborů se nachází žolíkové znaky"
+
+#: src/names.c:592
+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, nebo varování potlačte prostřednictvím --no-wildcards"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: V archivu nenalezen"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Požadovaný výskyt nebyl v archivu nalezen"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Název archivu se neodpovídá"
+
+#: src/names.c:949
+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:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "S --listed-incremental je dovolen pouze jediný přepínač -C"
+
+#: 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"
+
+#: src/tar.c:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Neplatný formát archivu"
+
+#: 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"
+
+#: 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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"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"
+" tar -xf archiv.tar # Rozbalí všechny soubory z archiv.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" 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"
+" 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:387
+msgid "Main operation mode:"
+msgstr "Hlavní operační režim:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "vypíše obsah archivu"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "vybalí soubory z archivu"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "vytvoří nový archiv"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "hledá rozdíly mezi archivem a systémem souborů"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "připojí soubory na konec archivu"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "připojí jen takové soubory, které jsou novější nežli kopie v archivu"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "připojí k archivu tarové soubory"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "smaže z archivu (ne na magnetických páskách!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "otestuje jmenovku archivního svazku a skončí"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Operační modifikátory:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "zachází s řídkými soubory efektivně"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "HLAVNÍ[.VEDLEJŠÍ]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "nastaví verzi řídkého formátu (implikuje --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "zpracuje přírůstkové zálohy starého formátu GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "zpracuje přírůstkové zálohy nového formátu GNU"
+
+#: src/tar.c:425
+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:427
+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:429
+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:435
+msgid "archive is seekable"
+msgstr "v archivu se lze posunovat"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "v archivu se lze posunovat"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "při vytváření přírůstkových archivů se nekontrolují čísla zařízení"
+
+#: src/tar.c:442
+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:448
+msgid "Overwrite control:"
+msgstr "Ovládání přepisování:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "pokusí se zkontrolovat archiv po té, co bude zapsán"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "odstraní soubory po té, co budou přidány do archivu"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "při rozbalovaní nenahrazuje existující soubory"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "při rozbalování existující soubory přepisuje"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "před vybalením každého souboru jej odstraní"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "před vybalením adresáře vytvoří prázdnou hierarchii"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "zachovává metadata existujících adresářů"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "při rozbalování přepisuje metadata existujících adresářů (implicitní)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Výběr výstupního proudu:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "soubory vybaluje na standardní výstup"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "PŘÍKAZ"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "vybalené soubory pošle rourou jinému programu"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ignoruje návratový kód potomků"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "nenulový návratový kód potomků považuje za chybu"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Zacházení s atributy souborů:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "vynutí JMÉNO jako vlastníka vkládaných souborů"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "vynutí JMÉNO jako skupinu vkládaných souborů"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATUM_NEBO_SOUBOR"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "nastaví čas změny obsahu vkládaných souborů podle DATA_NEBO_SOUBORU"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "ZMĚNY"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "vynutí (symbolický) mód ZMĚN (přístupová práva) vkládaným souborům"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODA"
+
+#: src/tar.c:499
+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:503
+msgid "don't extract file modified time"
+msgstr "nevybaluje čas změny obsahu souboru"
+
+#: src/tar.c:505
+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:507
+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:509
+msgid "always use numbers for user/group names"
+msgstr "pro jména uživatel/skupin vždy použije čísla"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "vybaluje informace o právech souborů (implicitní pro superuživatele)"
+
+#: src/tar.c:515
+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:517
+msgid "sort names to extract to match archive"
+msgstr "při rozbalování seřadí názvy tak, aby odpovídaly pořadí v archivu"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "stejné jako -p -s"
+
+#: src/tar.c:522
+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:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "zruší účinek přepínače --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Výběr a přepínání zařízení:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "pro archiv požije soubor zařízení ARCHIV"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "soubor archivu je místní, i když obsahuje dvojtečku"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "namísto příkazu rmt použije PŘÍKAZ"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "namísto rsh použije PŘÍKAZ"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "určuje mechaniku a hustotu"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "vytvoří/vypíše/rozbalí vícesvazkový archiv"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "po zapsaní ČÍSLO × 1024 bajtů vymění pásku"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "na konci každé pásky spustí skript (implikuje -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "použije/aktualizuje číslo svazku v SOUBORU"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Bloky zařízení:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKY"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOKŮ × 512 bajtů na záznam"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "ČÍSLO bajtů na záznam, násobek 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "v archivu ignoruje vynulované bloky (znamená EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "předělat bloky v průběhu čtení (pro roury na BSD 4.2)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Výběr formátu archivu:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMÁT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "vytvoří archiv daného formátu"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMÁT je jeden z následujících:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "starý formát taru V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "formát taru GNU <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "formát taru GNU 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "formát POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "formát POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "stejné jako pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "stejné jako --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "stejné jako --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "klíčové_slovo[[:]=hodnota][,klíčové_slovo[[:]=hodnota]]…"
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "řídicí klíčová slova paxu"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:609
+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:614
+msgid "Compression options:"
+msgstr "Přepínače komprese:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "kompresní program určí podle přípony archivu"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "kompresní program neurčí podle přípony archivu"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROGRAM"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "archiv protáhne PROGRAMEM (musí znát -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Výběr místního souboru:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "ADRESÁŘ"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "změní adresář na ADRESÁŘ"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "seznam jmen souborů na rozbalení nebo zabalení získá ze SOUBORU"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T čte názvy zakončené nulovým znakem, vypne -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "zruší účinek předchozího přepínače --null"
+
+#: src/tar.c:650
+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:652
+msgid "do not unquote filenames read with -T"
+msgstr "nezruší citování (escapování) názvů souboru načtených přes -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "VZOR"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "vynechá soubory, které odpovídají VZORU"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "vynechá soubory vyjmenované v SOUBORU"
+
+#: src/tar.c:658
+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:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "vynechá vše pod adresáři obsahujícími CACHEADR.ZNAČKA"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "vynechá adresáře obsahující CACHEADR.ZNAČKA"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "vynechá obsah adresářů obsahujících SOUBOR, vyjma SOUBORU samotného"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "vynechá vše pod adresáři obsahujícími SOUBOR"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "vynechá adresáře obsahující SOUBOR"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "vynechá adresáře systému správy verzí"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "vynechá soubory záloh a zámků"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "zabrání automatickému sestupu do adresářů"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "při tvorbě archivu se zdrží v místním systému souborů"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "sestupuje rekurzivně do adresářů (implicitní)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "neodstraní z názvů souborů úvodní „/“"
+
+#: src/tar.c:685
+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:687
+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"
+
+# část cesty (adresář)
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "SLOŽKA_NÁZVU"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "začne v archivu na složce SLOŽKA_NÁZVU"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "ukládá jen soubory novější než DATUM_NEBO_SOUBOR"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATUM"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "při změně dat porovná datum i čas"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "STRATEGIE"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "před odstraněním vytvoří záložní kopii za použití STRATEGIE"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "ŘETĚZEC"
+
+#: src/tar.c:698
+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:703
+msgid "File name transformations:"
+msgstr "Transformace názvů souborů:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "při rozbalování odřízne ČÍSLO úvodních složek z názvů souborů"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "VÝRAZ"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "názvy souborů transformuje pomocí nahrazovacího VÝRAZU sedu"
+
+#: src/tar.c:714
+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:717
+msgid "ignore case"
+msgstr "ignoruje velikost písmen"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "vzory se testují název souboru od začátku"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "vzory se testují po každém „/“ (implicitní u vyloučení)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "testování je citlivé na velikost (implicitní)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "použije žolíkové znaky (implicitní u vyloučení)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "testuje se přesný řetězec"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "žolíkové znaky nezahrnují „/“"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "žolíkové znaky zahrnují „/“ (implicitní u vyloučení)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informativní výstup:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "vypisuje zpracovávané soubory"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KLÍČOVÉ_SLOVO"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "řídí varování"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "zobrazuje zprávy o postupu každých ČÍSLO. záznam (implicitně 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "AKCE"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "v každém kontrolním bodu vykoná AKCI"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "hlásí, že nebyly zpracovány všechny odkazy"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNÁL"
+
+#: src/tar.c:751
+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:756
+msgid "print file modification times in UTC"
+msgstr "časy změn obsahu souborů vypisuje v UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "časy souborů vypisuje v plném znění"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "informativní výstup pošle do SOUBORU"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "každou zprávu opatří číslem bloku uvnitř archivu"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "na každou akcí žádá potvrzení"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "zobrazí implicitní argumenty taru"
+
+#: src/tar.c:769
+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:771
+msgid "show file or archive names after transformation"
+msgstr "zobrazuje názvy souborů a archivů po transformaci"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STYL"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "nastaví styl citování názvů; platné hodnoty STYLŮ nalezte níže"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "cituje navíc znaky z ŘETĚZCE"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "zakáže citování znaků z ŘETĚZCE"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Přepínače pro kompatibilitu"
+
+#: src/tar.c:787
+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:792
+msgid "Other options:"
+msgstr "Další přepínače:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "zakáže použití některých potenciálně nebezpečných přepínačů"
+
+#: src/tar.c:930
+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:940
+msgid "Conflicting compression options"
+msgstr "Odporující si kompresní přepínače"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Neznámý název signálu: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Soubor, ze kterého se má vzít datum a čas, nebyl nalezen"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Datum neznámého formátu %2$s nahrazuji %1$s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Přepínač %s: S datem „%s“ bude zacházeno jako s %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: seznam souborů již načten"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: načtený název souboru obsahuje nulový znak"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "archiv protáhne skrze filtr %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Pro přepínač --quoting-style jsou platné argumenty:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Implicitní přepínače *tohoto* taru:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Neplatný počet bajtů na záznam"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Neplatná délka pásky"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Chybná hodnota úrovně přírůstku"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Více než jedeno počáteční datum"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Neplatná hodnota verze řídkého formátu"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' není na této platformě podporován"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "hodnota --checkpoint není celé číslo"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Neplatná skupina"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Zadána chybná práva"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Neplatné číslo"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Neplatný vlastník"
+
+#: src/tar.c:1964
+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:1975
+msgid "Invalid record size"
+msgstr "Chybná velikost záznamu"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Velikost záznamu musí být násobek %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Neplatný počet prvků"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Povolen je jen jeden přepínač --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Neplatný argument hustoty: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Neznámá hustota: „%c“"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Přepínače „-[0-7][lmh]“ nejsou *tímto* tarem podporovány"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[SOUBOR]…"
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Přepínač „%c“ vyžaduje argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "bez seznamu souborů nemá --occurrence smysl"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence nelze v požadovaném režimu operace použít"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Více archivačních souborů vyžaduje přepínač „-M“"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental a --newer nelze kombinovat"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level bez --listed-incremental postrádá smysl"
+
+#: src/tar.c:2423
+#, 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 bajty)"
+msgstr[2] "%s: Název svazku je příliš dlouhý (limit je %'lu bajtů)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Vícesvazkový archiv není možné ověřit"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Komprimovaný archiv nelze ověřit"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Vícesvazkový komprimovaný archiv nelze vytvořit"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Komprimované archivy nelze zřetězit"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "Přepínač --pax-option lze použít jen na posixových archivech"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Délka svazku nemůže být kratší než délka záznamu"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order není slučitelný s --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Vytvoření prázdného archivu odmítnuto."
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Přepínače „-Aru“ jsou neslučitelné s přepínačem „-f -“"
+
+#: src/tar.c:2621
+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:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Končí se chybovým kódem, protože byly zaznamenány chyby"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Klíčové slovo %s není známo nebo ještě nebylo implementováno"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Časový údaj je mimo povolený rozsah"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Vzor %s nelze použít"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Klíčové slovo %s nelze přebít"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Chybná rozšířená hlavička: chybí délka"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Délka rozšířené hlavičky je mimo povolený rozsah"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Délka rozšířené hlavičky %*s je mimo rozsah"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Chybná rozšířená hlavička: po délce chybí bílé místo"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Chybná rozšířená hlavička: chybí znak rovná se"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Chybná rozšířená hlavička: chybí odřádkování"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ignoruje se neznámé klíčové slovo „%s“ rozšířené hlavičky"
+
+#: src/xheader.c:831
+#, 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:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "%s=%s v rozšířené hlavičce je mimo rozsah %s–%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Chybná rozšířená hlavička: %s=%s není platné"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Chybná rozšířená hlavička: nadbytečná %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Chybná rozšířená hlavička: neplatný %s: neočekávaný oddělovač %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Chybná rozšířená hlavička: neplatný %s: lichý počet hodnot"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: neplatný časový limit"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: neznámá akce kontrolního bodu"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "zápis"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Kontrolní bod čtení %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile pracuje s datovými soubory testovacího balíku GNU paxutils.\n"
+"PŘEPÍNAČE jsou:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Přepínače tvorby souboru:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "VELIKOST"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Vytvoří soubor zadané VELIKOSTI"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Místo na standardní výstup píše do souboru JMÉNO"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Názvy souborů čte ze SOUBORU"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T čte názvy zakončené nulovými znaky"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Velikost bloku pro řídké soubory"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Vytvoří řídký soubor. Zbytek příkazové řádku definuje mapu souboru."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "POZICE"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Před zápisem dat se přesune na zadanou POZICI"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Přepínače statistiky souboru:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Přepínače synchronního vykonávání:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "PŘEPÍNAČ"
+
+#: tests/genfile.c:164
+msgid "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:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Provede zadanou akci (vizte níže) při dosažení kontrolního bodu ČÍSLO"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Nastaví datum pro následující přepínač --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Zobrazuje prováděné kontrolní body a návratové kódy PŘÍKAZU"
+
+#: tests/genfile.c:178
+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:181
+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:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "Aktualizuje časy přístupu a změny obsahu SOUBORU"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Vykoná PŘÍKAZ"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Smaže (unlink) SOUBOR"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Neplatná velikost: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Číslo je mimo povolený rozsah: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Záporná velikost: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) selhalo"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "požadovaná délka souboru %'lu, aktuální %'lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "vytvořený soubor není řídký"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Chyba při rozebírání čísla poblíž „%s“"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Neznámý formát data"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENT…]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "„%s“ nelze otevřít"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "v souboru se nelze pohybovat"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "název souboru obsahuje nulový znak"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "nesprávná maska (poblíž „%s“)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Neznámá položka „%s“"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "Souboru „%s“ nelze nastavit čas"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "„%s“ nelze odstranit (unlink)"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Příkaz skončil úspěšně\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Příkaz selhal s kódem %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Příkaz skončil signálem %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Příkaz pozastaven signálem %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Příkaz skončil výpisem obrazu paměti\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Příkaz ukončen\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat potřebuje název souboru"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: Adresář smazán dříve než mohl být přečten"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Pracovní adresář nelze uchovat"
+
+#~ msgid "Cannot resolve hostname %s"
+#~ msgstr "Název počítače %s nelze přeložit"
+
+#~ 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"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "Komprimované nebo vzdálené archivy nelze použít"
+
+#~ msgid "tar (child)"
+#~ msgstr "tar (potomek)"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (prapotomek)"
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "VAROVÁNÍ: Chybí hlavička svazku"
+
+#~ msgid "Child returned status %d"
+#~ msgstr "Potomek vrátil status %d"
+
+#~ msgid "Member names contain `..'"
+#~ msgstr "Názvy souborů obsahují „..“"
+
+#~ msgid "%s: Member name contains `..'"
+#~ msgstr "%s: Název souboru obsahuje „..“"
+
+#~ msgid "Visible long name error"
+#~ msgstr "Viditelná chyba dlouhého názvu"
+
+#~ msgid "Device number out of range"
+#~ msgstr "Číslo zařízení je mimo rozsah"
+
+#~ msgid "Visible longname error"
+#~ msgstr "Viditelná chyba dlouhého názvu"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "Soubor %s přejmenován na %s"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ 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"
+
+#~ msgid "Missing file name after -C"
+#~ msgstr "Za -C chybí název souboru"
+
+#~ msgid "Copyright %d Free Software Foundation, Inc."
+#~ msgstr "Copyright %d Free Software Foundation, Inc."
+
+#~ 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 ""
+#~ " 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 textech\n"
+#~ "v souboru COPYING."
+
+#~ msgid "rmtd: Garbage command %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 nebo \n"
+#~ "disk. Z archivu dokáže rozbalit jak celé hierarchie souborů, tak i jednotlivé\n"
+#~ "soubory.\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"
+#~ " 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"
+
+#~ 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"
+#~ "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"
+
+#~ msgid ""
+#~ "\n"
+#~ "Operation modifiers:\n"
+#~ " -W, --verify attempt to verify the archive after writing it\n"
+#~ " --remove-files remove files after adding them to the archive\n"
+#~ " -k, --keep-old-files don't replace existing files when extracting\n"
+#~ " --overwrite overwrite existing files when extracting\n"
+#~ " -U, --unlink-first remove each file prior to extracting over it\n"
+#~ " --recursive-unlink empty hierarchies prior to extracting directory\n"
+#~ " -S, --sparse handle sparse files efficiently\n"
+#~ " -O, --to-stdout extract files to standard output\n"
+#~ " -G, --incremental handle old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " handle new GNU-format incremental backup\n"
+#~ " --ignore-failed-read do not exit with nonzero on unreadable 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 archivaci\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"
+#~ " -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"
+
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --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"
+#~ " 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/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"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device selection and switching:\n"
+#~ " -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+#~ " --force-local archive file is local even if has a colon\n"
+#~ " --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+#~ " -[0-7][lmh] specify drive and density\n"
+#~ " -M, --multi-volume create/list/extract multi-volume archive\n"
+#~ " -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+#~ " --new-volume-script=FILE same as -F FILE\n"
+#~ " --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 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"
+#~ " (zahrnuje i -M)\n"
+#~ " --new-volume-script=SOUBOR stejné jako -F SOUBOR\n"
+#~ " --volno-file=SOUBOR použije/aktualizuje číslo svazku v SOUBORu\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device blocking:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+#~ " --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+#~ " -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+#~ " -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 zbytek\n"
+#~ " (vhodné pro roury)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -o, --old-archive, --portability write a V7 format archive\n"
+#~ " --posix write a POSIX format archive\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -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í 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"
+
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -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í 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 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 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"
+
+#~ msgid ""
+#~ " -N, --newer=DATE only store files newer than DATE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed 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"
+#~ " data\n"
+#~ " --after-date=DATUM stejné jako -N\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --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"
+
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --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"
+
+#~ msgid ""
+#~ "\n"
+#~ "GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+#~ "is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+#~ "Support for POSIX is only partially implemented, don't count on it yet.\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*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"
+
+#~ msgid "Obsolete option, now implied by --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"
+
+#~ msgid "Obsolete option name replaced by --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"
+
+#~ msgid "Obsolete option name replaced by --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"
+
+#~ 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?"
+
+#~ msgid "Obsolete option name replaced by --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."
+
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "Za běhu programu nastala chyba"
+
+#~ msgid ""
+#~ "If a long option shows an argument as mandatory, then it is mandatory\n"
+#~ "for the equivalent short option also.\n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH of generated file\n"
+#~ " -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+#~ " --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"
+#~ "\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“"
diff --git a/po/.reference/cs.s1 b/po/.reference/cs.s1
new file mode 100644
index 00000000..4aa578ce
--- /dev/null
+++ b/po/.reference/cs.s1
@@ -0,0 +1 @@
+e7dc89f3084f25abb0353dd6f9f7b42948628fa8 -
diff --git a/po/.reference/da.po b/po/.reference/da.po
new file mode 100644
index 00000000..f4e13ca7
--- /dev/null
+++ b/po/.reference/da.po
@@ -0,0 +1,2620 @@
+# Danish messages for GNU tar.
+# Copyright (C) 1996 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+#
+# Claus Hindsgaul <claus_h@image.dk>, 2001.
+# Keld Jrn Simonsen <keld@keldix.com>, 2000-2001,2009,2010.
+# Keld Simonsen <keld@keldix.com>, 2010-2011.
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-04-12 10:18+0100\n"
+"Last-Translator: Keld Simonsen <keld@keldix.com>\n"
+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"Language: da\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"
+"X-Generator: Lokalize 1.0\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "ugyldigt argument %s for %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "flertydigt argument '%s' for %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Gyldige argumenter er:"
+
+#: 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 vrdi er mindre eller lig med %s"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: Parameter for ARGP_HELP_FMT krver en vrdi"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: Parameter fra ARGP_HELP_FMT skal vre positiv."
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Ukendt ARGP_HELP_FMT-parameter"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Skidt i ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Obligatoriske eller valgfri argumenter til lange flag er ogs obligatoriske eller valgfri for alle tilsvarende korte flag."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Brug:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " eller: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [FLAG...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Prv '%s --help' eller '%s --usage' for mere information.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Rapportr fejl til %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Ukendt systemfejl"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "vis denne hjlpetekst"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "vis en kort hjlpemeddelelse"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAVN"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "angiv progravnavnet"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "vent i SEK sekunder (standardvrdi 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "vis programversion"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMFEJL) Ingen version kendt!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: For mange argumenter\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMFEJL) Flag burde vre genkendt!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "skrivefejl"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: flag '%s' er flertydigt\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: flag '--%s' tillader ikke et argument\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: flag '%c%s' tillader ikke et argument\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: flag '--%s' krver et argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: ukendt flag '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: ukendt flag '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: ugyldigt flag -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: flag krver et argument -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: flag '-W %s' er flertydigt\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: flag '-W %s' tillader ikke et argument\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: flag '-W %s' krver et argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "hovedlager opbrugt"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "Kan ikke notere nuvrende arbejdskatalog"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "Kan ikke g tilbage til oprindeligt arbejdskatalog"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "'"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[jJyY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Pakket af %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Pakket af %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr ""
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Licens GPLv3+: GNU GPL version 3 eller senere <http://gnu.org/licenses/gpl.html>.\n"
+"Dette program er frit programmel. Du kan ndre og distribuere det.\n"
+"Der er ikke NOGEN SOM HELST GARANTI, i det omfang som lov tillader.\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Skrevet af %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:108
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Skrevet af %s og %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "Skrevet af %s, %s og %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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s\n"
+"og %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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s,\n"
+"%s og %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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s,\n"
+"%s, %s og %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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s,\n"
+"%s, %s, %s og %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"og %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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s og %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.
+#: 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 ""
+"Skrevet af %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s og andre.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Rapportr fejl til: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Rapportr %s fejl til: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s hjemmeside: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "%s hjemmeside: <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 "Generel brugerhjlp for GNU-programmel: <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: Funktionen %s fejlede"
+
+#. 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 lnke 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: Lsefejl ved byte %s ved lsning af %lu byte"
+msgstr[1] "%s: Lsefejl ved byte %s ved lsning 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: Lsefejl ved byte %s ved lsning af %lu byte"
+msgstr[1] "%s: Advarsel: Lsefejl ved byte %s ved lsning af %lu byte"
+
+#: lib/paxerror.c:259
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Kan ikke sge til %s"
+
+#: lib/paxerror.c:275
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Advarsel: Kan ikke sge til %s"
+
+#: lib/paxerror.c:284
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Kan ikke oprette symbolsk lnke 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Fjerner indledende '%s' fra medlemsnavne"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Fjerner indledende '%s' fra hrde lnkeml"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Erstatter tomme navne i arkivet med \".\""
+
+#: lib/paxnames.c:155
+msgid "Substituting `.' for empty hard link target"
+msgstr "Erstatter tomt ml for hrd lnke med \".\""
+
+#: lib/rtapelib.c:299
+#, c-format
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Tjeneste ikke tilgngelig"
+
+#: lib/rtapelib.c:303
+#, c-format
+msgid "stdin"
+msgstr "standard-ind"
+
+#: lib/rtapelib.c:306
+#, c-format
+msgid "stdout"
+msgstr "standard-ud"
+
+#: lib/rtapelib.c:429
+#, c-format
+msgid "Cannot connect to %s: resolve failed"
+msgstr "Kan ikke opkoble til %s: navneopslag mislykkedes"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Kan ikke eksekvere fjern skl"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Sgeretning udenfor interval"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Ugyldig sgeretning"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Ugyldig positioneringsvrdi"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Sgeposition udenfor interval"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Ugyldigt byteantal"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Byteantal udenfor interval"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "For tidlig filafslutning"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Ugyldig operationskode"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operation understttes ikke"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Uventede argumenter"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Styr en bndstation via accept af kommandoer fra en fjernproces"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NUMMER"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "st fejlsgningsniveau"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FIL"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "st fejlsgningsfilnavn"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "kan ikke bne %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "for mange argumenter"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Ugyldig kommando"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Dette ligner ikke et tar-arkiv"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Totalt antal byte skrevet"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Totalt antal byte lst"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Totalt antal byte slettet: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(datakanal)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Ugyldig vrdi for record_size"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Arkivnavn er ikke opgivet"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Kan ikke verificere standard-ind/standard-ud arkiver"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arkivet er komprimeret. Brug flaget %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Kan ikke opdatere komprimerede arkiver"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Ved begyndelsen af bndet, afslutter nu"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "For mange fejl, afslutter"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Poststrrelse = %lu blok"
+msgstr[1] "Poststrrelse = %lu blokke"
+
+#: src/buffer.c:913
+#, 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-justerede blokke (%lu byte) i arkiv"
+
+#: src/buffer.c:990
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Kunne ikke g tilbage i arkivfilen. Den kan vre ulselig uden -i"
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek stoppede ikke p en postgrnse"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: indeholder ugyldigt delarkivs-nummer"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Overlb p delarkiv-nummer"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Klargr delarkiv nummer %d for %s og tryk retur: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "Filafslutning hvor svar fra bruger var forventet"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "ADVARSEL: Arkivet er ufuldstndigt"
+
+#: src/buffer.c:1148
+#, 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 navn Giv et nyt filnavn for nste (og efterflgende) delarkiver\n"
+" q Afbryd tar\n"
+" y eller ny linje Fortst handling\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Start en ny skl\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Udskriv denne liste\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Intet nyt delarkiv; afslutter.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Filnavn ikke angivet, prv igen.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Ugyldigt inddata. Skriv ? for at f hjlp.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "'%s'-kommando mislykkedes"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s fortsttes muligvis i dette delarkiv: hoved indeholder afkortet navn"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s fortstter ikke i dette delarkiv"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s har forkert strrelse (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Dette delarkiv er ude af rkkeflge (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arkivet er ikke navngivet til at passe med %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Delarkivet '%s' stemmer ikke overens med %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: filnavnet er for langt til at gemmes i hovedet p et GNU-flerdelarkiv, afkortes"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "skrivning stoppede ikke p en blokgrnse"
+
+#: 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] "Kunne kun lse %lu af %lu byte"
+msgstr[1] "Kunne kun lse %lu af %lu byte"
+
+#: src/compare.c:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Indhold er forskelligt"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Uventet filslutning i arkivet"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Filtype er forskellig"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Modus er forskellig"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Bruger-ID er forskellig"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gruppe-ID er forskellig"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Modificeringstid er forskellig"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Strrelse er forskellig"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ikke lnket til %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Symbolsk lnke er forskellig"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Enhedsnummer er forskellig"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Verificr "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Ukendt filtype '%c', diff'et som en almindelig fil"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arkivet indeholder filnavne med indledende prefixer borttaget."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Arkiv indeholder transformerede filnavne."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Verificering kan mislykkes med at finde originalfiler."
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "VERIFICERINGSFEJL: %d ukendt hoved fundet"
+msgstr[1] "VERIFICERINGSFEJL: %d ukendte hoveder fundet"
+
+#: src/compare.c:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "En enkeltstende nulblok ved %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: indeholder et cachekatalog-mrke %s; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "vrdi %s ud af %s interval %s..%s; erstatter %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "vrdi %s ud af %s interval %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Genererer negative oktale hoveder"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: filnavnet er for langt (max %d); ikke arkiveret"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: filnavnet er for langt (kan ikke opdeles); ikke arkiveret"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: lnkenavn er for langt; ikke arkiveret"
+
+#: src/create.c:1064
+#, 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 nul"
+msgstr[1] "%s: Filen formindsket med %s byte, fylder ud med nuller"
+
+#: src/create.c:1160
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: fil er p et andet filesystem; ikke arkiveret"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "indholdet ikke arkiveret"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Ukendt filtype; filen blev ignoreret"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Mangler lnke til %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: fil er undret; ikke arkiveret"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: fil er det samme som arkivet; ikke arkiveret"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "katalog ikke arkiveret"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: Fil ndredes mens vi lste den"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: sokkel ignoreret"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: dr ignoreret"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Hopper til nste hoved"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Sletter ikke-hoved fra arkivet"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: usandsynligt gammelt tidsstempel %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: tidsstempel %s er %s sekunder ud i fremtiden"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Uventet uoverensstemmelse ved oprettelse af katalog"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Katalog omdbt fr dets status kunne blive udpakket"
+
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Udpakker sammenhngende filer som almindelige filer"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Forsger at udpakke symbolske lnker som hrde lnker"
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Kan ikke udpakke -- filen er fortsat fra et andet delarkiv"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Uventet langt filnavnshoved"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Ukendt filtype '%c', udpakket som en almindelig fil"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Nuvrende %s er nyere eller lige s gammel"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Kunne ikke sikkerhedskopiere denne fil"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Kan ikke omdbe %s til %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Kataloget er blevet omdbt fra %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Kataloget er blevet omdbt"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Kataloget er nyt"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Ugyldigt tidsstempel"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Ugyldig modifikationstid (sekunder)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Ugyldig modifikationstid (nanosekunder)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Ugyldigt enhedsnummer"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Ugyldigt inode-nummer"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Felt for langt da jebliksfil lstes"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Lsefejl i jebliksfil"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Uventet filslutning i jebliksfil"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Uventet feltvrdi i jebliksfil"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Postafslutning mangler"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Fejlagtigt inkrementelt filformat"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Formatversion for inkrementel sikkerhedskopiering understttes ikke: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Fejlagtigt dumpkatalog: forventede \"%c\" men fandt %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Fejlagtigt dumpkatalog: \"X\" duplikeret"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Fejlagtigt dumpkatalog: tomt navn i \"R\""
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Fejlagtigt dumpkatalog: \"T\" foregs ikke af \"R\""
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Fejlagtigt dumpkatalog: tomt navn i \"T\""
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Fejlagtigt dumpkatalog: forventede \"%c\" men fandt slut p data"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Fejlagtigt dumpkatalog: \"X\" bruges aldrig"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "kan ikke oprette midlertidigt katalog ved brug af skabelonen %s"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Renser ikke katalog: kunne ikke tage status"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: fil er p et andet filesystem: sletter ikke"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Sletter %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "Kan ikke slette %s"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Udelader"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok med NULler **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Slut p fil **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Blank-tegn i hovedet hvor numerisk %s vrdi var forventet"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Oktal vrdi %.*s i arkiv er udenfor %s interval; antager to-komplement"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Oktal vrdi %.*s i arkiv er udenfor %s interval"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arkiv indeholder forldede base-64 hoveder"
+
+#: src/list.c:809
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Base-64 streng med fortegn %s i arkiv er udenfor %s interval"
+
+#: src/list.c:840
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Base-256 vrdi i arkiv er udenfor %s interval"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:869
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Arkiv indeholder %.*s hvor numerisk %s-vrdi var forventet"
+
+#. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
+#: src/list.c:891
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Arkiv vrdi %s er udenfor %s interval %s..%s"
+
+#: src/list.c:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " lnke til %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " ukendt filtype %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Lang lnke--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Langt navn--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Delarkivhoved--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Fortsat ved byte %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Opretter katalog:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Kan ikke finde arbejdskatalog"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Omdber %s til %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Kan ikke omdbe til %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Omdber %s tilbage til %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fil fjernet fr vi lste den"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "underproces"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "mellemproces-kanal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Mnstermatchningstegn bruges i filnavne"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Brug --wildcards for at aktivere mnstermatchning, eller --no-wildcards for at undertrykke denne advarsel"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Ikke fundet i arkivet"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Krvet forekomst blev ikke fundet i arkivet"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Arkivetiket stemmer ikke overrens"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "At bruge -C-flaget i en filliste er ikke tilladt med --listed-incremental"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Kun t -C-flag er tilladt med --listed-incremental"
+
+#: 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: ugyldigt arkivformat"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU-funktioner forsgt p inkompatibelt arkiv-format"
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Ukendt citeringsstl \"%s\". Prv \"%s --quoting-style=help for at f en liste."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' gemmer mange filer sammen i et enkelt disk- eller bnd-arkiv, og kan gendanne individuelle filer fra arkivet.\n"
+"\n"
+"Eksempler:\n"
+" tar -cf arkiv.tar foo bar # Skab arkiv.tar fra filerne foo og bar.\n"
+" tar -tvf arkiv.tar # Vs alle filer i arkiv.tar udfrligt.\n"
+" tar -xf arkiv.tar # Udpak alle filer fra arkiv.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Suffikset for sikkerhedskopiering er '~', med mindre det er sat med --suffix\n"
+"eller SIMPLE_BACKUP_SUFFIX Versionskontrollen kan sttes med --backup eller\n"
+"VERSION_CONTROL, vrdier er:\n"
+"\n"
+" none, off lav aldrig sikkerhedskopier\n"
+" t, numbered lav nummererede sikkerhedskopier\n"
+" nil, existing nummererede, dersom nummererede sikkerhedskopier eksisterer,\n"
+" ellers simple\n"
+" never, simple lav altid simple sikkerhedskopier\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Hovedoperationstilstand:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "vis indholdet af et arkiv"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "udpak filer fra et arkiv"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "opret et nyt arkiv"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "find forskelle mellem filsystemet og arkivet"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "tilfj filer til slutningen af et arkiv"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "tilfj kun filer som er nyere end dem i arkivet"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "tilfj indholdet i tar-arkivfiler til et arkiv"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "fjern fra arkivet (ikke p magnetbnd!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "verificr arkivets delarkivnavn og afslut derefter."
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "ndringer til handling:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "hndtr filer med huller effektivt"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "VRE[.NEDRE]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "angiv hvilken formatversion som skal hndtere filer med huller (implicerer --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "hndtr det gamle GNU-format for inkrementel sikkerhedskopiering"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "hndtr det nye GNU-format for inkrementel sikkerhedskopiering"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "dumpniveau for \"listed-incremental\" arkiv"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "afslut ikke med fejlslutstatus p.g.a. filer, der ikke kan lses"
+
+#: src/tar.c:429
+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 "behandl kun forekomst NUMMER af hver fil i arkivet. Dette flag er kun gyldigt med en af underkommandoerne --delete, --diff, --extract eller --list og nr en liste af filer angives enten p kommandolinjen eller med flaget -T. Standardvrdi for NUMMER er 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "arkivet er sgbart"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "arkivet er ikke sgbart"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "kontrollr ikke enhedsnumre nr inkrementelle arkiver oprettes"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "kontrollr enhedsnumre nr inkrementelle arkiver oprettes (standardvrdi)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Kontrollr overskrivning:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "forsg at verificere arkivet efter det blev skrevet"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "fjern filer efter de blev tilfjet til arkivet"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "erstat ikke eksisterende filer ved udpakning"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "erstat ikke eksisterende filer som er nyere end de, som findes i arkivet"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "overskriv eksisterende filer ved udpakning"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "fjern hver eksisterende fil inden en ny udpakkes oven i den"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "tm kataloghierarkier fr udpakning af katalog"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "bevar eksisterende katalogers metadata"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "overskriv metadata for eksisterende kataloger ved udpakning (standardvrdi)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Vlg uddatastrm:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "udpak filer til standard-ud"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "KOMMANDO"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "udpak filer til standard input til et andet program"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ignorr barneprocessers slutstatus"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "behandl slutstatus fra barneprocesser bortset fra 0 som fejl"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Hndtering af filattributter:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "st NAVN som ejer for tilfjede filer"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "st NAVN som gruppe for tilfjede filer"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATO-ELLER-FIL"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "st modificeringstid p tilfjede filer fra DATO-ELLER-FIL"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "RETTIGHEDER"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "st (symbolske) RETTIGHEDER for tilfjede filer"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODE"
+
+#: src/tar.c:499
+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 "bevar accesstider p arkiverede filer, enten ved at genskabe tiderne efter lsning (METODE=\"replace\", standardvrdi) eller ved at ikke stte tiderne overhovedet (METODE=\"system\")"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "udpak ikke filers modificeringstid"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "forsg at udpakke filer til samme ejere som i arkivet (standardvrdi for superbrugeren)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "udpak filer med dig selv som ejer (standardvrdi for almindelige brugere)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "brug altid tal for bruger- og gruppnavn"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "udpak information om filrettigheder (standardvrdi for superbrugeren)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "anvend brugerens umask nr rettigheder udpakkes fra arkivet (standardvrdi for almindelige brugere)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "sortr navne som skal udpakkes s de passer med arkivet"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "samme som bde -p og -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "udst stning af modifikationstider og rettigheder p udpakkede kataloger til slutningen p arkivudpakningen."
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "fjern effekten af flaget --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Enhedsvalg og enhedsskift:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARKIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "brug arkivfil eller enhed ARKIV"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "arkivfilen er lokal selv om navnet har et kolon"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "brug KOMMANDO i stedet for rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "brug ekstern KOMMANDO i stedet for rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "angiv enhed og densitet"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "opret/vis/udpak et flerdelarkiv"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "skift bnd efter at NUMMER x 1024 byte er skrevet"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "kr kommandofil ved slutningen af hvert bnd (flaget -M sttes ogs)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "brug/opdatr delarkivnummer i FIL"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blokhndtering:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOK"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOK x 512 byte per post"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "ANTAL byte per post, deleligt med 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignorr blok med kun nultegn (betyder filslut)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "lav nye blokke ved lsning (for 4.2BSD-datakanaler)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Valg af arkivformat:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "opret et arkiv med det angivne format"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT er et af flgende:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "gammelt V7-format"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU-format for tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "Format fra GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) format"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) format"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "samme som pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "samme som --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "samme som --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "ngleord[[:]=vrdi][,ngleord[[:]=vrdi]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "angiv ngleord for pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEKST"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "opret et arkiv med delarkivnavnet TEKST. Ved visning/udpakning er TEKST et sklmnster (\"globbing\") for delarkivnavn"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Komprimeringsflag:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "brug arkivsuffix til at bestemme komprimeringsprogrammet"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "brug ikke arkivsuffix til at bestemme komprimeringsprogrammet"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtrr med PROG (skal acceptere -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Lokalt filvalg:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "tilfj angivet FIL til arkivet (brugbart hvis FIL begynder med \"-\")"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "KATALOG"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "g til arbejdskatalog KATALOG"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "hent navne at udpakke eller oprette fra FIL"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T lser navne adskilt med nultegn, deaktivr -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "fjern effekten af foregende --null-flag"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "afcitr filnavne som blev lst med -T (standardvrdi)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "afcitr ikke filnavne som blev lst med -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MNSTER"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "udelad filer som matcher MNSTER"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "udelad filer som matcher mnster listet i FIL"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "udelad indholdet i kataloger som indeholder CACHEDIR.TAG, undtagen mrkefilen CACHEDIR.TAG selv"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "udelad alt i kataloger som indeholder CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "udelad kataloger som indeholder CACHEDIR.TAG"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "udelad indholdet i kataloger som indeholder FIL, undtagen FIL selv"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "udelad alting i kataloger som indeholder FIL"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "udelad kataloger som indeholder FIL"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "udelad kataloger fra versionshndteringssystemer"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "udelad sikkerhedskopier og lsefiler"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "g ikke ned i kataloger automatisk"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "skift ikke filsystem nr arkivet oprettes"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "g rekursivt ned i kataloger (standardvrdi)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "fjern ikke indledende '/' fra filnavne"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "flg symbolske lnker, arkivr filerne de peger p"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "flg hrde lnker, arkivr filerne de peger p"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "MEDLEMSNAVN"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "begynd med medlem MEDLEMSNAVN i arkivet"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "arkivr kun filer nyere end DATO-ELLER-FIL"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATO"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "sammenlign kun dato og tid for datandringer"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "KONTROL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "lav sikkerhedskopier fr fjernelse, vlg type af versionshndtering"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRENG"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "lav sikkerhedskopier fr fjernelse, erstat den normale sikkerhedskopiendelse (\"~\" hvis ikke ndret med miljvariablen SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Filnavnstransformationer:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "fjern ANTAL indledende komponenter fra filnavne ved udpakning"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "UDTRYK"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "brug sed's erstatnings-UDTRYK for at transformere filnavne"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Flag for match af filnavne (pvirker bde ekskluderings- og inkluderingsmnstre):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "ingen forskel p store og sm bogstaver"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "mnstre skal matche med begyndelsen p filnavne"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "mnstre matches efter \"/\" i filnavne (standardvrdi ved ekskludering)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "match store og sm bogstaver forskelligt (standardvrdi)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "brug jokertegn (standardvrdi for ekskludering)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "ordret strengsammenligning"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "jokertegn matcher ikke \"/\""
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "jokertegn matcher \"/\" (standardvrdi for ekskludering)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informativ udskrift:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "vs navne p alle filer som bliver behandlet"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "NGLEORD"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "advarselskontrol"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "vis forlbsmeddelelser efter hver gruppe af ANTAL poster (standardvrdi 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "HANDLING"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "udfr HANDLING ved hvert kontrolpunkt"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "vis en meddelelse hvis ikke alle lnker bliver arkiveret"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "skriv totalt antal byte efter arkivet er blevet behandlet. Med et argument - skrives totalt antal byte nr SIGNAL levereres. Tilladte signaler er: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 coh SIGUSR2. Navne uden SIG-prfix accepteres ogs."
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "vis filers modificeringstid i UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "vis fuld oplsning p filtider"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "send informative meddelelser til FIL"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "vis bloknummer i arkivet for hver meddelelse"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "bed om bekrftelse for hver handling"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "vis standardvrdier for \"tar\""
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "ved visning eller udpakning vises hvert katalog som ikke matcher sgekriterium"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "vis fil- eller arkivnavne efter transformering"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STL"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "st citatstl for navne. Se nedenfor for gyldige vrdier p STL."
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "citr ogs tegn i STRENG"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "citr ikke tegn fra STRENG"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Kompatibilitetsflag:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "ved oprettelse det samme som --old-archive; ved udpakning det samme som --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Andre flag:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "begrns brugen af potentielt farlige flag"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Du kan ikke angive mere end et af '-Acdtrux' eller `--test-label' flagene"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Konflikt i komprimeringsflag"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Ukendt signalnavn: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Tidsfil blev ikke fundet"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Erstatter %s for ukendt dato-format %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Flag %s: Behandler tidsangivelse \"%s\" som %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: filliste allerede lst"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: filnavnet som lstes indeholder nultegn"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtrr arkivet igennem %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Gyldige argumenter til flaget --quoting-style er:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Denne* tar har standardvrdierne:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Ugyldig blokfaktor"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Ugyldig bndlngde"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Fejlagtig vrdi for inkrementelt niveau"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Mere end n grnse-dato"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Ugyldig version for filer med huller"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve=\"system\" understttes ikke p denne platform"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint-vrdien er ikke et heltal"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Ugyldig gruppe"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Ugyldig modus angivet i flag"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Ugyldigt nummer"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Ugyldig ejer"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Flaget --preserve er forldet, brug --preserve-permissions --preserve-order i stedet"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Ugyldig poststrrelse"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Poststrrelse skal vre deleligt med %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Ugyldigt antal elementer"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Kun t --to-command flag tilladt"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Ugyldig densitetsangivelse: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Ukendt densitet: '%c'"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Flagene '-[0-7][lmh]' understttes ikke af *denne* implementering af tar"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[FIL]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Gammelt flag '%c' behver et argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence er meningsls uden en filliste"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence kan ikke bruges i den nskede operationstilstand."
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Ved flere arkivfiler krves '-M'-flaget"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Kan ikke kombinere --listed-incremental med --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level er meningsls uden --listed-incremental"
+
+#: src/tar.c:2423
+#, 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: etiket p delarkiv er for lang (grnse er %lu byte)"
+msgstr[1] "%s: etiket p delarkiv er for lang (grnse er %lu byte)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Kan ikke verificere arkiv som gr over flere delarkiver"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Kan ikke verificere komprimerede arkiver"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Kan ikke bruge komprimerede arkiver som gr over flere delarkiver"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Kan ikke sammenlgge (konkatenere) komprimerede arkiver"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option kan kun bruges p POSIX-arkiver"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Delarkivlngden kan ikke vre mindre end poststrrelsen"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order er ikke kompatibel med --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Ngter stdigt at oprette et tomt arkiv"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Flagene '-Aru' er inkompatible med '-f -'"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Du skal angive et af '-Acdtrux' eller '--test-label' flagene"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Afslutter med fejlstatus p grund af tidligere fejl"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Ngleordet %s er ukendt eller ikke implementeret endnu"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Tidsstempel udenfor tilladt interval"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Mnster %s kan ikke bruges"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Ngleord %s kan ikke erstattes"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Fejlagtigt udvidet hoved: lngden mangles"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Lngde p udvidet hoved er udenfor gyldigt interval"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Lngde %*s p udvidet hoved er udenfor gyldigt interval"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Fejlagtigt udvidet hoved: blanktegn efter lngdangivelse mangles"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Fejlagtigt udvidet hoved: ligmedtegn mangles"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Fejlagtigt udvidet hoved: nylinje mangles"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ignorerer ngleord \"%s\" i udvidet hoved"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Genereret ngle/vrdi-par er for langt (ngle=%s, lngde=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Udvidet hoved %s=%s er udenfor intervallet %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Fejlagtigt udvidet hoved: ugyldig %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Fejlagtigt udvidet hoved: for mange %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Fejlagtigt udvidet hoved: ugyldigt %s: uventet skilletegn %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Fejlagtigt udvidet hoved: ugyldigt %s: ulige antal vrdier"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: ugyldig tidsudlb"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: ukendt kontrolpunktshandling"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "skrive"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "lse"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Skrivekontrolpunkt %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Lsekontrolpunkt %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile bearbejder datafiler i testsuiten for GNU paxutils.\n"
+"FLAG er:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Flag for filoprettelse:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "STRRELSE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Opret en fil med angivet STRRELSE"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Skriv til filen NAVN i stedet for til standard-ud"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Ls filnavne fra FIL"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T lser navne adskilte med nultegn"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Fyld filen med det angivne MNSTER. MNSTER er 'default' eller 'zeros'"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Strrelse af en blok for filer med huller"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Generr fil med huller. Resten af kommandolinjen giver filmapningen."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "POSITION"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Flyt til given position inden data skrives"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Flag for filstatistik:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Vs indholdet i \"struct stat\" for hver given fil. Standardvrdi p FORMAT er:"
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Flag for synkron udfrelse:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "FLAG"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Udfr ARGUMENTER. Nyttigt ved --checkpoint og en af --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Udfr angivet handling (se nedenfor) nr kontrolpunkt NUMMER ns"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "St dato for nste --touch flag"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Vs udfrte kontrolpunkter og slutstatus p KOMMANDO"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Synkront udfrte handlinger. Disse udfres nr kontrolpunktnummeret givet med flaget --checkpoint ns."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Afkort FIL til strrelsen givet med det foregende --length flag (eller 0 hvis det ikke er angivet)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Tilfj STRRELSE antal byte til FIL. STRRELSE er givet med foregende --length flag."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Opdatr acces- og modifikationstider for FIL"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Udfr KOMMANDO"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Fjern (unlink) FIL"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Ugyldig strrelse %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Nummer udenfor tilladt interval: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negativ strrelse: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "status (stat) kunne ikke tages p %s"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "nsket fillngde %lu, virkelig %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "oprettet fil har ikke huller"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Fejl ved fortolkning af tal nr \"%s\""
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Ukendt datoformat"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENTER...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "kan ikke bne '%s'"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "Kan ikke sge"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "filnavnet indeholder nultegn"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "kan ikke oprette filer med huller til standard-ud, brug flaget --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "fejlagtig maske (nr \"%s\")"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Ukendt felt '%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "kan ikke stte tid p \"%s\""
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "kan ikke fjerne (unlink) \"%s\""
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Kommandoen afsluttedes uden fejl\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Kommandoen mislykkedes med slutstatus %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Kommandoen termineredes af signal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Kommandoen stoppedes af signal %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Kommandoen dumpede hukommelsen\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Kommandoen afsluttedes\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat krver filnavne"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: Katalog fjernet fr vi lste det"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Kan ikke gemme arbejdskatalog"
diff --git a/po/.reference/da.s1 b/po/.reference/da.s1
new file mode 100644
index 00000000..737f77f2
--- /dev/null
+++ b/po/.reference/da.s1
@@ -0,0 +1 @@
+3ac2772033083eab83b42887683ee738bf353b49 -
diff --git a/po/.reference/de.po b/po/.reference/de.po
new file mode 100644
index 00000000..815756d5
--- /dev/null
+++ b/po/.reference/de.po
@@ -0,0 +1,2730 @@
+# German messages for GNU tar.
+# This file is distributed under the same license as the tar package.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995?
+# Karl Eichwalder <ke@ke.central.de>, 1996
+# Christian Kirsch <ck@held.mind.de>, 1996, 2001
+# Michael Piefel <piefel@informatik.hu-berlin.de>, 2003, 2006, 2007, 2008, 2009, 2010, 2011
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-14 21:35+0100\n"
+"Last-Translator: Michael Piefel <piefel@informatik.hu-berlin.de>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "ungültiges Argument %s für %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "mehrdeutiges Argument %s für %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Zulässige Argumente sind:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: unbekannter ARGP_HELP_FMT-Parameter"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Müll in ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Erforderliche oder optionale Argumente für lange Optionen sind ebenso erforderlich bzw. optional für die entsprechenden Kurzoptionen."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Aufruf:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " oder: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [OPTION...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "„%s --help“ oder „%s --usage“ gibt weitere Informationen.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Unbekannter Systemfehler."
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "diese Hilfe ausgeben"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "eine kurze Benutzungsübersicht ausgeben"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAME"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "den Programmnamen setzen"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "für SEK Sekunden hängenbleiben (Voreinst.: 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "Programmversion ausgeben"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMMFEHLER) Keine Version bekannt!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Zu viele Argumente\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMMFEHLER) Option hätte erkannt werden müssen!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "Schreibfehler"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: Option „%s“ ist mehrdeutig\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: Option „--%s“ erlaubt keinen Parameter\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: Option „%c%s“ erlaubt keinen Parameter\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: Option „--%s“ benötigt einen Parameter\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: Unbekannte Option „--%s“\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: Unbekannte Option „%c%s“\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: Ungültige Option -- „%c“\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: Option benötigt einen Parameter -- „%c“.\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: Option „-W %s“ ist mehrdeutig\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: Option „-W %s“ erlaubt keinen Parameter\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: Option „-W %s“ benötigt einen Parameter\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "Kein Speicher mehr"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "Kann Arbeitsverzeichnis nicht aufzeichnen."
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "Konnte nicht zu ursprünglichem Arbeitsverzeichnis zurückkehren."
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "„"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "“"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yYjJ]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Paketiert von %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Paketiert von %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"License GPLv3+: GNU GPL Version 3 oder später <http://gnu.org/licenses/gpl.html>\n"
+"Dies ist freie Software: Sie dürfen sie ändern und weiter verbreiten.\n"
+"Es gibt KEINERLEI GARANTIE, so weit das Gesetz es erlaubt.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Geschrieben von %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Geschrieben von %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s und anderen.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Melden Sie Fehler in %s (auf Englisch, mit LC_ALL=C) an: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Homepage von %s: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, 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
+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: Funktion %s fehlgeschlagen"
+
+#. 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: Funktion %s fehlgeschlagen"
+
+#: 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 keine harte Verknüpfung zu „%s“ anlegen"
+
+#: 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 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Entferne führende „%s“ von Elementnamen"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Entferne führende „%s“ von Zielen harter Verknüpfungen"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Ersetze „.“ für leeren Elementnamen"
+
+#: lib/paxnames.c:155
+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 "Kann nicht mit %s verbinden: Auflösung fehlgeschlagen"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Kann Remote-Shell nicht ausführen."
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Richtung für Positionierung nicht zulässig."
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Ungültige Richtung für Positionierung"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Ungültiger Betrag für Positionierung"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Positionierungsangabe außerhalb des zulässigen Bereichs."
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Ungültige Bytezahl"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Bytezahl außerhalb des zulässigen Bereichs"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Vorzeitiges Dateiende"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Ungültiger Arbeitsmodus"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operation nicht gestattet"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Unerwartete Argumente"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Ein Bandlaufwerk bearbeiten, dabei Befehle von entferntem Prozess annehmen"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "ZAHL"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "Debug-Level setzen"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "DATEI"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "Dateinamen für Debug-Ausschriften setzen"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "kann „%s“ nicht öffnen"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "zu viele Argumente"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Ungültiger Befehl"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Das sieht nicht wie ein „tar“-Archiv aus."
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Gesamtzahl geschriebener Bytes"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Gesamtzahl gelesener Bytes"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Gesamtzahl gelöschter Bytes: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Ungültiger Wert für „record_size“."
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Kein Archivname angegeben"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Kann Archive auf Standard-Ein-/Ausgabe nicht prüfen."
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Archiv ist komprimiert. Benutzen Sie die Option %s."
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Kann komprimierte Archive nicht aktualisieren"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Am Anfang des Mediums, beende jetzt."
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Zu viele Fehler, beende."
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "„rmtlseek“ nicht an Recordgrenze angehalten"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: enthält ungültige Teil-Nummer."
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Teil-Nummer zu groß."
+
+#: src/buffer.c:1123
+#, 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:1129
+msgid "EOF where user reply was expected"
+msgstr "Dateiende gefunden, Benutzereingabe erwartet"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "WARNUNG: Archiv unvollständig"
+
+#: src/buffer.c:1148
+#, 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 angeben\n"
+" q „tar“ abbrechen\n"
+" j oder Enter fortfahren\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Shell in einem Unterprozess starten\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? diese Liste ausgeben\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Kein neues Medium; halte an.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Dateiname nicht angegeben. Versuchen Sie es noch einmal.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Ungültige Eingabe. Geben Sie „?“ für Hilfe ein.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "„%s“-Befehl gescheitert."
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "Dieser Teil ist keine Fortsetzung von %s."
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s hat die falsche Größe (%s != %s + %s)."
+
+#: src/buffer.c:1472
+#, 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:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Kennzeichnung des Archivs passt nicht zu „%s“."
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Teil „%s“ passt nicht zu „%s“."
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: Dateiname zu lang, um in einem GNU-Mehrteil-Kopf abgelegt werden zu können, abgeschnitten"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "Schreiben endete nicht an Blockgrenze"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Unterschiedliche Inhalte"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Unerwartetes Dateiende im Archiv."
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Unterschiedliche Dateitypen "
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Modus ist unterschiedlich"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Benutzerkennung ist unterschiedlich"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gruppenkennung ist unterschiedlich"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Änderungszeit ist unterschiedlich"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Größe ist unterschiedlich"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nicht mit „%s“ verknüpft"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Symbolische Verknüpfung ist unterschiedlich"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Unterschiedliche Gerätenummern"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Prüfe "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Unbekannter Dateityp „%c“, Differenz wie für eine normale Datei."
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Archiv enthält Dateinamen, deren Präfixe entfernt wurden."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Archiv enthält transformierte Dateinamen."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Die Überprüfung findet möglicherweise die Originaldateien nicht."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Ein einzelner Nullblock bei %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: enthält eine „Cache-Verzeichnis“-Markierung %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "Wert %s außerhalb des %s-Bereichs %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Erzeuge negative oktale Kopfteile"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: Dateiname ist zu lang (max. %d); nicht gesichert."
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: Dateiname ist zu lang (kann nicht aufgeteilt werden); nicht gesichert."
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: Verknüpfungsname ist zu lang; nicht gesichert."
+
+#: src/create.c:1064
+#, 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "Inhalt nicht gesichert"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Unbekannter Dateityp; Datei ignoriert."
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Fehlende Verknüpfungen zu %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "Datei %s ist unverändert; nicht gesichert."
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s ist das Archiv; nicht gesichert."
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "Verzeichnis nicht gesichert"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: Datei hat sich beim Lesen geändert."
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: Socket ignoriert"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: Klappe ignoriert"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Springe zum nächsten Kopfteil."
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Lösche nicht-Kopfteil aus dem Archiv"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: unplausibel alter Zeitstempel %s"
+
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Unerwarteter Inkonsitenz beim Erstellen des Verzeichnisses."
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Extrahiere zusammenhängende Dateien („contiguous files“) als reguläre."
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Versuche symbolische Verknüpfungen als harte Verknüpfungen herauszuholen."
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "Kann „%s“ nicht herausholen – Datei ist Fortsetzung eines anderen Teils."
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Unerwarteter Kopfteil mit langem Namen"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Unbekannter Dateityp „%c“, wie normale Datei extrahiert."
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Aktuelles %s ist neuer oder hat dasselbe Alter."
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Konnte keine Sicherheitskopie von dieser Datei erstellen"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Kann %s nicht in %s umbenennen."
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Verzeichnis wurde von „%s“ umbenannt."
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Verzeichnis wurde umbenannt."
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "Verzeichnis „%s“ ist neu."
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Ungültiger Zeitstempel"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Ungültige Änderungszeit (Sekunden)."
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Ungültige Änderungszeit (Nanosekunden)."
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Ungültige Gerätenummer"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Ungültige Inode-Nummer"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Feld zu lang beim Lesen der Schnappschussdatei"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Lesefehler in Schnappschussdatei"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Unerwartetes Dateiende im Schnappschussdatei."
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Unerwarteter Feldwert in Schnappschussdatei"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Fehlender Record-Abschluss"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "unzulässiges inkrementelles Dateiformat"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Nicht unterstützte Version des inkrementellen Formats: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Fehlgeformtes Verzeichnis für Dump: „%c“ erwartet, aber %#3o gefunden"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Fehlgeformtes Verzeichnis für Dump: „X“ dupliziert"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Fehlgeformtes Verzeichnis für Dump: leerer Name in „R“"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Fehlgeformtes Verzeichnis für Dump: „T“ folgt nicht „R“"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Fehlgeformtes Verzeichnis für Dump: leerer Name in „T“"
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Fehlgeformtes Verzeichnis für Dump: „X“ nie benutzt"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Kann kein temporäres Verzeichnis mit der Schablone %s anlegen"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Entferne Verzeichnis nicht: kann nicht zugreifen"
+
+#: src/incremen.c:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Lösche %s.\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Kann nicht entfernen."
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Ausgelassen"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "Block %s: ** Block aus NULlen **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "Block %s: ** Ende der Datei **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "Block %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+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:763
+#, 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:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Oktalzahl %.*s außerhalb des %s-Bereichs"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Archiv enthält veraltete Base64-Kopfteile"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " Verknüpfung zu %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " unbekannter Dateityp %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "––Lange Verknüpfung––\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+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:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "––Vorspann des Teils––\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "––Fortgesetzt bei Byte %s––\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Erzeuge Verzeichnis:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Kann Arbeitsverzeichnis nicht ermitteln."
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Benenne „%s“ in „%s“ um.\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Kann nicht in %s umbenennen"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Benenne „%s“ zurück in „%s“.\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Datei gelöscht, bevor sie gelesen wurde."
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "Kindprozess"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "Interprocess-Kanal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Zeichen für Musterüberdeckung im Dateinamen benutzt"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr ""
+"Benutzen Sie --wildcards, um Musterüberdeckung zu ermöglichen oder\n"
+"--no-wildcards, um diese Warnung zu unterdrücken."
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Nicht im Archiv gefunden."
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Erforderliches Auftreten nicht im Archiv gefunden."
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Kennzeichnung des Archivs passt nicht"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "Option -C in Dateiliste ist nicht erlaubt mit --listed-incremental"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "In --listed-incremental ist nur eine Option -C erlaubt"
+
+#: 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Ungültiges Archivformat"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU-Erweiterungen bei einem inkompatiblen Archiv-Format verlangt."
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Unbekannter Zitatstil „%s“. Versuchen Sie „%s --quoting-style=help“ für eine Liste."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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“ fasst viele Dateien in einem einzigen Archiv auf Platte oder Band zusammen und kann einzelne Dateien aus dem Archiv wieder herstellen.\n"
+"\n"
+"Beispiele:\n"
+" tar -cf archiv.tar foo bar # archiv.tar mit den Dateien foo und bar erzeugen\n"
+" tar -tvf archiv.tar # Inhalt von archiv.tar ausführlich anzeigen\n"
+" tar -xf archiv.tar # alle Dateien aus archiv.tar extrahieren\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Die Namenserweiterung für Sicherheitskopien ist „~“, wenn nicht mit --suffix\n"
+"oder der Umgebungsvariablen SIMPLE_BACKUP_SUFFIX etwas anderes eingestellt ist.\n"
+"Die Versionskontrolle kann mit --backup oder der Umgebungsvariablen\n"
+"VERSION_CONTROL gesetzt werden. Mögliche Werte sind:\n"
+"\n"
+" none, off niemals Sicherheitskopien anlegen\n"
+" t, numbered nummerierte Sicherheitskopien\n"
+" nil, existing nummerierte Sicherheitskopien, wenn schon nummerierte\n"
+" vorhanden sind, sonst einfache\n"
+" never, simple immer einfache Sicherheitskopien\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Hauptsächlicher Arbeitsmodus:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "den Inhalt eines Archivs auflisten"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "Dateien aus einem Archiv extrahieren"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "ein neues Archiv anlegen"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "Unterschiede zwischen Archiv und Dateisystem suchen"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "Dateien hinten an das Archiv anfügen"
+
+#: src/tar.c:402
+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:404
+msgid "append tar files to an archive"
+msgstr "tar-Dateien an ein Archiv anfügen"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "aus dem Archiv löschen (nicht auf Magnetband!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "den Archiv-Teil-Namen überprüfen und beenden"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Feineinstellungen:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "löchrige Dateien („sparse files“) effizient behandeln"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "zu benutzende Version des Sparse-Formats setzen (impliziert --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "inkrementelle Sicherung im alten GNU-Format"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "inkrementelle Sicherung im neuen GNU-Format"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "Niveau für erzeugte Archive mit --listed-incremental ausgeben"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "kein Abbruch mit Existatus!=0 bei unlesbaren Dateien"
+
+#: src/tar.c:429
+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 "nur das ZAHLte Auftreten jeder Datei im Archiv bearbeiten; diese Option kann nur zusammen mit einem der Arbeitsmodi --delete, --diff, --extract oder --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:435
+msgid "archive is seekable"
+msgstr "im Archiv kann positioniert werden"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "im Archiv kann nicht positioniert werden"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "Gerätenummer bei Erstellung inkrementeller Archive nicht prüfen"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "Gerätenummer bei Erstellung inkrementeller Archive prüfen (Voreinstellung)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Steuerung des Überschreibens:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "Archiv nach dem Schreiben prüfen"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "Dateien nach dem Hinzufügen zum Archiv löschen"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "vorhandene Dateien beim Extrahieren nicht überschreiben"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "vorhandene Dateien beim Extrahieren überschreiben"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "zu überschreibende Dateien vor dem Extrahieren löschen"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "Verzeichnishierarchien rekursiv vor dem Extrahieren eines Verzeichnisses löschen"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "Metadaten existierender Verzeichnisse erhalten"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "Metadaten existierender Verzeichnisse beim Extrahieren überschreiben (Voreinstellung)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Wahl des Ausgabestroms:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "Dateien auf die Standardausgabe extrahieren"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "BEFEHL"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "extrahierte Dateien an ein anderes Programm weiterreichen"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "Exitstatus der Kinder ignorieren"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "Exitstatus!=0 von Kindern als Fehler ansehen"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Behandlung der Datei-Attribute:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "Eigentümer für hinzugefügte Dateien auf NAME setzen"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "Gruppe für hinzugefügte Dateien auf NAME setzen"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATUM-ODER-DATEI"
+
+#: src/tar.c:494
+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:495
+msgid "CHANGES"
+msgstr "ÄNDERUNGEN"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "den (symbolischen) Modus ÄNDERUNGEN für hinzugefügte Dateien erzwingen"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METHODE"
+
+#: src/tar.c:499
+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 "Zugriffszeit für abgespeicherte Dateien erhalten, entweder durch Zurücksetzen der Zeiten nach dem Lesen (METHODE=„replace“, Voreinstellung) oder dadurch, dass die Zeiten gar nicht erst neu gesetzt werden (METHODE=„system“)"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "die geänderte Zeit nicht extrahieren"
+
+#: src/tar.c:505
+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 (für den Admin ist dies die Voreinstellung)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "Dateien als aktueller Nutzer extrahieren (für normale Nutzer die Voreinstellung)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "immer Zahlen für Nutzer-/Gruppennamen verwenden"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "Informationen über Dateizugriffsrechte mit extrahieren (Voreinstellung für Root)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "die Umask des Nutzers anwenden beim Extrahieren von Dateizugriffsrechte aus dem Archiv (Voreinstellung für normale Nutzer)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "zu entpackende Dateinamen wie im Archiv sortieren"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "wie -p und -s zusammen"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "das Setzen von Zugriffszeiten und Rechten von extrahierten Verzeichnissen verschieben bis zum Ende des Entpackens"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "den Effekt von --delay-directory-restore aufheben"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Geräteauswahl und -umschaltung:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "Archivdatei oder Gerät ARCHIV benutzen"
+
+#: src/tar.c:535
+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:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "statt „rmt“ den gegebenen BEFEHL benutzen"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "statt „rsh“ den entfernten BEFEHL benutzen"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "Laufwerk und Schreibdichte angeben"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "mehrteiliges Archiv anlegen/listen/extrahieren"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "Medium wechseln, wenn ZAHL × 1024 Bytes geschrieben wurden"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "am Ende jedes Mediums das Skript ausführen (impliziert -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "Teil-Nummer in DATEI benutzen/aktualisieren"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blockung des Gerätes:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLÖCKE"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLÖCKE × 512 Bytes pro Record"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "ZAHL Bytes pro Record, Vielfaches von 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "Blöcke mit Nullen im Archiv ignorieren (heißt EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "erneut Blocken beim Lesen (für 4.2BSD‐Pipes)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Auswahl des Archiv-Formats:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "Archiv mit dem gegebenen Format anlegen"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT ist eines der folgenden:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "altes V7-tar-Format"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU-Format wie mit tar <=1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU-tar-1.13.x-Format"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "Format von POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "Format von POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "wie pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "wie --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "wie --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "Schlüsselwort[[:]=Wert][,Schlüsselwort[[:]=Wert]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "Pax-Schlüsselwörter steuern"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "Archiv mit dem Teilnamen TEXT anlegen; beim Listen/Extrahieren, TEXT als Muster für den Teilnamen benutzen"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Kompressionsoptionen:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "Archiverweiterung nehmen, um Kompressionsprogramm zu bestimmen"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "Archiverweiterung nicht nehmen, um Kompressionsprogramm zu bestimmen"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "durch PROG filten (muss -d akzeptieren)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Auswahl der lokalen Dateien:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "VERZEICHNIS"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "zu VERZEICHNIS wechseln"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "Namen der zu bearbeitenden Dateien aus DATEI lesen"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T liest null-terminierte Namen, verbiete -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "die Wirkung der vorangehenden Option --null aufheben"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "Dateinamen, die mit -T gelesen werden, von Zitat befreien (Voreinstellung)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "Dateinamen, die mit -T gelesen werden, nicht von Zitat befreien"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MUSTER"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "Dateien auslassen, auf die MUSTER passt"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "Dateien auslassen, auf die in DATEI angegebene Muster passen"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "Inhalt von Verzeichnissen auslassen, die CACHEDIR.TAG enthalten, außer der Markierungsdatei selbst"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "alles unterhalb von Verzeichnissen auslassen, die CACHEDIR.TAG enthalten"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "Verzeichnisse auslassen, die CACHEDIR.TAG enthalten"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "alles unterhalb von Verzeichnissen auslassen, die DATEI enthalten"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "Verzeichnisse auslassen, die DATEI enthalten"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "Verzeichnisse von Versionskontrollsystemen auslassen"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "Backup- und Lock-Dateien ausschließen"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "automatischen Abstieg in Vezeichnisse vermeiden"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "beim Anlegen eines Archivs im lokalen Dateisystem bleiben"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "in Verzeichnisse absteigen (Voreinstellung)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "führende „/“-Zeichen in den Dateinamen erhalten"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "ELEMENT-NAME"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "mit ELEMENT-NAME im Archiv beginnen"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "nur Dateien ablegen, die neuer als DATUM-ODER-DATEI sind"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATUM"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "Datum und Zeit nur überprüfen, wenn Daten geändert wurden"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "KONTROLLE"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "Sicherung vor dem Entfernen, wähle Versions-KONTROLLE"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "ZEICHENKETTE"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "Sicherung vor dem Entfernen, übliches Suffix ersetzen („~“, wenn nicht durch Umgebungsvariable SIMPLE_BACKUP_SUFFIX anders gesetzt)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Dateinamentransformationen:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "ZAHL führende Komponenten beim Extrahieren von Dateinamen entfernen"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "AUSDRUCK"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "den sed-AUSDRUCK zur Dateinamentransformation benutzen"
+
+#: src/tar.c:714
+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:717
+msgid "ignore case"
+msgstr "Groß-/Kleinschreibung ignorieren"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "Muster am Dateinamensanfang ausrichten"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "Muster passen nach jedem „/“ (Voreinstellung beim Ausschluss)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "Groß-/Kleinschreibung beachten (Voreinstellung)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "Muster benutzen (Voreinstellung für Ausschluss)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "Zeichenketten sind buchstabengetreu"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "Jokerzeichen passen nicht auf „/“"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "Jokerzeichen passen auf „/“ (Voreinstellung für Ausschluss)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informationen:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "bearbeitete Dateien ausführlich listen"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "SCHLÜSSELWORT"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "Warnungssteuerung"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "Fortschrittsnachrichten bei jedem ZAHLten Record (Voreinstellung 10) anzeigen"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "AKTION"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "AKTION bei jedem Kontrollpunkt ausführen"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "eine Nachricht ausgeben, wenn nicht alle Verknüpfungen abgespeichert werden"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "Gesamtzahl der Bytes nach dem Bearbeiten des Archivs anzeigen; mit einem Argument – Gesamtzahl der Bytes anzeigen, wenn dieses SIGNAL ausgeliefert wird; erlaubte Signale sind: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 und SIGUSR2; die Namen ohne das Präfix SIG sind auch erlaubt"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "Dateiänderungszeiten in UTC anzeigen"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "Dateizeit in voller Auflösung anzeigen"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "ausführliche Ausgabe in DATEI schreiben"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "bei jeder Nachricht die Blocknummer innerhalb des Archivs mit anzeigen"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "für jede Aktion um Bestätigung bitten"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "Voreinstellungen von tar anzeigen"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "beim Listen oder Extrahieren jedes Verzeichnis auflisten, dass nicht den Suchkriterien entspricht"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "Datei- oder Archivnamen nach der Transformation anzeigen"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STIL"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "zusätzliche Zeichen aus ZEICHENKETTE zitieren"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "Zeichen aus ZEICHENKETTE nicht zitieren"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Kompatibilitätsoptionen:"
+
+#: src/tar.c:787
+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:792
+msgid "Other options:"
+msgstr "Weitere Optionen:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "möglicherweise schädliche Optionen deaktivieren"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Von den Optionen „-Acdtrux“ oder „--test-label“ ist jeweils nur eine erlaubt"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Kompressionsoptionen schließen sich gegenseitig aus."
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Unbekannter Signalname: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Datumsdatei nicht gefunden"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Ersetze %s für unbekanntes Datumsformat %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Option %s: Behandle Datum „%s“ als %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: Dateiliste schon gelesen"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: gelesener Dateiname enthält ein NULL-Zeichen"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "Archiv durch %s filtern"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Gültige Argumente für die Option --quoting-style sind:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Dieses* „tar“ hat als Voreinstellung:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Ungültige Blockgröße"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Ungültige Bandlänge"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "unzulässiger Wert für inkrementelles Niveau"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Mehr als ein Datum angegeben."
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Ungültiger Wert für Sparse-Version (für löchrige Dateien)"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' wird auf dieser Plattform nicht unterstützt"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "Wert für --checkpoint ist keine ganze Zahl"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Ungültige Gruppe"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Ungültige Zugriffsrechte angegeben."
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Ungültige Zahl"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Ungültiger Benutzer"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Die Option --preserve ist veraltet, benutzen Sie stattdessen --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Ungültiger Wert für Recordgröße."
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Die Recordgröße muss ein Vielfaches von %d sein."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Ungültige Elementanzahl"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Nur eine Option --to-command erlaubt"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Fehlgeformtes Dichteargument: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Unbekannte Dicht: „%c“"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[DATEI]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Die alte Option „%c“ benötigt einen Parameter."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence ist ohne Dateiliste bedeutungslos"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence kann im angeforderten Operationsmodus nicht benutzt werden"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Mehrere Archivdateien verlangen die Option „-M“."
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental kann nicht mit --newer benutzt werden"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level ist ohne --listed-incremental bedeutungslos"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Kann mehrteilige Archive nicht prüfen."
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Kann komprimierte Archive nicht prüfen"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Kann keine mehrteiligen komprimierten Archive verwenden."
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Kann komprimierte Archive nicht aneinanderhängen"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option kann nur mit POSIX-Archiven benutzt werden"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Teillänge kann nicht unter der Recordgröße liegen"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order ist nicht kompatibel mit --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Anlegen eines leeren Archivs wird feige verweigert."
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Die Optionen „-Aru“ sind nicht kompatibel mit „-f -“."
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Eine der Optionen „-Acdtrux“ oder „--test-label“ ist notwendig."
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Beende mit Fehlerstatus aufgrund vorheriger Fehler"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Schlüsselwort %s ist unbekannt oder noch nicht implementiert"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Zeitstempel außerhalb des zulässigen Bereichs"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Muster %s kann nicht benutzt werden"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Schlüsselwort %s kann nicht überschrieben werden"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Fehlgeformter erweiterter Kopfteil: fehlende Länge"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Länge des erweiterten Kopfteils ist außerhalb des erlaubten Bereichs"
+
+#: src/xheader.c:557
+#, 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:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Fehlgeformter erweiterter Kopfteil: fehlender Leerraum nach der Länge"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Fehlgeformter erweiterter Kopfteil: fehlendes Gleichheitszeichen"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Fehlgeformter erweiterter Kopfteil: fehlender Zeilenvorschub"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ignoriere unbekanntes Schlüsselwort „%s“ für erweiterten Kopfteil"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Generiertes Schlüsselwort/Wert-Paar ist zu lang (Schlüsselwort=%s, Länge =%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Fehlgeformter erweiterter Kopfteil: ungültiges %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Fehlgeformter erweiterter Kopfteil: überzähliges %s=%s"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Fehlgeformter erweiterter Kopfteil: ungültiges %s: ungewöhnliche Anzahl von Werten"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: kein gültiger Zeitüberschreitungswert"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: unbekannte Kontrollpunkt-Aktion"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "lesen"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "schreiben"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Schreib-Kontrollpunkt %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Lese-Kontrollpunkt %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile manipuliert Datendateien für die Testsuite der GNU paxutils.\n"
+"OPTIONEN sind:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Optionen beim Anlegen von Dateien:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "GRÖßE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Datei der gegebenen GRÖßE anlegen"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "in Datei NAME anstelle der Standardausgabe schreiben"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Dateinamenlist aus DATEI lesen"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T liest null-terminierte Namen"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Größe eines Blocks für löchrige Dateien"
+
+# „map“: Karte, Abbildung?
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "POSITION"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "vor dem Schreiben zur gegebenen Position springen"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Dateistatistikoptionen:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Optionen für synchrone Ausführung:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPTION"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "ARGUMENTE ausführen. Nützlich mit --checkpoint und einem aus --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Datum für nächste „--touch“-Operation setzen"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "ausgeführte Kontrollpunkte und Beendigungsstatus von BEFEHL anzeigen"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "DATEI kürzen auf die Länge, die mit einer vorhergehenden Option --length (oder 0 bei Abwesenheit) gesetzt wurde"
+
+#: tests/genfile.c:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "Zugriffs- und Änderungszeiten der DATEI neu setzen"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "BEFEHL ausführen"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "FILE entfernen (unlink)"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Ungültige Größe: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Zahl außerhalb des zulässigen Bereichs: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negative Größe: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) fehlgeschlagen"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "Dateilänge %lu verlangt, tatsächlich %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "erzeugte Datei ist nicht löchrig"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Fehler beim Parser der Zahl in der Nähe von „%s“"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Unbekanntes Datumsformat"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENTE...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "kann „%s“ nicht öffnen"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "kann nicht positionieren"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "Dateiname enthält Null-Zeichen"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "inkorrekte Maske (nahe „%s“)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "unbekannte Feld „%s“"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "kann an „%s“ keine Zeit setzen"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "kann „%s“ nicht entfernen (unlink)"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Befehl erfolgreich ausgeführt\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Befehl schlug mit Beendigungsstatus %d fehl.\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Befehl beendete sich bei Signal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Befehl hieltb bei Signal %d an\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Befehl erzeugte einen Core-Dump\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Befehl beendet\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat erfordert Dateinamen"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: Verzeichnis gelöscht, bevor es gelesen wurde."
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Kann aktuelles Verzeichnis nicht sichern."
+
+#~ 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 "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 "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 "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+#~ msgstr "Warnung: Die Option -I ist nicht unterstützt, meinen Sie -j oder -T?"
+
+# Was ist hier genau gemeint? ke
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "Fehler beim Beenden, verursacht durch vorhergehende Fehler."
+
+#~ msgid "[.]NUMBER"
+#~ msgstr "[.]ZAHL"
+
+#~ msgid "block size"
+#~ msgstr "Blockgröße"
+
+#~ msgid "%s: Read error at byte %s, reading %lu byte"
+#~ msgid_plural "%s: Read error at byte %s, reading %lu bytes"
+#~ msgstr[0] "%s: Lesefehler bei Byte %s, lese ein Byte"
+#~ msgstr[1] "%s: Lesefehler bei Byte %s, lese %lu Bytes"
+
+#~ msgid "--Mangled file names--\n"
+#~ msgstr "––Verstümmelte Dateinamen––\n"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "%s in %s umbenannt"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ msgstr "%s: Kann nicht zu „%s“ linken."
+
+#~ msgid "Symlinked %s to %s"
+#~ msgstr "Symbolische Verknüpfung von %s auf %s."
+
+#~ msgid "Unknown demangling command %s"
+#~ msgstr "Unbekanntes Befehl „%s“ beim Zusammensetzen von Namen."
diff --git a/po/.reference/de.s1 b/po/.reference/de.s1
new file mode 100644
index 00000000..a878a0e5
--- /dev/null
+++ b/po/.reference/de.s1
@@ -0,0 +1 @@
+f88eb2b6cc06f103458a3e27f365202a6cd7fa37 -
diff --git a/po/.reference/el.po b/po/.reference/el.po
new file mode 100644
index 00000000..705b96d2
--- /dev/null
+++ b/po/.reference/el.po
@@ -0,0 +1,1366 @@
+# Greek translation of tar
+# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+# Μπαλάσκας Ευάγγελος (Balaskas Euaggelos) <ebalaskas@cs.teiath.gr>, 2004.
+# Simos Xenitellis <simos74@gmx.net>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.13.25 \n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\n"
+"PO-Revision-Date: 2004-03-08 14:44+0200\n"
+"Last-Translator: Μπαλάσκας Ευάγγελος (Balaskas Euaggelos) <ebalaskas@cs.teiath.gr>\n"
+"Language-Team: Greek <nls@tux.hellug.gr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.0.2\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "άκυρο όρισμα %s για %s"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "αμφιλεγόμενο όρισμα %s για %s"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Έγκυρα ορίσματα είναι:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Άγνωστο σφάλμα συστήματος"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: η επιλογή`%s' είναι αμφιλεγόμενη\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: η επιλογή `--%s' δεν επιτρέπει όρισμα\n"
+
+#: lib/getopt.c:723
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: η επιλογή `%c%s' δεν επιτρέπει όρισμα\n"
+
+#: lib/getopt.c:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: η επιλογή `%s' απαιτεί όρισμα\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: μη αναγνωρίσιμη επιλογή `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: μη αναγνωρίσιμη επιλογή `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: παράνομη επιλογή -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: άκυρη επιλογή -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: η επιλογή απαιτεί όρισμα -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: η επιλογή `-W %s' είναι αμφιλεγόμενη\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: η επιλογή `-W %s' δεν επιτρέπει όρισμα\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "μέγεθος μπλοκ"
+
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "'"
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "η μνήμη εξαντλήθηκε"
+
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Συνολικά byte που γράφτηκαν: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(σωλήνωση)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Δεν είναι δυνατό το κλείσιμο"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Δεν είναι δυνατή η εκτέλεση της dup"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Δεν είναι δυνατή η χρήση συμπιεσμένων ή απομακρυσμένων αρχειοθηκών"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (θυγατρική)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (εγγόνι)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Άκυρη τιμή για record_size"
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Δεν δόθηκε όνομα αρχειοθήκης"
+
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Δεν είναι δυνατή η επαλήθευση πολλαπλών αρχειοθηκών"
+
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Δεν είναι δυνατή η δέσμευση μνήμης για τον συντελεστή ομαδοποίησης %d"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Δεν είναι δυνατή η χρήση πολλαπλών συμπιεσμένων αρχειοθηκών"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Δεν είναι δυνατή η επαλήθευση των συμπιεσμένων αρχειοθηκών"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Δεν είναι δυνατή η ανανέωση των συμπιεσμένων αρχειοθηκών"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Δεν είναι δυνατή η επαλήθευση των κανονικών εισόδων/εξόδων της αρχειοθήκης"
+
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Η αρχειοθήκη δεν έχει ετικέτα για ταίριασμα %s"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Ο τόμος %s δεν ταιριάζει %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Εγγραφή σημείου ελέγχου %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "Στην αρχή της ταινίας, τερματισμός τώρα"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Πάρα πολλά σφάλματα, τερματισμός"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Ανάγνωση σημείου ελέγχου %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "Ανάγνωση %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "ΠΡΟΕΙΔΟΠΟΊΗΣΗ: Καμία κεφαλίδα του πλήθους"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s δεν συνεχίζεται σε αυτόν τον τόμο"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s είναι το εσφαλμένο μέγεθος (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Αυτός ο τόμος είναι εκτός συνέχειας"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Μη ευθυγραμμισμένο μπλοκ (%lu byte) στην αρχειοθήκη"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Μέγεθος εγγραφής = %lu block"
+
+#: src/buffer.c:1308
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr ""
+
+#: src/buffer.c:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "Η θυγατρική διεργασία τερματίστηκε με το σήμα %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "Η θυγατρική διεργασία επέστρεψε την κατάσταση %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: περιέχει άκυρο αριθμό τόμου"
+
+#: src/buffer.c:1440
+msgid "Volume number overflow"
+msgstr "Υπερχήλιση αριθμού τόμου"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "`%s' η εντολή απέτυχε"
+
+#: src/buffer.c:1468
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Προετοίμασε τον τόμο #%d για %s και πάτα το πλήκτρο επιστροφής γραμμής"
+
+#: src/buffer.c:1474
+msgid "EOF where user reply was expected"
+msgstr "EOF (Τέλος Αρχείου) ενώ η απάντηση του χρήστη αναμενότανε"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "ΠΡΟΕΙΔΟΠΟΊΗΣΗ: Η αρχειοθήκη είναι ημιτελής"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [όνομα] Δώσε ένα νέο όνομα για τον επόμενο (και τον επακόλουθο) τόμο\n"
+" q Εγκατάλειψη tar\n"
+" ! Παραγωγή νέου υπό-φλοιού\n"
+" ? Εκτύπωση αυτής της λίστας\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Κανένας νέος τόμος; έξοδος\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "Δυνατή μόνο η ανάγνωση %lu από %lu byte"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "Τα περιεχόμενα διαφέρουν"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339
+#: src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718
+#: src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367
+#: src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στην αρχειοθήκη"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Επαλήθευση "
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Άγνωστος τύπος αρχείου '%c', εκτέλεση της diff ως κανονικό αρχείο"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "Οι τύποι αρχείων διαφέρουν"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "Οι καταστάσεις διαφέρουν"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Ταυτότητες χρήστη διαφέρουν"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "Ταυτότητες ομάδας διαφέρουν"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "Ώρες τροποποίησης διαφέρουν"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "Τα μεγέθη διαφέρουν"
+
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "Δεν είναι συνδεδεμένο με %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "Οι σύνδεσμοι διαφέρουν"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "Οι αριθμοί των συσκευών διαφέρουν"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "Η ΕΠΑΛΎΘΕΥΣΗ ΑΠΈΤΥΧΕ: ανιχνεύτηκαν %d άκυρη(ες) επικεφαλίδα(δες)"
+
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Παράχθηκαν αρνητικές οκταδικές επικεφαλίδες"
+
+#: src/create.c:200
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "η τιμή %s είναι εκτός του %s εύρος %s..%s; αντικαταστήθηκε από %s"
+
+#: src/create.c:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "η τιμή %s είναι εκτός του %s εύρους %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Τα ονόματα των μελών περιέχουν `..'"
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Απομακρύνονται τα αρχικά `%.*s' από τα ονόματα των μελών"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε"
+
+#: src/create.c:1098
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: το αρχείο είναι σε διαφορετικό σύστημα αρχείων; δεν αποθηκεύτηκε"
+
+#: src/create.c:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Το αρχείο απομακρύνθηκε πριν το διαβάσουμε"
+
+#: src/create.c:1399
+#, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: Το αρχείο συρρικνώθηκε σε %s bytes; συμπλήρωση με μηδενικά"
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: αρχείο τροποποιήθηκε κατά την ανάγνωση"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: η υποδοχή αγνοήθηκε"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: η πόρτα αγνοήθηκε"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Άγνωστος τύπος αρχείου; το αρχείο αγνοήθηκε"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Αυτό δεν φαίνεται ως αρχειοθήκη tar"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Παραλείποντας στην επόμενη επικεφαλίδα"
+
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Διαγραφή μη-επικεφαλίδων από την αρχειοθήκη"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: η ένδειξη χρόνου %s είναι %lu s στο μέλλον"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Μη αναμενόμενη ανακολουθία κατά την δημιουργία του καταλόγου"
+
+#: src/extract.c:578
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Ο κατάλογος μετονομάστηκε πριν η κατάστασή του γίνει μη εξαγώγιμη"
+
+#: src/extract.c:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: Τα ονόματα των μελών περιέχουν `..'"
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Δεν είναι δυνατή η αποθήκευση αυτού του αρχείου"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Εξαγωγή συνεχόμενων αρχείων ως κανονικών αρχείων"
+
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Προσπάθεια εξαγωγής των συμβολικών συνδέσμων ως σθεναρών συνδέσμων"
+
+#: src/extract.c:1207
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Δεν είναι δυνατή η εξαγωγή -- το αρχείο συνεχίζεται σε άλλο τόμο"
+
+#: src/extract.c:1216
+msgid "Visible long name error"
+msgstr "Ορατό σφάλμα μεγάλων ονομάτων"
+
+#: src/extract.c:1224
+#, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
+msgstr "%s: Άγνωστος τύπος αρχείου '%c', εξαγωγή ως κανονικό αρχείο"
+
+#: src/extract.c:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "Το σφάλμα δεν είναι επανορθώσιμο: τερματισμός τώρα"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Ο κατάλογος έχει μετονομαστεί"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Ο κατάλογος είναι καινούριος"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Άκυρη ένδειξη χρόνου"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "Η ένδειξη χρόνου είναι εκτός εύρους"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Άκυρος αριθμός συσκευής"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "Ο αριθμός της συσκευής είναι εκτός εύρους"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Άκυρος αριθμός i-κόμβου"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "Ο αριθμός του i-κόμβου είναι εκτός εύρους"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Διαγραφή %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Δεν είναι δυνατή η απομάκρυνση"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Παράλειψη"
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "μπλοκ %s: ** Μπλοκ με χαρακτήρες NUL **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "μπλοκ %s: ** Τέλος Αρχείου **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Κενά στην επικεφαλίδα ενώ αναμενόταν αριθμητική τιμή %s"
+
+#: src/list.c:606
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Αρχειοθήκη οκταδικής τιμής %.*s είναι εκτός του %s εύρους; Υποθέτω δυαδικά συμπληρώματα"
+
+#: src/list.c:616
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Αρχειοθήκη οκταδικής τιμής %.*s είναι εκτός του %s εύρους"
+
+#: src/list.c:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Η αρχειοθήκη περιέχει απαρχαιωμένες επικεφαλίδες κωδικοποίησης base64"
+
+#: src/list.c:645
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Η αρχειοθήκη είναι υπογεγραμμένη με αλφαριθμητικά base-64 %s είναι εκτός του %s εύρους"
+
+#: src/list.c:676
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Η αρχειοθήκη με base-256 τιμές είναι εκτός του %s εύρους"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Η αρχειοθήκη περιέχει %.*s όπου αριθμητικές %s τιμές αναμένονται"
+
+#: src/list.c:724
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Η τιμή της αρχειοθήκης %s είναι εκτός του %s εύρους %s..%s"
+
+#: src/list.c:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "μπλοκ %s: "
+
+#: src/list.c:946
+msgid "Visible longname error"
+msgstr "Ορατό σφάλμα μεγάλων ονομάτων"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr " σύνδεσμος σε %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " άγνωστος τύπος αρχείου %s\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Επικεφαλίδα Τόμου--\n"
+
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Συνέχιση στο byte %s--\n"
+
+#: src/list.c:1112
+msgid "--Mangled file names--\n"
+msgstr "--Κατακερματισμένα ονόματα αρχείων--\n"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Δημιουργία καταλόγου:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στα κατακερματισμένα ονόματα"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Δεν είναι δυνατή η μετονομασία σε %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Μετονομάστηκε %s σε %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Δεν είναι δυνατή η συμβολική σύνδεση στο %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Συμβολικός δεσμός %s στο %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Άγνωστη εντολή ανασύνταξης %s"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Μετονομασία %s σε %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Μετονομασία %s πίσω στο %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Δεν είναι δυνατή η αποθήκευση του τρέχοντος καταλόγου"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Δεν είναι δυνατή η τροποποίηση του τρέχοντος καταλόγου"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Δεν είναι δυνατή %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Προειδοποίηση: Δεν είναι δυνατή %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Δεν είναι δυνατή η αλλαγή κατάστασης σε %s"
+
+#: src/misc.c:562
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Δεν είναι δυνατή η αλλαγή ιδιοκτησίας σε uid %lu, gid %lu"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Δεν είναι δυνατή η σύνδεση υλικού σε %s"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Προειδοποίηση: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Προειδοποίηση: Δεν είναι δυνατή η αναζήτηση σε %s"
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Δεν είναι δυνατή η δημιουργία συμβολικού δεσμού στο %s"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Γράφτηκαν μόνο %lu από %lu byte"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "θυγατρική διεργασία"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "κανάλι μεταξύ διεργασιών"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Λείπει όνομα αρχείου μετά -C"
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Δεν βρέθηκε στην αρχειοθήκη"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Δεν είναι δυνατή η δέσμευση προσωρινού αποθηκευτικού χώρου \n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Δεν είναι δυνατή η δέσμευση προσωρινού αποθηκευτικού χώρου"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Προσπαθήστε `%s --help' για περισσότερες πληροφορίες.\n"
+
+#: src/rmt.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"
+msgstr ""
+"Χρήση: %s [ΕΠΙΛΟΓΉ]\n"
+"Διαχείριση συσκευής αποθήκευσης ταινίας, αποδοχή εντολών από απομακρυσμένη διεργασία.\n"
+"\n"
+" --version Εμφάνιση πληροφοριών έκδοσης.\n"
+" --help Εμφάνιση αυτής της βοήθειας.\n"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid ""
+"\n"
+"Report bugs to <bug-tar@gnu.org>.\n"
+msgstr ""
+"\n"
+"Αναφορά σφαλμάτων στο <bug-tar@gnu.org>.\n"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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"
+"Μπορείτε να το αναδιανέμεται υπό τους όρους της GNU General Public License;\n"
+"δείτε το αρχείο με όνομα COPYING για λεπτομέρειες."
+
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Η μετατόπιση αναζήτησης είναι εκτός εύρους"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Η κατεύθυνση αναζήτησης είναι εκτός εύρους"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Πρόωρο eof (τέλος αρχείου)\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Πρόωρο τέλος αρχείου"
+
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Εντολή απορριμμάτων %c\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Εντολή απορριμμάτων"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Μη διαθέσιμη υπηρεσία"
+
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "κανονική είσοδος"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "κανονική έξοδος"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Δεν είναι δυνατή η εκτέλεση απομακρυσμένου κελύφους (φλοιού)"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Οι επιλογές `-%s' και `-%s' απαιτούν κανονική είσοδο"
+
+#: src/tar.c:292
+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' αποθηκεύει πολλά αρχεία μαζί σε μία μόνο ταινία (tape) ή σε μία αρχειοθήκη δίσκου (disk archive),\n"
+" και μπορεί να επαναφέρει ξεχωριστά αρχεία από την αρχειοθήκη.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Χρήση: %s [ΕΠΙΛΟΓΈΣ]... [ΑΡΧΕΊΟ]...\n"
+"\n"
+"Παραδείγματα:\n"
+" %s -cf archive.tar foo bar # Δημιουργεί το archive.tar από τα αρχεία foo και bar.\n"
+" %s -tvf archive.tar # Εμφανίζει σε λίστα όλα τα αρχεία από το archive.tar με λεπτομέρειες.\n"
+" %s -xf archive.tar # Εξάγει όλα τα αρχεία από το archive.tar.\n"
+
+#: src/tar.c:303
+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"
+"Παρομοίως για προαιρετικά ορίσματα.\n"
+
+#: src/tar.c:308
+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 μόνο προσθέτει αρχεία νεότερα από ότι αυτά στο αντίγραφο της αρχειοθήκης\n"
+" -A, --catenate προσθέτει αρχεία tar σε μία αρχειοθήκη\n"
+" --concatenate ίδιο όπως -A\n"
+" --delete διαγράφει από μία αρχειοθήκη (όχι γιαμαγνητικές ταινίες)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Τροποποιητές λειτουργίας:\n"
+" -W, --verify προσπάθεια για επιβεβαίωση της αρχειοθήκης μετά από την εγγραφή της\n"
+" --remove-files απομακρύνει τα αρχεία μετά την προσθήκη τους στην αρχειοθήκη\n"
+" -k, --keep-old-files δεν αντικαθιστά τα υπάρχοντα αρχεία κατά την εξαγωγή τους\n"
+" --overwrite αντικαθιστά τα υπάρχοντα αρχεία κατά την εξαγωγή τους\n"
+" --overwrite-dir αντικαθιστά καταλόγους με τα δεδομένα κατά την εξαγωγή τους\n"
+" -U, --unlink-first απομακρύνει κάθε σύνδεσμο αρχείου για να τα εξάγει\n"
+" --recursive-unlink καθορίζει τις ιεραρχικότητες των συνδέσμων των αρχείων για να τα εξάγει\n"
+" -S, --sparse χειρίζεται τα αραιά αρχεία αποτελεσματικά\n"
+" -O, --to-stdout εξάγει τα αρχεία στην κανονική έξοδο\n"
+" -G, --incremental χειρίζεται τα παλιά GNU-format αυξανόμενα αντίγραφα\n"
+" -g, --listed-incremental=FILE\n"
+" χειρίζεται τα νέα GNU-format αυξανόμενα αντίγραφα\n"
+" --ignore-failed-read αποφυγή τερματισμού κατά μη-μηδενικά ή μη-αναγνώσιμα αρχεία\n"
+
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Χειρισμός αρχείων ιδιοτήτων:\n"
+" --owner=ΌΝΟΜΑ ρύθμιση ΌΝΟΜΑ ως ιδιοκτήτης για τα πρόσθετα αρχεία\n"
+" --group=ΌΝΟΜΑ εξαναγκασμός ΌΝΟΜΑ ως ομάδα για τα πρόσθετα αρχεία\n"
+" --mode=ΑΛΛΑΓΈΣ εξαναγκασμός (συμβολικών) κατάστασης ΑΛΛΑΓΈΣ για τα πρόσθετα αρχεία\n"
+" --atime-preserve να μην αλλάξει η ώρα προσπέλασης στα αποθηκευμένα αρχεία\n"
+" -m, --modification-time να μην γίνει εξαγωγή της ώρας τροποποίησης αρχείου\n"
+" --same-owner προσπάθεια εξαγωγής αρχείων με την ίδια ιδιοκτησία\n"
+" --no-same-owner εξαγωγή αρχείων ως ο εαυτός σου\n"
+" --numeric-owner πάντα να χρησιμοποιείται αριθμούς για τα ονόματα χρήστη/ομάδα\n"
+" -p, --same-permissions εξαγωγή πληροφοριών δικαιωμάτων\n"
+" --no-same-permissions να μην γίνει εξαγωγή πληροφοριών δικαιωμάτων\n"
+" --preserve-permissions ίδιο όπως -p\n"
+" -s, --same-order ταξινόμηση ονομάτων για εξαγωγή για ταίριασμα με αρχειοθήκη\n"
+" --preserve-order ίδιο όπως -s\n"
+" --preserve ίδιο όπως -p και -s\n"
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Επιλογή συσκευής και εναλλαγή:\n"
+" -f, --file=ΑΡΧΕΙΟΘΉΚΗ χρησιμοποίησε αρχείο αρχειοθήκης ή συσκευή ΑΡΧΕΙΟΘΉΚΗς\n"
+" --force-local το αρχείο αρχειοθήκης είναι τοπικό ακόμα και εάν είχε άνω στιγμή\n"
+" --rsh-command=ΕΝΤΟΛΉ χρησιμοποίησε απομακρυσμένη ΕΝΤΟΛΉ αντί για rsh\n"
+" -[0-7][lmh] καθόρισε συσκευή και πυκνότητα\n"
+" -M, --multi-volume δημιουργία/λίστα/εξαγωγή πολλαπλών αρχειοθηκών\n"
+" -L, --tape-length=ΑΡΙΘΜ αλλαγή ταινίας αφού γραφτούν ΑΡΙΘΜ x 1024 byte\n"
+" -F, --info-script=ΑΡΧΕΊΟ εκτέλεσε ΑΡΧΕΊΟ στο τέλος κάθε ταινίας (υπονοείται -M)\n"
+" --new-volume-script=ΑΡΧΕΊΟ ίδιο όπως -F ΑΡΧΕΙΟ\n"
+" --volno-file=ΑΡΧΕΊΟ χρησιμοποιεί/ανανεώνει τον αριθμό του τόμου στο ΑΡΧΕΊΟ\n"
+
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Διάταξη ομαδοποίησης:\n"
+" -b, --blocking-factor=ΜΠΛΟΚ ΜΠΛΟΚ x 512 byte ανά εγγραφή\n"
+" --record-size=ΜΈΓΕΘΟΣ ΜΈΓΕΘΟΣ byte ανά εγγραφή, πολλαπλάσιο του 512\n"
+" -i, --ignore-zeros παράβλεψη μηδενικών μπλοκ στην αρχειοθήκη (δηλαδή EOF)\n"
+" -B, --read-full-records δημιουργία ξανά μπλοκ κατά την ανάγνωση (για σωληνώσεις σε 4.2BSD)\n"
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Επιλογή μορφής αρχείοθήκης:\n"
+" -V, --label=ΌΝΟΜΑ δημιουργία αρχειοθήκης με όνομα τόμου ΌΝΟΜΑ\n"
+" ΣΧΈΔΙΟ κατά την ώρα λίστας/εξαγωγής,ένα ΣΧΈΔΙΟ ταιριάσματος\n"
+" -o, --old-archive, --portability γράφω μία αρχειοθήκη μορφής V7\n"
+" --posix γράφω μία αρχειοθήκη μορφής POSIX\n"
+" -j, --bzip2 φιλτράρισμα αρχειοθήκης μέσα από bzip2\n"
+" -z, --gzip, --ungzip φιλτράρισμα αρχειοθήκης μέσα από gzip\n"
+" -Z, --compress, --uncompress φιλτράρισμα αρχειοθήκης μέσα από compress\n"
+" --use-compress-program=ΠΡΟΓΡ φιλτράρισμα μέσα από ΠΡΟΓΡ (πρέπει να δεχτεί -d)\n"
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Επιλογές τοπικών αρχείων:\n"
+" -C, --directory=ΚΑΤΑΛ άλλαξε στον κατάλογο ΚΑΤΑΛ\n"
+" -T, --files-from=ΌΝΟΜΑ πάρε ονόματα από το αρχείο ΌΝΟΜΑ για εξαγωγή/δημιουργία\n"
+" --null -T διαβάζει κενά-τελικά ονόματα, απενεργοποιεί με -C\n"
+" --exclude=ΣΧΈΔΙΟ αποκλείει αρχεία, δοσμένα ως ΣΧΈΔΙΟ\n"
+" -X, --exclude-from=ΑΡΧΕΊΟ αποκλείει σχέδια που εμφανίζονται στο FILE\n"
+" --anchored αποκλείει σχέδια που ταιριάζουν τα ονόματα των αρχικών αρχείων (προεπιλογή)\n"
+" --no-anchored αποκλείει σχέδια που ταιριάζουν με καθένα /\n"
+" --ignore-case παράληψη αγνοώντας τα πεζά\n"
+" --no-ignore-case παράληψη σε διάκριση πεζών-κεφαλαίων (προεπιλογή)\n"
+" --wildcards αποκλείει σχέδια χρησιμοποιώντας σύμβολα (προεπιλογή)\n"
+" --no-wildcards αποκλείει σχέδια που είναι απλά κείμενα\n"
+" --wildcards-match-slash αποκλείει σχέδια που ταιριάζουν σε σύμβολα '/' (προεπιλογή)\n"
+" --no-wildcards-match-slash αποκλείει σχέδια που δεν ταιριάζουν σε σύμβολα '/'\n"
+" -P, --absolute-names δεν αφαιρεί αρχικό `/'s από τα ονόματα των αρχείων\n"
+" -h, --dereference αποθηκεύει αντί για τα αρχεία συμβολικούς δεσμούς που δείχνουν σε αυτά\n"
+" --no-recursion αποφεύγει αυτόματη κάθοδος στους καταλόγους\n"
+" -l, --one-file-system μένει στο τοπικό σύστημα αρχείων κατά την δημιουργία αρχειοθήκης\n"
+" -K, --starting-file=ΌΝΟΜΑ αρχίζει στο αρχείο ΌΝΟΜΑ μέσα στην αρχειοθήκη\n"
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=ΗΜΕΡΟΜΗΝΊΑ αποθήκευσε μόνο αρχεία νεώτερα από την ΗΜΕΡΟΜΉΝΙΑ\n"
+" --newer-mtime=ΗΜΕΡΟΜΗΝΊΑ σύγκρινε ημερομηνία και ώρα μόνο όταν τα δεδομένα τροποποιούνται\n"
+" --after-date=ΗΜΕΡΟΜΗΝΊΑ ίδιο όπως -N\n"
+
+#: src/tar.c:418
+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"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Εμφάνιση πληροφοριών:\n"
+" --help τύπωμα αυτής της βοήθειας, έπειτα έξοδος\n"
+" --version τύπωμα αριθμού έκδοσης του προγράμματος tar, έπειτα έξοδος\n"
+" -v, --verbose εμφάνιση ονομάτων αρχείων κατά την επεξεργασία τους\n"
+" --checkpoint τύπωσε τα ονόματα των καταλόγων κατά την ανάγνωση της αρχειοθήκης\n"
+" --totals τύπωσε συνολικά byte γραμμένα κατά την δημιουργία της αρχειοθήκης\n"
+" -R, --block-number εμφάνισε αριθμό μπλοκ μέσα στην αρχειοθήκη σε κάθε μήνυμα\n"
+" -w, --interactive ρώτησε για επιβεβαίωση για κάθε ενέργεια\n"
+" --confirmation ίδιο όπως -w\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+"Η κατάληξη αντιγράφου είναι `~', εκτός εάν τεθεί --suffix ή με SIMPLE_BACKUP_SUFFIX.\n"
+"Ο έλεγχος της έκδοσης μπορεί να τεθεί με --backup ή με VERSION_CONTROL, οι τιμές είναι:\n"
+"\n"
+" t, numbered κάνε αριθμημένα αντίγραφα\n"
+" nil, existing αρίθμησε-τα ακόμα και εάν είναι αριθμημένα, απλά διαφορετικά\n"
+" never, simple πάντα κάνε απλά αντίγραφα\n"
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"Το GNU tar δεν μπορεί να αναγνώσει είτε να παράγει αρχειοθήκες `--posix'.\n"
+"Εάν στο περιβάλλον έχει τεθεί POSIXLY_CORRECT, οι επεκτάσεις GNU δεν επιτρέπονται με `--posix'.\n"
+"Η υποστήριξη για POSIX είναι μόνο μερικών υλοποιημένη, μην βασίζεστε πάνω σε αυτήν ακόμα.\n"
+"Η ΑΡΧΕΙΟΘΉΚΗ μπορεί να είναι ΑΡΧΕΊΟ, ΔΙΑΚΟΜΙΣΤΉΣ:ΑΡΧΕΊΟ ή ΧΡΉΣΤΗΣ@ΔΙΑΚΟΜΙΣΤΉΣ:ΑΡΧΕΊΟ; \n"
+"Η ΗΜΕΡΟΜΉΝΙΑ μπορεί να είναι σε μορφή κειμένου ή ένα όνομα αρχείου\n"
+"όπου αρχίζει με `/' ή `.', στην οποία περίπτωση η ημερομηνία του αρχείου χρησιμοποιείτε.\n"
+"*Τούτη* η εντολή `tar' χρησιμοποιεί εξ ορισμού `-f%s -b%d'.\n"
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Ίσως δεν καθορίσατε παραπάνω από μία επιλογή `-Acdtrux'"
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Συγκρουόμενες επιλογές συμπίεσης"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Παλιά επιλογή `%c' απαιτεί όρισμα."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Εκτός χρήσης επιλογή, τώρα συνεπάγεται από το --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --blocking-factor"
+
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Άκυρος συντελεστής ομαδοποίησης"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --read-full-records"
+
+#: src/tar.c:696
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Προειδοποίηση: η -I επιλογή δεν υποστηρίζεται; ίσως εννοούσατε την -j ή την -T;"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "Άκυρο μέγεθος ταινίας"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr "Παραπάνω από ένα όριο ημερομηνίας"
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Το αρχείο ημερομηνίας δεν βρέθηκε"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Αντικατάσταση %s για άγνωστη διαμόρφωση ημερομηνίας %s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "Συγκρουόμενες επιλογές διαμόρφωσης αρχειοθήκης"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Προειδοποίηση: η επιλογή -y δεν υποστηρίζεται; ίσως εννοούσατε -j;"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Άκυρη ομάδα"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Άκυρη κατάσταση δόθηκε σε επιλογή"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Άκυρος ιδιοκτήτης"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Άκυρο μέγεθος εγγραφής"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Το μέγεθος της εγγραφής πρέπει να είναι πολλαπλάσιο του %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Οι επιλογές `-[0-7][lmh]' δεν υποστηρίζονται από *αυτήν* την εντολή tar"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Γράφτηκε από τους John Gilmore και Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Τα χαρακτηριστικά GNU απαιτούν μη συμβατή διαμόρφωση αρχειοθήκης"
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Πολλαπλά αρχεία αρχειοθηκών απαιτούν την επιλογή `-M'"
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Δεν είναι δυνατός ο συνδυασμός --listed-incremental με --newer"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: Η ετικέτα του τόμου είναι πολύ μεγάλη (το όριο είναι %lu byte)"
+
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Αρνούμαι δειλά στη δημιουργία μίας κενής αρχειοθήκης"
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Οι επιλογές `-Aru' δεν είναι συμβατές με `-f -'"
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Πρέπει να καθορίσεις μία από τις επιλογές `-Acdtrux'"
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Σφάλμα κατά την εγγραφή στην κανονική έξοδο"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Καθυστέρησε το σφάλμα εξόδου από προηγούμενα σφάλματα"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: Το αρχείο συρρικνώθηκε κάτα %s byte"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Παράγει αρχεία δεδομένων για δοκιμαστική πλατφόρμα GNU tar.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Χρήση: %s [ΕΠΙΛΟΓΉ]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Εάν μία μεγάλη επιλογή εμφανίζει ένα όρισμα ως υποχρεωτικό, τότε αυτό\n"
+"είναι υποχρεωτικό και για την αντίστοιχη μικρή επιλογή επίσης.\n"
+"\n"
+" -l, --file-length=ΜΉΚΟΣ Το ΜΉΚΟΣ του παραγομένου αρχείου\n"
+" -p, --pattern=ΜΟΤΊΒΟ Το ΜΟΤΊΒΟ είναι το `default' ή `zeros'\n"
+" --help εμφάνισης αυτής της βοήθειας και τερματισμός\n"
+" --version εμφάνιση πληροφοριών έκδοσης και τερματισμός\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr ""
+"Γράφτηκε από τον F. Pinard.\n"
+"Μεταφράστηκε από τον Μπαλάσκα Ευάγγελο."
diff --git a/po/.reference/el.s1 b/po/.reference/el.s1
new file mode 100644
index 00000000..1a1b6123
--- /dev/null
+++ b/po/.reference/el.s1
@@ -0,0 +1 @@
+85ae5192ac7d9386693d5f2a317402a1c453e312 -
diff --git a/po/.reference/es.po b/po/.reference/es.po
new file mode 100644
index 00000000..8c3b33dd
--- /dev/null
+++ b/po/.reference/es.po
@@ -0,0 +1,2776 @@
+# Mensajes en espaol para GNU tar.
+# Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+# Federico Rivas <frivas@arrakis.es>, 1997.
+# Enrique Melero <melero@iprolink.ch>, 1997.
+# Santiago Vila Doncel <sanvila@unex.es>, 1998, 1999, 2000, 2001, 2002, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.15.1\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2004-12-21 17:11+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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/argmatch.c:137
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumento %s invlido para %s"
+
+#: lib/argmatch.c:138
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argumento %s ambiguo para %s"
+
+#: lib/argmatch.c:157
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Los argumentos vlidos son:"
+
+#: lib/error.c:123 rmt/rmt.c:92
+msgid "Unknown system error"
+msgstr "Error del sistema desconocido"
+
+#: lib/getopt.c:551 lib/getopt.c:570
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: la opcin `%s' es ambigua\n"
+
+#: lib/getopt.c:603 lib/getopt.c:607
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: la opcin `--%s' no admite ningn argumento\n"
+
+#: lib/getopt.c:616 lib/getopt.c:621
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: la opcin `%c%s' no admite ningn argumento\n"
+
+#: lib/getopt.c:667 lib/getopt.c:689 lib/getopt.c:1020 lib/getopt.c:1042
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: la opcin `%s' requiere un argumento\n"
+
+#: lib/getopt.c:727 lib/getopt.c:730
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opcin no reconocida `--%s'\n"
+
+#: lib/getopt.c:738 lib/getopt.c:741
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opcin no reconocida `%c%s'\n"
+
+#: lib/getopt.c:796 lib/getopt.c:799
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opcin ilegal -- %c\n"
+
+#: lib/getopt.c:805 lib/getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opcin invlida -- %c\n"
+
+#: lib/getopt.c:863 lib/getopt.c:882 lib/getopt.c:1095 lib/getopt.c:1116
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: la opcin requiere un argumento -- %c\n"
+
+#: lib/getopt.c:935 lib/getopt.c:954
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: la opcin `-W %s' es ambigua\n"
+
+#: lib/getopt.c:978 lib/getopt.c:999
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: la opcin `-W %s' no admite ningn argumento\n"
+
+#: lib/human.c:484
+msgid "block size"
+msgstr "tamao del bloque"
+
+#: lib/quotearg.c:240
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:241
+msgid "'"
+msgstr "'"
+
+#: lib/rtapelib.c:297
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Servicio no disponible"
+
+#: lib/rtapelib.c:301
+msgid "stdin"
+msgstr "entrada estndar (stdin)"
+
+#: lib/rtapelib.c:304
+msgid "stdout"
+msgstr "salida estndar (stdout)"
+
+#: lib/rtapelib.c:512
+msgid "Cannot execute remote shell"
+msgstr "No se puede ejecutar un shell remoto"
+
+#: lib/argp-help.c:194
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: El parmetro ARGP_HELP_FMT necesita un valor"
+
+#: lib/argp-help.c:203
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Parmetro ARGP_HELP_FMT desconocido"
+
+#: lib/argp-help.c:215
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Incongruencia en ARGP_HELP_FMT: %s"
+
+#: lib/argp-help.c:1188
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr ""
+"Los argumentos obligatorios u opcionales para las opciones largas son tambin\n"
+"obligatorios u opcionales para las opciones cortas correspondientes."
+
+#: lib/argp-help.c:1575
+msgid "Usage:"
+msgstr "Modo de empleo:"
+
+#: lib/argp-help.c:1579
+msgid " or: "
+msgstr " o bien: "
+
+#: lib/argp-help.c:1591
+msgid " [OPTION...]"
+msgstr " [OPCIN...]"
+
+#: lib/argp-help.c:1618
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Pruebe `%s --help' o `%s --usage' para ms informacin.\n"
+
+# Por favor, no me digis cmo se traduce bug.
+# Gerardo lo ha visto traducido en un libro como "pulgas", y yo
+# lo he visto como "chinche" en la "Investigacin y Ciencia".
+# Est claro que as no vamos a ninguna parte.
+# Yo dira simplemente `fallos [ocultos]'. Es lo que significa, en realidad,
+# en el contexto informtico, razones histricas aparte de bichos anidando
+# al calorcito de los tubos de vaco de los primeros computadores. gerardo
+# De "ocultos" nada... Este vamos a dejarlo, vale? sv
+# T mandas, pero cmo que de ocultos nada? Si no fueran ocultos, el progra-
+# ma no vera la luz an, no? Pero observa que he puesto el `ocultos' entre
+# corchetes. Yo pondra "bug -> fallo" simplemente. Comunicar fallos a... gerardo
+# Que no vera la luz si no fueran ocultos? Ja, ja, ja, ja...
+# Mira por ejemplo en http://nl.debian.org/Bugs.
+# No tendra sentido catalogarlos entonces?
+#
+# Vase "A Bug's life".
+#: lib/argp-help.c:1646 src/tar.c:1252
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Comunicar bichos a %s.\n"
+
+#: rmt/rmt.c:144
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: No se puede asignar espacio para el bfer\n"
+
+#: rmt/rmt.c:146
+msgid "Cannot allocate buffer space"
+msgstr "No se puede asignar espacio para el bfer"
+
+#: rmt/rmt.c:256
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Pruebe `%s --help' para ms informacin.\n"
+
+#: rmt/rmt.c:260
+#, 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 [OPCIN]\n"
+"Manipula una unidad de cinta, aceptando rdenes de un proceso remoto.\n"
+"\n"
+" --version Muestra la versin.\n"
+" --help Muestra esta ayuda.\n"
+
+# Por favor, no me digis cmo se traduce bug.
+# Gerardo lo ha visto traducido en un libro como "pulgas", y yo
+# lo he visto como "chinche" en la "Investigacin y Ciencia".
+# Est claro que as no vamos a ninguna parte.
+# Yo dira simplemente `fallos [ocultos]'. Es lo que significa, en realidad,
+# en el contexto informtico, razones histricas aparte de bichos anidando
+# al calorcito de los tubos de vaco de los primeros computadores. gerardo
+# De "ocultos" nada... Este vamos a dejarlo, vale? sv
+# T mandas, pero cmo que de ocultos nada? Si no fueran ocultos, el progra-
+# ma no vera la luz an, no? Pero observa que he puesto el `ocultos' entre
+# corchetes. Yo pondra "bug -> fallo" simplemente. Comunicar fallos a... gerardo
+# Que no vera la luz si no fueran ocultos? Ja, ja, ja, ja...
+# Mira por ejemplo en http://nl.debian.org/Bugs.
+# No tendra sentido catalogarlos entonces?
+#
+# Vase "A Bug's life".
+#: rmt/rmt.c:267
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Comunicar bichos a <%s>.\n"
+
+#: rmt/rmt.c:301
+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 ""
+"Este programa viene sin NINGUNA GARANTA, hasta donde permite la ley.\n"
+"Puede redistribuirse bajo los trminos de la Licencia Pblica General de GNU;\n"
+"vea el fichero llamado COPYING para ms informacin."
+
+#: rmt/rmt.c:400 rmt/rmt.c:520 rmt/rmt.c:530
+msgid "Seek offset out of range"
+msgstr "Desplazamiento fuera de rango"
+
+#: rmt/rmt.c:413
+msgid "Seek direction out of range"
+msgstr "Direccin de desplazamiento fuera de rango"
+
+# FIXME. Este es el nico eof en minsculas.
+#: rmt/rmt.c:452
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Fin de fichero prematuro\n"
+
+#: rmt/rmt.c:454
+msgid "Premature end of file"
+msgstr "Fin de fichero prematuro"
+
+# "no reconocida" me pareca muy suave para "garbage". sv
+# OJO: Casi el mismo mensaje.
+#: rmt/rmt.c:562
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Orden ininteligible %c\n"
+
+#: rmt/rmt.c:564
+msgid "Garbage command"
+msgstr "Orden ininteligible"
+
+# No es mejor "Total de bytes escritos: "?
+# Suena ms directo y ms similar al original,
+# "bytes escritos en total" suena demasiado complejo... Nicols Lichtmaier.
+# Suena algo extrao eso de "total de bytes". "en total" me suena
+# mucho ms natural. sv
+#: src/buffer.c:263
+#, c-format
+msgid "Total bytes written: %s (%s, %s/s)\n"
+msgstr "Bytes escritos en total: %s (%s, %s/s)\n"
+
+# Antes de que nadie diga nada:
+#
+# Si a alguien no le gusta la palabra tubera (que aparece en algunos
+# libros sobre MS-DOS y es la que venimos usando desde el principio) que
+# haga una propuesta seria de cambio, pero que sepa que abriramos la caja
+# de Pandora, pues hay muchas palabras posibles para pipe: tubera,
+# conducto, caera, canal, etc.
+#
+# En cuanto a poner (pipe) entre parntesis, es una mala costumbre que
+# deberamos desterrar ya. Eso se hace en los libros la primera vez, pero
+# aqu no slo no hay primera vez, sino que el mismo mensaje puede
+# aparecer *varias* veces, y entonces s que es una paliza.
+# Ejemplo de paliza: "tubera rota" en libc. Sale muchsimo y no es
+# cuestin de ver (pipe) cuarenta veces al da...
+#: src/buffer.c:340
+msgid "(pipe)"
+msgstr "(tubera)"
+
+# No queda ms bonita la 1 comilla abierta as: `record_size'?
+# S. FIXME. Comunicar al autor. sv
+#: src/buffer.c:388
+msgid "Invalid value for record_size"
+msgstr "El valor de `record_size' no es vlido"
+
+#: src/buffer.c:391
+msgid "No archive name given"
+msgstr "No se ha especificado ningn nombre de archivo"
+
+# FIXME: Si la entrada/salida estndar no es un archivo, por qu el
+# original se refiere a ella como tal?
+#
+# En cierto sentido, s es un archivo, o se puede emplear como tal.
+# Tar al menos la trata as, en `tar -f -' (o sin la opcin -f en este
+# GNU tar)'; luego la E/S std. puede ser un archivo "real" de disco:
+# tar ... -f - > arch.tar gerardo
+#
+# Esto corresponde a la opcin --verify.
+# Ejemplos: "tar cWf - ." y "tar xWf -"
+# o sea que una traduccin correcta se vera ms como:
+# "No se puede verificar un archivo desde/hacia la entrada/salida estndar"
+# o algo as. Quiz "No se puede verificar un archivo tomado de la entrada
+# estndar o escrito hacia la salida estndar", pero es un poco largo.. =)
+#
+#: src/buffer.c:441
+msgid "Cannot verify stdin/stdout archive"
+msgstr "No se puede verificar la entrada/salida estndar"
+
+#: src/buffer.c:454
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "El archivo est comprimido. Utilice la opcin %s"
+
+# Ojo que esto podra referirse a "is not being labelled NOW" en vez de
+# "isn't labelled". Pero no tengo los fuentes para ver la intencin
+# original. nl
+# Si no se sabe eso, se podra dejar de forma ms neutra como
+# "Archivo no etiquetado para concordancia con `%s'" - gerardo (gag)
+# FIXME: Preguntar.
+#: src/buffer.c:526
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "El archivo no est etiquetado para que coincida con %s"
+
+#: src/buffer.c:529 src/buffer.c:896
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "El volumen %s no coincide con %s"
+
+#: src/buffer.c:567
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Punto de comprobacin de escritura %d"
+
+#: src/buffer.c:654
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header"
+msgstr ""
+"%s: el nombre del fichero es demasiado largo para almacenarse en una cabecera\n"
+"multivolumen de GNU"
+
+#: src/buffer.c:733
+msgid "At beginning of tape, quitting now"
+msgstr "Al principio de la cinta, se terminar ahora"
+
+#: src/buffer.c:739
+msgid "Too many errors, quitting"
+msgstr "Demasiados errores, abandono"
+
+#: src/buffer.c:765
+#, c-format
+msgid "Read %s bytes from %s"
+msgstr "Ledos %s bytes como %s"
+
+#: src/buffer.c:777
+#, 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:797
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Tamao del registro = %lu bloque"
+msgstr[1] "Tamao del registro = %lu bloques"
+
+#: src/buffer.c:814
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Punto de comprobacin de lectura %d"
+
+#: src/buffer.c:905 src/extract.c:1100
+#, c-format
+msgid "Reading %s\n"
+msgstr "Leyendo %s\n"
+
+#: src/buffer.c:909
+msgid "WARNING: No volume header"
+msgstr "ATENCIN: No hay cabecera de volumen"
+
+#: src/buffer.c:917
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s no contina en este volumen"
+
+#: src/buffer.c:931
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s tiene un tamao errneo (%s != %s + %s)"
+
+# Sugerencia: est fuera de secuencia -> no est en orden. sv
+# Creo recordar que en el CPBackup de Central Point pona lo de "fuera de
+# secuencia". fr
+# Buena referencia :-).
+# El comentario habr que conservarlo en la versin final. sv
+# Bueno, la verdad es que ahora que lo pienso, me parece una mala
+# traduccin... opiniones? sv
+# Me parece correcta la traduccin "literal", pero me gusta
+# ms tu sugerencia - gerardo
+# El problema es que un volumen individual no puede estar desordenado.
+# Lo que est ordenado o no es la sucesin entera.
+# Un volumen individual puede estar fuera de lugar, pero no desordenado
+# l solito.
+# Todava espero una solucin mgica que sea mejor que las dos
+# que tenemos hasta ahora.
+#: src/buffer.c:943
+msgid "This volume is out of sequence"
+msgstr "Este volumen est fuera de secuencia"
+
+#: src/buffer.c:1025
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "No se puede ir hacia atrs en el archivo; puede ser ilegible sin -i"
+
+#: src/buffer.c:1057
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek no par en los lmites de un registro"
+
+#: src/buffer.c:1108
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: contiene un nmero de volumen invlido"
+
+#: src/buffer.c:1160
+msgid "Volume number overflow"
+msgstr "Desbordamiento en el nmero de volumen"
+
+#: src/buffer.c:1179
+#, c-format
+msgid "`%s' command failed"
+msgstr "La orden `%s' fall"
+
+#: src/buffer.c:1188
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Prepare el volumen #%d para %s y pulse intro: "
+
+#: src/buffer.c:1194
+msgid "EOF where user reply was expected"
+msgstr "Se encontr un final de fichero mientras se esperaba respuesta del usuario"
+
+#: src/buffer.c:1199 src/buffer.c:1229
+msgid "WARNING: Archive is incomplete"
+msgstr "ATENCIN: El archivo est incompleto"
+
+# Antes de que nadie diga nada:
+# shell admite muchas traducciones, caparazn, concha, envoltorio, coraza,
+# etc. pero ninguna ha prosperado. Adems, algunos nombres son innombrables
+# en ciertos pases, as que mejor dejarlo como est.
+# Y si no se traduce, se queda en *el* shell, es decir, *neutro*.
+#
+# Ya que volmenes se acenta, habra que poner "volumen/volmenes"
+# en lugar de "volumen(es)"?
+# No me gusta, ya que slo es plural con la parte entre parntesis "(y consecutivos)". fr
+# Creo que esta bien as Gerardo. em+
+# # Cuidadn. El nombre de archivo se le da *al* volumen? Literalmente
+# # dice que da un nuevo nombre *para* el sgute. volumen, pero ese
+# # nombre es el del volumen? No entiendo bien el contexto; quiz
+# # habra que mirar el cdigo fuente o ver cundo sale este
+# # mensaje.
+# # Otra cosa es eso de "abortar". No s si se habr tratado en
+# # spanglish o en es@li.org, pero suena muy feo, no? Quiz "Sale
+# # inmediatamente de tar".
+#
+# "Print this list" es exactamente "Imprime esta lista" o a lo sumo "Muestra
+# esta lista". No veo que diga ayuda en ninguna parte, no creo que un
+# traductor deba ser ms inteligente que el escritor original.. =) nl
+# Yo creo que a veces s :-) sv
+# S, un programador no tiene por qu ser buen escritor :-) En un fortune me
+# sali una vez: "Los que no saben escribir, escriben manuales". :-)
+# A m aqu me da igual lista que ayuda, de las dos formas se entiende. Manda
+# el traductor original. gerardo
+# A alguien ms le parece mal que ponga ayuda en vez de lista? sv
+#: src/buffer.c:1213
+#, c-format
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nombre] Da un nuevo nombre de archivo al siguiente\n"
+" (y consecutivos) volumen(es)\n"
+" q Aborta tar\n"
+" ! Lanza un subshell\n"
+" ? Muestra esta ayuda\n"
+
+# "saliendo"->"finalizando". jmg
+# Je, je, no has ledo, Santiago, el `dardo' de Fdo. Lzaro Carreter sobre
+# finalizar? No s por qu quitar lo de salir, to exit es salir, no acabar.
+# Uno se sale del programa, y ste acaba. En realidad, tambin da igual, de
+# cualquier forma se entiende, pero mejor acabar o terminar que finalizar,
+# total, son sinnimos. gerardo
+#: src/buffer.c:1224
+msgid "No new volume; exiting.\n"
+msgstr "No hay volumen nuevo; finalizando.\n"
+
+#: src/compare.c:105
+#, c-format
+msgid "Could only read %lu of %lu byte"
+msgid_plural "Could only read %lu of %lu bytes"
+msgstr[0] "Slo se pudieron leer %lu de %lu byte"
+msgstr[1] "Slo se pudieron leer %lu de %lu bytes"
+
+#: src/compare.c:116 src/compare.c:132
+msgid "Contents differ"
+msgstr "El contenido es distinto"
+
+#: src/compare.c:158 src/extract.c:763 src/incremen.c:496 src/list.c:235
+#: src/list.c:412 src/list.c:1282
+msgid "Unexpected EOF in archive"
+msgstr "Fin de fichero inesperado en el archivo"
+
+# "Verifica ". Supongo que depende de si se concatena en algn
+# mensaje. jmg
+# FUZZY. Es verdad, habr que verlo.
+#: src/compare.c:212
+#, c-format
+msgid "Verify "
+msgstr "Verificar "
+
+# # Quiz diffed es el participio de diff, siendo esto un verbo tomado
+# # del nombre del programa diff? Entonces querra decir que se ha
+# # efectuado un diff como si el *fichero* hubiera sido normal. Yo slo
+# # cambiara "se toma" por "se ha tomado". gag
+# Es norma habitual convertir un pasado en un presente en estos casos.
+# Realmente, dice lo que hace y no lo que ha hecho. sv
+# FIXME. Decirle al autor que estandarice las comillas: '%c' o `%c'?
+# De momento lo estandarizo en la traduccin.
+#: src/compare.c:219
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr ""
+"%s: Tipo de fichero `%c' desconocido, se toma la diferencia\n"
+"como fichero normal"
+
+#: src/compare.c:242 src/compare.c:364 src/compare.c:416 src/compare.c:443
+msgid "File type differs"
+msgstr "El tipo de fichero es distinto"
+
+# El autor quera un mensaje muy conciso, y en la traduccin se expande a una
+# oracin completa.. Por qu? Debera ser "Distinto modo".
+# Porque el idioma ingls es ms corto. Si a cada frase corta le hago
+# corresponder siempre una frase corta espaola, el resultado sonar a indio
+# completamente (me refiero a los indios esos de las pelculas del oeste,
+# que solamente hablan con sustantivos, verbos y adjetivos). sv
+#: src/compare.c:249 src/compare.c:378 src/compare.c:422
+msgid "Mode differs"
+msgstr "El modo es distinto"
+
+#: src/compare.c:252
+msgid "Uid differs"
+msgstr "El uid es distinto"
+
+#: src/compare.c:254
+msgid "Gid differs"
+msgstr "El gid es distinto"
+
+#: src/compare.c:257
+msgid "Mod time differs"
+msgstr "La fecha de modificacin es distinta"
+
+#: src/compare.c:261 src/compare.c:451
+msgid "Size differs"
+msgstr "El tamao es distinto"
+
+# Creo que este enlace se efecta 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:319
+#, c-format
+msgid "Not linked to %s"
+msgstr "No se enlaza a %s"
+
+#: src/compare.c:342
+msgid "Symlink differs"
+msgstr "El enlace simblico es distinto"
+
+#: src/compare.c:372
+msgid "Device number differs"
+msgstr "El nmero de dispositivo es distinto"
+
+#: src/compare.c:500
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "El archivo contiene nombres de fichero con los prefijos iniciales eliminados."
+
+#: src/compare.c:502
+msgid "Verification may fail to locate original files."
+msgstr "Puede que la verificacin no encuentre los ficheros originales."
+
+#: src/compare.c:572
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "FALLO DE VERIFICACIN: %d cabecera invlida detectada"
+msgstr[1] "FALLO DE VERIFICACIN: %d cabeceras invlidas detectadas"
+
+#: src/create.c:145
+msgid "Generating negative octal headers"
+msgstr "Generando cabeceras octales negativas"
+
+#: src/create.c:196
+#, 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:202
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "valor %s fuera del rango %s %s..%s"
+
+#: src/create.c:481 src/create.c:544
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: el nombre del fichero es demasiado largo (mx %d); no se vuelca"
+
+#: src/create.c:491
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: el nombre del fichero es demasiado largo (no se puede dividir); no se vuelca"
+
+#: src/create.c:518
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: el nombre del enlace es demasiado largo; no se vuelca"
+
+# "se rellena" debera ser "rellenando". "se rellena" puede entenderse como
+# varias cosas, no queda claro que es lo que se esta haciendo, podra indicar
+# lo que se suele hacer.. =) "rellenando con ceros" es perfecto y es
+# exactamente lo que est escrito en el original. sv
+#
+# Que s, reconozco que la traduccin es un poco libre.
+# Pero mi intencin 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:884
+#, 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: El tamao del fichero ha disminuido en %s byte, se rellena con ceros"
+msgstr[1] "%s: El tamao del fichero ha disminuido en %s bytes, se rellena con ceros"
+
+#: src/create.c:910
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: el fichero cambi mientras se estaba leyendo"
+
+#: src/create.c:1051
+#, 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"
+
+#: src/create.c:1061
+#, c-format
+msgid "%s: contains a cache directory tag; not dumped"
+msgstr "%s: contiene una marca de directorio cach; no se vuelca"
+
+# ignore no es ignorar, es "no hacer caso"
+# se puede usar: no tener en cuenta, descartar, no tener efecto,
+# pasar por alto,
+# ignorar es "not to know". sv
+# Y cuando se ignora a una persona ;-)? fr
+# Lo mismo: Est mal dicho, se dice que no le haces caso a esa persona.
+# Si no me crees busca "ignore" en algn buen diccionario.
+# O mira la lista de pifias de ngel lvarez directamente.
+# La tengo en ftp.unex.es.
+# Lo siento, Santiago, hemos sido derrotados; "ignorar" ya viene en los
+# diccionarios de espaol, y creo que hasta en el DRAE, con el significado
+# que tiene en ingls "to ignore"; aunque nosotros podemos ignorarlo ;-)
+# y seguir en la ortodoxia castellana :-) gerardo
+# Seguiremos en la ortodoxia, pero an as, no puedo creerme que venga
+# en el DRAE. Ests seguro? sv
+# No, no me compr el DRAE. Pregntalo a spanglish (si te atreves ;-) gerardo
+#: src/create.c:1221
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipo de fichero desconocido; no se tendr en cuenta"
+
+#: src/create.c:1320
+#, c-format
+msgid "Missing links to '%s'.\n"
+msgstr "Faltan enlaces a '%s'.\n"
+
+#: src/create.c:1387
+#, 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:1395
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: el fichero es el propio archivo; no se vuelca"
+
+#: src/create.c:1430
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: El fichero fue borrado antes de leerlo"
+
+#: src/create.c:1523
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: el `socket' no se tendr en cuenta"
+
+#: src/create.c:1528
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: no se tendr en cuenta la puerta"
+
+#: src/delete.c:209 src/list.c:171 src/update.c:163
+msgid "This does not look like a tar archive"
+msgstr "Esto no parece un archivo tar"
+
+#: src/delete.c:215 src/list.c:185 src/update.c:168
+msgid "Skipping to next header"
+msgstr "Saltando a la siguiente cabecera"
+
+#: src/delete.c:280
+msgid "Deleting non-header from archive"
+msgstr "Borrando no-cabecera del archivo"
+
+#: src/extract.c:208
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: marca de fecha sospechosamente antigua %s"
+
+#: src/extract.c:211
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: la marca de tiempo %s est %lu s en el futuro"
+
+#: src/extract.c:359
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inconsistencia inesperada al crear el directorio"
+
+#: src/extract.c:478
+#, c-format
+msgid "Current `%s' is newer"
+msgstr "El `%s' actual es ms reciente"
+
+#: src/extract.c:590
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: El directorio fue renombrado antes de que se pudiera extraer su estado"
+
+#: src/extract.c:655
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: No se pudo hacer copia de seguridad de este fichero"
+
+# Nota: En Unix, se llama fichero *regular* al que no es ni un directorio,
+# 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 ms "normal"...
+#: src/extract.c:722
+msgid "Extracting contiguous files as regular files"
+msgstr "Extrayendo ficheros contiguos como ficheros regulares"
+
+# Enlaces fuertes? Aqu los profes. de Sistemas Operativos y otros
+# dicen "enlaces duros", y creo que los libros tambin lo ponen as. gag
+# Es una cuestin todava no dirimida.
+# Tienes algn dato ms? Qu dicen los libros? sv
+# Enlaces duros. Lo acabo de mirar en un libro. gag
+#: src/extract.c:908
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Intentando la extraccin de enlaces simblicos como enlaces duros"
+
+#: src/extract.c:1109
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: No se puede extraer -- el fichero es continuacin de otro volumen"
+
+# Me queda la duda de si lo que es visible es el error o el nombre largo... sv
+#: src/extract.c:1118
+msgid "Visible long name error"
+msgstr "Error de nombre largo visible"
+
+# FIXME. Lo de las comillas '%c'.
+# Como antes, lo estandarizo en la traduccin a pesar de todo.
+#: src/extract.c:1126
+#, 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:1211
+msgid "Error is not recoverable: exiting now"
+msgstr "El error no es recuperable: salida ahora"
+
+#: src/extract.c:1218
+msgid "memory exhausted"
+msgstr "memoria agotada"
+
+#: src/incremen.c:193
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: El directorio ha sido renombrado"
+
+#: src/incremen.c:205
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: El directorio es nuevo"
+
+#: src/incremen.c:354
+msgid "Invalid time stamp"
+msgstr "Marca de tiempo invlida"
+
+#: src/incremen.c:357
+msgid "Time stamp out of range"
+msgstr "Marca de tiempo fuera de rango"
+
+#: src/incremen.c:381
+msgid "Invalid device number"
+msgstr "Nmero de dispositivo invlido"
+
+#: src/incremen.c:385
+msgid "Device number out of range"
+msgstr "Nmero de dispositivo fuera de rango"
+
+#: src/incremen.c:393
+msgid "Invalid inode number"
+msgstr "Nmero de nodo-i invlido"
+
+#: src/incremen.c:397
+msgid "Inode number out of range"
+msgstr "Nmero de nodo-i fuera de rango"
+
+#: src/incremen.c:524
+#, 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:531
+#, 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:539
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Borrando %s\n"
+
+#: src/incremen.c:544
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: No se puede borrar"
+
+#: src/list.c:117
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Se omite"
+
+#: src/list.c:135
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloque %s: ** Bloque de NULos **\n"
+
+#: src/list.c:148
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Un bloque de ceros aislado en %s"
+
+#: src/list.c:159
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloque %s: ** Fin de Fichero **\n"
+
+#: src/list.c:182 src/list.c:1017 src/list.c:1244
+#, c-format
+msgid "block %s: "
+msgstr "bloque %s: "
+
+#: src/list.c:644
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Hay blancos en la cabecera cuando se esperaba el valor numrico %s"
+
+#: src/list.c:698
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr ""
+"El valor octal %.*s del archivo est fuera del rango %s;\n"
+"se supone complemento a dos"
+
+#: src/list.c:708
+#, 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:725
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "El archivo contiene cabeceras base 64 obsoletas"
+
+#: src/list.c:738
+#, 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:769
+#, 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"
+
+#: src/list.c:797
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "El archivo contiene %.*s donde se esperaba el valor numrico %s"
+
+#: src/list.c:818
+#, 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"
+
+# FIXME. Hay otro que se parece muchsimo. sv
+#: src/list.c:1048
+msgid "Visible longname error"
+msgstr "Error de nombre largo visible"
+
+#: src/list.c:1175
+#, c-format
+msgid " link to %s\n"
+msgstr " enlace a %s\n"
+
+#: src/list.c:1183
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tipo de fichero desconocido %s\n"
+
+#: src/list.c:1201
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Enlace largo--\n"
+
+#: src/list.c:1205
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nombre largo--\n"
+
+#: src/list.c:1209
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Cabecera de Volumen--\n"
+
+#: src/list.c:1217
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Contina en el byte %s--\n"
+
+#: src/list.c:1221
+#, c-format
+msgid "--Mangled file names--\n"
+msgstr "--Nombres de fichero modificados--\n"
+
+#: src/list.c:1249
+msgid "Creating directory:"
+msgstr "Creando el directorio:"
+
+# No se referir al autor a "mangled filenames"?... jmg
+# FIXME. Preguntrselo.
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Fin de fichero inesperado en los nombres modificados"
+
+#: src/mangle.c:90 src/misc.c:399 src/misc.c:417
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: No se puede renombrar a %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Se renombra %s como %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: No se puede crear un enlace simblico a %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Se enlaza %s simblicamente a %s"
+
+# desmutilador? sv. (Perdona mi ignorancia: qu significa?)
+# No lo s, tengo que consultar. Lo encontr en un diccionario raro. fr
+# Bueno, yo tampoco s lo que es, pero "mangling" me suena a:
+# "proceso mediante el cual se codifican ciertos nombres de cierta manera."
+# Por ejemplo, "name mangling" es lo que hace Linux cuando se instala
+# con umsdos. (Lo has visto alguna vez?).
+# Tambin se habla de "mangling" a la forma que tiene el C++ de incluir
+# los nombres de las funciones (o de las clases quiz) en un archivo
+# objeto ( .o ).
+# Bueno, en realidad no lo s, pero espero haberte dado alguna idea.
+# A ver qu dice Enrique u otro revisor. sv
+# Sigo en blanco. fr
+# La traduccin mas acertada creo que es esta :) , el uso que conozco
+# de mangled esta relacionado con codificar o transformar el nombre de una
+# funcin C++ dentro de una biblioteca, de manera que se pueda deshacer la
+# referencia a la funcin al compilar o enlazar dinmicamente, obteniendo
+# la funcin que corresponde al aplicar la sobrecarga de operadores. em+
+# # Todo eso es as, lo malo es encontrar la palabra simple ms
+# # adecuada y mantenerla. Por ejemplo, antes hemos dicho "mutilar", en
+# # otros mensajes; y ahora "desenredar".
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Orden desconocida para recuperar el nombre original de %s"
+
+#: src/misc.c:390
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Se renombra %s como %s\n"
+
+#: src/misc.c:422
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Se vuelve a renombrar %s como %s\n"
+
+#: src/misc.c:502
+msgid "Cannot save working directory"
+msgstr "No se puede guardar el directorio de trabajo"
+
+#: src/misc.c:508
+msgid "Cannot change working directory"
+msgstr "No se puede cambiar el directorio de trabajo"
+
+# FIXME: Intraducible.
+#: src/misc.c:552 src/misc.c:561
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: No se puede %s"
+
+#: src/misc.c:570
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Atencin: No se puede %s"
+
+#: src/misc.c:585
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: No se puede cambiar el modo a %s"
+
+#: src/misc.c:593
+#, 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"
+
+#: src/misc.c:628
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: No se puede crear un enlace duro a %s"
+
+#: src/misc.c:689 src/misc.c:730
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu byte"
+msgid_plural "%s: Read error at byte %s, 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"
+
+#: src/misc.c:702
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu byte"
+msgid_plural "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr[0] "%s: Atencin: Error de lectura en el byte %s, leyendo %lu byte"
+msgstr[1] "%s: Atencin: Error de lectura en el byte %s, leyendo %lu bytes"
+
+#: src/misc.c:790
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: No se puede desplazar a %s"
+
+#: src/misc.c:806
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Atencin: No se puede desplazar a %s"
+
+#: src/misc.c:824
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: No se puede crear el enlace simblico a %s"
+
+#: src/misc.c:892
+#, c-format
+msgid "%s: Wrote only %lu of %lu byte"
+msgid_plural "%s: Wrote only %lu of %lu bytes"
+msgstr[0] "%s: Slo se escribieron %lu de %lu byte"
+msgstr[1] "%s: Slo se escribieron %lu de %lu bytes"
+
+#: src/misc.c:918
+msgid "child process"
+msgstr "proceso hijo"
+
+#: src/misc.c:927
+msgid "interprocess channel"
+msgstr "canal de interproceso"
+
+#: src/names.c:372 src/names.c:421 src/names.c:465
+msgid "Missing file name after -C"
+msgstr "Falta el nombre del fichero despus de -C"
+
+#: src/names.c:642 src/names.c:658
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: No se encuentra en el archivo"
+
+#: src/names.c:645
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: El elemento solicitado no se encuentra en el archivo"
+
+# FIXME. This might not always work. Is `%.*s' male or female? sv
+#: src/names.c:1093
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Eliminando la `%s' inicial de los nombres"
+
+#: src/names.c:1094
+#, 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
+#: src/names.c:1107
+msgid "Substituting `.' for empty member name"
+msgstr "Se sustituye `.' por el nombre vaco"
+
+#: src/names.c:1108
+msgid "Substituting `.' for empty hard link target"
+msgstr "Se sustituye `.' por un objetivo vaco de enlace duro"
+
+#: src/tar.c:71
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Las opciones `-%s' y `-%s' requieren entrada estndar"
+
+#: src/tar.c:143
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Formato de archivo invlido"
+
+#: src/tar.c:167
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Se requieren caractersticas de GNU en formato de archivo incompatible"
+
+# Yo usara "recuperar", en vez de "restablecer". Lo de repetir "archivo"
+# dos veces en la misma frase no me suena bien, as que pondra "... a
+# partir de aqul". jmg
+# El original tambin repite. sv
+#
+# CUIDADO! slo no debe llevar tilde en ".. juntos en un solo archivo..."
+# `Solo' slo lleva acento cuando equivale al adverbio de modo `solamente',
+# y aun as no es obligatorio ponrselo si no hay ambigedad (lo siento,
+# muchachos, pero saqu sobresaliente en Lingstica de COU :-D ) gerardo
+# Lo cambio, pero "no es obligatorio" no es lo mismo que "est mal". sv
+#
+# # la versin de control -> el control de versin
+# # nil: numeradas... simples... (en plural)
+# # never, simPle (falta una pe): backup -> copia de seguridad. gag
+# Estoy de acuerdo con lo de gag (ms arriba usas eso mismo). jmg
+#: src/tar.c:241
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+" 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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"GNU `tar' guarda varios ficheros juntos en un solo archivo en cinta o disco, y\n"
+"puede restablecer ficheros individuales a partir del archivo.\n"
+"\n"
+"Ejemplos:\n"
+" tar -cf archivo.tar fu fa # Crea archivo.tar con los ficheros fu y fa.\n"
+" tar -tvf archivo.tar # Lista los ficheros de archivo.tar con detalle.\n"
+" tar -xf archivo.tar # Extrae todos los ficheros de archivo.tar.\n"
+" El sufijo de respaldo es `~', a menos que se especifique con --suffix\n"
+"o con SIMPLE_BACKUP_SUFFIX. El control de versiones puede establecerse\n"
+"con --backup o con VERSION_CONTROL, los valores son:\n"
+"\n"
+" t, numbered hace copias de seguridad numeradas\n"
+" nil, existing numerada si existen copias de seguridad numeradas, simples\n"
+" en otro caso\n"
+" never, simple siempre hace copias de seguridad simples\n"
+
+#: src/tar.c:270
+msgid "Main operation mode:"
+msgstr "Modo principal de operacin:"
+
+#: src/tar.c:273
+msgid "list the contents of an archive"
+msgstr "lista el contenido de un archivo"
+
+#: src/tar.c:275
+msgid "extract files from an archive"
+msgstr "extrae ficheros de un archivo"
+
+#: src/tar.c:278
+msgid "create a new archive"
+msgstr "crea un nuevo archivo"
+
+#: src/tar.c:280
+msgid "find differences between archive and file system"
+msgstr "encuentra las diferencias entre un archivo y el sistema de ficheros"
+
+#: src/tar.c:283
+msgid "append files to the end of an archive"
+msgstr "aade ficheros al final de un archivo"
+
+#: src/tar.c:285
+msgid "only append files newer than copy in archive"
+msgstr "solamente aade ficheros ms recientes que la copia del archivo"
+
+#: src/tar.c:287
+msgid "append tar files to an archive"
+msgstr "aade ficheros tar a un archivo"
+
+#: src/tar.c:290
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "borra del archivo (no en cintas magnticas!)"
+
+#: src/tar.c:293
+msgid "Operation modifiers:"
+msgstr "Modificadores de operacin:"
+
+#: src/tar.c:296
+msgid "attempt to verify the archive after writing it"
+msgstr "intenta verificar el archivo despus de escribirlo"
+
+#: src/tar.c:298
+msgid "remove files after adding them to the archive"
+msgstr "borra los ficheros despus de aadirlos al archivo"
+
+#: src/tar.c:300
+msgid "don't replace existing files when extracting"
+msgstr "no reemplaza ficheros que existan al extraer"
+
+#: src/tar.c:302
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "no reemplaza los ficheros que existan que sean ms recientes que sus copias en el archivo"
+
+#: src/tar.c:304
+msgid "preserve metadata of existing directories"
+msgstr "conserva los metadatos de los directorios que existan"
+
+#: src/tar.c:306
+msgid "overwrite existing files when extracting"
+msgstr "sobreescribe los ficheros que existan al extraer"
+
+#: src/tar.c:308
+msgid "remove each file prior to extracting over it"
+msgstr "borra cada fichero antes de extraer sobre l"
+
+#: src/tar.c:310
+msgid "empty hierarchies prior to extracting directory"
+msgstr "vaca jerarquas antes de extraer directorios"
+
+#: src/tar.c:312
+msgid "handle sparse files efficiently"
+msgstr "maneja ficheros dispersos de forma eficiente"
+
+#: src/tar.c:314
+msgid "extract files to standard output"
+msgstr "extrae los ficheros a la salida estndar"
+
+#: src/tar.c:316
+msgid "handle old GNU-format incremental backup"
+msgstr "maneja el formato GNU antiguo de respaldo incremental"
+
+#: src/tar.c:317 src/tar.c:390 src/tar.c:455 src/tar.c:514
+msgid "FILE"
+msgstr "FICHERO"
+
+#: src/tar.c:318
+msgid "handle new GNU-format incremental backup"
+msgstr "maneja el nuevo formato GNU de respaldo incremental"
+
+# archivos nonzero? sv
+# Estupendo Gerardo, se me haba pasado, como tantas cosas em+
+# # Nooorl! Quiere decir que el programa tar no acaba o sale (exit())
+# # devolviendo al sistema un "status" distinto de cero cuando
+# # encuentre ficheros ilegibles. (Uf! Ahora a ver cmo se pone esto en
+# # media lnea.) gag
+#
+#: src/tar.c:320
+msgid "do not exit with nonzero on unreadable files"
+msgstr "no sale con estado distinto de cero cuando hay ficheros ilegibles"
+
+#: src/tar.c:321 src/tar.c:385 src/tar.c:398 src/tar.c:484
+msgid "NUMBER"
+msgstr "NMERO"
+
+#: src/tar.c:322
+msgid "process only the NUMth 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 -T option. NUMBER defaults to 1."
+msgstr "procesa nicamente la NUM-sima aparicin de cada fichero en el archivo. Esta opcin solamente es vlida junto con una de las subrdenes --delete, --diff, --extract o --list y cuando se da una lista de ficheros en la lnea de rdenes o con la opcin -T. El valor predeterminado de NUM es 1."
+
+# Mejor eso que inventarse un palabro, digo yo. sv
+#: src/tar.c:324
+msgid "Archive is seekable"
+msgstr "El archivo admite `seek'"
+
+#: src/tar.c:327
+msgid "Handling of file attributes:"
+msgstr "Manejo de los atributos del fichero:"
+
+#: src/tar.c:329 src/tar.c:331 src/tar.c:387
+msgid "NAME"
+msgstr "NOMBRE"
+
+#: src/tar.c:330
+msgid "force NAME as owner for added files"
+msgstr "fuerza NOMBRE como propietario de los ficheros que se aaden"
+
+#: src/tar.c:332
+msgid "force NAME as group for added files"
+msgstr "fuerza NOMBRE como grupo para los ficheros que se aaden"
+
+#: src/tar.c:333
+msgid "CHANGES"
+msgstr "CAMBIOS"
+
+#: src/tar.c:334
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "fuerza CAMBIOS (simblicos) de modo para los ficheros que se aaden"
+
+#: src/tar.c:336
+msgid "don't change access times on dumped files"
+msgstr "no cambia la fecha de acceso en los ficheros volcados"
+
+#: src/tar.c:338
+msgid "don't extract file modified time"
+msgstr "no extrae la fecha de modificacin del fichero"
+
+#: src/tar.c:340
+msgid "try extracting files with the same ownership"
+msgstr "intenta extraer los ficheros con el mismo propietario"
+
+#: src/tar.c:342
+msgid "extract files as yourself"
+msgstr "extrae los ficheros como usted mismo"
+
+#: src/tar.c:344
+msgid "always use numbers for user/group names"
+msgstr "utiliza siempre nmeros para los nombres de usuarios/grupos"
+
+#: src/tar.c:346
+msgid "extract permissions information"
+msgstr "extrae la informacin de los permisos"
+
+#: src/tar.c:349
+msgid "do not extract permissions information"
+msgstr "no extrae la informacin de los permisos"
+
+#: src/tar.c:351
+msgid "sort names to extract to match archive"
+msgstr "ordena los nombres que se extraen para que coincidan con el archivo"
+
+#: src/tar.c:354
+msgid "same as both -p and -s"
+msgstr "lo mismo que -p y -s"
+
+#: src/tar.c:357
+msgid "Device selection and switching:"
+msgstr "Seleccin de dispositivo y opciones:"
+
+#: src/tar.c:359
+msgid "ARCHIVE"
+msgstr "ARCHIVO"
+
+#: src/tar.c:360
+msgid "use archive file or device ARCHIVE"
+msgstr "utiliza un archivo o el dispositivo ARCHIVO"
+
+#: src/tar.c:362
+msgid "archive file is local even if has a colon"
+msgstr "el archivo es local incluso si tiene dos puntos"
+
+#: src/tar.c:363 src/tar.c:365
+msgid "COMMAND"
+msgstr "ORDEN"
+
+#: src/tar.c:364
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "utiliza la ORDEN rmt dada en vez de rmt"
+
+#: src/tar.c:366
+msgid "use remote COMMAND instead of rsh"
+msgstr "utiliza la ORDEN remota en vez de rsh"
+
+#: src/tar.c:370
+msgid "specify drive and density"
+msgstr "especifica la unidad y la densidad"
+
+#: src/tar.c:384
+msgid "create/list/extract multi-volume archive"
+msgstr "crea/lista/extrae un archivo multivolumen"
+
+# Una chorradita, si se me permite; estamos usando ISO-8859-1,
+# verdad? Y en ISO-Latin1 existe un carcter que representa la
+# multiplicacin, verdad? Ya saben , el aspa: '' ('\327'). Pues
+# por qu no usarlo (est bien, "utilizarlo" ;-) en vez de la equis
+# en NUM x 1024 -> NUM 1024?
+# En otra parte dices que pones (C) en vez de porque no se ve bien en
+# la consola. Pues no dirs eso del aspa, que se ve mejor an que la equis:
+# x - gerardo
+# Efectivamente, pero no es transportable, el que use tar bajo DJGPP
+# le saldra un churro pues el aspa no existe en la tabla 850. sv
+#: src/tar.c:386
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "cambia la cinta despus de escribir NMERO x 1024 bytes"
+
+#: src/tar.c:388
+msgid "run script at end of each tape (implies -M)"
+msgstr "ejecuta un script al final de cada cinta (implica -M)"
+
+#: src/tar.c:391
+msgid "use/update the volume number in FILE"
+msgstr "usa/actualiza el nmero de volumen en FICHERO"
+
+#: src/tar.c:394
+msgid "Device blocking:"
+msgstr "Bloques en los dispositivos:"
+
+#: src/tar.c:396
+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:397
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOQUES x 512 bytes por registro"
+
+#: src/tar.c:399
+msgid "SIZE bytes per record, multiple of 512"
+msgstr "TAMAO bytes por registro, mltiplo de 512"
+
+#: src/tar.c:401
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "no tiene en cuenta los bloques convertidos en ceros dentro de un archivo (significa fin de fichero)"
+
+# rebloquea? existe esa palabra? sv
+# Que opine el pueblo, no lo s. fr
+# # Existe bloquear? Pues si es as, tambin existe rebloquear =
+# # volver a bloquear. Y requetebloquear, etc. En un artculo de Martin
+# # Gardner se preguntaba cul era la palabra espaola ms larga, y la
+# # respuesta era que cualquiera que pudiera ir precedida por
+# # requetequetequete... (longitud infinita). Peln ssagerao, no? gag
+#
+# Bueno, al final he puesto lo que se ve, un poco menos raro que rebloquear. sv
+#: src/tar.c:403
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "rehace los bloques conforme se lee (para tuberas de 4.2BSD)"
+
+# Qu ser esto? Quizs un fallo en el mensaje original? Porque "to"
+# no es "desde", sino "hacia", que yo sepa. Pero `archivo hacia la
+# salida estndar' no pega mucho. Est en otros mensajes, como el
+# siguiente; no lo entiendo. - gerardo
+# FIXME. Tienes razn. Es muy raro.
+#: src/tar.c:406
+msgid "Archive format selection:"
+msgstr "Seleccin del formato de archivo:"
+
+#: src/tar.c:408
+msgid "FORMAT"
+msgstr "FORMATO"
+
+#: src/tar.c:409
+msgid "create archive of the given format."
+msgstr "crea un archivo en el formato dado."
+
+#: src/tar.c:411
+msgid "FORMAT is one of the following:"
+msgstr "FORMATO es uno de los siguientes:"
+
+#: src/tar.c:412
+msgid "old V7 tar format"
+msgstr "formato tar V7 antiguo"
+
+#: src/tar.c:414
+msgid "GNU format as per tar <= 1.12"
+msgstr "formato GNU de tar <= 1.12"
+
+#: src/tar.c:416
+msgid "GNU tar 1.13.x format"
+msgstr "formato GNU tar 1.13.x"
+
+#: src/tar.c:418
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "formato POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:420
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "formato POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:421
+msgid "Same as pax"
+msgstr "Lo mismo que pax"
+
+#: src/tar.c:424
+msgid "same as --format=v7"
+msgstr "lo mismo que --format=v7"
+
+#: src/tar.c:427
+msgid "same as --format=posix"
+msgstr "lo mismo que --format=posix"
+
+#: src/tar.c:428
+msgid "keyword[[:]=value][,keyword[[:]=value], ...]"
+msgstr "palabra[[:]=valor][,palabra[[:]=valor], ...]"
+
+#: src/tar.c:429
+msgid "control pax keywords"
+msgstr "palabras clave de control de pax"
+
+#: src/tar.c:430
+msgid "TEXT"
+msgstr "TEXTO"
+
+#: src/tar.c:431
+msgid "create archive with volume name NAME. At list/extract time, use TEXT as a globbing pattern"
+msgstr "crea un archivo con nombre de volumen NOMBRE. En el momento de listar/extraer, utiliza TEXTO como patrn expandible"
+
+#: src/tar.c:433
+msgid "filter the archive through bzip2"
+msgstr "filtra el archivo a travs de bzip2"
+
+# FIXME: Decir al autor que ponga el "itself". sv
+#: src/tar.c:435
+msgid "filter the archive through gzip"
+msgstr "filtra el arhivo a travs de gzip"
+
+# FIXME: Decir al autor que ponga el "itself". sv
+#: src/tar.c:439
+msgid "filter the archive through compress"
+msgstr "filtra el archivo a travs de compress"
+
+#: src/tar.c:441
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:442
+msgid "filter through PROG (must accept -d)"
+msgstr "filtra a travs de PROG (debe aceptar -d)"
+
+#: src/tar.c:445
+msgid "Local file selection:"
+msgstr "Seleccin del fichero local:"
+
+#: src/tar.c:447
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:448
+msgid "change to directory DIR"
+msgstr "cambia al directorio DIR"
+
+#: src/tar.c:449
+msgid "FILE-OF-NAMES"
+msgstr "FICHERO-DE-NOMBRES"
+
+#: src/tar.c:450
+msgid "get names to extract or create from file NAME"
+msgstr "obtiene los nombres que se van a extraer o crear del fichero NOMBRE"
+
+#: src/tar.c:452
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T lee nombres terminados en nulo, desactiva -C"
+
+# Nota: La diferencia entre un PATRN y una EXPREG es que
+# el primero se refiere a un "globbing pattern", es decir, patrones
+# de expansin 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:453
+msgid "PATTERN"
+msgstr "PATRN"
+
+#: src/tar.c:454
+msgid "exclude files, given as a PATTERN"
+msgstr "excluye ficheros, dados como un PATRN"
+
+#: src/tar.c:456
+msgid "exclude patterns listed in FILE"
+msgstr "excluye los patrones listados en FICHERO"
+
+#: src/tar.c:458
+msgid "exclude directories containing a cache tag"
+msgstr "excluye los directorios que contienen una marca de cach"
+
+#: src/tar.c:460
+msgid "exclusion ignores case"
+msgstr "la exclusin no distingue maysculas de minsculas"
+
+#: src/tar.c:462
+msgid "exclude patterns match file name start"
+msgstr "los patrones de exclusin encajan con el comienzo del nombre del fichero"
+
+#: src/tar.c:464
+msgid "exclude patterns match after any / (default)"
+msgstr "los patrones de exclusin encajan despus de cualquier / (por omisin)"
+
+#: src/tar.c:466
+msgid "exclusion is case sensitive (default)"
+msgstr "la exclusin distingue maysculas de minsculas (por omisin)"
+
+#: src/tar.c:468
+msgid "exclude patterns are plain strings"
+msgstr "los patrones de exclusin son cadenas normales"
+
+#: src/tar.c:470
+msgid "exclude pattern wildcards do not match '/'"
+msgstr "los comodines de patrones de exclusin no encajan con '/'"
+
+#: src/tar.c:472
+msgid "avoid descending automatically in directories"
+msgstr "evita descender automticamente en los directorios"
+
+#: src/tar.c:474
+msgid "stay in local file system when creating archive"
+msgstr "permanece en el sistema de ficheros locales al crear el archivo"
+
+#: src/tar.c:477
+msgid "recurse into directories (default)"
+msgstr "opera recursivamente sobre los directorios (por omisin)"
+
+#: src/tar.c:479
+msgid "don't strip leading `/'s from file names"
+msgstr "no elimina la `/' inicial de los nombres de ficheros"
+
+#: src/tar.c:481
+msgid "dump instead the files symlinks point to"
+msgstr "vuelca los ficheros a los que apuntan los enlaces simblicos, en lugar de los enlaces"
+
+#: src/tar.c:482
+msgid "MEMBER-NAME"
+msgstr "NOMBRE-DE-MIEMBRO"
+
+#: src/tar.c:483
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "comienza por el miembro NOMBRE-DE-MIEMBRO dentro del archivo"
+
+#: src/tar.c:485
+msgid "strip NUMBER leading components from file names"
+msgstr "elimina NMERO componentes iniciales de los nombres de ficheros"
+
+#: src/tar.c:486
+msgid "DATE-OR-FILE"
+msgstr "FECHA-O-FICHERO"
+
+#: src/tar.c:487
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "almacena solamente ficheros ms recientes que FECHA-O-FICHERO"
+
+#: src/tar.c:488 src/tar.c:490
+msgid "DATE"
+msgstr "FECHA"
+
+#: src/tar.c:489
+msgid "compare date and time when data changed only"
+msgstr "compara la fecha y hora solamente cuando cambian los datos"
+
+#: src/tar.c:491
+msgid "same as -N"
+msgstr "lo mismo que -N"
+
+#: src/tar.c:492
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:493
+msgid "backup before removal, choose version CONTROL"
+msgstr "se hace un respaldo antes de borrar, escoja el CONTROL de versin"
+
+#: src/tar.c:494
+msgid "STRING"
+msgstr "CADENA"
+
+#: src/tar.c:495
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX"
+msgstr ""
+"se hace un respaldo antes de borrar, cambiando el sufijo usual ('~' a menos que se\n"
+"cambie con la variable de entorno SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:497
+msgid "exclude patterns use wildcards (default)"
+msgstr "los patrones de exclusin usan comodines (por omisin)"
+
+#: src/tar.c:499
+msgid "exclude pattern wildcards match '/' (default)"
+msgstr "los comodines de los patrones de exclusin encajan con '/' (por omisin)"
+
+#: src/tar.c:502
+msgid "Informative output:"
+msgstr "Salida informativa:"
+
+#: src/tar.c:505
+msgid "verbosely list files processed"
+msgstr "lista los ficheros procesados detalladamente"
+
+#: src/tar.c:507
+msgid "display progress messages every 10th record"
+msgstr "muestra mensajes de progreso cada 10 registros"
+
+#: src/tar.c:509
+msgid "print a message if not all links are dumped"
+msgstr "muestra un mensaje si no se vuelcan todos los enlaces"
+
+#: src/tar.c:511
+msgid "print total bytes written while creating archive"
+msgstr "muestra el total de bytes escritos cuando se crea un archivo"
+
+#: src/tar.c:513
+msgid "print file modification dates in UTC"
+msgstr "muestra las fechas de modificacin de los ficheros en UTC"
+
+#: src/tar.c:515
+msgid "send verbose output to FILE"
+msgstr "enva la salida detallada a FICHERO"
+
+#: src/tar.c:517
+msgid "show block number within archive with each message"
+msgstr "muestra el nmero de bloque dentro del archivo con cada mensaje"
+
+#: src/tar.c:519
+msgid "ask for confirmation for every action"
+msgstr "pide confirmacin para cada accin"
+
+#: src/tar.c:522
+msgid "Show tar defaults"
+msgstr "Muestra los valores predeterminados de tar"
+
+#: src/tar.c:524
+msgid "When listing or extracting, list each directory that does not match search criteria"
+msgstr "Cuando se lista o extrae, lista cada directorio que no coincida con el criterio de bsqueda"
+
+#: src/tar.c:527
+msgid "Compatibility options:"
+msgstr "Opciones de compatibilidad:"
+
+#: src/tar.c:530
+msgid "when creating, same as --old-archive. When extracting, same as --no-same-owner"
+msgstr "al crear, lo mismo que --old-archive. Al extraer, lo mismo que --no-same-owner"
+
+#: src/tar.c:533
+msgid "Other options:"
+msgstr "Otras opciones:"
+
+#: src/tar.c:535
+msgid "Give this help list"
+msgstr "Da esta lista de ayuda"
+
+#: src/tar.c:536
+msgid "Give a short usage message"
+msgstr "Da un mensaje de uso corto"
+
+#: src/tar.c:537
+msgid "Print license and exit"
+msgstr "Muestra la licencia y finaliza"
+
+#: src/tar.c:538
+msgid "Print program version"
+msgstr "Muestra la versin del programa"
+
+#: src/tar.c:575
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "No se puede especificar ms de una opcin `-Acdtrux'"
+
+#: src/tar.c:585
+msgid "Conflicting compression options"
+msgstr "Opciones de compresin en conflicto"
+
+#: src/tar.c:595
+msgid ""
+"Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n"
+"for complete list of authors.\n"
+msgstr ""
+"Basado en el trabajo de John Gilmore y Jay Fenlason. Vea AUTHORS\n"
+"para una lista completa de autores.\n"
+
+#: src/tar.c:597
+#, c-format
+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"
+msgstr ""
+" GNU tar es software libre; puede redistribuirse y/o modificarse\n"
+" bajo los trminos de la Licencia Pblica General de GNU tal y como\n"
+" se publica por la Free Software Foundation; bien en la versin 2\n"
+" de la Licencia, o (a su eleccin) cualquier versin posterior.\n"
+"\n"
+" GNU tar se distribuye con la esperanza de que sea til, pero\n"
+" SIN NINGUNA GARANTA; ni siquiera la garanta implcita de\n"
+" COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO. Vase la\n"
+" Licencia Pblica General de GNU para ms detalles.\n"
+"\n"
+" Usted debera haber recibido una copia de la Licencia Pblica General\n"
+" de GNU junto con GNU tar; en caso contrario, escriba a la Free Software\n"
+" Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 EE.UU.\n"
+
+#: src/tar.c:638
+msgid "Invalid blocking factor"
+msgstr "Factor de bloqueo invlido"
+
+#: src/tar.c:713
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Atencin: no se admite la opcin -I; no ser -j o -T?"
+
+#: src/tar.c:738
+msgid "Semantics of -l option will change in the future releases."
+msgstr "El significado de la opcin -l cambiar en versiones posteriores."
+
+#: src/tar.c:740
+msgid "Please use --one-file-system option instead."
+msgstr "Por favor utilice la opcin --one-file-system en su lugar."
+
+#: src/tar.c:753
+msgid "Invalid tape length"
+msgstr "Longitud de cinta invlida"
+
+# No s cmo traducir threshold. fr
+# Yo tampoco (los diccionarios los tengo en casa...). sv
+# Lo buscar en un diccionario "geno". 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 lmite"?. jmg
+#: src/tar.c:781
+msgid "More than one threshold date"
+msgstr "Se ha especificado ms de una fecha tope"
+
+#: src/tar.c:791
+msgid "Date file not found"
+msgstr "No se encontr la fecha del fichero"
+
+#: src/tar.c:800
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Sustituyendo %s por el formato de fecha desconocido %s"
+
+#: src/tar.c:905
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Atencin: no se admite la opcin -y; no ser -j?"
+
+#: src/tar.c:981
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Grupo invlido"
+
+#: src/tar.c:990
+msgid "Invalid mode given on option"
+msgstr "Se ha especificado un modo no vlido en la opcin"
+
+#: src/tar.c:1033
+msgid "Invalid number"
+msgstr "Nmero invlido"
+
+#: src/tar.c:1051
+msgid "Invalid owner"
+msgstr "Propietario invlido"
+
+#: src/tar.c:1075
+msgid "Invalid record size"
+msgstr "El tamao del registro es invlido"
+
+#: src/tar.c:1078
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "El tamao del registro debe ser mltiplo de %d."
+
+#: src/tar.c:1110
+msgid "Invalid number of elements"
+msgstr "Nmero invlido de elementos"
+
+#: src/tar.c:1185
+#, c-format
+msgid "Malformed density argument: '%s'"
+msgstr "Argumento de densidad mal formado: '%s'"
+
+#: src/tar.c:1221
+#, c-format
+msgid "Unknown density: '%c'"
+msgstr "Densidad desconocida: '%c'"
+
+#: src/tar.c:1241
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "*Esta* versin de tar no admite las opciones `-[0-7][lmh]'"
+
+#: src/tar.c:1249
+#, c-format
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Las opciones predeterminadas de *esta* versin de tar son:\n"
+
+#: src/tar.c:1278
+msgid "[FILE]..."
+msgstr "[FICHERO]..."
+
+#: src/tar.c:1375
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "La opcin antigua `%c' requiere un argumento"
+
+#: src/tar.c:1458
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence no tiene sentido sin una lista de ficheros"
+
+#: src/tar.c:1464
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "no se puede usar --occurrence en el modo de operacin solicitado"
+
+# requieren -> necesitan. gerardo
+#: src/tar.c:1494
+msgid "Multiple archive files require `-M' option"
+msgstr "Los archivos mltiples requieren la opcin `-M'"
+
+#: src/tar.c:1499
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "No se puede combinar --listed-incremental con --newer"
+
+#: src/tar.c:1514
+#, 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: La etiqueta de volumen es demasiado larga (el lmite es %lu byte)"
+msgstr[1] "%s: La etiqueta de volumen es demasiado larga (el lmite es %lu bytes)"
+
+#: src/tar.c:1524
+msgid "Cannot verify multi-volume archives"
+msgstr "No se pueden verificar archivos multivolumen"
+
+#: src/tar.c:1526
+msgid "Cannot verify compressed archives"
+msgstr "No se pueden verificar archivos comprimidos"
+
+#: src/tar.c:1532
+msgid "Cannot use multi-volume compressed archives"
+msgstr "No se pueden utilizar archivos multivolumen comprimidos"
+
+#: src/tar.c:1534
+msgid "Cannot update compressed archives"
+msgstr "No se pueden actualizar archivos comprimidos"
+
+#: src/tar.c:1546
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option solamente se puede usar en archivos POSIX"
+
+# Me gusta ms al verrs: cobarde rechazo [de la pradera] a... gerardo
+#: src/tar.c:1563
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Rechazo cobarde a crear un archivo vaco"
+
+#: src/tar.c:1584
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Las opciones `-Aru' son incompatibles con `-f -'"
+
+#: src/tar.c:1607
+#, c-format
+msgid "Treating date `%s' as %s + %ld nanosecond"
+msgid_plural "Treating date `%s' as %s + %ld nanoseconds"
+msgstr[0] "Se trata la fecha `%s' como %s + %ld nanosegundo"
+msgstr[1] "Se trata la fecha `%s' como %s + %ld nanosegundos"
+
+#: src/tar.c:1663
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Debe especificar una de las opciones `-Acdtrux'"
+
+#: src/tar.c:1715
+msgid "Error in writing to standard output"
+msgstr "Error al escribir en la salida estndar"
+
+# Antes deca:
+# "La salida con error se demora por los errores anteriores
+#
+# Quiere decir que hubo errores, pero tar pudo seguir adelante, sin
+# embargo va a salir con un estado de error por esos errores que ya pasaron.
+# Una traduccin:
+# "Salida con error demorada desde errores anteriores" (Nicols L.)
+#: src/tar.c:1717
+msgid "Error exit delayed from previous errors"
+msgstr "Salida con error demorada desde errores anteriores"
+
+# Eso de vaya tela! es una interjeccin que se entiende en todo el mundo
+# hispanoparlante? No vaya a ser especfico de Andaluca/Extremadura y...
+# oye, djalo, as expandimos nuestra lengua! gerardo
+# Inaceptable, alguien fuera de Espaa no tiene idea de que diablos quiere
+# decir vaya tela!. Habr que buscar alguna interheccin de asco/sorpresa
+# que sea ms `portable'. nl
+# Tenis razn. Habr que preguntar.
+# Ya lo tengo! "Carajo!" X-D Eso se utiliza en Colombia, Mxico y otros
+# sitios de por ah a troche y moche, y creo que ni siquiera se entiende como
+# "miembro viril masculino". Y en Espaa creo que tambin se emplea, no?
+# (Vaale, vaaale, y qu tal su eufemismo `caramba' o `caray', ms neutros
+# y cursis, para que no se enfade nadie? Aunque para cursis: `cspita',
+# `caracoles', `cnchales'; no diris que no os doy opciones.) Por cierto,
+# creo que la coma sobra (incluso en el original). gerardo
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: El tamao del fichero ha disminuido en %s byte"
+msgstr[1] "%s: El tamao del fichero ha disminuido en %s bytes"
+
+# FIXME: Imlemented
+#: src/xheader.c:140
+#, c-format
+msgid "Keyword %s is unknown or not yet imlemented"
+msgstr "La palabra clave %s es desconocida o no est implementada todava"
+
+#: src/xheader.c:166
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "No se puede usar el patrn %s"
+
+#: src/xheader.c:176
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "La palabra clave %s no se puede sustituir"
+
+#: src/xheader.c:490
+msgid "Malformed extended header: missing whitespace after the length"
+msgstr "Cabecera extendida errnea: falta un espacio en blanco despus de la longitud"
+
+#: src/xheader.c:501
+msgid "Malformed extended header: missing equal sign"
+msgstr "Cabecera extendida errnea: falta un signo igual"
+
+# Sugerencia: para archivos -> para los archivos. sv
+# Sugerencia: Estandarizar la traduccin de "added files". sv
+# En el --mode=CHANGES no s qu poner... sv
+# En vez de "force"->"establece", yo dejara el significado
+# original ->"fuerza". jmg
+# force es forzar, no establecer! nl
+# Gerardo, qu opinas de "forzar"? sv
+# Hombre, desde luego to force es forzar u obligar; la verdad es que no s
+# por qu el autor original dice "force" y no "set". Quiz porque si no se
+# pusieran estas opciones los ficheros tendran otros atributos que vendran
+# impuestos por el umask, el UID/GID del usuario, etc., y con esto se "fuerza",
+# se cambia esta situacin. No es lo mismo que establecer, que sera poner
+# esos atributos partiendo de cero. Creo que se es el matiz, y para conservar-
+# lo habra que poner "fuerza NOMBRE como propietario...", etc., o bien
+# "obliga a que sea NOMBRE el propietario...", etc. gerardo
+# # usa -> emplea - gerardo
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --preserve same as both -p and -s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Manejo de los atributos de los ficheros:\n"
+#~ " --owner=NOMBRE establece NOMBRE como propietario para los\n"
+#~ " ficheros que se aaden\n"
+#~ " --group=NOMBRE establece NOMBRE como grupo para los ficheros que\n"
+#~ " se aaden\n"
+#~ " --mode=CAMBIOS establece CAMBIOS como modo (simblico) para los\n"
+#~ " ficheros que se aaden\n"
+#~ " --atime-preserve no cambia la fecha de acceso en los ficheros\n"
+#~ " volcados\n"
+#~ " -m, --modification-time no extrae la fecha de modificacin de ficheros\n"
+#~ " --same-owner intenta extraer ficheros con el mismo propietario\n"
+#~ " --no-same-owner extrae los ficheros como uno mismo\n"
+#~ " --numeric-owner siempre utiliza nmeros para nombres de\n"
+#~ " usuario/grupo\n"
+#~ " -p, --same-permissions extrae la informacin de los permisos\n"
+#~ " --no-same-permissions no extrae la informacin de los permisos\n"
+#~ " --preserve-permissions igual que -p\n"
+#~ " -s, --same-order ordena los nombres a extraer para coincidir con\n"
+#~ " el archivo\n"
+#~ " --preserve-order igual que -s\n"
+#~ " --preserve igual que -p y -s a la vez\n"
+
+# globbing = globales? sv
+# Me parece una buena traduccin, es algo que engloba a un grupo. fr
+#
+# globbing es, por ejemplo, lo que hace el shell cuando pones asteriscos:
+# Cuando haces "cat *", el shell se encarga de expandir el *
+# en lo que corresponda, y se lo da a cat ya traducido.
+# Esto ms que globalizar me suena a expandir, no s.
+# Si quieres djalo que lo vea otro. sv
+# Vid. mi comentario del mensaje anterior. gerardo
+# quita -> elimina. sv
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -K, --starting-file=NAME begin at file NAME in the archive\n"
+#~ " --strip-path=NUM strip NUM leading components from file names\n"
+#~ " before extraction\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Seleccin de fichero local:\n"
+#~ " -C, --directory DIR cambia al directorio DIR\n"
+#~ " -T, --files-from=NOMBRE obtiene los nombres a extraer o crear del\n"
+#~ " archivo NOMBRE\n"
+#~ " --null -T lee nombres terminados en cero, deshabilita -C\n"
+#~ " --exclude=PATRN excluye ficheros, dados como un PATRN\n"
+#~ " -X, --exclude-from=FICHERO excluye patrones listados en FICHERO\n"
+#~ " --anchored los patrones de exclusin encajan desde el\n"
+#~ " comienzo del nombre de fichero (predeterminado)\n"
+#~ " --no-anchored los patrones de exclusin encajan despus de\n"
+#~ " cualquier /\n"
+#~ " --ignore-case la exclusin considera iguales minsculas y\n"
+#~ " maysculas\n"
+#~ " --no-ignore-case la exclusin distingue minsculas de maysculas\n"
+#~ " (predeterminado)\n"
+#~ " --wildcards los patrones de exclusin incluyen comodines\n"
+#~ " (predeterminado)\n"
+#~ " --no-wildcards los patrones de exclusin son cadenas normales\n"
+#~ " --wildcards-match-slash los comodines de los patrones de exclusin\n"
+#~ " encajan con '/' (predeterminado)\n"
+#~ " --wildcards-match-slash los comodines de los patrones de exclusin\n"
+#~ " no encajan con '/'\n"
+#~ " -P, --absolute-names no elimina las '/'s iniciales de los nombres de\n"
+#~ " fichero\n"
+#~ " -h, --dereference vuelca en su lugar los ficheros a los que apuntan\n"
+#~ " los enlaces simblicos.\n"
+#~ " --no-recurse evita descender automticamente en directorios\n"
+#~ " -l, --one-file-system permanece en el sistema de ficheros local\n"
+#~ " cuando se crea el archivo\n"
+#~ " -K, --starting-file=NOMBRE comienza en el fichero NOMBRE del archivo\n"
+#~ " --strip-path=NM elimina NM componentes iniciales de los nombres\n"
+#~ " de los ficheros antes de la extraccin\n"
+
+# # "ms nuevos"->"ms recientes". En el info de tar1.11.8 explica un poco ms las
+# # opciones --newer-*, sin limitar a "store", sino hablando en general de
+# # cualquier operacin. En el --newer-mtime debera ser --newer-mtime=DATE, y
+# # dice que "limita la operacin a los ficheros modificados despus de la
+# # fecha DATE"... ?. jmg
+#~ msgid ""
+#~ " -N, --newer=DATE-OR-FILE only store files newer than DATE-OR-FILE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed only\n"
+#~ " --after-date=DATE same as -N\n"
+#~ msgstr ""
+#~ " -N, --newer=FECHA-O-FICHERO slo almacena los ficheros ms recientes que FECHA-O-FICHERO\n"
+#~ " --newer-mtime=FECHA compara la fecha y hora en que los datos cambiaron\n"
+#~ " --after-date=FECHA igual que -N\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --suffix=SUFFIX backup before removal, override usual suffix\n"
+#~ msgstr ""
+#~ " --backup[=CONTROL] copia de seguridad antes de eliminar, elige\n"
+#~ " el control de versin\n"
+#~ " --suffix=SUFIJO copia de seguridad antes de eliminar, pasa por\n"
+#~ " alto el sufijo habitual\n"
+
+# # print -> muestra o imprime? Prefiero muestra, pero mantngase
+# # siempre; al menos en un mismo mensaje! gag
+# Lo de "prolijamente" suena regular. En diffutils hay una laaarga discusin
+# sobre ello. Yo usara "verbosely"->"detalladamente" o "con detalle". jmg
+# los bytes totales escritos -> el total de bytes escritos. nl
+# O los bytes escritos en total, bien. gerardo
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --check-links print a message if not all links are dumped\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " --index-file=FILE send verbose output to FILE\n"
+#~ " --utc print file modification dates in UTC\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --confirmation same as -w\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Salida de informacin:\n"
+#~ " --help muestra esta ayuda, y finaliza\n"
+#~ " --version informa de la versin y finaliza\n"
+#~ " -v, --verbose lista prolijamente los ficheros procesados\n"
+#~ " --checkpoint muestra los nombres de directorio al leer el archivo\n"
+#~ " --check-links muestra un mensaje si no se vuelcan todos los enlaces\n"
+#~ " --totals muestra los bytes escritos en total al crear el archivo\n"
+#~ " --index-file=FICHERO enva una salida detallada a FICHERO\n"
+#~ " --utc muestra las fechas de modificacin en UTC\n"
+#~ " -R, --block-number muestra el nmero de bloque en el archivo con cada mensaje\n"
+#~ " -w, --interactive pide confirmacin para cada accin\n"
+#~ " --confirmation igual que -w\n"
+
+# por defecto -> por omisin, de forma predeterminada
+# HOST -> HUSPED, ANFITRIN (aqu estoy ms perdido que el barco 'el
+# arroz, ya lo s; como con shell y script). gag
+#~ msgid ""
+#~ "\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*This* `tar' defaults to `--format=%s -f%s -b%d'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "GNU tar no puede leer ni generar archivos `--posix'. Si POSIXLY_CORRECT est\n"
+#~ "definido en el entorno, las extensiones GNU se deshabilitan con `--posix'.\n"
+#~ "El soporte para POSIX est slo parcialmente implementado, no se debe contar \n"
+#~ "con l an.\n"
+#~ "ARCHIVO puede ser FICHERO, HOST:FICHERO o USUARIO@HOST:FICHERO; FECHA puede ser\n"
+#~ "una fecha textual, o un nombre de fichero que comience con `/' o con `.', en\n"
+#~ "cuyo caso se utiliza la fecha del fichero.\n"
+#~ "*Este* `tar' utiliza `--format=%s -f%s -b%d' por omisin.\n"
+
+#~ msgid "Written by John Gilmore and Jay Fenlason."
+#~ msgstr "Escrito por John Gilmore y Jay Fenlason."
+
+#~ msgid "Cannot close"
+#~ msgstr "No se puede cerrar"
+
+# FIXME. Comunicar al autor. Con suerte quedar como un mensaje
+# parecido que hay en fileutils: "fork system call failed".
+# La solucin de fileutils no me acaba de convencer (era "llamada
+# a fork()" ). Yo pondra: "No se puede crear proceso hijo (fork)"
+# que responde a la idea del fork y el parntesis aclara. jmg
+# Pero eso sera "Cannot create child process"...
+# Yo creo que la solucin de fileutils es la mejor.
+# Tanto es as que lo pongo igual que all. sv
+# Literalmente es "No puedo bifurcar", pero como sabemos que
+# `bifurcar' se refiere a la primitiva `fork()', est bien como est,
+# salvo que se debera conservar la mayscula inicial, y para mi gusto,
+# simplificar, respetando el mensaje original: "Fallo en fork()" - gerardo
+# Pongo la mayscula inicial, pero antes de ser tan respetuoso con el original
+# consultar con el autor. sv
+#~ msgid "Cannot dup"
+#~ msgstr "Fall la llamada al sistema `dup'"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "No se pueden usar archivos comprimidos ni remotos"
+
+# Por qu en todo lugar donde dice "child" se traduce como "proceso hijo" y
+# no como "hijo" directamente? nl
+# Para que est ms claro. es demasiado libre la traduccin? sv
+# Gerardo?
+# Hola. Hay dos posturas a la hora de traducir:
+# a) respetar escrupulosamente el mensaje original y traducir
+# literalmente, o casi.
+# b) buscar la mejor interpretacin de forma que un hispanohablante lo
+# entienda lo mejor posible, aunque se "corrija" al autor; siempre
+# sin cambiar el sentido o la idea del mensaje, claro.
+# Yo prefiero (b) generalmente. Est claro que aqu child se refiere a un
+# proceso, un proceso derivado de otro, proceso hijo. Dara igual dejar hijo
+# solamente, pero as est mejor expresado. Me gusta ms.
+#~ msgid "tar (child)"
+#~ msgstr "tar (proceso hijo)"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (proceso nieto)"
+
+#~ msgid "Child died with signal %d"
+#~ msgstr "El proceso hijo termin con la seal %d"
+
+#~ msgid "Child returned status %d"
+#~ msgstr "El proceso hijo devolvi el estado %d"
+
+#~ msgid "Member names contain `..'"
+#~ msgstr "Los nombres contienen `..'"
+
+#~ msgid "%s: Member name contains `..'"
+#~ msgstr "%s: El nombre contiene `..'"
+
+# Nota aclaratoria: (Gerardo)
+# Incluida no lleva tilde.
+# Ni ruido ni huida ni giro (un instrumento musical cubano).
+# S se parte en in-clu-i-da, pero sin tilde. No existe el hiato.
+# Mira en un diccionario `ruido' a ver si tiene tilde, y considera si
+# no es el mismo caso (Rui-do no: ru-i-do).
+#
+# Ms arriba has usado "implies"->"implica", as que aqu
+# sera "implied by"->"implicada por", o modificar lo otro. jmg
+# Pero es que implica suena bien pero implicada por suena fatal. sv
+#~ msgid "Obsolete option, now implied by --blocking-factor"
+#~ msgstr "Opcin obsoleta, ahora incluida en --blocking-factor"
+
+# Pregunta: qu es reemplazado/a el nombre o la opcin? sv
+# Creo que es el nombre. fr
+# # El nombre de la opcin; lo que pasa es que en el mensaje en espaol
+# # no se entiende muy bien. Quiz: nombre obsoleto de la opcin
+# # remplazado por -- ... gag
+#~ msgid "Obsolete option name replaced by --blocking-factor"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --blocking-factor"
+
+# # Ver msj. anterior
+#~ msgid "Obsolete option name replaced by --read-full-records"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --read-full-records"
+
+#~ msgid "Obsolete option name replaced by --touch"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --touch"
+
+#~ msgid "Conflicting archive format options"
+#~ msgstr "Opciones de formato de archivo en conflicto"
+
+#~ msgid "Obsolete option name replaced by --absolute-names"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --absolute-names"
+
+#~ msgid "Obsolete option name replaced by --block-number"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --block-number"
+
+#~ msgid "Obsolete option name replaced by --backup"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --backup"
+
+# Acepto sugerencias para el `test suite'. sv
+# "test suite"="paquete/conjunto de pruebas/anlisis", en cualquier
+# combinacin. jmg
+#~ msgid "Generate data files for GNU tar test suite.\n"
+#~ msgstr "Genera ficheros de datos para el conjunto de pruebas de GNU tar.\n"
+
+#~ msgid ""
+#~ "If a long option shows an argument as mandatory, then it is mandatory\n"
+#~ "for the equivalent short option also.\n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH of generated file\n"
+#~ " -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+#~ " --help display this help and exit\n"
+#~ " --version output version information and exit\n"
+#~ msgstr ""
+#~ "Los argumentos obligatorios para las opciones largas son tambin obligatorios\n"
+#~ "para las opciones cortas.\n"
+#~ "\n"
+#~ " -l, --file-length=LONGITUD LONGITUD del fichero generado\n"
+#~ " -p, --pattern=PATRN PATRN es `default' o `zeros'\n"
+#~ " --help muestra esta ayuda y sale\n"
+#~ " --version informa de la versin y finaliza\n"
+
+#~ msgid "Written by F. Pinard."
+#~ msgstr "Escrito por Franois Pinard."
+
+#~ msgid "Ambiguous pattern `%s'"
+#~ msgstr "El patrn `%s' es ambiguo"
+
+# Me encantara poder incluir tos propuestas de usar el \372 ( aspa ) y
+# el (C) , veremos si lo hacemos algn da. em+
+# Estara bien cambiar el '(C)' por '', que es otro carcter de
+# ISO-Latin1. Como los yanquis usan el ASCII (US ISO-646), que es de
+# 7 bits, no lo pueden usar; nosotros s. gerardo
+# Pues eso: que si os encanta, por qu no lo hacis? Cul es el problema?
+# Bueno, vale, de acuerdo... sv
+#~ msgid "Copyright %d Free Software Foundation, Inc."
+#~ msgstr " %d Free Software Foundation, Inc."
+
+#~ 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 ""
+#~ "Esto es software libre; vea el cdigo fuente para las condiciones de copia.\n"
+#~ "No hay NINGUNA garanta; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN\n"
+#~ "FIN DETERMINADO.\n"
+
+#~ msgid "Write to compression program short %lu bytes"
+#~ msgstr "La escritura al programa de compresin acorta %lu bytes"
+
+#~ msgid "Removing `%.*s' prefix from member names"
+#~ msgstr "Eliminando el prefijo `%.*s' de los nombres"
+
+#~ msgid "Archive contains future timestamp %s"
+#~ msgstr "El archivo contiene la marca de tiempo en el futuro %s"
+
+#~ msgid "%s: Cannot symlink %s %s"
+#~ msgstr "%s: No se puede crear el enlace simblico %s %s"
+
+#~ msgid "Invalid group given on option"
+#~ msgstr "Se ha especificado un grupo no vlido en la opcin"
+
+#~ msgid "Invalid owner given on option"
+#~ msgstr "Se ha especificado un propietario no vlido en la opcin"
+
+#~ msgid "Cannot close file descriptor"
+#~ msgstr "No se puede cerrar el descriptor de fichero"
+
+#~ msgid "Cannot properly duplicate %s"
+#~ msgstr "No se puede duplicar %s correctamente"
+
+#~ msgid "(child) Pipe to stdin"
+#~ msgstr "(proceso hijo) Se abre una tubera desde la entrada estndar"
+
+#~ msgid "Archive to stdout"
+#~ msgstr "Archivo hacia la salida estndar"
+
+#~ msgid "((child)) Pipe to stdout"
+#~ msgstr "((proceso hijo)) Se abre una tubera hacia la salida estndar"
+
+#~ msgid "(grandchild) Pipe to stdin"
+#~ msgstr "(proceso nieto) Se abre una tubera desde la entrada estndar"
+
+#~ msgid "(child) Pipe to stdout"
+#~ msgstr "(proceso hijo) Se vuelca el resultado por la salida estndar"
+
+#~ msgid "((child)) Pipe to stdin"
+#~ msgstr "((proceso hijo)) Se abre una tubera desde la entrada estndar"
+
+#~ msgid "(grandchild) Pipe to stdout"
+#~ msgstr "(proceso nieto) Se abre una tubera hacia la salida estndar"
+
+#~ msgid "Only wrote %lu of %lu bytes to %s"
+#~ msgstr "Slo se escribieron %lu de %lu bytes en %s"
+
+# FIXME: No queda claro si es al cerrar, cerrando, cierre, o qu. sv
+#~ msgid "WARNING: %s: close (%d, %d)"
+#~ msgstr "ATENCIN: %s: se cierra (%d, %d)"
+
+#~ msgid "Cannot allocate memory for diff buffer of %lu bytes"
+#~ msgstr "No se puede asignar memoria para el bfer de diferencias de %lu bytes"
+
+# Lo mismo que con stat() em+
+# seek() es otra funcin. seek = "hacer seek()" Estos
+# angloparlantes!
+#~ msgid "Cannot seek to %s in file %s"
+#~ msgstr "No se puede acceder a la posicin %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"
+
+#~ msgid "lseek error at byte %s in file %s"
+#~ msgstr "Error de lectura en el byte %s en el fichero %s"
+
+# "se rellena" debera ser "rellenando". "se rellena" puede entenderse como
+# varias cosas, no queda claro que es lo que se esta haciendo, podra indicar
+# lo que se suele hacer.. =) "rellenando con ceros" es perfecto y es
+# exactamente lo que est escrito en el original. sv
+#
+# Que s, reconozco que la traduccin es un poco libre.
+# Pero mi intencin 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
+#~ msgid "File %s shrunk, padding with zeros"
+#~ msgstr "El tamao del fichero %s ha disminuido, se rellena con ceros"
+
+# OK em+
+# Can't = no se puede; couldn't: no se ha podido. gag
+# O no se pudo. sv
+# Esa forma verbal se debera usar para cosas ocurridas hace mucho ms tiempo.
+# No pude hacer la Primera Comunin vestido de hombre-rana, no he podido
+# escribir esta frase en caracteres jeroglficos. gag
+#
+#~ msgid "Cannot reposition archive file"
+#~ msgstr "No se puede reposicionar el archivo"
+
+#~ msgid "%s: Cannot change access and modification times"
+#~ msgstr "%s: No se pueden cambiar las fechas de acceso y modificacin"
+
+#~ msgid "%s: Cannot lchown to uid %lu gid %lu"
+#~ msgstr "%s: No se puede cambiar el propietario y grupo con `lchown' a uid %lu gid %lu"
+
+#~ msgid "%s: Cannot chown to uid %lu gid %lu"
+#~ msgstr "%s: No se puede cambiar el propietario y grupo con `chown' a uid %lu gid %lu"
+
+#~ msgid "%s: lseek error at byte %s"
+#~ msgstr "%s: error de desplazamiento en el byte %s"
+
+#~ msgid "%s: Could only write %s of %s bytes"
+#~ msgstr "%s: Slo se pudieron escribir %s de %s bytes"
+
+#~ msgid "Error while deleting %s"
+#~ msgstr "Error al borrar %s"
+
+#~ msgid "Only wrote %lu of %lu bytes to file %s"
+#~ msgstr "Slo se escribieron %lu de %lu bytes al archivo %s"
+
+#~ msgid "Renaming previous %s to %s\n"
+#~ msgstr "Se renombra el anterior %s como %s\n"
+
+#~ msgid "%s: Cannot rename for backup"
+#~ msgstr "%s: No se puede renombrar para hacer una copia de seguridad"
+
+#~ msgid "%s: Cannot rename from backup"
+#~ msgstr "%s: No se puede renombrar de la copia de seguridad"
+
+# FIXME. No es traducible.
+#~ msgid "Cannot %s %s"
+#~ msgstr "No se puede %s %s"
+
+#~ msgid "Read error at byte %s reading %lu bytes in file %s"
+#~ msgstr "Error de lectura en el byte %s leyendo %lu bytes en el fichero %s"
+
+#~ msgid "Cannot open pipe"
+#~ msgstr "No se puede abrir la tubera"
+
+#~ msgid "Cannot open archive %s"
+#~ msgstr "No se puede abrir el archivo %s"
+
+#~ msgid "Cannot exec %s"
+#~ msgstr "No se puede ejecutar %s"
+
+# lo mismo de antes. sv
+#~ msgid "Child cannot fork"
+#~ msgstr "El proceso hijo no puede bifurcarse"
+
+#~ msgid "Cannot read from compression program"
+#~ msgstr "No se puede leer del programa de compresin"
+
+#~ msgid "Cannot write to compression program"
+#~ msgstr "No se puede escribir al programa de compresin"
+
+#~ msgid "Cannot write to %s"
+#~ msgstr "No se puede escribir en %s"
+
+#~ msgid "Read error on %s"
+#~ msgstr "Error de lectura en %s"
+
+#~ msgid "WARNING: Cannot truncate %s"
+#~ msgstr "ATENCIN: No se puede truncar %s"
+
+#~ msgid "While waiting for child"
+#~ msgstr "Mientras se esperaba al hijo"
+
+# Estos errores son para el debug del programa. A quien le pueda
+# interesar sabe lo que quiere decir em+
+# Otras veces se ha puesto bifurcar sin el (fork)! Esto es difcil,
+# porque tambin podra ponerse: "No se puede hacer fork()", ya que
+# fork() es un punto de entrada a una primitiva Unix; vaya, una
+# funcin. gag
+# FIXME. Hablar con el autor.
+# en fileutils-3.16.es.po, el autor cambi el "Cannot fork" por "fork
+# system call failed", con lo que podra pasar lo mismo ahora. Si no
+# hay cambios, yo preferira: "No se puede crear proceso hijo (fork)!"
+# jmg
+#~ msgid "Cannot fork!"
+#~ msgstr "No se puede bifurcar!"
+
+#~ msgid "Cannot exec a shell %s"
+#~ msgstr "No se puede ejecutar un shell %s"
+
+#~ msgid "Cannot open %s"
+#~ msgstr "No se puede abrir %s"
+
+#~ msgid "Cannot read %s"
+#~ msgstr "No se puede leer %s"
+
+#~ msgid "Error while closing %s"
+#~ msgstr "Error al cerrar %s"
+
+#~ msgid "Cannot read link %s"
+#~ msgstr "No se puede leer el enlace %s"
+
+#~ msgid "Could not rewind archive file for verify"
+#~ msgstr "No se pudo rebobinar el archivo para verificar"
+
+#~ msgid "Cannot add file %s"
+#~ msgstr "No se puede aadir el fichero %s"
+
+#~ msgid "Cannot add directory %s"
+#~ msgstr "No se puede aadir el directorio %s"
+
+#~ msgid "Cannot open directory %s"
+#~ msgstr "No se puede abrir el directorio %s"
+
+#~ msgid "%s: Could not write to file"
+#~ msgstr "%s: No se pudo escribir en el fichero"
+
+#~ msgid "%s: Could not create file"
+#~ msgstr "%s: No se pudo crear el fichero"
+
+#~ msgid "%s: Error while closing"
+#~ msgstr "%s: Error al cerrar"
+
+#~ msgid "%s: Could not make node"
+#~ msgstr "%s: No se pudo crear el nodo"
+
+# Pongo comitas porque no es una palabra espaola.
+# A quien no le guste que abra el debate sobre cundo s y cundo no
+# deben ponerse comitas en es@li.org.
+#~ msgid "%s: Could not make fifo"
+#~ msgstr "%s: No se pudo crear el `fifo'"
+
+#~ msgid "%s: Could not create directory"
+#~ msgstr "%s: No se pudo crear el directorio"
+
+#~ msgid "Added write and execute permission to directory %s"
+#~ msgstr "Aadidos permisos de escritura y ejecucin al directorio %s"
+
+#~ msgid "Cannot open file %s"
+#~ msgstr "No se puede abrir el fichero %s"
+
+#~ msgid ""
+#~ "\n"
+#~ "Usage: %s [OPTION]... [FILE]...\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Modo de empleo: %s [OPCIN]... [FICHERO]...\n"
+
+# Me encantara poder incluir tos propuestas de usar el \372 ( aspa ) y
+# el (C) , veremos si lo hacemos algn da. em+
+# Estara bien cambiar el '(C)' por '', que es otro carcter de
+# ISO-Latin1. Como los yanquis usan el ASCII (US ISO-646), que es de
+# 7 bits, no lo pueden usar; nosotros s. Incluso "Copyright" por
+# "Derechos de copia". Ya lo de FSF por Fundacin del Logical Libre
+# es demasiado, verdad? :-) gag
+# < Puede alguien explicarme por qu no se hace ya, o no se ha hecho
+# antes? Qu diferencia hay, bajo el punto de vista de ser caracteres
+# vlidos, entre '' y '' o entre '' y '' o entre '' y '' o entre
+# '' y ''? Lo nico que se me ocurre es que es algo difcil introducir
+# esos caracteres porque no estn en el teclado del PC. No hay ms que
+# irse a una terminal o teclado con tecla de Componer o usar el Emacs con
+# C-q ooo (ooo = nmero octal) con la tabla (man iso_8859_1) al lado.
+# Alguien tiene otra explicacin?
+#
+# Se ven peor. Estas cosas deben ser bien legibles desde consola, y el
+# Copyright ese no se ve demasiado bien. sv
+# Nostoy dacuerdo. Protesto enrgicamente. gerardo
+# No tendra ningn inconveniente en usar ese carcter si el objetivo final
+# fuera que apareciese por una lser de 300ppp, pero el objetivo es que se
+# vea por consola, y con la poca resolucin que tiene no es un Copyright
+# hecho y derecho sino una C dentro de algo que parece ms bien un cuadrado
+# con los bordes redondeados. Incluso el (C) Sinclair Research...
+# se vea mejor que el de los PCs. sv
+# Bueno, eso es un problema del tipo de letra, no del traductor. Adems (C)
+# es el sucedneo legal del , como TeX cuando no se puede poner como \TeX{}.
+# Pero es un sucedneo, no el original. Es un copyright light. A ms a ms,
+# como dicen los catalanes, que ya aparece delante la palabra Copyright, por
+# lo que no debe haber ambigedad. gerardo
+#
+# Hombre, el objetivo del traductor es que se entienda, y por ser (C)
+# el "sucedneo legal", como t le dices, es razonable usarlo.
+# En cambio la "" no tiene sucedneo legal, por lo que poner
+# "espagna" o "espa~na" sera completamente inaceptable.
+# Y si lo miras bien, todos son sucedneos, pues las letras no "son"
+# pixelizadas. Lo que yo digo es que no es un sucedneo ms bonito que (C)
+# para el smbolo de copyright. sv
+#~ msgid ""
+#~ "\n"
+#~ "Copyright 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Copyright 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc.\n"
+
+# Segn gag y jmg, hay que decir: "no est en un lmite de bloque", pues
+# no estamos hablando de un bloque concreto (el bloque) sino de uno cualquiera.
+# FIXME: Entonces tal vez el original debera decir "on a block boundary". sv
+#~ msgid "Archive %s EOF not on block boundary"
+#~ msgstr "El fin del archivo %s no est en un lmite de bloque"
+
+# por qu convertir las oraciones unimembres en bimembres? Ya vi
+# otro caso en donde se hace y no veo por qu. Bien podra quedar como:
+# "Nombre de fichero %s%s demasiado largo". nl
+# Algunas de esas frases suenan a "indio" sv
+# Hombre, esto no es una novela (del Oeste :-), la forma "india" es
+# ms literal y ms corta, lo que quiz sea ms apropiado para mensajes
+# concisos como stos; pero en realidad es ms agradable de leer as.
+# El traductor manda. gerardo
+#~ msgid "File name %s%s too long"
+#~ msgstr "El nombre de fichero %s%s es demasiado largo"
+
+#~ msgid "Skipping to next file header"
+#~ msgstr "Saltando a la siguiente cabecera de fichero"
+
+#~ msgid "Cannot determine initial working directory"
+#~ msgstr "No se puede determinar el directorio de trabajo inicial"
+
+#~ msgid "Could not get current directory"
+#~ msgstr "No se pudo obtener el directorio actual"
+
+#~ msgid "Could not get current directory: %s"
+#~ msgstr "No se pudo obtener el directorio actual: %s"
+
+#~ msgid "File name %s/%s too long"
+#~ msgstr "El nombre del fichero %s/%s es demasiado largo"
+
+#~ msgid "%s: out-of-range timestamp `%s' ignored"
+#~ msgstr "%s: no se tendr en cuenta la marca de fecha `%s' fuera de rango"
+
+#~ msgid "Cannot chdir to %s"
+#~ msgstr "No se puede cambiar al directorio %s"
+
+#~ msgid "Arithmetic overflow"
+#~ msgstr "Sobrepasamiento aritmtico"
+
+# Se vuelca la *memoria* del proceso en un fichero llamado `core'.
+#~ msgid " (core dumped)"
+#~ msgstr " (memoria volcada)"
+
+#~ msgid "Data differs"
+#~ msgstr "Los datos son distintos"
+
+#~ msgid "File does not exist"
+#~ msgstr "El fichero no existe"
+
+# Uff, a lo mejor se asusta el usuario si ponemos 'no se pudo leer con stat()
+# el estado del fichero em+
+# stat() es una primitiva Unix que acaba de fallar; tambin podra
+# ser: "No se puede hacer stat() del fichero %s", o "stat() ha fallado..."
+# Aunque tal como est es ms descriptivo para el nefito, desde
+# luego. gag
+#~ msgid "Cannot stat file %s"
+#~ msgstr "No se puede leer el estado del fichero %s"
+
+#~ msgid "Not a regular file"
+#~ msgstr "No es un fichero regular"
+
+#~ msgid "Does not exist"
+#~ msgstr "No existe"
+
+#~ msgid "No such file or directory"
+#~ msgstr "No existe el fichero o el directorio"
+
+#~ msgid "Mode or device-type changed"
+#~ msgstr "El modo o el tipo de dispositivo ha cambiado"
+
+#~ msgid "No longer a directory"
+#~ msgstr "Ya no es un directorio"
+
+# Lo mismo. sv
+# Sugerencia: Sendero -> Ruta, camino. sv
+# Lo siento, no me sala la palabra. Esperaba correcin. fr
+# Siempre he estado usando ruta en otras traducciones em+
+# # Esta vez sugiero "camino", por seguir la terminologa de
+# # Microsoft, ya que da lo mismo, no? gag
+# Quedara igualmente claro si no se hace referencia a ruta:
+# "... de los nombres absolutos en el archivo". jmg
+#~ msgid "Removing leading `/' from absolute path names in the archive"
+#~ msgstr "Borrando la `/' inicial de los nombres absolutos de ruta en el archivo"
+
+#~ msgid "Amount actually written is (I hope) %d.\n"
+#~ msgstr "La cantidad realmente escrita (esperemos) es %d.\n"
diff --git a/po/.reference/es.s1 b/po/.reference/es.s1
new file mode 100644
index 00000000..b2a7161c
--- /dev/null
+++ b/po/.reference/es.s1
@@ -0,0 +1 @@
+a8086f9ae80fe9c43466afa0618adb893b44f076 -
diff --git a/po/.reference/et.po b/po/.reference/et.po
new file mode 100644
index 00000000..9ad9d480
--- /dev/null
+++ b/po/.reference/et.po
@@ -0,0 +1,2614 @@
+# This file is distributed under the same license as the tar package.
+# Estonian translations for GNU tar.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Toomas Soome <Toomas.Soome@microlink.ee>, 2011.
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-12 18:29+0200\n"
+"Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
+"Language-Team: Estonian <linux-ee@lists.eenet.ee>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-15\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "vigane argument %s (`%s')"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "segane argument %s (`%s')"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Lubatud argumendid on:"
+
+#: 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 vrtus on viksem vi vrdne kui %s"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT parameeter nuab vrtust"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Tundmatu ARGP_HELP_FMT parameeter"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Prgi ARGP_HELP_FMT parameetrites: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Kohustuslikud vi mittekohustuslikud argumendid pikkadele vtmetele on ka kohustuslikud vi mittekohustuslikud vastavatele lhikestele vtmetele."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Kasutamine:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " vi: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [VTI...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "`%s --help' vi `%s --usage' annab rohkem infot.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Teated vigadest saatke palun aadressil %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Tundmatu ssteemi viga"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "nita seda abiinfot"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "nita lhikest kasutamise petust"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NIMI"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "sea programmi nimi"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "oota SEK sekundeid (vaikimisi 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "esita programmi versioon"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMMI VIGA) Versioon pole teada!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Liiga palju argumente\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMMI VIGA) Vti peaks olema ra tuntud!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "viga kirjutamisel"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: vti '%s' on segane\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: vtmel '--%s' pole argumente\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: vtmel '%c%s' pole argumente\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: vti '--%s' nuab argumenti\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: tundmatu vti '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: tundmatu vti '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: vigane vti -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: vti nuab argumenti -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: vti '-W %s' on segane\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: vti '-W %s' ei luba argumenti\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: vti '-W %s' nuab argumenti\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "mlu on otsas"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "ei nnestu salvestada jooksvat tkataloogi"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "algsesse tkataloogi ei nnestu tagasi minna"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[jJ]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[eE]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Paketi looja %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Paketi looja %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr ""
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Litsents GPLv3+: GNU GPL versioon 3 vi uuem <http://gnu.org/licenses/gpl.html>.\n"
+"See on vaba tarkvara: teil on lubatud seda muuta ja levitada.\n"
+"GARANTII PUUDUB, vastaval seadusega lubatud piiridele.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Kirjutanud %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:108
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Kirjutanud %s ja %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "Kirjutanud %s, %s ja %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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"ja %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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"%s ja %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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"%s, %s ja %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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"%s, %s, %s ja %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"ja %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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s ja %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.
+#: 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 ""
+"Kirjutanud %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s ja teised.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Teated vigadest saatke palun aadressil: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Teated %s vigadest saatke palun aadressil: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s koduleht: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "%s koduleht: <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 "ldine abiinfo GNU tarkvara kasutamisest: <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 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Eemaldan liikmete nimedelt prefiksi `%s'"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Eemaldan viidatavate nimedelt prefiksi `%s'"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Kasutan thjade nimede asemel `.'"
+
+#: lib/paxnames.c:155
+msgid "Substituting `.' for empty hard link target"
+msgstr "Kasutan thja 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 vljund"
+
+#: lib/rtapelib.c:429
+#, c-format
+msgid "Cannot connect to %s: resolve failed"
+msgstr "Ei nnestu luua hendust masinaga %s: nimelahendus ebannestus"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Ei saa kivitada kaug ksuinterpretaatorit"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Otsimise suund on piiridest vljas"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Vigane seek suund"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Vigane seek indeks"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Otsimise indeks on piiridest vljas"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Vigane baitide arv"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Baitide arv on piiridest vljas"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Ootamatu faili lpp"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Vigane operatsiooni kood"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operatsioon ei ole toetatud"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Ootamatud argumendid"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Opereeri lindiseadet, aktsepteerib kske mittelokaalselt protsessilt"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "N"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "mra silumise tase"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FAIL"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "sea silumisteadete faili nimi"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "%s ei saa avada"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "liiga palju argumente"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Rmpsksk"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Hmm.... see ei tundu olema tar arhiiv"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Baite kirjutatud kokku"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Baite loetud kokku"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Baite kirjutatud kokku: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(toru)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Kirje suuruse vrtus on vigane"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Arhiivi nime pole"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Ei saa kontrollida sisend/vljund arhiive"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arhiiv on tihendatud. Kasutage vtit %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Ei saa uuendada pakitud arhiive"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Lindi alguses, lpetan t"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Liig palju vigu, jtan t pooleli"
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Arhiivi ei nnestu tagasi kerida; lugemiseks vib olla vajalik kasutada vtit -i"
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek ei peatunud kirje piiril"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: sisaldab vigast volmi numbrit"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Volmi number on liiga suur"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Otsi volm #%d %s'le ja vajuta return klahvi: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "EOF kasutaja vastuse asemel"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "HOIATUS: Arhiiv pole tielik"
+
+#: src/buffer.c:1148
+#, 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 nimi Anna jrgmistele volmidele uus nimi\n"
+" q Katkesta tar\n"
+" y vi reavahetus Jtka\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Loo alamshell\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Vljasta see info\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Pole uus volm; lpetan t.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Puudub faili nimi. Proovige uuesti.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Vigane sisend. ? annab abiinfot.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "%s ksklus sai vea"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "vimalik et %s jtkub sellel volmil: pises on lhendatud nimi"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s ei jtku sellel volmil"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s on vale suurusega (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "See volm on vljaspoolt jrjekorda (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arhiivi mrgend ei sobi %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Volm %s ei sobi volmiga %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: faili nimi on GNU mitmevolmi pisesse salvestamiseks liiga pikk, lhendan"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "kirjutamine ei peatunud bloki piiril"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Sisu on erinev"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Ootamatu arhiivi lpp"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Failitbid on erinevad"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Moodid erinevad"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "UID on erinevad"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "GID on erinevad"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Muutmise ajad erinevad"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Suurused erinevad"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "ei viita %s-le"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Nimeviited erinevad"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Seadme numbrid on erinevad"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Kontroll "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Tundmatu failitp '%c', vrdlen tavalise failina"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arhiiv sisaldab eemaldatud prefiksitega failinimesid."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Arhiiv sisaldab teisendatud faili nimesid."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Kontrollimine ei pruugi leida algseid faile."
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "VIGA KONTROLLIMISEL: leiti %d vigast pist"
+msgstr[1] "VIGA KONTROLLIMISEL: leiti %d vigast pist"
+
+#: src/compare.c:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "ksik null blokk kohal %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: sisaldab vahemlu kataloogi lipikut %s; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "vrtus %s on %s piiridest %s..%s vljas; asendan %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "vrtus %s on %s piiridest %s..%s vljas"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Genereerin negatiivsed kaheksand pised"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: faili nimi on liiga pikk (maks. %d); ei salvesta"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: faili nimi on liiga pikk (ei saa poolitada); ei salvesta"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: viite nimi on liiga pikk; ei salvesta"
+
+#: src/create.c:1064
+#, 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 lhenes %s baiti; tidan nullidega"
+msgstr[1] "%s: Fail lhenes %s baiti; tidan nullidega"
+
+#: src/create.c:1160
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: fail on teises failissteemis; ei salvesta"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "sisu ei salestata"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tundmatu failitp; ignoreerin seda faili"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "%s-le puudub viiteid."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: pole muutunud; ei salvesta"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s on arhiiv; ei salvesta"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "kataloogi ei salvestatud"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: fail muutus lugemisel"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: ignoreerin pesa"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: ignoreerin ust"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Hppan jrgmise piseni"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Kustutan arhiivist mitte-pise"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: ebatenoliselt vana ajatempel %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: ajatempel %s on %s sekundit tulevikus"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Ootamatu koosklalisuse probleem kataloogi loomisel"
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Taastan jtkuvad failid kui tavalised"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "ritan taastada nimeviiteid viidetena"
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Ei saa taastada -- fail jtkub teisel volmil"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Ootamatu pika nime pis"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Tundmatu failitp `%c', taastan tavalise failina"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Olemasolev %s on uuem vi sama kuupevaga"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Selle faili varundamine ebannestus"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s ei nnestu mber nimetada %s-ks"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Kataloog %s on mber nimetatud"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Kataloog on mber nimetatud"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Kataloog on uus"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Vigane ajatempel"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Vigane muutmise aeg (sekundid)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Vigane muutmise aeg (nanosekundid)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Vigane seadmenumber"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Vigane i-kirje number"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Snapshoti faili lugemisel leiti liiga pikk vli"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Snapshoti failist lugemise viga"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Ootamatu snapshoti faili lpp"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Snapshoti failis on vljal ootamatu vrtus"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Puudub kirje lpetaja"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Inkrementaalse faili vorming on vigane"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Mittetoetatud inkrementaalse vormingu versioon: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Vigane taastamise kataloog: eeldasin '%c', sain %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Vigane taastamise kataloog: dubleeritud 'X'"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Vigane taastamise kataloog: thi nimi 'R' vljal"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Vigane taastamise kataloog: 'R' ei ole 'T' ees"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Vigane taastamise kataloog: thi nimi 'T' vljal"
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Vigane taastamise kataloog: 'X' ei kasutata"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Vormiga %s ei saa ajutist kataloogi luua"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Ei puhasta kataloogi: stat ebannestus"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: kataloog on teisel seadmel; ei puhasta"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Kustutan %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ei saa eemaldada"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Jtan vahele"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blokk %s: ** NULlide blokk **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blokk %s: ** Faili lpp **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blokk %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Thjad vljad pises kohtadel, kus eeldati numbrit %s"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Arhiivi kaheksandvrtus %.*s on %s piiridest vljas; eeldan kahe tiendit"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Arhiivi kaheksandvrtus %.*s on %s piiridest vljas"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arhiiv sisaldab aegunuid base-64 piseid"
+
+#: src/list.c:809
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Arhiivi mrgiga base-64 sne %s on %s piiridest vljas"
+
+#: src/list.c:840
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Arhiivi base-256 vrtus on %s piiridest vljas"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:869
+#, 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:891
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Arhiivi vrtus %s on %s piiridest %s..%s vljas"
+
+#: src/list.c:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " viide %s-le\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tundmatu failitp %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Pikk viide--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Pikk nimi--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Volmi pis--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Jtkub baidilt %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Loon kataloogi:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Ei nnestu lugeda tkataloogi"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Annan %s uueks nimeks %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: ei nnestu mber nimetada %s-ks"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Nimetan `%s' tagasi `%s'\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fail kustutati enne lugemist"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "alamprotsess"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "protsessidevaheline kanal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Failide nimedes on jokkersmbolid"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Jokkerite lubamiseks kasutage --wildcars vi --no-wildcards selle teate blokeerimiseks"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Puudub arhiivis"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Nutud eksemplar puudub arhiivis"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Arhiivi mrgend ei sobi"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "--listed-incremental ei luba faili loendis vtit -C kasutada"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Vti --listed-incremental lubab ainult hte -C kasutamist"
+
+#: src/tar.c:81
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Mlemad vtmed - `-%s' ja `-%s' eeldavad standard sisendit"
+
+#: src/tar.c:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Vigane arhiivi vorming"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Arhiivi formaat ei toeta GNU laiendusi"
+
+#: 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 ksuga `%s --quoting-style=help'"
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' salvestab failid hte lindi vi ketta faili arhiivi ja taastab\n"
+"arhiivist ksikuid faile.\n"
+"\n"
+"Niteid:\n"
+" tar -cf arhiiv.tar foo bar # Loo arhiiv.tar failidest foo ja bar.\n"
+" tar -tvf arhiiv.tar # Anna arhiiv.tar sisust tielik levaade.\n"
+" tar -xf arhiiv.tar # Taasta kik failid arhiivist arhiiv.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Varukoopia lpp on `~', kui pole antud --suffix vi SIMPLE_BACKUP_SUFFIX.\n"
+"Versiooni kontrolli vib mrata --backup vi VERSION_CONTROL, vrtused on:\n"
+"\n"
+" none, off varukoopiat ei loo\n"
+" t, numbered tee nummerdatud koopiaid\n"
+" nil, existing nummerdatud kui koopiad on nummerdatud, muidu lihtne\n"
+" never, simple tee ainult lihtne koopia\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Philine t:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "nita arhiivi sisukorda"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "taasta failid arhiivist"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "loo uus arhiiv"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "otsi arhiivi ja failissteemi erinevusi"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "lisa failid arhiivi lppu"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "lisa arhiivi ainult failid uuemad kui arhiivis"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "lisa tar failid arhiivi"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "kustuta arhiivist (mitte magnetlindilt!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "testi arhiivi volmi mrgendit ja lpeta t"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "T tpsustamine:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "tta aukudega failidega efektiivsemalt"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "PHI[.ALAM]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "mra aukudega faili vormingu versioon (eeldab vtit --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "ksitle vana GNU vormingus inkrementaalset koopiat"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "ksitle uue GNU vormingu inkrementaalset koopiat"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "loodud listed-incremental arhiivi dump tase"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "ra lpeta loetamatute failide korral veakoodiga"
+
+#: src/tar.c:429
+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 ""
+"ttle ainult N-dat esinemist arhiivi igast failist. See vti on lubatud ainult\n"
+"kskudega --delete, --diff, --extract vi --list ja kui failide loend on antud\n"
+"ksureal vi vtmega -T. Vaikimisi N on 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "arhiiv on positsioneeritav"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "arhiiv ei ole positsioneeritav"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "inkrementaalsete arhiivide loomisel ra kontrolli seadmete numbreid"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "inkrementaalsete arhiivide loomisel kontrolli seadmete numbreid (vaikimisi)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "lekirjutamise juhtimine:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "kontrolli arhiivi peale arhiivi kirjutamist"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "kustuta failid peale arhiveerimist"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "olemasolevaid faile taastamisel le ei kirjuta"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "kirjuta olemasolevad failid le"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "kustuta fail enne taastamist"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "kustuta hierarhia enne kataloogi taastamist"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "silita olemasolevate kataloogide metainfo"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "taastamisel kirjuta olemasolevate kataloogide metainfo le (vaikimisi)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Vali vljundvoog:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "taasta failid standardvljundisse"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "KSK"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "taasta failid lbi toru teise programmi"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ignoreeri alamprotsesside lpetamise koode"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "ksitle alamprotsesside nullist erinevaid lpetamise koode veana"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Faili atribuutide ksitlemine:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "kasuta NIMEe kui lisatud failide omanikku"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "kasuta NIMEe kui lisatud failide gruppi"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "KUUP-VI-FAIL"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "sea lisatud failide muutmise ajaks KUUP-VI-FAIL"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "MUUTUSED"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "kasuta lisatud failidel smbol moodi MUUTUSED"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "MEETOD"
+
+#: src/tar.c:499
+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 "silita salvestatud failide kasutamise aeg, kas taastades selle peale lugemist (METHOD='replace'; vaikimisi) vi ei muuda kasutamise aega ldse (METHOD='system')"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "ra taasta faili muutmise aega"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "rita failide taastamisel silitada failide omanikud arhiivis (root kasutajal vaikimisi)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "taasta failid enda igustes (tavakasutajatel vaikimisi)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "kasuta kasutaja/grupp numbreid"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "taasta ka info failide igustest (vaikimisi superkasutaja korral)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "iguste taastamisel kasuta kasutaja umask vrtust (vaikimisi tavakasutajatel)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "taasta failid arhiveerimis jrjekorras"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "sama, kui -p ja -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "oota muutmise aegade ja iguste taastamisega taastamise lpuni"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "katkesta --delay-directory-restore vtme mju"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Seadme valik ja vahetamine:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARHIIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "kasuta arhiivi faili vi seadet ARHIIV"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "arhiivi fail on lokaalne isegi kui sisaldab koolonit"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "kasuta rmt asemel antud ksku"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "kasuta rsh asemel antud ksku"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "mra seade ja tihedus"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "loo/nita/taasta mitme volmilisi arhiive"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "vaheta peale NUMBER x 1024 baidi kirjutamist linti"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "kivita iga lindi lpus skript (eeldab vtit -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "kasuta/uuenda volmi numbrit failis FAIL"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Seadme blokkimine:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKKE"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOKKE x 512 baiti kirjele"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "NUMBER baiti kirjele, 512 kordne"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignoreeri null blokke arhiivis (thistab EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "bloki lugemisel uuesti (4.2BSD torude jaoks)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Arhiivi vormingu valikud:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "VORMING"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "loo arhiiv antud vormingus"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "VORMING on ks jrgnevaist:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "vana V7 tar vorming"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU vorming tar <= 1.12 korral"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x vorming"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) vorming"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) vorming"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "sama, kui pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "sama, kui --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "sama, kui --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "vtmesna[[:]=vrtus][,vtmesna[[:]=vrtus]...]"
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "pax vtmesnade kasutamine"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEKST"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "loo arhiivi volmi nimega NIMI. Listingu/taastamise ajal kasuta TEKSTi otsingumustrina"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Tihendamise vtmed:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "tihendamisprogrammi tuvastamiseks kasuta arhiivi sufiksit"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "tihendamisprogrammi tuvastamiseks ra kasuta arhiivi sufiksit"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtreeri lbi programmi (peab lubama vtit -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Lokaalse faili valik:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "KAT"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "mine kataloogi KAT"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "loe taastatavate vi varundatavate failide nimed failist NIMI"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T loeb nullidega lpetatud nimesid, blokeeri -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "blokeeri eelmise --null vtme mju"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "eemalda -T vtmega loetud failinimedest kvootimissmbolid (vaikimisi)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "ra eemalda -T vtmega loetud failinimedest kvootimissmboleid"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MUSTER"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "MUSTRI jrgi vlistatud failid"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "vlistavad mustrid on FAILIS"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "vlista kataloogide, mis sisaldavad CACHEDIR.TAG, sisu, vlja arvatud mrgendi fail ise"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "vlista kik kataloogis, mis sisaldab CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "vlista kataloogid, mis sisaldavad CACHEDIR.TAG"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "vlista kataloogide, mis sisaldavad faili FAIL, sisu, vlja arvatud FAIL ise"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "vlista kataloogid, mis sisaldavad faili FAIL"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "vlista kataloogid, mis sisaldavad faili FAIL"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "vlista versiooni kontrolli ssteemi kataloogid"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "vlista varukoopiad ja lukufailid"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "ra sisene kataloogidesse"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "psi arhiivi loomise ajal kohalikus failissteemis"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "sisene kataloogidesse (vaikimisi)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "ra eemalda faili nimedelt prefiksit `/'"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "jrgi nimeviiteid; arhiveeri ja taasta viidatavad failid"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "jrgi viiteid; arhiveeri ja taasta viidatavad failid"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "KOMPONENT"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "alusta arhiivi liikmest KOMPONENT"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "salvesta ainult failid mis on uuemad kui KUUP-VI-FAIL"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "KUUPEV"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "vrdle kuupevi ainult kui andmed on muutunud"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "KONTROLL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "loo enne eemaldamist varukoopia, vali versioonikontroll"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "SNE"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "varunda enne kustutamist, kasuta uut lppu (vaikimisi '~', kui pole le mratud keskkonnamuutujaga SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Failide nimede muutmine:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "eemalda taastamisel failide nimede algusest NUMBER komponenti"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "AVALDIS"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "kasuta failide nimede muutmiseks sed asendus avaldist"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Failinimede otsimine (mjutab nii kaasamist, kui vlistamist):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "tstutundetu"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "mustrid alustavad faili nime algusest"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "mustrid toimivad iga / jrel (vlistamise korral vaikimisi)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "tstutundlik otsimine (vaikimisi)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "kasuta jokkersmboleid (vlistamise korral vaikimisi)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "tht-theline sne otsimine"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "jokkerid ei leia '/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "jokkersmbolid leiavad '/' (vlistamise korral vaikimisi)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informatsioon:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "vljasta tdeldavate failide kohta infot"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "VTMESNA"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "hoiatuste juhtimine"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "anna t kohta infot iga NUMBER kirje jrel (vaikimisi 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "TEGEVUS"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "kivita tegevus igas kontrollpunktis"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "vljasta teade, kui kike viiteid pole salvestatud"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAAL"
+
+#: src/tar.c:751
+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 "vljasta peale arhiivi ttlemist baitide koguarv, argumendi korral - vljasta see info, kui saadetakse antud signaal. Lubatud signaalid on: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 ja SIGUSR2; SIG prefiksi vib ra jtta"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "vljasta failide muutmise ajad UTC esituses"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "vljasta faili aeg tielikult"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "salvesta tiendav info FAILi"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "nita iga teatega ka arhiivi bloki numbrit"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "ksi iga tegevuse kohta kinnitust"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "nita tar vaikeseadeid"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "listingu vi taastamise ajal, nita igat kataloogi mis ei vasta otsingutingimustele"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "peale teisendamist nita faili vi arhiivi nime"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STIIL"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "mra nimede kvootimise stiil; lubatud vrtused on toodud allpool"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "lisaks kvoodi snes nidatud smbolid"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "keela snes toodud smbolite kvootimine"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "hilduvuse vtmed:"
+
+#: src/tar.c:787
+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:792
+msgid "Other options:"
+msgstr "Muud vtmed:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "blokeeri potentsiaalselt ohtlikud vtmed"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Korraga vib kasutada ainult hte vtmetest `-Acdtrux' vi `--test-label'"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Konfliktsed pakkimisvtmed"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Tundmatu signaali nimi: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Kuupeva fail puudub"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Kasutan %s tundmatu ajaformaadi %s asemel"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Vti %s: Ksitlen aega `%s' kui %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: failide nimekiri on juba loetud"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: loetud faili nimi sisaldab smbolit nul"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtreeri arhiiv lbi %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Vtmega --quoting-style on lubatud jrgnevad argumendid:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*See* tar kasutab vaikimisi:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Vigane blokkimisfaktor"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Vigane lindi pikkus"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Inkrementaalse varunduse taseme vrtus on vigane"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Rohkem kui ks etteantud aeg"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Vigane aukudega faili versiooni vrtus"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' ei ole sellel platvormil toetatud"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint vrtus ei ole tisarv"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Vigane grupp"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Vtmega anti vigane mood"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Vigane number"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Vigane omanik"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Vti --preserve on mittesoovitatav, kasutage --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Vigane kirje suurus"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Kirje suurus peab olema %d kordne."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Vigane elementide arv"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Lubatud on ainult ks --to-command vti"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Vigane tiheduse argument: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Tundmatu tihedus: `%c'"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "*See* tar ei toeta vtmeid `-[0-7][lmh]'"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[FAIL]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Vana vti `%c' nuab argumenti."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence ei oma failide nimekirjata mtet"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence ei saa valitud treiimil kasutada"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Mitme arhiivifaili kasutamine nuab vtit `-M'"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental ja --newer ei saa koos kasutada"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level ei oma vtmeta --listed-incremental mtet"
+
+#: src/tar.c:2423
+#, 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: Volmi mrgend on liiga pikk (piirang on %lu baiti)"
+msgstr[1] "%s: Volmi mrgend on liiga pikk (piirang on %lu baiti)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Ei suuda kontrollida mitme volmilisi arhiive"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Ei saa kontrollida pakitud arhiive"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Ei saa kasutada mitme volmilisi pakitud arhiive"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Tihendatud arhiive ei saa hendada"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option saab kasutada ainult POSIX arhiividega"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Volmi suurus ei saa olla viksem kirje suurusest"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order ei ole hilduv vtmega --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Ega ikka ei tee kll thja arhiivi"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Vtmeid `-Aru' ei saa kasutada vtmega `-f -'"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Peab kasutama ht vtmetest `-Acdtrux' vi `--test-label'"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Kuna eelnevalt oli vigu, siis lpetan veakoodiga"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: Fail on %s baiti lhem"
+msgstr[1] "%s: Fail on %s baiti lhem"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Vtmesna %s on tundmatu vi pole veel realiseeritud"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Ajatempel on piiridest vljas"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Mustrit %s ei saa kasutada"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Vtmesna %s ei saa mber mrata"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Vigane laiendatud pis: puudub pikkus"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Laiendatud pise pikkus on piiridest vljas"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Laiendatud pise pikkus %*s on piiridest vljas"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Vigane laiendatud pis: pikkuse jrel puudub thik"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Vigane laiendatud pis: puudub vrdusmrk"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Vigane laiendatud pis: puudub reavahetus"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ignoreerin tundmatud laiendatud pise vtmesna `%s'"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Genereeritud vti/vrtus paar on liiga pikk (vti=%s, pikkus=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Laiendatud pis %s=%s on piiridest %s..%s vljas"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Vigane laiendatud pis: %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Vigane laiendatud pis: liigne %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Vigane laiendatud pis: vigane %s: ootamatu eraldaja %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Vigane laiendatud pis: vigane %s: veider arv vrtuseid"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: ei ole korrektne taimout"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: tundmatu kontrollpunkti tegevus"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "kirjutamine"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "lugemine"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Kirjutamise kontrollpunkt %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Lugemise kontrollpunkt %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile manipuleerib GNU paxutils testipaketi andmefailidega.\n"
+"VTMED on:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Faili loomise vtmed:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "SUURUS"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Loo mratud suurusega fail"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Kirjuta standardvljundi asemel faili NIMI"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Loe failide nimed failist FAIL"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T loeb nullidega lpetatud nimesid"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Tida fail antud mustriga. Muster on 'default' vi 'zeros'"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Bloki suurus aukudega faili korral"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Loo aukudega fail. Jrgnev ksurida kirjeldab faili."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "INDEKS"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Enne kirjutamist liigu antud indeksile"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Statistika faili kohta:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Vljasta iga faili kohta stat struktuuri sisu. Vaikimisi VORMING on: "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Snkroonse titmise vtmed:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "VTI"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Tida antud KSKLUS. Kasulik vtmetega --checkpoint ja --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Judes kontrollpunkti NUMBER, tida antud tegevus (vt. allpool)"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Mra jrgmise --touch vtme ajatempel"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Esita tidetud kontrollpunktid ja ksu lpetamise olek"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Snkroonse titmise tegevused. Neid tidetakse, kui saabub --checkpoint vtmega mratud kontrollpunkt."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Sea faili suuruseks --length vtmega nidatu (vi 0, kui suurust ei antud)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Lisa faili lppu --length parameetriga nidatud arv baite."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Uuenda faili kasutamise ja muutmise ajatempleid"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Kivita KSK"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Kustuta FAIL"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Vigane suurus: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Number on piiridest vljas: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negatiivne suurus: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) ebannestus"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "ksitud faili pikkus %lu, tegelik %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "loodud fail pole aukudega"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Viga `%s' juures numbri parsimisel"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Tundmatu kuupeva vorming"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENDID...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "`%s' ei saa avada"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "seek ebannestus"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "faili nimi sisaldab null smbolit"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "standard vljundis ei saa aukudega faili luua, kasutage vtit --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "vigane mask (`%s' lhedal)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Tundmatu vli `%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "ei nnestu seada `%s' aega"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "`%s' ei saa kustutada"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Ksk lpetas t edukalt\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Ksk lpetas veakoodiga %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Ksk katkestati signaaliga %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Ksk peatati signaaliga %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Ksk salvestas mlupildi\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Ksk katkestas\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat nuab failinimesid"
diff --git a/po/.reference/et.s1 b/po/.reference/et.s1
new file mode 100644
index 00000000..e6efff54
--- /dev/null
+++ b/po/.reference/et.s1
@@ -0,0 +1 @@
+e1ae625bf17d8f716d74e5e6317993cde3f44ba9 -
diff --git a/po/.reference/eu.po b/po/.reference/eu.po
new file mode 100644
index 00000000..085b9de5
--- /dev/null
+++ b/po/.reference/eu.po
@@ -0,0 +1,2267 @@
+# Translation of tar messages to Basque.
+# Copyright (C) 2006 Free Software Foundation, Inc.
+# Mikel Olasagasti <hey_neken@mundurat.net>, 2006.
+# Piarres Beobide <pi@beobide.net>, 2006.
+# This file is distributed under the same license as the tar package.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar-1.15.91-eu\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2006-06-16 10:13+0300\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"
+"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:137
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "%s argumentu baliogabea %s-rentzat"
+
+#: lib/argmatch.c:138
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "%s argumentu anbiguoa %s-rentzat"
+
+#: lib/argmatch.c:157
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Argumentu erabilgarriak:"
+
+#: lib/argp-help.c:148
+#, 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:221
+#, 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:227
+#, 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:236
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: ARGP_HELP_FMT parametro ezezaguna"
+
+#: lib/argp-help.c:248
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Zaborra ARGP_HELP_FMT-en: %s"
+
+#: lib/argp-help.c:1229
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Aukera luzeentzat beharrezko edo aukerako argumentuak modu berdinean beharrezko edo aukerakoak izango dira aukera luzeentzat ere."
+
+#: lib/argp-help.c:1616
+msgid "Usage:"
+msgstr "Erabilera:"
+
+#: lib/argp-help.c:1620
+msgid " or: "
+msgstr " edo: "
+
+#: lib/argp-help.c:1632
+msgid " [OPTION...]"
+msgstr " [AUKERA...]"
+
+#: lib/argp-help.c:1659
+#, 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:1687 src/tar.c:1066
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Arazoen berri %s-en eman.\n"
+
+#: lib/argp-help.c:1906 lib/error.c:121
+msgid "Unknown system error"
+msgstr "Sistema errore ezezaguna"
+
+#: lib/argp-parse.c:82 src/tar.c:709
+msgid "give this help list"
+msgstr "laguntza zerrenda hau eman"
+
+#: lib/argp-parse.c:83 src/tar.c:710
+msgid "give a short usage message"
+msgstr "erabilera mezu labur bat eman"
+
+#: lib/argp-parse.c:84 src/tar.c:443 src/tar.c:445 src/tar.c:512
+#: tests/genfile.c:126
+msgid "NAME"
+msgstr "IZENA"
+
+#: lib/argp-parse.c:84
+msgid "set the program name"
+msgstr "programa izen ezarri"
+
+#: lib/argp-parse.c:85
+msgid "SECS"
+msgstr "SEG"
+
+#: lib/argp-parse.c:86 src/tar.c:715
+msgid "hang for SECS seconds (default 3600)"
+msgstr "SEG segundu gelditu (lehenetsia 3600)"
+
+#: lib/argp-parse.c:143 src/tar.c:711
+msgid "print program version"
+msgstr "programa bertsioa bistarazi"
+
+#: lib/argp-parse.c:159
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMA ERROREA) Ez da bertsioa ezagutzen!?"
+
+#: lib/argp-parse.c:612
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Argumentu gehiegi\n"
+
+#: lib/argp-parse.c:755
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMA ERROREA) Aukera ezaguna izan beharko zen!?"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: `%s' aukera anbiguoa da\n"
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: `--%s' aukerak ez du argumenturik onartzen\n"
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, 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:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: `%s' aukerak argumentu bat behar du\n"
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: `--%s' aukera ezezaguna\n"
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: `%c%s' aukera ezezaguna\n"
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: -- %c legezkanpoko aukera\n"
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: -- %c ekintza baliogabea\n"
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: aukerak -- %c argumentu bat behar du.\n"
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: `-W %s' aukera anbiguoa da\n"
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: `-W %s' aukerak ez du argumenturik onartzen\n"
+
+#: lib/human.c:486
+msgid "block size"
+msgstr "bloke tamaina"
+
+#: lib/obstack.c:433 lib/obstack.c:435 lib/xalloc-die.c:37 src/extract.c:1360
+msgid "memory exhausted"
+msgstr "memoria askieza"
+
+#. 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
+#, 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:211
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu byte"
+msgid_plural "%s: Read error at byte %s, 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: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:132
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr ""
+
+#: lib/paxnames.c:133
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr ""
+
+#: lib/paxnames.c:146
+msgid "Substituting `.' for empty member name"
+msgstr "`.' partaide izen hutsagatik aldatzen"
+
+#: lib/paxnames.c:147
+msgid "Substituting `.' for empty hard link target"
+msgstr "`.' lotura gogor helburu hutsegatik aldatzen"
+
+#. 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.
+#: lib/quotearg.c:245
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:246
+msgid "'"
+msgstr "'"
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr "^[bB]"
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr "^[eE]"
+
+#: lib/rtapelib.c:299
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Zerbitzua ez da erabilgarria"
+
+#: lib/rtapelib.c:303
+msgid "stdin"
+msgstr "sarrera estandarra"
+
+#: lib/rtapelib.c:306
+msgid "stdout"
+msgstr "irteera estandarra"
+
+#: lib/rtapelib.c:512
+msgid "Cannot execute remote shell"
+msgstr "Ezin da urruneko shell-a abiarazi"
+
+#: rmt/rmt.c:143
+msgid "Input string too long"
+msgstr "Sarrera kate luzeegia"
+
+#: rmt/rmt.c:162
+msgid "Number syntax error"
+msgstr "Zenbaki sintaxi errorea"
+
+#: rmt/rmt.c:181
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Ezin da buffer lekua esleitu\n"
+
+#: rmt/rmt.c:183
+msgid "Cannot allocate buffer space"
+msgstr "Ezin da buffer lekua esleitu"
+
+#: rmt/rmt.c:305
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "`%s --help' saiatu argibide gehiagorako.\n"
+
+#: rmt/rmt.c:309
+#, 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 ""
+"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:316
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Erroreen berri <%s>-ra eman.\n"
+
+#: rmt/rmt.c:398
+msgid "Seek offset error"
+msgstr "Seek offset errorea"
+
+#: rmt/rmt.c:407 rmt/rmt.c:548 rmt/rmt.c:558
+msgid "Seek offset out of range"
+msgstr "Seek offset-a eremuz kanpo"
+
+#: rmt/rmt.c:429
+msgid "Seek direction out of range"
+msgstr "Seek norabidea eremuz kanpo"
+
+#: rmt/rmt.c:473
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Fitxategi amaiera azkarregia\n"
+
+#: rmt/rmt.c:475
+msgid "Premature end of file"
+msgstr "Fitxategi amaiera azkarregia"
+
+#: rmt/rmt.c:673
+msgid "Garbage command"
+msgstr "Zabor komandoa"
+
+#: src/buffer.c:317 src/buffer.c:326
+msgid "Total bytes written"
+msgstr "Idatziriko byte-ak guztira"
+
+#: src/buffer.c:324 src/buffer.c:338
+msgid "Total bytes read"
+msgstr "Irakurritako byte-ak guztira"
+
+#: src/buffer.c:328
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Ezabaturiko byte-ak guztira: %s\n"
+
+#: src/buffer.c:414
+msgid "(pipe)"
+msgstr "(tutua)"
+
+#: src/buffer.c:447
+msgid "Invalid value for record_size"
+msgstr "balio baliogabea record_size-rentzat"
+
+#: src/buffer.c:450
+msgid "No archive name given"
+msgstr "Ez da fitxategi izenik eman"
+
+#: src/buffer.c:493
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Ezin da sarrera/irteera estandar fitxategia egiaztatu"
+
+#: src/buffer.c:506
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Fitxategia konprimiturik dago. %s aukera erabili"
+
+#: src/buffer.c:551 src/tar.c:2067
+msgid "Cannot update compressed archives"
+msgstr "Ezin dira konprimituriko fitxategiak eguneratu"
+
+#. 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/buffer.c:601
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Idazketa %u egiaztapen puntua"
+
+#. 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/buffer.c:607
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Irakurketa %u egiaztapen puntua"
+
+#: src/buffer.c:659
+msgid "At beginning of tape, quitting now"
+msgstr "Zintaren hasieran, uzten"
+
+#: src/buffer.c:665
+msgid "Too many errors, quitting"
+msgstr "Errore gehiegi, uzten"
+
+#: src/buffer.c:693
+#, 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:713
+#, 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:786
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr ""
+
+#: src/buffer.c:818
+msgid "rmtlseek not stopped at a record boundary"
+msgstr ""
+
+#: src/buffer.c:874
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: bolumen zenbaki baliogabea du"
+
+#: src/buffer.c:909
+msgid "Volume number overflow"
+msgstr "Bolumen zenbaki gainezkatzea"
+
+#: src/buffer.c:924
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "#%d bolumena %s -rako prestatu eta enter sakatu: "
+
+#: src/buffer.c:930
+msgid "EOF where user reply was expected"
+msgstr "Fitxategi amaiera erabiltzaile erantzuna espero zenean"
+
+#: src/buffer.c:935 src/buffer.c:967
+msgid "WARNING: Archive is incomplete"
+msgstr "Oharra: Paketea ez dago osaturik"
+
+#: src/buffer.c:949
+#, 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 Eman izen berri bat hurrengo (eta hurrengo) bolumenentzat\n"
+" q tar utzi\n"
+" y edo intro Ekintza jarraitu\n"
+
+#: src/buffer.c:954
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Azpishell bat sortu\n"
+
+#: src/buffer.c:955
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Zerrenda hau inprimatu\n"
+
+#: src/buffer.c:962
+msgid "No new volume; exiting.\n"
+msgstr "Ez dago bolumen berririk; uzten.\n"
+
+#: src/buffer.c:995
+msgid "File name not specified. Try again.\n"
+msgstr "Ez da fitxategi izenik ezarri. Berriz saiatu.\n"
+
+#: src/buffer.c:1008
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "SArrera baliogabea. ? idatzi laguntzarako.\n"
+
+#: src/buffer.c:1058
+#, c-format
+msgid "%s command failed"
+msgstr "%s komandoak huts egin du"
+
+#: src/buffer.c:1120 src/delete.c:210 src/list.c:169 src/update.c:165
+msgid "This does not look like a tar archive"
+msgstr "Honek ez dirudi tar pakete bat"
+
+#: src/buffer.c:1212
+#, 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:1216
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s ez da bolumen honen jarraipena"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s okerreko tamaina da (%s != %s + %s)"
+
+#: src/buffer.c:1240
+msgid "This volume is out of sequence"
+msgstr "Bolumen hau sekuentziatik kanpo dago"
+
+#: src/buffer.c:1286
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr ""
+
+#: src/buffer.c:1289
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "%s bolumena ez da %s-ren pareko"
+
+#: src/buffer.c:1385
+#, 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/compare.c:96
+#, 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:122
+msgid "Contents differ"
+msgstr "Eduki ezberdintasunak"
+
+#: src/compare.c:149 src/extract.c:773 src/incremen.c:1109 src/list.c:374
+#: src/list.c:1294
+msgid "Unexpected EOF in archive"
+msgstr "Esperogabeko Fitxategi amaiaera paketean"
+
+#: src/compare.c:197 src/compare.c:213 src/compare.c:331 src/compare.c:395
+msgid "File type differs"
+msgstr "Fixtategi mota ezberdinak"
+
+#: src/compare.c:200 src/compare.c:220 src/compare.c:345
+msgid "Mode differs"
+msgstr "Modu ezberdinak"
+
+#: src/compare.c:223
+msgid "Uid differs"
+msgstr "Uid ezberdinak"
+
+#: src/compare.c:225
+msgid "Gid differs"
+msgstr "Gid ezberdinak"
+
+#: src/compare.c:229
+msgid "Mod time differs"
+msgstr "Eraldaketa data ezberdinak"
+
+#: src/compare.c:233 src/compare.c:403
+msgid "Size differs"
+msgstr "Tamaina ezberdinak"
+
+#: src/compare.c:287
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ez dago %s-ra loturik"
+
+#: src/compare.c:310
+msgid "Symlink differs"
+msgstr "Lotura sinboliko ezberdinak"
+
+#: src/compare.c:339
+msgid "Device number differs"
+msgstr "Gailu zenbaki ezberdinak"
+
+#: src/compare.c:445
+#, c-format
+msgid "Verify "
+msgstr "Egiaztatu "
+
+#: src/compare.c:452
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: `%c' fitxategi mota ezezaguna, fitxategi arrunt batez ezberdina"
+
+#: src/compare.c:508
+msgid "Archive contains file names with leading prefixes removed."
+msgstr ""
+
+#: src/compare.c:510
+msgid "Verification may fail to locate original files."
+msgstr "Egiaztapenak huts egin dezake jatorrizko fitxategiak kokatzerakoan."
+
+#: src/compare.c:580
+#, 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/create.c:162
+#, 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:168
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "%s balioa %s eremutik %s..%s kanpo dago"
+
+#: src/create.c:228
+msgid "Generating negative octal headers"
+msgstr "Zortzitar buru negatiboak sortzen"
+
+#: src/create.c:513 src/create.c:576
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: fitxategi izena luzeegia da (gehi. %d); ez da irauliko"
+
+#: src/create.c:523
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: fitxategi izena luzeegia da (ezin da moztu); ez da irauliko"
+
+#: src/create.c:550
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: lotura izena luzeegia da; ez da irauliko"
+
+#: src/create.c:965
+#, 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:1105
+#, 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:1115
+#, c-format
+msgid "%s: contains a cache directory tag; not dumped"
+msgstr "%s: katxe direktorioa marka bat du; ez da irauliko"
+
+#: src/create.c:1273
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Fitxategi mota ezezaguna; fitxategia alde batetara utziko da"
+
+#: src/create.c:1374
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "%s-ra lotura falta da.\n"
+
+#: src/create.c:1444
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: fitxategia ez da aldatu, ez da irauliko"
+
+#: src/create.c:1452
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: fitxategia paketea da, ez da irauliko"
+
+#: src/create.c:1482
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fitxategia irakurri baino lehen ezabaturik"
+
+#: src/create.c:1552
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: fitxategia aldatu egin da irakurtzen ari zenean"
+
+#: src/create.c:1628
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket-a alde batetara utzi da"
+
+#: src/create.c:1633
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: atea alde batetara utzia"
+
+#: src/delete.c:216 src/list.c:183 src/update.c:170
+msgid "Skipping to next header"
+msgstr "Hurrengoa burura salto egiten"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "paketetik burugabea ezabatzen"
+
+#: src/extract.c:194
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: Sinesgarri izateko zaharregia den denbora marka %s"
+
+#: src/extract.c:211
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: %s denbora marka %s etorkizunean da"
+
+#: src/extract.c:383
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Esperogabeko inkonsistentziak direktorioa sortzerakoan"
+
+#: src/extract.c:576
+#, 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:711
+msgid "Extracting contiguous files as regular files"
+msgstr "Alboko fitxategiak fitxategi erregularrak bezala ateratzen"
+
+#: src/extract.c:979
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Lotura sinbolikoak lotura gogor bezala ateratzen saiatzen"
+
+#: src/extract.c:1037
+#, c-format
+msgid "Reading %s\n"
+msgstr "%s irakurtzen\n"
+
+#: src/extract.c:1129
+#, 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:1136 src/list.c:1057
+msgid "Unexpected long name header"
+msgstr "Buru izen luzera esperogabea"
+
+#: src/extract.c:1142
+#, 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:1167
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Unekoa %s berriagoa edo data berdinekoa da"
+
+#: src/extract.c:1213
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Ez da gai fitxategi honen babeskopia egiteko"
+
+#: src/extract.c:1341
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Ezin da %s %s-ra berrizendatu"
+
+#: src/extract.c:1353
+msgid "Error is not recoverable: exiting now"
+msgstr "Errorea berreskura ezina da: irteten"
+
+#: src/incremen.c:261 src/incremen.c:301
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Direktorioa %s-tik berrizendatua izan da"
+
+#: src/incremen.c:271
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktorioa berrizendatua izan da"
+
+#: src/incremen.c:312
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Direktorioa berria da"
+
+#: src/incremen.c:692 src/incremen.c:707
+msgid "Invalid time stamp"
+msgstr "denbora marka baliogabea"
+
+#: src/incremen.c:697 src/incremen.c:712 src/incremen.c:857 src/incremen.c:867
+msgid "Time stamp out of range"
+msgstr "Denbora marka eremuz kanpo dago"
+
+#: src/incremen.c:742
+msgid "Invalid modification time (seconds)"
+msgstr "Eraldaketa denbora (segundu) baliogabea"
+
+#: src/incremen.c:746 src/incremen.c:890
+msgid "Modification time (seconds) out of range"
+msgstr "Eraldaketa denbora (segundu) eremuz kanpo dago"
+
+#: src/incremen.c:754
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Eraldaketa denbora (nanosegundu) baliogabea"
+
+#: src/incremen.c:758 src/incremen.c:898
+msgid "Modification time (nanoseconds) out of range"
+msgstr "Eraldaketa denbora (nanosegundu) eremuz kanpo dago"
+
+#: src/incremen.c:769
+msgid "Invalid device number"
+msgstr "gailu zenbaki baliogabea"
+
+#: src/incremen.c:773 src/incremen.c:906
+msgid "Device number out of range"
+msgstr "Gailu zenbakia eremuz kanpo dago"
+
+#: src/incremen.c:781
+msgid "Invalid inode number"
+msgstr "Inodo zenbaki baliogabea"
+
+#: src/incremen.c:785 src/incremen.c:914
+msgid "Inode number out of range"
+msgstr "Inodo zenbakia eremuz kanpo dago"
+
+#: src/incremen.c:830
+msgid "Field too long while reading snapshot file"
+msgstr "Eremu luzeegia snapshot fitxategia irakurtzerakoan"
+
+#: src/incremen.c:836
+msgid "Unexpected field value in snapshot file"
+msgstr "Eremu balio esperogabea snapshot fitxategian"
+
+#: src/incremen.c:852 src/incremen.c:862
+msgid "Error reading time stamp"
+msgstr "Errorea denbora marka irakurtzerakoan"
+
+#: src/incremen.c:926
+msgid "Missing record terminator"
+msgstr "Gordetze amaiera falta da"
+
+#: src/incremen.c:934
+msgid "Unexpected EOF"
+msgstr "Fitxategi Amaiera Esperogabea"
+
+#: src/incremen.c:978 src/incremen.c:981
+msgid "Bad incremental file format"
+msgstr "Fitxategi inkremental formatu okerra"
+
+#: src/incremen.c:1000
+#, c-format
+msgid "Unsupported incremental format version: %d"
+msgstr "Onartugabeko inkremental formatu bertsioa: %d"
+
+#: src/incremen.c:1149
+#, 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:1159
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Gaizki eratutako iraulketa direktorioa: 'X' bikoizturik"
+
+#: src/incremen.c:1172
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Gaizki eratutako iraulketa direktorioa: izen hutsa 'R'-en"
+
+#: src/incremen.c:1185
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Gaizki eratutako iraulketa direktorioa: 'T' ez doa 'R' atzean"
+
+#: src/incremen.c:1191
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Gaizki eratutako iraulketa direktorioa: izen hutsa 'T'-en"
+
+#: src/incremen.c:1211
+#, 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:1217
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Gaizki eratutako iraulketa direktorioa: 'X' ez da inoiz erabili"
+
+#: src/incremen.c:1260
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Ezin da aldiroko direktorioa sortu %s txantiloia erabiliaz"
+
+#: src/incremen.c:1312
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Ez da direktorioa garbituko: ezin da egoera eskuratu"
+
+#: src/incremen.c:1320
+#, 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:1328
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s ezabatzen\n"
+
+#: src/incremen.c:1333
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ezin da ezabatu"
+
+#: src/list.c:115
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Alde batetara uzten"
+
+#: src/list.c:133
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr ""
+
+#: src/list.c:146
+#, c-format
+msgid "A lone zero block at %s"
+msgstr ""
+
+#: src/list.c:157
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "%s blokea: ** Fitxategi Amaiera **\n"
+
+#: src/list.c:180 src/list.c:1026 src/list.c:1262
+#, c-format
+msgid "block %s: "
+msgstr "%s blokea: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:634
+#, 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:689
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Paketearen zortzitar %.*s balioa %s eremutik kanpo dago, biak bateragarriak direla pentsatuko da"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:700
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Paketearen zortzitar %.*s balioa %s eremutik kanpo dago"
+
+#: src/list.c:721
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Paketeak zaharkituriko base-64 buruak ditu"
+
+#: src/list.c:735
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr ""
+
+#: src/list.c:766
+#, 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:795
+#, 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:817
+#, 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:1193
+#, c-format
+msgid " link to %s\n"
+msgstr " %s-ra lotu\n"
+
+#: src/list.c:1201
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " %s fitxategi mota ezezaguna\n"
+
+#: src/list.c:1219
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Lotura Luzea--\n"
+
+#: src/list.c:1223
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Izen Luzea--\n"
+
+#: src/list.c:1227
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Bolumen Burua--\n"
+
+#: src/list.c:1235
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--%s byte-an jarraitzen du--\n"
+
+#: src/list.c:1239
+#, c-format
+msgid "--Mangled file names--\n"
+msgstr "--Kudeatutako fitxategi izenak--\n"
+
+#: src/list.c:1267
+msgid "Creating directory:"
+msgstr "Direktorioa sortzen:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Fitxategi amaiera esperogabea kudeatutako izenetan"
+
+#: src/mangle.c:90 src/misc.c:464 src/misc.c:482
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Ezin da %s-ra berrizendatu"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "%s %s-ra berrizendaturik"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Ezin da %s-ra lotura sinbolikoa egin"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s %s-ra sibolikoki lotua"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr ""
+
+#: src/misc.c:455
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s %s-ra berrizendatzen\n"
+
+#: src/misc.c:487
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "%s %s-ra atzera berrizendatzen\n"
+
+#: src/misc.c:587
+msgid "Cannot save working directory"
+msgstr "Ezin da lan direktorioa gorde"
+
+#: src/misc.c:593
+msgid "Cannot change working directory"
+msgstr "Ezin da lan direktorioa aldatu"
+
+#: src/misc.c:683
+msgid "child process"
+msgstr "ume prozesua"
+
+#: src/misc.c:692
+msgid "interprocess channel"
+msgstr "prozesu arteko kanala"
+
+#. TRANSLATORS: The following three msgids form a single sentence.
+#.
+#: src/names.c:601
+msgid "Pattern matching characters used in file names. Please,"
+msgstr ""
+
+#: src/names.c:603
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+msgstr ""
+
+#: src/names.c:605
+msgid "suppress this warning."
+msgstr "ohar hau kendu."
+
+#: src/names.c:620 src/names.c:638
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Ez da paketean aurkitu"
+
+#: src/names.c:623
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr ""
+
+#: src/tar.c:79
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "`-%s' eta `-%s' aukerek sarrera estandarra behar dute"
+
+#: src/tar.c:156
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Pakete formatu baliogabea"
+
+#: src/tar.c:180
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU ezaugarriak behar dira pakete formatu bateraezinean"
+
+#: src/tar.c:241
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "`%s' markatze estilo ezezaguna. Saiatu `%s --quoting-style=help' zerrenda eskuratzeko."
+
+#: src/tar.c:321
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+" 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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"GNU `tar'-ek fitxategi anitz zinta edo disko pakete batetan gordetzen ditu, eta paketetetik banakako fitxategiak berreskuratu ditzake.\n"
+"\n"
+"Adibideak:\n"
+" tar -cf archive.tar foo bar # paketea.tar paketea sortu foo eta bar fitxategiekin.\n"
+" tar -tvf archive.tar # paketea.tar-eko fitxategi guztiak modu luzean zerrendatu.\n"
+" tar -xf archive.tar # paketea.tar-eko fitxategi guztiak atera.\n"
+" Babeskopia aurrizkia `~', da --suffix edo SIMPLE_BACKUP_SUFFIX bidez ezarri ezean.\n"
+"Bertsio kontrola --backup edo VERSION_CONTROL bidez ezarri daiteke, balioak hauek dira:\n"
+"\n"
+" none, off inoiz ez egin babeskopiarik\n"
+" t, numbered zenbakitutako babeskopiak egin\n"
+" nil, existing zenbakitutako zenbakitutakoak baleude bestela sinplea erabili\n"
+" never, simple beti babeskopia sinpleak egin\n"
+
+#: src/tar.c:353
+msgid "Main operation mode:"
+msgstr "Ekintza nagusi modua:"
+
+#: src/tar.c:356
+msgid "list the contents of an archive"
+msgstr "pakete baten edukiak zerrendatu"
+
+#: src/tar.c:358
+msgid "extract files from an archive"
+msgstr "pakete batetako fitxategiak atera"
+
+#: src/tar.c:361
+msgid "create a new archive"
+msgstr "pakete berri bat sortu"
+
+#: src/tar.c:363
+msgid "find differences between archive and file system"
+msgstr "paketea eta fitxategi sistema arteko ezberdintasunak bilatu"
+
+#: src/tar.c:366
+msgid "append files to the end of an archive"
+msgstr "fitxategiak paketearen amaieran gehitu"
+
+#: src/tar.c:368
+msgid "only append files newer than copy in archive"
+msgstr "paketean dauden kopiak baino berriagoak diren fitxategiak bakarrik gehitu"
+
+#: src/tar.c:370
+msgid "append tar files to an archive"
+msgstr "gehitu tar fitxategiak pakete batetara"
+
+#: src/tar.c:373
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "paketetik ezabatu (ez mag zintetan!)"
+
+#: src/tar.c:375
+msgid "test the archive volume label and exit"
+msgstr "pakete bolumen etiketa egiaztatu eta irten"
+
+#: src/tar.c:380
+msgid "Operation modifiers:"
+msgstr "Ekintza aldagaiak:"
+
+#: src/tar.c:383
+msgid "handle sparse files efficiently"
+msgstr "sakabanatutako fitxategiak egoki kudeatu"
+
+#: src/tar.c:385
+msgid "handle old GNU-format incremental backup"
+msgstr "GNU basbeskopia inkremenetal formatu zaharra kudeatu"
+
+#: src/tar.c:386 src/tar.c:515 src/tar.c:579 src/tar.c:583 src/tar.c:593
+#: src/tar.c:671 tests/genfile.c:128 tests/genfile.c:173 tests/genfile.c:177
+#: tests/genfile.c:180
+msgid "FILE"
+msgstr "FITXATEGIA"
+
+#: src/tar.c:387
+msgid "handle new GNU-format incremental backup"
+msgstr "GNU basbeskopia inkremenetal formatu berria kudeatu"
+
+#: src/tar.c:389
+msgid "do not exit with nonzero on unreadable files"
+msgstr ""
+
+#: src/tar.c:390 src/tar.c:510 src/tar.c:525 src/tar.c:624 tests/genfile.c:159
+msgid "NUMBER"
+msgstr "ZENBAKIA"
+
+#: src/tar.c:391
+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 ""
+
+#: src/tar.c:397
+msgid "archive is seekable"
+msgstr "paketeak `seek' onartzen du"
+
+#: src/tar.c:402
+msgid "Overwrite control:\n"
+msgstr "Gainidazketa kontrola:\n"
+
+#: src/tar.c:405
+msgid "attempt to verify the archive after writing it"
+msgstr "fitxategia egiaztatzen saiatu idatzi aurretik"
+
+#: src/tar.c:407
+msgid "remove files after adding them to the archive"
+msgstr "ezabatu fitxategiak paketera gehitu aurretik"
+
+#: src/tar.c:409
+msgid "don't replace existing files when extracting"
+msgstr "ez ordezkatu dauden fitxategiak ateratzerakoan"
+
+#: src/tar.c:411
+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:413
+msgid "overwrite existing files when extracting"
+msgstr "gainidatzi dauden fitxategiak ateratzerakoan"
+
+#: src/tar.c:415
+msgid "remove each file prior to extracting over it"
+msgstr ""
+
+#: src/tar.c:417
+msgid "empty hierarchies prior to extracting directory"
+msgstr ""
+
+#: src/tar.c:419
+msgid "preserve metadata of existing directories"
+msgstr "dauden direktorioen metadata mantendu"
+
+#: src/tar.c:421
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "dauden direktorioen metadata gainidatzi ateratzerakoan (lehenetsia)"
+
+#: src/tar.c:427
+msgid "Select output stream:"
+msgstr "Irteera korrontea hautatu:"
+
+#: src/tar.c:430
+msgid "extract files to standard output"
+msgstr "fitxategiak irteera estandarrera atera"
+
+#: src/tar.c:431 src/tar.c:488 src/tar.c:490 tests/genfile.c:156
+#: tests/genfile.c:183
+msgid "COMMAND"
+msgstr "KOMANDOA"
+
+#: src/tar.c:432
+msgid "pipe extracted files to another program"
+msgstr "bideratu ateratako fitxategiak beste programa batetara"
+
+#: src/tar.c:434
+msgid "ignore exit codes of children"
+msgstr "alde batetara utzi semeen irteera kodeak"
+
+#: src/tar.c:436
+msgid "treat non-zero exit codes of children as error"
+msgstr "zero ez diren semeen irteera kodeekin errore bat bezala jokatu"
+
+#: src/tar.c:441
+msgid "Handling of file attributes:"
+msgstr "Fitxategi atributu kudeaketa:"
+
+#: src/tar.c:444
+msgid "force NAME as owner for added files"
+msgstr "indartu IZENA jabe bezala gehituriko fitxategientzat"
+
+#: src/tar.c:446
+msgid "force NAME as group for added files"
+msgstr "indartu IZENA talde bezala gehituriko fitxategientzat"
+
+#: src/tar.c:447
+msgid "CHANGES"
+msgstr "ALDAKETAK"
+
+#: src/tar.c:448
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "indartu (sinbolikoa) modu ALDAKETAK gehituriko lerroentzat"
+
+#: src/tar.c:450
+msgid "METHOD"
+msgstr "METODOA"
+
+#: src/tar.c:451
+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:455
+msgid "don't extract file modified time"
+msgstr "ez atera fitxategi eraldaketa data"
+
+#: src/tar.c:457
+msgid "try extracting files with the same ownership"
+msgstr "jabe berdinaren fitxategiak ateratzen saiatu"
+
+#: src/tar.c:459
+msgid "extract files as yourself"
+msgstr "atera fitxategiak zure kabuz"
+
+#: src/tar.c:461
+msgid "always use numbers for user/group names"
+msgstr "beti erabili zenbakiak erabiltzaile/talde izenen ordez"
+
+#: src/tar.c:463
+msgid "extract information about file permissions (default for superuser)"
+msgstr "fitxategi baimenei buruzko argibideak atera (lehenetsia root erabiltzailearentzat)"
+
+#: src/tar.c:467
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "erabiltzailearen umask-a erabili paketetik baimenak ateratzerakoan (lehenetsia erabiltzaile arruntentzat)"
+
+#: src/tar.c:469
+msgid "sort names to extract to match archive"
+msgstr ""
+
+#: src/tar.c:472
+msgid "same as both -p and -s"
+msgstr "-p eta -s bikotearen berdina"
+
+#: src/tar.c:474
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr ""
+
+#: src/tar.c:477
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "--delay-directory-restore aukeraren eragina ezeztatu"
+
+#: src/tar.c:482
+msgid "Device selection and switching:\n"
+msgstr "Gailu hautapen eta aldaketa:\n"
+
+#: src/tar.c:484
+msgid "ARCHIVE"
+msgstr "PAKETEA"
+
+#: src/tar.c:485
+msgid "use archive file or device ARCHIVE"
+msgstr "pakete fitxategia edo gailu PAKETEA erabili"
+
+#: src/tar.c:487
+msgid "archive file is local even if it has a colon"
+msgstr "pakete fitxategi lokala da nahiz bi puntu izan"
+
+#: src/tar.c:489
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "Emandako rmt KOMANDOA erabili rmt ordez"
+
+#: src/tar.c:491
+msgid "use remote COMMAND instead of rsh"
+msgstr "Urruneko KOMANDOA erabili rsh ordez"
+
+#: src/tar.c:495
+msgid "specify drive and density"
+msgstr "Gailu eta dentsitatea ezarri"
+
+#: src/tar.c:509
+msgid "create/list/extract multi-volume archive"
+msgstr "sortu/zerrendatu/atera bolumen-anitzeko paketea"
+
+#: src/tar.c:511
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "zinta aldatu ZENBAKIA x 1024 byte idatzi ondoren"
+
+#: src/tar.c:513
+msgid "run script at end of each tape (implies -M)"
+msgstr "scipt-a abiarazi zinta bakoitzaren amaieran (-M behar du)"
+
+#: src/tar.c:516
+msgid "use/update the volume number in FILE"
+msgstr "erabili/eguneratu FITXATEGI bolumen zenbakia"
+
+#: src/tar.c:521
+msgid "Device blocking:"
+msgstr "Gailu blokeak:"
+
+#: src/tar.c:523
+msgid "BLOCKS"
+msgstr "BLOKE"
+
+#: src/tar.c:524
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOKE x 512 byte grabazio bakoitzeko"
+
+#: src/tar.c:526
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "grabazio bakoitzeko byte ZENBAKIA, 512-ren multiploa"
+
+#: src/tar.c:528
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "paketean zeroz betetako blokeak alde batetara utzi"
+
+#: src/tar.c:530
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "irakurri ahala berriz bloke egin (4.2BSD tutuentzat)"
+
+#: src/tar.c:535
+msgid "Archive format selection:"
+msgstr "Pakete formatu hautapena:"
+
+#: src/tar.c:537 tests/genfile.c:146
+msgid "FORMAT"
+msgstr "FORMATUA"
+
+#: src/tar.c:538
+msgid "create archive of the given format"
+msgstr "emandako formatuko pakete bat sortu"
+
+#: src/tar.c:540
+msgid "FORMAT is one of the following:"
+msgstr "FORMATUA hauetako bat da:"
+
+#: src/tar.c:541
+msgid "old V7 tar format"
+msgstr "V7 tar formatu zaharra"
+
+#: src/tar.c:544
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU formatua tar <= 1.12"
+
+#: src/tar.c:546
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x formatua"
+
+#: src/tar.c:548
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) formatua"
+
+#: src/tar.c:550
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) formatua"
+
+#: src/tar.c:551
+msgid "same as pax"
+msgstr "pax-en berdina"
+
+#: src/tar.c:554
+msgid "same as --format=v7"
+msgstr "--format=v7-ren berdina"
+
+#: src/tar.c:557
+msgid "same as --format=posix"
+msgstr "--format=posix-ren berdina"
+
+#: src/tar.c:558
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "gakoa[[:]=balioavalue][,gakoa[[:]=balioa]]..."
+
+#: src/tar.c:559
+msgid "control pax keywords"
+msgstr ""
+
+#: src/tar.c:560
+msgid "TEXT"
+msgstr "TESTUA"
+
+#: src/tar.c:561
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr ""
+
+#: src/tar.c:563
+msgid "filter the archive through bzip2"
+msgstr "fitxategia bzip2 bidez iragazi"
+
+#: src/tar.c:565
+msgid "filter the archive through gzip"
+msgstr "fitxategia gzip bidez iragazi"
+
+#: src/tar.c:569
+msgid "filter the archive through compress"
+msgstr "fitxategia konpresorearen bidez iragazi"
+
+#: src/tar.c:571
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:572
+msgid "filter through PROG (must accept -d)"
+msgstr "PROG bidez iragazi (-d onartu behar du)"
+
+#: src/tar.c:577
+msgid "Local file selection:"
+msgstr "Fixtategi lokal hautapena:"
+
+#: src/tar.c:580
+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:581
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:582
+msgid "change to directory DIR"
+msgstr "DIR direktoriora aldatu"
+
+#: src/tar.c:584
+msgid "get names to extract or create from FILE"
+msgstr "ateratzeko edo sortzeko izenak FITXATEGIA-tik eskuratu"
+
+#: src/tar.c:586
+msgid "-T reads null-terminated names, disable -C"
+msgstr ""
+
+#: src/tar.c:588
+msgid "unquote filenames read with -T (default)"
+msgstr ""
+
+#: src/tar.c:590
+msgid "do not unquote filenames read with -T"
+msgstr ""
+
+#: src/tar.c:591 tests/genfile.c:132
+msgid "PATTERN"
+msgstr "PATROIA"
+
+#: src/tar.c:592
+msgid "exclude files, given as a PATTERN"
+msgstr "fixtategiak utzi, PATROIA bezala emandakoak"
+
+#: src/tar.c:594
+msgid "exclude patterns listed in FILE"
+msgstr "FITXATEGIAN zerrendaturiko patroiak alde batetara utzi"
+
+#: src/tar.c:596
+msgid "exclude directories containing a cache tag"
+msgstr "katxe marka duten direktorioak alde batetara utzi"
+
+#: src/tar.c:598
+msgid "avoid descending automatically in directories"
+msgstr "sahiestu automatikoki direktorioetan zehar jeistea"
+
+#: src/tar.c:600
+msgid "stay in local file system when creating archive"
+msgstr "fitxategi sistema lokalean egon paketea sortzerakoan"
+
+#: src/tar.c:602
+msgid "recurse into directories (default)"
+msgstr "direktorioetan barrena (lehenetsia)"
+
+#: src/tar.c:604
+msgid "don't strip leading `/'s from file names"
+msgstr "Ez kendu hasierako `/' fitxategi izenetatik"
+
+#: src/tar.c:606
+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:607
+msgid "MEMBER-NAME"
+msgstr "PARTAIDE IZEN"
+
+#: src/tar.c:608
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr ""
+
+#: src/tar.c:609
+msgid "DATE-OR-FILE"
+msgstr "DATA-EDO-FITXATEGIA"
+
+#: src/tar.c:610
+msgid "only store files newer than DATE-OR-FILE"
+msgstr ""
+
+#: src/tar.c:611 src/tar.c:613
+msgid "DATE"
+msgstr "DATA"
+
+#: src/tar.c:612
+msgid "compare date and time when data changed only"
+msgstr "data eta ordua parekatu data bakarrik aldatzen denean"
+
+#: src/tar.c:614
+msgid "same as -N"
+msgstr "-N -ren berdina"
+
+#: src/tar.c:615
+msgid "CONTROL"
+msgstr "KONTROL"
+
+#: src/tar.c:616
+msgid "backup before removal, choose version CONTROL"
+msgstr "babeskopia egin ezabatu aurretik, KONTROL bertsioa hautatu"
+
+#: src/tar.c:617 src/tar.c:688 src/tar.c:690 tests/genfile.c:162
+msgid "STRING"
+msgstr "KATEA"
+
+#: src/tar.c:618
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr ""
+
+#: src/tar.c:623
+msgid "File name transformations:"
+msgstr "Fitxategi izen eraldaketak:"
+
+#: src/tar.c:625
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr ""
+
+#: src/tar.c:627
+msgid "EXPRESSION"
+msgstr "ESPRESIOA"
+
+#: src/tar.c:628
+msgid "Use sed replace EXPRESSION to transform file names"
+msgstr "Sed-en ordezko EXPRESIOA erabili fitxategi izenak eraldatzeko"
+
+#: src/tar.c:633
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr ""
+
+#: src/tar.c:636
+msgid "ignore case"
+msgstr "kasua alde batetara utzi"
+
+#: src/tar.c:638
+msgid "patterns match file name start"
+msgstr ""
+
+#: src/tar.c:640
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr ""
+
+#: src/tar.c:642
+msgid "case sensitive matching (default)"
+msgstr ""
+
+#: src/tar.c:644
+msgid "use wildcards (default for exclusion)"
+msgstr ""
+
+#: src/tar.c:646
+msgid "verbatim string matching"
+msgstr "verbatim kate parekatzea"
+
+#: src/tar.c:648
+msgid "wildcards do not match `/'"
+msgstr ""
+
+#: src/tar.c:650
+msgid "wildcards match `/' (default for exclusion)"
+msgstr ""
+
+#: src/tar.c:655
+msgid "Informative output:"
+msgstr "irteera informatiboa:"
+
+#: src/tar.c:658
+msgid "verbosely list files processed"
+msgstr ""
+
+#: src/tar.c:659
+msgid "[.]NUMBER"
+msgstr "[.]ZENBAKIA"
+
+#: src/tar.c:660
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "Aurrerapen mezuak bistarazi grabaketa ZENBAKI bakiotzagatik (lehenetsia 10 da)"
+
+#: src/tar.c:663
+msgid "print a message if not all links are dumped"
+msgstr "mezu bat inprimatu lotura guztiak ez badira iraultzen"
+
+#: src/tar.c:664
+msgid "SIGNAL"
+msgstr "SEINALEA"
+
+#: src/tar.c:665
+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 ""
+
+#: src/tar.c:670
+msgid "print file modification dates in UTC"
+msgstr "eraldaketa datak UTC orduan bistarazi"
+
+#: src/tar.c:672
+msgid "send verbose output to FILE"
+msgstr "irteera luzea FITXATEGIRA bidali"
+
+#: src/tar.c:674
+msgid "show block number within archive with each message"
+msgstr "Bloke zenbakia bistarazu pakete bakoitzeko mezu bakoitzagatik"
+
+#: src/tar.c:676
+msgid "ask for confirmation for every action"
+msgstr "berrespena eskatu ekintza bakoitzean"
+
+#: src/tar.c:679
+msgid "show tar defaults"
+msgstr "tar lehenespenak bistarazi"
+
+#: src/tar.c:681
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr ""
+
+#: src/tar.c:683
+msgid "show file or archive names after transformation"
+msgstr "fixtategi edo pakete izenak bistarazi eraldaketaren aurretik"
+
+#: src/tar.c:686
+msgid "STYLE"
+msgstr "ESTILOA"
+
+#: src/tar.c:687
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr ""
+
+#: src/tar.c:689
+msgid "additionally quote characters from STRING"
+msgstr "Gako karaktere gehigarriak KATE-tik"
+
+#: src/tar.c:691
+msgid "disable quoting for characters from STRING"
+msgstr "gakoak kendu karaktereentzat KATE-tik"
+
+#: src/tar.c:696
+msgid "Compatibility options:"
+msgstr "Bateragarritasun aukerak:"
+
+#: src/tar.c:699
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr ""
+
+#: src/tar.c:704
+msgid "Other options:"
+msgstr "Beste aukerak:"
+
+#: src/tar.c:707
+msgid "disable use of some potentially harmful options"
+msgstr "ezgaitu arriskutsu izan daitezken zenbait aukera"
+
+#: src/tar.c:810
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Ezin duzu `-Acdtrux' aukera bat baino gehiago ezarri"
+
+#: src/tar.c:820
+msgid "Conflicting compression options"
+msgstr "Elkarjotzen duten konpresio aukerak"
+
+#: src/tar.c:876
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Seinale izen ezezaguna: %s"
+
+#: src/tar.c:943
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: fitxategi zerrenda irakurria dagoeneko"
+
+#: src/tar.c:998
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/tar.c:1060
+msgid "Valid arguments for --quoting-style options are:"
+msgstr "--quoting-style-entzat balio erabilgarriak:"
+
+#: src/tar.c:1063
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+
+#: src/tar.c:1096
+msgid "Invalid blocking factor"
+msgstr "Blokeo faktore baliogabea"
+
+#: src/tar.c:1168
+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?"
+
+#: src/tar.c:1201
+msgid "Invalid tape length"
+msgstr "Zinta luzera baliogabea"
+
+#: src/tar.c:1228
+msgid "More than one threshold date"
+msgstr "Atari data bat baino gehiago"
+
+#: src/tar.c:1238
+msgid "Date sample file not found"
+msgstr "Data adibide fitxategia ez da aurkitu"
+
+#: src/tar.c:1246
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "%s %s data formatu ezezagunagatik aldatzen"
+
+#: src/tar.c:1377
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' ez da onartzen plataforma honetan"
+
+#: src/tar.c:1394
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint balioa ez da zenbaki oso bat"
+
+#: src/tar.c:1464
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Talde baliogabea"
+
+#: src/tar.c:1471
+msgid "Invalid mode given on option"
+msgstr "Modu baliogabea eman da aukeran"
+
+#: src/tar.c:1524
+msgid "Invalid number"
+msgstr "Zenbaki baliogabea"
+
+#: src/tar.c:1546
+msgid "Invalid owner"
+msgstr "Jabe baliogabea"
+
+#: src/tar.c:1580
+msgid "Invalid record size"
+msgstr "Grabazio tamaina baliogabea"
+
+#: src/tar.c:1583
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Grabaszio tamaina %d-ren multiplo bat izan behar da."
+
+#: src/tar.c:1620
+msgid "Invalid number of elements"
+msgstr "Elementu kopuru baliogabea"
+
+#: src/tar.c:1640
+msgid "Only one --to-command option allowed"
+msgstr "--to-command aukera bat bakarrik onartzen da"
+
+#: src/tar.c:1716
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Gaizki eratutako dentsitate argumentua: %s"
+
+#: src/tar.c:1742
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Dentsitate Ezezaguna: `%c'"
+
+#: src/tar.c:1759
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr " `-[0-7][lmh]' aukerak ez dira onartzen tar *honetan*"
+
+#: src/tar.c:1794
+msgid "[FILE]..."
+msgstr "[FITXATEGIA]..."
+
+#: src/tar.c:1895
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "`%c' zaharkituriko aukerak argumentu bat behar du"
+
+#: src/tar.c:1978
+msgid "creating multi-volume archives in posix format requires using --tape-length (-L) option"
+msgstr ""
+
+#: src/tar.c:1984
+msgid "--occurrence is meaningless without a file list"
+msgstr ""
+
+#: src/tar.c:1990
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr ""
+
+#: src/tar.c:2020
+msgid "Multiple archive files require `-M' option"
+msgstr "Pakete fitxategi anitzentzat `-M' aukera erabili behar da"
+
+#: src/tar.c:2025
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Ezin dira --listed-incremental eta --newer batera erabili"
+
+#: src/tar.c:2042
+#, 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:2055
+msgid "Cannot verify multi-volume archives"
+msgstr "Ezin dira bolumen-anitzeko paketeak egiaztatu"
+
+#: src/tar.c:2057
+msgid "Cannot verify compressed archives"
+msgstr "Ezin dira konprimituriko fitxategiak egiaztatu"
+
+#: src/tar.c:2063
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Ezin dira bolumen anitzeko konprimituriko paketeak erabaili"
+
+#: src/tar.c:2069
+msgid "Cannot concatenate compressed archives"
+msgstr "Ezin dira konprimituriko paketeak kateatu"
+
+#: src/tar.c:2081
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option POSIX paketeekin bakarrik erabili daiteke"
+
+#: src/tar.c:2106
+msgid "Cowardly refusing to create an empty archive"
+msgstr ""
+
+#: src/tar.c:2127
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr " `-Aru' aukerak bateraezinak dira `-f -' rekin"
+
+#: src/tar.c:2153
+#, c-format
+msgid "Treating date `%s' as %s"
+msgstr ""
+
+#: src/tar.c:2208
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Behintzat `-Acdtrux' aukeretako bat ezarri behar duzu"
+
+#: src/tar.c:2262
+msgid "Error exit delayed from previous errors"
+msgstr "Errore irteera aurreko erroreak direla eta"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/xheader.c:160
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "%s gakoa ezezaguna da edo ez dago inplementaturik oraindik"
+
+#: src/xheader.c:186
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "%s patroia ezin da erabili"
+
+#: src/xheader.c:196
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "%s gakoa ezin da gainidatzi"
+
+#: src/xheader.c:499
+msgid "Malformed extended header: missing length"
+msgstr "Gaizki eratutako buru luzapena: luzera falta da"
+
+#: src/xheader.c:509
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr " %*s buru luzapen luzera eremuz kanpo dago"
+
+#: src/xheader.c:521
+msgid "Malformed extended header: missing blank after length"
+msgstr "Gaizki eratutako buru luzapena: luzera ondoren hutsunea falta da"
+
+#: src/xheader.c:529
+msgid "Malformed extended header: missing equal sign"
+msgstr "Gaizki eratutako buru luzapena: berdin ikurra falta da"
+
+#: src/xheader.c:535
+msgid "Malformed extended header: missing newline"
+msgstr "Gaizki eratutako buru luzapena: lerro berria falta da"
+
+#: src/xheader.c:572
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "alde batetara utzi gako buru luzapen ezezaguna `%s'"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:800
+#, 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:931 src/xheader.c:961 src/xheader.c:1244
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Gaizki eratutako buru luzapena: baliogabea %s=%s"
+
+#: src/xheader.c:1200 src/xheader.c:1223 src/xheader.c:1272
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Gaizki eratutako buru luzapena: gehiegizkoa %s=%s"
+
+#: src/xheader.c:1285
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Gaizki eratutako buru luzapena: %s baliogabea: %c mugatzaile esperodageba"
+
+#: src/xheader.c:1295
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Gaizki eratutako buru luzapena: %s baliogabea: balio kopuru bitxia"
+
+#: tests/genfile.c:109
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+
+#: tests/genfile.c:123
+msgid "File creation options:"
+msgstr "Pakete sortze aukerak:"
+
+#: tests/genfile.c:124 tests/genfile.c:135
+msgid "SIZE"
+msgstr "TAMAINA"
+
+#: tests/genfile.c:125
+msgid "Create file of the given SIZE"
+msgstr "Emandako TAMAINAko paketea sortu"
+
+#: tests/genfile.c:127
+msgid "Write to file NAME, instead of standard output"
+msgstr "Fitxategi IZENEAN idatzi irteera estandarren ordez"
+
+#: tests/genfile.c:129
+msgid "Read file names from FILE"
+msgstr "Fitxategi izenak PAKETEtik irakurri"
+
+#: tests/genfile.c:131
+msgid "-T reads null-terminated names"
+msgstr ""
+
+#: tests/genfile.c:133
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr ""
+
+#: tests/genfile.c:136
+msgid "Size of a block for sparse file"
+msgstr "Bloke tamaina fitxategi sakabanatuentzat"
+
+#: tests/genfile.c:138
+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:144
+msgid "File statistics options:"
+msgstr "Fixtategi estatistika aukerak:"
+
+#: tests/genfile.c:147
+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:154
+msgid "Synchronous execution options:"
+msgstr "Sinkronizatutako exekuzio aukerak:"
+
+#: tests/genfile.c:157
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr "Emandako KOMANDOA exekutatu. Erabilgarri --checkpoint eta hauetako batekin; --cut, --append, --touch"
+
+#: tests/genfile.c:160
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr ""
+
+#: tests/genfile.c:163
+msgid "Set date for next --touch option"
+msgstr "Ezarri data hurrengo --touch aukerarentzat"
+
+#: tests/genfile.c:166
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr ""
+
+#: tests/genfile.c:171
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr ""
+
+#: tests/genfile.c:174
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr ""
+
+#: tests/genfile.c:178
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr ""
+
+#: tests/genfile.c:181
+msgid "Update the access and modification times of FILE"
+msgstr "FITXATEGIAREN irakurketa eta eraldaketa denborak aldatu"
+
+#: tests/genfile.c:184
+msgid "Execute COMMAND"
+msgstr "KOMANDOA exekutatu"
+
+#: tests/genfile.c:227
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Tamaina baliogabea: %s"
+
+#: tests/genfile.c:241 tests/genfile.c:531
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) -ek huts egin du"
+
+#: tests/genfile.c:331
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Errorea zenbakia analizatzean hemendi gertu: `%s'"
+
+#: tests/genfile.c:337
+msgid "Unknown date format"
+msgstr "Data formatu ezezaguna"
+
+#: tests/genfile.c:360
+msgid "[ARGS...]"
+msgstr "[ARG...]"
+
+#: tests/genfile.c:398 tests/genfile.c:435 tests/genfile.c:485
+#: tests/genfile.c:637 tests/genfile.c:651
+#, c-format
+msgid "cannot open `%s'"
+msgstr "Ezin da `%s' ireki"
+
+#: tests/genfile.c:418
+msgid "file name contains null character"
+msgstr "fitxategia izenak karaktere baliogabea du"
+
+#: tests/genfile.c:482
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "ezin dira sakabanaturiko fitxategiaksortu irteera estandarrean. --file erabili"
+
+#: tests/genfile.c:558
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "maskara baliogabea (`%s'-etik gertu)"
+
+#: tests/genfile.c:566 tests/genfile.c:599
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "`%s' eremu ezezaguna"
+
+#: tests/genfile.c:626
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "ezin da `%s'-ren denbora ezarri"
+
+#: tests/genfile.c:780
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Komandoa behar bezala irten da\n"
+
+#: tests/genfile.c:782
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Komandoa %d egoerarekin huts egin du\n"
+
+#: tests/genfile.c:786
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Komandoa %d seinalearekin amaitu da\n"
+
+#: tests/genfile.c:788
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Komandoa %d seinalearekin geratu da\n"
+
+#: tests/genfile.c:791
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Komando iraulketa nagusia\n"
+
+#: tests/genfile.c:794
+#, c-format
+msgid "Command terminated\n"
+msgstr "Komandoa amaitua\n"
+
+#: tests/genfile.c:826
+msgid "--stat requires file names"
+msgstr "--stat -ek fitxategi izenak behar ditu"
+
+#: tests/genfile.c:839
+msgid "too many arguments"
+msgstr "argumentu gehiegi"
diff --git a/po/.reference/eu.s1 b/po/.reference/eu.s1
new file mode 100644
index 00000000..9a40caa5
--- /dev/null
+++ b/po/.reference/eu.s1
@@ -0,0 +1 @@
+ed5fa88cdbb116d1eff8e1c97323d102fa8929ef -
diff --git a/po/.reference/fi.po b/po/.reference/fi.po
new file mode 100644
index 00000000..a59e6135
--- /dev/null
+++ b/po/.reference/fi.po
@@ -0,0 +1,2890 @@
+# Finnish messages for GNU tar.
+# Copyright © 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
+# Lauri Nurmi <lanurmi@iki.fi>, 2002-2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.16.1\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2006-12-08 13:25+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"
+"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"
+
+#: lib/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumentti %s on virheellinen %s:lle"
+
+#: lib/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argumentti %s on moniselitteinen %s:lle"
+
+#: lib/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Kelvolliset argumentit ovat:"
+
+#: lib/argp-help.c:148
+#, c-format
+msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
+msgstr ""
+
+#: lib/argp-help.c:221
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT-parametri vaatii arvon"
+
+#: lib/argp-help.c:227
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT-parametrin on oltava positiivinen"
+
+#: lib/argp-help.c:236
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Tuntematon ARGP_HELP_FMT-parametri"
+
+#: lib/argp-help.c:248
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Roskaa ARGP_HELP_FMT:ssä: %s"
+
+#: lib/argp-help.c:1229
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Pitkien valitsinten pakolliset tai valinnaiset argumentit ovat pakollisia tai valinnaisia myös vastaaville lyhyille."
+
+#: lib/argp-help.c:1622
+msgid "Usage:"
+msgstr "Käyttö:"
+
+#: lib/argp-help.c:1626
+msgid " or: "
+msgstr " tai: "
+
+#: lib/argp-help.c:1638
+msgid " [OPTION...]"
+msgstr " [VALITSIN...]"
+
+#: lib/argp-help.c:1665
+#, 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:1693 src/tar.c:1154
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Ilmoita ohjelmistovioista (englanniksi) osoitteeseen %s.\n"
+
+#: lib/argp-help.c:1912 lib/error.c:125
+msgid "Unknown system error"
+msgstr "Tuntematon järjestelmävirhe"
+
+#: lib/argp-parse.c:82 src/tar.c:721
+msgid "give this help list"
+msgstr "näytä tämä ohje"
+
+#: lib/argp-parse.c:83 src/tar.c:722
+msgid "give a short usage message"
+msgstr "näytä lyhyt käyttöohje"
+
+#: lib/argp-parse.c:84 src/tar.c:452 src/tar.c:454 src/tar.c:523
+#: tests/genfile.c:128
+msgid "NAME"
+msgstr "NIMI"
+
+#: lib/argp-parse.c:84
+msgid "set the program name"
+msgstr ""
+
+#: lib/argp-parse.c:85
+msgid "SECS"
+msgstr ""
+
+#: lib/argp-parse.c:86 src/tar.c:727
+msgid "hang for SECS seconds (default 3600)"
+msgstr ""
+
+#: lib/argp-parse.c:143 src/tar.c:723
+msgid "print program version"
+msgstr "näytä ohjelman versio"
+
+#: lib/argp-parse.c:159
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr ""
+
+#: lib/argp-parse.c:612
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Liian monta argumenttia\n"
+
+#: lib/argp-parse.c:755
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr ""
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: valitsin ”%s” on moniselitteinen\n"
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: valitsin ”--%s” ei salli argumenttia\n"
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, 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:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: valitsin ”%s” vaatii argumentin\n"
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: tunnistamaton valitsin ”--%s”\n"
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: tunnistamaton valitsin ”%c%s”\n"
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: virheellinen valitsin -- %c\n"
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: virheellinen valitsin -- %c\n"
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: valitsin vaatii argumentin -- %c\n"
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: valitsin ”-W %s” on moniselitteinen\n"
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: valitsin ”-W %s” ei salli argumenttia\n"
+
+#: lib/human.c:477
+msgid "block size"
+msgstr "lohkokoko"
+
+#: lib/obstack.c:424 lib/obstack.c:426 lib/xalloc-die.c:35 src/extract.c:1373
+msgid "memory exhausted"
+msgstr "muisti lopussa"
+
+# 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:132
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Poistetaan ”%s” tiedostonimien alusta"
+
+#: lib/paxnames.c:133
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Poistetaan ”%s” kovien linkkien kohdenimien alusta"
+
+#: lib/paxnames.c:146
+msgid "Substituting `.' for empty member name"
+msgstr "Korvataan ”.” tyhjällä tiedostonimellä"
+
+#: lib/paxnames.c:147
+msgid "Substituting `.' for empty hard link target"
+msgstr "Korvataan ”.” tyhjällä kovan linkin kohteella"
+
+#. 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.
+#: lib/quotearg.c:245
+msgid "`"
+msgstr "”"
+
+#: lib/quotearg.c:246
+msgid "'"
+msgstr "”"
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr "^[kKyY]"
+
+#: lib/rpmatch.c:73
+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
+#, c-format
+msgid "stdout"
+msgstr "vakiotuloste"
+
+#: lib/rtapelib.c:512
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Etäkuorta ei voi käynnistää"
+
+#: rmt/rmt.c:142
+msgid "Input string too long"
+msgstr ""
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr ""
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Puskuritilaa ei voi varata\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr "Puskuritilaa ei voi varata"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Komento ”%s --help” antaa lisää tietoa.\n"
+
+#: rmt/rmt.c:308
+#, 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 ""
+"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:315
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Ohjelmistovioista voi ilmoittaa (englanniksi) osoitteeseen\n"
+"<%s>.\n"
+
+#: rmt/rmt.c:397
+#, fuzzy
+msgid "Seek offset error"
+msgstr "Siirtymä sallitun välin ulkopuolella"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+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:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Ennenaikainen tiedoston loppu\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "Ennenaikainen tiedoston loppu"
+
+#: rmt/rmt.c:672
+msgid "Garbage command"
+msgstr "Roskakomento"
+
+#: src/buffer.c:317 src/buffer.c:326
+msgid "Total bytes written"
+msgstr "Kirjoitettuja tavuja yhteensä"
+
+#: src/buffer.c:324 src/buffer.c:338
+msgid "Total bytes read"
+msgstr ""
+
+#: src/buffer.c:328
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Poistettuja tavuja yhteensä: %s\n"
+
+#: src/buffer.c:417
+msgid "(pipe)"
+msgstr "(putki)"
+
+#: src/buffer.c:440
+msgid "Invalid value for record_size"
+msgstr "Virheellinen arvo kentälle record_size"
+
+#: src/buffer.c:443
+msgid "No archive name given"
+msgstr "Arkiston nimeä ei ole annettu"
+
+#: src/buffer.c:487
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Vakiosyötteessä/tulosteessa olevaa arkistoa ei voi varmistaa"
+
+#: src/buffer.c:500
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arkisto on tiivistetty. Käytä valitsinta %s"
+
+#: src/buffer.c:547 src/tar.c:2153
+msgid "Cannot update compressed archives"
+msgstr "Pakattuja arkistoja ei voi päivittää"
+
+#. 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/buffer.c:597
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Kirjoituksen tarkistuspiste %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/buffer.c:603
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Lukemisen tarkistuspiste %u"
+
+#: src/buffer.c:655
+msgid "At beginning of tape, quitting now"
+msgstr "Nauhan alussa, lopetetaan"
+
+#: src/buffer.c:661
+msgid "Too many errors, quitting"
+msgstr "Liian monta virhettä, lopetetaan"
+
+#: src/buffer.c:689
+#, 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:709
+#, 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:782
+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:814
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek ei pysähtynyt tietueen rajalle"
+
+#: src/buffer.c:870
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: sisältää virheellisen arkiston osan järjestysnumeron"
+
+#: src/buffer.c:905
+msgid "Volume number overflow"
+msgstr "Arkisto-osan järjestysnumeron ylivuoto"
+
+#: src/buffer.c:920
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Valmistele osa #%d arkistolle %s ja paina return: "
+
+#: src/buffer.c:926
+msgid "EOF where user reply was expected"
+msgstr "Tiedoston loppu odotetun käyttäjän syötteen sijaan"
+
+#: src/buffer.c:931 src/buffer.c:963
+msgid "WARNING: Archive is incomplete"
+msgstr "VAROITUS: Arkisto on epätäydellinen"
+
+#: src/buffer.c:945
+#, 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 nimi Anna uusi tiedostonimi seuraavalle (ja tuleville) arkiston\n"
+" osalle/osille\n"
+" q Keskeytä tar\n"
+" y tai rivinv. Jatka suoritusta\n"
+
+#: src/buffer.c:950
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Käynnistä alikuori\n"
+
+#: src/buffer.c:951
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Näytä tämä lista\n"
+
+#: src/buffer.c:958
+msgid "No new volume; exiting.\n"
+msgstr "Ei uutta arkiston osaa, poistutaan.\n"
+
+#: src/buffer.c:991
+msgid "File name not specified. Try again.\n"
+msgstr "Tiedostonimeä ei annettu. Yritä uudelleen.\n"
+
+#: src/buffer.c:1004
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr ""
+
+#: src/buffer.c:1055
+#, c-format
+msgid "%s command failed"
+msgstr "Komento %s epäonnistui"
+
+#: src/buffer.c:1117 src/delete.c:210 src/list.c:168 src/update.c:165
+msgid "This does not look like a tar archive"
+msgstr "Tämä ei näytä tar-arkistolta"
+
+#: src/buffer.c:1211
+#, 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:1215
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s ei jatku tällä arkiston osalla"
+
+#: src/buffer.c:1229
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s on väärän kokoinen (%s ≠ %s + %s)"
+
+#: src/buffer.c:1239
+msgid "This volume is out of sequence"
+msgstr "Tämä arkiston osa ei ole järjestyksessä"
+
+#: src/buffer.c:1285
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arkistoa ei ole nimetty täsmää nimiöön %s"
+
+#: src/buffer.c:1288
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Arkiston osa %s ei täsmää nimiöön %s"
+
+#: src/buffer.c:1384
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: tiedostonimi on liian pitkä tallennettavaksi moniosaisen GNU-arkiston otsakkeeseen; nimi typistetty"
+
+#: src/compare.c:96
+#, 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:122
+msgid "Contents differ"
+msgstr "Sisällöt eroavat"
+
+#: src/compare.c:149 src/extract.c:790 src/incremen.c:1191 src/list.c:373
+#: src/list.c:1285
+msgid "Unexpected EOF in archive"
+msgstr "Odottamaton tiedoston loppu arkistossa"
+
+#: src/compare.c:197 src/compare.c:213 src/compare.c:331 src/compare.c:395
+msgid "File type differs"
+msgstr "Tiedoston tyyppi eroaa"
+
+#: src/compare.c:200 src/compare.c:220 src/compare.c:345
+msgid "Mode differs"
+msgstr "Tila eroaa"
+
+#: src/compare.c:223
+msgid "Uid differs"
+msgstr "UID eroaa"
+
+#: src/compare.c:225
+msgid "Gid differs"
+msgstr "GID eroaa"
+
+#: src/compare.c:229
+msgid "Mod time differs"
+msgstr "Muutosaika eroaa"
+
+#: src/compare.c:233 src/compare.c:403
+msgid "Size differs"
+msgstr "Koko eroaa"
+
+#: src/compare.c:287
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ei ole linkitetty tiedostoon %s"
+
+#: src/compare.c:310
+msgid "Symlink differs"
+msgstr "Symlinkki eroaa"
+
+#: src/compare.c:339
+msgid "Device number differs"
+msgstr "Laitenumero eroaa"
+
+#: src/compare.c:445
+#, c-format
+msgid "Verify "
+msgstr "Tarkasta "
+
+#: src/compare.c:452
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Tuntematon tiedostotyyppi ”%c”, vertailtu normaalina tiedostona"
+
+# Mitäh?
+#: src/compare.c:508
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arkisto sisältää tiedostonimiä, joiden etuliitteet on poistettu."
+
+#: src/compare.c:510
+msgid "Verification may fail to locate original files."
+msgstr "Tarkastus ei ehkä löydä alkuperäisiä tiedostoja."
+
+#: src/compare.c:580
+#, 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/create.c:85
+#, fuzzy, c-format
+msgid "%s: contains a cache directory tag %s; not dumped"
+msgstr "%s: näyttää välimuistihakemistolta, ei lisätä"
+
+#: src/create.c:226
+#, 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:232
+#, 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:292
+msgid "Generating negative octal headers"
+msgstr "Luodaan otsakkeet negatiivisilla oktaaleilla"
+
+#: src/create.c:578 src/create.c:641
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: tiedostonimi on liian pitkä (maksimi %d), ei lisätä"
+
+#: src/create.c:588
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: tiedostonimi on liian pitkä (ei voida jakaa), ei lisätä"
+
+#: src/create.c:615
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: linkin nimi on liian pitkä, ei lisätä"
+
+#: src/create.c:1031
+#, 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:1172
+#, 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:1327
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tuntematon tiedostotyyppi, tiedostoa ei huomioida"
+
+#: src/create.c:1428
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "Puuttuvat linkit tiedostoon %s.\n"
+
+#: src/create.c:1499
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: tiedosto on muuttumaton, ei lisätä"
+
+#: src/create.c:1507
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: tiedosto on arkistossa, ei lisätä"
+
+#: src/create.c:1537
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Tiedosto oli poistettu ennen sen lukemista"
+
+#: src/create.c:1555
+#, c-format
+msgid "%s: contains a cache directory tag; not dumped"
+msgstr "%s: näyttää välimuistihakemistolta, ei lisätä"
+
+#: src/create.c:1625
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: tiedosto muuttui lukemisen aikana"
+
+#: src/create.c:1704
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: pistoketta ei huomioida"
+
+#: src/create.c:1709
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: ovea ei huomioida"
+
+#: src/delete.c:216 src/list.c:182 src/update.c:170
+msgid "Skipping to next header"
+msgstr "Siirrytään seuraavaan otsakkeeseen"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "Poistetaan epäotsake arkistosta"
+
+#: src/extract.c:198
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: epätodennäköisen vanha aikaleima %s"
+
+#: src/extract.c:215
+#, 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
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Odottamaton ristiriita luotaessa hakemistoa"
+
+#: src/extract.c:588
+#, 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
+msgid "Extracting contiguous files as regular files"
+msgstr "Puretaan jatkuvat tiedostot normaaleiksi tiedostoiksi"
+
+#: src/extract.c:996
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Yritetään purkaa symboliset linkit koviksi linkeiksi"
+
+#: src/extract.c:1053
+#, c-format
+msgid "Reading %s\n"
+msgstr "Luetaan %s\n"
+
+#: src/extract.c:1142
+#, 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:1149 src/list.c:1052
+#, fuzzy
+msgid "Unexpected long name header"
+msgstr "Odottamaton tiedoston loppu sovitetuissa nimissä"
+
+#: src/extract.c:1155
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Tuntematon tiedostotyyppi ”%c”, purettiin normaaliksi tiedostoksi"
+
+#: src/extract.c:1180
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Nykyinen %s on uudempi tai yhtä vanha"
+
+#: src/extract.c:1226
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Tätä tiedostoa ei voitu varmuuskopioida"
+
+#: src/extract.c:1354
+#, fuzzy, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s: Uudelleennimeäminen nimelle %s ei onnistu"
+
+#: src/extract.c:1366
+#, c-format
+msgid "Error is not recoverable: exiting now"
+msgstr "Virhe ei ole korjattavissa, poistutaan nyt"
+
+#: src/incremen.c:260 src/incremen.c:300
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Hakemisto %s on nimetty uudelleen"
+
+#: src/incremen.c:270
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Hakemisto on nimetty uudelleen"
+
+#: src/incremen.c:311
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Hakemisto on uusi"
+
+#: src/incremen.c:697 src/incremen.c:714
+msgid "Invalid time stamp"
+msgstr "Virheellinen aikaleima"
+
+#: src/incremen.c:753
+msgid "Invalid modification time (seconds)"
+msgstr "Virheellinen muutosaika (sekunnit)"
+
+#: src/incremen.c:768
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Virheellinen muutosaika (nanosekunnit)"
+
+#: src/incremen.c:788
+msgid "Invalid device number"
+msgstr "Virheellinen laitenumero"
+
+#: src/incremen.c:803
+msgid "Invalid inode number"
+msgstr "Virheellinen i-solmun numero"
+
+#: src/incremen.c:854 src/incremen.c:891
+msgid "Field too long while reading snapshot file"
+msgstr ""
+
+#: src/incremen.c:861 src/incremen.c:899
+msgid "Read error in snapshot file"
+msgstr ""
+
+#: src/incremen.c:863 src/incremen.c:903 src/incremen.c:955
+#: src/incremen.c:1013
+#, fuzzy
+msgid "Unexpected EOF in snapshot file"
+msgstr "Odottamaton tiedoston loppu arkistossa"
+
+#: src/incremen.c:870 src/incremen.c:910
+msgid "Unexpected field value in snapshot file"
+msgstr ""
+
+#: src/incremen.c:1005
+msgid "Missing record terminator"
+msgstr ""
+
+#: src/incremen.c:1056 src/incremen.c:1059
+msgid "Bad incremental file format"
+msgstr ""
+
+#: src/incremen.c:1078
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr ""
+
+#: src/incremen.c:1231
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr ""
+
+#: src/incremen.c:1241
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr ""
+
+#: src/incremen.c:1254
+#, fuzzy
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Kelvoton tiheysargumentti: ”%s”"
+
+#: src/incremen.c:1267
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr ""
+
+#: src/incremen.c:1273
+#, fuzzy
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Kelvoton tiheysargumentti: ”%s”"
+
+#: src/incremen.c:1293
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr ""
+
+#: src/incremen.c:1299
+msgid "Malformed dumpdir: 'X' never used"
+msgstr ""
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Väliaikaishakemiston luominen %s-mallia käyttäen ei onnistu"
+
+#: src/incremen.c:1390
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Ei poisteta hakemistoa: stat ei onnistu"
+
+#: src/incremen.c:1403
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: hakemisto on eri laitteella, ei poisteta"
+
+#: src/incremen.c:1411
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Poistetaan %s\n"
+
+#: src/incremen.c:1416
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ei voi poistaa"
+
+#: src/list.c:114
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Jätetään pois"
+
+#: src/list.c:132
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "lohko %s: ** NUL-lohko **\n"
+
+#: src/list.c:145
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Yksinäinen nollalohko kohdassa %s"
+
+#: src/list.c:156
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "lohko %s: ** Tiedoston loppu **\n"
+
+#: src/list.c:179 src/list.c:1025 src/list.c:1253
+#, c-format
+msgid "block %s: "
+msgstr "lohko %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:633
+#, 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:688
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Arkiston oktaaliarvo %.*s on sallitun %s-välin ulkopuolella, oletetaan kahden komplementiksi"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:699
+#, 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:720
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arkisto sisältää käytöstä poistuvia base-64-otsakkeita"
+
+#: src/list.c:734
+#, 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:765
+#, 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:794
+#, 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:816
+#, 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:1188
+#, c-format
+msgid " link to %s\n"
+msgstr " linkki tiedostoon %s\n"
+
+#: src/list.c:1196
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tuntematon tiedostotyyppi %s\n"
+
+#: src/list.c:1214
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Pitkä linkki--\n"
+
+#: src/list.c:1218
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Pitkä nimi--\n"
+
+#: src/list.c:1222
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Arkiston osan otsake--\n"
+
+#: src/list.c:1230
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Jatkuu tavusta %s--\n"
+
+#: src/list.c:1258
+msgid "Creating directory:"
+msgstr "Luodaan hakemisto:"
+
+#: src/misc.c:458
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Nimetään uudelleen %s -> %s\n"
+
+#: src/misc.c:467 src/misc.c:485
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Uudelleennimeäminen nimelle %s ei onnistu"
+
+#: src/misc.c:490
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Nimetään %s takaisin nimelle %s\n"
+
+#: src/misc.c:632
+msgid "Cannot save working directory"
+msgstr "Työhakemistoa ei voi tallentaa"
+
+#: src/misc.c:638
+msgid "Cannot change working directory"
+msgstr "Työhakemistoa ei voi vaihtaa"
+
+#: src/misc.c:728
+msgid "child process"
+msgstr "lapsiprosessi"
+
+#: src/misc.c:737
+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:600
+msgid "Pattern matching characters used in file names. Please,"
+msgstr "Tiedostonimissä on käytetty jokerimerkkejä. Käytä"
+
+#: src/names.c:602
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+msgstr "valitsinta --wildcards täsmäyksen käyttöön ottamiseksi, tai"
+
+#: src/names.c:604
+msgid "suppress this warning."
+msgstr "--no-wildcards tämän varoituksen vaientamiseksi."
+
+#: 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:622
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Vaadittua esiintymää ei löytynyt arkistosta"
+
+#: src/tar.c:80
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Kumpikin valitsimista ”-%s” ja ”-%s” käyttää vakiosyötettä"
+
+#: src/tar.c:157
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Virheellinen arkistomuoto"
+
+#: src/tar.c:181
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Haluttiin käyttää GNU-ominaisuuksia yhteensopimattoman arkistomuodon kanssa"
+
+#: src/tar.c:242
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr ""
+
+#: src/tar.c:325
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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” tallentaa useita tiedostoja yhteen nauha- tai levyarkistoon, ja\n"
+"pystyy palauttamaan yksittäisiä tiedostoja arkistosta.\n"
+"\n"
+"Esimerkkejä:\n"
+" %s -cf arkisto.tar foo bar # Luo arkisto.tar tiedostoista foo ja bar.\n"
+" %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:334
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Varmuuskopion jälkiliite on ”~”, ellei sitä ole asetettu valitsimella\n"
+"--suffix tai muuttujalla SIMPLE_BACKUP_SUFFIX. Versionhallintaa voidaan\n"
+"säätää valitsimella --backup tai muuttujalla VERSION_CONTROL; arvot ovat:\n"
+"\n"
+" none, off älä tee varmuuskopioita koskaan\n"
+" t, numbered tee numeroituja varmuuskopioita\n"
+" nil, existing numeroituja, jos numeroituja varmuuskopioita on olemassa,\n"
+" muuten yksinkertaisia\n"
+" never, simple tee aina yksinkertaisia varmuuskopioita\n"
+
+#: src/tar.c:360
+msgid "Main operation mode:"
+msgstr "Päätoimintatila:"
+
+#: src/tar.c:363
+msgid "list the contents of an archive"
+msgstr "listaa arkiston sisältö"
+
+#: src/tar.c:365
+msgid "extract files from an archive"
+msgstr "pura tiedostoja arkistosta"
+
+#: src/tar.c:368
+msgid "create a new archive"
+msgstr "luo uusi arkisto"
+
+#: src/tar.c:370
+msgid "find differences between archive and file system"
+msgstr "etsi arkiston ja tiedostojärjestelmän väliset erot"
+
+#: src/tar.c:373
+msgid "append files to the end of an archive"
+msgstr "lisää tiedostoja arkiston loppuun"
+
+#: src/tar.c:375
+msgid "only append files newer than copy in archive"
+msgstr "lisää vain arkistokopiota uudemmat tiedostot"
+
+#: src/tar.c:377
+msgid "append tar files to an archive"
+msgstr "lisää tar-tiedostoja arkistoon"
+
+#: src/tar.c:380
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "poista tiedostoja arkistosta (ei toimi magneettinauhoilla!)"
+
+#: src/tar.c:382
+msgid "test the archive volume label and exit"
+msgstr ""
+
+#: src/tar.c:387
+msgid "Operation modifiers:"
+msgstr "Toimintovalinnat:"
+
+#: src/tar.c:390
+msgid "handle sparse files efficiently"
+msgstr "käsittele harvat tiedostot tehokkaasti"
+
+#: src/tar.c:391
+msgid "MAJOR[.MINOR]"
+msgstr ""
+
+#: src/tar.c:392
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr ""
+
+#: src/tar.c:394
+msgid "handle old GNU-format incremental backup"
+msgstr "käsittele vanha GNU-muotoinen lisääntyvä varmuuskopio"
+
+#: src/tar.c:395 src/tar.c:526 src/tar.c:590 src/tar.c:594 src/tar.c:604
+#: src/tar.c:608 src/tar.c:683 tests/genfile.c:130 tests/genfile.c:178
+#: tests/genfile.c:182 tests/genfile.c:185
+msgid "FILE"
+msgstr "TIED"
+
+#: src/tar.c:396
+msgid "handle new GNU-format incremental backup"
+msgstr "käsittele uusi GNU-muotoinen lisääntyvä varmuuskopio"
+
+#: src/tar.c:398
+msgid "do not exit with nonzero on unreadable files"
+msgstr "jatka lukukelvottomista tiedostoista huolimatta"
+
+#: src/tar.c:399 src/tar.c:521 src/tar.c:536 src/tar.c:636 tests/genfile.c:164
+msgid "NUMBER"
+msgstr "MÄÄRÄ"
+
+#: src/tar.c:400
+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 "käsittele vain kunkin tiedoston MÄÄRÄ-järjestyslukuinen esiintymä arkistossa; tämä valitsin on kelvollinen vain yhdessä alikomentojen --delete, --diff, --extract tai --list kanssa, ja kun luettelo tiedostoista on annettu komentirivillä tai -T-valitsimella; oletusMÄÄRÄ on 1"
+
+# Muualla seek on siirtymistä...
+#: src/tar.c:406
+msgid "archive is seekable"
+msgstr "arkisto on selattava"
+
+#: src/tar.c:411
+msgid "Overwrite control:"
+msgstr ""
+
+#: src/tar.c:414
+msgid "attempt to verify the archive after writing it"
+msgstr "yritä varmistaa arkisto kirjoittamisen jälkeen"
+
+#: src/tar.c:416
+msgid "remove files after adding them to the archive"
+msgstr "poista tiedostot arkistoon lisäämisen jälkeen"
+
+#: src/tar.c:418
+msgid "don't replace existing files when extracting"
+msgstr "älä korvaa olemassaolevia tiedostoja purettaessa"
+
+#: src/tar.c:420
+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:422
+msgid "overwrite existing files when extracting"
+msgstr "ylikirjoita olemassaolevat tiedostot purettaessa"
+
+#: src/tar.c:424
+msgid "remove each file prior to extracting over it"
+msgstr "poista jokainen tiedosto ennen sen päälle purkamista"
+
+#: src/tar.c:426
+msgid "empty hierarchies prior to extracting directory"
+msgstr "tyhjennä rakenne ennen hakemiston purkamista"
+
+#: src/tar.c:428
+msgid "preserve metadata of existing directories"
+msgstr "säilytä olemassaolevien hakemistojen metatiedot"
+
+#: src/tar.c:430
+#, fuzzy
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "ylikirjoita olemassaolevat tiedostot purettaessa"
+
+#: src/tar.c:436
+msgid "Select output stream:"
+msgstr "Valitse tulostusvirta:"
+
+#: src/tar.c:439
+msgid "extract files to standard output"
+msgstr "pura tiedostot vakiotulosteeseen"
+
+#: src/tar.c:440 src/tar.c:499 src/tar.c:501 tests/genfile.c:161
+#: tests/genfile.c:188
+msgid "COMMAND"
+msgstr "KOMENTO"
+
+#: src/tar.c:441
+msgid "pipe extracted files to another program"
+msgstr "putkita puretut tiedostot toiselle ohjelmalle"
+
+#: src/tar.c:443
+msgid "ignore exit codes of children"
+msgstr "jätä lapsiprosessien paluuarvot huomiotta"
+
+#: src/tar.c:445
+msgid "treat non-zero exit codes of children as error"
+msgstr "käsittele lapsiprosessien nollasta poikkeavat paluuarvot virheinä"
+
+#: src/tar.c:450
+msgid "Handling of file attributes:"
+msgstr "Tiedostojen ominaisuuksien käsittely:"
+
+#: src/tar.c:453
+msgid "force NAME as owner for added files"
+msgstr "pakota NIMI lisättyjen tiedostojen omistajaksi"
+
+#: src/tar.c:455
+msgid "force NAME as group for added files"
+msgstr "pakota NIMI lisättyjen tiedostojen ryhmäksi"
+
+#: src/tar.c:456 src/tar.c:622
+msgid "DATE-OR-FILE"
+msgstr "PÄIVÄYS-TAI-TIED"
+
+#: src/tar.c:457
+#, fuzzy
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "tallenna vain PÄIVÄYS-TAI-TIEDostoa uudemmat tiedostot"
+
+#: src/tar.c:458
+msgid "CHANGES"
+msgstr "MUUTOS"
+
+#: src/tar.c:459
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "pakota (symbolinen) tila MUUTOS lisätyille"
+
+#: src/tar.c:461
+msgid "METHOD"
+msgstr ""
+
+#: src/tar.c:462
+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:466
+msgid "don't extract file modified time"
+msgstr "älä pura tiedoston muutosaikaa"
+
+#: src/tar.c:468
+msgid "try extracting files with the same ownership"
+msgstr "yritä purkaa tiedostot samalla omistajuudella"
+
+#: src/tar.c:470
+msgid "extract files as yourself"
+msgstr "pura tiedostot itsenäsi"
+
+#: src/tar.c:472
+msgid "always use numbers for user/group names"
+msgstr "käytä aina numeroita käyttäjän/ryhmän nimissä"
+
+#: src/tar.c:474
+msgid "extract information about file permissions (default for superuser)"
+msgstr ""
+
+#: src/tar.c:478
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr ""
+
+#: src/tar.c:480
+msgid "sort names to extract to match archive"
+msgstr "lajittele purettavat tiedostonimet täsmäämään arkistoon"
+
+#: src/tar.c:483
+msgid "same as both -p and -s"
+msgstr "sama kuin -p ja -s yhdessä"
+
+#: src/tar.c:485
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr ""
+
+#: src/tar.c:488
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr ""
+
+#: src/tar.c:493
+#, fuzzy
+msgid "Device selection and switching:"
+msgstr "Laitteen valinta ja vaihtaminen:\n"
+
+#: src/tar.c:495
+msgid "ARCHIVE"
+msgstr "ARKISTO"
+
+#: src/tar.c:496
+msgid "use archive file or device ARCHIVE"
+msgstr "käytä arkistotiedostoa tai -laitetta ARKISTO"
+
+#: src/tar.c:498
+msgid "archive file is local even if it has a colon"
+msgstr "arkisto on paikallinen vaikka nimessä olisi kaksoispiste"
+
+#: src/tar.c:500
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "käytä rmt-KOMENTOA rmt:n sijaan"
+
+#: src/tar.c:502
+msgid "use remote COMMAND instead of rsh"
+msgstr "käytä etäKOMENTOa rsh:n sijaan"
+
+#: src/tar.c:506
+msgid "specify drive and density"
+msgstr "anna asema ja tiheys"
+
+#: src/tar.c:520
+msgid "create/list/extract multi-volume archive"
+msgstr "luo/listaa/pura moniosainen arkisto"
+
+#: src/tar.c:522
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "vaihda nauhaa MÄÄRÄ × 1024 kirjoitetun tavun jälkeen"
+
+#: src/tar.c:524
+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:527
+msgid "use/update the volume number in FILE"
+msgstr "käytä/päivitä arkiston osan numero TIEDostossa"
+
+#: src/tar.c:532
+msgid "Device blocking:"
+msgstr "Laitteen lohkot:"
+
+#: src/tar.c:534
+msgid "BLOCKS"
+msgstr "LOHKOT"
+
+#: src/tar.c:535
+msgid "BLOCKS x 512 bytes per record"
+msgstr "LOHKOT × 512 tavua tietuetta kohti"
+
+#: src/tar.c:537
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "MÄÄRÄ tavua tietuetta kohti, 512:n monikerta"
+
+#: src/tar.c:539
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "älä huomioi nollattuja lohkoja arkistossa (merkitsee tiedoston loppua)"
+
+#: src/tar.c:541
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "suorita lohkominen uudelleen luettaessa (4.2BSD-putkia varten)"
+
+#: src/tar.c:546
+msgid "Archive format selection:"
+msgstr "Arkistomuodon valinta:"
+
+#: src/tar.c:548 tests/genfile.c:151
+msgid "FORMAT"
+msgstr "MUOTO"
+
+#: src/tar.c:549
+msgid "create archive of the given format"
+msgstr "luo annetun muotoinen arkisto"
+
+#: src/tar.c:551
+msgid "FORMAT is one of the following:"
+msgstr "MUOTO on yksi seuraavista:"
+
+#: src/tar.c:552
+msgid "old V7 tar format"
+msgstr "vanha V7-tar-muoto"
+
+#: src/tar.c:555
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU-muoto tar-versioilla ≤ 1.12"
+
+#: src/tar.c:557
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x -muoto"
+
+#: src/tar.c:559
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) -muoto"
+
+#: src/tar.c:561
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) -muoto"
+
+#: src/tar.c:562
+msgid "same as pax"
+msgstr "sama kuin pax"
+
+#: src/tar.c:565
+msgid "same as --format=v7"
+msgstr "sama kuin --format=v7"
+
+#: src/tar.c:568
+msgid "same as --format=posix"
+msgstr "sama kuin --format=posix"
+
+#: src/tar.c:569
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "avainsana[[:]=arvo][,avainsana[[:]=arvo]]..."
+
+#: src/tar.c:570
+msgid "control pax keywords"
+msgstr "määrittele pax-avainsanoja"
+
+#: src/tar.c:571
+msgid "TEXT"
+msgstr "TEKSTI"
+
+#: src/tar.c:572
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "luo arkisto nimiöllä TEKSTI. Listattaessa/purettaessa käytä TEKSTIä nimiönhakulausekkeena"
+
+#: src/tar.c:574
+msgid "filter the archive through bzip2"
+msgstr "ohjaa arkisto bzip2-ohjelman läpi"
+
+#: src/tar.c:576
+msgid "filter the archive through gzip"
+msgstr "ohjaa arkisto gzip-ohjelman läpi"
+
+#: src/tar.c:580
+msgid "filter the archive through compress"
+msgstr "ohjaa arkisto compress-ohjelman läpi"
+
+#: src/tar.c:582
+msgid "PROG"
+msgstr "OHJ"
+
+#: src/tar.c:583
+msgid "filter through PROG (must accept -d)"
+msgstr "ohjaa OHJelman läpi (on hyväksyttävä -d)"
+
+#: src/tar.c:588
+msgid "Local file selection:"
+msgstr "Paikallisten tiedostojen valinta:"
+
+#: src/tar.c:591
+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:592
+msgid "DIR"
+msgstr "HAK"
+
+#: src/tar.c:593
+msgid "change to directory DIR"
+msgstr "siirry hakemistoon HAK"
+
+#: src/tar.c:595
+msgid "get names to extract or create from FILE"
+msgstr "hae purettavat/luotavat nimet TIEDOSTOsta"
+
+#: src/tar.c:597
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T lukee nollaan päättyviä nimiä, poistaa käytöstä -C:n"
+
+#: src/tar.c:599
+msgid "unquote filenames read with -T (default)"
+msgstr ""
+
+#: src/tar.c:601
+msgid "do not unquote filenames read with -T"
+msgstr ""
+
+#: src/tar.c:602 tests/genfile.c:134
+msgid "PATTERN"
+msgstr "HAHMO"
+
+#: src/tar.c:603
+msgid "exclude files, given as a PATTERN"
+msgstr "jätä pois HAHMOn mukaiset tiedostot"
+
+#: src/tar.c:605
+msgid "exclude patterns listed in FILE"
+msgstr "jätä pois TIEDOSTOssa listatut hahmot"
+
+#: src/tar.c:607
+msgid "exclude directories containing a cache tag"
+msgstr "jätä pois välimuistihakemistot"
+
+#: src/tar.c:609
+msgid "exclude directories containing FILE"
+msgstr "jätä pois TIEDOSTOn sisältävät hakemistot"
+
+#: src/tar.c:611
+msgid "avoid descending automatically in directories"
+msgstr "estä automaattinen eteneminen alihakemistoihin"
+
+#: src/tar.c:613
+msgid "stay in local file system when creating archive"
+msgstr "pysy nykyisessä tiedostojärjestelmässä arkistoa luotaessa"
+
+#: src/tar.c:615
+msgid "recurse into directories (default)"
+msgstr "etene alihakemistoihin (oletus)"
+
+#: src/tar.c:617
+msgid "don't strip leading `/'s from file names"
+msgstr "älä poista ”/”-merkkiä tiedostonimien alusta"
+
+#: src/tar.c:619
+#, fuzzy
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "seuraa symlinkkejä; "
+
+#: src/tar.c:620
+msgid "MEMBER-NAME"
+msgstr "TIED-NIMI"
+
+#: src/tar.c:621
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "aloita arkiston tiedostosta TIED-NIMI"
+
+#: src/tar.c:623
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "tallenna vain PÄIVÄYS-TAI-TIEDostoa uudemmat tiedostot"
+
+#: src/tar.c:625
+msgid "DATE"
+msgstr "PÄIVÄYS"
+
+#: src/tar.c:626
+msgid "compare date and time when data changed only"
+msgstr "vertaa vain tiedoston muutosaikaa"
+
+#: src/tar.c:627
+msgid "CONTROL"
+msgstr "HALLINTA"
+
+#: src/tar.c:628
+msgid "backup before removal, choose version CONTROL"
+msgstr "varmuuskopiointi ennen poistoa, valitse versionHALLINTA"
+
+#: src/tar.c:629 src/tar.c:700 src/tar.c:702 tests/genfile.c:167
+msgid "STRING"
+msgstr "MERKKIJONO"
+
+#: src/tar.c:630
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "varmuuskopiointi ennen poistoa, älä käytä tavanomaista jälkiliitettä (joka on ”~”, ellei muuttujaa SIMPLE_BACKUP_SUFFIX ole asetettu)"
+
+#: src/tar.c:635
+msgid "File name transformations:"
+msgstr ""
+
+#: src/tar.c:637
+#, fuzzy
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "poista MÄÄRÄn verran osia tiedostonimien alusta"
+
+#: src/tar.c:639
+msgid "EXPRESSION"
+msgstr ""
+
+#: src/tar.c:640
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr ""
+
+#: src/tar.c:645
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr ""
+
+#: src/tar.c:648
+#, fuzzy
+msgid "ignore case"
+msgstr "poisjättäminen ei huomioi kirjainkokoa"
+
+#: src/tar.c:650
+#, fuzzy
+msgid "patterns match file name start"
+msgstr "poisjättöhahmoja verrataan nimen alkuun"
+
+#: src/tar.c:652
+#, fuzzy
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "poisjättöhahmoja verrataan jokaisen ”/”:n jälkeen"
+
+#: src/tar.c:654
+#, fuzzy
+msgid "case sensitive matching (default)"
+msgstr "poisjättäminen huomioi kirjainkoon (oletus)"
+
+#: src/tar.c:656
+msgid "use wildcards (default for exclusion)"
+msgstr ""
+
+#: src/tar.c:658
+msgid "verbatim string matching"
+msgstr ""
+
+#: src/tar.c:660
+#, fuzzy
+msgid "wildcards do not match `/'"
+msgstr "poisjättöhahmon jokerimerkit eivät täsmää ”/”-merkkiin"
+
+#: src/tar.c:662
+#, fuzzy
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "poisjättöhahmon jokerimerkit vastaavat merkkiä ”/”"
+
+#: src/tar.c:667
+msgid "Informative output:"
+msgstr "Tietoja antava tuloste:"
+
+#: src/tar.c:670
+msgid "verbosely list files processed"
+msgstr "listaa käsiteltävät tiedostot"
+
+#: src/tar.c:671
+#, fuzzy
+msgid "[.]NUMBER"
+msgstr "MÄÄRÄ"
+
+#: src/tar.c:672
+#, fuzzy
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "näytä edistymisviesti 10 sekunnin välein"
+
+#: src/tar.c:675
+msgid "print a message if not all links are dumped"
+msgstr "näytä viesti, ellei kaikkia linkkejä lisätty"
+
+#: src/tar.c:676
+msgid "SIGNAL"
+msgstr ""
+
+#: src/tar.c:677
+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 ""
+
+#: src/tar.c:682
+msgid "print file modification dates in UTC"
+msgstr "näytä tiedostojen muutosajat UTC-aikoina"
+
+#: src/tar.c:684
+msgid "send verbose output to FILE"
+msgstr "ohjaa monisanainen tuloste TIEDostoon"
+
+#: src/tar.c:686
+msgid "show block number within archive with each message"
+msgstr "näytä lohkonumero arkistossa viestien yhteydessä"
+
+#: src/tar.c:688
+msgid "ask for confirmation for every action"
+msgstr "kysy varmistusta jokaiselle toiminnolle"
+
+#: src/tar.c:691
+msgid "show tar defaults"
+msgstr "näytä tarin oletukset"
+
+#: src/tar.c:693
+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:695
+msgid "show file or archive names after transformation"
+msgstr ""
+
+#: src/tar.c:698
+msgid "STYLE"
+msgstr ""
+
+#: src/tar.c:699
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr ""
+
+#: src/tar.c:701
+msgid "additionally quote characters from STRING"
+msgstr ""
+
+#: src/tar.c:703
+msgid "disable quoting for characters from STRING"
+msgstr ""
+
+#: src/tar.c:708
+msgid "Compatibility options:"
+msgstr "Yhteensopivuusvalitsimet:"
+
+#: src/tar.c:711
+#, fuzzy
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "luotaessa sama kuin --old-archive purettaessa sama kuin --no-same-owner"
+
+#: src/tar.c:716
+msgid "Other options:"
+msgstr "Muut valitsimet:"
+
+#: src/tar.c:719
+msgid "disable use of some potentially harmful options"
+msgstr "poista käytöstä joitakin potentiaalisesti vahingollisia valitsimia"
+
+#: src/tar.c:823
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Vain yhtä valitsimista ”-Acdtrux” voi käyttää kerrallaan"
+
+#: src/tar.c:833
+msgid "Conflicting compression options"
+msgstr "Ristiriitaiset pakkausvalitsimet"
+
+#: src/tar.c:889
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Tuntematon signaalin nimi: %s"
+
+#: src/tar.c:913
+#, fuzzy
+msgid "Date sample file not found"
+msgstr "Päiväystiedostoa ei löytynyt"
+
+#: src/tar.c:921
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Korvataan tuntematon päiväysmuoto %2$s arvolla %1$s"
+
+#: src/tar.c:946
+#, 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:1020
+#, fuzzy, c-format
+msgid "%s: file list already read"
+msgstr "%s: tiedosto on arkistossa, ei lisätä"
+
+#: src/tar.c:1083
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: tiedostonimi sisältää nul-merkin"
+
+#: src/tar.c:1148
+msgid "Valid arguments for --quoting-style options are:"
+msgstr "Kelvolliset argumentit --quoting-style -valitsimille ovat:"
+
+#: src/tar.c:1151
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Tämä* tar käyttää oletuksena:\n"
+
+#: src/tar.c:1184
+msgid "Invalid blocking factor"
+msgstr "Virheellinen lohkomiskerroin"
+
+#: src/tar.c:1256
+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?"
+
+#: src/tar.c:1289
+msgid "Invalid tape length"
+msgstr "Virheellinen nauhan pituus"
+
+#: src/tar.c:1321
+msgid "More than one threshold date"
+msgstr "Annettu useampi kuin yksi kynnyspäiväys"
+
+#: src/tar.c:1376 src/tar.c:1379
+msgid "Invalid sparse version value"
+msgstr ""
+
+#: src/tar.c:1464
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' ei ole tuettu tällä alustalla"
+
+#: src/tar.c:1481
+msgid "--checkpoint value is not an integer"
+msgstr ""
+
+#: src/tar.c:1555
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Virheellinen ryhmä"
+
+#: src/tar.c:1562
+msgid "Invalid mode given on option"
+msgstr "Valitsimelle annettiin virheellinen tila"
+
+#: src/tar.c:1615
+msgid "Invalid number"
+msgstr "Virheellinen määrä"
+
+#: src/tar.c:1637
+msgid "Invalid owner"
+msgstr "Virheellinen omistaja"
+
+#: src/tar.c:1671
+msgid "Invalid record size"
+msgstr "Virheellinen tietueen koko"
+
+#: src/tar.c:1674
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Tietueen koon on oltava %d:n monikerta."
+
+#: src/tar.c:1711
+msgid "Invalid number of elements"
+msgstr "Virheellinen osien määrä"
+
+#: src/tar.c:1731
+msgid "Only one --to-command option allowed"
+msgstr ""
+
+#: src/tar.c:1807
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Kelvoton tiheysargumentti: %s"
+
+#: src/tar.c:1833
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Tuntematon tiheys: ”%c”"
+
+#: src/tar.c:1850
+#, 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:1885
+msgid "[FILE]..."
+msgstr "[TIEDOSTO]..."
+
+#: src/tar.c:1988
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Vanha valitsin ”%c” vaatii argumentin."
+
+#: src/tar.c:2070
+msgid "--occurrence is meaningless without a file list"
+msgstr "valitsin --occurence on merkityksetön ilman tiedostoluetteloa"
+
+#: src/tar.c:2076
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "valitsinta --occurence ei voi käyttää pyydetyssä toimintatilassa"
+
+#: src/tar.c:2106
+msgid "Multiple archive files require `-M' option"
+msgstr "Usean arkistotiedoston käyttäminen vaatii valitsimen ”-M”"
+
+#: src/tar.c:2111
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Valitsimia --listed-incremental ja --newer ei voi käyttää yhdessä"
+
+#: src/tar.c:2128
+#, 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:2141
+msgid "Cannot verify multi-volume archives"
+msgstr "Moniosaisia arkistoja ei voi tarkastaa"
+
+#: src/tar.c:2143
+msgid "Cannot verify compressed archives"
+msgstr "Pakattuja arkistoja ei voi varmistaa"
+
+#: src/tar.c:2149
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Pakattuja moniosaisia arkistoja ei voi käyttää"
+
+#: src/tar.c:2155
+msgid "Cannot concatenate compressed archives"
+msgstr "Pakattuja arkistoja ei voi liittää toisiinsa"
+
+#: src/tar.c:2167
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "Valitsinta --pax-option voi käyttää vain POSIX-arkistoille"
+
+#: src/tar.c:2192
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Kieltäydytään pelkurimaisesti luomasta tyhjää arkistoa"
+
+#: src/tar.c:2213
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Valitsimet ”-Aru” eivät ole yhteensopivia valitsinten ”-f -” kanssa"
+
+#: src/tar.c:2302
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Vähintään yhtä valitsimista ”-Acdtrux” on käytettävä"
+
+#: src/tar.c:2353
+#, c-format
+msgid "Error exit delayed from previous errors"
+msgstr "Viivästetty virhepoistuminen johtuu aikaisemmista virheistä"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:160
+#, 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:186
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Hahmoa %s ei voi käyttää"
+
+#: src/xheader.c:196
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Avainsanaa %s ei voi ohittaa"
+
+#: src/xheader.c:500
+#, fuzzy
+msgid "Malformed extended header: missing length"
+msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
+
+#: src/xheader.c:508
+#, 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:515
+#, 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:527
+#, fuzzy
+msgid "Malformed extended header: missing blank after length"
+msgstr "Väärän muotoinen laajennettu otsake: tyhje puuttuu pituuden jälkeen"
+
+#: src/xheader.c:535
+msgid "Malformed extended header: missing equal sign"
+msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
+
+#: src/xheader.c:541
+#, fuzzy
+msgid "Malformed extended header: missing newline"
+msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
+
+#: src/xheader.c:578
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr ""
+
+#: src/xheader.c:783
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Muodostettu avainsana-arvo-pari on liian pitkä (avainsana=%s, pituus=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:815
+#, 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:946 src/xheader.c:976 src/xheader.c:1290
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Väärän muotoinen laajennettu otsake: virheellinen %s=%s"
+
+#: src/xheader.c:1243 src/xheader.c:1268 src/xheader.c:1318
+#, fuzzy, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
+
+#: src/xheader.c:1331
+#, 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:1341
+#, fuzzy, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
+
+#: tests/genfile.c:110
+#, 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:125
+#, fuzzy
+msgid "File creation options:"
+msgstr "Muut valitsimet:"
+
+#: tests/genfile.c:126 tests/genfile.c:137
+msgid "SIZE"
+msgstr ""
+
+#: tests/genfile.c:127
+#, fuzzy
+msgid "Create file of the given SIZE"
+msgstr "luo annetun muotoinen arkisto."
+
+#: tests/genfile.c:129
+#, fuzzy
+msgid "Write to file NAME, instead of standard output"
+msgstr "pura tiedostot vakiotulosteeseen"
+
+#: tests/genfile.c:131
+#, fuzzy
+msgid "Read file names from FILE"
+msgstr "Luettiin %s tavua arkistosta %s"
+
+#: tests/genfile.c:133
+msgid "-T reads null-terminated names"
+msgstr "-T lukee nollatavuun päättyviä nimiä"
+
+#: tests/genfile.c:135
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr ""
+
+#: tests/genfile.c:138
+msgid "Size of a block for sparse file"
+msgstr ""
+
+#: tests/genfile.c:140
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr ""
+
+#: tests/genfile.c:142
+msgid "OFFSET"
+msgstr ""
+
+#: tests/genfile.c:143
+#, fuzzy
+msgid "Seek to the given offset before writing data"
+msgstr "yritä varmistaa arkisto kirjoittamisen jälkeen"
+
+#: tests/genfile.c:149
+msgid "File statistics options:"
+msgstr ""
+
+#: tests/genfile.c:152
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr ""
+
+#: tests/genfile.c:159
+msgid "Synchronous execution options:"
+msgstr ""
+
+#: tests/genfile.c:162
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr ""
+
+#: tests/genfile.c:165
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr ""
+
+#: tests/genfile.c:168
+msgid "Set date for next --touch option"
+msgstr ""
+
+#: tests/genfile.c:171
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr ""
+
+#: tests/genfile.c:176
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr ""
+
+#: tests/genfile.c:179
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr ""
+
+#: tests/genfile.c:183
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr ""
+
+#: tests/genfile.c:186
+msgid "Update the access and modification times of FILE"
+msgstr ""
+
+#: tests/genfile.c:189
+msgid "Execute COMMAND"
+msgstr "Suorita KOMENTO"
+
+#: tests/genfile.c:239
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Virheellinen koko: %s"
+
+#: tests/genfile.c:244
+#, fuzzy, c-format
+msgid "Number out of allowed range: %s"
+msgstr "I-solmun numero ei ole sallitulla välillä"
+
+#: tests/genfile.c:247
+#, fuzzy, c-format
+msgid "Negative size: %s"
+msgstr "Virheellinen koko: %s"
+
+#: tests/genfile.c:260 tests/genfile.c:559
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) epäonnistui"
+
+#: tests/genfile.c:354
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr ""
+
+#: tests/genfile.c:360
+#, fuzzy, c-format
+msgid "Unknown date format"
+msgstr "Tuntematon järjestelmävirhe"
+
+#: tests/genfile.c:383
+msgid "[ARGS...]"
+msgstr "[ARG...]"
+
+#: tests/genfile.c:420 tests/genfile.c:460 tests/genfile.c:513
+#: tests/genfile.c:663 tests/genfile.c:677
+#, c-format
+msgid "cannot open `%s'"
+msgstr ""
+
+#: tests/genfile.c:426
+#, fuzzy, c-format
+msgid "cannot seek: %s"
+msgstr "%s: Siirtyminen kohtaan %s ei onnistu"
+
+#: tests/genfile.c:443
+#, c-format
+msgid "file name contains null character"
+msgstr "tiedostonimi sisältää nollatavun"
+
+#: tests/genfile.c:508
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr ""
+
+#: tests/genfile.c:586
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr ""
+
+#: tests/genfile.c:592 tests/genfile.c:625
+#, fuzzy, c-format
+msgid "Unknown field `%s'"
+msgstr " tuntematon tiedostotyyppi %s\n"
+
+#: tests/genfile.c:652
+#, fuzzy, c-format
+msgid "cannot set time on `%s'"
+msgstr "%s: Siirtyminen kohtaan %s ei onnistu"
+
+#: tests/genfile.c:806
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Komennon suoritus päättyi onnistuneesti\n"
+
+#: tests/genfile.c:808
+#, fuzzy, c-format
+msgid "Command failed with status %d\n"
+msgstr "Lapsiprosessi kuoli signaalilla %d"
+
+#: tests/genfile.c:812
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Komento keskeytyi signaaliin %d\n"
+
+#: tests/genfile.c:814
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Komento pysähtyi signaaliin %d\n"
+
+#: tests/genfile.c:817
+#, c-format
+msgid "Command dumped core\n"
+msgstr ""
+
+#: tests/genfile.c:820
+#, c-format
+msgid "Command terminated\n"
+msgstr "Komento keskeytyi\n"
+
+#: tests/genfile.c:852
+#, fuzzy, c-format
+msgid "--stat requires file names"
+msgstr "--Sovitetut tiedostonimet--\n"
+
+#: tests/genfile.c:865
+#, c-format
+msgid "too many arguments"
+msgstr "liian monta argumenttia"
+
+#~ msgid "%s: Read error at byte %s, reading %lu byte"
+#~ msgid_plural "%s: Read error at byte %s, reading %lu bytes"
+#~ msgstr[0] "%s: Lukuvirhe tavun %s kohdalla, luetaan %lu tavu"
+#~ msgstr[1] "%s: Lukuvirhe tavun %s kohdalla, luetaan %lu tavua"
+
+#~ msgid "--Mangled file names--\n"
+#~ msgstr "--Sovitetut tiedostonimet--\n"
+
+#~ msgid "Unexpected EOF in mangled names"
+#~ msgstr "Odottamaton tiedoston loppu sovitetuissa nimissä"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "Nimettiin uudelleen %s -> %s"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ msgstr "%s: Symlinkittäminen tiedostoksi %s ei onnistu"
+
+#~ msgid "Symlinked %s to %s"
+#~ msgstr "Symlinkitettiin %s -> %s"
+
+#~ 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ä"
+
+#, fuzzy
+#~ 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"
+
+#~ 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 ""
+#~ "Tällä ohjelmalla EI lain sallimissa rajoissa OLE TAKUUTA.\n"
+#~ "Ohjelmaa saa levittää GNU:n General Public Licensen mukaisesti;\n"
+#~ "katso lisätietoja tiedostosta COPYING."
+
+#~ msgid "rmtd: Garbage command %c\n"
+#~ msgstr "rmtd: Roskakomento %c\n"
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "VAROITUS: Arkisto-osan otsake puuttuu"
+
+#~ msgid "Visible long name error"
+#~ msgstr "Näkyvän pitkän nimen virhe"
+
+#~ msgid "Visible longname error"
+#~ msgstr "Näkyvän pitkän nimen virhe"
+
+#~ msgid "Missing file name after -C"
+#~ msgstr "Puuttuva tiedostonimi valitsimen -C jälkeen"
+
+#~ msgid "don't change access times on dumped files"
+#~ msgstr "älä muuta lisättyjen tiedostojen käyttöaikoja"
+
+#~ msgid "extract permissions information"
+#~ msgstr "pura tiedostojen oikeudet"
+
+#~ msgid "do not extract permissions information"
+#~ msgstr "älä pura tiedostojen oikeuksia"
+
+#~ msgid "FILE-OF-NAMES"
+#~ msgstr "TIEDOSTO"
+
+#~ msgid "exclude patterns are plain strings"
+#~ msgstr "poisjättöhahmot ovat tavallisia merkkijonoja"
+
+#~ msgid "dump instead the files symlinks point to"
+#~ msgstr "lisää symlinkin kohdetiedostot, ei linkkejä"
+
+#~ msgid "exclude patterns use wildcards (default)"
+#~ msgstr "poisjättöhahmot käyttävät jokerimerkkejä (oletus)"
+
+#~ msgid "print total bytes written while creating archive"
+#~ msgstr "näytä kirj. tavujen yhteismäärä luotaessa arkistoa"
+
+#~ msgid "Print license and exit"
+#~ msgstr "Näytä lisenssi ja poistu"
+
+#~ msgid ""
+#~ "Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n"
+#~ "for complete list of authors.\n"
+#~ msgstr ""
+#~ "Perustuu John Gilmoren ja Jay Fenlasonin tekemään työhön. Tarkka lista\n"
+#~ "tekijöistä on AUTHORS-tiedostossa.\n"
+
+# HUOM: Osoitetiedot suomennoksessa ajan tasalla, alkuperäisessä ei.
+#~ 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"
+#~ msgstr ""
+#~ " GNU tar on vapaaohjelmisto; voitte levittää edelleen ja/tai muuttaa\n"
+#~ " sitä Free Software Foundationin julkaiseman GNU General Public\n"
+#~ " License'in ehtojen mukaisesti; joko version 2, tai (valintanne mukaan)\n"
+#~ " minkä tahansa myöhemmän version.\n"
+#~ "\n"
+#~ " GNU taria levitetään siinä toivossa, että se olisi hyödyllinen,\n"
+#~ " mutta TAKUUTA EI OLE; ei edes KAUPALLISESTI HYVÄKSYTTÄVÄSTÄ LAADUSTA\n"
+#~ " tai SOPIVUUDESTA TIETTYYN TARKOITUKSEEN. Katsokaa lisätietoja GNU\n"
+#~ " General Public License'istä.\n"
+#~ "\n"
+#~ " Olette saaneet kopion GNU General Public License'istä tämän\n"
+#~ " ohjelman mukana. Ellette saaneet, kirjoittakaa Free Software Foundation,\n"
+#~ " Inc.:ille osoitteeseen 51 Franklin Street, Fifth Floor,\n"
+#~ " Boston, MA 02110-1301, USA.\n"
+#~ "\n"
+
+#~ msgid "Semantics of -l option will change in the future releases."
+#~ msgstr "Valitsimen -l merkitys muuttuu tulevissa versioissa."
+
+#~ msgid "Please use --one-file-system option instead."
+#~ msgstr "Käytä valitsinta --one-file-system."
+
+#~ msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+#~ msgstr "Varoitus: valitsin -y ei ole tuettu, ehkä tarkoitit -j?"
+
+#~ msgid "Error in writing to standard output"
+#~ msgstr "Virhe kirjoitettaessa vakiotulosteeseen"
+
+#~ 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” tallentaa useita tiedostoja yhteen nauha- tai levyarkistoon, sekä\n"
+#~ "palauttaa yksittäisiä tiedostoja arkistosta.\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"
+#~ "Jos argumentti on pakollinen pitkän valitsimen kanssa, se on pakollinen\n"
+#~ "myös vastaavan lyhyen valitsimen kanssa. Sama koskee valinnaisia argumentteja.\n"
+
+#~ 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"
+#~ "Päätoimintatila:\n"
+#~ " -t, --list listaa arkiston sisältö\n"
+#~ " -x, --extract, --get pura tiedostoja arkistosta\n"
+#~ " -c, --create luo uusi arkisto\n"
+#~ " -d, --diff, --compare etsi erot arkiston ja tied.järjestelmän välillä\n"
+#~ " -r, --append lisää tiedostoja arkiston loppuun\n"
+#~ " -u, --update lisää vain arkistossa olevia uudemmat tiedostot\n"
+#~ " -A, --catenate lisää tar-tiedostoja arkistoon\n"
+#~ " --concatenate sama kuin -A\n"
+#~ " --delete poista arkistosta (ei toimi nauhoilla!)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Operation modifiers:\n"
+#~ " -W, --verify attempt to verify the archive after writing it\n"
+#~ " --remove-files remove files after adding them to the archive\n"
+#~ " -k, --keep-old-files don't replace existing files when extracting\n"
+#~ " --keep-newer-files don't replace existing files that are newer\n"
+#~ " than their archive copies\n"
+#~ " --overwrite overwrite existing files when extracting\n"
+#~ " --no-overwrite-dir preserve metadata of existing directories\n"
+#~ " -U, --unlink-first remove each file prior to extracting over it\n"
+#~ " --recursive-unlink empty hierarchies prior to extracting directory\n"
+#~ " -S, --sparse handle sparse files efficiently\n"
+#~ " -O, --to-stdout extract files to standard output\n"
+#~ " -G, --incremental handle old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " handle new GNU-format incremental backup\n"
+#~ " --ignore-failed-read do not exit with nonzero on unreadable files\n"
+#~ " --occurrence[=NUM] process only the NUMth occurrence of each file in\n"
+#~ " the archive. This option is valid only in\n"
+#~ " conjunction with one of the subcommands --delete,\n"
+#~ " --diff, --extract or --list and when a list of\n"
+#~ " files is given either on the command line or\n"
+#~ " via -T option.\n"
+#~ " NUM defaults to 1.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Toimintovalinnat:\n"
+#~ " -W, --verify yritä varmistaa arkisto kirjoittamisen jälkeen\n"
+#~ " --remove-files poista tiedostot arkistoon lisäämisen jälkeen\n"
+#~ " -k, --keep-old-files älä korvaa olemassaolevia tiedostoja purettaessa\n"
+#~ " --keep-newer-files älä korvaa olemassaolevia tiedostoja, jotka ovat\n"
+#~ " arkistokopioitaan uudempia\n"
+#~ " --overwrite ylikirjoita olemassaolevat tiedostot purettaessa\n"
+#~ " --overwrite-dir ylikirjoita hakemiston metadata purettaessa\n"
+#~ " -U, --unlink-first poista jokainen tiedosto ennen sen päälle\n"
+#~ " purkamista\n"
+#~ " --recursive-unlink tyhjennä rakenne ennen hakemiston purkamista\n"
+#~ " -S, --sparse käsittele harvat tiedostot tehokkaasti\n"
+#~ " -O, --to-stdout pura tiedostot vakiotulosteeseen\n"
+#~ " -G, --incremental käsittele vanha GNU-muotoinen lisääntyvä\n"
+#~ " varmuuskopio\n"
+#~ " -g, --listed-incremental=TIEDOSTO\n"
+#~ " käsittele uusi GNU-muotoinen lisääntyvä\n"
+#~ " varmuuskopio\n"
+#~ " --ignore-failed-read jatka lukukelvottomista tiedostoista huolimatta\n"
+#~ " --occurrence[=N] käsittele vain kunkin tiedoston N:s esiintymä\n"
+#~ " arkistossa. Tämä valitsin on kelvollinen vain\n"
+#~ " yhdessä alikomennon --delete, --diff, --extract\n"
+#~ " tai --list, kun tiedostoluettelo on annettu\n"
+#~ " komentoriviltä tai valitsimella -T.\n"
+#~ " N on oletuksena 1.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --preserve same as both -p and -s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Tiedostojen ominaisuuksien käsittely:\n"
+#~ " --owner=NIMI pakota NIMI lisättyjen tiedostojen omistajaksi\n"
+#~ " --group=NIMI pakota NIMI lisättyjen tiedostojen ryhmäksi\n"
+#~ " --mode=MUUTOS pakota (symbolinen) tila MUUTOS lisätyille\n"
+#~ " tiedostoille\n"
+#~ " --atime-preserve älä muuta lisättyjen tiedostojen käyttöaikoja\n"
+#~ " -m, --modification-time älä pura tiedoston muutosaikaa\n"
+#~ " --same-owner yritä purkaa tiedostot samalla omistajuudella\n"
+#~ " --no-same-owner pura tiedostot itsenäsi\n"
+#~ " --numeric-owner käytä aina numeroita käyttäjän/ryhmän nimissä\n"
+#~ " -p, --same-permissions pura tiedostojen oikeudet\n"
+#~ " --no-same-permissions älä pura tiedostojen oikeuksia\n"
+#~ " --preserve-permissions sama kuin -p\n"
+#~ " -s, --same-order lajittele purettavat tiedostonimet vastaamaan\n"
+#~ " arkistoa\n"
+#~ " --preserve-order sama kuin -s\n"
+#~ " --preserve sama kuin -p ja -s yhdessä\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device selection and switching:\n"
+#~ " -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+#~ " --force-local archive file is local even if has a colon\n"
+#~ " --rmt-command=COMMAND use given rmt COMMAND instead of /etc/rmt\n"
+#~ " --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+#~ " -[0-7][lmh] specify drive and density\n"
+#~ " -M, --multi-volume create/list/extract multi-volume archive\n"
+#~ " -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+#~ " --new-volume-script=FILE same as -F FILE\n"
+#~ " --volno-file=FILE use/update the volume number in FILE\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Laitteen valinta ja vaihtaminen:\n"
+#~ " -f, --file=ARKISTO käytä arkistotiedostoa tai -laitetta ARKISTO\n"
+#~ " --force-local arkisto on paikallinen vaikka nimessä olisi\n"
+#~ " kaksoispiste\n"
+#~ " --rmt-command=KOMENTO käytä KOMENTOA /etc/rmt:n sijaan\n"
+#~ " --rsh-command=KOMENTO käytä KOMENTOa rsh:n sijaan\n"
+#~ " -[0-7][lmh] anna asema ja tiheys\n"
+#~ " -M, --multi-volume luo/listaa/pura moniosainen arkisto\n"
+#~ " -L, --tape-length=MÄÄRÄ vaihda nauhaa MÄÄRÄ × 1024 kirjoitetun tavun\n"
+#~ " jälkeen\n"
+#~ " -F, --info-script=TIED aja skripti joka nauhan lopussa (valitsin -M\n"
+#~ " tulee käyttöön)\n"
+#~ " --new-volume-script=TIED sama kuin -F TIED\n"
+#~ " --volno-file=TIED käytä/päivitä arkiston osan numero TIEDostossa\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device blocking:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+#~ " --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+#~ " -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+#~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Laitteen lohkot:\n"
+#~ " -b, --blocking-factor=LOHKOT LOHKOT × 512 tavua tietuetta kohti\n"
+#~ " --record-size=MÄÄRÄ MÄÄRÄ tavua tietuetta kohti, 512:n monikerta\n"
+#~ " -i, --ignore-zeros älä huomioi nollattuja lohkoja arkistossa\n"
+#~ " (merkitsee tiedoston loppua)\n"
+#~ " -B, --read-full-records suorita lohkominen uudelleen luettaessa\n"
+#~ " (4.2BSD-putkia varten)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " --format=FMTNAME create archive of the given format.\n"
+#~ " FMTNAME is one of the following:\n"
+#~ " v7 old V7 tar format\n"
+#~ " oldgnu GNU format as per tar <= 1.12\n"
+#~ " gnu GNU tar 1.13 format\n"
+#~ " ustar POSIX 1003.1-1988 (ustar) format\n"
+#~ " posix POSIX 1003.1-2001 (pax) format\n"
+#~ " --old-archive, --portability same as --format=v7\n"
+#~ " --posix same as --format=posix\n"
+#~ " --pax-option keyword[[:]=value][,keyword[[:]=value], ...]\n"
+#~ " control pax keywords\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -d)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Arkistomuodon valinta:\n"
+#~ " --format=MUOTO luo annetun muotoinen arkisto.\n"
+#~ " MUOTO on jokin seuraavista:\n"
+#~ " v7 vanha V7-tar-muoto\n"
+#~ " oldgnu GNU-muoto tar-versioilla <= 1.12\n"
+#~ " gnu GNU tar 1.13 -muoto\n"
+#~ " ustar POSIX 1003.1-1988 (ustar) -muoto\n"
+#~ " posix POSIX 1003.1-2001 (pax) -muoto\n"
+#~ " --old-archive, --portability sama kuin --format=v7\n"
+#~ " --posix sama kuin --format=posix\n"
+#~ " -pax-option avainsana[[:]=arvo][,avainsana[[:]=arvo], ...]\n"
+#~ " määrittele pax-avainsanoja\n"
+#~ " -V, --label=NIMI luo arkisto nimiöllä NIMI\n"
+#~ " HAHMO listattaessa/purettaessa jokeri-HAHMO\n"
+#~ " -j, --bzip2 ohjaa arkisto bzip2-ohjelman läpi\n"
+#~ " -z, --gzip, --ungzip ohjaa arkisto gzip-ohjelman läpi\n"
+#~ " -Z, --compress, --uncompress ohjaa arkisto compress-ohjelman läpi\n"
+#~ " --use-compress-program=OHJ ohjaa OHJelman läpi (on hyväksyttävä -d)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -K, --starting-file=NAME begin at file NAME in the archive\n"
+#~ " --strip-path=NUM strip NUM leading components from file names\n"
+#~ " before extraction\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Paikallisten tiedostojen valinta:\n"
+#~ " -C, --directory=HAK siirry hakemistoon HAK\n"
+#~ " -T, --files-from=TIEDOSTO hae purettavat/lisättävät nimet TIEDOSTOsta\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=HAHMO jätä pois HAHMOn mukaiset tiedostot\n"
+#~ " -X, --exclude-from=TIEDOSTO jätä pois TIEDOSTOssa listatut hahmot\n"
+#~ " --anchored poisjättöhahmoja verrataan nimen alkuun (oletus)\n"
+#~ " --no-anchored poisjättöhahmoja verrataan jokaisen ”/” jälkeen\n"
+#~ " --ignore-case poisjättäminen ei huomioi kirjainkokoa\n"
+#~ " --no-ignore-case poisjättäminen huomioi kirjainkoon (oletus)\n"
+#~ " --wildcards poisjättöhahmot käyttävät jokerimerkkejä (oletus)\n"
+#~ " --no-wildcards poisjättöhahmot ovat tavallisia merkkijonoja\n"
+#~ " --wildcards-match-slash poisjättöhahmon jokerimerkit vastaavat merkkiä ”/”\n"
+#~ " --no-wildcards-match-slash poisjättöhahmon jokerimerkit eivät vastaa\n"
+#~ " merkkiä ”/”\n"
+#~ " -P, --absolute-names älä poista merkkiä ”/” tiedostonimien alusta\n"
+#~ " -h, --dereference lisää symlinkin kohdetiedostot, ei linkkejä\n"
+#~ " --no-recursion estä automaattinen eteneminen alihakemistoihin\n"
+#~ " -l, --one-file-system pysy nykyisessä tied.järjestelmässä arkistoa\n"
+#~ " luotaessa\n"
+#~ " -K, --starting-file=NIMI aloita arkiston tiedostosta NIMI\n"
+#~ " --strip-path=MÄÄRÄ poista MÄÄRÄn verran osia tiedostonimien alusta\n"
+#~ " ennen purkamista\n"
+
+#~ msgid ""
+#~ " -N, --newer=DATE-OR-FILE only store files newer than DATE-OR-FILE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed only\n"
+#~ " --after-date=DATE same as -N\n"
+#~ msgstr ""
+#~ " -N, --newer=PÄIVÄYS-TAI-TIED tallenna vain PÄIVÄYS-TAI-TIEDostoa uudemmat tiedostot\n"
+#~ " --newer-mtime=PÄIVÄYS vertaa vain tiedoston muutosaikaa\n"
+#~ " --after-date=PÄIVÄYS sama kuin -N\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --suffix=SUFFIX backup before removal, override usual suffix\n"
+#~ msgstr ""
+#~ " --backup[=HALLINTA] varmuuskopiointi ennen poistoa, valitse\n"
+#~ " versionhallinta\n"
+#~ " --suffix=JÄLKILIITE varmuuskopiointi ennen poistoa, älä käytä\n"
+#~ " tavanomaista jälkiliitettä\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --check-links print a message if not all links are dumped\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " --index-file=FILE send verbose output to FILE\n"
+#~ " --utc print file modification dates in UTC\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --confirmation same as -w\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Tietoja antava tuloste:\n"
+#~ " --help näytä tämä ohje ja poistu\n"
+#~ " --version näytä tar-ohjelman versionumero ja poistu\n"
+#~ " -v, --verbose listaa käsiteltävät tiedostot\n"
+#~ " --checkpoint näytä hakemistojen nimet luettaessa arkistoa\n"
+#~ " --check-links näytä viesti, ellei kaikkia linkkejä lisätty\n"
+#~ " --totals näytä kirj. tavujen yhteismäärä luotaessa arkistoa\n"
+#~ " --index-file=TIED ohjaa monisanainen tuloste TIEDostoon\n"
+#~ " --utc näytä tiedostojen muutosajat UTC-aikoina\n"
+#~ " -R, --block-number näytä lohkonumero arkistossa viestien yhteydessä\n"
+#~ " -w, --interactive kysy varmistusta jokaiselle toiminnolle\n"
+#~ " --confirmation sama kuin -w\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Compatibility options:\n"
+#~ " -o when creating, same as --old-archive\n"
+#~ " when extracting, same as --no-same-owner\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Yhteensopivuusvalitsimet:\n"
+#~ " -o luotaessa sama kuin --old-archive\n"
+#~ " purettaessa sama kuin --no-same-owner\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*This* `tar' defaults to `--format=%s -f%s -b%d'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "ARKISTO voi olla TIEDOSTO, ISÄNTÄ:TIEDOSTO tai KÄYTTÄJÄ@ISÄNTÄ:TIEDOSTO;\n"
+#~ "PÄIVÄYS voi olla tekstimuotoinen, tai merkillä ”/” tai ”.” alkava\n"
+#~ "tiedoston nimi, jolloin käytetään tiedoston päiväystä.\n"
+#~ "*Tämä* ”tar” käyttää oletuksena ”--format=%s -f %s -b%d”.\n"
+
+#~ msgid "Written by John Gilmore and Jay Fenlason."
+#~ msgstr "Kirjoittaneet John Gilmore ja Jay Fenlason."
+
+#~ msgid "Cannot close"
+#~ msgstr "Ei voi sulkea"
+
+#~ msgid "Cannot dup"
+#~ msgstr "Tiedostokahvaa ei voi kopioida"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "Pakattuja tai etäarkistoja ei voi käyttää"
+
+#~ msgid "tar (child)"
+#~ msgstr "tar (lapsiprosessi)"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (lapsenlapsiprosessi)"
+
+#~ msgid "Child returned status %d"
+#~ msgstr "Lapsiprosessi palautti tilan %d"
+
+#~ msgid "Member names contain `..'"
+#~ msgstr "Tiedostonimet sisältävät ”..”"
+
+#~ msgid "%s: Member name contains `..'"
+#~ msgstr "%s: Tiedostonimi sisältää ”..”"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -o, --old-archive, --portability write a V7 format archive\n"
+#~ " --posix write a POSIX format archive\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -d)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Arkiston muodon valinta:\n"
+#~ " -V, --label=NIMI luo arkisto nimiöllä NIMI\n"
+#~ " HAHMO listattaessa/purettaessa jokeri-HAHMO\n"
+#~ " -o, --old-archive, --portability kirjoita V7-muodon arkisto\n"
+#~ " --posix kirjoita POSIX-muotoinen arkisto\n"
+#~ " -j, --bzip2 ohjaa arkisto bzip2-ohjelman läpi\n"
+#~ " -z, --gzip, --ungzip ohjaa arkisto gzip-ohjelman läpi\n"
+#~ " -Z, --compress, --uncompress ohjaa arkisto compress-ohjelman läpi\n"
+#~ " --use-compress-program=OHJ ohjaa OHJelman läpi (on hyväksyttävä -d)\n"
+
+#~ msgid "Obsolete option, now implied by --blocking-factor"
+#~ msgstr "Vanhentunut valitsin, seuraa nyt valitsimesta --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --blocking-factor"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --read-full-records"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --read-full-records"
+
+#~ msgid "Obsolete option name replaced by --touch"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --touch"
+
+#~ msgid "Obsolete option name replaced by --absolute-names"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --absolute-names"
+
+#~ msgid "Obsolete option name replaced by --block-number"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --block-number"
+
+#~ msgid "Obsolete option name replaced by --backup"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --backup"
+
+#~ msgid ""
+#~ "If a long option shows an argument as mandatory, then it is mandatory\n"
+#~ "for the equivalent short option also.\n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH of generated file\n"
+#~ " -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+#~ " --help display this help and exit\n"
+#~ " --version output version information and exit\n"
+#~ msgstr ""
+#~ "Jos argumentti on pakollinen pitkän valitsimen kanssa, se on pakollinen\n"
+#~ "myös vastaavan lyhyen valitsimen kanssa.\n"
+#~ "\n"
+#~ " -l, --file-length=PITUUS luotavan tiedoston PITUUS\n"
+#~ " -p, --pattern=HAHMO HAHMO on ”default” tai ”zeros”\n"
+#~ " --help näytä tämä ohje ja poistu\n"
+#~ " --version näytä versiotiedot ja poistu\n"
+
+#~ msgid "Written by F. Pinard."
+#~ msgstr "Kirjoittanut François Pinard."
diff --git a/po/.reference/fi.s1 b/po/.reference/fi.s1
new file mode 100644
index 00000000..b43a1503
--- /dev/null
+++ b/po/.reference/fi.s1
@@ -0,0 +1 @@
+302225412d763018c4664077cd56a5372069dca2 -
diff --git a/po/.reference/fr.po b/po/.reference/fr.po
new file mode 100644
index 00000000..fc60b496
--- /dev/null
+++ b/po/.reference/fr.po
@@ -0,0 +1,2694 @@
+# Messages français pour GNU concernant tar.
+# Copyright © 2010 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, 2009, 2010, 2011
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar-1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-13 12:51+0100\n"
+"Last-Translator: Christophe Combelles <ccomb@free.fr>\n"
+"Language-Team: French <traduc@traduc.org>\n"
+"Language: fr\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "Argument %s non valable pour %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "Argument %s ambigu pour %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Les arguments valables sont :"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s : le paramètre ARGP_HELP_FMT est inconnu"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Déchet dans ARGP_HELP_FMT : %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Les arguments obligatoires ou facultatifs pour les formes longues des options le sont également pour les formes courtes qui leur correspondent."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Utilisation :"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " ou : "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [OPTION...]"
+
+#: gnu/argp-help.c:1684
+#, 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"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Rapportez toute anomalie à %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Erreur système inconnue"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "Afficher cette aide-mémoire"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "Afficher un court mode d'emploi"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NOM"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "définit le nom du programme"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SECS"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "Bloquer pendant SECS secondes (3600 par défaut)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "Afficher la version du programme"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAM ERROR) Aucune version connue !?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s : trop d'arguments\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAM ERROR) L'option devrait avoir été reconnue !?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "erreur d'écriture"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s : l'option « %s » est ambiguë\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s : l'option « --%s » n'a pas d'argument\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, 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"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s : l'option « --%s » doit avoir un argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s : l'option « --%s » est inconnue\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s : l'option « %c%s » est inconnue\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s : l'option -- '%c' n'est pas valable\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s : l'option -- '%c' a besoin d'un argument\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s : l'option « -W %s » est ambiguë\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, 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"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s : l'option « -W %s » doit avoir un argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "mémoire épuisée"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "Impossible d'enregistrer le répertoire de travail actuel"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "Impossible de revenir au répertoire de travail initial"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "« "
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr " »"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[oO]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Packagé par %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Packagé par %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/gpl.html>\n"
+"Ceci est un logiciel libre : vous êtes libre de le modifier et de le redistribuer.\n"
+"Il est fourni SANS GARANTIE, dans la mesure de ce que permet la loi.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Écrit par %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Écrit par %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s et d'autres personnes.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Signalez toute anomalie à : %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Signalez les anomalies de %s à : %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Page d'accueil de %s : <%s>\n"
+
+#: gnu/version-etc.c:255
+#, 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
+msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgstr "Aide générale sur l'utilisation des 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 : %s impossible"
+
+#. 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 : %s impossible"
+
+#: 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Suppression de « %s » au début des noms des membres"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Suppression de « %s » au début des liens physiques"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Remplacement des noms vides par « . » pour les membres"
+
+#: lib/paxnames.c:155
+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 "Impossible de se connecter à %s : échec de résolution"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Impossible de lancer un interpréteur de commandes distant"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Direction de positionnement hors plage"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Direction de recherche non valable"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Décalage de recherche non valable"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Positionnement relatif hors plage"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Nombre d'octets non valable"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Nombre d'octets hors plage"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Fin de fichier prématurée"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Code d'opération non valable"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Opération non prise en charge"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Arguments inattendus"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Manipule un lecteur de cartouches en acceptant des commandes d'un processus distant"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NOMBRE"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "définit le niveau de débogage"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FICHIER"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "définit le nom de fichier de sortie de débogage"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "impossible d'ouvrir %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "trop d'arguments"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Commande rejetée"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Ceci ne ressemble pas à une archive de type « tar »"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Nombre total d'octets écrits"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Nombre total d'octets lus"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Nombre total d'octets effacés : %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(tube)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Valeur incorrecte pour « record_size »"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Aucun nom d'archive donné"
+
+#: src/buffer.c:689
+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:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "L'archive est compressée. Utilisez l'option %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Une archive compressée ne peut pas être mise à jour"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Début de la cartouche atteinte ; arrêt du programme."
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Trop d'erreurs, arrêt du programme."
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek ne s'est pas arrêté à une limite d'enregistrement"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s : contient un numéro de volume non valable"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Débordement du numéro de volume"
+
+#: src/buffer.c:1123
+#, 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:1129
+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:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "AVERTISSEMENT : l'archive est incomplète"
+
+#: src/buffer.c:1148
+#, 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 nom Donner un nouveau nom de fichier pour les prochains volumes\n"
+" q Arrêter tar\n"
+" y ou newline Continuer le traitement\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Générer un sous-shell\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Afficher cette liste\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Pas de nouveau volume ; fin du traitement.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Nom de fichier non spécifié. Essaye encore :).\n"
+
+#: src/buffer.c:1207
+#, 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:1258
+#, c-format
+msgid "%s command failed"
+msgstr "Échec de la commande %s"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "La suite de %s n'est pas sur ce volume."
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s a une taille incorrecte (%s != %s + %s)."
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Ce volume est hors séquence (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Archive non étiquetée pour correspondre à %s."
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Le volume %s ne correspond pas à %s."
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s : nom de fichier tronqué, car trop long pour être stocké dans un en-tête GNU multi-volumes"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "l'écriture ne s'est pas arrêté sur une limite de bloc"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Les contenus sont différents."
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Fin prématurée rencontrée dans l'archive."
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Le type de fichier est différent."
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Le mode est différent."
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "L'UID est différent."
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Le GID est différent."
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "La date de modification est différente."
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "La taille est différente."
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "N'est pas lié à %s."
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Le lien symbolique est différent."
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Le numéro de périphérique est différent."
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Vérification "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s : type de fichier inconnu « %c », recherche de différence comme pour un fichier normal"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "L'archive contient des noms de fichiers dont le préfixe a été enlevé"
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "L'archive contient des noms de fichiers transformés"
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "La vérification peut échouer lors de la localisation des fichier originaux."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Bloc zéro solitaire repéré à %s"
+
+#: src/create.c:72
+#, 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:261
+#, 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:267
+#, 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:327
+msgid "Generating negative octal headers"
+msgstr "Génération d'en-têtes octaux négatifs"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s : le nom de fichier est trop long (%d max) ; fichier non archivé"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s : le nom de fichier est trop long (ne peut être scindé) ; fichier non archivé"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s : le nom du lien est trop long ; fichier non archivé"
+
+#: src/create.c:1064
+#, 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "contenu non archivé"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s : type de fichier inconnu ; fichier ignoré"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Liens manquants vers %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s : le fichier n'est pas modifié ; fichier non archivé"
+
+#: src/create.c:1699
+#, 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:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "répertoire non archivé"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s : fichier modifié pendant sa lecture"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s : socket ignorée"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s : porte ignorée"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "On saute à l'en-tête suivant"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Suppression d'un « non en-tête » de l'archive"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s : l'horodatage %s est trop vieux pour être plausible"
+
+#: src/extract.c:295
+#, 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:475
+#, 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:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Extraction des fichiers contigus comme des fichiers réguliers"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Tentative d'extraction des liens symboliques comme des liens physiques"
+
+#: src/extract.c:1365
+#, 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:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "En-tête à nom long inattendu"
+
+#: src/extract.c:1379
+#, 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:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Le %s actuel est au moins aussi récent"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s : impossible d'archiver ce fichier."
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Impossible de renommer %s en %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s : le répertoire a été renommé depuis %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s : le répertoire a été renommé."
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s : le répertoire est nouveau."
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Horodatage non valable"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Temps de modification non valable (secondes)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Temps de modification non valable (nanosecondes)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Numéro de périphérique non valable"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Numéro d'inode non valable"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Champ trop long rencontré pendant la lecture du fichier d'instantané"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Erreur de lecture du fichier d'instantané"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Fin prématurée du fichier d'instantané"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Valeur de champ inattendue dans le fichier d'instantané"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Terminaison de champ manquante"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Mauvais format de fichier incrémental"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Version non prise en charge pour le format incrémental : %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "dumpdir incorrect : « %c » était attendu mais %#3o a été trouvé"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "dumpdir incorrect : « X » en double"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "dumpdir incorrect : nom vide dans « R »"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "dumpdir incorrect : « T » non précédé de « R »"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "dumpdir incorrect : nom vide dans « T »"
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "dumpdir incorrect : « X » n'a jamais été utilisé"
+
+#: src/incremen.c:1609
+#, 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:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s : répertoire non purgé : impossible d'évaluer par stat()"
+
+#: src/incremen.c:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s : suppression de %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s : suppression impossible"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s : omis"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloc %s : ** Bloc de NULs **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloc %s : ** Fin de fichier **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "bloc %s : "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "La valeur octale de l'archive %.*s est en dehors de la plage de %s ; complément à 2 supposé"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "L'archive contient des en-têtes obsolètes en base 64."
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "L'archive contient %.*s alors qu'une valeur numérique de type %s est attendue."
+
+#. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
+#: src/list.c:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " lien vers %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " type de fichier inconnu %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Lien long--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nom long--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--En-tête de volume--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Suite à l'octet %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Création du répertoire :"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Impossible de connaître le répertoire de travail"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s renommé en %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s : impossible de renommer en %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "%s finalement renommé en %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s : fichier supprimé avant d'avoir été lu"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "processus enfant"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "canal inter-processus"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Caractères de correspondance de motif utilisé dans les noms de fichiers."
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Utilisez « --wildcards » pour activer la correspondance de motif ou « --no-wildcards » pour supprimer cet avertissement"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s : non trouvé dans l'archive"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s : occurence requise non trouvée dans l'archive"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Mauvaise correspondance d'étiquette d'archive"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "L'utilisation de l'option -C à l'intérieur de la liste de fichiers n'est pas permise avec --listed-incremental"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Une seule option -C est autorisée 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s : format d'archive non valable"
+
+#: 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:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Type de protection de caractères inconnu « %s ». Essayez « %s --quoting-style=help » pour avoir une liste."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"Le programme « tar » de GNU permet de sauvegarder une grande quantité de fichiers dans une unique archive sur disque ou sur cartouche et de récupérer ces fichiers depuis l'archive de manière individuelle.\n"
+"\n"
+"Exemples :\n"
+" tar -cf archive.tar foo bar # Crée le fichier archive.tar à partir de foo et bar.\n"
+" tar -tvf archive.tar # Liste tous les fichiers de archive.tar de manière détaillée.\n"
+" tar -xf archive.tar # Extrait tous les fichiers de archive.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Le suffixe de sauvegarde est « ~ », à moins qu'il ne soit défini avec « --suffix » ou SIMPLE_BACKUP_SUFFIX.\n"
+"Le contrôle de version peut être défini avec « --backup » ou VERSION_CONTROL, les valeurs sont :\n"
+"\n"
+" none, off Ne jamais faire de sauvegarde.\n"
+" t, numbered Faire des sauvegardes numérotées.\n"
+" 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:387
+msgid "Main operation mode:"
+msgstr "Mode d'opération principal :"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "Afficher le contenu de l'archive"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "Extraire les fichiers de l'archive"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "Créer une nouvelle archive"
+
+#: src/tar.c:397
+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:400
+msgid "append files to the end of an archive"
+msgstr "Ajouter des fichiers à la fin de l'archive"
+
+#: src/tar.c:402
+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:404
+msgid "append tar files to an archive"
+msgstr "Ajouter des fichiers tar à une archive"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "Effacer de l'archive (pas sur les bandes magnétiques !)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "Tester l'étiquette du volume d'archive et terminer"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Modificateurs d'opération :"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "Économiser efficacement l'espace dans les fichiers dispersés (fichiers à trous)"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJEUR[.MINEUR]"
+
+#: src/tar.c:419
+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:421
+msgid "handle old GNU-format incremental backup"
+msgstr "Prendre en charge les sauvegardes incrémentales à l'ancien format GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "Prendre en charge les sauvegardes incrémentales au nouveau format GNU"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "niveau de vidage d'archive incrémentale au nouveau format GNU"
+
+#: src/tar.c:427
+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:429
+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 "Traiter seulement l'occurrence n°NOMBRE de chaque fichier dans l'archive ; cette option n'est valable qu'accompagnée de l'une des sous-commandes « --delete », « --diff », « --extract » ou « --list » et lorsqu'une liste de fichiers est fournie soit sur la ligne de commande, soit avec l'option « -T ». NOMBRE vaut 1 par défaut."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "L'archive peut être parcourue"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "L'archive ne peut pas être parcourue"
+
+#: src/tar.c:439
+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:442
+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:448
+msgid "Overwrite control:"
+msgstr "Contrôle de l'écrasement :"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "Tenter de vérifier l'archive après écriture"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "Supprimer les fichiers après les avoir ajoutés à l'archive"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "Ne pas écraser les fichiers préexistants lors de l'extraction"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "Écraser les fichiers préexistants lors de l'extraction"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "Effacer chaque fichier préexistant avant l'extraction"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "Vider les hiérarchies avant d'extraire les répertoires"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "Préserver les métadonnées des répertoires préexistants"
+
+#: src/tar.c:467
+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:473
+msgid "Select output stream:"
+msgstr "Choix du flux de sortie :"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "Extraire les fichiers vers la sortie standard"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "COMMANDE"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "Renvoyer par tube les fichiers extraits vers un autre programme"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "Ignorer les codes de retour des processus enfants"
+
+#: src/tar.c:482
+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:487
+msgid "Handling of file attributes:"
+msgstr "Traitement des attributs de fichiers :"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "Utiliser NOM comme propriétaire des fichiers ajoutés"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "Utiliser NOM comme groupe des fichiers ajoutés"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATE-OU-FICHIER"
+
+#: src/tar.c:494
+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:495
+msgid "CHANGES"
+msgstr "CHANGEMENTS"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "Utiliser les CHANGEMENTS de mode (symboliques) pour les fichiers ajoutés"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "MÉTHODE"
+
+#: src/tar.c:499
+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 "Préserve la date d'accès des fichiers archivés, soit en la restaurant après lecture (MÉTHODE = « replace » par défaut) ou en ne définissant pas les dates initialement (MÉTHODE = « system »)"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "Ne pas extraire la date de modification du fichier"
+
+#: src/tar.c:505
+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 que dans l'archive (par défaut pour le superutilisateur)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "S'approprier les fichiers lors de l'extraction (par défaut pour les utilisateurs ordinaires)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "Toujours utiliser les valeurs numériques des utilisateurs/groupes"
+
+#: src/tar.c:511
+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:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "Appliquer l'umask de l'utilisateur lors de l'extraction des permissions (par défaut pour les utilisateurs normaux)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "Trier les noms à extraire dans le même ordre que l'archive"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "Équivalent à « -p -s » à la fois"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "Reporter à la fin de l'extraction le changement des dates de modification et des permissions des répertoires extraits"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "Annule l'effet de l'option « --delay-directory-restore »"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Sélection et option de périphérique :"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIVE"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "Utiliser le fichier ou le périphérique ARCHIVE"
+
+#: src/tar.c:535
+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:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "Utiliser la COMMANDE rmt fournie au lieu de rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "Utiliser la COMMANDE distante à la place de rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "Spécifier le lecteur et la densité"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "Créer/lister/extraire une archive multi-volumes"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "Changer de cartouche après avoir écrit NOMBRE x 1024 octets"
+
+#: src/tar.c:561
+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:564
+msgid "use/update the volume number in FILE"
+msgstr "Utiliser/mettre à jour le numéro de volume dans le FICHIER"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blocs du périphérique :"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCS"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOCS x 512 octets par enregistrement"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "NOMBRE d'octets par enregistrement (multiple de 512)"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "Ignorer les blocs de zéros dans l'archive (càd EOF)"
+
+#: src/tar.c:578
+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:583
+msgid "Archive format selection:"
+msgstr "Sélection du format d'archive :"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "Créer l'archive au format désiré."
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT peut prendre une des valeurs suivantes :"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "Vieux format tar V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "Format GNU issu de tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "Format GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "Format POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "Format POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "Identique à pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "Identique à « --format=v7 »"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "Identique à « --format=posix »"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "mot_clé[[:]=valeur][,mot_clé[[:]=valeur]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "Mots-clés de contrôle pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXTE"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "Créer l'archive en attribuant le TEXTE au nom de volume. À la lecture ou à l'extraction, utiliser le TEXTE comme motif de correspondance (glob) au nom de volume."
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Options de compression :"
+
+#: src/tar.c:616
+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:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "Ne pas utiliser l'extension du fichier d'archive pour déterminer le programme de compression"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "Filtrer à travers le PROG (doit accepter l'option « -d »)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Sélection des fichiers locaux :"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "RÉP"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "Utiliser RÉP comme répertoire de travail"
+
+#: src/tar.c:644
+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:646
+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:648
+msgid "disable the effect of the previous --null option"
+msgstr "désactive l'effet de l'option --null précédente"
+
+#: src/tar.c:650
+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:652
+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:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MOTIF"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "Exclure les fichiers correspondant au MOTIF"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "Exclure les motifs listés dans le FICHIER"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "Exclure le contenu des répertoires contenant CACHEDIR.TAG, sauf le fichier de tag lui-même"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "Tout exclure dans les répertoires contenant CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "Exclure les répertoires contenant CACHEDIR.TAG"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "Tout exclure dans les répertoires contenant le FICHIER"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "Exclure les répertoires contenant le FICHIER"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "Exclure les répertoires de contrôle de version (CVS, .svn, etc.)"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "exclure les fichiers de sauvegarde et de verrou"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "Empêcher la descente automatique dans les sous-répertoires"
+
+#: src/tar.c:679
+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:681
+msgid "recurse into directories (default)"
+msgstr "Parcourir les sous-répertoires de manière récursive (par défaut)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "Ne pas enlever le « / » au début des noms de fichiers"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "NOM-DE-MEMBRE"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "Débuter au NOM-DE-MEMBRE dans l'archive"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "Stocker seulement les fichiers plus récents que DATE-OU-FICHIER"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATE"
+
+#: src/tar.c:694
+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:695
+msgid "CONTROL"
+msgstr "CONTRÔLE"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "Faire une copie de sauvegarde avant suppression, choisir le CONTRÔLE de version"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "CHAÎNE"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "Faire une copie de sauvegarde avant suppression, en remplaçant le suffixe habituel (« ~ » sauf s'il est définit par la variable d'environnement SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Transformation des noms de fichiers :"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "EXPRESSION"
+
+#: src/tar.c:708
+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:714
+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:717
+msgid "ignore case"
+msgstr "Ignorer la casse (majuscules/minuscules)"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "Les motifs doivent correspondre au début des noms de fichiers"
+
+#: src/tar.c:721
+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:723
+msgid "case sensitive matching (default)"
+msgstr "Correspondance sensible à la casse (comportement par défaut)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "Utiliser des caractères de correspondance (par défaut pour l'exclusion)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "Correspondance exacte de chaîne"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "« / » ne correspond à aucun caractère de correspondance"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "« / » peut correspondre à un caractère de correspondance (par défaut pour l'exclusion)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Options d'affichage :"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "Afficher de manière détaillée les fichiers traités"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "MOTCLÉ"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "Contrôle d'avertissement"
+
+#: src/tar.c:743
+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:745
+msgid "ACTION"
+msgstr "ACTION"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "exécuter l'ACTION à chaque point de contrôle"
+
+#: src/tar.c:749
+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:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "Afficher le nombre total d'octets après traitement de l'archive. Avec un argument, afficher ce nombre si le SIGNAL est émis. Les signaux permis sont : SIGHUP, SIGQUIT, SIGINT, SIGUSR1 et SIGUSR2. Les noms sans préfixe « SIG » sont aussi acceptés"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "Afficher les dates de modification de fichier en UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "afficher l'heure du fichier en pleine résolution"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "Envoyer la sortie détaillée vers le FICHIER"
+
+#: src/tar.c:762
+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:764
+msgid "ask for confirmation for every action"
+msgstr "Demander confirmation pour chaque action"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "Afficher les paramètres par défaut de tar"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+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:771
+msgid "show file or archive names after transformation"
+msgstr "Afficher les noms des fichiers ou des archives après transformation"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STYLE"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "Protéger aussi les caractères faisant partie de la CHAÎNE"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "Enlever la protection des caractères faisant partie de la CHAÎNE"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Options de compatibilité :"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "Lors de la création, identique à « --old-archive ». Lors de l'extraction, identique à « --no-same-owner »"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Autres options :"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "Désactiver certaines options potentiellement néfastes"
+
+#: src/tar.c:930
+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 » ou « --test-label »"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Options de compression non compatibles entre elles"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Type de signal inconnu : %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Fichier d'échantillon de date non trouvé"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Remplacement par %s du format de date inconnu %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Option %s : date « %s » traitée comme %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s : la liste de fichiers est déjà lue"
+
+#: src/tar.c:1201
+#, 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:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "Filtrer l'archive à travers %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Les arguments valables pour l'option « --quoting-style » sont :"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Les valeurs par défaut de *ce* tar sont :\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Facteur de bloc non valable"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Longueur de cartouche non valable"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Mauvaise valeur pour le niveau incrémental"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Plus d'une date seuil"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Version de la dispersion non valable"
+
+#: src/tar.c:1718
+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:1743
+msgid "--checkpoint value is not an integer"
+msgstr "la valeur de « --checkpoint » n'est pas un entier"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Groupe non valable"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Mode non valable donné en option"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Nombre non valable"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Propriétaire non valable"
+
+#: src/tar.c:1964
+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:1975
+msgid "Invalid record size"
+msgstr "Taille d'enregistrement non valable"
+
+#: src/tar.c:1978
+#, 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:2019
+msgid "Invalid number of elements"
+msgstr "Nombre d'éléments incorrect"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Une seule option « --to-command » est permise"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Argument de densité incorrect : %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Densité inconnue : « %c »"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[FICHIER]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "L'ancienne option « %c » a besoin d'un argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence n'a pas de sens sans une liste de fichiers"
+
+#: src/tar.c:2380
+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:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Les fichiers d'archives multiples ont besoin de l'option « -M »"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Impossible de combiner « --listed-incremental » avec « --newer »"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level n'a aucun sens sans --listed-incremental"
+
+#: src/tar.c:2423
+#, 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'étiquette du volume est trop longue (la limite est %lu octet)"
+msgstr[1] "%s: l'étiquette du volume est trop longue (la limite est %lu octets)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Impossible de vérifier des archives multi-volumes"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Impossible de vérifier des archives compressées"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Impossible d'utiliser des archives multi-volumes compressées"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Impossible de concaténer des archives compressées"
+
+#: src/tar.c:2462
+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:2492
+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:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order n'est pas compatible avec --listed-incremental"
+
+#: src/tar.c:2506
+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:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Les options « -Aru » sont incompatibles avec « -f - »"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Vous devez choisir une option parmi « -Acdtrux » ou « --test-label »"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Arrêt avec code d'échec à cause des erreurs précédentes"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, 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:174
+msgid "Time stamp is out of allowed range"
+msgstr "L'horodatage est en dehors de la plage permise"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Le motif %s ne peut être utilisé"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Le mot clé %s ne peut pas être surdéfini"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "En-tête étendu incorrect : longueur manquante"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "La longueur de l'en-tête étendu est hors plage"
+
+#: src/xheader.c:557
+#, 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:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "En-tête étendu incorrect : espace blanche manquante après la longueur"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "En-tête étendu incorrect : signe d'égalité manquant"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "En-tête étendu incorrect : retour à la ligne manquant"
+
+#: src/xheader.c:621
+#, 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:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "La paire mot clé/valeur générée est trop longue (keyword=%s, length=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "En-tête étendu incorrect : %s=%s non valable"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "En-tête étendu incorrect : %s=%s en trop"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, 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"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s : délai d'expiration non valable"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s : action de point de contrôle inconnue"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "écriture"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "lecture"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Point de contrôle d'écriture %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Point de contrôle de lecture %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile permet de manipuler des fichiers de données pour la suite de tests GNU paxutils.\n"
+"Les options sont :\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Options de création de fichier :"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "TAILLE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Créer le fichier à la TAILLE donnée"
+
+#: tests/genfile.c:131
+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:133
+msgid "Read file names from FILE"
+msgstr "Lire les noms de fichier depuis le FICHIER"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T permet de lire les noms terminés par un NULL"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Taille d'un bloc pour le fichier dispersé"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "DÉCALAGE"
+
+#: tests/genfile.c:145
+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:151
+msgid "File statistics options:"
+msgstr "Options des statistiques de fichiers :"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Options d'exécution synchrone :"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPTION"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Exécuter les ARGS. Utile avec « --checkpoint » et l'une des options « --cut », « --append », « --touch » ou « --unlink »"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Définir la date pour la prochaine option « --touch »"
+
+#: tests/genfile.c:173
+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:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+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:185
+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:188
+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:191
+msgid "Execute COMMAND"
+msgstr "Exécuter la COMMANDE"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Supprimer FICHIER"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Taille non valable : %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Nombre en dehors de la plage permise : %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Taille négative : %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "La fonction stat(%s) a échoué"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "taille de fichier demandée : %lu, taille réelle : %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "le fichier créé n'est pas dispersé"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Erreur à la lecture du nombre près de « %s »"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Format de date inconnu"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGS...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "Impossible d'ouvrir « %s »"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "Impossible à parcourir"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "Le nom de fichier contient un caractère nul"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "Masque incorrect (près de « %s »)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Champ inconnu « %s »"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "Impossible de définir la date de « %s »"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "Impossible de supprimer « %s »"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "La commande s'est terminée correctement\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "La commande a échoué avec le code %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "La commande s'est terminée sur le signal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "La commande s'est interrompue sur le signal %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "La commande a généré un core dump\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "La commande s'est terminée\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat nécessite un nom de fichier"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s : Répertoire supprimé avant d'avoir été lu"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Le répertoire de travail ne peut pas être sauvegardé"
+
+#~ 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 » ?"
+
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "Des erreurs ont provoqué l'arrêt du programme"
+
+#~ msgid "[.]NUMBER"
+#~ msgstr "[.]NOMBRE"
diff --git a/po/.reference/fr.s1 b/po/.reference/fr.s1
new file mode 100644
index 00000000..312c9b33
--- /dev/null
+++ b/po/.reference/fr.s1
@@ -0,0 +1 @@
+c8d4f8d6a72f4a97cc07ecbcf7aad39209327868 -
diff --git a/po/.reference/ga.po b/po/.reference/ga.po
new file mode 100644
index 00000000..0365b93a
--- /dev/null
+++ b/po/.reference/ga.po
@@ -0,0 +1,2724 @@
+# 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, 2009.
+msgid ""
+msgstr ""
+"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-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"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"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
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argóint neamhbhailí %s chun %s"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argóint dhébhríoch %s chun %s"
+
+#: lib/argmatch.c:153
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Na hargóintí bailí:"
+
+#: lib/argp-help.c:147
+#, 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
+#, 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
+#, 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
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Paraiméadar anaithnid ARGP_HELP_FMT"
+
+#: lib/argp-help.c:247
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Bruscar i ARGP_HELP_FMT: %s"
+
+#: lib/argp-help.c:1246
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Is riachtanach/roghnach le rogha ghearr aon argóint atá riachtanach/roghnach leis an rogha fhada."
+
+#: lib/argp-help.c:1639
+msgid "Usage:"
+msgstr "Úsáid:"
+
+#: lib/argp-help.c:1643
+msgid " or: "
+msgstr " nó: "
+
+#: lib/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [ROGHA...]"
+
+#: lib/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
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Seol tuairiscí fabhtanna chuig %s.\n"
+
+#: lib/argp-help.c:1929 lib/error.c:125
+msgid "Unknown system error"
+msgstr "Earráid anaithnid chórais"
+
+#: lib/argp-parse.c:81 src/tar.c:774
+msgid "give this help list"
+msgstr "taispeáin an chabhair seo"
+
+#: lib/argp-parse.c:82 src/tar.c:775
+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
+msgid "NAME"
+msgstr "AINM"
+
+#: lib/argp-parse.c:83
+msgid "set the program name"
+msgstr "socraigh ainm an chláir"
+
+#: lib/argp-parse.c:84
+msgid "SECS"
+msgstr "SOIC"
+
+#: lib/argp-parse.c:85 src/tar.c:780
+msgid "hang for SECS seconds (default 3600)"
+msgstr "moill de SOIC soicind (réamhshocrú: 3600)"
+
+#: lib/argp-parse.c:142 src/tar.c:776
+msgid "print program version"
+msgstr "taispeáin leagan an chláir"
+
+#: lib/argp-parse.c:158
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(EARRÁID RÍOMHCHLÁIR) Gan leagan!?"
+
+#: lib/argp-parse.c:611
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: An iomarca argóintí\n"
+
+#: lib/argp-parse.c:754
+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
+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"
+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"
+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"
+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"
+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"
+msgstr "%s: rogha anaithnid `--%s'\n"
+
+#: lib/getopt.c:704 lib/getopt.c:707
+#, 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"
+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"
+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"
+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"
+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
+msgid "memory exhausted"
+msgstr "cuimhne ídithe"
+
+#: lib/openat-die.c:35
+#, c-format
+msgid "unable to record current working directory"
+msgstr "ní féidir an chomhadlann reatha a thaifeadadh"
+
+#: lib/openat-die.c:48
+#, 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.
+#.
+#. 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.
+#: lib/quotearg.c:249
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:250
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. 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
+msgid "^[yY]"
+msgstr "^[yYiIsS]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. 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
+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
+#, c-format
+msgid "stdout"
+msgstr "stdout"
+
+#: lib/rtapelib.c:512
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Ní féidir cianbhlaosc a rith"
+
+#. 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
+msgid "(C)"
+msgstr "©"
+
+#: lib/version-etc.c:67
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos nuaí <http://gnu.org/licenses/gpl.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
+#, 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
+#, 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
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"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:103
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%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:109
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%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:116
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %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:123
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"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:131
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, agus daoine eile nach iad.\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
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Seol tuairiscí fabhtanna chuig <%s>.\n"
+
+#: lib/version-etc.c:182
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>.\n"
+msgstr "Leathanach baile %s: <http://www.gnu.org/software/%s/>.\n"
+
+#: lib/version-etc.c:184
+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:142
+msgid "Input string too long"
+msgstr "Teaghrán ionchurtha rófhada"
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr "Earráid chomhréire in uimhir"
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Ní féidir maolán a dháileadh\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr "Ní féidir maolán a dháileadh"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Bain triail as `%s --help' chun tuilleadh eolais a fháil.\n"
+
+#: rmt/rmt.c:308
+#, 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á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'"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+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:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Comhadchríoch gan choinne\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "Comhadchríoch gan choinne"
+
+#: rmt/rmt.c:672
+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
+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
+msgid "Total bytes written"
+msgstr "Bearta scríofa go hiomlán"
+
+#: src/buffer.c:361 src/buffer.c:375
+msgid "Total bytes read"
+msgstr "Bearta léite go hiomlán"
+
+#: src/buffer.c:365
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Bearta scriosta go hiomlán: %s\n"
+
+#: src/buffer.c:454
+msgid "(pipe)"
+msgstr "(píopa)"
+
+#: src/buffer.c:477
+msgid "Invalid value for record_size"
+msgstr "Luach neamhbhailí do record_size"
+
+#: src/buffer.c:480
+msgid "No archive name given"
+msgstr "Ní thugtar ainm na cartlainne"
+
+#: src/buffer.c:524
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Ní féidir cartlann stdin/stdout a fhíorú"
+
+#: src/buffer.c:538
+#, 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
+msgid "Cannot update compressed archives"
+msgstr "Ní féidir cartlanna comhbhrúite a nuashonrú"
+
+#: src/buffer.c:672
+msgid "At beginning of tape, quitting now"
+msgstr "Tosach na téipe, ag scor anois"
+
+#: src/buffer.c:678
+msgid "Too many errors, quitting"
+msgstr "An iomarca earráidí, ag scor"
+
+#: src/buffer.c:697
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Méid taifid = %lu bloc"
+msgstr[1] "Méid taifid = %lu bhloc"
+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
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Bloc neamhailínithe (%lu beart) sa chartlann"
+msgstr[1] "Bloc neamhailínithe (%lu bheart) sa chartlann"
+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
+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
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "Níor stopadh rmtlseek ag teorainn taifid"
+
+#: src/buffer.c:881
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: tá uimhir imleabhair neamhbhailí ann"
+
+#: src/buffer.c:916
+msgid "Volume number overflow"
+msgstr "Uimhir imleabhair thar maoil"
+
+#: src/buffer.c:931
+#, 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
+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
+msgid "WARNING: Archive is incomplete"
+msgstr "RABHADH: Tá an chartlann neamhiomlán"
+
+#: src/buffer.c:956
+#, 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 ainm Cuir comhadainm nua ar an chéad imleabhar eile (agus gach ceann ina dhiaidh)\n"
+" q Tobscoir tar\n"
+" y nó líne nua Lean ar aghaidh\n"
+
+#: src/buffer.c:961
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Sceith fobhlaosc\n"
+
+#: src/buffer.c:962
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Priontáil an liosta seo\n"
+
+#: src/buffer.c:969
+msgid "No new volume; exiting.\n"
+msgstr "Níl aon imleabhar nua; ag scor.\n"
+
+#: src/buffer.c:1002
+msgid "File name not specified. Try again.\n"
+msgstr "Ainm an chomhaid gan sonrú. Bain triail eile as.\n"
+
+#: src/buffer.c:1015
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Ionchur neamhbhailí. Iontráil ? chun cabhair a fháil.\n"
+
+#: src/buffer.c:1066
+#, c-format
+msgid "%s command failed"
+msgstr "Theip ar ordú %s"
+
+#: src/buffer.c:1221
+#, 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
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "Ní leanann %s ar an imleabhar seo"
+
+#: src/buffer.c:1239
+#, 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
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Tá an t-imleabhar seo as ord (%s - %s != %s)"
+
+#: src/buffer.c:1303
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Lipéad ar chartlann nach comhoiriúnaithe le %s"
+
+#: src/buffer.c:1306
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Níl an t-imleabhar %s comhoiriúnaithe le %s"
+
+#: src/buffer.c:1402
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: ní féidir an comhadainm seo a stóráil i gceanntásc il-imleabhar GNU; teasctha"
+
+#: src/buffer.c:1621
+msgid "write did not end on a block boundary"
+msgstr "níor stop an scríobh ag teorainn bhloic"
+
+#: src/compare.c:96
+#, c-format
+msgid "Could only read %lu of %lu byte"
+msgid_plural "Could only read %lu of %lu bytes"
+msgstr[0] "Níorbh fhéidir ach %lu de %lu beart a léamh"
+msgstr[1] "Níorbh fhéidir ach %lu de %lu bheart a léamh"
+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
+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
+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
+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
+msgid "Mode differs"
+msgstr "Tá difríocht idir na móid"
+
+#: src/compare.c:206
+msgid "Uid differs"
+msgstr "Tá difríocht idir na UIDanna"
+
+#: src/compare.c:208
+msgid "Gid differs"
+msgstr "Tá difríocht idir na GIDanna"
+
+#: src/compare.c:212
+msgid "Mod time differs"
+msgstr "Tá difríocht idir na hamanna modhnaithe"
+
+#: src/compare.c:216 src/compare.c:420
+msgid "Size differs"
+msgstr "Tá difríocht idir na méideanna"
+
+#: src/compare.c:270
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ní ceangailte le %s"
+
+#: src/compare.c:293
+msgid "Symlink differs"
+msgstr "Tá difríocht idir na naisc shiombalacha"
+
+#: src/compare.c:322
+msgid "Device number differs"
+msgstr "Tá difríocht idir na huimhreacha gléis"
+
+#: src/compare.c:462
+#, c-format
+msgid "Verify "
+msgstr "Fíoraigh "
+
+#: src/compare.c:469
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Cineál anaithnid comhaid `%c', déan diff mar ghnáthchomhad"
+
+#: src/compare.c:524
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Tá comhaid sa chartlann agus a réimíreanna scriosta."
+
+#: src/compare.c:526
+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
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "THEIP AR DHEIMHNIÚ: aimsíodh %d ceanntásc neamhbhailí"
+msgstr[1] "THEIP AR DHEIMHNIÚ: aimsíodh %d cheanntásc neamhbhailí"
+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
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Bloc nialasach scoite ag %s"
+
+#: src/create.c:67
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: tá clib chomhadlainne taisce %s ann; %s"
+
+#: src/create.c:272
+#, 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
+#, 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
+msgid "Generating negative octal headers"
+msgstr "Ceanntásca ochtnártha diúltacha á gcruthú"
+
+#: src/create.c:624 src/create.c:687
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: ainm comhaid rófhada (uasmhéid %d); gan dumpáil"
+
+#: src/create.c:634
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: ainm comhaid rófhada (ní féidir é a scoilt); gan dumpáil"
+
+#: src/create.c:661
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: ainm naisc rófhada; gan dumpáil"
+
+#: src/create.c:1076
+#, 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 beart níos lú sa chomhad; ag stuáil le nialais"
+msgstr[1] "%s: %s bheart níos lú sa chomhad; ag stuáil le nialais"
+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
+#, 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
+msgid "contents not dumped"
+msgstr "ábhar gan dumpáil"
+
+#: src/create.c:1361
+#, 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"
+msgstr "Naisc le %s ar iarraidh.\n"
+
+#: src/create.c:1535
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: comhad gan athrú; gan dumpáil"
+
+#: src/create.c:1543
+#, 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
+msgid "directory not dumped"
+msgstr "níor dumpáladh an chomhadlann"
+
+#: src/create.c:1659
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: athraíodh an comhad agus á léamh"
+
+#: src/create.c:1739
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: rinneadh neamhshuim ar an soicéad"
+
+#: src/create.c:1744
+#, 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
+msgid "Skipping to next header"
+msgstr "Ag bogadh go dtí an chéad cheanntásc eile"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "Comhad nach ceanntásc á scriosadh ón chartlann"
+
+#: src/extract.c:198
+#, 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
+#, 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
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Bunoscionntacht gan choinne agus comhadlann á cruthú"
+
+#: src/extract.c:588
+#, 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
+msgid "Extracting contiguous files as regular files"
+msgstr "Comhaid theorantacha á mbaint amach mar ghnáthchomhaid"
+
+#: src/extract.c:997
+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
+#, 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
+msgid "Unexpected long name header"
+msgstr "Ceanntásc ainm fada gan choinne"
+
+#: src/extract.c:1156
+#, 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
+#, 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
+#, 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
+#, 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
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Athainmníodh an chomhadlann ó %s"
+
+#: src/incremen.c:460
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Athainmníodh an chomhadlann"
+
+#: src/incremen.c:505
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Comhadlann nua"
+
+#: src/incremen.c:903 src/incremen.c:920
+msgid "Invalid time stamp"
+msgstr "Stampa ama neamhbhailí"
+
+#: src/incremen.c:959
+msgid "Invalid modification time (seconds)"
+msgstr "Am neamhbhailí mionathraithe (soicindí)"
+
+#: src/incremen.c:974
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Am neamhbhailí mionathraithe (nanashoicindí)"
+
+#: src/incremen.c:994
+msgid "Invalid device number"
+msgstr "Uimhir neamhbhailí gléis"
+
+#: src/incremen.c:1009
+msgid "Invalid inode number"
+msgstr "Uimhir inode as raon"
+
+#: src/incremen.c:1060 src/incremen.c:1097
+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
+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
+msgid "Unexpected EOF in snapshot file"
+msgstr "Comhadchríoch gan choinne sa chomhad roghbhlúire"
+
+#: src/incremen.c:1076 src/incremen.c:1116
+msgid "Unexpected field value in snapshot file"
+msgstr "Luach réimse gan choinne sa chomhad roghbhlúire"
+
+#: src/incremen.c:1211
+msgid "Missing record terminator"
+msgstr "Críochnaitheoir taifid ar iarraidh"
+
+#: src/incremen.c:1262 src/incremen.c:1265
+msgid "Bad incremental file format"
+msgstr "Drochfhormáid incriminteach"
+
+#: src/incremen.c:1284
+#, 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
+#, 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
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "dumpdir míchumtha: 'X' faoi dhó"
+
+#: src/incremen.c:1462
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "dumpdir míchumtha: ainm folamh i 'R'"
+
+#: src/incremen.c:1475
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "dumpdir míchumtha: 'T' gan 'R' roimhe"
+
+#: src/incremen.c:1481
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "dumpdir míchumtha: ainm folamh i 'T'"
+
+#: src/incremen.c:1501
+#, 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
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "dumpdir míchumtha: níor úsáideadh 'X' riamh"
+
+#: src/incremen.c:1551
+#, 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
+#, 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
+#, 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
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s á scriosadh\n"
+
+#: src/incremen.c:1639
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ní féidir scriosadh a dhéanamh"
+
+#: src/list.c:113
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: ag fágáil ar lár"
+
+#: src/list.c:131
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloc %s: ** bloc de NULanna **\n"
+
+#: src/list.c:155
+#, 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
+#, c-format
+msgid "block %s: "
+msgstr "bloc %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:671
+#, 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
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr ""
+"Tá an luach ochtnártha %.*s as raon %s sa chartlann;\n"
+"ag glacadh le comhlánú dénártha"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:737
+#, 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
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Tá ceanntásca le bunuimhir 64 i léig sa chartlann"
+
+#: src/list.c:772
+#, 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
+#, 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
+#, 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
+#, 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
+#, c-format
+msgid " link to %s\n"
+msgstr " nasc le %s\n"
+
+#: src/list.c:1234
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " cineál anaithnid comhaid %s\n"
+
+#: src/list.c:1252
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Nasc Fada--\n"
+
+#: src/list.c:1256
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Ainm Fada--\n"
+
+#: src/list.c:1260
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Ceanntásc Imleabhair--\n"
+
+#: src/list.c:1268
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Ar lean ag beart %s--\n"
+
+#: src/list.c:1296
+msgid "Creating directory:"
+msgstr "Comhadlann á cruthú:"
+
+#: src/misc.c:456
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s á athainmniú go %s\n"
+
+#: src/misc.c:465 src/misc.c:483
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Ní féidir athainmniú go %s"
+
+#: src/misc.c:488
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "%s á athainmniú go %s arís\n"
+
+#: src/misc.c:615
+msgid "Cannot save working directory"
+msgstr "Ní féidir an chomhadlann reatha a shábháil"
+
+#: src/misc.c:621
+msgid "Cannot change working directory"
+msgstr "Ní féidir an chomhadlann reatha a athrú"
+
+#: src/misc.c:711
+msgid "child process"
+msgstr "macphróiseas"
+
+#: src/misc.c:720
+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,"
+msgstr "Aimsíodh saoróga in ainmneacha comhaid."
+
+#: src/names.c:595
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+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
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Ní sa chartlann é"
+
+#: src/names.c:615
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Níl rud riachtanach sa chartlann"
+
+#: src/tar.c:79
+#, 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
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Formáid neamhbhailí chartlainne"
+
+#: src/tar.c:180
+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
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Stíl anaithnid athfhriotail `%s'. Bain triail as `%s --quoting-style=help' chun liosta a fheiceáil."
+
+#: src/tar.c:336
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"Sábhálann GNU tar comhaid le chéile i gcartlann aonair ar théip nó ar dhiosca, agus is féidir comhaid ar leith a athchóiriú as an gcartlann.\n"
+"\n"
+"Samplaí:\n"
+" tar -cf cartlann.tar fú barr # Cruthaigh cartlann.tar as comhaid fú 7 barr.\n"
+" tar -tvf cartlann.tar # Taispeáin gach comhad i cartlann.tar (foclach).\n"
+" tar -xf cartlann.tar # Bain gach comhad amach as cartlann.tar.\n"
+
+#: src/tar.c:345
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Is é `~' an iarmhír chúltaca, mura dtugtar é le --suffix nó le hathróg\n"
+"timpeallachta SIMPLE_BACKUP_SUFFIX.\n"
+"Is féidir an modh rialaithe foinsí a shocrú le --backup nó le hathróg\n"
+"thimpeallachta VERSION_CONTROL. Is iad seo na luachanna bailí:\n"
+"\n"
+" none, off ná déan cúltaca riamh\n"
+" t, numbered déan cúltacaí agus uimhreacha orthu\n"
+" nil, existing 'numbered' má tá uimhreacha orthu anois, 'simple' mura bhfuil\n"
+" never, simple déan cúltacaí simplí i gcónaí\n"
+
+#: src/tar.c:370
+msgid "Main operation mode:"
+msgstr "Príomh-mhód oibre:"
+
+#: src/tar.c:373
+msgid "list the contents of an archive"
+msgstr "taispeáin an t-ábhar i gcartlann"
+
+#: src/tar.c:375
+msgid "extract files from an archive"
+msgstr "bain comhaid as cartlann"
+
+#: src/tar.c:378
+msgid "create a new archive"
+msgstr "cruthaigh cartlann nua"
+
+#: src/tar.c:380
+msgid "find differences between archive and file system"
+msgstr "taispeáin difríochtaí idir cartlann agus córas comhaid"
+
+#: src/tar.c:383
+msgid "append files to the end of an archive"
+msgstr "iarcheangail le deireadh cartlainne"
+
+#: src/tar.c:385
+msgid "only append files newer than copy in archive"
+msgstr "ná hiarcheangail ach comhaid mhionathraithe leis an gcartlann"
+
+#: src/tar.c:387
+msgid "append tar files to an archive"
+msgstr "iarcheangail comhaid tar le cartlann"
+
+#: src/tar.c:390
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "scrios as an gcartlann (nach ar théipeanna maighnéadacha!)"
+
+#: src/tar.c:392
+msgid "test the archive volume label and exit"
+msgstr "tástáil lipéad imleabhair na cartlainne agus scoir"
+
+#: src/tar.c:397
+msgid "Operation modifiers:"
+msgstr "Mionathraitheoirí oibríochta:"
+
+#: src/tar.c:400
+msgid "handle sparse files efficiently"
+msgstr "caith le gannchomhaid go héifeachtach"
+
+#: src/tar.c:401
+msgid "MAJOR[.MINOR]"
+msgstr "PRÍOMH[.MION]"
+
+#: src/tar.c:402
+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
+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
+msgid "handle new GNU-format incremental backup"
+msgstr "déan cúltaca incriminteach nua-aoise GNU"
+
+#: src/tar.c:408
+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
+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 "ná próiseáil ach an UIMHIRú leagan de gach comhad sa chartlann; níl an rogha bhailí ach in éineacht le ceann de na fo-orduithe --delete, --diff, --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
+msgid "archive is seekable"
+msgstr "tá an chartlann inchuardaithe"
+
+#: src/tar.c:418
+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
+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
+msgid "Overwrite control:"
+msgstr "Rialú forscríofa:"
+
+#: src/tar.c:430
+msgid "attempt to verify the archive after writing it"
+msgstr "fíoraigh an chartlann i ndiaidh ag scríobh"
+
+#: src/tar.c:432
+msgid "remove files after adding them to the archive"
+msgstr "scrios comhaid i ndiaidh iad a chur leis an gcartlann"
+
+#: src/tar.c:434
+msgid "don't replace existing files when extracting"
+msgstr "ná forscríobh comhaid atá ann le linn baint amach"
+
+#: src/tar.c:436
+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
+msgid "overwrite existing files when extracting"
+msgstr "forscríobh comhaid atá ann le linn baint amach"
+
+#: src/tar.c:440
+msgid "remove each file prior to extracting over it"
+msgstr "scrios gach comhaid sula scríobhtar air"
+
+#: src/tar.c:442
+msgid "empty hierarchies prior to extracting directory"
+msgstr "folmhaigh géagchóras sula mbaintear comhadlann amach"
+
+#: src/tar.c:444
+msgid "preserve metadata of existing directories"
+msgstr "ná forscríobh meiteashonraí comhadlainne"
+
+#: src/tar.c:446
+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
+msgid "Select output stream:"
+msgstr "Roghnaigh sruth aschurtha:"
+
+#: src/tar.c:455
+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
+msgid "COMMAND"
+msgstr "ORDÚ"
+
+#: src/tar.c:457
+msgid "pipe extracted files to another program"
+msgstr "píopaigh comhaid bhainte go ríomhchlár eile"
+
+#: src/tar.c:459
+msgid "ignore exit codes of children"
+msgstr "ná bac le cóid scortha na macphróiseas"
+
+#: src/tar.c:461
+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
+msgid "Handling of file attributes:"
+msgstr "Tréithe comhaid á láimhseáil:"
+
+#: src/tar.c:469
+msgid "force NAME as owner for added files"
+msgstr "éiligh AINM mar úinéir de chomhaid bhreise"
+
+#: src/tar.c:471
+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
+msgid "DATE-OR-FILE"
+msgstr "DÁTA-NÓ-COMHAD"
+
+#: src/tar.c:473
+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
+msgid "CHANGES"
+msgstr "ATHRUITHE"
+
+#: src/tar.c:475
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "déan ATHRUITHE ar mhód de chomhaid bhreise"
+
+#: src/tar.c:477
+msgid "METHOD"
+msgstr "MODH"
+
+#: src/tar.c:478
+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 "coimeád amanna rochtana de chomhaid dhumpáilte, trí athchóiriú na n-amanna i 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
+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"
+msgstr "bain triail as úinéireacht a choinneáil"
+
+#: src/tar.c:486
+msgid "extract files as yourself"
+msgstr "bain comhaid amach mar thusa féin"
+
+#: src/tar.c:488
+msgid "always use numbers for user/group names"
+msgstr "bain úsáid as uimhreacha d'ainmneacha úsáideora/grúpa"
+
+#: src/tar.c:490
+msgid "extract information about file permissions (default for superuser)"
+msgstr "bain eolas faoi cheadanna (réamhshocrú don fhorúsáideoir)"
+
+#: src/tar.c:494
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "cuir umask an úsáideora i bhfeidhm agus ceadanna á mbaint ón chartlann (réamhshocrú do ghnáthúsáideoirí)"
+
+#: src/tar.c:496
+msgid "sort names to extract to match archive"
+msgstr "sórtáil ainmneacha le cur in oiriúint"
+
+#: src/tar.c:499
+msgid "same as both -p and -s"
+msgstr "ar comhbhrí le -p agus -s araon"
+
+#: src/tar.c:501
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "ná socraigh amanna mionathraithe ná ceadanna de na comhadlanna go dtí go bhfuil an bhaint curtha i gcrích"
+
+#: src/tar.c:504
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "cealaigh an éifeacht de rogha --delay-directory-restore"
+
+#: src/tar.c:509
+msgid "Device selection and switching:"
+msgstr "Roghnú gléis agus malartú:"
+
+#: src/tar.c:511
+msgid "ARCHIVE"
+msgstr "CARTLANN"
+
+#: src/tar.c:512
+msgid "use archive file or device ARCHIVE"
+msgstr "bain úsáid as cartlann chomhaid nó gléas CARTLANN"
+
+#: src/tar.c:514
+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
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "bain úsáid as ORDÚ in ionad rmt"
+
+#: src/tar.c:518
+msgid "use remote COMMAND instead of rsh"
+msgstr "bain úsáid as ORDÚ cian in ionad rsh"
+
+#: src/tar.c:522
+msgid "specify drive and density"
+msgstr "sonraigh tiomántán agus a dhlús"
+
+#: src/tar.c:536
+msgid "create/list/extract multi-volume archive"
+msgstr "cruthaigh/liostaigh/bain amach cartlann le hiliomad imleabhair"
+
+#: src/tar.c:538
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "athraigh téip i ndiaidh UIMHIR × 1024 beart"
+
+#: src/tar.c:540
+msgid "run script at end of each tape (implies -M)"
+msgstr "rith script i ndiaidh gach téip (-M intuigthe)"
+
+#: src/tar.c:543
+msgid "use/update the volume number in FILE"
+msgstr "úsáid/nuashonraigh an uimhir imleabhair i gCOMHAD"
+
+#: src/tar.c:548
+msgid "Device blocking:"
+msgstr "Blocáil ghléis:"
+
+#: src/tar.c:550
+msgid "BLOCKS"
+msgstr "BLOIC"
+
+#: src/tar.c:551
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOIC × 512 beart sa taifead"
+
+#: src/tar.c:553
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "UIMHIR beart sa taifead, iolraí de 512"
+
+#: src/tar.c:555
+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
+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
+msgid "Archive format selection:"
+msgstr "Roghnú formáide:"
+
+#: src/tar.c:564 tests/genfile.c:152
+msgid "FORMAT"
+msgstr "FORMÁID"
+
+#: src/tar.c:565
+msgid "create archive of the given format"
+msgstr "cruthaigh cartlann san fhormáid seo"
+
+#: src/tar.c:567
+msgid "FORMAT is one of the following:"
+msgstr "Is FORMÁID ceann de na rudaí seo:"
+
+#: src/tar.c:568
+msgid "old V7 tar format"
+msgstr "seanfhormáid V7 tar"
+
+#: src/tar.c:571
+msgid "GNU format as per tar <= 1.12"
+msgstr "formáid de réir GNU tar <= 1.12"
+
+#: src/tar.c:573
+msgid "GNU tar 1.13.x format"
+msgstr "formáid de réir GNU tar 1.13"
+
+#: src/tar.c:575
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "formáid POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:577
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "formáid POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:578
+msgid "same as pax"
+msgstr "ar comhbhrí le pax"
+
+#: src/tar.c:581
+msgid "same as --format=v7"
+msgstr "is ionann le --format=v7"
+
+#: src/tar.c:584
+msgid "same as --format=posix"
+msgstr "is ionann le --format=posix"
+
+#: src/tar.c:585
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "lorgfhocal[[:]=luach][,lorgfhocal[[:]=luach]]..."
+
+#: src/tar.c:586
+msgid "control pax keywords"
+msgstr "rialaigh lorgfhocail pax"
+
+#: src/tar.c:587
+msgid "TEXT"
+msgstr "TÉACS"
+
+#: src/tar.c:588
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+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
+msgid "Compression options:"
+msgstr "Roghanna comhbhrúite:"
+
+#: src/tar.c:595
+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
+msgid "do not use archive suffix to determine the compression program"
+msgstr "ná húsáid iarmhír na cartlainne chun an clár 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
+msgid "filter the archive through lzop"
+msgstr "scag an chartlann le lzop"
+
+#: src/tar.c:613
+msgid "filter the archive through xz"
+msgstr "scag an chartlann le xz"
+
+#: src/tar.c:614
+msgid "PROG"
+msgstr "CLÁR"
+
+#: src/tar.c:615
+msgid "filter through PROG (must accept -d)"
+msgstr "scag le CLÁR (ní foláir -d)"
+
+#: src/tar.c:620
+msgid "Local file selection:"
+msgstr "Roghnú comhaid logánta:"
+
+#: src/tar.c:623
+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
+msgid "DIR"
+msgstr "COMHADLANN"
+
+#: src/tar.c:625
+msgid "change to directory DIR"
+msgstr "athraigh go dtí COMHADLANN"
+
+#: src/tar.c:627
+msgid "get names to extract or create from FILE"
+msgstr "tóg ainmneacha le baint/cruthú as comhad COMHAD"
+
+#: src/tar.c:629
+msgid "-T reads null-terminated names, disable -C"
+msgstr "léigh ainmneacha, foirceanta le NULanna; múch -C"
+
+#: src/tar.c:631
+msgid "disable the effect of the previous --null option"
+msgstr "díchumasaigh an rogha --null roimhe seo"
+
+#: src/tar.c:633
+msgid "unquote filenames read with -T (default)"
+msgstr "bain comharthaí athfhriotail ó chomhadainmneacha a léadh le -T (réamhshocrú)"
+
+#: src/tar.c:635
+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
+msgid "PATTERN"
+msgstr "PATRÚN"
+
+#: src/tar.c:637
+msgid "exclude files, given as a PATTERN"
+msgstr "fág comhaid as an áireamh, tugtha mar PHATRÚN"
+
+#: src/tar.c:639
+msgid "exclude patterns listed in FILE"
+msgstr "fág as an áireamh aon phatrún atá i gCOMHAD"
+
+#: src/tar.c:641
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "gabh thar ábhar na gcomhadlann ina bhfuil CACHEDIR.TAG, seachas an comhad clibe féin"
+
+#: src/tar.c:644
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "gabh thar gach rud faoi chomhadlanna ina bhfuil CACHEDIR.TAG"
+
+#: src/tar.c:647
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "gabh thar chomhadlanna ina bhfuil CACHEDIR.TAG"
+
+#: src/tar.c:649
+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
+msgid "exclude everything under directories containing FILE"
+msgstr "gabh thar gach rud faoi chomhadlanna ina bhfuil COMHAD"
+
+#: src/tar.c:654
+msgid "exclude directories containing FILE"
+msgstr "gabh thar chomhadlanna a bhfuil COMHAD iontu"
+
+#: src/tar.c:656
+msgid "exclude version control system directories"
+msgstr "gabh thar chomhadlanna a bhaineann le córas rialaithe foinsí"
+
+#: src/tar.c:658
+msgid "avoid descending automatically in directories"
+msgstr "ná téigh isteach i bhfochomhadlanna go huathoibríoch"
+
+#: src/tar.c:660
+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
+msgid "recurse into directories (default)"
+msgstr "téigh isteach i gcomhadlanna (réamhshocrú)"
+
+#: src/tar.c:664
+msgid "don't strip leading `/'s from file names"
+msgstr "ná struipeáil `/' tosaigh ó ainmneacha comhaid"
+
+#: src/tar.c:666
+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
+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
+msgid "MEMBER-NAME"
+msgstr "AINM-BAILL"
+
+#: src/tar.c:670
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "tosaigh ag ball AINM-BAILL sa chartlann"
+
+#: src/tar.c:672
+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
+msgid "DATE"
+msgstr "DÁTA"
+
+#: src/tar.c:675
+msgid "compare date and time when data changed only"
+msgstr "déan comparáid le dáta/am modhnaithe"
+
+#: src/tar.c:676
+msgid "CONTROL"
+msgstr "MODH"
+
+#: src/tar.c:677
+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
+msgid "STRING"
+msgstr "TEAGHRÁN"
+
+#: src/tar.c:679
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+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
+msgid "File name transformations:"
+msgstr "Trasfhoirmiú ainmneacha comhaid:"
+
+#: src/tar.c:686
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "struipeáil UIMHIR comhpháirt tosaigh ó ainmneacha comhaid"
+
+#: src/tar.c:688
+msgid "EXPRESSION"
+msgstr "SLONN"
+
+#: src/tar.c:689
+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
+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
+msgid "ignore case"
+msgstr "ná bí cásíogair"
+
+# subject is "exclude patterns"
+#: src/tar.c:700
+msgid "patterns match file name start"
+msgstr "comhoiriúnaíonn patrúin do thosach ainm an chomhaid"
+
+#: src/tar.c:702
+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
+msgid "case sensitive matching (default)"
+msgstr "dealaigh idir litreacha beaga/móra (réamhshocrú)"
+
+#: src/tar.c:706
+msgid "use wildcards (default for exclusion)"
+msgstr "úsáid saoróga (réamhshocrú do phatrúin eisiata)"
+
+#: src/tar.c:708
+msgid "verbatim string matching"
+msgstr "comhoiriúnú teaghráin carachtar ar charachtar"
+
+#: src/tar.c:710
+msgid "wildcards do not match `/'"
+msgstr "ní ghlacann saoróga le `/'"
+
+#: src/tar.c:712
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "comhoiriúnaíonn saoróga do `/' (réamhshocrú le patrúin eisiata)"
+
+#: src/tar.c:717
+msgid "Informative output:"
+msgstr "Aschur faisnéiseach:"
+
+#: src/tar.c:720
+msgid "verbosely list files processed"
+msgstr "taispeáin gach comhad atá próiseáilte, go foclach"
+
+#: src/tar.c:722
+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
+msgid "ACTION"
+msgstr "GNÍOMH"
+
+#: src/tar.c:725
+msgid "execute ACTION on each checkpoint"
+msgstr "déan GNÍOMH ag gach seicphointe"
+
+#: src/tar.c:728
+msgid "print a message if not all links are dumped"
+msgstr "taispeáin eolas mura bhfuil gach nasc dumpáilte"
+
+#: src/tar.c:729
+msgid "SIGNAL"
+msgstr "COMHARTHA"
+
+#: src/tar.c:730
+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 "taispeáin líon iomlán na mbeart tar éis na cartlainne a phróiseáil; le hargóint - taispeáin líon iomlán na mbeart nuair a thugtar an COMHARTHA seo; 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
+msgid "print file modification dates in UTC"
+msgstr "taispeáin dátaí mionathraithe de réir UTC"
+
+#: src/tar.c:737
+msgid "send verbose output to FILE"
+msgstr "scríobh aschur foclach i gCOMHAD"
+
+#: src/tar.c:739
+msgid "show block number within archive with each message"
+msgstr "taispeáin bloc sa chartlann le gach teachtaireacht"
+
+#: src/tar.c:741
+msgid "ask for confirmation for every action"
+msgstr "iarr deimhniú ar gach gníomh"
+
+#: src/tar.c:744
+msgid "show tar defaults"
+msgstr "taispeáin réamhshocruithe tar"
+
+#: src/tar.c:746
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "agus á liostú nó á bhaint amach, taispeáin gach comhadlann nach bhfuil comhoiriúnaithe don chuardach"
+
+#: src/tar.c:748
+msgid "show file or archive names after transformation"
+msgstr "taispeáin ainmneacha comhaid/cartlainne i ndiaidh trasfhoirmithe"
+
+#: src/tar.c:751
+msgid "STYLE"
+msgstr "STÍL"
+
+#: src/tar.c:752
+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
+msgid "additionally quote characters from STRING"
+msgstr "cuir carachtair athfhriotail timpeall na carachtair ó TEAGHRÁN"
+
+#: src/tar.c:756
+msgid "disable quoting for characters from STRING"
+msgstr "ná húsáid comharthaí athfhriotail timpeall carachtair ó TEAGHRÁN"
+
+#: src/tar.c:761
+msgid "Compatibility options:"
+msgstr "Roghanna Comhoiriúnachta:"
+
+#: src/tar.c:764
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "is ionann le --old-archive le linn cruthaithe; is ionann le --no-same-owner le linn baint"
+
+#: src/tar.c:769
+msgid "Other options:"
+msgstr "Roghanna eile:"
+
+#: src/tar.c:772
+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"
+msgstr "Ná tabhair ach ceann de na roghanna `-Acdtrux'"
+
+#: src/tar.c:930
+msgid "Conflicting compression options"
+msgstr "Roghanna contrártha comhbhrúite"
+
+#: src/tar.c:986
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Comhartha anaithnid: %s"
+
+#: src/tar.c:1010
+msgid "Date sample file not found"
+msgstr "Comhad samplach dáta gan aimsiú"
+
+#: src/tar.c:1018
+#, 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
+#, 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
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: léadh an liosta comhad cheana"
+
+#: src/tar.c:1185
+#, 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:"
+msgstr "Argóintí bailí do roghanna --quoting-style:"
+
+#: src/tar.c:1253
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Luachanna réamhshocraithe don tar *seo*:\n"
+
+#: src/tar.c:1294
+msgid "Invalid blocking factor"
+msgstr "Fachtóir bacainneach neamhbhailí"
+
+#: src/tar.c:1401
+msgid "Invalid tape length"
+msgstr "Fad téipe neamhbhailí"
+
+#: src/tar.c:1441
+msgid "More than one threshold date"
+msgstr "Níos mó ná spriocdháta amháin"
+
+#: src/tar.c:1496 src/tar.c:1499
+msgid "Invalid sparse version value"
+msgstr "Leagan neamhbhailí ar fhormáid na ngannchomhad"
+
+#: src/tar.c:1584
+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
+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"
+msgstr "%s: Grúpa neamhbhailí"
+
+#: src/tar.c:1717
+msgid "Invalid mode given on option"
+msgstr "Mód neamhbhailí ar rogha"
+
+#: src/tar.c:1774
+msgid "Invalid number"
+msgstr "Uimhir neamhbhailí"
+
+#: src/tar.c:1796
+msgid "Invalid owner"
+msgstr "Úinéir neamhbhailí"
+
+#: src/tar.c:1822
+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
+msgid "Invalid record size"
+msgstr "Méid taifid neamhbhailí"
+
+#: src/tar.c:1835
+#, 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
+msgid "Invalid number of elements"
+msgstr "Tá líon na mball neamhbhailí"
+
+#: src/tar.c:1892
+msgid "Only one --to-command option allowed"
+msgstr "Ní cheadaítear ach aon rogha --to-command amháin"
+
+#: src/tar.c:1968
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Tá an argóint dlúis míchumtha: %s"
+
+#: src/tar.c:1994
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Dlús anaithnid: `%c'"
+
+#: src/tar.c:2011
+#, 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
+msgid "[FILE]..."
+msgstr "[COMHAD]..."
+
+#: src/tar.c:2152
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Tá gá le hargóint ar an seanrogha `%c'."
+
+#: src/tar.c:2234
+msgid "--occurrence is meaningless without a file list"
+msgstr "tá an rogha --occurrence gan bhrí in éagmais liosta comhad"
+
+#: src/tar.c:2240
+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
+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
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Ní féidir --listed-incremental a úsáid le --newer"
+
+#: src/tar.c:2292
+#, 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: Lipéad imleabhair rófhada (%lu beart ar a mhéad)"
+msgstr[1] "%s: Lipéad imleabhair rófhada (%lu bheart ar a mhéad)"
+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
+msgid "Cannot verify multi-volume archives"
+msgstr "Ní féidir cartlanna le hiliomad imleabhair a fhíorú"
+
+#: src/tar.c:2307
+msgid "Cannot verify compressed archives"
+msgstr "Ní féidir cartlanna comhbhrúite a fhíorú"
+
+#: src/tar.c:2313
+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
+msgid "Cannot concatenate compressed archives"
+msgstr "Ní féidir cartlanna comhbhrúite a iarcheangal"
+
+#: src/tar.c:2331
+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
+msgid "Volume length cannot be less than record size"
+msgstr "Ní cheadaítear fad an imleabhair a bheith níos lú ná an mhéid taifid"
+
+#: src/tar.c:2352
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "Níl --preserve-order comhoiriúnach do --listed-incremental"
+
+#: src/tar.c:2363
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Ní chruthófar cartlann fholamh (go cladhartha)"
+
+#: src/tar.c:2388
+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"
+msgstr "Ní foláir rogha amháin de `-Acdtrux' ar a laghad"
+
+#: src/tar.c:2528
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Scor le stádas teipthe de bharr earráidí roimhe seo"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: Chrap an comhad %s beart"
+msgstr[1] "%s: Chrap an comhad %s bheart"
+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
+#, 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
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Ní féidir an patrún %s a úsáid"
+
+#: src/xheader.c:192
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Ní féidir an lorgfhocal %s a shárú"
+
+#: src/xheader.c:496
+msgid "Malformed extended header: missing length"
+msgstr "Ceanntásc míchumtha breisithe: fad ar iarraidh"
+
+#: src/xheader.c:504
+msgid "Extended header length is out of allowed range"
+msgstr "Fad an cheanntáisc breisithe as raon"
+
+#: src/xheader.c:511
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Fad %*s as raon sa cheanntásc breisithe"
+
+#: src/xheader.c:523
+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
+msgid "Malformed extended header: missing equal sign"
+msgstr "Ceanntásc míchumtha breisithe: sín chothroime ar iarraidh"
+
+#: src/xheader.c:537
+msgid "Malformed extended header: missing newline"
+msgstr "Ceanntásc míchumtha breisithe: líne nua ar iarraidh"
+
+#: src/xheader.c:574
+#, 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
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Tá an péire a cruthaíodh (lorgfhocal/luach) rófhada (lorgfhocal=%s, fad=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:810
+#, 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
+#, 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
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Ceanntásc míchumtha breisithe: %s=%s sa bhreis"
+
+#: src/xheader.c:1326
+#, 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
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Ceanntásc míchumtha breisithe: %s neamhbhailí: corruimhir de luachanna"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: teorainn ama neamhbhailí"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: gníomh anaithnid seicphointe"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "scríobh"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "léamh"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Seicphointe scríofa %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Seicphointe léimh %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"Láimhseálann genfile comhaid shonraí le haghaidh an tsratha tástála GNU paxutils.\n"
+"Is iad na ROGHANNA:\n"
+
+#: tests/genfile.c:126
+msgid "File creation options:"
+msgstr "Roghanna - cruthú comhad:"
+
+#: tests/genfile.c:127 tests/genfile.c:138
+msgid "SIZE"
+msgstr "MÉID"
+
+#: tests/genfile.c:128
+msgid "Create file of the given SIZE"
+msgstr "Cruthaigh comhad leis an MÉID seo"
+
+#: tests/genfile.c:130
+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
+msgid "Read file names from FILE"
+msgstr "Léigh ainmneacha comhaid ó COMHAD"
+
+#: tests/genfile.c:134
+msgid "-T reads null-terminated names"
+msgstr "Léann -T ainmneacha, foirceanta le NULanna"
+
+#: tests/genfile.c:136
+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
+msgid "Size of a block for sparse file"
+msgstr "Méid bhloic sa gannchomhad"
+
+#: tests/genfile.c:141
+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
+msgid "OFFSET"
+msgstr "FRITHÁIREAMH"
+
+#: tests/genfile.c:144
+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
+msgid "File statistics options:"
+msgstr "Roghanna - staitisticí comhaid"
+
+#: tests/genfile.c:153
+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
+msgid "Synchronous execution options:"
+msgstr "Roghanna - feidhmiú sioncrónach:"
+
+#: tests/genfile.c:163
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr "Rith an tORDÚ sonraithe. Is áisiúil an rogha seo le --checkpoint agus ceann de --cut, --append, nó --touch"
+
+#: tests/genfile.c:166
+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
+msgid "Set date for next --touch option"
+msgstr "Socraigh an dáta le haghaidh an chéad rogha --touch eile"
+
+#: tests/genfile.c:172
+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
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+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
+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
+msgid "Update the access and modification times of FILE"
+msgstr "Nuashonraigh na hamanna rochtana/mionathraithe de CHOMHAD"
+
+#: tests/genfile.c:190
+msgid "Execute COMMAND"
+msgstr "Rith ORDÚ"
+
+#: tests/genfile.c:240
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Méid neamhbhailí: %s"
+
+#: tests/genfile.c:245
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Uimhir as raon: %s"
+
+#: tests/genfile.c:248
+#, c-format
+msgid "Negative size: %s"
+msgstr "Méid diúltach: %s"
+
+#: tests/genfile.c:261 tests/genfile.c:558
+#, c-format
+msgid "stat(%s) failed"
+msgstr "theip ar stat(%s)"
+
+#: tests/genfile.c:264
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "fad iarrtha %lu, fíorfhad %lu"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "created file is not sparse"
+msgstr "ní gannchomhad é an comhad cruthaithe"
+
+#: tests/genfile.c:353
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Earráid agus uimhir á parsáil i ngar do `%s'"
+
+#: tests/genfile.c:359
+#, c-format
+msgid "Unknown date format"
+msgstr "Formáid anaithnid ar an dáta"
+
+#: tests/genfile.c:382
+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
+#, c-format
+msgid "cannot open `%s'"
+msgstr "ní féidir `%s' a oscailt"
+
+#: tests/genfile.c:425
+msgid "cannot seek"
+msgstr "ní féidir 'seek' a dhéanamh"
+
+#: tests/genfile.c:442
+#, c-format
+msgid "file name contains null character"
+msgstr "tá carachtar nialasach sa chomhadainm"
+
+#: tests/genfile.c:507
+#, 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
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "masc mícheart (i ngar do `%s')"
+
+#: tests/genfile.c:591 tests/genfile.c:624
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Réimse anaithnid `%s'"
+
+#: tests/genfile.c:651
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "ní féidir an t-am a shocrú ar `%s'"
+
+#: tests/genfile.c:805
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "D'éirigh leis an ordú\n"
+
+#: tests/genfile.c:807
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Theip ar an ordú le stádas %d\n"
+
+#: tests/genfile.c:811
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Stopadh an t-ordú le comhartha %d\n"
+
+#: tests/genfile.c:813
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Stopadh an t-ordú ar chomhartha %d\n"
+
+#: tests/genfile.c:816
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Rinne an t-ordú córdhumpa\n"
+
+#: tests/genfile.c:819
+#, c-format
+msgid "Command terminated\n"
+msgstr "Ordú críochnaithe\n"
+
+#: tests/genfile.c:851
+#, 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 "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?"
+
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "Earráid; tobscor moillithe ó earráidí roimhe seo"
+
+#~ msgid "[.]NUMBER"
+#~ msgstr "[.]UIMHIR"
+
+#~ msgid "block size"
+#~ msgstr "méid bloc"
+
+#~ msgid "%s: Read error at byte %s, reading %lu byte"
+#~ msgid_plural "%s: Read error at byte %s, 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"
+
+#~ msgid "--Mangled file names--\n"
+#~ msgstr "--Ainmneacha comhaid coscartha--\n"
+
+#~ msgid "Unexpected EOF in mangled names"
+#~ msgstr "Comhadchríoch gan choinne in ainmneacha coscartha"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "Athainmníodh %s go %s"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ msgstr "%s: Ní féidir nasc siombalach a dhéanamh le %s"
+
+#~ msgid "Symlinked %s to %s"
+#~ msgstr "Nasctha %s le %s"
+
+#~ 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"
+
+#~ msgid "Modification time (nanoseconds) out of range"
+#~ msgstr "Am mionathraithe (nanashoicindí) as raon"
+
+#~ msgid "Device number out of range"
+#~ msgstr "Uimhir ghléis as raon"
+
+#~ 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"
+
+#~ msgid "creating multi-volume archives in posix format requires using --tape-length (-L) option"
+#~ msgstr "Ní mór an rogha --tape-length (-L) a úsáid agus cartlanna il-imleabhair á gcruthú i bhformáid posix"
+
+#~ msgid "rmtd: Garbage command %c\n"
+#~ msgstr "rmtd: Ordú dramhaíola %c\n"
+
+#~ msgid "Missing file name after -C"
+#~ msgstr "Ainm comhaid ar iarraidh i ndiaidh -C"
+
+#~ msgid "exclude patterns are plain strings"
+#~ msgstr "ná bain úsáid as saoróga i bpatrúin eisiata"
+
+#~ msgid "exclude patterns use wildcards (default)"
+#~ msgstr "bain úsáid as saoróga i bpatrúin (réamhshocrú)"
+
+#~ msgid "print total bytes written while creating archive"
+#~ msgstr "taispeáin líon na mbloc scríofa sa chartlann"
+
+#~ msgid "When creating archive in verbose mode, list member names as stored in the archive"
+#~ msgstr "Agus cartlann á cruthú sa mhód foclach, taispeáin ainmneacha na mball nuair a chuirtear iad sa chartlann"
+
+#~ msgid "Semantics of -l option will change in the future releases."
+#~ msgstr "Athróidh an bhrí den rogha -l i leaganacha amach anseo."
+
+#~ msgid "Please use --one-file-system option instead."
+#~ msgstr "Bain úsáid as --one-file-system ina ionad, le do thoil."
+
+#~ 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íl baránta AR BITH leis an gclár seo, an oiread atá ceadaithe de réir dlí.\n"
+#~ "Is féidir leat á scaipeadh de réir na gcoinníollacha den GNU General Public License;\n"
+#~ "Féach ar an chomhad `COPYING' chun tuilleadh eolais a fháil."
+
+#~ msgid "Quitting now."
+#~ msgstr "Á scor anois."
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "RABHADH: níl ceanntásc imleabhair ann"
+
+#~ msgid "Visible long name error"
+#~ msgstr "Earráid le hainm fada infheicthe"
+
+#~ msgid "Visible longname error"
+#~ msgstr "Earráid le hainm fada infheicthe"
+
+#~ msgid "don't change access times on dumped files"
+#~ msgstr "ná hathraigh amanna modhnaithe de chomhaid dhumpáilte"
+
+#~ msgid "extract permissions information"
+#~ msgstr "bain eolas faoina ceadanna"
+
+#~ msgid "do not extract permissions information"
+#~ msgstr "ná bain eolas faoina ceadanna"
+
+#~ msgid "dump instead the files symlinks point to"
+#~ msgstr "lean naisc shiombalacha le linn dumpála"
+
+#~ msgid "Print license and exit"
+#~ msgstr "Taispeáin an ceadúnas agus scoir"
+
+#~ msgid ""
+#~ "Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n"
+#~ "for complete list of authors.\n"
+#~ msgstr ""
+#~ "Bunaithe ar obair de John Gilmore agus Jay Fenlason. Tá an liosta údar\n"
+#~ "ina iomláine ar fáil sa chomhad AUTHORS.\n"
+
+#~ msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+#~ msgstr "Rabhadh: níl an rogha -y ar fáil; ar mhaith leat -j?"
+
+#~ msgid "Error in writing to standard output"
+#~ msgstr "Earráid le linn scríobh ar aschur caighdeánach"
diff --git a/po/.reference/ga.s1 b/po/.reference/ga.s1
new file mode 100644
index 00000000..4fb5cb61
--- /dev/null
+++ b/po/.reference/ga.s1
@@ -0,0 +1 @@
+a67bd618a2fe60b079c7d5b89d620c28f217406b -
diff --git a/po/.reference/gl.po b/po/.reference/gl.po
new file mode 100644
index 00000000..16854624
--- /dev/null
+++ b/po/.reference/gl.po
@@ -0,0 +1,1627 @@
+# Galician translation of GNU tar.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Jacobo Tarro Barreiro <jtarrio@iname.com>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.13.25\n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\n"
+"PO-Revision-Date: 2002-03-26 19:17+0100\n"
+"Last-Translator: Jacobo Tarro Barreiro <jtarrio@iname.com>\n"
+"Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumento %s non vlido para %s"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argumento %s ambiguo para %s"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Os argumentos vlidos son:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Erro do sistema descoecido"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: a opcin \"%s\" ambigua\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: a opcin \"--%s\" non admite un argumento\n"
+
+#: lib/getopt.c:723
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: a opcin \"%c%s\" non admite un argumento\n"
+
+#: lib/getopt.c:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: a opcin \"%s\" precisa dun argumento\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opcin \"--%s\" non recoecida\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opcin \"%c%s\" non recoecida\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opcin non admitida -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opcin non vlida -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: a opcin precisa dun argumento -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: a opcin \"-W %s\" ambigua\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: a opcin \"-W %s\" non admite un argumento\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "tamao de bloque"
+
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "\""
+
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "\""
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "memoria esgotada"
+
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Bytes totais escritos: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(canalizacin)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Non se pode pechar"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Non se pode duplicar"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Non se pode empregar arquivos comprimidos ou remotos"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (fillo)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (neto)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Valor non vlido para record_size"
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Non se proporcionou o nome do arquivo"
+
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Non se pode verifica-los arquivos multi-volume"
+
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Non se pode reservar memoria para o factor de bloqueo %d"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Non se poden empregar arquivos comprimidos multi-volume"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Non se poden verifica-los arquivos comprimidos"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Non se poden actualiza-los arquivos comprimidos"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Non se poden verifica-los arquivos da entrada/sada estndar"
+
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "O arquivo non est etiquetado para coincidir con %s"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "O volume %s non coincide con %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Punto de control de escritura %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "No comezo da cinta, sando agora"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Demasiados erros, sando"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Punto de control de lectura %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "Lendo %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "AVISO: Non hai unha cabeceira de volume"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s non contina neste volume"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s ten un tamao incorrecto (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Este volume est fora da secuencia"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Bloque desaliado (%lu bytes) no arquivo"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Tamao do rexistro = %lu bloques"
+
+#: src/buffer.c:1308
+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:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "O fillo morreu co sinal %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "O fillo devolveu o estado %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: contn un nmero de volume non vlido"
+
+#: src/buffer.c:1440
+msgid "Volume number overflow"
+msgstr "Desbordamento no nmero de volume"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "O comando \"%s\" fallou"
+
+#: src/buffer.c:1468
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Prepare o volume #%d para %s e prema enter: "
+
+#: src/buffer.c:1474
+msgid "EOF where user reply was expected"
+msgstr "Chegouse fin de ficheiro onde se esperaba unha resposta do usuario"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "AVISO: O arquivo est incompleto"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nome] Dar un novo nome de ficheiro para os seguintes volumes\n"
+" q Abortar tar\n"
+" ! Executar outro intrprete de comandos\n"
+" ? Amosar esta lista\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Non hai novos volumes; sando.\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "So se puido ler %lu de %lu bytes"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "O contido diferente"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339 src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718 src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367 src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "Fin de ficheiro inesperado no arquivo"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Verificar "
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Tipo de ficheiro \"%c\" descoecido; trtase coma un ficheiro normal"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "O tipo de ficheiro diferente"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "O modo diferente"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Os uid son diferentes"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "Os gid son diferentes"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "A data de modificacin diferente"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "O tamao diferente"
+
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "Non ligado a %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "A ligazn simblica diferente"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "O nmero de dispositivo diferente"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "FALLO NA VERIFICACION: detectronse %d cabeceiras non vlidas"
+
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Xerando cabeceiras octais negativas"
+
+#: src/create.c:200
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "valor %s fra do rango de %s %s..%s; substitundo %s"
+
+#: src/create.c:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "valor %s fra do rango de %s %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Os nomes dos membros conteen \"..\""
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Eliminadndo o \"%.*s\" inicial dos nomes dos membros"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: ficheiro sen cambios; non se envorca"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: o ficheiro o arquivo; non se envorca"
+
+#: src/create.c:1098
+#, 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:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Ficheiro eliminado antes da sa lectura"
+
+#: src/create.c:1399
+#, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: O ficheiro encolleu %s bytes; enchendo con ceros"
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: o ficheiro cambiou mentres se la"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: ignrase o socket"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: ignrase a porta"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipo de ficheiro descoecido; ignrase este ficheiro"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Isto non semella un arquivo tar"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Pasando seguinte cabeceira"
+
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Borrando o que non sexan cabeceiras do arquivo"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: a marca de tempo %s est %lu segundos no futuro"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inconsistencia inesperada ao crea-lo directorio"
+
+#: src/extract.c:578
+#, 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:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: O nome do membro contn \"..\""
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Non se puido copiar este ficheiro"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Extraendo os ficheiros contiguos coma ficheiros normais"
+
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Tentando extrae-las ligazns simblicas coma ligazns duras"
+
+#: src/extract.c:1207
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Non se pode extraer -- o ficheiro continuacin doutro volume"
+
+#: src/extract.c:1216
+msgid "Visible long name error"
+msgstr "Erro no nome longo visible"
+
+#: src/extract.c:1224
+#, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
+msgstr "%s: Tipo de ficheiro \"%c\" descoecido, extrandoo coma ficheiro normal"
+
+#: src/extract.c:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "O erro non recuperable: sese agora"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Renomeouse o directorio"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: O directorio novo"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Marca de tempo non vlida"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "Marca de tempo fra de rango"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Nmero de dispositivo non vlido"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "Nmero de dispositivo fra de rango"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Nmero de inode non vlido"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "Nmero de inode fra de rango"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Borrando %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Non se pode eliminar"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Omitndoo"
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloque %s: ** Bloque de nulos **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloque %s: ** Fin de Ficheiro **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Atopronse espacios na cabeceira onde se esperaba un valor nmerico de %s"
+
+#: src/list.c:606
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "O valor octal do arquivo %.*s est fra do rango de %s; suponse complemento a 2"
+
+#: src/list.c:616
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "O valor octal do arquivo %.*s est fra do rango de %s"
+
+#: src/list.c:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "O arquivo contn cabeceiras base-64 obsoletas"
+
+#: src/list.c:645
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "A cadea base-64 asinada do arquivo %s est fra do rango de %s"
+
+#: src/list.c:676
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "O valor base-256 do arquivo est fra do rango de %s"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "O arquivo contn %.*s onde se esperaba un valor numrico de %s"
+
+#: src/list.c:724
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "O valor do arquivo %s est fra do rango de %s %s..%s"
+
+#: src/list.c:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "bloque %s: "
+
+#: src/list.c:946
+msgid "Visible longname error"
+msgstr "Erro de nome longo visible"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr " ligazn a %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " Tipo de ficheiro %s descoecido\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Cabeceira de Volume--\n"
+
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Contina no byte %s--\n"
+
+#: src/list.c:1112
+msgid "--Mangled file names--\n"
+msgstr "--Nomes de ficheiro alterados--\n"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Creando o directorio:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Fin de ficheiro inesperado nos nomes alterados"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Non se pode renomear a %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Renomeado %s a %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Non se pode crear unha ligazn simblica a %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Creada unha ligazn simblica de %s a %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Comando de correccin %s descoecido"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Renomeando %s a %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Renomeando %s a %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Non se pode armacena-lo directorio de traballo"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Non se pode cambia-lo directorio de traballo"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Non se pode %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Aviso: Non se pode %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Non se pode cambia-lo modo a %s"
+
+#: src/misc.c:562
+#, 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"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Non se pode libar a %s"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Erro de lectura no byte %s, lendo %lu bytes"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Aviso: Erro de lectura no byte %s, lendo %lu bytes"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Non se pode saltar a %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Aviso: Non se pode saltar a %s"
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Non se pode crear unha ligazn simblica a %s"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Gravronse s %lu de %lu bytes"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "proceso fillo"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "canle interproceso"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Falta o nome de ficheiro despois de -C"
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Non atopado no arquivo"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Non se pode reservar espacio para o buffer\n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Non se pode reservar espacio para o buffer"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Escriba '%s --help' para mis informacin.\n"
+
+#: src/rmt.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"
+msgstr ""
+"Emprego: %s [OPCIN]\n"
+"Manipula unha unidade de fita, aceptando comandos dun proceso remoto.\n"
+"\n"
+" --version Amosar informacin da versin.\n"
+" --help Amosar esta axuda.\n"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid ""
+"\n"
+"Report bugs to <bug-tar@gnu.org>.\n"
+msgstr ""
+"\n"
+"Informe dos erros no programa a <bug-tar@gnu.org>.\n"
+"Informe dos erros na traduccin a <proxecto@trasno.net>.\n"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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 ""
+"Este programa vn SEN GARANTA, ata o permitido pola lei. Pode redistribulo\n"
+"baixo os termos da Licencia Pblica Xeral de GNU; vexa o ficheiro chamado\n"
+"COPYING para mis detalles."
+
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Desprazamento fra de rango"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Direccin de desprazamento fra de rango"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Fin de ficheiro prematura\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Fin de ficheiro prematura"
+
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Comando lixo %c\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Comando lixo"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Servicio non dispoible"
+
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "entrada estndar"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "sada estndar"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Non se pode executar un intrprete de comandos remoto"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "As opcins \"-%s\" e \"-%s\" precisan da entrada estndar"
+
+#: src/tar.c:292
+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' armacena varios ficheiros xuntos nun s arquivo en fita ou disco, e\n"
+"pode restaurar ficheiros individuais do arquivo.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Emprego: %s [OPCIN]... [FICHEIRO]...\n"
+"\n"
+"Exemplos:\n"
+" %s -cf arquivo.tar pepe xoan # Crear arquivo.tar dos ficheiros pepe e xoan.\n"
+" %s -tvf arquivo.tar # Listar tdolos ficheiros de arquivo.tar\n"
+" # dando moitos datos\n"
+" %s -xf arquivo.tar # Extraer tdolos ficheiros de arquivo.tar.\n"
+
+#: src/tar.c:303
+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"
+"Se unha opcin longa ten un argumento obrigatorio, tamn o para a\n"
+"opcin curta equivalente. A mesma regra para os argumentos opcionais.\n"
+
+#: src/tar.c:308
+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"
+"Modo de operacin principal:\n"
+" -t, --list lista o contido dun arquivo\n"
+" -x, --extract, --get extrae ficheiros dun arquivo\n"
+" -c, --create crea un novo arquivo\n"
+" -d, --diff, --compare busca diferencias entre o arquivo e o sistema\n"
+" de ficheiros\n"
+" -r, --append engade ficheiros na fin do arquivo\n"
+" -u, --update s engade ficheiros mis novos c copia do arquivo\n"
+" -A, --catenate engade ficheiros tar a un arquivo\n"
+" --concatenate igual que -A\n"
+" --delete borra do arquivo (non en fitas!)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Modificadores de operacin:\n"
+" -W, --verify tenta verifica-lo arquivo despois de escribilo\n"
+" --remove-files borra os ficheiros despois de engadilos no arquivo\n"
+" -k, --keep-old-files non sobrescribe ficheiros existentes ao extraer\n"
+" --overwrite sobrescribe os ficheiros existentes ao extraer\n"
+" --overwrite sobrescribe metadatos dos directorios ao extraer\n"
+" -U, --unlink-first borra cada ficheiro antes de extraer sobre el\n"
+" --recursive-unlink borra a rbore de directorios antes de extraer\n"
+" -S, --sparse manexa eficientemente os ficheiros dispersos\n"
+" -O, --to-stdout extrae os ficheiros sada estndar\n"
+" -G, --incremental trata os antigos arquivos incrementais GNU\n"
+" -g, --listed-incremental trata os novos arquivos incrementais GNU\n"
+" --ignore-failed-read non sar con erro polos ficheiros ilexibles\n"
+
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Manexo dos atributos dos ficheiros:\n"
+" --owner=NOME forza NOME coma dono dos ficheiros engadidos\n"
+" --group=NOME forza NOME como grupo dos ficheiros engadidos\n"
+" --mode=CAMBIOS forza o modo CAMBIOS para os ficheiros engadidos\n"
+" --atime-preserve non cambia as datas de acceso dos ficheiros\n"
+" -m, --modification-time non extrae a data de modificacin dos ficheiros\n"
+" --same-owner tenta extrae-los ficheiros co mesmo propietario\n"
+" --no-same-owner extrae-los ficheiros coma o usuario actual\n"
+" --numeric-owner sempre usa nmeros para os nomes de dono/grupo\n"
+" -p, --same-permissions extrae toda a informacin dos permisos\n"
+" --no-same-permissions non extrae a informacin dos permisos\n"
+" --preserve-permissions igual que -p\n"
+" -s, --same-order ordea os nomes a extraer igual que os do arquivo\n"
+" --preserve-order igual que -s\n"
+" --preserve igual que -p e -s ao mesmo tempo\n"
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Seleccin e cambio de dispositivo:\n"
+" -f, --file=ARQUIVO usa o ficheiro ou o dispositivo ARQUIVO\n"
+" --force-local arquivo local incluso cun signo de dous puntos\n"
+" --rsh-command=COMANDO emprega-lo COMANDO remoto no canto de rsh\n"
+" -[0-7][lmh] especificar unidade e densidade\n"
+" -M, --multi-volume crear/listar/extraer un arquivo multi-volume\n"
+" -L, --tape-length=NUM cambia-la fita tras gravar NUM x 1024 bytes\n"
+" -F, --info-script=FICH executa-lo script tras cada fita (implica -M)\n"
+" --new-volume-script=FICH o mesmo que -F FICH\n"
+" --volno-file=FICH usar/actualizar o nmero de volume en FICH\n"
+
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Bloqueo dos dispositivos:\n"
+" -b, --blocking-factor=BLOQUES BLOQUES x 512 bytes por rexistro\n"
+" --record-size=TAM TAM bytes por rexistro, mltiplo de 512\n"
+" -i, --ignore-zeros ignora-los bloques de ceros do arquivo\n"
+" -B, --read-full-records cambia-lo factor de blocaxe mentres se le\n"
+"\t\t\t (para canalizacins 4.2BSD)\n"
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Seleccin do formato do arquivo:\n"
+" -V, --label=NOME crear un arquivo co nome de volume NOME\n"
+" PATRN ao listar/extraer, emprega-lo PATRN\n"
+" -o, --old-archive, --portability escribir un arquivo con formato V7\n"
+" --posix escribir un arquivo con formato POSIX\n"
+" -j, --bzip2 filtra-lo arquivo por bzip2\n"
+" -z, --gzip, --ungzip filtra-lo arquivo por gzip\n"
+" -Z, --compress, --uncompress filtra-lo arquivo por compress\n"
+" --use-compress-program=PROG filtra-lo arquivo polo PROGrama\n"
+" (debe aceptar -d)\n"
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Seleccin de ficheiros locais:\n"
+" -C, --directory=DIR cambiar directorio DIR\n"
+" -T, --files-from=FICH obte-los nomes a extraer ou engadir do FICHeiro\n"
+" --null -T le nomes terminados en nulo, desactiva -C\n"
+" --exclude=PATRN excluir ficheiros, dados coma un PATRN\n"
+" -X, --exclude-from=FICH patrns de exclusin listados no FICHeiro\n"
+" --anchored os patrns de exclusin encaixan no principio\n"
+" do nome do ficheiro (por defecto)\n"
+" --no-anchored os patrns de exclusin encaixan despois de /\n"
+" --ignore-case exclusin que ignora maisculas/minsculas\n"
+" --no-ignore-case exclusin que distingue maisculas/minsculas\n"
+" --wildcards os patrns de exclusin empregan comodns\n"
+" --wildcards-match-slash os patrns de exclusin encaixan en / (def.)\n"
+" --no-wildcards-match-slash os patrns de exclusin non encaixan en /\n"
+" -P, --absolute-names non elimina-las / iniciais dos nomes de ficheiro\n"
+" -h, --dereference envorca-los ficheiros aos que levan as ligazns\n"
+" --no-recursion evita-lo descenso pola rbore de directorios\n"
+" -l, --one-file-system quedar no sistema de ficheiros local\n"
+" ao crea-lo arquivo\n"
+" -K, --starting-file=NOME comeza-lo arquivo polo ficheiro NOME\n"
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATA gravar s os ficheiros posteriores DATA\n"
+" --newer-mtime comparar data e hora s cando cambien os datos\n"
+" --after-date=DATA o mesmo que -N\n"
+
+#: src/tar.c:418
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version control\n"
+" --suffix=SUFFIX backup before removal, override usual suffix\n"
+msgstr ""
+" --backup[=CONTROL] copiar antes de borrar, escoller control\n"
+" de versins\n"
+" --suffix=SUFIXO copiar antes de borrar, ignora-lo sufixo normal\n"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Mensaxes informativas:\n"
+" --help amosar esta axuda e sar\n"
+" --version amosa-lo nmero de versin de tar e sar\n"
+" -v, --verbose lista-los ficheiros procesados\n"
+" --checkpoint escribi-los nomes dos directorios ao le-lo arquivo\n"
+" --totals indica-los bytes totais escritos ao crea-lo arquivo\n"
+" -R, --block-number amosa-lo nmero do bloque no arquivo en cada mensaxe\n"
+" -w, --interactive pedir confirmacin para cada accin\n"
+" --confirmation o mesmo que -w\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+"O sufixo de copia de seguridade \"~\", ags se se cambia con --suffix ou\n"
+"SIMPLE_BACKUP_SUFFIX. O control de versins pode estabrecerse con --backup ou\n"
+"VERSION_CONTROL, os valores son:\n"
+"\n"
+" t, numbered crea copias de seguridade numeradas\n"
+" nil, existing numera se existen copias de seguridade numeradas\n"
+" never, simple sempre fai copias de seguridade sinxelas\n"
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"GNU tar non pode ler nin producir arquivos `--posix'. Se a variable de\n"
+"ambiente POSIXLY_CORRECT existe, as extensins GNU quedan desactivadas coa\n"
+"opcin `--posix'.\n"
+"\n"
+"O soporte de POSIX est s parcialmente implementado, non se fe dela anda.\n"
+"ARQUIVO pode ser un FICHEIRO, SERVIDOR:FICHEIRO ou USUARIO@SERVIDOR:FICHEIRO;\n"
+"DATA pode ser unha data textual ou un nome de ficheiro que comeza por \"/\" ou\n"
+"\".\"; neste caso emprgase a data do ficheiro.\n"
+"As opcins por defecto *deste* tar son \"-f%s -b%d\".\n"
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Non pode especificar mis dunha das opcins \"-Acdtrux\""
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Opcins de compresin conflictivas"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "A antiga opcin \"%c\" precisa dun argumento."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Opcin obsoleta, agora implicada por --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Nome de opcin obsoleta substitudo por --blocking-factor"
+
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Factor de bloqueo non vlido"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Nome de opcin obsoleta substitudo por --read-full-records"
+
+#: src/tar.c:696
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Aviso: a opcin -I non est soportada; quera dicir -j ou -T?"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "Lonxitude da fita non vlida"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Nome de opcin obsoleta substitudo por --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr "Mis dunha data de umbral"
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Non se atopou o ficheiro de data"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Substitundo o formato de data descoecido %2$s por %1$s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "Opcins de formato de arquivo conflictivas"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Nome de opcin obsoleta substitudo por --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Nome de opcin obsoleta substitudo por --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Aviso: a opcin -y non est soportada; quera dicir -j?"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Nome de opcin obsoleta substitudo por --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Grupo non vlido"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Proporcionouse na opcin un modo non vlido"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Propietario non vlido"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Tamao de rexistro non vlido"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "O tamao do rexistro debe ser mltiplo de %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Opcins `-[0-7][lmh]' non soportadas por *este* tar"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Escrito por John Gilmore e Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Qurense as caractersticas de GNU no formato de arquivo incompatible"
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Varios ficheiros de arquivo requiren a opcin \"-M\""
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Non se pode combinar --listed-incremental con --newer"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: A etiqueta do volume longa de mis (o lmite %lu bytes)"
+
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "De xeito cobarde rexitase crear un ficheiro baleiro"
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "As opcins \"-Aru\" son incompatibles con \"-f -\""
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Debe especificar unha das opcins \"-Acdtrux\""
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Erro ao gravar na sada estndar"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Sada por erro retrasada dos erros anteriores"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: O ficheiro encolleu %s bytes"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Xera-los ficheiros de datos para a suite de probas de GNU tar.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Emprego: %s [OPCIN]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Se unha opcin longa ten un argumento obrigatorio, tamn o para a opcin\n"
+"curta equivalente.\n"
+"\n"
+" -l, --file-length=LONXIT LONXITude do ficheiro xerado\n"
+" -p, --pattern=PATRN PATRN \"default\" ou \"zeros\"\n"
+" --help amosar esta axuda e sa\n"
+" --version amosar informacin sobre a versin e sar\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr "Escrito por Franois Pinard"
+
+#~ msgid "Cannot close descriptor %d"
+#~ msgstr "Non se puido cerra-lo descriptor %d"
+
+#~ msgid "Cannot properly duplicate %s"
+#~ msgstr "Non se puido duplicar %s"
+
+#~ msgid "Cannot open pipe"
+#~ msgstr "Non se puido crear unha canalizacin"
+
+#~ msgid "Cannot fork"
+#~ msgstr "Non se puido bifurcar"
+
+#~ msgid "(child) Pipe to stdin"
+#~ msgstr "(fillo) Canalizar da entrada estndar"
+
+#~ msgid "Cannot open archive %s"
+#~ msgstr "Non se puido abri-lo arquivo %s"
+
+#~ msgid "Archive to stdout"
+#~ msgstr "Arquivar sada estndar"
+
+#~ msgid "Cannot exec %s"
+#~ msgstr "Non se puido executar %s"
+
+#~ msgid "Child cannot fork"
+#~ msgstr "O fillo non puido ser bifurcado"
+
+#~ msgid "((child)) Pipe to stdout"
+#~ msgstr "((fillo)) Canalizar sada estndar"
+
+#~ msgid "(grandchild) Pipe to stdin"
+#~ msgstr "(neto) Canalizar da entrada estndar"
+
+#~ msgid "Cannot read from compression program"
+#~ msgstr "Non se puido ler dende o programa de compresin"
+
+#~ msgid "(child) Pipe to stdout"
+#~ msgstr "(fillo) Canalizar sada estndar"
+
+#~ msgid "Archive to stdin"
+#~ msgstr "Arquivar da entrada estndar"
+
+#~ msgid "((child)) Pipe to stdin"
+#~ msgstr "((fillo)) Canalizacin da entrada estndar"
+
+#~ msgid "(grandchild) Pipe to stdout"
+#~ msgstr "(neto) Canalizacin sada estndar"
+
+#~ msgid "Cannot write to compression program"
+#~ msgstr "Non se puido escribir no programa de compresin"
+
+#~ msgid "Write to compression program short %d bytes"
+#~ msgstr "Quedan %d bytes por escribir ao programa de compresin"
+
+#~ msgid "Cannot open %s"
+#~ msgstr "Non se puido abrir %s"
+
+#~ msgid "Only wrote %u of %u bytes to %s"
+#~ msgstr "S escritos %u dun total de %u bytes en %s"
+
+#~ msgid "Read error on %s"
+#~ msgstr "Erro de lectura en %s"
+
+#~ msgid "Archive %s EOF not on block boundary"
+#~ msgstr "A fin do ficheiro (EOF) do arquivo %s non se atopa no lmite do bloque"
+
+#~ msgid "Only read %d bytes from archive %s"
+#~ msgstr "So lidos %d bytes do arquivo %s"
+
+#~ msgid "WARNING: Cannot close %s (%d, %d)"
+#~ msgstr "ATENCIN: Non se puido cerrar %s (%d, %d)"
+
+#~ msgid " (core dumped)"
+#~ msgstr " (memoria volcada)"
+
+#~ msgid "Cannot fork!"
+#~ msgstr "Non se puido bifurcar!"
+
+#~ msgid "Cannot exec a shell %s"
+#~ msgstr "Non se puido executar un intrprete de comandos %s"
+
+#~ msgid "Removing drive spec from names in the archive"
+#~ msgstr "Borrando a especificacin de unidade dos nomes do arquivo"
+
+#~ msgid "Removing leading `/' from absolute path names in the archive"
+#~ msgstr "Borrando o caracter '/' inicial das rutas absolutas do arquivo"
+
+#~ msgid "Wrote %ld of %ld bytes to file %s"
+#~ msgstr "Escritos %ld de %ld bytes no ficheiro %s"
+
+#~ msgid "Amount actually written is (I hope) %d.\n"
+#~ msgstr "Actualmente escritos (espero) %d.\n"
+
+#~ msgid "Cannot add file %s"
+#~ msgstr "Non se puido engadi-lo ficheiro %s"
+
+#~ msgid "Cannot add directory %s"
+#~ msgstr "Non se puido engadi-lo directorio %s"
+
+#~ msgid "Cannot open directory %s"
+#~ msgstr "Non se puido abri-lo directorio %s"
+
+#~ msgid "File name %s%s too long"
+#~ msgstr "O nome do ficheiro %s%s demasiado longo"
+
+#~ msgid "Could not allocate memory for diff buffer of %d bytes"
+#~ msgstr "Non se puido reservar memoria para un buffer de diferencias de %d bytes"
+
+#~ msgid "Data differs"
+#~ msgstr "Datos diferentes"
+
+#~ msgid "Unexpected EOF on archive file"
+#~ msgstr "Fin de ficheiro (EOF) inesperado no arquivo"
+
+#~ msgid "File does not exist"
+#~ msgstr "O ficheiro non existe"
+
+#~ msgid "Cannot stat file %s"
+#~ msgstr "Non se puido evalua-lo ficheiro %s"
+
+#~ msgid "Not a regular file"
+#~ msgstr "Non un ficheiro normal"
+
+#~ msgid "Error while closing %s"
+#~ msgstr "Erro mentres se cerraba %s"
+
+#~ msgid "Does not exist"
+#~ msgstr "Non existe"
+
+#~ msgid "No such file or directory"
+#~ msgstr "Non se atopa o ficheiro ou directorio"
+
+#~ msgid "Mode or device-type changed"
+#~ msgstr "O modo ou o tipo do dispositivo cambiaron"
+
+#~ msgid "No longer a directory"
+#~ msgstr "Xa non un directorio"
+
+#~ msgid "Cannot open file %s"
+#~ msgstr "Non se puido abrir o ficheiro %s"
+
+#~ msgid "Cannot seek to %ld in file %s"
+#~ msgstr "No se puido posicionar en %ld no ficheiro %s"
+
+#~ msgid "Could not rewind archive file for verify"
+#~ msgstr "Non se puido rebobinar-lo ficheiro de arquivo para verificar"
+
+#~ msgid "Could not re-position archive file"
+#~ msgstr "Non se puido reposicionar o ficheiro de arquivo"
+
+#~ msgid "%s: Could not change access and modification times"
+#~ msgstr "%s: Non se puido cambia-la hora de acceso e modificacin"
+
+#~ msgid "%s: Cannot lchown to uid %d gid %d"
+#~ msgstr "%s: Non se puido facer lchown a uid %d e gid %d"
+
+#~ msgid "%s: Cannot chown to uid %d gid %d"
+#~ msgstr "%s: Non se puido facer chown a uid %d e gid %d"
+
+#~ msgid "%s: Could not write to file"
+#~ msgstr "%s: Non se puido escribir no ficheiro"
+
+#~ msgid "%s: Could not create file"
+#~ msgstr "%s: Non se puido crea-lo ficheiro"
+
+#~ msgid "%d at %d\n"
+#~ msgstr "%d a %d\n"
+
+#~ msgid "%s: Error while closing"
+#~ msgstr "%s: Erro pechando"
+
+#~ msgid "%s: Could not link to `%s'"
+#~ msgstr "%s: Non se puido enlazar a %s"
+
+#~ msgid "%s: Could not make node"
+#~ msgstr "%s: Non se puido facer un nodo"
+
+#~ msgid "%s: Could not make fifo"
+#~ msgstr "%s: Non se puido facer un fifo"
+
+#~ msgid "%s: Could not create directory"
+#~ msgstr "%s: No se puido crear un directorio"
+
+#~ msgid "Added write and execute permission to directory %s"
+#~ msgstr "Engadidos permisos de lectura e escritura directorio %s"
+
+#~ msgid "Could not get current directory"
+#~ msgstr "Non se puido obte-lo directorio actual"
+
+#~ msgid "Could not get current directory: %s"
+#~ msgstr "Non se puido obte-lo directorio actual: %s"
+
+#~ msgid "File name %s/%s too long"
+#~ msgstr "O nome de ficheiro %s/%s demasiado longo"
+
+#~ msgid "Cannot chdir to %s"
+#~ msgstr "Non se puido ir ao directorio %s"
+
+#~ msgid "Error while deleting %s"
+#~ msgstr "Erro durante o borrado de %s"
+
+#~ msgid "Hmm, this doesn't look like a tar archive"
+#~ msgstr "Hum, isto non semella un arquivo tar"
+
+#~ msgid "Skipping to next file header"
+#~ msgstr "Pasando seguinte cabeceira de ficheiro"
+
+#~ msgid "EOF in archive file"
+#~ msgstr "Fin de ficheiro (EOF) no ficheiro de arquivo"
+
+#~ msgid "Only wrote %ld of %ld bytes to file %s"
+#~ msgstr "S se escribiron %ld de %ld bytes no ficheiro %s"
+
+#~ msgid "Cannot read confirmation from user"
+#~ msgstr "Non se puido le-la confirmacin do usuario"
+
+#~ msgid ""
+#~ "\n"
+#~ "Usage: %s [OPTION]... [FILE]...\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Uso: %s [[OPTION]... [FICHEIRO]...\n"
+
+#~ msgid "Invalid group given on option"
+#~ msgstr "Grupo incorrecto dado na opcin"
+
+#~ msgid ""
+#~ "\n"
+#~ "Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+
+#~ 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 ""
+#~ "Iso software libre; vexa o cdigo fonte para as condicins de copia. NON hai\n"
+#~ "garanta; nin sequera de MERCABILIDADE ou IDONEIDADE PARA UNHA FIN PARTICULAR.\n"
+
+#~ msgid "Read error at byte %ld reading %d bytes in file %s"
+#~ msgstr "Erro de lectura no byte %ld lendo %d bytes no ficheiro %s"
+
+#~ msgid "Unknown pattern `%s'"
+#~ msgstr "Patrn descoecido `%s'"
+
+#~ msgid ""
+#~ "\n"
+#~ "Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Written by Franois Pinard <pinard@iro.umontreal.ca>.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Escrito por Franois Pinard <pinard@iro.umontreal.ca>.\n"
diff --git a/po/.reference/gl.s1 b/po/.reference/gl.s1
new file mode 100644
index 00000000..8f4ef214
--- /dev/null
+++ b/po/.reference/gl.s1
@@ -0,0 +1 @@
+9accb92c5b16c50cea6e4409810de045d7f2d79d -
diff --git a/po/.reference/hr.po b/po/.reference/hr.po
new file mode 100644
index 00000000..d045e95f
--- /dev/null
+++ b/po/.reference/hr.po
@@ -0,0 +1,1419 @@
+# GNU tar .po message translation file for hr_HR locale
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Mirsad Todorovac <mtodorov_69@yahoo.com>, 2002.
+# ... wishes to thank everybody who helped in good faith.
+#
+# Well, in 03:12 hrs (for 1st pass)!! who beats me I owe him a pizza ;-) -- TM
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.13.25\n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "pogrean argument %s za %s"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "nejednoznaan argument %s za %s"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Ispravni argumenti su:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Nepoznata pogreka u sistemu"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opcija `%s' nije jednoznana\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opcija `--%s' ne dozvoljava argument\n"
+
+#: lib/getopt.c:723
+#, 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:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: za opciju `%s' neophodan je argument\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ne prepoznajem opciju `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ne prepoznajem opciju `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ilegalna opcija -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: pogrena opcija -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opcija zahtijeva neophodan argument -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opcija `-W %s' nije jednoznana\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opcija `-W %s' ne dozvoljava argument\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "veliina bloka"
+
+#
+# MT -- FIXME -- for now this is left untranslated, until we
+# come to UTF-8 or something alike (20020412)
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "'"
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "iscrpljena memorija"
+
+# FIXME -- ovo nee raditi ako je prevedeno -- Denis?
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Ukupno ispisano bajtova: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(cjevovod - pipe)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Ne mogu zatvoriti"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Neuspjeli dup"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Ne mogu koristiti komprimirane ili udaljene (remote) arhive"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (podproces)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (pod-podproces)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Pogrena vrijednost za record_size"
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Nije dano ime arhive"
+
+# FIXME -- volume -- find more suitable (ask others) -- TM
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Ne mogu verificirati viedjelne arhive"
+
+# FIXME -- blocking factor -- can't translate (ask others) -- TM
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Ne mogu alocirati memoriju za faktor pakiranja u blokove %d"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Ne mogu koristiti viedjelne komprimirane arhive"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Ne mogu verificirati komprimirane arhive"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Ne mogu aurirati komprimirane arhive"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Ne mogu verificirati stdin/stdout arhive"
+
+# FIXME -- clean against source! (TM)
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arhiva nije oznaena labelom da odgovara %s"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Dio arhive %s ne odgovara %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Toka provjere ispisa %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "Poetak trake, zavravam"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Previe pogreaka, zavravam"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Toka provjere itanja %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "itam %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "UPOZORENJE: Nema zaglavlja za dio arhive"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nije nastavljen za ovom dijelu arhive"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s je pogrene veliine (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Ovaj dio arhive je izvan slijeda"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Neporavnat (unaligned) blok (%lu bajtova) unutar arhive"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Veliina sloga = %lu blokova"
+
+#: src/buffer.c:1308
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Ne mogu se pomicati unazad unutar arhive; moe biti neitljiva bez -i"
+
+#: src/buffer.c:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "Potproces zavrio uz signal %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "Podproces zavrio uz status %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: sadri pogrean broj dijela arhive"
+
+#: src/buffer.c:1440
+msgid "Volume number overflow"
+msgstr "Prekoraenje u broju dijela arhive"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "Neuspjela `%s' naredba"
+
+#: src/buffer.c:1468
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Pripremite dio arhive #%d za %s i pritisni <RETURN>:"
+
+#: src/buffer.c:1474
+msgid "EOF where user reply was expected"
+msgstr "Naen EOF gdje sam oekivao odgovor korisnika"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "UPOZORENJE: Arhiva nije kompletirana"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [ime] Daj novo ime datoteke za slijedei (i nadovezujue) dijelove\n"
+" q Zavri tar\n"
+" ! Pokreni podljusku operativnog sistema\n"
+" ? Ispii ovu listu\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Nema novog dijela arhive; zavravam.\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "Uspio proitati samo %lu od %lu bajtova"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "Sadraji se razlikuju"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339 src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718 src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367 src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "Neoekivani EOF u arhivi"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Verificiraj "
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Nepoznat tip datoteke '%c', diff-iran kao normalna datoteka"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "Tipovi datoteka se razlikuju"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "Mod se razlikuje"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Uid se razlikuje"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "Gid se razlikuje"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "Mod time (vrijeme modifikacije) se razlikuje"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "Veliina se razlikuje"
+
+# FIXME -- language purists might lynch me for this "polinkan" -- TM
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nije polinkan na %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "Simboliki link se razlikuje"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "Broj ureaja (device number) se razlikuje"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "NEUSPJELA VERIFIKACIJA: detektirano %d pogrenih zaglavlja"
+
+# FIXME -- find `pade' here from source
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Generiram negativna oktalna zaglavlja"
+
+#: src/create.c:200
+#, 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:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "vrijednost %s izvan %s raspona %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Imena lanova sadre `..'"
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Uklanjam vodee `%.*s' iz imena lanova"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: datoteka nepromijenjena; ne arhiviram ju"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: datoteka je arhiva; ne arhiviram ju"
+
+#: src/create.c:1098
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: datoteka je na drugom datotenom sustavu; ne arhiviram ju"
+
+#: src/create.c:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Datoteka uklonjena (removed) prije nego to smo ju proitali"
+
+#: src/create.c:1399
+#, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: Datoteka se skratila za %s bajtova; nadopunjujemo nulama"
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: datoteka se promijenila dok smo ju itali"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket ignoriran"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door ignoriran"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Nepoznat tip datoteke; datoteka ignorirana"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Ovo ne izgleda kao tar arhiva"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Preskaem do slijedeeg zaglavlja"
+
+# FIXME -- non-header dubious -- clean against source! -- TM
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Briem neispravno zaglavlje iz arhive"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: oznaka vremena %s je %lu sekundi u budunost"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Neoekivana nekonzistentnost kod otvaranja direktorija"
+
+#: src/extract.c:578
+#, 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:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: Ime lana sadri `..'"
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Nisam uspio napraviti backup ove datoteke"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Ekstrahiram neprekinute datoteke kao regularne datoteke"
+
+# FIXME -- 'hard links' -- TM
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Pokuavam ekstrakciju simbolikih linkova kao hard linkova"
+
+#: src/extract.c:1207
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Ne mogu ekstrahirati -- datoteka se nastavlja iz drugog dijela arhive"
+
+# FIXME -- clarify this against source -- TM -- didn't help
+# Paul E. said this means:
+#
+# "tar" read a LONGNAME or LONGLINK header from the archive in a context
+# where it was not expected.
+#: src/extract.c:1216
+msgid "Visible long name error"
+msgstr "Vidljiva pogreka u dugom imenu"
+
+#: src/extract.c:1224
+#, 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:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "Greka iz koje se ne mogu oporaviti: zavravam s radom"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktoriju promijenjeno ime"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Novi direktorij"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Pogrena oznaka vremena"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "Oznaka vremena izvan opsega"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Pogrean broj ureaja"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "Broj ureaja izvan opsega"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Pogrean inode broj"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "Inode broj izvan opsega"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Briem %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ne mogu obrisati"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Izostavljam"
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok ispunjen NULama **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Kraj datoteke **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Razmaci u zaglavlju gdje se oekuje numerika %s vrijednost"
+
+#: src/list.c:606
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Oktalna vrijednost %.*s iz arhive je izvan %s opsega; pretpostavljam dvojni komplement"
+
+#: src/list.c:616
+#, 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:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arhiva sadri base-64 zaglavlja zastarjelog formata"
+
+# FIXME??
+#: src/list.c:645
+#, 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:676
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Base-256 vrijednost iz arhive je izvan %s opsega"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Arhiva sadri %.*s gdje je oekivana numerika %s vrijednost"
+
+#: src/list.c:724
+#, 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:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#: src/list.c:946
+msgid "Visible longname error"
+msgstr "Vidljiva pogreka u dugom imenu"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr " link do %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " nepoznat tip datoteke %s\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Zaglavlje dijela arhive--\n"
+
+# FIXME -- clarify against source -- TM
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Nastavljeno s bajtom %s--\n"
+
+# FIXME -- 'mangled filenames'???
+#: src/list.c:1112
+msgid "--Mangled file names--\n"
+msgstr "--Manglirana imena datoteka--\n"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Kreiram direktorij:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Neoekivan EOF u mangliranim imenima"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Ne mogu preimenovati u %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Preimenovao %s u %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Ne mogu napraviti simboliki link prema %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Napravio simboliki link %s prema %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Nepoznata naredba za demangliranje %s"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Preimenujem %s u %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Preimenujem %s natrag u %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Ne mogu pohraniti radni direktorij"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Ne mogu promijeniti radni direktorij"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Ne mogu %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Upozorenje: Ne mogu %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Ne mogu promijeniti mod u %s"
+
+#: src/misc.c:562
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Ne mogu promijeniti vlasnitvo na uid %lu, gid %lu"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Ne mogu napraviti hard link na %s"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Pogreka u itanju na bajtu %s, itam %lu bajtova"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Upozorenje: Pogreka u itanju na bajtu %s, itam %lu bajtova"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Neuspjeli seek na %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Upozorenje: Neuspjeli seek na %s"
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Ne mogu kreirati simboliki link prema %s"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Upsjeno zapisao samo %lu od %lu bajtova"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "podproces"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "meuprocesni kanal"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Nedostaje ime datoteke nakon -C"
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Nije naeno u arhivi"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Ne mogu alocirati prostor za meuspremnik\n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Ne mogu alocirati prostor za meuspremnik"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Pokuajte `%s --help' za vie informacija.\n"
+
+#: src/rmt.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"
+msgstr ""
+"Koritenje: %s [OPCIJA]\n"
+"Upravljaj jedinicom trake, prihvaajui naredbe od udaljenih procesa.\n"
+"\n"
+" --version Informacije o verziji programskih ispisa.\n"
+" --help Ispii ovu pomo.\n"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid ""
+"\n"
+"Report bugs to <bug-tar@gnu.org>.\n"
+msgstr ""
+"\n"
+"Prijavi greke i bugove na <bug-tar@gnu.org>.\n"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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 ""
+"Ovaj program dolazi BEZ GARANCIJA, do granica dozvoljenih zakonom.\n"
+"Moete ga redistribuirati pod uvjetima GNU General Public License;\n"
+"vidi datoteku imena COPYING za detalje."
+
+# FIXME -- find xlation for 'seek offset' -- TM
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Seek ofset izvan opsega"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Seek smjer izvan opsega"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Prerani eof\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Prerani kraj datoteke"
+
+# FIXME -- now this is supposed to be funny
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: %c je neispravna naredba\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Neispravna naredba"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Servis nije dostupan"
+
+# FIXME -- verify against source
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "stdin -- standardni ulaz"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "stdout -- standardni ulaz"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Ne mogu pokrenuti udaljenu (remote) ljusku"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Opcije `-%s' i `-%s' obje zahtijevaju standardni ulaz"
+
+#: src/tar.c:292
+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' sprema mnogo datoteka zajedno u jednu arhivu na traci ili disku, i\n"
+"moe povratiti pojedinane datoteke iz arhive.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Usage: %s [OPCIJA]... [DATOTEKA]...\n"
+"\n"
+"Primjeri:\n"
+" %s -cf arhiva.tar foo bar # Kreiraj arhiva.tar od datoteka foo i bar.\n"
+" %s -tvf arhiva.tar # Ispii redom sve datoteke iz arhiva.tar opirno.\n"
+" %s -xf arhiva.tar # Ekstrahiraj sve datoteke iz arhiva.tar.\n"
+
+#: src/tar.c:303
+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"
+"Ako duga opcija pokazuje agument kao obavezan, onda je obavezan\n"
+"i za ekvivalentnu kratku opciju takoer. Jednako vrijedi i za opcionalne\n"
+"argumente.\n"
+
+#: src/tar.c:308
+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"
+"Glavni mod rada:\n"
+" -t, --list ispii sadraje arhive\n"
+" -x, --extract, --get ekstrahiraj datoteke iz arhive\n"
+" -c, --create kreiraj novu arhivu\n"
+" -d, --diff, --compare nai razlike izmeu arhive i datotenog sustava\n"
+" -r, --append nadodaj datoteke na kraj arhive\n"
+" -u, --update nadodaj samo datoteke novije od kopije u arhivi\n"
+" -A, --catenate nadodaj tar datoteke na arhivu\n"
+" --concatenate isto kao -A\n"
+" --delete izbrii iz arhive (ne radi na magnetskim trakama!)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Modifikatori operacija: -W, --verify pokuaj verificirati arhivu nakon pisanja\n"
+" --remove-files obrii datoteke nakon njihovog dodavanja arhivi\n"
+" -k, --keep-old-files ne zamjenjuj postojee datoteke kod ekstrakcije\n"
+" --overwrite prepisuj postojee datoteke kod ekstrakcije\n"
+" --overwrite-dir prepisuj meta-podatke direktorija kod ekstrakcije\n"
+" -U, --unlink-first obrii svaku datoteku prije ekstrakcije preko nje\n"
+" --recursive-unlink isprazni hijerarhije prije ekstrahiranja u\n"
+" direktorij\n"
+" -S, --sparse tretiraj efikasno 'sparse' datoteke\n"
+" (slabo popunjene datoteke)\n"
+" -O, --to-stdout ekstrahiraj datoteke na standardni izlaz\n"
+" -G, --incremental obradi inkrementalni backup starog GNU-formata\n"
+" -g, --listed-incremental=FILE\n"
+" obradi inkrementalni backup novog GNU-formata\n"
+" --ignore-failed-read\n"
+" ne zavravaj uz ne-nula izlazni kod na\n"
+" neitljivim datotekama\n"
+
+# FIXME -- 'volume number' -- TM
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Tretiranje atributa datoteka:\n"
+" --owner=NAME forsiraj NAME za vlasnika dodanih datoteka\n"
+" --group=NAME forsiraj NAME za grupu dodanih datoteka\n"
+" --mode=CHANGES forsiraj (symbolike) promjene pristupnog\n"
+" moda za dodane datoteke\n"
+" --atime-preserve ne mijenjaj vremena pristupa (access time)\n"
+" pohranjenim datotekama\n"
+" -m, --modification-time ne ekstrahiraj vremena modifikacije\n"
+" --same-owner pokuaj postaviti vlasnitvo datoteka\n"
+" kao u arhivi\n"
+" --no-same-owner ekstrahiraj datoteke pod svojim vlasnitvom\n"
+" --numeric-owner uvijek koristi numerika imena\n"
+" korisnika/grupa\n"
+" -p, --same-permissions ekstrahiraj informacije o dozvolama\n"
+" --no-same-permissions ne ekstrahiraj informacije o dozvolama\n"
+" --preserve-permissions isto kao -p\n"
+" -s, --same-order sortiraj imena kod ekstrakcije da odgovaraju\n"
+" arhivi\n"
+" --preserve-order isto kao -s\n"
+" --preserve isto kao -p i -s zajedno\n"
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Selektiranje i mijenjanje ureaja:\n"
+" -f, --file=ARCHIVE koristi datoteku ili ureaj za arhiviranje\n"
+" ARCHIVE\n"
+" --force-local ime arhive je lokalno ak i ako sadri\n"
+" dvotoku\n"
+" --rsh-command=COMMAND koristi remote COMMAND umjesto rsh\n"
+" -[0-7][lmh] specificiraj drive i density\n"
+" -M, --multi-volume kreiraj/izlistaj/ekstrahiraj viedjelne\n"
+" arhive\n"
+" -L, --tape-length=NUM promijeni traku nakon ispisivanja\n"
+" NUM x 1024 bajtova\n"
+" -F, --info-script=FILE pokreni skriptu na kraju svake trake\n"
+" (podrazumijeva -M)\n"
+" --new-volume-script=FILE isto kao -F FILE\n"
+" --volno-file=FILE koristi/nadopuni volume number u FILE\n"
+
+# FIXME -- clear this 'device blocking' xlation -- TM
+# FIXME -- vidi ovaj 'znai EOF' u man -- TM
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Faktor grupiranja u blokove na ureaju (device blocking):\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bajtova po zapisu (record)\n"
+" --record-size=SIZE SIZE bajtova po zapisu, viekratnik od 512\n"
+" -i, --ignore-zeros ignoriraj blokove ispunjene nulama u arhivi\n"
+" (koji inae znae EOF)\n"
+" -B, --read-full-records pregrupiraj blokove dok ita\n"
+" (za 4.2BSD cjevovode -- pipes)\n"
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Selekcija formata arhive:\n"
+" -V, --label=NAME kreiraj arhivu s imenom dijela arhive NAME\n"
+" PATTERN u vrijeme izlistavanja/ekstrakcije,\n"
+" koristi PATTERN za globbing\n"
+" -o, --old-archive, --portability ispii V7 format arhivu\n"
+" --posix ispii POSIX format arhivu\n"
+" -j, --bzip2 filtriraj arhivu kroz bzip2\n"
+" -z, --gzip, --ungzip filtriraj arhivu kroz gzip\n"
+" -Z, --compress, --uncompress filtriraj arhivu kroz compress\n"
+" --use-compress-program=PROG filtriraj kroz program PROG (moji mora\n"
+" prihvaati opciju -d)\n"
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Selekcija lokalnih datoteka:\n"
+" -C, --directory=DIR promijeni direktorij u DIR\n"
+" -T, --files-from=NAME dobavi imena za ekstrahirati ili kreirati\n"
+" iz datoteke NAME\n"
+" --null -T ita nul-terminirana imena, onemogui -C\n"
+" --exclude=PATTERN izostavi datoteke, dane s PATTERN\n"
+" -X, --exclude-from=FILE izostavi uzorak datoteka: pobrojane u FILE\n"
+" --anchored - koje zapoinju tim imenom (default)\n"
+" --no-anchored - koje se podudaraju s uzorkom nakon nekog '/'\n"
+" --ignore-case izostavljanje ignorira razliku\n"
+" izmeu velikih i malih slova\n"
+" --no-ignore-case izostavljanje uzima u obzir razliku\n"
+" izmeu malih i velikih slova (default)\n"
+" --wildcards izostavi uzorke koristi wildcard (default)\n"
+" --no-wildcards uzorci za izostavljanje su obini nizovi\n"
+" --wildcards-match-slash izostavi uzorak wildcard podudara '/'\n"
+" (default)\n"
+" --no-wildcards-match-slash\n"
+" izostavi uzorak - wildcard ne podudara '/'\n"
+" -P, --absolute-names ne brii vodee `/' iz imena datoteka\n"
+" -h, --dereference ne arhiviraj simboliki link nego datoteku\n"
+" na koju pokazuje\n"
+" --no-recursion ne idi rekurzivno u poddirektorije\n"
+" -l, --one-file-system ne prelazi na drugi datoteni sustav\n"
+" kod kreiranja datoteka\n"
+" -K, --starting-file=NAME poni s imenom NAME u arhivi kod ekstrakcije\n"
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATE pohranjuj samo datoteke novije od DATE\n"
+" --newer-mtime=DATE usporedi datum i vrijeme samo\n"
+" ako su se promijenili podaci\n"
+" --after-date=DATE isto kao -N\n"
+
+#: src/tar.c:418
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version control\n"
+" --suffix=SUFFIX backup before removal, override usual suffix\n"
+msgstr ""
+" --backup[=CONTROL] backup-iraj prije brisanja, izaberi mehanizam\n"
+" kontrole verzije\n"
+" --suffix=SUFFIX backup-iraj prije brisanja, promijeni\n"
+" standardni sufiks.\n"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Informativni ispis:\n"
+" --help ispii ovu pomo, potom zavri\n"
+" --version ispii broj verzije tar programa, potom zavri\n"
+" -v, --verbose opirno izlistaj imena datoteka kod procesiranja\n"
+" --checkpoint ispisuj imena direktorija dok ita arhivu\n"
+" --totals ispisuj ukupan broj ispisanih bajtova dok kreira\n"
+" arhivu\n"
+" -R, --block-number prikai broj bloka unutar arhive uz svaku poruku\n"
+" -w, --interactive trai odobrenje za svaku akciju\n"
+" --confirmation isto kao -w\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+"Backup sufiks je `~', osim ako je postavljen drugi s --suffix ili\n"
+"SIMPLE_BACKUP_SUFFIX. Kontrola verzije moe biti postavljena s --backup\n"
+"ili s VERSION_CONTROL, vrijednosti su:\n"
+"\n"
+" t, numbered radi pobrojane (numbered) backup-e\n"
+" nil, existing pobrojani ako pobrojani ve postoje, inae jednostavni\n"
+" never, simple uvijek radi jednostavne backupe\n"
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"GNU tar ne moe itati ili proizvoditi `--posix' arhive. Ako je\n"
+"POSIXLY_CORRECT definirano u environment okolini, GNU ekstenzije se\n"
+"onemoguuju pomou `--posix'. Podrka za POSIX je samo djelomino\n"
+"implementirana, ne raunajte jo na nju.\n"
+"ARCHIVE moe biti FILE, HOST:FILE ili USER@HOST:FILE; DATE moe biti\n"
+"tekstualni datum ili ime datoteke koje zapoinje s `/' ili `.',\n"
+"u kojem sluaju je koriten datum datoteke.\n"
+"*Ovaj* `tar' podrazumijeva `-f%s -b%d'.\n"
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Ne moete navesti vie od jedne od `-Acdtrux' opcija"
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Konfliktne opcije za kompresiju"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Stara opcija `%c' zahtijeva obavezan argument."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Zastarjela opcija, sada podrazumijevana s --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Zastarjelo ime opcije zamijenjeno s --blocking-factor"
+
+# FIXME -- clarify this against source and man -- TM
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Pogrean faktor pakiranja u blokove"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Zastarjelo ime opcije zamijenjeno s --read-full-records"
+
+#: src/tar.c:696
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Upozorenje: opcija -I nije podrana; moda ste mislili -j ili -T?"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "Pogrena duljina trake"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Zastarjelo ime opcije zamijenjeno s --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr "Vie od jednog datuma s pragom (threshold)"
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Datoteka s datumom nije pronaena"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Substituiram %s za nepoznat format datuma %s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "Konfliktne opcije formata arhive"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Zastarjelo ime opcije zamijenjeno s --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Zastarjelo ime opcije zamijenjeno s --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Upozorenje: opcija -y nije podrana; moda ste eljeli -j?"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Zastarjelo ime opcije zamijenjeno s --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Pogrena grupa"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Pogrean mod dan opcijom"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Pogrean vlasnik"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Pogrena veliina sloga (record)"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Veliina sloga (record) mora biti viekratnik %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Opcije `-[0-7][lmh]' nisu podrane od strane *ovog* tar-a"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Napisali John Gilmore i Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU specijalne pogodnosti zatraene na nekompatibilnom formatu arhive"
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Viedjelne arhive zahtijevaju `-M' opciju"
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Ne mogu kombinirati --listed-incremental s --newer"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: Oznaka dijela arhive je predugaka (limit je %lu bajtova)"
+
+# LOL -- TM
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Kukaviki odbijam kreirati praznu arhivu!"
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Opcije `-Aru' nisu kompatibilne s `-f -'"
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Morate specificirati jednu od `-Acdtrux' opcija"
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Pogreka u pisanju na standardni izlaz"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Pogrean izlaz (naknadno) zbog prijanjih pogreaka"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: Datoteka se skratila za %s bajtova"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Generiraj podatkovne datoteke za GNU tar skup test programa.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Koritenje: %s [OPCIJA]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Ako duga opcija pokazuje argument kao obavezan, tada je on obavezan\n"
+"takoer i za ekvivalentnu kratku verziju opcije.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH (duljina) generirane datoteke\n"
+" -p, --pattern=PATTERN PATTERN je `default' ili `zeros'\n"
+" --help ispii ovu pomo i zavri\n"
+" --version ispii informaciju o verziji i zavri\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr "Napisao Franois Pinard."
diff --git a/po/.reference/hr.s1 b/po/.reference/hr.s1
new file mode 100644
index 00000000..ce987abf
--- /dev/null
+++ b/po/.reference/hr.s1
@@ -0,0 +1 @@
+b3178b392b2f25b89ea075fe82645490e4f72d2b -
diff --git a/po/.reference/hu.po b/po/.reference/hu.po
new file mode 100644
index 00000000..7470c2fc
--- /dev/null
+++ b/po/.reference/hu.po
@@ -0,0 +1,2619 @@
+# Hungarian translation of the GNU tar.
+# 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, 2009, 2010.
+#: src/create.c:1550
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.24\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2010-10-24 23:08+0300\n"
+"PO-Revision-Date: 2010-10-25 14:41+0200\n"
+"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
+"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: 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"
+
+#: 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”"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Az érvényes argumentumok a következők:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Ismeretlen ARGP_HELP_FMT paraméter"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Szemét az ARGP_HELP_FMT-ben: %s"
+
+#: gnu/argp-help.c:1246
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "A hosszú kapcsolók kötelező vagy elhagyható argumentumai a megfelelő rövid kapcsolókhoz is kötelezőek vagy elhagyhatóak."
+
+#: gnu/argp-help.c:1639
+msgid "Usage:"
+msgstr "Használat:"
+
+#: gnu/argp-help.c:1643
+msgid " or: "
+msgstr " vagy: "
+
+#: gnu/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [KAPCSOLÓ...]"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:1929 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Ismeretlen rendszerhiba"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "ezen súgószöveg megjelenítése"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "rövid használati utasítás megjelenítése"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NÉV"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "a program nevének beállítása"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "MP"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "szünet MP másodpercre (alapértelmezetten 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "a programverzió kiírása"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMHIBA) A verziószám ismeretlen???"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: túl sok argumentum\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMHIBA) A kapcsolót fel kellett volna ismerni???"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "íráshiba"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: a(z) „--%s” kapcsolóhoz argumentum szükséges\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: a(z) „--%s” kapcsoló ismeretlen\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: a(z) „%c%s” kapcsoló ismeretlen\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: érvénytelen kapcsoló -- „%c”\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: a „-W %s” kapcsoló nem egyértelmű\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: a „-W %s” kapcsoló nem enged meg argumentumot\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: a „-W %s” kapcsolóhoz argumentum szükséges\n"
+
+#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "elfogyott a memória"
+
+#: gnu/openat-die.c:36
+#, c-format
+msgid "unable to record current working directory"
+msgstr "A munkakönyvtár nem jegyezhető fel"
+
+#: 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:
+#. 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.
+#: gnu/quotearg.c:274
+msgid "`"
+msgstr "”"
+
+#: gnu/quotearg.c:275
+msgid "'"
+msgstr "”"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[iIyY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Csomagolta: %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Licenc: GPLv3+: A GNU GPL 3. vagy újabb változata <http://gnu.org/licenses/gpl.html>\n"
+"Ez egy szabad szoftver: terjesztheti és/vagy módosíthatja.\n"
+"NINCS GARANCIA, a törvény által engedélyezett mértékig.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Írta: %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Írta: %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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Írta %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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Írta %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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Írta %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Írta %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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Írta %s, %s, %s,\n"
+"%s, %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.
+#: 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 ""
+"Írta %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, és mások.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"A hibák a(z) %s címen jelenthetők.\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: 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"
+
+#. 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"
+
+#: 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 "Nem lehet csatlakozni ehhez: %s: a feloldás meghiúsult"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Nem futtatható távoli parancssor"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "A keresési irány kívül esik a tartományon"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Érvénytelen pozicionálási irány"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Érvénytelen pozicionálási eltolás"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "A keresési eltolás kívül esik a tartományon"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Érvénytelen bájtszám"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "A bájtszám kívül esik a tartományon"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Idő előtti fájlvége"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Érvénytelen működési kód"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "A művelet nem támogatott"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Váratlan paraméterek"
+
+#: rmt/rmt.c:689
+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:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "SZÁM"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "hibakeresési szint beállítása"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FÁJL"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "hibakeresés kimeneti fájlnevének beállítása"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "a(z) %s nem nyitható meg"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "túl sok argumentum"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Értelmetlen parancs"
+
+#: src/buffer.c:386 src/buffer.c:391 src/buffer.c:635 src/buffer.c:1250
+#: src/buffer.c:1296 src/buffer.c:1325 src/delete.c:211 src/list.c:184
+#: src/update.c:198
+msgid "This does not look like a tar archive"
+msgstr "Ez nem úgy néz ki, mint egy tar archívum"
+
+#: src/buffer.c:450 src/buffer.c:459
+msgid "Total bytes written"
+msgstr "Kiírt bájtok teljes száma"
+
+#: src/buffer.c:457 src/buffer.c:471
+msgid "Total bytes read"
+msgstr "Olvasott bájtok teljes száma"
+
+#: src/buffer.c:461
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Törölt bájtok teljes száma: %s\n"
+
+#: src/buffer.c:550
+msgid "(pipe)"
+msgstr "(cső)"
+
+#: src/buffer.c:573
+msgid "Invalid value for record_size"
+msgstr "A record_size értéke érvénytelen"
+
+#: src/buffer.c:576
+msgid "No archive name given"
+msgstr "Nem adott meg archívumnevet"
+
+#: src/buffer.c:618
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Nem ellenőrizhető az archívum, ha a szabványos be/kimenetet használja"
+
+#: src/buffer.c:632
+#, 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:689 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Tömörített archívumok nem frissíthetők"
+
+#: src/buffer.c:782
+msgid "At beginning of tape, quitting now"
+msgstr "A szalag eleje, most kilépek"
+
+#: src/buffer.c:788
+msgid "Too many errors, quitting"
+msgstr "Túl sok hiba, kilépek"
+
+#: src/buffer.c:821
+#, 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:842
+#, 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:919
+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:951
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "az rmtlseek nem állt meg egy rekord határán"
+
+#: src/buffer.c:1002
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: érvénytelen kötetszámot tartalmaz"
+
+#: src/buffer.c:1037
+msgid "Volume number overflow"
+msgstr "Kötetszám-túlcsordulás"
+
+#: src/buffer.c:1052
+#, 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:1058
+msgid "EOF where user reply was expected"
+msgstr "Fájlvége a várt felhasználói válasz helyett"
+
+#: src/buffer.c:1063 src/buffer.c:1095
+msgid "WARNING: Archive is incomplete"
+msgstr "FIGYELMEZTETÉS: Az archívum befejezetlen"
+
+#: src/buffer.c:1077
+#, 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év Új fájlnév megadása a következő (és az azt követő) köteteknek\n"
+" q A Tar megszakítása\n"
+" y vagy újsor A művelet folytatása\n"
+
+#: src/buffer.c:1082
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Új parancsértelmező hívása\n"
+
+#: src/buffer.c:1083
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Ezen lista kiírása\n"
+
+#: src/buffer.c:1090
+msgid "No new volume; exiting.\n"
+msgstr "Nincs új kötet, kilépés.\n"
+
+#: src/buffer.c:1123
+msgid "File name not specified. Try again.\n"
+msgstr "Nincs megadva fájlnév, próbálkozzon újra.\n"
+
+#: src/buffer.c:1136
+#, 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:1187
+#, c-format
+msgid "%s command failed"
+msgstr "A(z) „%s” parancs meghiúsult"
+
+#: src/buffer.c:1368
+#, 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:1372
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nem folytatódik ezen a köteten"
+
+#: src/buffer.c:1386
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s mérete hibás (%s != %s + %s)"
+
+#: src/buffer.c:1401
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Ez a kötet kívül esik a sorozaton (%s - %s != %s)"
+
+#: src/buffer.c:1479 src/buffer.c:1505
+#, 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:1509
+#, 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:1603
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+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:1794
+msgid "write did not end on a block boundary"
+msgstr "az írás nem egy rekord határán fejeződött be"
+
+#: 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:105 src/compare.c:382
+msgid "Contents differ"
+msgstr "A tartalom eltér"
+
+#: src/compare.c:131 src/extract.c:958 src/incremen.c:1462 src/list.c:397
+#: src/list.c:1384 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Váratlan fájlvége jel az archívumban"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:308 src/compare.c:406
+msgid "File type differs"
+msgstr "A fájltípus eltér"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:322
+msgid "Mode differs"
+msgstr "A mód eltér"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Az Uid eltér"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "A Gid eltér"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "A módosítási idő eltér"
+
+#: src/compare.c:215 src/compare.c:414
+msgid "Size differs"
+msgstr "A méret eltér"
+
+#: src/compare.c:263
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nincs a következőre linkelve: %s"
+
+#: src/compare.c:287
+msgid "Symlink differs"
+msgstr "A szimbolikus link eltér"
+
+#: src/compare.c:316
+msgid "Device number differs"
+msgstr "Az eszközszám eltér"
+
+#: src/compare.c:456
+#, c-format
+msgid "Verify "
+msgstr "Ellenőrzés "
+
+#: src/compare.c:463
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: A(z) „%c” fájltípus ismeretlen, a diffelés normális fájlként történt"
+
+#: src/compare.c:518
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Az archívum eltávolított előtagokkal rendelkező fájlneveket tartalmaz."
+
+#: src/compare.c:520
+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:593
+#, 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:611 src/list.c:161
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Egy magányos nulla blokk %s helyen"
+
+#: src/create.c:72
+#, 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:261
+#, 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:267
+#, 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:327
+msgid "Generating negative octal headers"
+msgstr "Negatív oktális fejlécek előállítása"
+
+#: src/create.c:611 src/create.c:674
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: a fájlnév túl hosszú (maximum: %d), nem kerül kiírásra"
+
+#: src/create.c:621
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: a fájlnév túl hosszú (nem darabolható), nem kerül kiírásra"
+
+#: src/create.c:648
+#, c-format
+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:1062
+#, 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:1158
+#, 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:1201 src/create.c:1212 src/incremen.c:582 src/incremen.c:588
+msgid "contents not dumped"
+msgstr "a tartalom nem került kiírásra"
+
+#: src/create.c:1416
+#, 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:1527
+#, c-format
+msgid "Missing links to %s."
+msgstr "Hiányzó linkek a következőre: „%s”."
+
+#: src/create.c:1688
+#, 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:1697
+#, 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:1721 src/incremen.c:575
+msgid "directory not dumped"
+msgstr "a könyvtár nem került kiírásra"
+
+#: src/create.c:1793
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: a fájl módosult olvasás közben"
+
+#: src/create.c:1855
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: a foglalat figyelmen kívül hagyva"
+
+#: src/create.c:1861
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: ajtó figyelmen kívül hagyva"
+
+#: src/delete.c:217 src/list.c:198 src/update.c:203
+msgid "Skipping to next header"
+msgstr "Ugrás a következő fejlécre"
+
+#: 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:277
+#, 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:295
+#, 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:475
+#, 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:709
+#, 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:863
+msgid "Extracting contiguous files as regular files"
+msgstr "A folytonos fájlok kibontása normál fájlként"
+
+#: src/extract.c:1183
+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:1339
+#, 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:1346 src/list.c:1117
+msgid "Unexpected long name header"
+msgstr "Váratlan hosszú névfejléc"
+
+#: src/extract.c:1353
+#, 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:1379
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "A jelenlegi „%s” újabb vagy egyező korú"
+
+#: src/extract.c:1431
+#, 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:1568
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s: Nem nevezhető át a következőre: %s"
+
+#: src/incremen.c:474 src/incremen.c:518
+#, 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:486
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: a könyvtár át lett nevezve"
+
+#: src/incremen.c:531
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: a könyvtár új"
+
+#: src/incremen.c:956 src/incremen.c:973
+msgid "Invalid time stamp"
+msgstr "Érvénytelen időbélyeg"
+
+#: src/incremen.c:1012
+msgid "Invalid modification time (seconds)"
+msgstr "Érvénytelen módosítási idő (másodperc)"
+
+#: src/incremen.c:1027
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Érvénytelen módosítási idő (nanomásodperc)"
+
+#: src/incremen.c:1047
+msgid "Invalid device number"
+msgstr "Érvénytelen eszközszám"
+
+#: src/incremen.c:1062
+msgid "Invalid inode number"
+msgstr "Érvénytelen inode-szám"
+
+#: 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:1120 src/incremen.c:1158
+msgid "Read error in snapshot file"
+msgstr "Olvasási hiba a pillanatképfájlban"
+
+#: 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: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:1264
+msgid "Missing record terminator"
+msgstr "Hiányzó rekordlezáró"
+
+#: 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:1347
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Nem támogatott növekményes formátumverzió: %<PRIuMAX>"
+
+#: 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: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: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: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: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: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: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: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: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: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:1698
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s törlése\n"
+
+#: src/incremen.c:1703
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: nem távolítható el"
+
+#: src/list.c:130
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: kihagyás"
+
+#: src/list.c:146
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blokk %s: ** A blokk üres **\n"
+
+#: src/list.c:172
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blokk %s: ** Fájlvége **\n"
+
+#: src/list.c:195 src/list.c:1089 src/list.c:1352
+#, c-format
+msgid "block %s: "
+msgstr "blokk %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:704
+#, 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:759
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Az archívum %.*s oktális értéke túllépi a(z) %s tartományt, a program feltételezi, hogy kettes komplemens"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:770
+#, 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:791
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Az archívum elavulófélben levő base-64-es fejléceket tartalmaz"
+
+#: src/list.c:805
+#, 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:836
+#, 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:865
+#, 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:887
+#, 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:1253
+#, c-format
+msgid " link to %s\n"
+msgstr " link a következőre: %s\n"
+
+#: src/list.c:1261
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " ismeretlen fájltípus: %s\n"
+
+#: src/list.c:1279
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Hosszú link--\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Hosszú név--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Kötetfejléc--\n"
+
+#: src/list.c:1295
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Folytatva %s bájttól--\n"
+
+#: src/list.c:1357
+msgid "Creating directory:"
+msgstr "Könyvtár létrehozása:"
+
+#: src/misc.c:298
+msgid "Cannot get working directory"
+msgstr "A munkakönyvtár nem kérdezhető le"
+
+#: src/misc.c:571
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s átnevezése a következőre: %s\n"
+
+#: src/misc.c:580 src/misc.c:599
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Nem nevezhető át a következőre: %s"
+
+#: src/misc.c:604
+#, 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:851
+#, 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:866
+#, 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:887
+msgid "child process"
+msgstr "gyermekfolyamat"
+
+#: src/misc.c:896
+msgid "interprocess channel"
+msgstr "folyamatközi csatorna"
+
+#: src/names.c:594
+msgid "Pattern matching characters used in file names"
+msgstr "Mintaillesztő karaktereket használt a fájlnevekben"
+
+#: src/names.c:596
+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 ezen figyelmeztetés letiltásához"
+
+#: src/names.c:614 src/names.c:630
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Nem található az archívumban"
+
+#: src/names.c:615
+#, 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/names.c:649
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Hibás archívumcímke"
+
+#: src/names.c:953
+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:959
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Érvénytelen archívumformátum"
+
+#: 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:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"A GNU „tar” több fájlt egyetlen szalagos vagy lemezes archívumba ment és képes az egyes fájlokat helyreállítani az archívumból.\n"
+"\n"
+"Például:\n"
+" tar -cf archívum.tar foo bar # Létrehozza az archívum.tar fájlt a foo\n"
+" és bar fájlokból.\n"
+" tar -tvf archívum.tar # Bőbeszédűen felsorolja az archívum.tar\n"
+" fájljait.\n"
+" tar -xf archívum.tar # Kibontja az összes fájlt az archívum.tar\n"
+" fájlból.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+" A biztonsági mentés utótagja „~”, hacsak nem változtatja meg a „--suffix”\n"
+"vagy a SIMPLE_BACKUP_SUFFIX segítségével.\n"
+"A verziófelügyelet a --backup vagy a VERSION_CONTROL segítségével kezelheti,\n"
+"az értékek:\n"
+" none, off soha ne mentsen\n"
+" t, numbered számozott mentések létrehozása\n"
+" nil, existing számozott, ha már létezik számozott mentés,\n"
+" egyébként egyszerű\n"
+" never, simple mindig egyszerű mentés létrehozása\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Fő működési mód:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "felsorolja egy archívum tartalmát"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "fájlok kibontása egy archívumból"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "új archívum létrehozása"
+
+#: src/tar.c:397
+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:400
+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:402
+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:404
+msgid "append tar files to an archive"
+msgstr "tar fájlok hozzáfűzése egy archívumhoz"
+
+#: src/tar.c:407
+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:409
+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:414
+msgid "Operation modifiers:"
+msgstr "Műveletmódosítók:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "ritka fájlok hatékony kezelése"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAGAS[.ALACSONY]"
+
+#: src/tar.c:419
+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:421
+msgid "handle old GNU-format incremental backup"
+msgstr "régi GNU formátumú növekményes mentés kezelése"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "új GNU formátumú növekményes mentés kezelése"
+
+#: src/tar.c:425
+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:427
+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:429
+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 "az archívum minden egyes fájljának csak a SZÁM-adik előfordulásának feldolgozása. Ez a kapcsoló csak a --delete, --diff, --extract vagy --list alparancsok egyikével használható és csak akkor, ha egy fájllista kerül átadásra a parancssoron vagy a -T kapcsolón keresztül. A SZÁM alapértelmezett értéke az 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "az archívum kereshető"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "az archívumban nem lehet pozicionálni"
+
+#: src/tar.c:439
+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:442
+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:448
+msgid "Overwrite control:"
+msgstr "Felülírás felügyelete:"
+
+#: src/tar.c:451
+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:453
+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:455
+msgid "don't replace existing files when extracting"
+msgstr "ne cserélje a meglévő fájlokat kibontáskor"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "meglévő fájlok felülírása kibontáskor"
+
+#: src/tar.c:461
+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:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "hierarchiák kiürítése könyvtár kibontása előtt"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "meglévő könyvtárak metaadatainak megőrzése"
+
+#: src/tar.c:467
+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:473
+msgid "Select output stream:"
+msgstr "Kimeneti adatfolyam kiválasztása:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "fájlok kibontása a szabványos kimenetre"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "PARANCS"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "kibontott fájlok továbbítása másik program számára"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "utódok kilépési kódjainak figyelmen kívül hagyása"
+
+#: src/tar.c:482
+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:487
+msgid "Handling of file attributes:"
+msgstr "Fájlattribútumok kezelése:"
+
+#: src/tar.c:490
+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:492
+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:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DÁTUM-VAGY-FÁJL"
+
+#: src/tar.c:494
+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:495
+msgid "CHANGES"
+msgstr "MÓDOSÍTÁSOK"
+
+#: src/tar.c:496
+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:498
+msgid "METHOD"
+msgstr "MÓDSZER"
+
+#: src/tar.c:499
+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 "a kiíratott fájlok hozzáférési időpontjainak megőrzése, vagy az időpontok 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:503
+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:505
+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:507
+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:509
+msgid "always use numbers for user/group names"
+msgstr "mindig számok használata a felhasználó- vagy csoportnevekhez"
+
+#: src/tar.c:511
+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:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+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:517
+msgid "sort names to extract to match archive"
+msgstr "kibontandó nevek rendezése, az archívumnak való megfelelés érdekében"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "azonos, mint a -p és -s egyszerre"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+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:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "a --delay-directory-restore kapcsoló hatásának megszüntetése"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Eszköz kiválasztása és váltása:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHÍVUM"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "az ARCHÍVUM archívumfájl vagy -eszköz használata"
+
+#: src/tar.c:535
+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:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "az adott rmt PARANCS használata az rmt helyett"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "a távoli PARANCS használata az rsh helyett"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "meghajtó és sűrűség megadása"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "többkötetes archívum létrehozása/listázása/kibontása"
+
+#: src/tar.c:559
+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:561
+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:564
+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:569
+msgid "Device blocking:"
+msgstr "Eszközblokkolás:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKK"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "rekordonként BLOKK x 512 bájt"
+
+#: src/tar.c:574
+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:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "nullázott blokkok (EOF) mellőzése az archívumban"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "újrablokkolás olvasáskor (4.2BSD csövekhez)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Archívumformátum kiválasztása:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMÁTUM"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "az adott formátumú archívum létrehozása"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "A FORMÁTUM a következők egyike:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "régi V7 tar formátum"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "A tar <= 1.12 által használt GNU formátum"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x formátum"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) formátum"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) formátum"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "azonos a pax formátummal"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "azonos a --format=v7 formátummal"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "azonos a --format=posix formátummal"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "kulcsszó[[:]=érték][,kulcsszó[[:]=érték]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "a pax kulcsszavak irányítása"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "SZÖVEG"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+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:614
+msgid "Compression options:"
+msgstr "Tömörítési kapcsolók:"
+
+#: src/tar.c:616
+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:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "ne használja az archívum kiterjesztését a tömörítőprogram meghatározására"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+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:637
+msgid "Local file selection:"
+msgstr "Helyi fájlválasztás:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "KÖNYVTÁR"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "váltás a KÖNYVTÁR könyvtárba"
+
+#: src/tar.c:644
+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:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "a -T nullal lezárt neveket olvas, letiltja a -C kapcsolót"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "a korábbi --null kapcsoló hatásának letiltása"
+
+#: src/tar.c:650
+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:652
+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:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MINTA"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "a MINTAKÉNT megadott fájlok kihagyása"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "a FÁJLBAN megadott minták kihagyása"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak tartalmának kihagyása, a címkefájl kivételével"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak alatt minden kihagyása"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak kihagyása"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "a FÁJLT tartalmazó könyvtárak alatt minden kihagyása"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "a FÁJLT tartalmazó könyvtárak kihagyása"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "verziókezelő-könyvtárak kihagyása"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "mentési és zárolási fájlok kihagyása"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "ne lépjen be automatikusan a könyvtárakba"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "az archívum létrehozásakor maradjon a helyi fájlrendszeren"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "belépés a könyvtárakba rekurzívan (alapértelmezett)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "ne vágja le a kezdő „/” jelet a fájlnevekből"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "TAGNÉV"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "kezdés a TAGNÉV tagnál az archívumban"
+
+#: src/tar.c:691
+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:693
+msgid "DATE"
+msgstr "DÁTUM"
+
+#: src/tar.c:694
+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:695
+msgid "CONTROL"
+msgstr "FELÜGYELET"
+
+#: src/tar.c:696
+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:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "KARAKTERLÁNC"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+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:703
+msgid "File name transformations:"
+msgstr "Fájlnév-átalakítások:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "KIFEJEZÉS"
+
+#: src/tar.c:708
+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:714
+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:717
+msgid "ignore case"
+msgstr "kis- és nagybetűk figyelmen kívül hagyása"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "a minták illesztése a fájlnevek elejére"
+
+#: src/tar.c:721
+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:723
+msgid "case sensitive matching (default)"
+msgstr "kis- és nagybetűkre érzékeny illesztés (alapértelmezett)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "helyettesítő karakterek használata (alapértelmezett kihagyáskor)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "szó szerinti karakterlánc-illesztés"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "a helyettesítő karakterek nem illeszkednek a perjelre"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "a helyettesítőkarakterek illeszkednek a „/” jelre (alapértelmezett kihagyáskor)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informatív kimenet:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "feldolgozott fájlok bőbeszédű listázása"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KULCSSZÓ"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "figyelmeztetés felügyelete"
+
+#: src/tar.c:743
+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:745
+msgid "ACTION"
+msgstr "MŰVELET"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "a MŰVELET végrehajtása minden ellenőrzőponton"
+
+#: src/tar.c:749
+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:750
+msgid "SIGNAL"
+msgstr "SZIGNÁL"
+
+#: src/tar.c:751
+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 "a bájtok teljes számának megjelenítése az archívum feldolgozása után egy argumentummal hívva kiírja a bájtok teljes számát ezen SZIGNÁL megkapásakor. Az engedélyezett szignálok: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 és SIGUSR2; a SIG előtag nélküli nevek is elfogadottak"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "a fájlmódosítási idők kiírása UTC szerint"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "fájl módosítási idejének kíiírása teljes pontossággal"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "bőbeszédű kimenet küldése a FÁJLBA"
+
+#: src/tar.c:762
+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:764
+msgid "ask for confirmation for every action"
+msgstr "megerősítés kérése minden egyes művelethez"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "a tar alapértelmezéseinek megjelenítése"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+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:771
+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:774
+msgid "STYLE"
+msgstr "STÍLUS"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "a KARAKTERLÁNCBÓL származó karakterek kiegészítő idézése"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "a KARAKTERLÁNCBÓL származó karakterek idézésének letiltása"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Kompatibilitási kapcsolók:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "létrehozáskor megegyezik a --old-archive kapcsolóval; kibontáskor a --no-same-owner kapcsolóval"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Egyéb kapcsolók:"
+
+#: src/tar.c:795
+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:930
+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:940
+msgid "Conflicting compression options"
+msgstr "A tömörítési kapcsolók ütköznek"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Ismeretlen szignálnév: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "A dátummintafájl nem található"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "%s cseréje az ismeretlen %s dátumformátumhoz"
+
+#: src/tar.c:1057
+#, 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:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: a fájllista már be van olvasva"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: a beolvasott fájlnév null karaktert tartalmaz"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, 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:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "A --quoting-style kapcsoló érvényes paraméterei:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Ezen* tar alapértelmezései:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Érvénytelen blokkolási tényező"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Érvénytelen szalagméret"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Hibás növekményszintérték"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Egynél több küszöbdátum"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Érvénytelen ritka verzió érték"
+
+#: src/tar.c:1718
+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:1743
+msgid "--checkpoint value is not an integer"
+msgstr "A --checkpoint értéke nem egy egész"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Érvénytelen csoport"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Érvénytelen mód került megadásra a kapcsolóban"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Érvénytelen szám"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Érvénytelen tulajdonos"
+
+#: src/tar.c:1964
+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:1975
+msgid "Invalid record size"
+msgstr "Érvénytelen rekordméret"
+
+#: src/tar.c:1978
+#, 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:2019
+msgid "Invalid number of elements"
+msgstr "Érvénytelen elemszám"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Csak egy --to-command kapcsoló engedélyezett"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Rosszul formázott sűrűségargumentum: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Ismeretlen sűrűség: „%c”"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[FÁJL]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "A régi „%c” kapcsoló paramétert igényel."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "a --occurrence értelmetlen fájllista nélkül"
+
+#: src/tar.c:2380
+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:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Több archívumfájl esetén szükséges a „-M” kapcsoló"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "A --listed-incremental és a --newer kapcsolók nem használhatók egyszerre"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "a --level értelmetlen a --listed-incremental nélkül"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "A többkötetes archívumok nem ellenőrizhetők"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "A tömörített archívumok nem ellenőrizhetők"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Nem használhatók többkötetes tömörített archívumok"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Tömörített archívumok nem fűzhetők össze"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "a --pax kapcsoló csak POSIX archívumokon használható"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "A kötet hossza nem lehet kisebb a rekord méreténél"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "a --preserve-order nem kompatibilis a --listed-incremental kapcsolóval"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Üres archívum létrehozása visszautasítva"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Az „-Aru” kapcsolók összeférhetetlenek a „-f” kapcsolóval"
+
+#: src/tar.c:2621
+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:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Kilépés hibaállapottal a korábbi hibák miatt"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, 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:174
+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:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "A(z) %s minta nem használható"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "A(z) %s minta nem bírálható felül"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Rosszul formázott kiterjesztett fejléc: a hossz hiányzik"
+
+#: src/xheader.c:550
+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:557
+#, 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:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Rosszul formázott kiterjesztett fejléc: a hossz után hiányzik egy üres hely karakter"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "A kiterjesztett fejléc hibás: egy egyenlőségjel hiányzik"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Rosszul formázott kiterjesztett fejléc: az újsor hiányzik"
+
+#: src/xheader.c:621
+#, 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:831
+#, 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:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Rosszul formázott kiterjesztett fejléc: érvénytelen %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Rosszul formázott kiterjesztett fejléc: többlet %s=%s"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Rosszul formázott kiterjesztett fejléc: érvénytelen %s: az értékek száma páratlan"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: érvénytelen időtúllépés"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: ismeretlen ellenőrzőpont-művelet"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "írás"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "olvasás"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "%u. írási ellenőrzőpont"
+
+#. 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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "%u. olvasási ellenőrzőpont"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"a genfiles adatfájlokat kezel a GNU paxutils tesztcsomag számára.\n"
+"A KAPCSOLÓK:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Fájllétrehozási kapcsolók:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "MÉRET"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Az adott MÉRETŰ fájl létrehozása"
+
+#: tests/genfile.c:131
+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:133
+msgid "Read file names from FILE"
+msgstr "Fájlnevek beolvasása a FÁJLBÓL"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "a -T nullal lezárt neveket olvas"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Egy blokk mérete ritka fájlhoz"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "ELTOLÁS"
+
+#: tests/genfile.c:145
+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:151
+msgid "File statistics options:"
+msgstr "Fájlstatisztika kapcsolói:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Szinkron végrehajtási kapcsolók:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "KAPCSOLÓ"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Az adott ARGS végrehajtása. Hasznos a --checkpoint és a --cut, --append, --touch vagy --unlink egyikével"
+
+#: tests/genfile.c:167
+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:170
+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:173
+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:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "A FÁJL csonkolása az előző --length kapcsoló által megadott méretre (vagy nullára, ha nincs megadva)"
+
+#: tests/genfile.c:185
+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:188
+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:191
+msgid "Execute COMMAND"
+msgstr "A PARANCS végrehajtása"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "A FÁJL törlése"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Érvénytelen méret: %s"
+
+#: tests/genfile.c:249
+#, 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:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negatív méret: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "a stat(%s) meghiúsult"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "a kért fájlhossz %lu, a tényleges %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "a létrehozott fájl nem ritka"
+
+#: tests/genfile.c:361
+#, 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:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Ismeretlen dátumformátum"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENTUMOK...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "a(z) „%s” nem nyitható meg"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "Nem lehet pozicionálni"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "a fájlnév null karaktert tartalmaz"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "helytelen maszk (a(z) „%s” közelében)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Ismeretlen mező: „%s”"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "nem állítható be az idő a következőn: „%s”"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "a(z) „%s” nem törölhető"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "A parancs sikeresen befejeződött\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "A parancs meghiúsult a következő állapottal: %d\n"
+
+#: tests/genfile.c:831
+#, 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:833
+#, 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:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "A parancs hibakeresési kimenetet adott vissza\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "A parancs befejeződött\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "a --stat fájlneveket igényel"
diff --git a/po/.reference/hu.s1 b/po/.reference/hu.s1
new file mode 100644
index 00000000..3862b169
--- /dev/null
+++ b/po/.reference/hu.s1
@@ -0,0 +1 @@
+3fa42b2d17d865b313e1d8a9fdb0972e87af2e53 -
diff --git a/po/.reference/id.po b/po/.reference/id.po
new file mode 100644
index 00000000..684b1580
--- /dev/null
+++ b/po/.reference/id.po
@@ -0,0 +1,3071 @@
+# Pesan bahasa indonesia untuk tar
+# 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, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.23.90\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2010-07-11 22:57+0300\n"
+"PO-Revision-Date: 2010-07-14 10: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"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumen %s untuk %s tidak valid"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argumen %s untuk %s ambigu"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Argumen yang valid adalah:"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT parameter harus positif"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Parameter ARGP_HELP_FMT tidak diketahui"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Sampah dalam ARGP_HELP_FMT: %s"
+
+#: 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 pilihan panjang juga wajib atau opsional untuk argumen pendek yang berkorespondennya."
+
+#: gnu/argp-help.c:1639
+msgid "Usage:"
+msgstr "Penggunaan:"
+
+#: gnu/argp-help.c:1643
+msgid " or: "
+msgstr " atau: "
+
+#: gnu/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [PILIHAN...]"
+
+#: 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"
+
+#: gnu/argp-help.c:1710
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Laporkan bug ke %s.\n"
+
+#: gnu/argp-help.c:1929 gnu/error.c:155
+msgid "Unknown system error"
+msgstr "Kesalahan sistem tidak dikenal"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "berikan daftar bantuan ini"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "berikan sebuah pesan penggunaan singkat"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:131
+msgid "NAME"
+msgstr "NAMA"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "set nama aplikasi"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SECS"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "berhenti untuk DETIK detik (baku 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "tampilkan versi aplikasi"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(APLIKASI ERROR) Tidak ada versi yang dikenal!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Terlalu banyak argumen\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(APLIKASI ERROR) Pilihan seharusnya telah dikenali!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "error menulis"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: pilihan '%s' ambigu\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: pilihan '--%s' tidak mengijinkan sebuah argumen\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: pilihan '%c%s' tidak mengijinkan sebuah argumen\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: pilihan '--%s' membutuhkan sebuah argumen\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: pilihan tidak dikenal '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: pilihan tidak dikenal '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: pilihan -- '%c' tidak valid\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: pilihan membutuhkan sebuah argumen -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: pilihan '-W %s' ambigu\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: pilihan '-W %s' tidak mengijinkan sebuah argumen\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: pilihan '-W %s' membutuhkan sebuah argumen\n"
+
+#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "kehabisan memori"
+
+#: gnu/openat-die.c:36
+#, c-format
+msgid "unable to record current working directory"
+msgstr "tidak dapat menyimpan direktori kerja sekarang"
+
+#: gnu/openat-die.c:54
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "gagal untuk kembali ke direktori kerja inisial"
+
+#. 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.
+#: gnu/quotearg.c:274
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:275
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Dibungkus oleh %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\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 berlaku.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Ditulis oleh %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Ditulis oleh %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, dan yang lainnya.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Laporkan bug ke: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Laporkan %s bug ke: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s halaman rumah: <%s>\n"
+
+#: 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"
+
+#: 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"
+
+#. 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"
+
+#: 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 "Tidak dapat menghubungi ke %s: penelusuran gagal"
+
+#: 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: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: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:617 rmt/rmt.c:661
+msgid "Operation not supported"
+msgstr "Operasi tidak didukung"
+
+#: 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:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 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:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: 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:803
+msgid "Garbage command"
+msgstr "Perintah sampah"
+
+#: src/buffer.c:386 src/buffer.c:391 src/buffer.c:635 src/buffer.c:1250
+#: src/buffer.c:1296 src/buffer.c:1325 src/delete.c:211 src/list.c:170
+#: src/update.c:189
+msgid "This does not look like a tar archive"
+msgstr "Ini sepertinya bukan sebuah tar archive"
+
+#: src/buffer.c:450 src/buffer.c:459
+msgid "Total bytes written"
+msgstr "Total byte ditulis"
+
+#: src/buffer.c:457 src/buffer.c:471
+msgid "Total bytes read"
+msgstr "Total byte dibaca"
+
+#: src/buffer.c:461
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Total byte dihapus: %s\n"
+
+#: src/buffer.c:550
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:573
+msgid "Invalid value for record_size"
+msgstr "Nilai record_size tidak valid"
+
+#: src/buffer.c:576
+msgid "No archive name given"
+msgstr "Tidak diberikan nama archive"
+
+#: src/buffer.c:618
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Tidak dapat memverifikasi stdin/stdout archive"
+
+#: src/buffer.c:632
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Archive terkompres. Gunakan %s pilihan"
+
+#: src/buffer.c:689 src/tar.c:2440
+msgid "Cannot update compressed archives"
+msgstr "Tidak dapat update compressed archives"
+
+#: src/buffer.c:782
+msgid "At beginning of tape, quitting now"
+msgstr "Berada pada awal tape, berhenti sekarang"
+
+#: src/buffer.c:788
+msgid "Too many errors, quitting"
+msgstr "Terlalu banyak errors, berhenti"
+
+#: src/buffer.c:821
+#, 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:842
+#, 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:919
+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:951
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek tidak dapat berhenti di sebuah batas rekaman"
+
+#: src/buffer.c:1002
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: berisi nomor volum yang tidak valid"
+
+#: src/buffer.c:1037
+msgid "Volume number overflow"
+msgstr "Nomor volum overflow"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Mempersiapkan volume #%d untuk %s dan tekan return: "
+
+#: src/buffer.c:1058
+msgid "EOF where user reply was expected"
+msgstr "EOF pada saat user reply diharapkan"
+
+#: src/buffer.c:1063 src/buffer.c:1095
+msgid "WARNING: Archive is incomplete"
+msgstr "PERINGATAN: Archive tidak lengkap"
+
+#: src/buffer.c:1077
+#, 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 nama Memberi sebuah nama berkas baru untuk volume selanjutnya (dan seterusnya)\n"
+" q Batalkan tar\n"
+" y or newline Lanjutkan operasi\n"
+
+#: src/buffer.c:1082
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Spawn sebuah subshell\n"
+
+#: src/buffer.c:1083
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Tampilkan daftar ini\n"
+
+#: src/buffer.c:1090
+msgid "No new volume; exiting.\n"
+msgstr "Tidak ada new volume; keluar.\n"
+
+#: src/buffer.c:1123
+msgid "File name not specified. Try again.\n"
+msgstr "Nama berkas tidak dispesifikasikan. Coba lagi.\n"
+
+#: src/buffer.c:1136
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Masukan tidak valid. Ketik ? untuk bantuan.\n"
+
+#: src/buffer.c:1187
+#, c-format
+msgid "%s command failed"
+msgstr "Perintah %s gagal"
+
+#: src/buffer.c:1368
+#, 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:1372
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s tidak dilanjutkan di volume ini"
+
+#: src/buffer.c:1386
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s adalah ukuran yang salah (%s != %s + %s)"
+
+#: src/buffer.c:1401
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Volume ini di luar urutan (%s - %s != %s)"
+
+#: src/buffer.c:1479 src/buffer.c:1505
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Label archive tidak cocok dengan %s"
+
+#: src/buffer.c:1509
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Volume %s tidak sesuai dengan %s"
+
+#: src/buffer.c:1603
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: nama berkas terlalu panjang untuk diurutkan dalam sebuah GNU multivolume header, dipotong"
+
+#: src/buffer.c:1794
+msgid "write did not end on a block boundary"
+msgstr "tulis tidak berhenti di batas blok"
+
+#: 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:105 src/compare.c:388
+msgid "Contents differ"
+msgstr "Isi berbeda"
+
+#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:383
+#: src/list.c:1373 src/xheader.c:710
+msgid "Unexpected EOF in archive"
+msgstr "Unexpected EOF dalam archive"
+
+#: 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:182 src/compare.c:202 src/compare.c:327
+msgid "Mode differs"
+msgstr "Mode berbeda"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Uid berbeda"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gid berbeda"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Mod time berbeda"
+
+#: src/compare.c:215 src/compare.c:420
+msgid "Size differs"
+msgstr "Ukuran berbeda"
+
+#: src/compare.c:269
+#, c-format
+msgid "Not linked to %s"
+msgstr "Tidak dilink ke %s"
+
+#: src/compare.c:292
+msgid "Symlink differs"
+msgstr "Symlink berbeda"
+
+#: src/compare.c:321
+msgid "Device number differs"
+msgstr "Nomor perangkat berbeda"
+
+#: src/compare.c:461
+#, c-format
+msgid "Verify "
+msgstr "Verifikasi "
+
+#: src/compare.c:468
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Tipe berkas '%c' tidak dikenal, lakukan diff sebagai berkas normal"
+
+#: src/compare.c:523
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Archive berisi nama berkas dengan awalan dihapus."
+
+#: src/compare.c:525
+msgid "Verification may fail to locate original files."
+msgstr "Verifikasi mungkin gagal untuk menemukan berkas orisinil."
+
+#: src/compare.c:598
+#, 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:616 src/list.c:147
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Sebuah lone blok nol di %s"
+
+#: 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: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: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:339
+msgid "Generating negative octal headers"
+msgstr "Membuat header oktal negatif"
+
+#: src/create.c:624 src/create.c:687
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: nama berkas terlalu panjang (maksimal %d); tidak di-dump"
+
+#: src/create.c:634
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: nama berkas terlalu panjang (tidak dapat memisahkan); tidak di-dump"
+
+#: src/create.c:661
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: nama link terlalu panjang; tidak di-dump"
+
+#: src/create.c:1075
+#, 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: Berkas diperkecil %s byte; dipadding dengan nol"
+msgstr[1] "%s: Berkas diperkecil %s byte; dipadding dengan nol"
+
+#: src/create.c:1169
+#, 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:1213 src/create.c:1224 src/incremen.c:590 src/incremen.c:596
+msgid "contents not dumped"
+msgstr "isi tidak didump"
+
+#: src/create.c:1356
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipe file tidak dikenal; file diabaikan"
+
+#: src/create.c:1466
+#, c-format
+msgid "Missing links to %s."
+msgstr "Hilang hubungan ke %s."
+
+#: src/create.c:1537
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: berkas tidak berubah; tidak di-dump"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: berkas adalah archive; tidak di-dump"
+
+#: src/create.c:1587 src/incremen.c:583
+msgid "directory not dumped"
+msgstr "direktori tidak didump"
+
+#: src/create.c:1657
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: berkas berubah saat kita membacanya"
+
+#: src/create.c:1724
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: soket diabaikan"
+
+#: src/create.c:1730
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door diabaikan"
+
+#: src/delete.c:217 src/list.c:184 src/update.c:194
+msgid "Skipping to next header"
+msgstr "Skip ke header berikutnya"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Menghapus non-header dari archive"
+
+#: src/extract.c:211
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: implausibly penanda waktu lama %s"
+
+#: 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:409
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inkonsistensi tidak diharapkan ketika membuat direktori"
+
+#: 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:759
+msgid "Extracting contiguous files as regular files"
+msgstr "Sedang extract contiguous file sebagai regular file"
+
+#: src/extract.c:1058
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Mencoba extract symbolic link sebagai hard link"
+
+#: src/extract.c:1215
+#, 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:1222 src/list.c:1106
+msgid "Unexpected long name header"
+msgstr "Tidak terduga nama header panjang"
+
+#: src/extract.c:1229
+#, 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:1255
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Saat ini %s adalah lebih baru atau berumuran sama"
+
+#: src/extract.c:1306
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Tidak dapat melakukan backup berkas ini"
+
+#: src/extract.c:1434
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Tidak dapat mengubah nama %s ke %s"
+
+#: 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:494
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktori telah diganti nama"
+
+#: src/incremen.c:539
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Direktori adalah baru"
+
+#: src/incremen.c:956 src/incremen.c:973
+msgid "Invalid time stamp"
+msgstr "Time stamp tidak valid"
+
+#: src/incremen.c:1012
+msgid "Invalid modification time (seconds)"
+msgstr "Waktu modifikasi (detik) tidak valid"
+
+#: src/incremen.c:1027
+msgid "Invalid modification time (nanoseconds)"
+msgstr "waktu modifikasi (nano detik) tidak valid"
+
+#: src/incremen.c:1047
+msgid "Invalid device number"
+msgstr "Nomor perangkat tidak valid"
+
+#: src/incremen.c:1062
+msgid "Invalid inode number"
+msgstr "Nomor inode tidak valid"
+
+#: 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:1120 src/incremen.c:1158
+msgid "Read error in snapshot file"
+msgstr "Pembacaan error dalam berkas snapshot"
+
+#: 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:1129 src/incremen.c:1169
+msgid "Unexpected field value in snapshot file"
+msgstr "Tidak terduga nilai field dalam berkas snapshot"
+
+#: src/incremen.c:1264
+msgid "Missing record terminator"
+msgstr "Hilang pengakhir rekaman"
+
+#: src/incremen.c:1325 src/incremen.c:1328
+msgid "Bad incremental file format"
+msgstr "Format berkas incremental buruk"
+
+#: src/incremen.c:1347
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Versi format incremental tidak didukung: %<PRIuMAX>"
+
+#: 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:1512
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Salah bentuk dumpdir: 'X' terduplikasi"
+
+#: src/incremen.c:1525
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Salah bentuk dumpdir: nama kosong dalam 'R'"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Salah bentuk dumpdir: 'T' tidak diawali oleh 'R'"
+
+#: src/incremen.c:1544
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Salah bentuk dumpdir: nama kosong dalam 'T'"
+
+#: 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:1571
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Salah bentuk dumpdir: 'X' tidak pernah digunakan"
+
+#: 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:1677
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Tidak menghapus direktori: tidak dapat memperoleh statistik"
+
+#: 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:1698
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Menghapus %s\n"
+
+#: src/incremen.c:1703
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Tidak dapat menghapus"
+
+#: src/list.c:116
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Mengabaikan"
+
+#: src/list.c:132
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok dari KOSONG **\n"
+
+#: src/list.c:158
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Akhir dari Berkas **\n"
+
+#: src/list.c:181 src/list.c:1078 src/list.c:1341
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:686
+#, 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:741
+#, 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:752
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Nilai oktal arsip %.*s di luar batasan %s"
+
+#: src/list.c:773
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arsip berisikan header base-64 yang kadaluarsas"
+
+#: src/list.c:787
+#, 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:818
+#, 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:847
+#, 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:869
+#, 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:1242
+#, c-format
+msgid " link to %s\n"
+msgstr " link ke %s\n"
+
+#: src/list.c:1250
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tipe file tidak dikenal %s\n"
+
+#: src/list.c:1268
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Link Panjang--\n"
+
+#: src/list.c:1272
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nama Panjang--\n"
+
+#: src/list.c:1276
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Volume Header--\n"
+
+#: src/list.c:1284
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Diteruskan pada byte %s--\n"
+
+#: src/list.c:1346
+msgid "Creating directory:"
+msgstr "Membuat direktori:"
+
+#: src/misc.c:594
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Mengganti nama %s ke %s\n"
+
+#: src/misc.c:603 src/misc.c:621
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s:Tidak dapat mengganti nama ke %s"
+
+#: src/misc.c:626
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Mengganti nama %s kembali ke %s\n"
+
+#: src/misc.c:761
+msgid "Cannot save working directory"
+msgstr "Tidak dapat menyimpan direktori kerja"
+
+#: src/misc.c:767
+msgid "Cannot change working directory"
+msgstr "Tidak bisa pindah direktori kerja"
+
+#: src/misc.c:851
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Berkas dihapus sebelum kita membacanya"
+
+#: src/misc.c:866
+#, c-format
+msgid "%s: Directory removed before we read it"
+msgstr "%s: Direktori dihapus sebelum kita membacanya"
+
+#: src/misc.c:887
+msgid "child process"
+msgstr "proses anak"
+
+#: src/misc.c:896
+msgid "interprocess channel"
+msgstr "saluran interproses"
+
+#: src/names.c:592
+msgid "Pattern matching characters used in file names"
+msgstr "Pola pencocokan karakter digunakan dalam nama berkas."
+
+#: src/names.c:594
+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 menekan peringatan ini"
+
+#: src/names.c:612 src/names.c:628
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Tidak ditemukan dalam archive"
+
+#: src/names.c:613
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Kejadian yang diinginkan tidak ditemukan dalam archive"
+
+#: src/names.c:647
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Label archive tidak cocok"
+
+#: src/names.c:921
+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:927
+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 "Pilihan `-%s' dan `-%s' membutuhkan standard masukan"
+
+#: src/tar.c:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Format archive tidak valid"
+
+#: 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:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Gaya quoting `%s' tidak diketahui. Coba `%s --quoting-style=help' untuk memperoleh daftar."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' menyimpan beberapa berkas bersama dalam sebuah tape tunggal atau disk archive, dan dapat dikembalikan ke berkas individu dari archive tersebut.\n"
+"\n"
+"Contoh:\n"
+" tar -cf archive.tar foo bar # Buat archive.tar dari berkas foo dan bar.\n"
+" tar -tvf archive.tar # Tampilkan semua berkas dalam archive.tar secara rinci.\n"
+" tar -xf archive.tar # Bongkar semua berkas dari archive.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Akhiran dari backup adalah `~', kecuali bila diset dengan --suffix atau SIMPLE_BACKUP_SUFFIX.\n"
+"Version control dapat diset dengan --backup atau VERSION_CONTROL, nilainya:\n"
+"\n"
+" none, off tidak pernah membuat backups\n"
+" t, numbered membuat backups bernomor\n"
+" nil, existing beri nomor bila nomor backup telah ada, sederhana sebaliknya\n"
+" never, simple selalu buat cadangan sederhana\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Mode operasi utama:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "daftar isi dari sebuah archive"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "ekstrak berkas dari sebuah archive"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "buat sebuah archive baru"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "cari perbedaan diantara archive dan sistem berkas"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "tambahkan berkas ke akhir dari sebuah archive"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "hanya tambahkan berkas yang lebih bari dari salinan dalam archive"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "tambahkan berkas tar ke sebuah archive"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "hapus dari archive (bukan dalam pita mag!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "test label volume archive dan keluar"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Pemodifikasi operasi:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "tangani berkas sparse secara efisien"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "set versi dari format sparse untuk digunakan (mengimplikasikan --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "tangani format GNU lama incremental backup"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "tangani format GNU barus incremental backup"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "tingkat `dump' untuk pembuatan `listed-incremental archive'"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "jangan keluar dengan bukan nol dalam berkas tidak dapat dibaca"
+
+#: src/tar.c:429
+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; 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 pilihan -T; JUMLAH baku ke 1"
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "pencarian tidak dapat dilakukan dalam archive"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "pencarian tidak dapat dilakukan dalam archive"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "tidak dapat memeriksa nomor perangkat ketika membuat archive incremental"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "periksa nomor perangkat ketika membuat incremental archive (baku)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Overwrite kontrol:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "mencoba untuk memverifikasi archive setelah menulisnya"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "hapus berkas setelah menambahkannya ke archive"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "jangan timpa berkas yang sudah ada ketika mengekstrak"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "overwrite berkas yang sudah ada ketika mengekstrak"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "hapus setiap berkas sebelum mengekstrak diatasnya"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "kosongkan susunan sebelum mengekstrak ke direktori"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "jaga metadata dari direktori yang sudah ada"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "overwrite metadata dari direktori yang sudah ada ketika mengekstrak (baku)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Pilih stream keluaran:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "ekstrak berkas ke standar keluaran"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:191
+msgid "COMMAND"
+msgstr "PERINTAH"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "pipe berkas terekstrak ke aplikasi lain"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "abaikan kode keluaran dari anak"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "perlakukan kode keluaran bukan nol dari anak sebagai error"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Penanganan dari atribut berkas:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "paksa NAMA sebagai pemilik untuk berkas yang ditambahkan"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "paksa NAMA sebagai grup untuk berkas yang ditambahkan"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATE-ATAU-BERKAS"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "set mtime untuk berkas yang ditambahkan dari DATE-OR-FILE"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "PERUBAHAN"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "paksa PERUBAHAN (simbolik) mode untuk berkas yang ditambahkan"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODE"
+
+#: src/tar.c:499
+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 "jaga waktu akses di berkas yang didump, baik dengan mengembalikan waktu setelah membaca (METODE='replace'; baku) atau dengan tidak menset waktu di tempat pertama (METODE='system')"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "jangan ekstrak waktu modifikasi berkas"
+
+#: src/tar.c:505
+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:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "ekstrak berkas seperti dirimu (baku untuk pengguna biasa)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "selalu gunakan nomor untuk nama pengguna/grup"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "ekstrak informasi mengenai ijin berkas (baku untuk superuser)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "aplikasikan umask pengguna ketika mengekstrak ijin dari archive (baku untuk pengguna biasa)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "urutkan nama untuk mengekstrak supaya cocok dengan archive"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "sama seperti baik -p dan -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "tunda konfigurasi waktu modifikasi dan ijin untuk direktori terekstrak sampai akhir dari ekstrasi"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "batalkan efek dari pilihan --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Pemilihan dan pengubahan perangkat:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIVE"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "gunakan berkas archive atau perangkat ARCHIVE"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "berkas archive adalah lokal walaupun ini memiliki sebuah kolon"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "gunakan PERINTAH rmt yang diberikan daripad rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "gunakan PERINTAH remote daripada rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "spesifikasikan drive dan kepadatan"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "buat/daftar/ekstrak multi-volume archive"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "ubah pita setelah menulis ANGKA x 1024 bytes"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "jalankan script di akhir dari setiap pite (mengimplikasikan -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "gunakan/update jumlah volume dalam BERKAS"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Bloking perangkat:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOK"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOK x 512 byte per detik"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "JUMLAH dari byte per rekaman, kelipatan dari 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "abaikan blok yang dinolkan dalam archive (berarti EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "reblok saat kita baca (untuk 4.2BSD pipes)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Pemilihan format archive:"
+
+#: src/tar.c:585 tests/genfile.c:154
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "buat archive dari format yang diberikan"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT adalah satu dari berikut:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "format tar lama V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "format gnu tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "format GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "format POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "format POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "sama seperti pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "sama seperti --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "sama seperti --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "kata kunci[[:]=nilai][,kata kunci[[:]=nilai]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "kontrol kata kunci pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEKS"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "buat archive dengan nama volume TEKS; di waktu daftar/ekstrak, gunakan TEKS sebagai sebuah pola globbing untuk nama volume"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Pilihan kompresi:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "gunaka nama akhiran archive untuk menentukan aplikasi kompresi"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "jangan gunakan nama akhiran archive untuk menentukan aplikasi kompresi"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "saring melalui PROG (harus menerima -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Pemilihan berkas lokal:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "pindah ke direktori DIR"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "dapatkan nama untuk ekstrak atau buat dari BERKAS"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T baca nama berakhiran kosong, non-aktifkan -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "non-aktifkan efek dari pilihan --null sebelumnya"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "unquote nama berkas baca dengan -T (baku)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "jangan unquote nama berkas baca dengan -T"
+
+#: src/tar.c:653 tests/genfile.c:137
+msgid "PATTERN"
+msgstr "POLA"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "jangan masukan berkas, berikan sebagai sebuah POLA"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "jangan masukan pola yang terdaftar dalam BERKAS"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "jangan masukan isi dari direktori berisi CACHEDIR.TAG, kecuali untuk berkas tag itu sendiri"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "jangan masukan apapun dibawah direktori berisi CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "jangan masukan direktori berisi CACHEDIR.TAG"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "jangan masukan apapun dibawah direktori berisi BERKAS"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "jangan masukan direktori berisi BERKAS"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "jangan masukan direktori sistem pengontrol direktori"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "abaikan berkas cadangan dan berkas kunci"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "hindari penurunan secara otomatis dalam direktori"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "tetap dalam sistem berkas lokal ketika membuat archive"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "rekursif kedalam direktori (baku)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "jangan hilangkan awalan `/' dari nama berkas"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "NAMA-ANGGOTA"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "berawal di anggota NAMA-ANGGOTA dalam archive"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "hanya simpan berkas lebih baru dari DATE-OR-FILE"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "TANGGAL"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "bandingkan tanggal dan waktu hanya ketika data berubah"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "KONTROL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "backup sebelum penghapusan, pilih PENGONTROL versi"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:170
+msgid "STRING"
+msgstr "STRING"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "backup sebelum penghapusan, override akhiran biasa ('~' kecuali di override oleh variabel lingkungan SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Transformasi nama berkas:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "EKSPRESI"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "gunakan sed EKSPRESI replace untuk mengubah nama berkas"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Pilihan nama berkas cocok (mempengaruhi baik pola exclude dan include):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "abaikan perbedaan huruf besar dan huruf kecil"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "pencocokan pola nama berkas mulai"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "pencocokan polah setelah `/' apapun (baku untuk exclusion)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "pencocokan dengan memperhatikan huruf besar dan huruf kecil (baku)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "gunakan wildcards (baku untuk exclusion)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "pencocok verbatim string"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "wildcards tidak cocok `/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "wildcards cocok `/' (baku untuk exclusion)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Keluaran informative:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "proses daftar berkas secara verbose"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KATA KUNCI"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "pengendali peringatan"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "tampilkan pesan perkembangan setiap rekaman ke ANGKA (baku 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "AKSI"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "jalankan AKSI disetiap titik pemeriksaan"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "tampilkan sebuah pesan jika tidak seluruh link didump"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SINYAL"
+
+#: src/tar.c:751
+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 "tampilkan total bytes setelah memproses archive; dengan sebuah archive - tampilkan total bytes ketika SINYAL ini dikirimkan; Sinyal yang diijinkan adalah: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 dan SIGUSR2; nama tanpa awalah SIG juga diterima"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "tampilkan waktu modifikasi berkas dalam UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "tampilkan waktu berkas sampai ke resolusi penuh"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "kirim keluaran verbose ke BERKAS"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "tampilkan jumlah blok didalam archive dengan setiap pesan"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "minta konfirmasi untuk setiap aksi"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "tampilkan tar baku"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "ketika mendaftar atau mengekstrak, daftar setiap direktori yang tidak cocok dengan kriteria pencarian"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "tampilkan berkas atau nama berkas setelah transformasi"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "GAYA"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "sebagai tambahan karakter quote dari STRING"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "non-aktifkan quoting untuk karakter dari STRING"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Pilihan yang kompatibel:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "ketika membuat, sama seperti --old-archive; ketika mengekstrak, sama seperti --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Pilihan lain:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "non-aktifkan penggunaan dari pilihan berbahaya yang berpotensial"
+
+#: src/tar.c:930
+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:940
+msgid "Conflicting compression options"
+msgstr "Pilihan kompresi konflik"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Nama sinyal: %s tidak dikenal"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Tanggal contoh berkas tidak ditemukan"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Menggantikan %s untuk format tanggal tidak dikenal %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Pilihan %s: memperlakukan tanggal `%s' sebagai %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: daftar berkas telah dibaca"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: nama berkas yang dibaca berisi karakter nul"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "saring archive melalui %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Argumen yang valid untuk pilihan --quoting-style adalah:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Ini* tar baku ke:\n"
+
+#: src/tar.c:1400
+msgid "Invalid blocking factor"
+msgstr "Faktor bloking tidak valid"
+
+#: src/tar.c:1511
+msgid "Invalid tape length"
+msgstr "Panjang tape tidak valid"
+
+#: src/tar.c:1522
+msgid "Invalid incremental level value"
+msgstr "Nilai tingkat peningkatan tidak valid"
+
+#: src/tar.c:1568
+msgid "More than one threshold date"
+msgstr "Lebih dari satu treshold date"
+
+#: src/tar.c:1623 src/tar.c:1626
+msgid "Invalid sparse version value"
+msgstr "Nilai versi sparse tidak valid"
+
+#: src/tar.c:1711
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "pilihan --atime-preserve='system' tidak didukung di platform ini"
+
+#: src/tar.c:1736
+msgid "--checkpoint value is not an integer"
+msgstr "nilai --checkpoint bukan sebuah integer"
+
+#: src/tar.c:1841
+msgid "Invalid group"
+msgstr "Grup tidak valid"
+
+#: src/tar.c:1848
+msgid "Invalid mode given on option"
+msgstr "Mode tidak tepat diberikan pada pilihan"
+
+#: src/tar.c:1905
+msgid "Invalid number"
+msgstr "Nomor tidak valid"
+
+#: src/tar.c:1927
+msgid "Invalid owner"
+msgstr "Pemilik tidak valid"
+
+#: src/tar.c:1957
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Pilihan --preserve sudah ditinggalkan, lebih baik gunakan --preserve-permissions --preserve-order"
+
+#: src/tar.c:1967
+msgid "Invalid record size"
+msgstr "Ukuran record tidak valid"
+
+#: src/tar.c:1970
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Jumlah record harus kelipatan dari %d."
+
+#: src/tar.c:2011
+msgid "Invalid number of elements"
+msgstr "Jumlah dari elemen tidak valid"
+
+#: src/tar.c:2031
+msgid "Only one --to-command option allowed"
+msgstr "Hanya satu pilihan --to-command yang diijinkan"
+
+#: src/tar.c:2111
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Salah bentuk kepadatan argumen: %s"
+
+#: src/tar.c:2137
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Kepadatan tidak diketahui: `%c'"
+
+#: src/tar.c:2154
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Pilihan `-[0-7][lmh]' tidak didukung oleh tar *ini*"
+
+#: src/tar.c:2167
+msgid "[FILE]..."
+msgstr "[BERKAS]..."
+
+#: src/tar.c:2285
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Pilihan 'lama' `%c' membutuhkan argument."
+
+#: src/tar.c:2366
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence tidak berarti tanpa sebuah daftar berkas"
+
+#: src/tar.c:2372
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence tidak dapat digunakan dalam mode operasi yang diminta"
+
+#: src/tar.c:2390
+msgid "Multiple archive files require `-M' option"
+msgstr "Berkas multiple archive membutuhkan pilihan '-M'"
+
+#: src/tar.c:2395
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Tidak dapat menggabungkan --listed-incremental dengan --newer"
+
+#: src/tar.c:2398
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level tidak berarti tanpa --listed-incremental"
+
+#: src/tar.c:2415
+#, 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:2428
+msgid "Cannot verify multi-volume archives"
+msgstr "Tidak dapat verifikasi multi-volume archives"
+
+#: src/tar.c:2430
+msgid "Cannot verify compressed archives"
+msgstr "Tidak dapat verify compressed archives"
+
+#: src/tar.c:2436
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Tidak dapat menggunakan multi-volume compressed archives"
+
+#: src/tar.c:2442
+msgid "Cannot concatenate compressed archives"
+msgstr "Tidak dapat update compressed archives"
+
+#: src/tar.c:2454
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option hanya dapat digunakan dalam archive POSIX"
+
+#: src/tar.c:2472
+msgid "Volume length cannot be less than record size"
+msgstr "Panjang volume tidak dapat lebih kecil dari ukuran rekaman"
+
+#: src/tar.c:2475
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order tidak kompatibel dengan --listed-incremental"
+
+#: src/tar.c:2486
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Secara takut menolak untuk membuat sebuah archive kosong"
+
+#: src/tar.c:2512
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Pilihan '-Aru' tidak kompatibel dengan `-f -'"
+
+#: src/tar.c:2601
+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:2655
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Keluar dengan status gagal karena error error sebelumnya"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: Berkas mengecil sebanyak %s byte"
+msgstr[1] "%s: Berkas mengecil sebanyak %s byte"
+
+#: 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: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:218
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Kata kunci %s tidak dapat dioverride"
+
+#: src/xheader.c:541
+msgid "Malformed extended header: missing length"
+msgstr "Salah bentuk ekstensi header: hilang panjang"
+
+#: 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:556
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Ekstensi panjang header %*s diluar dari jangkauan"
+
+#: src/xheader.c:568
+msgid "Malformed extended header: missing blank after length"
+msgstr "Salah bentuk ekstensi header: hilang blank setelah panjang"
+
+#: src/xheader.c:576
+msgid "Malformed extended header: missing equal sign"
+msgstr "Salah bentuk ekstensi header: hilang tanda sama dengan"
+
+#: src/xheader.c:582
+msgid "Malformed extended header: missing newline"
+msgstr "Salah bentuk ekstensi header: hilang baris baru"
+
+#: 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:830
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Pasangan kata kunci/nilai yang dihasilkan terlalu panjang (kata kunci=%s, panjang=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: 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: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: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: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: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"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: bukan sebuah kehabisan waktu yang valid"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: aksi titik pemeriksaan tidak diketahui"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "tulis"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "baca"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Menulis titik pemeriksaan %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Membaca titik pemeriksaan %u"
+
+#: 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"
+"PILIHAN adalah:\n"
+
+#: tests/genfile.c:128
+msgid "File creation options:"
+msgstr "Pilihan pembuatan berkas:"
+
+#: tests/genfile.c:129 tests/genfile.c:140
+msgid "SIZE"
+msgstr "UKURAN"
+
+#: tests/genfile.c:130
+msgid "Create file of the given SIZE"
+msgstr "Buat berkas dari UKURAN yang diberikan"
+
+#: 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:134
+msgid "Read file names from FILE"
+msgstr "Baca nama berkas dari BERKAS"
+
+#: tests/genfile.c:136
+msgid "-T reads null-terminated names"
+msgstr "-T baca nama berakhiran null"
+
+#: 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:141
+msgid "Size of a block for sparse file"
+msgstr "Ukuran dari sebuah blok untuk berkas sparse"
+
+#: 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:145
+msgid "OFFSET"
+msgstr "OFSET"
+
+#: 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:152
+msgid "File statistics options:"
+msgstr "Pilihan statistik berkas:"
+
+#: 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:162
+msgid "Synchronous execution options:"
+msgstr "pilihan eksekusi synchronous:"
+
+#: tests/genfile.c:164
+msgid "OPTION"
+msgstr "PILIHAN"
+
+#: tests/genfile.c:165
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Jalankan ARG. Berguna dengan --checkpoint dan satu dari --cut, --append, --touch, --unlink"
+
+#: 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:171
+msgid "Set date for next --touch option"
+msgstr "Set tanggal untuk pilihan --touch selanjutnya"
+
+#: 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: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 pilihan --checkpoint dicapai."
+
+#: 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 pilihan --length sebelumnya (atau 0, jika ini tidak diberikan)"
+
+#: 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 pilihan --length sebelumnya."
+
+#: tests/genfile.c:189
+msgid "Update the access and modification times of FILE"
+msgstr "Update waktu akses dan modifikasi dari BERKAS"
+
+#: tests/genfile.c:192
+msgid "Execute COMMAND"
+msgstr "Jalankan PERINTAH"
+
+#: 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:250
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Jumlah diluar dari jangkauan yang diijinkan: %s"
+
+#: tests/genfile.c:253
+#, c-format
+msgid "Negative size: %s"
+msgstr "Ukuran negatif: %s"
+
+#: tests/genfile.c:266 tests/genfile.c:568
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) gagal"
+
+#: tests/genfile.c:269
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "panjang berkas yang diminta %lu, sebenernya %lu"
+
+#: tests/genfile.c:273
+#, c-format
+msgid "created file is not sparse"
+msgstr "pembuatan berkas tidak sparse"
+
+#: tests/genfile.c:362
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Error parsing nomor didekat `%s'"
+
+#: tests/genfile.c:368
+#, c-format
+msgid "Unknown date format"
+msgstr "Format tanggal tidak diketahui"
+
+#: tests/genfile.c:392
+msgid "[ARGS...]"
+msgstr "[ARG...]"
+
+#: 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:435
+msgid "cannot seek"
+msgstr "Tidak dapat mencari"
+
+#: tests/genfile.c:452
+#, c-format
+msgid "file name contains null character"
+msgstr "nama berkas berisi karakter null"
+
+#: 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 pilihan --file"
+
+#: tests/genfile.c:595
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "mask tidak benar (didekat `%s')"
+
+#: tests/genfile.c:601 tests/genfile.c:634
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Field `%s' tidak diketahui"
+
+#: tests/genfile.c:661
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "tidak dapat menset waktu di `%s'"
+
+#: 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:828
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Perintah gagal dengan status %d\n"
+
+#: tests/genfile.c:832
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Perintah berakhir di sinyal %d\n"
+
+#: tests/genfile.c:834
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Perintah berhenti di sinyal %d\n"
+
+#: tests/genfile.c:837
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Perintah memberika core dump\n"
+
+#: tests/genfile.c:840
+#, c-format
+msgid "Command terminated\n"
+msgstr "Perintah berakhir\n"
+
+#: tests/genfile.c:872
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat membutuhkan nama berkas"
+
+#~ 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 "Peringatan: option -l tidak didukung; mungkin maksud anda -j atau -T?"
+
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "Kesalahan exit ditunda dari error sebelumnya"
+
+#~ msgid "block size"
+#~ msgstr "ukuran blok"
+
+#~ msgid "Cannot dup"
+#~ msgstr "Tidak dapat melakukan dup"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "Tidak dapat menggunakan compressed atau remote archives"
+
+#~ msgid "tar (child)"
+#~ msgstr "tar (child)"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (grandchild)"
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "PERINGATAN: Tidak ada volume header"
+
+#~ msgid "Child returned status %d"
+#~ msgstr "Child mengembalikan status %d"
+
+#~ msgid "Member names contain `..'"
+#~ msgstr "Nama anggota mengandung `..'"
+
+#~ msgid "%s: Member name contains `..'"
+#~ msgstr "%s: Nama anggota berisikan `..'"
+
+#~ msgid "Visible long name error"
+#~ msgstr "Kesalahan visible long file name"
+
+#~ msgid "Device number out of range"
+#~ msgstr "Nomor device di luar batasan"
+
+#~ msgid "Visible longname error"
+#~ msgstr "Kesalahan visible longname"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "Berganti nama dari %s ke %s"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ msgstr "%s: Tidak dapat symlink ke %s"
+
+#~ msgid "Symlinked %s to %s"
+#~ msgstr "Symlink %s ke %s"
+
+#~ msgid "Unknown demangling command %s"
+#~ msgstr "Perintah demangling %s tidak dikenal"
+
+#~ msgid "Missing file name after -C"
+#~ msgstr "File name tidak ditemukan setelah -C"
+
+#~ 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 ""
+#~ "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."
+
+#~ msgid "rmtd: Garbage command %c\n"
+#~ msgstr "rmtd: Command tidak terpakai %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' menyimpan sejumlah file dalam sebuah tape atau disk archive, dan\n"
+#~ "dapat restore sebuah file dari archive.\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"
+#~ "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"
+
+#~ 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"
+#~ "Modus operasi utama:\n"
+#~ " -t, --list melihat isi archive\n"
+#~ " -x, --extract, --get mengekstrak file archive\n"
+#~ " -c, --create membuat archive baru\n"
+#~ " -d, --diff, --compare mencari beda antara archive dan file system\n"
+#~ " -r, --append menambahkan file pada bagian akhir archive\n"
+#~ " -u, --update hanya menambahkan file yang lebih baru daripada yang ada di archive\n"
+#~ " -A, --catenate append file tar ke dalam archive\n"
+#~ " --concatenate sama seperti -A\n"
+#~ " --delete menghapus dari archive (tidak berlaku untuk mag tapes!)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Operation modifiers:\n"
+#~ " -W, --verify attempt to verify the archive after writing it\n"
+#~ " --remove-files remove files after adding them to the archive\n"
+#~ " -k, --keep-old-files don't replace existing files when extracting\n"
+#~ " --overwrite overwrite existing files when extracting\n"
+#~ " --overwrite-dir overwrite directory metadata when extracting\n"
+#~ " -U, --unlink-first remove each file prior to extracting over it\n"
+#~ " --recursive-unlink empty hierarchies prior to extracting directory\n"
+#~ " -S, --sparse handle sparse files efficiently\n"
+#~ " -O, --to-stdout extract files to standard output\n"
+#~ " -G, --incremental handle old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " handle new GNU-format incremental backup\n"
+#~ " --ignore-failed-read do not exit with nonzero on unreadable files\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Modifier operasi:\n"
+#~ " -W, --verify berusaha verifikasi archive setelah menulisnya\n"
+#~ " --remove-files hapus file setelah menambahkannya ke dalam archive\n"
+#~ " -k, --keep-old-files tidak menimpa file yang telah ada ketika membongkar\n"
+#~ " --overwrite timpa file yang ada ketika membongkar\n"
+#~ " --overwrite-dir timpa metadata direktori ketika membongkar\n"
+#~ " -U, --unlink-first hapus setiap file sebelum membongkar kepadanya\n"
+#~ " --recursive-unlink mengosongkan hierarchies sebelum membongkar direktori\n"
+#~ " -S, --sparse menangani file sparse dengan efisien\n"
+#~ " -O, --to-stdout extract file ke standard output\n"
+#~ " -G, --incremental menangani old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " menangani new GNU-format incremental backup\n"
+#~ " --ignore-failed-read tidak keluar dengan nonzero pada file yang tidak terbaca\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --preserve same as both -p and -s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Menangani atribut file:\n"
+#~ " --owner=NAME paksa NAME sebagai owner file yang ditambahkan\n"
+#~ " --group=NAME paksa NAME sebagai group file yang ditambahkan\n"
+#~ " --mode=CHANGES paksa modus (symbolic) CHANGES untuk file yang ditambahkan\n"
+#~ " --atime-preserve tidak mengganti access time pada dumped file\n"
+#~ " -m, --modification-time tidak extract modification time dari file\n"
+#~ " --same-owner mencoba extract file dengan ownership yang sama\n"
+#~ " --no-same-owner extract file sebagai anda sendiri\n"
+#~ " --numeric-owner selalu gunakan angka untuk nama user/group\n"
+#~ " -p, --same-permissions extract semua informasi protection\n"
+#~ " --no-same-permissions jangan bongkar informasi permisi\n"
+#~ " --preserve-permissions sama seperti -p\n"
+#~ " -s, --same-order sort name yang akan diextract sesuai dengan archive\n"
+#~ " --preserve-order sama seperti -s\n"
+#~ " --preserve sama seperti -p dan -s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device selection and switching:\n"
+#~ " -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+#~ " --force-local archive file is local even if has a colon\n"
+#~ " --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+#~ " -[0-7][lmh] specify drive and density\n"
+#~ " -M, --multi-volume create/list/extract multi-volume archive\n"
+#~ " -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+#~ " --new-volume-script=FILE same as -F FILE\n"
+#~ " --volno-file=FILE use/update the volume number in FILE\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Pemilihan dan penggantian device:\n"
+#~ " -f, --file=ARCHIVE gunakan file atau device ARCHIVE\n"
+#~ " --force-local file archive local, walaupun memiliki colon\n"
+#~ " --rsh-command=COMMAND gunakan COMMAND remote selain rsh\n"
+#~ " -[0-7][lmh] menentukan drive dan density\n"
+#~ " -M, --multi-volume buat/lihat/extract archive multi-volume\n"
+#~ " -L, --tape-length=NUM ganti tape setelah menulis NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE jalankan script pada akhir setiap tape (berlaku untuk -M)\n"
+#~ " --new-volume-script=FILE sama seperti -F FILE\n"
+#~ " --volno-file=FILE gunakan/update volume number dalam FILE\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device blocking:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+#~ " --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+#~ " -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+#~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Device blok:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes setiap record\n"
+#~ " --record-size=SIZE SIZE bytes setiap record, kelipatan dari 512\n"
+#~ " -i, --ignore-zeros abaikan zeroed blocks dalam archive (berarti EOF)\n"
+#~ " -B, --read-full-records block ulang pada saat baca (untuk 4.2BSD pipes)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -o, --old-archive, --portability write a V7 format archive\n"
+#~ " --posix write a POSIX format archive\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -d)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Pilihan format archive:\n"
+#~ " -V, --label=NAME buat archive dengan volume name NAME\n"
+#~ " PATTERN saat list/extract, globbing PATTERN\n"
+#~ " -o, --old-archive, --portability tulis dalam format archive V7\n"
+#~ " --posix tulis dalam format archive POSIX\n"
+#~ " -j, --bzip2 filter arsip menggunakan bzip2\n"
+#~ " -z, --gzip, --ungzip filter archive menggunakan gzip\n"
+#~ " -Z, --compress, --uncompress filter archive menggunakan compress\n"
+#~ " --use-compress-program=PROG filter menggunkan PROG (harus menggunakan -d)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -K, --starting-file=NAME begin at file NAME in the archive\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Pilihan local file:\n"
+#~ " -C, --directory=DIR pindah ke directory DIR\n"
+#~ " -T, --files-from=NAME gunakan NAME untuk extract atau buat dari file\n"
+#~ " --null -T membaca null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN abaikan file dengan pola PATTERN\n"
+#~ " -X, --exclude-from=FILE abaikan pola yang ada dalam file FILE\n"
+#~ " --anchored abaikan pola yang cocok dengan awal nama file (default)\n"
+#~ " --no-anchored abaikan pola yang cocok setelah sembarang /\n"
+#~ " --ignore-case abaikan ignore-case\n"
+#~ " --no-ignore-case pengabaian adalah case sensitive (default)\n"
+#~ " --wildcards abaikan pola yang menggunakan wildcards (default)\n"
+#~ " --no-wildcards abaikan pola yang string biasa\n"
+#~ " --wildcards-match-slash abaikan pola wildcard yang cocok dengan '/' (default)\n"
+#~ " --no-wildcards-match-slash abaikan pola wildcard yang tidak cocok dengan '/'\n"
+#~ " -P, --absolute-names tidak menghilangkan awalan `/'s dari nama file\n"
+#~ " -h, --dereference dump file yang ditunjuk oleh symlink\n"
+#~ " --no-recursion tidak otomatis menyertakan sub directory\n"
+#~ " -l, --one-file-system tetap pada local file system saat membuat archive\n"
+#~ " -K, --starting-file=NAME mulai dengan file NAME dalam archive\n"
+
+#~ msgid ""
+#~ " -N, --newer=DATE only store files newer than DATE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed only\n"
+#~ " --after-date=DATE same as -N\n"
+#~ msgstr ""
+#~ " -N, --newer=DATE hanya simpan files yang lebih baru dari DATE\n"
+#~ " --newer-mtime bandingkan date dan time hanya saat data berubah\n"
+#~ " --after-date=DATE sama seperti -N\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --suffix=SUFFIX backup before removal, override usual suffix\n"
+#~ msgstr ""
+#~ " --backup[=CONTROL] backup sebelum menghapus, pilih version control\n"
+#~ " --suffix=SUFFIX backup sebelum menghapus, ganti akhiran SUFFIX\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --confirmation same as -w\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Output informasi:\n"
+#~ " --help menampilkan help ini dan keluar\n"
+#~ " --version menampilkan versi program tar dan keluar\n"
+#~ " -v, --verbose menampilkan keterangan file yang sedang diproses\n"
+#~ " --checkpoint menampilkan nama directory names saat membaca archive\n"
+#~ " --totals menampilkan jumlah byte yang ditulis saat membuat archive\n"
+#~ " -R, --block-number menampilkan nomor blok dalam archive dengan setiap pesan\n"
+#~ " -w, --interactive interaktif, meminta konfirmasi untuk setiap tindakan\n"
+#~ " --confirmation sama seperti -w\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+#~ "is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+#~ "Support for POSIX is only partially implemented, don't count on it yet.\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*This* `tar' defaults to `-f%s -b%d'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "GNU tar tidak dapat membaca atau menghasilkan archive `--posix' archives.\n"
+#~ "Bila POSIXLY_CORRECT telah diset pada environment, GNU extensions diabaikan\n"
+#~ "dengan `--posix'.\n"
+#~ "Support untuk POSIX baru sebagian diimplementasi, jangan bergantung pada hal ini.\n"
+#~ "ARCHIVE dapat berupa FILE, HOST:FILE atau USER@HOST:FILE; DATE mungkin berupa \n"
+#~ "tanggal tekstual atau sebuah nama file yang dimulai dengan `/' atau `', yang akan digunakan tanggal file.\n"
+#~ "Default `tar' *ini* adalah `-f%s -b%d'.\n"
+
+#~ msgid "Obsolete option, now implied by --blocking-factor"
+#~ msgstr "Pilihan tidak berlaku lagi, gunakan --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --blocking-factor"
+#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --read-full-records"
+#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --read-full-records"
+
+#~ msgid "Obsolete option name replaced by --touch"
+#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --touch"
+
+#~ msgid "Obsolete option name replaced by --absolute-names"
+#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --absolute-names"
+
+#~ msgid "Obsolete option name replaced by --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 "Pilihan tidak berlaku lagi, digantikan oleh --backup"
+
+#~ msgid "Written by John Gilmore and Jay Fenlason."
+#~ msgstr "Ditulis oleh John Gilmore dan Jay Fenlason."
+
+#~ msgid ""
+#~ "If a long option shows an argument as mandatory, then it is mandatory\n"
+#~ "for the equivalent short option also.\n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH of generated file\n"
+#~ " -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+#~ " --help display this help and exit\n"
+#~ " --version output version information and exit\n"
+#~ msgstr ""
+#~ "Bila long option menunjukkan argumen sebagai mandatory, maka pilihan tersebut\n"
+#~ "adalah mandatory juga untuk short option. \n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH dari file yang dihasilkan\n"
+#~ " -p, --pattern=PATTERN PATTERN adalah `default' atau `zeros'\n"
+#~ " --help menampilkan help ini dan keluar\n"
+#~ " --version menampilkan informasi versi dan keluar\n"
diff --git a/po/.reference/id.s1 b/po/.reference/id.s1
new file mode 100644
index 00000000..8619218d
--- /dev/null
+++ b/po/.reference/id.s1
@@ -0,0 +1 @@
+29f35fa2bfa1d1a2e1dc30ecda53488e0e639cf5 -
diff --git a/po/.reference/it.po b/po/.reference/it.po
new file mode 100644
index 00000000..ec2c567c
--- /dev/null
+++ b/po/.reference/it.po
@@ -0,0 +1,2636 @@
+# Italian translation of GNU tar.
+# Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+#
+# Lele Gaifax <lele@nautilus.eclipse.it>, 1996.
+# Marco d'Itri <md@linux.it>, 1998.
+#
+# Milo Casagrande <milo@casagrande.name>, 2008-2010, 2011.
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar-1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-13 12:09+0100\n"
+"Last-Translator: Milo Casagrande <milo@casagrande.name>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argomento %s non valido per %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argomento %s ambiguo per %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Gli argomenti validi sono:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: parametro ARGP_HELP_FMT sconosciuto"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Spazzatura in ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Gli argomenti obbligatori o facoltativi per le opzioni estese lo sono anche per le corrispondenti opzioni brevi."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Uso:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " o: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [OPZIONE...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Usare \"%s --help\" o \"%s --usage\" per ulteriori informazioni.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Segnalare i bug a %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Errore di sistema sconosciuto"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "Mostra questo aiuto"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "Mostra un breve messaggio sull'uso"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NOME"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "Imposta il nome del programma"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEC"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "Resta in attesa per SEC secondi (predefinito 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "Stampa la versione del programma"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ERRORE DEL PROGRAMMA) Nessuna versione conosciuta."
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: troppi argomenti\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ERRORE DEL PROGRAMMA) L'opzione dovrebbe essere stata riconosciuta."
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "Errore di scrittura"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: l'opzione \"%s\" è ambigua\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"--%s\" non accetta un argomento\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"%c%s\" non accetta un argomento\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: l'opzione \"--%s\" richiede un argomento\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: opzione \"--%s\" non riconosciuta\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: opzione \"%c%s\" non riconosciuta\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: opzione non valida -- \"%c\"\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: l'opzione richiede un argomento -- \"%c\"\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: l'opzione \"-W %s\" è ambigua\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"-W %s\" non accetta un argomento\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: l'opzione \"-W %s\" richiede un argomento\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "memoria esaurita"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "Impossibile registrare la directory di lavoro corrente"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "Impossibile ritornare alla directory di lavoro iniziale"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "\""
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "\""
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[sSyY].*"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN].*"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Pacchetto creato da %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Pacchetto creato da %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Licenza GPLv3+: GNU GPL versione 3 o successiva <http://gnu.org/licenses/gpl.html>\n"
+"Questo programma è software libero: siete liberi di modificarlo e ridistribuirlo.\n"
+"Non c'è ALCUNA GARANZIA, per quanto consentito dalle vigenti normative.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Scritto da %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Scritto da %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s e altri.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Segnalare i bug a: %s\n"
+"Segnalare i bug di traduzione a: <tp@lists.linux.it>\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Segnalare i bug di %s a: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Sito web di %s: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, 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
+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"
+
+#. 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Rimozione di \"%s\" iniziale dai nomi dei membri"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Rimozione di \"%s\" iniziale dagli obiettivi dei collegamenti fisici"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Sostituzione di \".\" al nome vuoto di un membro"
+
+#: lib/paxnames.c:155
+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 "Impossibile connettersi a %s: \"resolve\" non riuscita"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Impossibile eseguire la shell remota"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Direzione di seek fuori dell'intervallo"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Direzione di seek non valida"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Offset di seek non valido"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Offset di seek fuori dell'intervallo"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Conteggio byte non valido"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Conteggio byte fuori dell'intervallo"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "EOF prematuro"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Codice d'operazione non valido"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operazione non supportata"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Argomenti non attesi"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Manipola un dispositivo a nastro, accettando comandi da un processo remoto"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NUMERO"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "Imposta il livello di debug"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FILE"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "Imposta il nome del file di output per il debug"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "impossibile aprire %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "troppi argomenti"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Comando spazzatura"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Questo non sembra un archivio tar"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Byte totali scritti"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Byte totali letti"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Byte totali eliminati: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Valore di record_size non valido"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Non è stato indicato il nome di un archivio"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Impossibile verificare archivi su stdin/stdout"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "L'archivio è compresso. Usare l'opzione %s."
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Impossibile aggiornare archivi compressi"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "All'inizio del nastro, uscita immediata"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Troppi errori, uscita"
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek non si è fermata al limite di un record"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: contiene un numero di volume non valido"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Overflow del numero di volume"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Preparare il volume #%d per %s e premere Invio: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "Ricevuto EOF quando era attesa la risposta dell'utente"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "Attenzione: l'archivio non è completo"
+
+#: src/buffer.c:1148
+#, 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 nome Cambia il nome del file per il prossimo volume (e i successivi)\n"
+" q Termina tar\n"
+" y o Invio Continua l'operazione\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Esegue una subshell\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Stampa questo elenco\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Nessun nuovo volume; uscita.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Nome file non specificato. Riprovare.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Input non valido. Premere ? per l'aiuto.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "comando \"%s\" non riuscito"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s non continua su questo volume"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s è la dimensione sbagliata (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Questo volume è fuori sequenza (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "L'archivio non ha un'etichetta corrispondente a %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Il volume %s non corrisponde a %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: il nome del file è troppo lungo per essere scritto in un'intestazione GNU multi-volume, troncato"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "write non si è fermata al limite di un record"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "I contenuti sono differenti"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "EOF inatteso nell'archivio"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "I tipi dei file sono diversi"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "I modi sono diversi"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Gli UID sono diversi"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "I GID sono diversi"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Gli orari di modifica sono diversi"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Le dimensioni sono diverse"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Non è collegato a %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "I collegamenti simbolici sono diversi"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "I numeri dei device sono diversi"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Verifica "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: tipo di file \"%c\" sconosciuto, confrontato come un file normale"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "L'archivio contiene nomi di file con i prefissi iniziali rimossi."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "L'archivio contiene nomi di file trasformati."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "La verifica potrebbe non riuscire a trovare i file originali."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Un singolo blocco di zeri a %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: contiene un'etichetta di directory cache %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "valore %s fuori dall'intervallo (%s) %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Generazione delle intestazioni ottali negative"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: il nome del file è troppo lungo (max %d); non archiviato"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: il nome del file è troppo lungo (impossibile dividerlo); non archiviato"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: il nome del collegamento è troppo lungo; non archiviato"
+
+#: src/create.c:1064
+#, 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "contenuti non archiviati"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: tipo di file sconosciuto; file ignorato"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Collegamenti mancanti a %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: il file non è modificato; non archiviato"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: il file è l'archivio; non archiviato"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "directory non archiviata"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: file modificato mentre era in lettura"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket ignorato"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door ignorata"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Passaggio alla prossima intestazione"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Eliminazione non-intestazione dall'archivio"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: orario %s inverosimilmente vecchio"
+
+# (ndt) problema del plurale...
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: incoerenza inaspettata nel creare la directory"
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Estrazione file contigui come file normali"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Tentativo di estrazione dei collegamenti simbolici come collegamenti fisici"
+
+#: src/extract.c:1365
+#, 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:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Intestazione di nome lungo inattesa"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: tipo di file \"%c\" sconosciuto, estratto come file normale"
+
+# (ndt) questo è il pezzo di codice
+# if (file_newer_p (file_name, &current_stat_info))
+# {
+# WARN ((0, 0, _("Current %s is newer or same age"),
+# quote (file_name)));
+# return 0;
+# }
+#: src/extract.c:1405
+#, 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:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: impossibile eseguire il backup di questo file"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Impossibile rinominare %s in %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: directory rinominata da %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: directory rinominata"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: directory nuova"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Orario non valido"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Orario di modifica non valido (secondi)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Orario di modifica non valido (nanosecondi)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Numero di device non valido"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Numero dell'inode non valido"
+
+# (ndt) oppure rendere snapshot come istantanea?
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Campo troppo lungo nel leggere il file di snapshot"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Errore di lettura nel file di snapshot"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "EOF inatteso nel file di snapshot"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Valore del campo inatteso nel file di snapshot"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Record finale mancante"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Formato file incrementale errato"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Versione formato incrementale non supportata: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "dumpdir malformata: atteso \"%c\", ma trovato %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "dumpdir malformata: \"X\" duplicata"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "dumpdir malformata: nessun nome in \"R\""
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "dumpdir malformata: \"T\" non preceduta da \"R\""
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "dumpdir malformata: nessun nome in \"T\""
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "dumpdir malformata: \"X\" mai usata"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Impossibile creare la directory temporanea usando il modello %s"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: eliminazione directory non eseguita: impossibile fare stat"
+
+#: src/incremen.c:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: eliminazione di %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: impossibile rimuoverlo"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: omesso"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blocco %s: ** Blocco di NUL **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blocco %s: ** Fine del file **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blocco %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr ""
+"Il valore ottale %.*s dell'archivio è fuori dall'intervallo %s; si suppone\n"
+"che sia in complemento a due"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "L'archivio contiene intestazioni base-64 obsolete"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " collegamento a %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tipo di file sconosciuto %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Collegamento lungo--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nome lungo--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Intestazione del volume--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Continua al byte %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Creazione directory:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Impossibile recuperare la directory di lavoro"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Rinomina di %s in %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: impossibile rinominarlo in %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Rinomina di %s nuovamente in %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: file rimosso prima di poterlo leggere"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "il processo figlio"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "il canale tra processi"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Usati caratteri di corrispondenza nei nomi dei file."
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Usare --wildcards per abilitare la corrispondenza o --no-wildcards per disabilitare l'avviso"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: non trovato nell'archivio"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: occorrenza richiesta non trovata nell'archivio"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Etichetta dell'archivio non corrispondente"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "L'utilizzo dell'opzione -C all'interno dell'elenco dei file non è consentita con --listed-incremental"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Solo un'opzione -C è consentita 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: formato dell'archivio non valido"
+
+#: 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:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Stile di citazione \"%s\" non conosciuto. Provare \"%s --quoting-style=help\" per visualizzarne un elenco."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"La versione GNU di \"tar\" è in grado di salvare molti file in un solo archivio su nastro o su disco e può ripristinare singoli file dall'archivio.\n"
+"\n"
+"Esempi:\n"
+" tar -cf archivio.tar foo bar # Crea archivio.tar dai file foo e bar\n"
+" tar -tvf archivio.tar # Elenca prolissamente i file in archivio.tar\n"
+" tar -xf archivio.tar # Estrae tutti i file da archivio.tar\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Il suffisso dei backup è \"~\" a meno che non sia impostato con --suffix oppure\n"
+"SIMPLE_BACKUP_SUFFIX.\n"
+"Il controllo di versione può essere impostato con --backup oppure VERSION_CONTROL,\n"
+"i valori possibili sono:\n"
+"\n"
+" none, off Non esegue mai i backup\n"
+" t, numbered Esegue backup numerati\n"
+" nil, existing Numerati se esistono backup numerati, altrimenti semplici\n"
+" never, simple Esegue sempre backup semplici\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Modi operativi principali:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "Elenca i contenuti dell'archivio"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "Estrae file da un archivio"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "Crea un nuovo archivio"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "Trova differenze tra l'archivio e il file system"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "Accoda i file alla fine di un archivio"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "Accoda solo i file più recenti della copia nell'archivio"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "Aggiunge il contenuto di un altro archivio"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "Elimina dall'archivio (non su nastri magnetici)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "Verifica l'etichetta di volume dell'archivio ed esce"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Modificatori delle operazioni:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "Gestisce efficientemente i file sparsi"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+# (ndt) hmmm... formato sparso...
+#: src/tar.c:419
+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:421
+msgid "handle old GNU-format incremental backup"
+msgstr "gestisce i vecchi backup incrementali GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "Gestisce il nuovo formato di backup incrementali GNU"
+
+# (ndt) suggerimenti?
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "Livello di dump per l'archivio a lista incrementale creato"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "Non esce con non-zero quando ci sono file non leggibili"
+
+#: src/tar.c:429
+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 "Elabora solo la NUMERO-esima occorrenza di ogni file nell'archivio; quest'opzione è valida solo se usata insieme a uno dei sottocomandi --delete, --diff, --extract o --list e quando viene fornito un elenco di file sulla riga di comando o attraverso l'opzione -T; il valore predefinito di NUMERO è 1"
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "L'archivio è posizionabile"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "L'archivio non è posizionabile"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "Non controlla i numeri del device quando crea archivi incrementali"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "Controlla i numeri del device quando crea archivi incrementali (predefinito)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Controlli di sovrascrittura:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "Tenta di verificare l'archivio dopo averlo scritto"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "Rimuove i file dopo averli aggiunti all'archivio"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "Durante l'estrazione non sovrascrive i file esistenti"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "Sovrascrive i file esistenti durante l'estrazione"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "Rimuove ogni file prima di estrarre su di esso"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "Svuota le directory prima di estrarle"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "Preserva i metadati delle directory esistenti"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "Sovrascrive i metadati delle directory esistenti durante l'estrazione (predefinito)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Selezione stream di output:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "Estrae i file sullo standard output"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "COMANDO"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "Invia in pipe i file estratti a un altro programma"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "Ignora il codice di uscita dei figli"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "Considera i codici di uscita non-zero come un errore"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Gestione degli attributi dei file:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "Forza NOME come proprietario per i file aggiunti"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "Forza NOME come gruppo per i file aggiunti"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATA-O-FILE"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "Imposta mtime per i file aggiunti da DATA-O-FILE"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "CAMBI"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "Forza il modo CAMBI (simbolico) per i file aggiunti"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODO"
+
+#: src/tar.c:499
+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 "Preserva l'orario di accesso sui file archiviati, ripristinando l'orario dopo la lettura (METODO=\"replace\"; predefinito) o impostando l'orario all'inizio (METODO=\"system\")"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "Non estrae l'orario di ultima modifica del file"
+
+#: src/tar.c:505
+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 come presente nell'archivio (predefinito per il super utente)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "Estrae i file come l'utente attuale (predefinito per gli utenti normali)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "Usa sempre i numeri per i nomi di utente/gruppo"
+
+#: src/tar.c:511
+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:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "Applica la umask dell'utente nell'estrarre i permessi dall'archivio (predefinito per gli utenti normali)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "Ordina i nomi da estrarre come nell'archivio"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "Come -p e -s assieme"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "Ritarda l'impostazione dei tempi di modifica e dei permessi delle directory estratte al termine dell'estrazione"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "Annulla l'effetto dell'opzione --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Selezione e cambio del device:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIVIO"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "Usa come archivio il file o il dispositivo ARCHIVIO"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "L'archivio è locale anche se contiene \":\""
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "Usa il COMANDO rmt indicato invece di rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "Usa il COMANDO remoto invece di rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "Indica drive e densità"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "Crea, elenca, estrae archivi multi-volume"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "Cambia il nastro dopo avere scritto NUMERO × 1024 byte"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "Esegue lo script alla fine di ogni nastro (implica -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "Usa/aggiorna il numero del volume nel FILE"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blocchi del device:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCCHI"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "Usa record di BLOCCHI × 512 byte"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "NUMERO di byte per record, multiplo di 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "Ignora i blocchi a zero nell'archivio (significa EOF)"
+
+#: src/tar.c:578
+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:583
+msgid "Archive format selection:"
+msgstr "Selezione formato di archiviazione:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMATO"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "Crea archivi nel formato indicato"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMATO è uno dei seguenti:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "Vecchio formato di tar V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "Formato GNU di tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "Formato GNU di tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "Formato POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "Formato POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "Come pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "Come --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "Come --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "PAROLA_CHIAVE[[:]=VALORE][,PAROLA_CHIAVE[[:]=VALORE], ...]"
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "Controlla le parole chiavi di pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TESTO"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+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:614
+msgid "Compression options:"
+msgstr "Opzioni di compressione:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "Usa il suffisso dell'archivio per determinare il programma di compressione"
+
+#: src/tar.c:618
+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:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "Filtra attraverso PROG (deve accettare -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Selezione dei file locali:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "Passa alla directory DIR"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "Prende i nomi da estrarre o creare dal file FILE"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T legge nomi terminati da NULL, disabilita -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "Disabilita l'effetto dell'opzione --null precedente"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "Toglie i caratteri di citazione dai nomi dei file letti con -T (predefinito)"
+
+#: src/tar.c:652
+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:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MODELLO"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "Esclude i file i cui nomi corrispondono a MODELLO"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "Esclude i modelli elencati in FILE"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "Esclude i contenuti delle directory contenenti CACHEDIR.TAG, a parte il file .TAG stesso"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "Esclude tutto quanto all'interno di directory contenenti CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "Esclude le directory contenenti CACHEDIR.TAG"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "Esclude tutto quanto all'interno di directory contenenti FILE"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "Esclude le directory contenenti FILE"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "Esclude le directory dei sistemi di controllo della versione"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "Esclude i file di backup e di blocco"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "Non entra automaticamente nelle directory"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "Resta nel file system locale durante la creazione dell'archivio"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "Entra ricorsivamente nelle directory (predefinito)"
+
+#: src/tar.c:683
+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:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "NOME"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "Inizia dal membro NOME nell'archivio"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "Archivia solo i file più recenti di DATA-O-FILE"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATA"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "Confronta data e ora solo quando il contenuto è cambiato"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "CONTROLLO"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "Esegue un backup prima di rimuovere, usando il CONTROLLO di versione"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRINGA"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+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:703
+msgid "File name transformations:"
+msgstr "Trasformazioni dei nomi di file:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "ESPRESSIONE"
+
+#: src/tar.c:708
+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:714
+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:717
+msgid "ignore case"
+msgstr "Non fa differenza tra maiuscole e minuscole"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "I modelli corrispondono all'inizio del nome del file"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "I modelli corrispondono dopo ogni \"/\" (predefinito per le esclusioni)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "Considera diverse le maiuscole e le minuscole (predefinito)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "Utilizza i metacaratteri (predefinito per le esclusioni)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "Corrispondenza letterale della stringa"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "I metacaratteri non corrispondono \"/\""
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "I metacaratteri corrispondono \"/\" (predefinito per le esclusioni)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Output informativo:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "Elenca prolissamente i file elaborati"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "PAROLACHIAVE"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "Controllo di avviso"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "Visualizza un messaggio di avanzamento ogni NUMERO-esimo record (predefinito 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "AZIONE"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "Esegue l'azione a ogni punto di controllo"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "Stampa un messaggio se non tutti i collegamenti sono archiviati"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SEGNALE"
+
+#: src/tar.c:751
+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 "Stampa i byte totali dopo l'elaborazione dell'archivio; con un argomento - stampa i byte totali quando viene inviato il SEGNALE. I segnali consentiti sono: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 e SIGUSR2; sono accettati anche i nomi senza il prefisso SIG"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "Stampa le date di modifica del file in formato UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "Stampa la data del file in tutti i suoi dettagli"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "Invia l'output prolisso al FILE"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "Mostra il numero di blocco nell'archivio con ogni messaggio"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "Chiede conferma per ogni azione"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "Mostra le impostazioni predefinite di tar"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "All'elencazione o all'estrazione, elenca ogni directory che non corrisponde al criterio di ricerca"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "Mostra il nome del file o dell'archivio dopo la trasformazione"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STILE"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "Caratteri di citazione aggiuntivi da STRINGA"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "Disabilita la citazione per i caratteri dalla STRINGA"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Opzioni di compatibilità:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "Alla creazione, uguale a --old-archive; all'estrazione, uguale a --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Altre opzioni:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "Disabilita l'uso di alcune opzioni potenzialmente dannose"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Non è possibile indicare più di un'opzione \"-Acdtrux\" o \"--test-label\""
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Conflitto tra le opzioni di compressione"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Nome del segnale sconosciuto: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "File campione della data non trovato"
+
+#: src/tar.c:1028
+#, 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:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Opzione %s: la data \"%s\" viene considerata come %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: elenco file già letto"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: il nome di file letto contiene un carattere NULL"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "Filtra l'archivio attraverso %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Argomenti validi per l'opzione --quoting-style sono:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Questa versione di tar ha le seguenti impostazioni predefinite:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Fattore del blocco non valido"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Lunghezza del nastro non valida"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Valore del livello incrementale non valido"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Più di una data di soglia"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Valore versione sparsa non valido"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve=\"system\" non è supportato su questa piattaforma"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "Il valore --checkpoint non è un intero"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Gruppo non valido"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Modo fornito sull'opzione non valido"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Numero non valido"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Proprietario non valido"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "L'opzione --preserve è deprecata, usare --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Dimensione del record non valida"
+
+#: src/tar.c:1978
+#, 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:2019
+msgid "Invalid number of elements"
+msgstr "Numero di elementi non valido"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Consentita solo un'opzione --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Argomento densità non corretto: \"%s\""
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Densità sconosciuta: \"%c\""
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Le opzioni \"-[0-7][lmh]\" non sono gestite da questa versione di tar"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[FILE]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "La vecchia opzione \"%c\" richiede un argomento."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence non ha senso senza un elenco di file"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence non può essere usata nel modo di operazioni richiesto"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Archivi multipli richiedono l'opzione \"-M\""
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Impossibile combinare --listed-incremental e --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "L'opzione --level non è utilizzabile senza --listed-incremental"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Impossibile verificare archivi multi-volume"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Impossibile verificare archivi compressi"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Impossibile usare archivi multi-volume compressi"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Impossibile concatenare archivi compressi"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option può essere usata solo su archivi POSIX"
+
+#: src/tar.c:2492
+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:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order non è compatibile con --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Rifiuto totale di creare un archivio vuoto"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Le opzioni \"-Aru\" sono incompatibili con \"-f -\""
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "È necessario specificare una delle opzioni \"-Acdtrux\" o \"--test-label\""
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Uscita con stato di fallimento in base agli errori precedenti"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "La parola chiave %s è sconosciuta o non ancora implementata"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Orario fuori dall'intervallo consentito"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Il modello %s non può essere usato"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "La parola chiave %s non può essere sostituita"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Intestazione estesa malformata: manca la lunghezza"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "La lunghezza intestazione estesa è fuori dall'intervallo consentito"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "La lunghezza dell'intestazione estesa %*s è fuori dall'intervallo"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Intestazione estesa malformata: manca lo spazio dopo la lunghezza"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Intestazione estesa malformata: manca il segno di uguale"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Intestazione estesa malformata: manca un newline"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Parola chiave sconosciuta \"%s\" dell'intestazione estesa ignorata"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "La coppia parola chiave/valore generata è troppo lunga (parola chiave=%s, lunghezza=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Intestazione estesa malformata: %s=%s non valido"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Intestazione estesa malformata: %s=%s in eccesso"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Intestazione estesa malformata: %s non valido: numero dispari di valori"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: timeout non valido"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: azione di punto di controllo sconosciuta"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "lettura"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "scrittura"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Punto di controllo di scrittura %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Punto di controllo di lettura %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile manipola i file per la suite di test GNU paxutils.\n"
+"Le opzioni sono:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Opzioni di creazione file:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "DIMENSIONE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Crea file della DIMENSIONE indicata"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Scrive sul file NOME invece dello standard output"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Legge i nomi dei file da FILE"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T legge nomi terminati da NULL"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Dimensione del blocco per il file sparso"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "OFFSET"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Si posiziona all'OFFSET indicato prima di scrivere i dati"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Opzioni per le statistiche:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Opzioni di esecuzione sincrona:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPZIONE"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Esegue ARGOMENTI. Utile con --checkpoint e uno tra --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Imposta la data per l'opzione --touch successiva"
+
+#: tests/genfile.c:173
+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:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Azioni di esecuzione sincrona. Queste sono eseguite quando viene raggiunto il punto di controllo fornito dall'opzione --checkpoint."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Tronca il FILE alla dimensione specificata dall'opzione --length precedente (0 se non viene fornita)"
+
+#: tests/genfile.c:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "Aggiorna l'orario di accesso e modifica del FILE"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Esegue il COMANDO"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Esegue l'unlink di FILE"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Dimensione non valida: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Numero fuori dall'intervallo consentito: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Dimensione negativa: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) non riuscita"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "lunghezza file richiesta %lu, effettiva %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "il file creato non è sparso"
+
+# (ndt) ?
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Errore nell'analizzare il numero vicino a \"%s\""
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Formato data non conosciuto"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGOMENTI...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "impossibile aprire \"%s\""
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "impossibile eseguire seek"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "il nome del file contiene caratteri NULL"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "impossibile generare file sparsi sullo standard output, usare l'opzione --file"
+
+# (ndt) ?
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "maschera non corretta (vicino a \"%s\")"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Campo \"%s\" sconosciuto"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "impossibile impostare l'orario su \"%s\""
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "impossibile eseguire l'unlink di %s"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Comando eseguito con successo\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Comando non riuscito con lo stato %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Comando terminato al segnale %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Comando fermato al segnale %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Il comando ha fatto un dump del core\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Comando terminato\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat richiede i nomi dei file"
diff --git a/po/.reference/it.s1 b/po/.reference/it.s1
new file mode 100644
index 00000000..98555709
--- /dev/null
+++ b/po/.reference/it.s1
@@ -0,0 +1 @@
+1ce7c64a1fa4ff899a9a119315f2c23bd724cbb9 -
diff --git a/po/.reference/ja.po b/po/.reference/ja.po
new file mode 100644
index 00000000..1aa88e86
--- /dev/null
+++ b/po/.reference/ja.po
@@ -0,0 +1,2620 @@
+# Japanese messages for GNU tar 1.26
+# Copyright (C) 1999, 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+# Masahito Yamaga <ma@yama-ga.com>, 2011.
+# derived from the version by
+# Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 1999-2001.
+# Masahito Yamaga <yamaga@ipc.chiba-u.ac.jp>, 2007.
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-08-26 23:42+0900\n"
+"Last-Translator: Masahito Yamaga <ma@yama-ga.com>\n"
+"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-JP\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=0;\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr " %s %s Ф̵Ǥ"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr " %s %s ФƤޤǤ"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr ":"
+
+#: 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 꾮"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT ѥ᡼ͤɬ"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT ѥ᡼ͤǤʤФʤޤ"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: ̤Τ ARGP_HELP_FMT ѥ᡼"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "ARGP_HELP_FMT ˥: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "ĹץФɬܤޤǤդΰбûץФƤɬܤޤǤդǤ."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "ˡ:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " ޤ: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [ץ...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "ܤ `%s --help' ޤ `%s --usage' .\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "ХݡȤ %s ޤ.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "ʥƥ२顼"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "Υإװɽ"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "ûˡåɽ"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAME"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "ץ̾"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SECS"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "SECS (ɸ 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "ץСɽ"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ץ२顼) С!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: ¿ޤ\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ץ२顼) ץǧǽ!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "񤭹ߥ顼"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: ץ '%s' ϤޤǤ\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: ץ '--%s' ˰Ϥޤ\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: ץ '%c%s' ˰Ϥޤ\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: ץ '--%s' ˤϰɬפǤ\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: ̤ΤΥץ '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: ̤ΤΥץ '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: ̵ʥץ -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: ץˤϰɬפǤ -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: ץ '-W %s' ϤޤǤ\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: ץ '-W %s' ˰Ϥޤ\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: ץ '-W %s' ˤϰɬפǤ\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "Ȥڤޤ"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "ߤΥǥ쥯ȥϿǤޤ"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "ǥ쥯ȥΤ˼Ԥޤ"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "ѥå: %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"ѵ GPLv3+: GNU GPL version 3 ޤϤʹ <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"
+"[]\n"
+"ϥե꡼եȥǤ. ѹȺۤϼͳǤ.\n"
+"ˡΧǧϰϤǡ̵ݾڡפǤ.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr ": %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+": by %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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"ХݡȰ: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: 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 ѹǤޤ"
+
+#: 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "̾Ƭ `%s' ޤ"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "ϡɥ褫Ƭ `%s' ޤ"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Υ̾ `.' ޤ"
+
+#: lib/paxnames.c:155
+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 ³Ǥޤ: ̾輺"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "֥뤬¹ԤǤޤ"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "ϰϳ"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "̵ʸ"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "̵ʸեå"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "եåȤϰϳ"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "̵ʥХȿ"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Хȿϰϳ"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "ե潪λ"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "̵"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Ƥʤ"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "ͽ̰"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "֥ץ̿դƥơץɥ饤֤"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NUMBER"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "ǥХå٥"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FILE"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "ǥХåϥե̾"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "%s 򳫤ޤ"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "¿ޤ"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "פʥޥ"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr " tar ֤ǤϤʤ褦Ǥ"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "񤭽ФХȿ"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "ɤ߹ߥХȿ"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Хȿ: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(ѥ)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "record_size ̵ͤǤ"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "̾ꤵƤޤ"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "ɸϤΥ֤ϸڤǤޤ"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "֤ϰ̤Ƥޤ. %s ץȤäƤ"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "̤줿֤ϥåץǡȤǤޤ"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "ơפƬǤ. ߤޤ"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "顼¿ޤ. ߤޤ"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Ͽ = %lu ֥å"
+msgstr[1] "Ͽ = %lu ֥å"
+
+#: src/buffer.c:913
+#, 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:990
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "֥ե᤻ޤ. -i ʤǤɤʤΤޤ."
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek Ͽζǻߤޤ"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: ̵ʥܥ塼ֹޤǤޤ"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "ܥ塼ֹ椬Сեޤ"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "ܥ塼 #%d (%s) ޤ. ꥿󥭡򲡤Ƥ: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "桼 EOF ɬפȤʤޤ"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "ٹ: ֤ԴǤ"
+
+#: src/buffer.c:1148
+#, 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] (Ӥ³) Υܥ塼Ф뿷ե̾\n"
+" q tar λ\n"
+" y ޤϲ ³\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! ֥ư\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? ΥꥹȤɽ\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "ܥ塼बޤ. λޤ.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "ե̾ꤵƤޤ. ⤦.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr ". ? ǥإפɽ\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "%s ޥɤԤޤ"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s ϤΥܥ塼Ǥ餯Ϣ³Ƥޤ: إåϾά줿̾ޤǤޤ"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s ϤΥܥ塼Ϣ³Ƥޤ"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s ʥǤ (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Υܥ塼Ϣ³Ƥޤ (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "֤ %s ˰פ٥뤬դƤޤ"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "ܥ塼 %s %s ˰פޤ"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: ե̾Ĺ᤮ GNU ޥܥ塼إå¸ǤʤΤڤΤƤޤ"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "񤭹ߤ֥åǽäƤޤ"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Ƥۤʤޤ"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "ͽ EOF ޤ"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "ե륿פۤʤޤ"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "⡼ɤۤʤޤ"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "桼 ID ۤʤޤ"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "롼 ID ۤʤޤ"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "ǽ郎ۤʤޤ"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "ۤʤޤ"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "%s ˥󥯤Ƥޤ"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "ܥå󥯤ۤʤޤ"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "ǥХֹ椬㤤ޤ"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr ""
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: ̤ΤΥե륿 `%c', ̾եȺʬޤ"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Ƭ줿ե̾ޤ."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "֤Ѵ줿ե̾ޤޤƤޤ"
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Υեν߳ǧ˼Ԥǽޤ."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "%s ˸Ω֥å"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: å ǥ쥯ȥ %s ޤǤޤ; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr " %s %s ϰ %s..%s ˤޤ -- %s "
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr " %s %s ϰ %s..%s ˤޤ"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr " 8 ʥإåޤ"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: ե̾Ĺ᤮ ( %d) Τǥפޤ"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: ե̾Ĺ᤮ (ʬǽ) Τǥפޤ"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: ̾Ĺ᤮Τǥפޤ"
+
+#: src/create.c:1064
+#, 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:1160
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: եϰۤʤե륷ƥˤΤǥפޤ"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "Ƥפޤ"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: ̤ΤΥե; ե̵뤵ޤ"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "%s ؤΥ󥯤ޤ."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: ѹƤʤΤǥפޤ"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: ϥ֤ʤΤǥפޤ"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "ǥ쥯ȥפޤ"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: ɤ߹ե뤬ѹƤޤ"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: åȤ̵뤷ޤ"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door ̵뤷ޤ"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Υإå򥹥åפޤ"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "֤إåǤʤΤޤ"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: 餯Ťॹ %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: ॹ %s %s 򼨤Ƥޤ"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: ǥ쥯ȥ¬̷⤬ޤ"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: ǥ쥯ȥϾ֤ŸǤ褦ˤʤ̾ѹޤ"
+
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Ϣ³եʥեȤƼФޤ"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "ܥå󥯤ϡɥ󥯤ȤƼФƤߤޤ"
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Фޤ -- ե̤Υܥ塼फ³Ƥޤ"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "ͽĹ̾إå"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: ̤ΤΥե륿 '%c', ̾եȤ"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "ߤ %s Ʊ"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: ΥեΥХååפ뤳ȤǤޤǤ"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s ̾ %s ѹǤޤ"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: ǥ쥯ȥ̾ %s ѹޤ"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: ǥ쥯ȥ̾ѹޤ"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: ǥ쥯ȥϿޤ"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "̵ʥॹ"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "ʺǽ ()"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "ʺǽ (ʥ)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "̵ʥǥХֹǤ"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "̵ inode ֹ"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "ʥåץåȥեɤ߹˥եɤĹ᤮ޤ"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "ʥåץåȥեɤ߹ߥ顼"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "ʥåץåȥեͽ EOF"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "ʥåץåȥեͽ̥ե"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "üϿʤ"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "ʬե"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "̤ʬС: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr " dumpdir: '%c' ٤Ȥ %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr " dumpdir: 'X' ʣ"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr " dumpdir: 'R' ˶̾"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr " dumpdir: 'T' 'R' ˤʤ"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr " dumpdir: 'T' ˶̾"
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr " dumpdir: '%c' ٤Ȥ˥ǡνü"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr " dumpdir: 'X' ̤"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "ƥץ졼 %s Ȥäưǥ쥯ȥޤ"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: ǥ쥯ȥޤ: ֤ʬޤ"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: ǥ쥯ȥϰۤʤǥХˤΤǾõޤ"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s \n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ǥޤ"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: άޤ"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "֥å %s: ** NUL Υ֥å **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "֥å %s: ** եνü **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "֥å %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, 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:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "8 ʿ %.*s %s ϰϳǤ"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "֤Ѥ줿 base-64 إåޤޤƤޤ"
+
+#: src/list.c:809
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "դ base-64 ʸ %s %s ϰϳǤ"
+
+#: src/list.c:840
+#, 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:869
+#, 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:891
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "֤ %s %s ϰ %s..%s ˤޤ"
+
+#: src/list.c:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " %s ؤΥ\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " ʥե륿 %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Ĺ--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Ĺ̾--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--ܥ塼إå--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Х %s Ϣ³--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "ǥ쥯ȥ:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "ǥ쥯ȥǤޤ"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "̾ %s %s ѹޤ\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: ̾ %s ѹǤޤ"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "̾ %s %s ᤷޤ\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: ɤ߹߰˺ޤ"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "ҥץ"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "ץ֥ͥ"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "ѥޥåʸե̾˻ȤƤޤ"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "ѥޥåͭˤʤ --wildcards, ηٹ޻ߤʤ --no-wildcards ȤäƤ"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: ˸Ĥޤ"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: ˸Ĥޤ"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "֥٥뤬פޤ"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "եꥹ -C ץ --listed-incremental Ȱ˻Ȥޤ"
+
+#: src/names.c:955
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: ̵ʥַ"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU ͭεǽϡߴʷɬפȤޤ"
+
+#: 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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"\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:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"--suffix SIMPLE_BACKUP_SUFFIX ǻꤵʤ¤, Хååפ\n"
+" `~' Ǥ. ޤ, С --backup VERSION_CONTROL ˼Τ褦\n"
+"ͤꤹ뤳ȤǤޤ.\n"
+"\n"
+" none, off Хååפʤ\n"
+" t, numbered Хååפֹդ\n"
+" nil, existing ֹ椬դ줿Хååפֹդ,\n"
+" Ǥʤñ˥Хååפ\n"
+" never, simple ñʥХååפ\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "⡼:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "֤Ƥɽ"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "֤ե"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "֤"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "֤ȥե륷ƥȤΰ㤤դ"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "֤˥եɲ"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "ˤե꿷եΤߤɲ"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "֤ tar եɲ"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "֤ (ơ׾Ǥϥ!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "֤Υܥ塼٥ƥȤƽλ"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "ץФղõǽ:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "ޤФ¸ߤեŪ˽"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "ޤФ (sparse) ΥС (--sparse ΰ̣ޤ)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "Ť GNU Υ󥯥󥿥Хååפ"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr " GNU Υ󥯥󥿥Хååפ"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "줿 listed-incremental ֤Фץ٥"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "ɤ߹ʤե󥼥ξ֤¸ߤޤ"
+
+#: src/tar.c:429
+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 "γƥե NUMBERܤ¸ߤΤ߽. Υץϥ֥ޥ --delete, --diff, --extract ޤ --list Τ 1ĤȤ߹碌Ƴĥեޥɥ饤 -T ץͳΤɤ餫ǻꤵ줿Τͭ. NUMBER ɸ 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "֤ϸǽ"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "֤ϸǽǤϤޤ"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "󥯥󥿥륢ֺ˥ǥХֹåʤ"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "󥯥󥿥륢ֺ˥ǥХֹå (ɸ)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr ":"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "֤񤭽Ф˸"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "ե򥢡֤˲äǺ"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "Фݤ˴¸Υե֤ʤ"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "֥ԡ꿷¸ե֤ʤ"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "Фݤ˴¸ե"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "ơΥեФƾ񤭤˺"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "ǥ쥯ȥФ˳ؤ"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "¸ǥ쥯ȥΥ᥿ǡ¸"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "Фݤ˴¸ǥ쥯ȥΥ᥿ǡ (ɸ)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "ϥȥ꡼"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "եФɸϤ˽"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "COMMAND"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "եФ̤Υץ˽"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ҥץνλɤ̵"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "ҥץ󥼥λɤ򥨥顼Ȥƽ"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "ե°ν"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "äեνͭԤ NAME ѹ"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "äեΥ롼פ NAME ѹ"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATE-OR-FILE"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "DATE-OR-FILE ɲåե mtime "
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "CHANGES"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "äե (ܥå) ⡼ɤ CHANGES ѹ"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METHOD"
+
+#: src/tar.c:499
+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 "ǽ, ɤ߹߸ (METHOD='replace'; ɸ) ǽꤷʤ (METHOD='system') Τɤ餫ˡǥץեǰݻ"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "եιФʤ"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "ƱͭԤΤޤޤǥեФƤߤ (ѡ桼Ǥϥǥե)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "ʤȤΥեȤƼФ (̥桼Ǥϥǥե)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "桼̾/롼̾Ȥƾ˿Ȥ"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "ե°ˤĤƤξ (superuser Ǥɸ)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "֤°Фݤ˥桼 umask Ŭ (̥桼Ǥɸ)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "֤ȥޥå뤿˼Ф̾¤ؤ"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "-p -s ξꤷΤƱ"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "ФλޤФ줿ǥ쥯ȥκǽ°٤餻"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "--delay-directory-restore ץθ̤ä"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "ǥХ:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIVE"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "֥եޤϥǥХ ARCHIVE "
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "֥եϥޤǤƤ"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "ꤵ줿 rmt COMMAND rmt ˻"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "rsh COMMAND "
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "ɥ饤֤̩٤"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "ޥܥ塼Υ֤//"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "NUMBER x 1024 ХȤ񤭽Фǥơפѹ"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "ơΥơפκǸǥץȤ¹ (-M ɬ)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "FILE Υܥ塼ֹ/"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "ǥХ֥å:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCKS"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "쥳ɤ BLOCKS x 512 Х"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "쥳ɤ NUMBER Х. 512 ܿ"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "Υ֥å (Ĥޤ EOF) ̵"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "ɤ߽Ф褦˺ƥ֥å (4.2BSD ѥ)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "ַ"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "ꤵ줿Υ֤"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT ϼΤ 1:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "Ť V7 tar "
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU tar 1.12 η"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x "
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) "
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) "
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "pax Ʊ"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "--format=v7 Ʊ"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "--format=posix Ʊ"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "keyword[[:]=value][,keyword[[:]=value]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "pax ɤ"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:609
+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:614
+msgid "Compression options:"
+msgstr "̥ץ:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "̥ץΤ˥Ѥ"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "̥ץΤ˥Ѥʤ"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "PROG ͳǥե륿 (-d դɬפ)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "ե:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "ꤵ줿 FILE 򥢡֤ɲ (å ' ǻϤޤե̾ξ)"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "ǥ쥯ȥ DIR ذư"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "ФޤϺ̾ե FILE "
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T null ǽ̾ɤ߹, -C ̵"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr " --null ץθ̵̤"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "-T ɤ߹ե̾ѽλ (ɸ)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "-T ɤ߹󤿥ե̾ѽλʤ"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "PATTERN"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "PATTERN ˰פե"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "FILE 󤵤줿ѥ"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "ե뼫Ȥ CACHEDIR.TAG ޤǥ쥯ȥƤ"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG ޤǥ쥯ȥʲƤ"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG ޤǥ쥯ȥ"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "FILE Ȥ FILE ޤǥ쥯ȥƤ"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "FILE ޤǥ쥯ȥʲƤ"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "FILE ޤǥ쥯ȥ"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "СƥΥǥ쥯ȥ"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "Хååפƥեå"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "ǥ쥯ȥưŪ˲äƤʤ"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "ֺ˥ե륷ƥ˸"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "ǥ쥯ȥ緫˲äƤ (default)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "ե̾Ƭ `/' ʤ"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "ܥå󥯤򤿤ɤ; 餬ؤե򥢡֤ƥ"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "ϡɥ󥯤򤿤ɤ; 餬ؤե򥢡֤ƥ"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "MEMBER-NAME"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "ΥС MEMBER-NAME dz"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "DATE-OR-FILE 뿷եΤߤǼ"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATE"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "ǡѹ줿դӻ"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "˥С CONTROL ˤƥХåå"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRING"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "˥Хåå, ̾ (Ķѿ SIMPLE_BACKUP_SUFFIX ̤ʤ '~') "
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "ե̾Ѵ:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "л˥ե̾Ƭ NUMBER ĤΥݥͥȤ"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "EXPRESSION"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "ե̾Ѵ sed ִ EXPRESSION "
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "ե̾ץץ (/ޤξѥ˺):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "ʸʸ̵"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "ե̾Ƭȥѥ󤬰"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "Ǥդ `/' ʹߤ˥ѥ󤬰 (ɸǽ)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "ʸʸθư (ɸ)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "磻ɥɤ (ɸǽ)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "Ūʸ"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "磻ɥɤ `/' ˰פʤ"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "磻ɥɤ `/' ˰ (ɸǽ)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr ":"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "ƤեΰĹɽ"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KEYWORD"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "ٲ"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "NUMBER (ɸ 10) ܤεϿȤ˿Ľåɽ"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ACTION"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "Ƹ ACTION ¹"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "ƤΥ󥯤פʤåɽ"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "֤νХȿɽ. - SIGNAL ȯХȿɽ. Ĥ줿 SIGNAL : SIGHUP, SIGQUIT, SIGINT, SIGUSR1 SIGUSR2. SIG Ƭʤ̾Ǥ"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "եι UTC ɽ"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "եλɽ"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "ĹϤ FILE "
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "Υ֥åơåդɽ"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "Ƥưǧ"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "tar δͤɽ"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "л, ˰פʤǥ쥯ȥơɽ"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "Ѵ˥ե̾ޤϥ̾ɽ"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STYLE"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "̾ѷ. ͭ STYLE ͤϲ."
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr " STRING ʸ"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "STRING ʸѤ̵"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "ߴץ:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr " --old-archive Ʊ. л --no-same-owner Ʊ"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "¾ץ:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "Ū˳ˤʤ륪ץλѤ̵"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "`-Acdtrux' ޤ `--test-label' ץΤ 2İʾꤹ뤳ȤϤǤޤ"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "̥ץ󤬿äƤޤ"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "̤ΤΥʥ̾: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "եץե뤬Ĥޤ"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "̤ΤեեޥåȤ %2$s %1$s Ȥޤ"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "ץ %s: `%s' %s Ȥư"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: եϴɤ߹ߺѤ"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: ɤ߹ޤ줿ե̾˥̥ʸ"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "%s ͳǥ֤ե륿"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "--quoting-style ץФͭʰ:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"֤Ρtar ε:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "̵ʥ֥å󥰰"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "̵ʥơפĹ"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "̵ʬ٥"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "1İʾߵȤʤ"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "̵ʤޤФ (sparse) С"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' ϤΥץåȥեǤϼƤޤ"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint ͤǤϤޤ"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "̵ʥ롼"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "ץǻꤵ줿⡼ɤ̵Ǥ"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "̵ʿ"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "̵ʽͭ"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "--preserve ץѻͽʤΤ, --preserve-permissions --preserve-order ȤäƤ"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "̵ʵϿ"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Ͽ %d ܿǤʤФޤ"
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "̵ʥȿ"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "--to-command ץ 1Ĥ"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "ٰ̩: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "̤Τ̩: `%c'"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "ץ `-[0-7][lmh]' ϡ֤Ρtar ǤϼƤޤ"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[ե]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Ťץ `%c' ϰɬפȤޤ"
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence ϥեʤ̵̣"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence ׵ᤵ줿⡼ɤǤϻȤޤ"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "ʬ䷿Υ֥եˤ `-M' ץɬפǤ"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental --newer ȤǤޤ"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--listed-incremental ʤ --level ̵̣Ǥ"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "ޥܥ塼ॢ֤ǧǤޤ"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "̤줿֤ϳǧǤޤ"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "ޥܥ塼˰̤줿֤ϻȤޤ"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "̤줿֤ϢǤޤ"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option POSIX ֤ǤΤ߻Ȥޤ"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "ܥ塼Ĺϥ쥳ɥ꾮ƤϤޤ"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order --listed-incremental ξΩޤ"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "ΥֺϤƼϴꤤޤ"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "ץ `-Aru' `-f -' ȤƤޤ"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "`-Acdtrux' ޤ `--test-label' ץΤ줫 1ĤꤷʤФʤޤ"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+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 ХȾʤäƤޤ"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr " %s ̤Τޤ̤"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "ॹפĤ줿ϰϳǤ"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "ѥ %s ϻȤޤ"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr " %s ʤޤ"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "γĥإå: Ĺλ꤬ޤ"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "ĥإåĹϵĤ줿ϰϳǤ"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "ĥإåĹ %*s ϰϳǤ"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "γĥإå: Ĺθ˥֥󥯤ޤ"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "γĥإå: = () 椬ޤ"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "γĥإå: Ԥޤ"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "̤Τγĥإå `%s' ̵"
+
+#: src/xheader.c:831
+#, 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:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "ĥإå %s=%s %s..%s ϰˤޤ"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "γĥإå: %s=%s "
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "γĥإå: %s=%s ;ʬ"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "γĥإå: %s ̵: ͽ̶ڤʸ %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "γĥإå: %s ̵: "
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: ̵ʥॢ"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: ̤Τθ"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "񤭹"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "åݥ %u ɤ߹ߤޤ"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile GNU paxutils ƥȥåȤФƥǡեޤ.\n"
+"ץ:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "եץ:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "SIZE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "ꤵ줿 SIZE Υե"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "ɸϤ˥ե NAME ˽"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "FILE ե̾ɤ߹"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T null ǽ̾ɤ߹ߤޤ"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "ꤵ줿 PATTERN ǥեޤ. PATTERN 'default' ޤ 'zeros'"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "ޤФ (sparse) եΥ֥å"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "ޤФ (sparse) ե. ĤΥޥɥ饤ǥեޥåפ."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "եå"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "ǡ񤭽Ф˻ꤵ줿եåȤޤǸ"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "եץץ:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "ơλեФ struct stat Ƥɽ. ɸ FORMAT : "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Ʊ¹ԥץ:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPTION"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "ARGS ¹. --checkpoint --cut, --append, --touch, --unlink 1ĤȤȤ˻ѤȤ褤"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "åݥ NUMBER ã˻ꤵ줿 () ¹"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr " --touch ץդ"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "¹Ԥ줿åݥȤ COMMAND νλơɽ"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Ʊ¹ԥ. --checkpoint option ǻꤵ줿åݥֹãȤ˼¹Ԥ."
+
+#: tests/genfile.c:181
+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:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "FILE SIZE Хɵ. SIZE --length ץǻ."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "FILE κǽȺǽ򹹿"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "COMMAND ¹"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "FILE unlink"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "̵ʥ: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "ֹ椬Ĥ줿ϰϳ: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Υ: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) "
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "׵ᤵ줿եĹ %lu, ºݤ %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "줿եϥѡǤϤޤ"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "`%s' ζ᤯ǿʸʬϻ˥顼"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "̤Τշ"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGS...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "`%s' 򳫤ޤ"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "ܤФޤ"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "ե̥̾ʸޤǤޤ"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "ޤФ (sparse) եɸϤ˽񤭽Фޤ. --file ץ"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "ʥޥ (`%s' ˶ᤤ)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "̤ΤΥե `%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "`%s' ˻Ǥޤ"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "`%s' unlink Ǥޤ"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "ޥɤェλ\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "ޥɤơ %d Ǽ\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "ޥɤʥ %d ǽλ\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "ޥɤʥ %d \n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "ޥɤ\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "ޥɤλ\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat ˤϥե̾ɬ"
diff --git a/po/.reference/ja.s1 b/po/.reference/ja.s1
new file mode 100644
index 00000000..9d5b252f
--- /dev/null
+++ b/po/.reference/ja.s1
@@ -0,0 +1 @@
+5e4eed59d06dcb8bd078718ca391187d014827f9 -
diff --git a/po/.reference/ko.po b/po/.reference/ko.po
new file mode 100644
index 00000000..91b926ef
--- /dev/null
+++ b/po/.reference/ko.po
@@ -0,0 +1,1454 @@
+# Korean messages for GNU tar
+# Copyright (C) 1996 Free Software Foundation, Inc.
+# Bang Jun-Young <bangjy@nownuri.net>, 1996-1997.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.12\n"
+"POT-Creation-Date: 1997-04-25 16:58-0400\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-KR\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#
+#: src/buffer.c:160
+msgid "Total bytes written: "
+msgstr " Ʈ: "
+
+#: src/buffer.c:255
+#, c-format
+msgid "Cannot close file #%d"
+msgstr " #%d ϴ"
+
+#
+#: src/buffer.c:271
+#, c-format
+msgid "Cannot close descriptor %d"
+msgstr " %d ϴ"
+
+#: src/buffer.c:274
+#, c-format
+msgid "Cannot properly duplicate %s"
+msgstr "%s ϴ"
+
+#
+#: src/buffer.c:288 src/buffer.c:298
+msgid "Cannot use compressed or remote archives"
+msgstr " ī̺곪 ī̺긦 ϴ"
+
+#: src/buffer.c:334 src/buffer.c:391 src/buffer.c:498 src/buffer.c:547
+msgid "Cannot open pipe"
+msgstr " ϴ"
+
+#
+#: src/buffer.c:338 src/buffer.c:502
+msgid "Cannot fork"
+msgstr "fork ϴ"
+
+#. The new born child tar is here!
+#: src/buffer.c:351 src/buffer.c:516
+msgid "tar (child)"
+msgstr "tar (ڽ)"
+
+#
+#: src/buffer.c:353
+msgid "(child) Pipe to stdin"
+msgstr "(ڽ) ǥԷ¿ "
+
+#
+#: src/buffer.c:378 src/buffer.c:423 src/buffer.c:535 src/buffer.c:580
+#, c-format
+msgid "Cannot open archive %s"
+msgstr "%s ī̺긦 ϴ"
+
+#
+#: src/buffer.c:381
+msgid "Archive to stdout"
+msgstr "ǥ¿ ī̺"
+
+#
+#: src/buffer.c:384 src/buffer.c:405 src/buffer.c:540 src/buffer.c:561
+#, c-format
+msgid "Cannot exec %s"
+msgstr "%s ϴ"
+
+#
+#: src/buffer.c:395 src/buffer.c:551
+msgid "Child cannot fork"
+msgstr "ڽ fork ϴ"
+
+#
+#. The child tar is still here! Launch the compressor.
+#: src/buffer.c:401
+msgid "((child)) Pipe to stdout"
+msgstr "((ڽ)) ǥ¿ "
+
+#. The new born grandchild tar is here!
+#: src/buffer.c:411 src/buffer.c:567
+msgid "tar (grandchild)"
+msgstr "tar ()"
+
+#. Prepare for reblocking the data from the compressor into the archive.
+#: src/buffer.c:415
+msgid "(grandchild) Pipe to stdin"
+msgstr "() ǥԷ¿ "
+
+#
+#: src/buffer.c:450
+msgid "Cannot read from compression program"
+msgstr " α׷κ о ϴ"
+
+#
+#: src/buffer.c:518
+msgid "(child) Pipe to stdout"
+msgstr "(ڽ) ǥ¿ "
+
+#
+#: src/buffer.c:537
+msgid "Archive to stdin"
+msgstr "ǥԷ¿ ī̺"
+
+#
+#. The child tar is still here! Launch the uncompressor.
+#: src/buffer.c:557
+msgid "((child)) Pipe to stdin"
+msgstr "((ڽ)) ǥԷ¿ "
+
+#. Prepare for unblocking the data from the archive into the uncompressor.
+#: src/buffer.c:571
+msgid "(grandchild) Pipe to stdout"
+msgstr "() ǥ¿ "
+
+#: src/buffer.c:611
+msgid "Cannot write to compression program"
+msgstr " α׷ ϴ"
+
+#: src/buffer.c:616
+#, c-format
+msgid "Write to compression program short %d bytes"
+msgstr ""
+
+#: src/buffer.c:675
+msgid "Invalid value for record_size"
+msgstr "record_size "
+
+#
+#: src/buffer.c:678
+msgid "No archive name given"
+msgstr "ī̺ ̸ ־ ʾҽϴ"
+
+#
+#: src/buffer.c:705
+#, c-format
+msgid "Could not allocate memory for blocking factor %d"
+msgstr " %d ϴ ޸𸮸 Ҵ ϴ"
+
+#
+#: src/buffer.c:714
+msgid "Cannot verify multi-volume archives"
+msgstr "- ī̺긦 ϴ"
+
+#
+#: src/buffer.c:719
+msgid "Cannot use multi-volume compressed archives"
+msgstr " - ī̺긦 ϴ"
+
+#
+#: src/buffer.c:721
+msgid "Cannot verify compressed archives"
+msgstr " ī̺긦 ϴ"
+
+#
+#: src/buffer.c:734
+msgid "Cannot update compressed archives"
+msgstr " ī̺긦 ϴ"
+
+#
+#: src/buffer.c:745
+msgid "Cannot verify stdin/stdout archive"
+msgstr "ǥ/ ī̺긦 ϴ"
+
+#
+#: src/buffer.c:797 src/buffer.c:1673 src/compare.c:522 src/incremen.c:456
+#: src/names.c:861
+#, c-format
+msgid "Cannot open %s"
+msgstr "%s ϴ"
+
+#: src/buffer.c:838
+#, c-format
+msgid "Archive not labelled to match `%s'"
+msgstr "`%s' ġϵ ī̺"
+
+#: src/buffer.c:841 src/buffer.c:1172
+#, c-format
+msgid "Volume `%s' does not match `%s'"
+msgstr " `%s' `%s' ġ ʽϴ"
+
+#
+#: src/buffer.c:880
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "˻ %d "
+
+#
+#: src/buffer.c:1049 src/incremen.c:513
+#, c-format
+msgid "Cannot write to %s"
+msgstr "%s ϴ"
+
+#
+#: src/buffer.c:1052
+#, c-format
+msgid "Only wrote %u of %u bytes to %s"
+msgstr "%u Ʈ(%u Ʈ ) %s ϴ"
+
+#
+#: src/buffer.c:1064
+#, c-format
+msgid "Read error on %s"
+msgstr "%s б "
+
+#
+#: src/buffer.c:1067
+msgid "At beginning of tape, quitting now"
+msgstr " κп "
+
+#
+#: src/buffer.c:1073
+msgid "Too many errors, quitting"
+msgstr " ʹ Ƽ մϴ"
+
+#
+#: src/buffer.c:1089
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "˻ %d "
+
+#
+#: src/buffer.c:1180 src/extract.c:965
+#, c-format
+msgid "Reading %s\n"
+msgstr "%s д \n"
+
+#
+#: src/buffer.c:1184
+msgid "WARNING: No volume header"
+msgstr ": "
+
+#
+#: src/buffer.c:1191
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s ӵǾ ʽϴ"
+
+#
+#: src/buffer.c:1201
+#, c-format
+msgid "%s is the wrong size (%ld != %ld + %ld)"
+msgstr "%s ߸ ũԴϴ (%ld != %ld + %ld)"
+
+#
+#: src/buffer.c:1212
+msgid "This volume is out of sequence"
+msgstr " ϴ"
+
+#: src/buffer.c:1240
+#, c-format
+msgid "Record size = %d blocks"
+msgstr "ڵ ũ = %d "
+
+#
+#: src/buffer.c:1261
+#, c-format
+msgid "Archive %s EOF not on block boundary"
+msgstr " 谡 ƴ κп ī̺ %s EOF "
+
+#
+#: src/buffer.c:1269
+#, c-format
+msgid "Only read %d bytes from archive %s"
+msgstr "%d Ʈ ī̺ %s оϴ"
+
+#
+#: src/buffer.c:1294 src/buffer.c:1403 src/buffer.c:1517
+#, c-format
+msgid "WARNING: Cannot close %s (%d, %d)"
+msgstr ": %s ϴ (%d, %d)"
+
+#. Lseek failed. Try a different method.
+#: src/buffer.c:1350
+msgid "Could not backspace archive file; it may be unreadable without -i"
+msgstr ""
+
+#
+#: src/buffer.c:1430
+#, c-format
+msgid "Child died with signal %d%s"
+msgstr "ڽ ȣ %d%s Բ ׾"
+
+#
+#: src/buffer.c:1432
+msgid " (core dumped)"
+msgstr " (ھ µ)"
+
+#
+#: src/buffer.c:1441
+#, c-format
+msgid "Child returned status %d"
+msgstr "ڽ %d ǵ ־ϴ"
+
+#
+#: src/buffer.c:1546
+#, fuzzy, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr " #%d(%s ) غϰ ġ: "
+
+#: src/buffer.c:1552
+msgid "EOF where user reply was expected"
+msgstr " ʿ EOF "
+
+#
+#: src/buffer.c:1557 src/buffer.c:1586
+msgid "WARNING: Archive is incomplete"
+msgstr ": ī̺갡 ҿմϴ"
+
+#: src/buffer.c:1570
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [̸] ( ) ̸ մϴ\n"
+" q tar ߴմϴ\n"
+" ! մϴ\n"
+" ? μմϴ\n"
+
+#
+#. Quit.
+#: src/buffer.c:1581
+msgid "No new volume; exiting.\n"
+msgstr " ƴ; .\n"
+
+#
+#: src/buffer.c:1616
+msgid "Cannot fork!"
+msgstr "fork ϴ!"
+
+#
+#: src/buffer.c:1626
+#, c-format
+msgid "Cannot exec a shell %s"
+msgstr "%s ϴ"
+
+#
+#: src/create.c:188
+msgid "Removing drive spec from names in the archive"
+msgstr "ī̺꿡 ִ ̸鿡 ̺ "
+
+#: src/create.c:199 src/extract.c:415
+msgid "Removing leading `/' from absolute path names in the archive"
+msgstr "ī̺ ȿ ִ θ տ `/' "
+
+#
+#. We blew it, maybe.
+#: src/create.c:532
+#, c-format
+msgid "Wrote %ld of %ld bytes to file %s"
+msgstr "%ld Ʈ(%ld Ʈ ) %s ϴ"
+
+#
+#: src/create.c:560 src/create.c:584 src/create.c:1083
+#, c-format
+msgid "Read error at byte %ld, reading %d bytes, in file %s"
+msgstr "%ld Ʈ° б , %d Ʈ , %s"
+
+#
+#: src/create.c:596 src/create.c:1096
+#, c-format
+msgid "File %s shrunk by %d bytes, padding with zeros"
+msgstr ""
+
+#
+#: src/create.c:612
+#, c-format
+msgid "Amount actually written is (I hope) %d.\n"
+msgstr " (ٶǴ) %dԴϴ.\n"
+
+#
+#: src/create.c:712 src/create.c:973 src/create.c:1149
+#, c-format
+msgid "Cannot add file %s"
+msgstr " %s ߰ ϴ"
+
+#
+#: src/create.c:742
+#, c-format
+msgid "%s: is unchanged; not dumped"
+msgstr "%s: ʾҽϴ; "
+
+#
+#: src/create.c:752
+#, c-format
+msgid "%s is the archive; not dumped"
+msgstr "%s ī̺Դϴ; "
+
+#
+#: src/create.c:797
+msgid "Removing leading `/' from absolute links"
+msgstr " ũ鿡 տ `/' "
+
+#
+#: src/create.c:827 src/create.c:1113 src/create.c:1173 src/create.c:1427
+#, c-format
+msgid "Cannot remove %s"
+msgstr "%s ϴ"
+
+#
+#: src/create.c:1197
+#, c-format
+msgid "Cannot add directory %s"
+msgstr "%s 丮 ߰ ϴ"
+
+#
+#: src/create.c:1322
+#, c-format
+msgid "%s: On a different filesystem; not dumped"
+msgstr "%s: ٸ Ͻý ; "
+
+#
+#: src/create.c:1333 src/incremen.c:186
+#, c-format
+msgid "Cannot open directory %s"
+msgstr "%s 丮 ϴ"
+
+#
+#: src/create.c:1357
+#, c-format
+msgid "File name %s%s too long"
+msgstr " ̸ %s%s ʹ ϴ"
+
+#
+#: src/create.c:1432
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Ÿ; õ"
+
+#
+#: src/compare.c:50
+#, c-format
+msgid "Could not allocate memory for diff buffer of %d bytes"
+msgstr "%d Ʈ diff ۿ ޸𸮸 Ҵ ϴ"
+
+#
+#: src/compare.c:96 src/compare.c:317 src/compare.c:347
+#, c-format
+msgid "Cannot read %s"
+msgstr "%s ϴ"
+
+#
+#: src/compare.c:101 src/compare.c:324 src/compare.c:354
+#, c-format
+msgid "Could only read %d of %ld bytes"
+msgstr "%d Ʈ(%ld Ʈ ) ֽϴ"
+
+#
+#: src/compare.c:110 src/compare.c:130 src/compare.c:392
+msgid "Data differs"
+msgstr "ڷᰡ ٸϴ"
+
+#
+#: src/compare.c:159 src/extract.c:329 src/extract.c:630 src/list.c:380
+#: src/list.c:872
+msgid "Unexpected EOF on archive file"
+msgstr "ī̺ Ͽ ġ EOF"
+
+#
+#: src/compare.c:411
+msgid "File does not exist"
+msgstr " ʽϴ"
+
+#
+#: src/compare.c:414 src/compare.c:574
+#, c-format
+msgid "Cannot stat file %s"
+msgstr ""
+
+#
+#: src/compare.c:448
+msgid "Verify "
+msgstr " "
+
+#
+#: src/compare.c:455
+#, c-format
+msgid "Unknown file type '%c' for %s, diffed as normal file"
+msgstr ""
+
+#
+#: src/compare.c:480 src/compare.c:737
+msgid "Not a regular file"
+msgstr "Ϲ ƴ"
+
+#: src/compare.c:487 src/compare.c:718
+msgid "Mode differs"
+msgstr "尡 ٸϴ"
+
+#
+#: src/compare.c:494
+msgid "Uid differs"
+msgstr "uid ٸϴ"
+
+#
+#: src/compare.c:496
+msgid "Gid differs"
+msgstr "gid ٸϴ"
+
+#
+#: src/compare.c:500
+msgid "Mod time differs"
+msgstr " ð ٸϴ"
+
+#
+#: src/compare.c:504 src/compare.c:746
+msgid "Size differs"
+msgstr "ũⰡ ٸϴ"
+
+#
+#: src/compare.c:551 src/compare.c:784
+#, c-format
+msgid "Error while closing %s"
+msgstr "%s ݴ ߻"
+
+#
+#: src/compare.c:571
+msgid "Does not exist"
+msgstr " ʽϴ"
+
+#
+#: src/compare.c:585
+#, c-format
+msgid "Not linked to %s"
+msgstr "%s "
+
+#
+#: src/compare.c:605
+msgid "No such file or directory"
+msgstr "׷ ̳ 丮 "
+
+#
+#: src/compare.c:608
+#, c-format
+msgid "Cannot read link %s"
+msgstr "ũ %s ϴ"
+
+#
+#: src/compare.c:616
+msgid "Symlink differs"
+msgstr "ȣũ ٸϴ"
+
+#
+#: src/compare.c:655
+msgid "Device numbers changed"
+msgstr "ġ ȣ ٲ"
+
+#
+#: src/compare.c:668
+msgid "Mode or device-type changed"
+msgstr " Ǵ ġ Ÿ "
+
+#
+#: src/compare.c:713
+msgid "No longer a directory"
+msgstr " ̻ 丮 ƴ"
+
+#
+#: src/compare.c:755 src/names.c:225 src/update.c:55
+#, c-format
+msgid "Cannot open file %s"
+msgstr "%s ϴ"
+
+#
+#: src/compare.c:764
+#, c-format, fuzzy
+msgid "Cannot seek to %ld in file %s"
+msgstr " %s %ld Ž ϴ"
+
+#
+#: src/compare.c:837
+msgid "Could not rewind archive file for verify"
+msgstr " ī̺ ǰ ϴ"
+
+#
+#: src/compare.c:864
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr " : %d "
+
+#
+#: src/delete.c:81
+msgid "Could not re-position archive file"
+msgstr "ī̺ ġų ϴ"
+
+#
+#: src/delete.c:177 src/update.c:156
+msgid "This does not look like a tar archive"
+msgstr "̰ tar ī̺ó ʽϴ"
+
+#
+#: src/delete.c:182 src/update.c:161
+msgid "Skipping to next header"
+msgstr " dz "
+
+#
+#: src/delete.c:260
+msgid "Deleting non-header from archive"
+msgstr "ī̺꿡 κ "
+
+#: src/extract.c:107
+#, c-format
+msgid "%s: Cannot change mode to %0.4o"
+msgstr "%s: 带 %0.4o ٲ ϴ"
+
+#: src/extract.c:149
+#, c-format
+msgid "%s: Could not change access and modification times"
+msgstr "%s: ð ð ٲ ϴ"
+
+#: src/extract.c:176
+#, c-format
+msgid "%s: Cannot lchown to uid %d gid %d"
+msgstr "%s: ڸ uid %d gid %d ٲ ϴ"
+
+#: src/extract.c:182 src/extract.c:191
+#, c-format
+msgid "%s: Cannot chown to uid %d gid %d"
+msgstr "%s: ڸ uid %d gid %d ٲپϴ"
+
+#: src/extract.c:245
+#, c-format
+msgid "%s: Cannot change owner to uid %d, gid %d"
+msgstr "%s: ڸ uid %d, gid %d ٲ ϴ"
+
+#: src/extract.c:338 src/extract.c:348 src/extract.c:665
+#, c-format
+msgid "%s: Could not write to file"
+msgstr "%s: Ͽ ϴ"
+
+#: src/extract.c:351 src/extract.c:668
+#, c-format
+msgid "%s: Could only write %d of %d bytes"
+msgstr "%s: %d Ʈ(%d Ʈ ) ϴ"
+
+#: src/extract.c:425
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: ϴ"
+
+#: src/extract.c:568
+msgid "Extracting contiguous files as regular files"
+msgstr "ӵǾ ִ Ϲ Ϸ "
+
+#: src/extract.c:580
+#, c-format
+msgid "%s: Could not create file"
+msgstr "%s: ϴ"
+
+#
+#: src/extract.c:644
+#, c-format
+msgid "%d at %d\n"
+msgstr ""
+
+#: src/extract.c:707
+#, c-format
+msgid "%s: Error while closing"
+msgstr "%s: ݴ ߻"
+
+#: src/extract.c:739
+#, c-format
+msgid "%s: Could not create symlink to `%s'"
+msgstr "%s: `%s' ȣũ ϴ"
+
+#: src/extract.c:753
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "ȣ ũ ϵ ũ ϰ ֽϴ"
+
+#: src/extract.c:789
+#, c-format
+msgid "%s: Could not link to `%s'"
+msgstr "%s: `%s' ũ ϴ"
+
+#: src/extract.c:822
+#, c-format
+msgid "%s: Could not make node"
+msgstr "%s: 带 ϴ"
+
+#: src/extract.c:848
+#, c-format
+msgid "%s: Could not make fifo"
+msgstr "%s: fifo ϴ"
+
+#: src/extract.c:924
+#, c-format
+msgid "%s: Could not create directory"
+msgstr "%s: 丮 ϴ"
+
+#
+#: src/extract.c:935
+#, c-format
+msgid "Added write and execute permission to directory %s"
+msgstr "%s 丮 ΰ߽ϴ"
+
+#: src/extract.c:973
+#, c-format
+msgid "Cannot extract `%s' -- file is continued from another volume"
+msgstr "`%s' ϴ -- ٸ ӵǾ ֽϴ"
+
+#
+#: src/extract.c:983
+msgid "Visible long name error"
+msgstr " ̸ "
+
+#
+#: src/extract.c:991
+#, c-format
+msgid "Unknown file type '%c' for %s, extracted as normal file"
+msgstr ""
+
+#
+#: src/incremen.c:231 src/incremen.c:598 src/update.c:131
+#, c-format
+msgid "Cannot stat %s"
+msgstr "%s stat ϴ"
+
+#
+#: src/incremen.c:268
+#, c-format
+msgid "Directory %s has been renamed"
+msgstr "%s 丮 ̸ ٲϴ"
+
+#
+#: src/incremen.c:279
+#, c-format
+msgid "Directory %s is new"
+msgstr "%s 丮Դϴ"
+
+#
+#: src/incremen.c:437 src/names.c:461
+msgid "Could not get current directory"
+msgstr " 丮 ϴ"
+
+#
+#: src/incremen.c:442 src/names.c:466
+#, c-format
+msgid "Could not get current directory: %s"
+msgstr " 丮 ϴ: %s"
+
+#
+#: src/incremen.c:446
+#, c-format
+msgid "File name %s/%s too long"
+msgstr " ̸ %s/%s ʹ ϴ"
+
+#
+#: src/incremen.c:586
+#, c-format
+msgid "Cannot chdir to %s"
+msgstr "%s 丮 ٲ ϴ"
+
+#
+#: src/incremen.c:675
+msgid "Unexpected EOF in archive"
+msgstr "ī̺꿡 ġ EOF"
+
+#
+#: src/incremen.c:704
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s \n"
+
+#
+#: src/incremen.c:706
+#, c-format
+msgid "Error while deleting %s"
+msgstr "%s ߻"
+
+#
+#: src/list.c:84
+#, c-format
+msgid "Omitting %s"
+msgstr "%s "
+
+#: src/list.c:123
+#, c-format
+msgid "block %10ld: ** Block of NULs **\n"
+msgstr " %10ld: ** NUL **\n"
+
+#: src/list.c:134
+#, c-format
+msgid "block %10ld: ** End of File **\n"
+msgstr " %10ld: ** **\n"
+
+#
+#: src/list.c:145
+msgid "Hmm, this doesn't look like a tar archive"
+msgstr ", ̰ tar ī̺ó ʴ±"
+
+#
+#: src/list.c:150
+msgid "Skipping to next file header"
+msgstr " dz "
+
+#
+#: src/list.c:204
+msgid "EOF in archive file"
+msgstr "ī̺ Ͽ EOF"
+
+#
+#: src/list.c:216
+#, c-format
+msgid "Only wrote %ld of %ld bytes to file %s"
+msgstr "%ld Ʈ(%ld Ʈ ) %s ϴ"
+
+#: src/list.c:617 src/list.c:839
+#, c-format
+msgid "block %10ld: "
+msgstr " %10ld: "
+
+#
+#: src/list.c:654
+msgid "Visible longname error"
+msgstr " ̸ "
+
+#
+#: src/list.c:780 src/list.c:784
+#, c-format
+msgid " link to %s\n"
+msgstr " %s ũ\n"
+
+#
+#: src/list.c:788
+#, c-format
+msgid " unknown file type `%c'\n"
+msgstr " Ÿ `%c'\n"
+
+#
+#: src/list.c:805
+msgid "--Volume Header--\n"
+msgstr "-- --\n"
+
+#
+#: src/list.c:809
+#, c-format
+msgid "--Continued at byte %ld--\n"
+msgstr "--%ld Ʈ ° ӵ--\n"
+
+#
+#: src/list.c:814
+msgid "--Mangled file names--\n"
+msgstr ""
+
+#
+#: src/list.c:844 src/list.c:849
+msgid "Creating directory:"
+msgstr "丮 :"
+
+#
+#: src/mangle.c:61
+msgid "Unexpected EOF in mangled names"
+msgstr ""
+
+#
+#: src/mangle.c:97
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s %s ̸ ٲ ϴ"
+
+#
+#: src/mangle.c:99
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "%s %s ̸ ٲ"
+
+#
+#: src/mangle.c:116
+#, c-format
+msgid "Cannot symlink %s to %s"
+msgstr "%s %s ȣũ ϴ"
+
+#
+#: src/mangle.c:119
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s %s ȣũǾ"
+
+#
+#: src/mangle.c:123
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr ""
+
+#
+#: src/names.c:332 src/names.c:530 src/names.c:556 src/names.c:582
+#: src/names.c:735
+#, c-format
+msgid "Cannot change to directory %s"
+msgstr "%s 丮 ٲ ϴ"
+
+#
+#: src/names.c:351 src/names.c:407 src/names.c:452
+msgid "Missing file name after -C"
+msgstr "-C ڿ ̸ "
+
+#
+#: src/names.c:620 src/names.c:639
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: ī̺꿡 "
+
+#: src/rmt.c:89
+msgid "Unknown system error"
+msgstr " ý "
+
+#
+#: src/rmt.c:157
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Ҵ ϴ\n"
+
+#
+#: src/rmt.c:159
+msgid "Cannot allocate buffer space"
+msgstr " Ҵ ϴ"
+
+#
+#: src/rmt.c:308
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: ߸ eof\n"
+
+#
+#: src/rmt.c:310
+msgid "Premature end of file"
+msgstr "߸ "
+
+#
+#: src/rmt.c:382
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: %c\n"
+
+#
+#: src/rmt.c:384
+msgid "Garbage command"
+msgstr " "
+
+#
+#: src/rtapelib.c:247
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: "
+
+#: src/rtapelib.c:252
+msgid "stdin"
+msgstr "ǥԷ"
+
+#: src/rtapelib.c:255
+msgid "stdout"
+msgstr "ǥ"
+
+#
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:415
+msgid "Cannot execute remote shell"
+msgstr " ϴ"
+
+#: src/tar.c:97
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "`-%s' `-%s' ɼ ǥ Է ʿմϴ"
+
+#
+#: src/tar.c:123
+msgid "Cannot read confirmation from user"
+msgstr " Ȯ ϴ"
+
+#
+#: src/tar.c:290 tests/genfile.c:60
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr " `%s --help' Ͻʽÿ.\n"
+
+#: src/tar.c:294
+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 ""
+
+#
+#: src/tar.c:298
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+msgstr ""
+"\n"
+": %s [ɼ]... []...\n"
+
+#: src/tar.c:299
+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 ""
+
+#: src/tar.c:304
+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 ī̺ ͺ ο ϸ ߰մϴ\n"
+" -A, --catenate ī̺꿡 tar ߰մϴ\n"
+" --concatenate -A \n"
+" --delete ī̺κ մϴ (ڱ ȵ!)\n"
+
+#: src/tar.c:317
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't overwrite existing files when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting "
+"directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+" :\n"
+" -W, --verify ī̺긦 ϵ մϴ\n"
+" --remove-files ī̺꿡 ߰ ϴ\n"
+" -k, --keep-old-files ̹ ϴ  "
+"ʽϴ\n"
+" -U, --unlink-first ϱ⿡ ռ ϴ\n"
+" --recursive-unlink 丮 ϱ⿡ ռ ü踦 ϴ\n"
+" -S, --sparse Ľ ȿ óմϴ\n"
+" -O, --to-stdout ǥ մϴ\n"
+" -G, --incremental GNU óմϴ\n"
+" -g, --listed-incremental ο GNU óմϴ\n"
+" --ignore-failed-read Ͽ ƴ \n"
+" ʽϴ\n"
+
+#: src/tar.c:331
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added "
+"files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract all protection information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+
+#: src/tar.c:347
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies "
+"-M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"ġ ð ȯ:\n"
+" -f, --file=ARCHIVE ī̺ Ǵ ARCHIVE ġ "
+"մϴ\n"
+" --force-local ̸ ݷ ִ ī̺ ϵ "
+"Ϸ\n"
+" νմϴ\n"
+" --rsh-command=COMMAND rsh COMMAND մϴ\n"
+" -[0-7][lmh] ̺ е մϴ\n"
+" -M, --multi-volume ī̺긦 //մϴ\n"
+" -L, --tape-length=NUM NUM x 1024 Ʈ ڿ "
+"ٲߴϴ\n"
+" -F, --info-script=FILE ũƮ մϴ\n"
+" (-M )\n"
+" --new-volume-script=FILE -F FILE \n"
+" --volno-file=FILE FILE ȿ ִ ȣ /մϴ\n"
+
+#: src/tar.c:360
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means "
+"EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"ġ :\n"
+" -b, --blocking-factor=BLOCK ڵ BLOCK x 512 Ʈ\n"
+" --record-size=SIZE ڵ SIZE Ʈ, 512 \n"
+" -i, --ignore-zeros ī̺꿡 մϴ\n"
+" (EOF ǹ)\n"
+" -B, --read-full-records ȭմϴ (4.2BSD "
+")\n"
+
+#: src/tar.c:368
+#, fuzzy
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing "
+"PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX conformant archive\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"ī̺ :\n"
+" -V, --label=NAME NAME ī̺긦 ϴ\n"
+" PATTERN at list/extract time, a globbing "
+"PATTERN\n"
+" -o, --old-archive, --portability V7 ī̺긦 ϴ\n"
+" --posix POSIX ī̺긦 ϴ\n"
+" -z, --gzip, --ungzip ī̺긦 gzip մϴ\n"
+" -Z, --compress, --uncompress ī̺긦 compress մϴ\n"
+" --use-compress-program=PROG PROG(-d νؾ ) մϴ\n"
+
+#: src/tar.c:379
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file "
+"NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a globbing PATTERN\n"
+" -X, --exclude-from=FILE exclude globbing patterns listed in FILE\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in "
+"directories\n"
+" -l, --one-file-system stay in local file system when creating "
+"archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+
+#: src/tar.c:394
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATE DATE ϵ鸸 մϴ\n"
+" --newer-mtime Ͱ ٲ ¥ ð "
+"մϴ\n"
+" --after-date=DATE -N \n"
+
+#: src/tar.c:400
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version "
+"control\n"
+" --suffix=SUFFIX backup before removel, override usual suffix\n"
+msgstr ""
+
+#: src/tar.c:404
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+" ¿ ɼ:\n"
+" --help μϰ ϴ\n"
+" --version tar α׷ ȣ μϰ ϴ\n"
+" -v, --verbose óǴ մϴ\n"
+" --checkpoint ī̺긦 丮 ̸ μմϴ\n"
+" --totals ī̺긦 Ʈ "
+"μմϴ\n"
+" -R, --block-number ޽ ī̺곻 ȣ ǥմϴ\n"
+" -w, --interactive ൿ Ȯ 䱸մϴ\n"
+" --confirmation -w \n"
+
+#: src/tar.c:416
+msgid ""
+"\n"
+"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 "
+"are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+
+#: src/tar.c:425
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; and FILE may be a file\n"
+"or a device. *This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"GNU tar `--posix' ī̺긦 аų ϴ. \n"
+"POSIXLY_CORRECT ȯ濡 Ǿ ִٸ, GNU Ȯ `--posix' \n"
+"Ȱȭ˴ϴ. POSIX ܿ κθ ǾǷ ŷ\n"
+" ʽÿ. ARCHIVE FILE, HOST:FILE, Ǵ USER@HOST:FILE \n"
+", ⼭ FILE ̳ ġ ֽϴ. `tar'\n"
+" `-f%s -b%d'Դϴ.\n"
+
+#: src/tar.c:433
+msgid ""
+"\n"
+"Report bugs to <tar-bugs@gnu.ai.mit.edu>.\n"
+msgstr ""
+"\n"
+"<tar-bugs@gnu.ai.mit.edu> ׸ ֽʽÿ.\n"
+
+#: src/tar.c:459
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "`-Acdtrux' ɼ ϳ ̻ ϸ ˴ϴ"
+
+#: src/tar.c:468
+msgid "Conflicting compression options"
+msgstr "򰥸 ɼ"
+
+#: src/tar.c:532
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr " ɼ `%c' μ ʿմϴ."
+
+#: src/tar.c:574
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "--blocking-factor ԵǾ ɼ"
+
+#: src/tar.c:578
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "--block-factor üǾ ɼ ̸"
+
+#: src/tar.c:588
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "--read-full-records üǾ ɼ ̸"
+
+#: src/tar.c:686
+msgid "Obsolete option name replaced by --touch"
+msgstr "--touch üǾ ɼ ̸"
+
+#: src/tar.c:707
+msgid "More than one threshold date"
+msgstr ""
+
+#: src/tar.c:711
+#, c-format
+msgid "Invalid date format `%s'"
+msgstr " ¥ `%s'"
+
+#: src/tar.c:720 src/tar.c:876 src/tar.c:881
+msgid "Conflicting archive format options"
+msgstr "򰥸 ī̺ ɼ"
+
+#: src/tar.c:732
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "--absolute-names üǾ ɼ ̸"
+
+#: src/tar.c:744
+msgid "Obsolete option name replaced by --block-number"
+msgstr "--block-number üǾ ɼ ̸"
+
+#: src/tar.c:819
+msgid "Obsolete option name replaced by --backup"
+msgstr "--backup üǾ ɼ ̸"
+
+#: src/tar.c:840
+msgid "Invalid group given on option"
+msgstr "ɼǿ ׷ ־"
+
+#: src/tar.c:850
+msgid "Invalid mode given on option"
+msgstr "ɼǿ 尡 ־"
+
+#: src/tar.c:852
+msgid "Memory exhausted"
+msgstr "޸𸮰 ٴڳ"
+
+#: src/tar.c:866
+msgid "Invalid owner given on option"
+msgstr "ɼǿ ڰ ־"
+
+#: src/tar.c:893
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "ڵ ũ %d Ǿ մϴ."
+
+#: src/tar.c:989
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "`-[0-7][lmh]' ɼ tar ʽϴ"
+
+#: src/tar.c:999
+msgid ""
+"\n"
+"Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"۱ (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+
+#: src/tar.c:1003 tests/genfile.c:161
+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 ""
+
+#: src/tar.c:1007
+msgid ""
+"\n"
+"Written by John Gilmore and Jay Fenlason.\n"
+msgstr ""
+"\n"
+"John Gilmore Jay Fenlason ϴ.\n"
+
+#: src/tar.c:1035
+msgid "GNU features wanted on incompatible archive format"
+msgstr ""
+
+#: src/tar.c:1052
+msgid "Multiple archive files requires `-M' option"
+msgstr " ī̺ `-M' ɼ ʿմϴ"
+
+#: src/tar.c:1066
+msgid "Cowardly refusing to create an empty archive"
+msgstr ""
+
+#: src/tar.c:1087
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "`-Aru' ɼ `-f -' ÿ ϴ"
+
+#: src/tar.c:1144
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "`-Acdtrux' ɼǵ ϳ ؾ մϴ"
+
+#: src/tar.c:1191
+msgid "Error exit delayed from previous errors"
+msgstr ""
+
+#
+#: src/update.c:79
+#, c-format
+msgid "Read error at byte %ld reading %d bytes in file %s"
+msgstr ""
+
+#
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrunk by %d bytes, (yark!)"
+msgstr "%s: %d Ʈ پ, (Ϳ!)"
+
+#: tests/genfile.c:64
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "GNU tar մϴ.\n"
+
+#: tests/genfile.c:65
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+": %s [ɼ]...\n"
+"\n"
+
+#: tests/genfile.c:68
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+" ɼǿ ΰǴ μ , ̴ ǹ ª ɼǿ\n"
+"˴ϴ.\n"
+"\n"
+" -l, --file-length= Ǵ \n"
+" -p, --pattern= `default' `zeros'Դϴ\n"
+" --help ְ Ĩϴ\n"
+" --version ϰ Ĩϴ\n"
+
+#: tests/genfile.c:134
+#, c-format
+msgid "Ambiguous pattern `%s'"
+msgstr "ȣ `%s'"
+
+#: tests/genfile.c:138
+#, c-format
+msgid "Unknown pattern `%s'"
+msgstr " `%s'"
+
+#: tests/genfile.c:157
+msgid ""
+"\n"
+"Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"۱ (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+
+# fake msgid -ke-
+#: tests/genfile.c:165
+msgid ""
+"\n"
+"Written by Fran,cois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Fran,cois Pinard <pinard@iro.umontreal.ca> ϴ.\n"
diff --git a/po/.reference/ko.s1 b/po/.reference/ko.s1
new file mode 100644
index 00000000..1ff5877c
--- /dev/null
+++ b/po/.reference/ko.s1
@@ -0,0 +1 @@
+cd35f31ca98af80978419e0a87161cab82e151ae -
diff --git a/po/.reference/ky.po b/po/.reference/ky.po
new file mode 100644
index 00000000..332f1892
--- /dev/null
+++ b/po/.reference/ky.po
@@ -0,0 +1,2319 @@
+# Translation of tar-1.18 messages to Kirghiz/Kyrgyz
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# Azilet Beishenaliev <aziletb@gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.18\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2007-06-28 19:56+0300\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"
+"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"
+"X-Poedit-Language: Kyrgyz\n"
+"X-Poedit-Country: KYRGYZSTAN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "%2$s үчүн %1$s аргументи жарабайт"
+
+#: lib/argmatch.c:135
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "%2$s үчүн %1$s аргументи так эмес"
+
+#: lib/argmatch.c:154
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Жарактуу аргументтер мындай:"
+
+#: lib/argp-help.c:148
+#, 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:221
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT параметринин мааниси болуш керек"
+
+# положительный кыргызча кандайле?
+#: lib/argp-help.c:227
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT параметринин мааниси оң болуш керек"
+
+#: lib/argp-help.c:236
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: ARGP_HELP_FMT параметри белгисиз"
+
+#: lib/argp-help.c:248
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "ARGP_HELP_FMT параметри бузук: %s"
+
+#: lib/argp-help.c:1247
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Толук жазылган опцияларда колдонулган аргументтер сөзсүз түрдө же тилекке жараша жазылса, кыска жазылган опциялар менен да сөзсүз түрдө же тилекке жараша жазылат."
+
+#: lib/argp-help.c:1640
+msgid "Usage:"
+msgstr "Колдонулушу:"
+
+#: lib/argp-help.c:1644
+msgid " or: "
+msgstr " же: "
+
+#: lib/argp-help.c:1656
+msgid " [OPTION...]"
+msgstr " [ОПЦИЯ...]"
+
+#: lib/argp-help.c:1683
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Толук маалымат үчүн `%s --help' же `%s --usage' деп жазгыла.\n"
+
+#: lib/argp-help.c:1711 src/tar.c:1169
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Каталарды бул жерге билдиргиле %s.\n"
+
+#: lib/argp-help.c:1930 lib/error.c:125
+msgid "Unknown system error"
+msgstr "Белгисиз система катасы"
+
+#: lib/argp-parse.c:82 src/tar.c:736
+msgid "give this help list"
+msgstr "Бул жардам тизмесин көрсөтөт"
+
+#: lib/argp-parse.c:83 src/tar.c:737
+msgid "give a short usage message"
+msgstr "Колдонуу жөнүндө кыска маалымат көрсөтөт"
+
+#: lib/argp-parse.c:84 src/tar.c:456 src/tar.c:458 src/tar.c:527
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "АТЫ"
+
+#: lib/argp-parse.c:84
+msgid "set the program name"
+msgstr "Программага ат кой"
+
+#: lib/argp-parse.c:85
+msgid "SECS"
+msgstr "СЕК"
+
+#: lib/argp-parse.c:86 src/tar.c:742
+msgid "hang for SECS seconds (default 3600)"
+msgstr "СЕК секунда күтүңүз (алдынала - 3600)"
+
+#: lib/argp-parse.c:143 src/tar.c:738
+msgid "print program version"
+msgstr "программанын версиясын көрсөтөт"
+
+#: lib/argp-parse.c:159
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ПРОГРАММАДА КАТА) Версиясы белгисиз!?"
+
+#: lib/argp-parse.c:612
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Аргументтердин саны көп\n"
+
+#: lib/argp-parse.c:755
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ПРОГРАММАДА КАТА) Опция билиниш керек болчу!?"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: `%s' опциясы так эмес\n"
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: `--%s' опциясы менен аргумент колдонулбайт\n"
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: `%c%s' опциясы менен аргумент колдонулбайт\n"
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: `%s' опциясы менен аргумент болуш керек\n"
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: бул опция түшүнүксүз `--%s'\n"
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: бул опция түшүнүксүз `%c%s'\n"
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: мындай опция колдонулбайт -- %c\n"
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: жараксыз опция -- %c\n"
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: бул опциянын аргументи болуш керек -- %c\n"
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: `-W %s' опциясы так эмес\n"
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: `-W %s' опциясы менен аргумент колдонулбайт\n"
+
+#: lib/human.c:477
+msgid "block size"
+msgstr "бир блоктун көлөмү"
+
+# Памятты эмне дейбиз яя? ;)
+#: lib/obstack.c:424 lib/obstack.c:426 lib/xalloc-die.c:35 src/extract.c:1377
+msgid "memory exhausted"
+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:132
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Мүчө аттарынын башындагы `%s' алынып салды"
+
+#: lib/paxnames.c:133
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Түз шилтемелер көрсөтүп турган файлдардын башындагы `%s' алынып салды"
+
+#: lib/paxnames.c:146
+msgid "Substituting `.' for empty member name"
+msgstr "Бош болгон мүчө аттын ордуна `.' коюлду"
+
+#: lib/paxnames.c:147
+msgid "Substituting `.' for empty hard link target"
+msgstr "Түз шилтеме көрсөтүп турган бош файлдын ордуна `.' коюлду"
+
+#. 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.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr "„"
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr "“"
+
+# Ооба/ооба
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr "^[оО]"
+
+# жок/Жок
+#: lib/rpmatch.c:73
+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
+#, c-format
+msgid "stdout"
+msgstr "stdout"
+
+#: lib/rtapelib.c:512
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Алыстагы команда процессору иштетилген жок"
+
+# Input string дегендин ордуна жакшы нерсе билсеңер алмаштырсаңар болот
+#: rmt/rmt.c:142
+msgid "Input string too long"
+msgstr "Жазылган сүйлөм өтө узун"
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr "Номердин жазуусунда ката бар"
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Буфер үчүн жер алыналган жок\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr " Буфер үчүн жер алыналган жок"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Толук маалымат үчүн `%s --help' деп жазгыла.\n"
+
+#: rmt/rmt.c:308
+#, 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"
+
+#: rmt/rmt.c:315
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Каталарды бул жерге билдиргиле <%s>.\n"
+
+#: rmt/rmt.c:397
+msgid "Seek offset error"
+msgstr "Издөө даражасы туура эмес"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+msgid "Seek offset out of range"
+msgstr "Издөө даражасы диапазондун тышында"
+
+#: rmt/rmt.c:428
+msgid "Seek direction out of range"
+msgstr "Издөө жолу диапазондун тышында"
+
+#: rmt/rmt.c:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Файлдын соңу эрте келди\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "Файлдын соңу эрте келди"
+
+#: rmt/rmt.c:672
+msgid "Garbage command"
+msgstr "Туура эмес команда"
+
+#: src/buffer.c:326 src/buffer.c:335
+msgid "Total bytes written"
+msgstr "Жазылган жалпы байт"
+
+#: src/buffer.c:333 src/buffer.c:347
+msgid "Total bytes read"
+msgstr "Алынган жалпы байт"
+
+#: src/buffer.c:337
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Өчүрүлгөн жалпы байт: %s\n"
+
+#: src/buffer.c:426
+msgid "(pipe)"
+msgstr "(канал)"
+
+#: src/buffer.c:449
+msgid "Invalid value for record_size"
+msgstr "record_size мааниси жарабайт"
+
+#: src/buffer.c:452
+msgid "No archive name given"
+msgstr "Архивдин аты берилген жок"
+
+#: src/buffer.c:496
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Архивдин stdin/stdout текшерүүсү болбой жатат"
+
+#: src/buffer.c:509
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Архив кысыштырылган абалда. %s опциясын колдонгула"
+
+#: src/buffer.c:556 src/tar.c:2187
+msgid "Cannot update compressed archives"
+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/buffer.c:606
+#, c-format
+msgid "Write checkpoint %u"
+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/buffer.c:612
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Окуунун текшерүү жери: %u"
+
+#: src/buffer.c:664
+msgid "At beginning of tape, quitting now"
+msgstr "Лентанын башына келди, иш бүттү"
+
+#: src/buffer.c:670
+msgid "Too many errors, quitting"
+msgstr "Өтө көп ката бар, иш бүттү"
+
+#: src/buffer.c:698
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Архивде түз жайлашпаган блок бар (%lu байт)"
+
+#: src/buffer.c:718
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Маалыматтын көлөмү = %lu блок"
+
+#: src/buffer.c:791
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Архивдеги файл өчпөй калды; архив ачылбаса -i деп колдонгула"
+
+#: src/buffer.c:823
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek маалыматтын чегинде токтогон жок"
+
+#: src/buffer.c:879
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: жараксыз том номери бар"
+
+#: src/buffer.c:914
+msgid "Volume number overflow"
+msgstr "Томдун номери батпай калды"
+
+#: src/buffer.c:929
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "%2$s үчүн %1$d-томду даярдап Enter'ди басыңыз: "
+
+#: src/buffer.c:935
+msgid "EOF where user reply was expected"
+msgstr "Колдонуучудан жооп күтүбатканда файлдын соңу келип калды"
+
+#: src/buffer.c:940 src/buffer.c:972
+msgid "WARNING: Archive is incomplete"
+msgstr "ЭСКЕРТҮҮ: Архив толук эмес"
+
+#: src/buffer.c:954
+#, 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 аты\tЭмики (жана андан кийинки) томдорго жаңы ат жазыңыз\n"
+" q\t\ttar программасынын ишин бүтүр\n"
+"y же Ввод\t\tИшти улант\n"
+
+#: src/buffer.c:959
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Команда строкасын ач\n"
+
+#: src/buffer.c:960
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Бул тизмени жаз\n"
+
+#: src/buffer.c:967
+msgid "No new volume; exiting.\n"
+msgstr "Жаңы том жок; иш бүттү.\n"
+
+#: src/buffer.c:1000
+msgid "File name not specified. Try again.\n"
+msgstr "Файлдын аты берилген жок. Кайра жазып көргүлө.\n"
+
+#: src/buffer.c:1013
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Туура эмес ввод. Жардам үчүн ? жазгыла.\n"
+
+#: src/buffer.c:1064
+#, c-format
+msgid "%s command failed"
+msgstr "%s командасы аткарылбай калды"
+
+#: src/buffer.c:1126 src/delete.c:210 src/list.c:167 src/update.c:165
+msgid "This does not look like a tar archive"
+msgstr "Бул tar-архиви эмес окшойт"
+
+#: src/buffer.c:1219
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s бул томдо уланса керек: башкы-маалыматта аты кыскартылыптыр"
+
+#: src/buffer.c:1223
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s мунун бул томдо уландысы жок"
+
+#: src/buffer.c:1237
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s көлөмү туура эмес (%s != %s + %s)"
+
+#: src/buffer.c:1247
+msgid "This volume is out of sequence"
+msgstr "Бул том иретте эмес"
+
+#: src/buffer.c:1293
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Архивдин тамгасы %s менен келишпей жатат"
+
+#: src/buffer.c:1296
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "%s тому %s менен келишпей жатат"
+
+#: src/buffer.c:1392
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: файлдын аты көп-томдук GNU башкы-маалымат үчүн өтө узун, кыскартылды"
+
+#: src/compare.c:96
+#, 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
+msgid "Contents differ"
+msgstr "Мазмундары окшобойт"
+
+#: src/compare.c:132 src/extract.c:790 src/incremen.c:1193 src/list.c:372
+#: src/list.c:1314
+msgid "Unexpected EOF in archive"
+msgstr "Архивде күтүлбөгөн жерде файлдын соңу бар"
+
+#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412
+msgid "File type differs"
+msgstr "Файл түрү окшошпойт"
+
+#: src/compare.c:183 src/compare.c:203 src/compare.c:328
+msgid "Mode differs"
+msgstr "Укук абалдары окшошпойт"
+
+#: src/compare.c:206
+msgid "Uid differs"
+msgstr "Uid окшошпойт"
+
+#: src/compare.c:208
+msgid "Gid differs"
+msgstr "Gid окшошпойт"
+
+#: src/compare.c:212
+msgid "Mod time differs"
+msgstr "Алмаштыруу убактылары окшошпойт"
+
+#: src/compare.c:216 src/compare.c:420
+msgid "Size differs"
+msgstr "Көлөмү окшошпойт"
+
+#: src/compare.c:270
+#, c-format
+msgid "Not linked to %s"
+msgstr "%s жака шилтенген эмес"
+
+#: src/compare.c:293
+msgid "Symlink differs"
+msgstr "Символикалык шилтеме окшошпойт"
+
+#: src/compare.c:322
+msgid "Device number differs"
+msgstr "Аспап номери окшошпойт"
+
+#: src/compare.c:462
+#, c-format
+msgid "Verify "
+msgstr "Текшерүү "
+
+#: src/compare.c:469
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: `%c' файл түрү бүлгисиз, жөнөкөй файл катары салыштырды"
+
+#: src/compare.c:524
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Архивдин ичинде префикстери алынган файл аттары бар."
+
+#: src/compare.c:526
+msgid "Verification may fail to locate original files."
+msgstr "Текшерүү учурунда алгачкы файлдар табылбай калышы мүмкүн."
+
+#: src/compare.c:596
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "ТЕКШЕРҮҮ КАТАСЫ: %d жараксыз башкы маалымат табылды"
+
+#: src/create.c:67
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: мунун ичинде %s деген кэш-папка белгиси бар; %s"
+
+#: src/create.c:270
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "%s мааниси %s диапазонунун тышында %s..%s; ордуна %s коюлат"
+
+#: src/create.c:276
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "%s мааниси %s диапазонунун тышында %s..%s"
+
+#: src/create.c:336
+msgid "Generating negative octal headers"
+msgstr "Терс сегиздик системасында башкы маалыматтар даярдалууда"
+
+#: src/create.c:622 src/create.c:685
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: файлдын аты өтө узун (эң көп %d болот); кошулбайт"
+
+#: src/create.c:632
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: файлдын аты өтө узун (бөлүнбөйт); кошулбайт"
+
+#: src/create.c:659
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: шилтеменин аты өтө узун; кошулбайт"
+
+#: src/create.c:1075
+#, 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:1176
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: файл башка файл-системасында; кошулбайт"
+
+#: src/create.c:1217 src/create.c:1228
+msgid "contents not dumped"
+msgstr "астындагылар кошулган жок"
+
+#: src/create.c:1357
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Файлдын түрү белгисиз; файл каралбайт"
+
+#: src/create.c:1458
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "%s жака шилтемелер жок.\n"
+
+#: src/create.c:1529
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: файл алмашкан жок; кошулбайт"
+
+#: src/create.c:1537
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: файл архив экен; кошулбайт"
+
+#: src/create.c:1567
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Файл окулганча өчүрүлүп кетти"
+
+#: src/create.c:1585
+msgid "directory not dumped"
+msgstr "папка кошулган жок"
+
+#: src/create.c:1654
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: файлды окуу учурунда файл алмашты"
+
+#: src/create.c:1733
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: сокет каралбайт"
+
+#: src/create.c:1738
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door каралбайт"
+
+#: src/delete.c:216 src/list.c:181 src/update.c:170
+msgid "Skipping to next header"
+msgstr "Эмики башкы-маалыматка өттү"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "Архивде башкы-маалымат болбогондор өчүрүлөт"
+
+#: src/extract.c:198
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: %s убакыт тамгасы өтө эски"
+
+#: src/extract.c:215
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: %s убакыт тамгасы %s сек. келечекте"
+
+#: src/extract.c:395
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Папка ачыбатканда күтүлбөгөн нерселер болду"
+
+#: src/extract.c:588
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Папканын статусу билинелектен мурун аты алмашып кетти"
+
+#: src/extract.c:724
+msgid "Extracting contiguous files as regular files"
+msgstr "Удаа болгон файлдар жөнөкөй файл катары чыгарылып жатат"
+
+#: src/extract.c:1000
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Символикалык шилтемелерди түз шилтеме катары чыгарууга аракет кылынат"
+
+#: src/extract.c:1057
+#, c-format
+msgid "Reading %s\n"
+msgstr "%s жактан окуп жатат\n"
+
+#: src/extract.c:1146
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Чыгарылган жок -- файл башка томдон уланып келиптир"
+
+#: src/extract.c:1153 src/list.c:1081
+msgid "Unexpected long name header"
+msgstr "Башкы-маалымат узун"
+
+#: src/extract.c:1159
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: `%c' файл түрү бүлгисиз, жөнөкөй файл катары чыгарылды"
+
+#: src/extract.c:1184
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Азыркы %s жаңыраак же бирдей"
+
+#: src/extract.c:1230
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Бул файлдын резерв копиясы алыналбай калды"
+
+#: src/extract.c:1358
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s файлы %s деп алмаштыралбай калды"
+
+#: src/extract.c:1370
+#, c-format
+msgid "Error is not recoverable: exiting now"
+msgstr "Оңолбогон ката: иш бүттү "
+
+#: src/incremen.c:260 src/incremen.c:300
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Папканын эски аты %s эле"
+
+#: src/incremen.c:270
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Папка алмаштырылды"
+
+#: src/incremen.c:311
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Папка жаңы"
+
+#: src/incremen.c:699 src/incremen.c:716
+msgid "Invalid time stamp"
+msgstr "Жараксыз убакыт тамгасы"
+
+#: src/incremen.c:755
+msgid "Invalid modification time (seconds)"
+msgstr "Алмашуу убагы туура эмес (секундалары)"
+
+#: src/incremen.c:770
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Алмашуу убагы туура эмес (нано-секундалары)"
+
+#: src/incremen.c:790
+msgid "Invalid device number"
+msgstr "Аспаптын номери жараксыз "
+
+#: src/incremen.c:805
+msgid "Invalid inode number"
+msgstr "Inode номери жараксыз"
+
+# фиелд, снэпшот дегендер кандай болот?
+#: src/incremen.c:856 src/incremen.c:893
+msgid "Field too long while reading snapshot file"
+msgstr "Снэпшот файлды окубатканда ото узун поле чыкты"
+
+# snapshot?
+#: src/incremen.c:863 src/incremen.c:901
+msgid "Read error in snapshot file"
+msgstr "Снэпшот файлды окубатканда ката болду"
+
+# snapshot?
+#: src/incremen.c:865 src/incremen.c:905 src/incremen.c:957
+#: src/incremen.c:1015
+msgid "Unexpected EOF in snapshot file"
+msgstr "Снэпшот файлда күтүлбөгөн жерде файлдын соңу (EOF) бар"
+
+# фиелд кандай болот? snapshot?
+#: src/incremen.c:872 src/incremen.c:912
+msgid "Unexpected field value in snapshot file"
+msgstr "Снэпшот файлда күтүлбөгөн поле(фиелд) бар"
+
+#: src/incremen.c:1007
+msgid "Missing record terminator"
+msgstr "Записьтерди бөлүүчү символ жок"
+
+#: src/incremen.c:1058 src/incremen.c:1061
+msgid "Bad incremental file format"
+msgstr "Файлдын форматы туура эмес"
+
+#: src/incremen.c:1080
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Форматтын бул версиясы иштетиле албайт: %<PRIuMAX>"
+
+#: src/incremen.c:1233
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Кошулуучу папка бузук: '%c' күтүлгөн бирок %#3o келди"
+
+#: src/incremen.c:1243
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Кошулуучу папка бузук: 'X' копиялары бар"
+
+#: src/incremen.c:1256
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Кошулуучу папка бузук: 'R' менен берилген ат бош"
+
+#: src/incremen.c:1269
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Кошулуучу папка бузук: 'T'дан мурун 'R' жок"
+
+#: src/incremen.c:1275
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Кошулуучу папка бузук: 'T' менен берилген ат бош"
+
+#: src/incremen.c:1295
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Кошулуучу папка бузук: '%c' күтүлгөн бирок датанын соңу келди"
+
+#: src/incremen.c:1301
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Кошулуучу папка бузук: 'X' эч колдонулган жок"
+
+#: src/incremen.c:1344
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "%s шаблонун колдонуп убактылуу жаңы папка ачылган жок"
+
+#: src/incremen.c:1392
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Папка өчүрүлгөн жок: stat иштебей койду"
+
+#: src/incremen.c:1405
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: бул папка башка аспапта жайгашкан: өчүрүлбөйт"
+
+#: src/incremen.c:1413
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s өчүрүлүп жатат\n"
+
+#: src/incremen.c:1418
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Өчүрүлбөй жатат"
+
+#: src/list.c:113
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Муну аттады"
+
+#: src/list.c:131
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "блок %s: ** нөлдөр болгон блок **\n"
+
+#: src/list.c:144
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "%s болгон жерде нөлдүк блок бар"
+
+#: src/list.c:155
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "блок %s: ** Файлдын соңу **\n"
+
+#: src/list.c:178 src/list.c:1054 src/list.c:1282
+#, c-format
+msgid "block %s: "
+msgstr "блок %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:662
+#, 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:717
+#, 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:728
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Архивдин сегиздик системадагы мааниси болгон %.*s %s диапазонунун тышында"
+
+#: src/list.c:749
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Архивде эски түрдөгү base-64 башкы-маалымат бар"
+
+#: src/list.c:763
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Архивдеги base-64 түрүндөгү %s сөзү %s диапазонунун тышында"
+
+#: src/list.c:794
+#, 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:823
+#, 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:845
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Архивдин %s мааниси %s түрүнүн %s..%s диапазонунда эмес"
+
+#: src/list.c:1217
+#, c-format
+msgid " link to %s\n"
+msgstr " %s жака шилтеме\n"
+
+#: src/list.c:1225
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " белгисиз файл түрү %s\n"
+
+#: src/list.c:1243
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Узун шилтеме--\n"
+
+#: src/list.c:1247
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Узун ат--\n"
+
+#: src/list.c:1251
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Томдун башкы-маалыматы--\n"
+
+#: src/list.c:1259
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--%s-байттан баштап уланды--\n"
+
+#: src/list.c:1287
+msgid "Creating directory:"
+msgstr "Жаңы папка ачылыбатат:"
+
+#: src/misc.c:456
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s'тин атын %s деп алмаштырды\n"
+
+#: src/misc.c:465 src/misc.c:483
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Аты %s деп алмаштыралбай калды"
+
+#: src/misc.c:488
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "%s'тин атын кайра %s деп алмаштырды\n"
+
+#: src/misc.c:615
+msgid "Cannot save working directory"
+msgstr "Учурдагы папка сакталбайтат"
+
+#: src/misc.c:621
+msgid "Cannot change working directory"
+msgstr "Учурдагы папка алмаштырылбайтат"
+
+# орусчада дочерный процесс, бир процесс өз ичинен жаңы бир
+# процесс жаратканда ошол чайлд процесс болот. Биз эмне дейбиз?
+# Мен туулган процесс дейм.
+#: src/misc.c:711
+msgid "child process"
+msgstr "туулган процесс"
+
+#: src/misc.c:720
+msgid "interprocess channel"
+msgstr "процесс-аралык канал"
+
+#. TRANSLATORS: The following three msgids form a single sentence.
+#.
+#: src/names.c:599
+msgid "Pattern matching characters used in file names. Please,"
+msgstr "Файлдын аттарында уйкаштарды издөө үчүн колдонулган тамгалар бар."
+
+#: src/names.c:601
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+msgstr "Уйкаштарды издөө үчүн --wildcards опциясын колдонуңуз, же --no-wildcards"
+
+#: src/names.c:603
+msgid "suppress this warning."
+msgstr "опциясы менен бул эскертүүнү көрсөтпөс кыл."
+
+#: src/names.c:618 src/names.c:636
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Архивде табылган жок"
+
+#: src/names.c:621
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Керектүү нерселер архивде табылган жок"
+
+#: src/tar.c:80
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "`-%s' жана `-%s' опцияларына стандарт кирүү(input) керек"
+
+#: src/tar.c:157
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Архивдин форматы жарабайт"
+
+#: src/tar.c:181
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Бул форматтагы архив үчүн жарабаган GNU өзгөчөлүктөрү суралууда"
+
+#: src/tar.c:242
+#, 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:329
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"Мисал үчүн:\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:338
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Резерв копиясы, эгер --suffix же SIMPLE_BACKUP_SUFFIX менен алмаштырылбаган болсо, `~' суффикси менен сакталат.\n"
+"Версияларды контролдоо --backup же VERSION_CONTROL менен баштатылат, мындай варианттар бар:\n"
+"\n"
+" none, off резерв копиялар эч качан сакталбайт\n"
+" t, numbered резерв копиялар номердүү болуп сакталат\n"
+" nil, existing номердүү резерв копиялар бар болсо номердүү, болбосо жөнөкөй вариант\n"
+" never, simple ар дайым жөнөкөй резерв копиялар сакталат\n"
+
+#: src/tar.c:364
+msgid "Main operation mode:"
+msgstr "Негизги иштөө абалы:"
+
+#: src/tar.c:367
+msgid "list the contents of an archive"
+msgstr "архивдин ичиндеги файлдарды тизмелейт"
+
+#: src/tar.c:369
+msgid "extract files from an archive"
+msgstr "архивден файлдарды чыгарат"
+
+#: src/tar.c:372
+msgid "create a new archive"
+msgstr "жаңы архив жаратат"
+
+#: src/tar.c:374
+msgid "find differences between archive and file system"
+msgstr "архив менен файл система айырмаларын табат"
+
+#: src/tar.c:377
+msgid "append files to the end of an archive"
+msgstr "файлдарды архивдин аягына кошот"
+
+#: src/tar.c:379
+msgid "only append files newer than copy in archive"
+msgstr "архивдин ичиндегилерден жаңы болгон файлдарды гана кошот"
+
+#: src/tar.c:381
+msgid "append tar files to an archive"
+msgstr "tar файлын архивге кошот"
+
+#: src/tar.c:384
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "архивден өчүрөт (магниттик ленталарда жарабайт!)"
+
+#: src/tar.c:386
+msgid "test the archive volume label and exit"
+msgstr "архивдик томдун атын текшерет анан бүтүрөт"
+
+#: src/tar.c:391
+msgid "Operation modifiers:"
+msgstr "Иштөөнүн модификаторлору:"
+
+#: src/tar.c:394
+msgid "handle sparse files efficiently"
+msgstr "кеңири жайлашкан файлдарды эфектүү түрдө колго ал"
+
+# major, minor
+#: src/tar.c:395
+msgid "MAJOR[.MINOR]"
+msgstr "БАШКЫ[.КИЙИНКИ]"
+
+#: src/tar.c:396
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "кеңири жайлаштыруу форматынын версиясын тандайт (--sparce опциясы кошулган болот)"
+
+#: src/tar.c:398
+msgid "handle old GNU-format incremental backup"
+msgstr "эски GNU форматындагы резервдөө методун колго ал"
+
+#: src/tar.c:399 src/tar.c:530 src/tar.c:594 src/tar.c:598 src/tar.c:608
+#: src/tar.c:618 src/tar.c:621 src/tar.c:623 src/tar.c:698 tests/genfile.c:132
+#: tests/genfile.c:180 tests/genfile.c:184 tests/genfile.c:187
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: src/tar.c:400
+msgid "handle new GNU-format incremental backup"
+msgstr "жаңы GNU форматындагы резервдөө методун колго ал"
+
+#: src/tar.c:402
+msgid "do not exit with nonzero on unreadable files"
+msgstr "окулбаган файлдар келгенде нөл болбогон статус менен ишти бүтүрбө"
+
+#: src/tar.c:403 src/tar.c:525 src/tar.c:540 src/tar.c:651 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "N"
+
+#: src/tar.c:404
+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 "архивдеги ар бир файлдын N-чи копиясын гана ишке алат. Бул опция --delete, --diff, --extract же --list опциялардын бирөөсү менен кошо жазылганда жана файлдардын аттары команда строкасында же -T опциясы менен берилгенде гана жарактуу болот. N-дин мааниси алдынала 1ге барабар."
+
+#: src/tar.c:410
+msgid "archive is seekable"
+msgstr "Архивдин ичиндегилерди издесе болот"
+
+#: src/tar.c:415
+msgid "Overwrite control:"
+msgstr "үстүнө көчүрүү контролу:"
+
+#: src/tar.c:418
+msgid "attempt to verify the archive after writing it"
+msgstr "архивди сактагандан кийин текшерүүгө аракет кылат"
+
+#: src/tar.c:420
+msgid "remove files after adding them to the archive"
+msgstr "файлдарды архивге кошулгандан кийин өчүрөт"
+
+#: src/tar.c:422
+msgid "don't replace existing files when extracting"
+msgstr "файлдарды чыгаруу учурунда мурун бар болгон файлдардын ордуна көчүрбө"
+
+#: src/tar.c:424
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "мурун бар болгон файл архивдеги копиясындан жаңы болсо аны алмаштырба"
+
+#: src/tar.c:426
+msgid "overwrite existing files when extracting"
+msgstr "чыгаруу учурунда мурун бар болгон файлдардын ордуна көчүрөт"
+
+#: src/tar.c:428
+msgid "remove each file prior to extracting over it"
+msgstr "бар болгон файлдын ордуна көчүрүүдөн мурун ал файлды өчүрөт"
+
+#: src/tar.c:430
+msgid "empty hierarchies prior to extracting directory"
+msgstr "папканы чыгарардан мурун баардык иерархияларды өчүрөт"
+
+#: src/tar.c:432
+msgid "preserve metadata of existing directories"
+msgstr "мурун бар болгон папкалардын мета-касиеттерин корго"
+
+#: src/tar.c:434
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "чыгаруу учурунда бар болгон папкалардын мета-даталардын үстүнө жазылат (алдынала тандалат)"
+
+#: src/tar.c:440
+msgid "Select output stream:"
+msgstr "Чыгаруу() жолун танда:"
+
+#: src/tar.c:443
+msgid "extract files to standard output"
+msgstr "файлдарды стандарт чыгарууга (output) жөнөт"
+
+#: src/tar.c:444 src/tar.c:503 src/tar.c:505 tests/genfile.c:163
+#: tests/genfile.c:190
+msgid "COMMAND"
+msgstr "КОМАНДА"
+
+#: src/tar.c:445
+msgid "pipe extracted files to another program"
+msgstr "архивден чыккан файлдарды канал(pipe) жолу менен башка программага жөнөтөт"
+
+#: src/tar.c:447
+msgid "ignore exit codes of children"
+msgstr "туулган процесстердин бүтүрүү кодторуна караба"
+
+#: src/tar.c:449
+msgid "treat non-zero exit codes of children as error"
+msgstr "туулган процесстердин нөл болбогон бүтүрүү кодторун ката деп ишке ал"
+
+#: src/tar.c:454
+msgid "Handling of file attributes:"
+msgstr "Файлдын өзгөчөлүктөрүн колго алууда:"
+
+#: src/tar.c:457
+msgid "force NAME as owner for added files"
+msgstr "кошулган файлдардын ээсин АТЫ деп кой"
+
+#: src/tar.c:459
+msgid "force NAME as group for added files"
+msgstr "кошулган файлдардын группасын АТЫ деп кой"
+
+#: src/tar.c:460 src/tar.c:637
+msgid "DATE-OR-FILE"
+msgstr "ДАТА-ЖЕ-ФАЙЛ"
+
+#: src/tar.c:461
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "кошулган файлдардын алмашуу убактысын ДАТА-ЖЕ-ФАЙЛ дан ал"
+
+#: src/tar.c:462
+msgid "CHANGES"
+msgstr "УКУК"
+
+#: src/tar.c:463
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "кошулган файлдардын укук абалын УКУК деп кой"
+
+#: src/tar.c:465
+msgid "METHOD"
+msgstr "МЕТОД"
+
+#: src/tar.c:466
+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:470
+msgid "don't extract file modified time"
+msgstr "файлдын алмаштыруу убактын чыгарбайт"
+
+#: src/tar.c:472
+msgid "try extracting files with the same ownership"
+msgstr "ээсин ошол бойдон калтырып файлдарды чыгарууга аракет кылат"
+
+#: src/tar.c:474
+msgid "extract files as yourself"
+msgstr "файлдарды өзүңдүкү катары чыгарат"
+
+#: src/tar.c:476
+msgid "always use numbers for user/group names"
+msgstr "ээси/группа аттарын ардайым номерлер менен көрсөтөт"
+
+#: src/tar.c:478
+msgid "extract information about file permissions (default for superuser)"
+msgstr "файлдын уруксат маалыматын да чыгар (суперколдонуучуга алдынала тандалат)"
+
+#: src/tar.c:482
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "архивден уруксат маалыматын чыгарыбатканда колдонуучунун umask'ын колдон (жөн колдонуучуларга алдынала тандлат)"
+
+#: src/tar.c:484
+msgid "sort names to extract to match archive"
+msgstr "чыгатурган файлдарды архивдегидей кылып сортто"
+
+#: src/tar.c:487
+msgid "same as both -p and -s"
+msgstr "-p жана -s менен бирдей"
+
+#: src/tar.c:489
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "чыгарылган папкалардын колдонуу убакыттарын жана уруксаттарын чыгаруу иши бүткөндөн кийин коёт"
+
+#: src/tar.c:492
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "--delay-directory-restore опциясынын эффектин токтотот"
+
+#: src/tar.c:497
+msgid "Device selection and switching:"
+msgstr "Аспапты тандоо жана ага өтүү:"
+
+#: src/tar.c:499
+msgid "ARCHIVE"
+msgstr "АРХИВ"
+
+#: src/tar.c:500
+msgid "use archive file or device ARCHIVE"
+msgstr "АРХИВ деген архивдик файлды же аспапты колдонот"
+
+#: src/tar.c:502
+msgid "archive file is local even if it has a colon"
+msgstr "архивдик файлда эки точка болушуна карабастан ал локалдуу"
+
+#: src/tar.c:504
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "rmt'нин ордуна КОМАНДА колдонулат"
+
+#: src/tar.c:506
+msgid "use remote COMMAND instead of rsh"
+msgstr "rsh'тын ордуна КОМАНДА колдонулат"
+
+#: src/tar.c:510
+msgid "specify drive and density"
+msgstr "драйв жана анын тыгыздыгын белгиле"
+
+#: src/tar.c:524
+msgid "create/list/extract multi-volume archive"
+msgstr "көп томдуу архивди жарат/тизмеле/чыгар"
+
+#: src/tar.c:526
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "N x 1024 байт жазгандан кийин лентаны алмаштыр"
+
+#: src/tar.c:528
+msgid "run script at end of each tape (implies -M)"
+msgstr "ар лентанын аягында скриптти иштет (-M опциясы колдонулат)"
+
+#: src/tar.c:531
+msgid "use/update the volume number in FILE"
+msgstr "ФАЙЛ файлынын ичиндеги том номерин колдон/жаңырт"
+
+#: src/tar.c:536
+msgid "Device blocking:"
+msgstr "Аспаптын блоктолушу:"
+
+#: src/tar.c:538
+msgid "BLOCKS"
+msgstr "БЛОК"
+
+#: src/tar.c:539
+msgid "BLOCKS x 512 bytes per record"
+msgstr "ар маалыматка БЛОК x 512 байт түшөт"
+
+#: src/tar.c:541
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "Ар маалыматка N байт түшөт, 512 көбөйтүндүсү"
+
+#: src/tar.c:543
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "архивдеги нөлдүү блокторду өтүп кетет (EOF жөнүндө)"
+
+#: src/tar.c:545
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "окубатканда кайрадан блокторго бөлүп чык (4.2BSD каналдары үчүн)"
+
+#: src/tar.c:550
+msgid "Archive format selection:"
+msgstr "Архивдин форматын тандоо:"
+
+#: src/tar.c:552 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "ФОРМАТ"
+
+#: src/tar.c:553
+msgid "create archive of the given format"
+msgstr "тандалган форматта архив жаратат"
+
+#: src/tar.c:555
+msgid "FORMAT is one of the following:"
+msgstr "ФОРМАТ булардан бирөө болот:"
+
+#: src/tar.c:556
+msgid "old V7 tar format"
+msgstr "эски V7 tar форматы"
+
+#: src/tar.c:559
+msgid "GNU format as per tar <= 1.12"
+msgstr "tar <= 1.12 версиясында болгондой GNU форматы"
+
+#: src/tar.c:561
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x форматы"
+
+#: src/tar.c:563
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) форматы"
+
+#: src/tar.c:565
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) форматы"
+
+# pax деген gid,atime сияктуу нерселер
+#: src/tar.c:566
+msgid "same as pax"
+msgstr "pax менен бирдей"
+
+#: src/tar.c:569
+msgid "same as --format=v7"
+msgstr "--format=v7 менен бирдей"
+
+#: src/tar.c:572
+msgid "same as --format=posix"
+msgstr "--format=posix менен бирдей"
+
+# keyword эмне болот?
+#: src/tar.c:573
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "ачкыч-сөз[[:]=мааниси][,ачкыч-сөз[[:]=мааниси]]..."
+
+#: src/tar.c:574
+msgid "control pax keywords"
+msgstr "контролдоо үчүн pax ачкыч сөздөрү"
+
+#: src/tar.c:575
+msgid "TEXT"
+msgstr "ТЕКСТ"
+
+#: src/tar.c:576
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "том аты ТЕКСТ болгон архив жарат; тизмелөө/чыгаруу учурунда, ТЕКСТ дегенди том атынын глоб шаблону катары колдон"
+
+#: src/tar.c:578
+msgid "filter the archive through bzip2"
+msgstr "архивди bzip2 менен ишке ал"
+
+#: src/tar.c:580
+msgid "filter the archive through gzip"
+msgstr "архивди gzip менен ишке ал"
+
+#: src/tar.c:584
+msgid "filter the archive through compress"
+msgstr "архивди compress менен ишке ал"
+
+#: src/tar.c:586
+msgid "PROG"
+msgstr "ПРОГ"
+
+#: src/tar.c:587
+msgid "filter through PROG (must accept -d)"
+msgstr "ПРОГ менен ишке ал (-d опциясы болушу керек)"
+
+#: src/tar.c:592
+msgid "Local file selection:"
+msgstr "Локалдуу файлдарды тандоо:"
+
+#: src/tar.c:595
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "ФАЙЛды архивге кош (файлдын аты тире менен баштаган учурда пайдалуу)"
+
+#: src/tar.c:596
+msgid "DIR"
+msgstr "ПАПКА"
+
+#: src/tar.c:597
+msgid "change to directory DIR"
+msgstr "ПАПКА папкасына өт"
+
+#: src/tar.c:599
+msgid "get names to extract or create from FILE"
+msgstr "чыгарылатурган же жаңы ачылатурган файлдарды АТЫ деген файлдан кара"
+
+#: src/tar.c:601
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T опциясы нөл менен бүткөн аттарды окуйт, -C опциясы өчүрүлөт"
+
+#: src/tar.c:603
+msgid "unquote filenames read with -T (default)"
+msgstr "-T менен алынган файлдардын аттарындагы ковычкалар өчүрүлөт (алдынала тандалат)"
+
+#: src/tar.c:605
+msgid "do not unquote filenames read with -T"
+msgstr "-T менен алынган файлдардын аттарындагы ковычкалар калаберет"
+
+#: src/tar.c:606 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "ШАБЛОН"
+
+#: src/tar.c:607
+msgid "exclude files, given as a PATTERN"
+msgstr "ШАБЛОН менен уйкаш файлдар ишке алынбайт"
+
+#: src/tar.c:609
+msgid "exclude patterns listed in FILE"
+msgstr "ФАЙЛда тизмеленген шаблондор менен уйкаш файлдар ишке алынбайт"
+
+#: src/tar.c:611
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "CACHEDIR.TAG файлы болгон папкалардын астындагылары тэг файлдан тышкарысы кошулбайт"
+
+#: src/tar.c:614
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG файлы болгон папкалардын астындагыларынын баары кошулбайт"
+
+#: src/tar.c:617
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG файлы болгон папкалар кошулбайт"
+
+#: src/tar.c:619
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "ФАЙЛ файлы болгон папкалардын астындагылары ФАЙЛ файлындан тышкарысы кошулбайт"
+
+#: src/tar.c:622
+msgid "exclude everything under directories containing FILE"
+msgstr "ФАЙЛ файлы болгон папкалардын астындагыларынын баары кошулбайт"
+
+#: src/tar.c:624
+msgid "exclude directories containing FILE"
+msgstr "ФАЙЛ файлы болгон папкалар кошулбайт"
+
+#: src/tar.c:626
+msgid "avoid descending automatically in directories"
+msgstr "папкалардын тереңине кирип кетүүнү токтот"
+
+#: src/tar.c:628
+msgid "stay in local file system when creating archive"
+msgstr "архивди жасабатканда локалдуу файл системасында кал"
+
+#: src/tar.c:630
+msgid "recurse into directories (default)"
+msgstr "папкалардын тереңине кирет (алдынала тандалган)"
+
+#: src/tar.c:632
+msgid "don't strip leading `/'s from file names"
+msgstr "файл аттарынын башындагы '/'терди өчүрбө"
+
+#: src/tar.c:634
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "символикалык шилтемелерге барат; алар көрсөткөн файлдарды архивге кошот"
+
+#: src/tar.c:635
+msgid "MEMBER-NAME"
+msgstr "МҮЧӨНҮН-АТЫ"
+
+#: src/tar.c:636
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "архивдеги МҮЧӨНҮН-АТЫ мүчөсүнөн башта"
+
+#: src/tar.c:638
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "ДАТА-ЖЕ-ФАЙЛ'дан жаңы болгон файлдарды гана сакта"
+
+#: src/tar.c:640
+msgid "DATE"
+msgstr "ДАТА"
+
+#: src/tar.c:641
+msgid "compare date and time when data changed only"
+msgstr "датасы алмашканда гана дата жана убактысын салыштыр"
+
+#: src/tar.c:642
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:643
+msgid "backup before removal, choose version CONTROL"
+msgstr "өчүрөрдөн мурун копиясын сактап кал, CONTROL версиясын танда"
+
+#: src/tar.c:644 src/tar.c:715 src/tar.c:717 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRING"
+
+#: src/tar.c:645
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "өчүрөрдөн мурун копиясын сактап калат, жалпы колдонулган суфикс кошулат (бул суфикс SIMPLE_BACKUP_SUFFIX жолу менен алмаштырылбаган болсо '~' болот)"
+
+#: src/tar.c:650
+msgid "File name transformations:"
+msgstr "Файлдын атынын алмашуулары:"
+
+#: src/tar.c:652
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "чыгаруу учурунда файл аттарынын башындагы N компонентти алып салат"
+
+# выражение кыргызча кандай? СҮЙЛӨМ башка жерде да бар
+#: src/tar.c:654
+msgid "EXPRESSION"
+msgstr "СҮЙЛӨМ"
+
+#: src/tar.c:655
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "файлдардын аттарын алмаштыруу үчүн sed replace EXPRESSION колдонгула"
+
+# inclusion, exclusion - Kyrgyz equiv?
+#: src/tar.c:660
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Файлдын атына уйкаштыруу опциялары (бардык шаблондорго тиешелүү):"
+
+#: src/tar.c:663
+msgid "ignore case"
+msgstr "тамгалардын чоң-кичинесине каралбайт"
+
+#: src/tar.c:665
+msgid "patterns match file name start"
+msgstr "шаблондор файлдын атынын башталышы менен уйкаштырылат"
+
+#: src/tar.c:667
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "шаблондор `/' символунан кийин келген ар жерде уйкашына каралат (алдынала тандалган)"
+
+#: src/tar.c:669
+msgid "case sensitive matching (default)"
+msgstr "уйкаштырууда тамгалардын чоң-кичинесине каралат (алдынала тандалган)"
+
+#: src/tar.c:671
+msgid "use wildcards (default for exclusion)"
+msgstr "шаблондор колдонулат (иштен алынбаган файлдарга алдынала тандалат)"
+
+#: src/tar.c:673
+msgid "verbatim string matching"
+msgstr "кандай жазылса ошондой колдонулат"
+
+#: src/tar.c:675
+msgid "wildcards do not match `/'"
+msgstr "шаблондор `/' символун издебейт"
+
+#: src/tar.c:677
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "шаблондор `/' символун издейт (алдынала тандалган)"
+
+#: src/tar.c:682
+msgid "Informative output:"
+msgstr "Маалыматтандыруу:"
+
+#: src/tar.c:685
+msgid "verbosely list files processed"
+msgstr "ишке алынган файлдарды кеңири маалыматы менен тизмеле"
+
+#: src/tar.c:686
+msgid "[.]NUMBER"
+msgstr "[.]N"
+
+# Ушу 'record' сөзүнө жакшы котормо табалбай койдум
+# 'маалымат' деп жазыбаттым эле, бул жерде келишпей калаткен
+#: src/tar.c:687
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "ар N записьтен кийин маалымат берип турат (алдынала 10 болот)"
+
+#: src/tar.c:690
+msgid "print a message if not all links are dumped"
+msgstr "баардык шилтемелер кошулбай калса билдирүү жазып чыгар"
+
+#: src/tar.c:691
+msgid "SIGNAL"
+msgstr "СИГНАЛ"
+
+#: src/tar.c:692
+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:697
+msgid "print file modification dates in UTC"
+msgstr "файлды алмаштыруу датасын UTC түрүндө көрсөт"
+
+#: src/tar.c:699
+msgid "send verbose output to FILE"
+msgstr "чыккан кеңири маалыматты ФАЙЛ файлына жибер"
+
+#: src/tar.c:701
+msgid "show block number within archive with each message"
+msgstr "ар билдирүүдө архивдин ичиндеги блок номерин көрсөт"
+
+#: src/tar.c:703
+msgid "ask for confirmation for every action"
+msgstr "ар ишти аткарууга макулдук сурап тур"
+
+#: src/tar.c:706
+msgid "show tar defaults"
+msgstr "tar'да алдынала коюлган опцияларды көрсөтөт"
+
+#: src/tar.c:708
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "тизмелөө же чыгаруу учурунда издөө критериясына жатпаган папкаларды да тизмелейт"
+
+#: src/tar.c:710
+msgid "show file or archive names after transformation"
+msgstr "алмаштыруудан кийин файлдын же архивдин аттарын көрсөтөт"
+
+#: src/tar.c:713
+msgid "STYLE"
+msgstr "СТИЛЬ"
+
+#: src/tar.c:714
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "аттарга ковычка кошуу стилин тандаңыз; жарактуу СТИЛЬ түрдөрү төмөндө көрсөтүлөт."
+
+#: src/tar.c:716
+msgid "additionally quote characters from STRING"
+msgstr "STRING ичинде болгон тамгаларга кошумча ковычка кошот"
+
+#: src/tar.c:718
+msgid "disable quoting for characters from STRING"
+msgstr "STRING ичинде болгон тамгаларга ковычка кошпойт"
+
+#: src/tar.c:723
+msgid "Compatibility options:"
+msgstr "Келишүү опциялары:"
+
+#: src/tar.c:726
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "жаңы архив жасабатканда --old-archive менен бирдей; чыгарыбатканда --no-same-owner менен бирдей"
+
+#: src/tar.c:731
+msgid "Other options:"
+msgstr "Башка опциялар:"
+
+#: src/tar.c:734
+msgid "disable use of some potentially harmful options"
+msgstr "зыяндуу көрүнгөн опцияларды колдонууга тыюуу салат"
+
+#: src/tar.c:838
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "`-Acdtrux' опцияларынан бирөөнү гана колдоно аласыңар"
+
+#: src/tar.c:848
+msgid "Conflicting compression options"
+msgstr "Бирбирине келишпеген кысыштыруу опциялары берилди"
+
+#: src/tar.c:904
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Сигналдын аты белгисиз: %s"
+
+#: src/tar.c:928
+msgid "Date sample file not found"
+msgstr "Датанын шаблон файлы табылган жок"
+
+#: src/tar.c:936
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Белгисиз %1$s дата форматынын ордуна %2$s коюлат"
+
+#: src/tar.c:961
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "%s опциясы: `%s' датасын %s деп алды"
+
+#: src/tar.c:1035
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: файл тизмеси окулган"
+
+#: src/tar.c:1098
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: алынган файлдын атында бош тамгалар бар"
+
+#: src/tar.c:1163
+msgid "Valid arguments for --quoting-style options are:"
+msgstr "--quoting-style опциясы үчүн мындай аргументтер бар:"
+
+#: src/tar.c:1166
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Бул* tar алдынала мындай иштетилет:\n"
+
+#: src/tar.c:1199
+msgid "Invalid blocking factor"
+msgstr "Блок көлөмү жараксыз"
+
+#: src/tar.c:1271
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Эскертүү: -I опциясы иштетилбейт; балким -j же -T дегиңиз келди эле?"
+
+#: src/tar.c:1304
+msgid "Invalid tape length"
+msgstr "Лентанын узундугу жараксыз"
+
+#: src/tar.c:1336
+msgid "More than one threshold date"
+msgstr "Бирден көп ченемдөөчү дата бар"
+
+#: src/tar.c:1391 src/tar.c:1394
+msgid "Invalid sparse version value"
+msgstr "кеңири жайлаштыруу форматынын версиясы жарактуу эмес"
+
+#: src/tar.c:1479
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "Бул платформада --atime-preserve='system' опциясы иштебейт"
+
+#: src/tar.c:1496
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint опциясына жазылган аргумент сан эмес"
+
+#: src/tar.c:1589
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Жараксыз группа"
+
+#: src/tar.c:1596
+msgid "Invalid mode given on option"
+msgstr "Опцияда жарабаган укук абалы берилди"
+
+#: src/tar.c:1649
+msgid "Invalid number"
+msgstr "Жарабаган номер"
+
+#: src/tar.c:1671
+msgid "Invalid owner"
+msgstr "Ээси жарабайт"
+
+#: src/tar.c:1705
+msgid "Invalid record size"
+msgstr "Маалымат көлөмү жарабайт"
+
+#: src/tar.c:1708
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Маалыматтын көлөмү %d көбөйтүндүсү болушу керек."
+
+#: src/tar.c:1745
+msgid "Invalid number of elements"
+msgstr "Элементтердин саны жарабайт"
+
+#: src/tar.c:1765
+msgid "Only one --to-command option allowed"
+msgstr "--to-command опциясы бир эле жолу жазылыш керек"
+
+#: src/tar.c:1841
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Тыгыздык аргументи туура эмес: %s"
+
+#: src/tar.c:1867
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Түшүнүксүз тыгыздык: `%c'"
+
+#: src/tar.c:1884
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "*Бул* tar `-[0-7][lmh]' опцияларын иштетпейт"
+
+#: src/tar.c:1919
+msgid "[FILE]..."
+msgstr "[ФАЙЛ]..."
+
+#: src/tar.c:2022
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Эски болгон `%c' опциясына параметр керек."
+
+#: src/tar.c:2104
+msgid "--occurrence is meaningless without a file list"
+msgstr "Файл тизмеси болбосо --occurrence дегендин мааниси болбойт"
+
+#: src/tar.c:2110
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "Колдонулган иштетүү абалда --occurrence колдонулбайт"
+
+#: src/tar.c:2140
+msgid "Multiple archive files require `-M' option"
+msgstr "Бир нече архив файлы болсо `-M' опциясы колдонулушу керек"
+
+#: src/tar.c:2145
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental менен --newer чогу колдонулбайт"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "Cannot verify multi-volume archives"
+msgstr "Көп-томдуу архивдерди текшералбай калды"
+
+#: src/tar.c:2177
+msgid "Cannot verify compressed archives"
+msgstr "Кысыштырылган архивдерди текшералбай калды"
+
+#: src/tar.c:2183
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Көп-томдуу кысыштырылган архивдерди колдоналбай калды"
+
+#: src/tar.c:2189
+msgid "Cannot concatenate compressed archives"
+msgstr "Кысыштырылган архивдер кошулалбайт"
+
+#: src/tar.c:2201
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option POSIX архивдеринде гана колдонула алат"
+
+#: src/tar.c:2226
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Бош архив жаратуудан уялып баш тартып жатат"
+
+#: src/tar.c:2247
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "`-Aru' опциялары `-f -' менен келишпейт"
+
+#: src/tar.c:2334
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "`-Acdtrux' опцияларынан бирөөнү тандап колдонуңуз"
+
+#: src/tar.c:2385
+#, c-format
+msgid "Error exit delayed from previous errors"
+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 байтка азайды"
+
+#: src/xheader.c:158
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "%s сөзү белигсиз же азырынча киргизилген эмес"
+
+#: src/xheader.c:184
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "%s шаблону колдонулбайт"
+
+#: src/xheader.c:194
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "%s ачкыч сөзү алмаштырылбайт"
+
+#: src/xheader.c:498
+msgid "Malformed extended header: missing length"
+msgstr "Кеңейтилген башкы-маалымат бузук: узундук жок"
+
+#: src/xheader.c:506
+msgid "Extended header length is out of allowed range"
+msgstr "Кеңейтилген башкы-маалыматтын узундугу жарактуу маанилердин тышында"
+
+#: src/xheader.c:513
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Кеңейтилген башкы-маалыматтын узундугу - %*s - диапазондун тышында"
+
+#: src/xheader.c:525
+msgid "Malformed extended header: missing blank after length"
+msgstr "Кеңейтилген башкы-маалымат бузук: узундуктан кийин бош жер (пробел) жок"
+
+#: src/xheader.c:533
+msgid "Malformed extended header: missing equal sign"
+msgstr "Кеңейтилген башкы-маалымат бузук: барабар символу жок"
+
+# newline эмне болот?
+#: src/xheader.c:539
+msgid "Malformed extended header: missing newline"
+msgstr "Кеңейтилген башкы-маалымат бузук: жаңы сап жок"
+
+#: src/xheader.c:576
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Кеңейтилген башкы-маалыматта белгисиз `%s' сөзү каралбайт"
+
+#: src/xheader.c:780
+#, 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:812
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "%s=%s түрүндөгү кеңейтилген башкы-маалымат %s..%s диапазондун тышында"
+
+#: src/xheader.c:943 src/xheader.c:973 src/xheader.c:1287
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Кеңейтилген башкы-маалымат бузук: %s=%s туура эмес"
+
+#: src/xheader.c:1240 src/xheader.c:1265 src/xheader.c:1315
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Кеңейтилген башкы-маалымат бузук: %s=%s ашыкча көп"
+
+#: src/xheader.c:1328
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Кеңейтилген башкы-маалымат бузук: туура эмес %s: күтүлбөгөн жерде бул - %c - бөлүүчү символ бар"
+
+#: src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Кеңейтилген башкы-маалымат бузук: туура эмес %s: так санда маани бар"
+
+#: 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:127
+msgid "File creation options:"
+msgstr "Жаңы файл ачуу опциялары:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "КӨЛӨМ"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Көсөтүлгөн КӨЛӨМдө жаңы файл ач"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Стандарт чыгарууга жазбай, АТЫ деген файлга жаз"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Файлдын аттарын ФАЙЛдан ал"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T опциясы бош/нөл (null) менен бүткөн аттарды окуйт"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Файлды тандалган ШАБЛОН менен толтурат. ШАБЛОН 'default' же 'zeros' болот"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Кеңири жайлашкан файлдын блок көлөмү"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Файлды кеңири жайлаштыр. Кийинки команда строкаларында файлдын картасы бар."
+
+#: tests/genfile.c:144
+#, fuzzy
+msgid "OFFSET"
+msgstr "ОРУН"
+
+# seek the given offset - orunga jyl
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "данный(data) жазаардан мурун айтылган орунга жыл"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Файлдын статистикасынын опциялары:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Алынган ар бир файл үчүн struct stat курамын көрсөтөт. Алдынала тандалган ФОРМАТ мындай: "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Синхрондуу иштетүүнүн опциялары:"
+
+#: tests/genfile.c:164
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr "Жазылган КОМАНДАны иштет. Бул --checkpoint жана --cut, --append, --touch бирөөсү менен колдонулганда пайдалуу"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "N текшерүү жерине жеткенде буларды (төмөндү карагыла) аткар"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Эмики --touch опциясы үчүн дата жазгыла"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Өтүлгөн текшерүү жердерди жана КОМАНДАнын бүтүрүү статусун көрсөтөт"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Синхрондуу аткаруу иштери. Булар --checkpoint опциясы менен берилгенн текшерүү жерине жеткенде аткарылат."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "ФАЙЛды --length опциясы менен берилген көлөмгө кыскартат (берилбеген болсо 0 болот)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "ФАЙЛга КӨЛӨМ байт кошот. КӨЛӨМ --length опциясы менен берилет."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "ФАЙЛдын колдонуу жана алмашуу убакыттарын жаңылайт."
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Бул команданы иштеткиле - КОМАНДА"
+
+#: tests/genfile.c:241
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Жараксыз көлөм: %s"
+
+#: tests/genfile.c:246
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Сан жарактуу маанилердин тышында: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Negative size: %s"
+msgstr "Көлөмү терс сан: %s"
+
+#: tests/genfile.c:262 tests/genfile.c:561
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) аткарылбай калды"
+
+#: tests/genfile.c:356
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "`%s' жанындагы санды окубатканда ката чыкты"
+
+#: tests/genfile.c:362
+#, c-format
+msgid "Unknown date format"
+msgstr "Датанын форматы түшүнүксүз"
+
+#: tests/genfile.c:385
+msgid "[ARGS...]"
+msgstr "[АРГУМЕНТТЕР...]"
+
+#: tests/genfile.c:422 tests/genfile.c:462 tests/genfile.c:515
+#: tests/genfile.c:665 tests/genfile.c:679
+#, c-format
+msgid "cannot open `%s'"
+msgstr "`%s' ачылбай жатат"
+
+#: tests/genfile.c:428
+msgid "cannot seek"
+msgstr "издөө болбой калды"
+
+#: tests/genfile.c:445
+#, c-format
+msgid "file name contains null character"
+msgstr "файлдын атында бош тамга бар"
+
+#: tests/genfile.c:510
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "кеңири(чоң) файлдарды стандарт чыгарууга жибералбайт, --file опциясын колдонуңуз"
+
+#: tests/genfile.c:588
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "туура эмес маска (`%s' жанында)"
+
+# фиелд деген кандай болот?
+#: tests/genfile.c:594 tests/genfile.c:627
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Белгисиз поле `%s'"
+
+#: tests/genfile.c:654
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "`%s'ке убакыт аталган жок"
+
+#: tests/genfile.c:808
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Команда толук аткарылды\n"
+
+#: tests/genfile.c:810
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Команда %d статусу менен аткарылбай калды\n"
+
+#: tests/genfile.c:814
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Команда %d сигналы менен жабылды\n"
+
+#: tests/genfile.c:816
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Команда %d сигналы менен токтотулду\n"
+
+#: tests/genfile.c:819
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Команда core dump менен бүттү\n"
+
+#: tests/genfile.c:822
+#, c-format
+msgid "Command terminated\n"
+msgstr "Команда жабылды\n"
+
+#: tests/genfile.c:854
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat опциясы менен файл аттары жазылыш керек"
+
+#: tests/genfile.c:867
+#, c-format
+msgid "too many arguments"
+msgstr "аргументтердин саны көп"
diff --git a/po/.reference/ky.s1 b/po/.reference/ky.s1
new file mode 100644
index 00000000..7a0d620b
--- /dev/null
+++ b/po/.reference/ky.s1
@@ -0,0 +1 @@
+4905f0ee1c9245c0a62a16631abd75cdb6782b22 -
diff --git a/po/.reference/ms.po b/po/.reference/ms.po
new file mode 100644
index 00000000..2a52c688
--- /dev/null
+++ b/po/.reference/ms.po
@@ -0,0 +1,1271 @@
+# tar : Perisian membina arkib fail
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Hasbullah Bin Pit <sebol@ikhlas.com>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.13.25\n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "hujah tidak sah %s bagi %s"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "hujah kabur %s bagi %s"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Hujah sah adalah:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Ralat sistem tidak diketahui"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opsyen `%s' adalah kabur\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opsyen `--%s' tidak mengizinkan hujah\n"
+
+#: lib/getopt.c:723
+#, 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:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: opsyen `%s' memerlukan hujah\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opsyen tidak dikenali `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opsyen tidak dikenali '%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opsyen salah -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opsyen tidak sah -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opsyen memerlukan hujah -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opsyen `-W %s' adalah kabur\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opsyen `-W %s' tidak mengizinkan hujah\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "saiz blok"
+
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "`"
+
+# ui/galeon.glade.h:3
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "'"
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "memori keletihan"
+
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Jumlah byte ditulis: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(paip)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Tak dapat tutup"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Tak dapat dup"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Tak dapat mengguna arkib dimampat atau jauh"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (anak)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (cucu)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Nilai tidak sah bagi record_size"
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Tiada nama arkib diberi"
+
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Tak dapat menentusah arkib multi-volume"
+
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Tak dapat memperuntukkan memori bagi faktor pemblokan %d"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Tak dapat menggunakan arkib multi-volume termampat"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Tak dapat menentusahkan arkib termampat"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Tak dapat mengemaskini arkib termampat"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Tak dapat menentusahkan arkib stdin/stdout"
+
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arkib tidak dilabelkan supaya memadan %s"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Volum %s tidak sepadan %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Menulis titiksemak %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "Pada permulaan pita, keluar sekarang"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Terlalu banyak ralat, keluar"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Membaca titiksemak %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "Membaca %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "AMARAN: Tiada pengepala volum"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s tidak bersambung pada volum ini"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s adalah salah saiz (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Volum ini tidak dalam turutan"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Blok tidak dijajar (%lu byte) pada arkib"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Saiz rekod = %lu blok"
+
+#: src/buffer.c:1308
+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:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "Anak mati dengan isyarat %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "Anak mengembalikan status %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: mengandungi nombor volum yg tidak sah"
+
+#: src/buffer.c:1440
+#, fuzzy
+msgid "Volume number overflow"
+msgstr "Nombor volum melimpah"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "Arahan '%s' gagal"
+
+#: src/buffer.c:1468
+#, 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:1474
+msgid "EOF where user reply was expected"
+msgstr "EOF dimana maklumbalas pengguna dijangka"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "AMARAN: Arkib tidak lengkap"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nama] Beri nama fail baru bagi volum berikutnya\n"
+" q Batal tar\n"
+" ! Spawn subshell\n"
+" ? Cetak senarai ini\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Tiada volum baru; keluar.\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "Hanya boleh membaca %lu drpd %lu byte"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "Kandungan berlainan"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339
+#: src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718
+#: src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367
+#: src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "EOF tanpa diduga pada arkib"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Tentusah"
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Jenis fail tak dikenali '%c', berlainan dengan fail normal"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "Jenis fail berbeza"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "Mod berbeza"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Uid berbeza"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "Gid berbeza"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "Masa mod berbeza"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "Saiz berbeza"
+
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "Tidak dipautkan ke %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "Symlink berbeza"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "Nombor beranti berbeza"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "GAGAL TENTUSAH: %d pengepala tak sah dikesan"
+
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Menjana pengepala oktal negatif"
+
+#: src/create.c:200
+#, 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:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "nilai %s diluar julat %s %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Nama ahli mengandungi '..'"
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Membuang awalan `%.*s' drpd nama ahli"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: fail tidak berubah; tidak dilonggokkan"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: fail adalah arkib; tidak dilonggokkan"
+
+#: src/create.c:1098
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: fail adalah pada sistemfail lain; tidak dilonggokkan"
+
+#: src/create.c:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fail dibuang sebelum kami membacanya"
+
+#: src/create.c:1399
+#, fuzzy, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: Fail mengucup sebanyak %s byte; pad dengan sifar"
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: fail berubah bila kami membacanya"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: soket diabaikan"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: pintu diabaikan"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Jenis fail tak dikenali; fail diabaikan"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Ia nampaknya bukan seperti arkib tar"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Melangkah ke pengepala berikut"
+
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Memadam bukan-pengepala drpd arkib"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: setem masa %s adalah %lu pada masa akan datang"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Ketidakkonsistenan luar dugaan bila membuat direktori"
+
+#: src/extract.c:578
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Direktori ditukarnama sebelum statusnya boleh diekstrak"
+
+#: src/extract.c:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: nama ahli mengandungi `..'"
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Tak dapat backup fail ini"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Mengekstrak fail bersambung sebagai fail biasa"
+
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Cuba mengekstrak pautan simbolik sebagai pautan keras"
+
+#: src/extract.c:1207
+#, 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:1216
+msgid "Visible long name error"
+msgstr "Ralat nama panjang boleh tampak"
+
+#: src/extract.c:1224
+#, 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:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "Ralat adalah tidak boleh dipulihkan: keluar sekarang"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktori telah ditukarnama"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Direktori adalah baru"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Setem masa tidak sah"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "Setem masa diluar julat"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Nombor peranti tidak sah"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "Nombor peranti diluar julat"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Nombot inod tidak sah"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "Nombor inod diluar julat"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Memadam %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: tak dapat buang"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr ""
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok TIADA **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Akhir Fail **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Pengepala kosong dimana nilai %s numerik dijangka"
+
+#: src/list.c:606
+#, 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"
+
+#: src/list.c:616
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Nilai oktal arkib %.*s diluar julat %s"
+
+#: src/list.c:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr ""
+
+#: src/list.c:645
+#, 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:676
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Nilai base-256 arkub adalah diluar julat %s"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Arkib mengandungi %.*s dimana nilai %s numerik dijangka"
+
+#: src/list.c:724
+#, 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:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#: src/list.c:946
+#, fuzzy
+msgid "Visible longname error"
+msgstr "Ralat nama panjang tampak"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr "Pautan ke %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr "jenis fail tak diketahui %s\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Pengepala Volum--\n"
+
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Bersambung pada byte %s--\n"
+
+#: src/list.c:1112
+#, fuzzy
+msgid "--Mangled file names--\n"
+msgstr "Nama fail modul"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Mencipta direktori:"
+
+#: src/mangle.c:54
+#, fuzzy
+msgid "Unexpected EOF in mangled names"
+msgstr "Penghujungan tanpa diduga data imej PNM"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Tak dapat menukarnama ke %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "%s ditukarnama ke %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Tak dapat symlink ke %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s disymlink ke %s"
+
+#: src/mangle.c:117
+#, fuzzy, c-format
+msgid "Unknown demangling command %s"
+msgstr "Pengkodan tidak diketahui: %s"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Menukarnama %s ke %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Menukarnama %s kembali ke %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Tak dapat simpan direktori kerja"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Tak dapat tukar direktori kerja"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Tak dapat %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Amaran: Tak dapat %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Tak dapat menukar mod ke %s"
+
+#: src/misc.c:562
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Tak dapat menukar pemilikan ke uid %lu, gid %lu"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Tak dapat memaut keras ke %s"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: ralat pembacaan pada byte %s, membaca %lu byte"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Amaran: Ralat pembacaan pada byte %s, membaca %lu byte"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Tak dapat rayau ke %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Amaran: tidak dapat rayau ke %s "
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Tak dapat mencipta symlink ke %s"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Ditulis hanya %lu drpd %lu byte"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "proses anak"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "saluran antaraproses"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Kehilangan nama fail selepas -C"
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Tak dijumpai pada arkib"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: tak dapat memperuntukkan ruang penimbal\n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Tak dapat memperuntukkan ruang penimbal"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Cuba '%s --help' untuk maklumat lanjut.\n"
+
+#: src/rmt.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"
+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"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid ""
+"\n"
+"Report bugs to <bug-tar@gnu.org>.\n"
+msgstr ""
+"\n"
+"Lapor pepijat ke <bug-tar@gnu.org>.\n"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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 ""
+"Program ini datang TANPA WARANTI, ke tahap yang diizinkan oleh undang-undang\n"
+"Anda boleh mengagihkan ia dibawah syarat Lesen Awam Umum GNU;\n"
+"lihat fail bernama COPYING untuk maklumat lanjut"
+
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Offset rayauan diluar julat"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Hala rayauan diluar julat"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: eof tak matang\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Akhir fail tak matang"
+
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Arahan Sampah %c\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Arahan sampah"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Tiada servis"
+
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "stdin"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "stdout"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Tak boleh laksanakan shell jauh"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Opsyen `-%s' dan `-%s' kedua-duanya memerlukan input piawai"
+
+#: src/tar.c:292
+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 menyimpan banyak fail bersama ke satu pita atak arkib cakera, dan\n"
+" boleh memulihkan fail secara individu daripada arkib.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Penggunaan: %s [OPSYEN]... [FAIL]...\n"
+"\n"
+"Contoh:\n"
+" %s -cf arkib.tar foo bar # Cipta arkib.tar drpd fail foo dan bar.\n"
+" %s -tvf arkib.tar # Senarai semua fail pada arkib secara verbose.\n"
+" %s -xf arkib.tar # Ekstrak semua fail drpd arkib.tar.\n"
+
+#: src/tar.c:303
+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"
+"Jika opsyen panjang menunjukkan hujah adalah mandatori, maka ianya mandatori\n"
+"bagi opsyen pendek juga. Sama juga dengan hujah opsyenal.\n"
+
+#: src/tar.c:308
+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"
+"Mod operasi utama:\n"
+" -t, --list senarai kandungan drpd satu arkib\n"
+" -x, --extract, --get ekstrak fail drpd satu arkib\n"
+" -c, --create cipta arkib baru\n"
+" -d, --diff, --compare cari perbezaan antara arkib dan sistem fail\n"
+" -r, --append tambah fail ke hujung arkib\n"
+" -u, --update hanya tambah fail lebih baru drpd salinan dlm arkib\n"
+" -A, --catenate tambah fail tar ke arkib\n"
+" --concatenate sama seperti -A\n"
+" --delete padam drpd arkib (bukan pada pita magnetik!)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+
+#: src/tar.c:418
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version control\n"
+" --suffix=SUFFIX backup before removal, override usual suffix\n"
+msgstr ""
+" --backup[=KAWALAN] backup sebelum buang, pilih versi kawalan\n"
+" --suffix=SUFFIKS backup sebelum buang, tindih suffiks biasa\n"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Output bermaklumat:\n"
+" --help cetak bantuan ini, kemudian keluar\n"
+" --version cetak nombor versi program tar, kemudian keluar\n"
+" -v, --verbose senarai fail diproses verbosely\n"
+" --checkpoint cetak nama direktori bila membaca arkib\n"
+" --totals cetak jumlah byte ditulis bila mencipta arkib\n"
+" -R, --block-number papar nombor blok di dalam arkib dengan setiap mesej\n"
+" -w, --interactive tanya kepastian untuk setipa aksi\n"
+" --confirmation sama seperti -w\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Anda tak boleh nyatakan lebih drpd satu opsyen `-Acdtrux'"
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Opsyen mampatan konflik"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "OPsyen lama `%c' memerlukan hujah."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Opsyen ditelan zaman, kini menggunakan --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Opsyen ditelan zaman diganti dengan --blocking-factor"
+
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Faktor pemblokan tidak sah"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Nama opsyen ditelan zaman diganti dengan --read-full-records"
+
+#: src/tar.c:696
+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?"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "panjang pita tidak sah"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Nama opsyen ditelan zaman diganti dengan --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr ""
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Fail tarikh tidak dijumpai"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Mengganti %s bagi format tarikh tak diketahui %s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "opsyen format arkib konflik"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Opsyen ditelan zaman diganti dengan --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Opsyen ditelan zaman diganti dengan --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Amaran: opsyen -y tidak disokong; mungkin anda maksudkan -j?"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Nama opsyen ditelan zaman diganti dengan --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Kumpulan tidak sah"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Mod tidak sah diberi pada opsyen"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Pemilik tidak sah"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Saiz rekod tidak sah"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Saiz rekod mesti dalam gandaan %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Opsyen `-[0-7][lmh]' tak disokong oleh tar *ini*"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Ditulis oleh John Gilmore dan Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr ""
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Fail akrib beraneka memerlukan opsyen `-M'"
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Tak boleh gabung --listed-incremental dengan --newer"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: Label volum adalah terlalu panjang (had adalah %lu byte)"
+
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Secara dayus enggan mencipta arkib kosong"
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Opsyen `-Aru' tak serasi dengan `-f -'"
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Anda mesti nyatakan satu drpd opsyen `-Acdtrux'"
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Ralat ketika menulis ke output piawai"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Ralat keluar dilewatkan drpd ralat terdahulu"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: Fail mengecil sebanyak %s byte"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Menjana fail data untuk suit ujian GNU tar.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Pengunaan : %s [OPSYEN]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Jika opsyen panjang memapar hujah sebagai mandatori, maka ianya mandatori\n"
+" bagi opsyen pendek yg setara juga\n"
+"\n"
+" -l, --file-length=PANJANG PANJANG bagi fail dijana\n"
+" -p, --pattern=CORAK CORAK adalah `default' atau `zeros'\n"
+" --help papar bantuan ini dan keluar\n"
+" --version output maklumat versi dan keluar\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr "Ditulis oleh F. Pinard."
diff --git a/po/.reference/ms.s1 b/po/.reference/ms.s1
new file mode 100644
index 00000000..4219bda9
--- /dev/null
+++ b/po/.reference/ms.s1
@@ -0,0 +1 @@
+b27e6cf81bca1c35a2f587e1defe5ab74c2d5d43 -
diff --git a/po/.reference/nb.po b/po/.reference/nb.po
new file mode 100644
index 00000000..52b7ff78
--- /dev/null
+++ b/po/.reference/nb.po
@@ -0,0 +1,1376 @@
+# Norwegian messages for GNU tar. (bokml dialect)
+# Copyright (C) 1996 Free Software Foundation, Inc.
+# Karl Anders ygard <Karl.Oygard@fou.telenor.no>, 1996.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.12\n"
+"POT-Creation-Date: 1997-04-25 16:58-0400\n"
+"PO-Revision-Date: 1997-06-05 19:39 MET DST\n"
+"Last-Translator: Espen Skjelnes Johnsen <espejohn@sn.no>\n"
+"Language-Team: Norwegian-bokml <no@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#
+#: src/buffer.c:160
+msgid "Total bytes written: "
+msgstr "Totalt antall bytes skrevet: "
+
+#: src/buffer.c:255
+#, c-format
+msgid "Cannot close file #%d"
+msgstr "Kan ikke lukke fil #%d"
+
+#: src/buffer.c:271
+#, c-format
+msgid "Cannot close descriptor %d"
+msgstr "Kan ikke lukke fildeskriptor %d"
+
+#: src/buffer.c:274
+#, c-format
+msgid "Cannot properly duplicate %s"
+msgstr "Kan ikke duplisere %s"
+
+#: src/buffer.c:288 src/buffer.c:298
+msgid "Cannot use compressed or remote archives"
+msgstr "Kan ikke bruke komprimerte arkiver eller arkiver p en annen maskin"
+
+#: src/buffer.c:334 src/buffer.c:391 src/buffer.c:498 src/buffer.c:547
+msgid "Cannot open pipe"
+msgstr "Kan ikke lage en pipe"
+
+#: src/buffer.c:338 src/buffer.c:502
+msgid "Cannot fork"
+msgstr "Kan ikke lage ny prosess med fork"
+
+#
+#. The new born child tar is here!
+#: src/buffer.c:351 src/buffer.c:516
+msgid "tar (child)"
+msgstr "tar (barn)"
+
+#: src/buffer.c:353
+msgid "(child) Pipe to stdin"
+msgstr "(barn) Pipe til stdin"
+
+#: src/buffer.c:378 src/buffer.c:423 src/buffer.c:535 src/buffer.c:580
+#, c-format
+msgid "Cannot open archive %s"
+msgstr "Kan ikke pne arkivet %s"
+
+#: src/buffer.c:381
+msgid "Archive to stdout"
+msgstr "Arkivr til stdout"
+
+#: src/buffer.c:384 src/buffer.c:405 src/buffer.c:540 src/buffer.c:561
+#, c-format
+msgid "Cannot exec %s"
+msgstr "Kan ikke eksekvere %s"
+
+#: src/buffer.c:395 src/buffer.c:551
+msgid "Child cannot fork"
+msgstr "Barnet kan ikke gjre fork"
+
+#. The child tar is still here! Launch the compressor.
+#: src/buffer.c:401
+msgid "((child)) Pipe to stdout"
+msgstr "((barn)) Pipe til stdout"
+
+#. The new born grandchild tar is here!
+#: src/buffer.c:411 src/buffer.c:567
+msgid "tar (grandchild)"
+msgstr "tar (barnebarn)"
+
+#. Prepare for reblocking the data from the compressor into the archive.
+#: src/buffer.c:415
+msgid "(grandchild) Pipe to stdin"
+msgstr "(barnebarn) Pipe til stdin"
+
+#: src/buffer.c:450
+msgid "Cannot read from compression program"
+msgstr "Kan ikke lese fra komprimeringsprogrammet"
+
+#: src/buffer.c:518
+msgid "(child) Pipe to stdout"
+msgstr "(barn) Pipe til stdout"
+
+#: src/buffer.c:537
+msgid "Archive to stdin"
+msgstr "Arkivr til stdin"
+
+#. The child tar is still here! Launch the uncompressor.
+#: src/buffer.c:557
+msgid "((child)) Pipe to stdin"
+msgstr "((barn)) Pipe til stdin"
+
+#. Prepare for unblocking the data from the archive into the uncompressor.
+#: src/buffer.c:571
+msgid "(grandchild) Pipe to stdout"
+msgstr "(barnebarn) Pipe til stdout"
+
+#: src/buffer.c:611
+msgid "Cannot write to compression program"
+msgstr "Kan ikke skrive til komprimeringsprogrammet"
+
+#: src/buffer.c:616
+#, c-format
+msgid "Write to compression program short %d bytes"
+msgstr "Skrev %d bytes for lite til komprimeringsprogrammet"
+
+#: src/buffer.c:675
+msgid "Invalid value for record_size"
+msgstr "Ugyldig verdi for record_size"
+
+#
+#: src/buffer.c:678
+msgid "No archive name given"
+msgstr "Arkivnavn er ikke oppgitt"
+
+#: src/buffer.c:705
+#, c-format
+msgid "Could not allocate memory for blocking factor %d"
+msgstr "Kunne ikke allokere minne for blokk-faktor %d"
+
+#: src/buffer.c:714
+msgid "Cannot verify multi-volume archives"
+msgstr "Kan ikke verifisere arkiv som gr over flere volum"
+
+#: src/buffer.c:719
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Kan ikke bruke komprimerte arkiv som gr over flere volum"
+
+#
+#: src/buffer.c:721
+msgid "Cannot verify compressed archives"
+msgstr "Kan ikke verifisere komprimerte arkiver"
+
+#
+#: src/buffer.c:734
+msgid "Cannot update compressed archives"
+msgstr "Kan ikke oppdatere komprimerte arkiver"
+
+#: src/buffer.c:745
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Kan ikke verifisere stdin/stdout-arkiv"
+
+#: src/buffer.c:797 src/buffer.c:1673 src/compare.c:522 src/incremen.c:456
+#: src/names.c:861
+#, c-format
+msgid "Cannot open %s"
+msgstr "Kan ikke pne %s"
+
+#: src/buffer.c:838
+#, c-format
+msgid "Archive not labelled to match `%s'"
+msgstr "Arkivet er ikke navngitt for passe med %s"
+
+#: src/buffer.c:841 src/buffer.c:1172
+#, c-format
+msgid "Volume `%s' does not match `%s'"
+msgstr "Volumet %s stemmer ikke overens med %s"
+
+#: src/buffer.c:880
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Skriver kontrollpunkt %d"
+
+#: src/buffer.c:1049 src/incremen.c:513
+#, c-format
+msgid "Cannot write to %s"
+msgstr "Kan ikke skrive til %s"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Only wrote %u of %u bytes to %s"
+msgstr "Skrev bare %u av %u bytes til %s"
+
+#: src/buffer.c:1064
+#, c-format
+msgid "Read error on %s"
+msgstr "Lesefeil p %s"
+
+#: src/buffer.c:1067
+msgid "At beginning of tape, quitting now"
+msgstr "P begynnelsen av bndet, avslutter n"
+
+#: src/buffer.c:1073
+msgid "Too many errors, quitting"
+msgstr "For mange feil, avslutter"
+
+#: src/buffer.c:1089
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Leser kontrollpunkt %d"
+
+#: src/buffer.c:1180 src/extract.c:965
+#, c-format
+msgid "Reading %s\n"
+msgstr "Leser %s\n"
+
+#: src/buffer.c:1184
+msgid "WARNING: No volume header"
+msgstr "ADVARSEL: Manglende volumhode"
+
+#: src/buffer.c:1191
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s fortsetter ikke i dette volumet"
+
+#: src/buffer.c:1201
+#, c-format
+msgid "%s is the wrong size (%ld != %ld + %ld)"
+msgstr "%s har feil strrelse (%ld != %ld + %ld)"
+
+#: src/buffer.c:1212
+msgid "This volume is out of sequence"
+msgstr "Dette volumet kommer ute av rekkeflge"
+
+#: src/buffer.c:1240
+#, c-format
+msgid "Record size = %d blocks"
+msgstr "Blokkstrrelse = %d enheter"
+
+#: src/buffer.c:1261
+#, c-format
+msgid "Archive %s EOF not on block boundary"
+msgstr "Arkiv %s sluttet ikke ved en blokkgrense"
+
+#: src/buffer.c:1269
+#, c-format
+msgid "Only read %d bytes from archive %s"
+msgstr "Leste bare %d bytes fra arkivet %s"
+
+#: src/buffer.c:1294 src/buffer.c:1403 src/buffer.c:1517
+#, c-format
+msgid "WARNING: Cannot close %s (%d, %d)"
+msgstr "ADVARSEL: Kan ikke lukke %s (%d, %d)"
+
+#. Lseek failed. Try a different method.
+#: src/buffer.c:1350
+msgid "Could not backspace archive file; it may be unreadable without -i"
+msgstr "Kunne ikke g tilbake i arkivfilen. Den kan vre uleselig uten -i"
+
+#: src/buffer.c:1430
+#, c-format
+msgid "Child died with signal %d%s"
+msgstr "Barnet dde med signal %d%s"
+
+#: src/buffer.c:1432
+msgid " (core dumped)"
+msgstr " (minnet lagret)"
+
+#: src/buffer.c:1441
+#, c-format
+msgid "Child returned status %d"
+msgstr "Barnet avsluttet med status %d"
+
+#: src/buffer.c:1546
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Gjr klar volum nummer %d for %s og trykk return: "
+
+#: src/buffer.c:1552
+msgid "EOF where user reply was expected"
+msgstr "EOF der svar fra bruker var forventet"
+
+#: src/buffer.c:1557 src/buffer.c:1586
+msgid "WARNING: Archive is incomplete"
+msgstr "ADVARSEL: Arkivet er ufullstendig"
+
+#: src/buffer.c:1570
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [navn] Gi et filnavn for neste (og etterflgende) volum(er)\n"
+" q Avbryt tar\n"
+" ! Start et shell\n"
+" ? Skriv denne listen\n"
+
+#. Quit.
+#: src/buffer.c:1581
+msgid "No new volume; exiting.\n"
+msgstr "Ikke nytt volum; avslutter.\n"
+
+#: src/buffer.c:1616
+msgid "Cannot fork!"
+msgstr "Kan ikke lage ny prosess med fork!"
+
+#: src/buffer.c:1626
+#, c-format
+msgid "Cannot exec a shell %s"
+msgstr "Kan ikke eksekvere et shell %s"
+
+#: src/create.c:188
+msgid "Removing drive spec from names in the archive"
+msgstr "Tar bort enhetsnavn fra navn i arkivet"
+
+#
+#: src/create.c:199 src/extract.c:415
+msgid "Removing leading `/' from absolute path names in the archive"
+msgstr "Tar bort ledende / fra absolutte filnavn i arkivet"
+
+#. We blew it, maybe.
+#: src/create.c:532
+#, c-format
+msgid "Wrote %ld of %ld bytes to file %s"
+msgstr "Skrev %ld av %ld bytes til fil %s"
+
+#: src/create.c:560 src/create.c:584 src/create.c:1083
+#, c-format
+msgid "Read error at byte %ld, reading %d bytes, in file %s"
+msgstr "Lesefeil ved byte %ld ved lesing av %d bytes fra fil %s"
+
+#: src/create.c:596 src/create.c:1096
+#, c-format
+msgid "File %s shrunk by %d bytes, padding with zeros"
+msgstr "Filen %s krympet med %d bytes, fyller ut med nuller"
+
+#: src/create.c:612
+#, c-format
+msgid "Amount actually written is (I hope) %d.\n"
+msgstr "Faktisk skrevet mengde er %d (hper jeg).\n"
+
+#: src/create.c:712 src/create.c:973 src/create.c:1149
+#, c-format
+msgid "Cannot add file %s"
+msgstr "Kan ikke legge til fil %s"
+
+#: src/create.c:742
+#, c-format
+msgid "%s: is unchanged; not dumped"
+msgstr "%s: er uendret; ikke lagret"
+
+#: src/create.c:752
+#, c-format
+msgid "%s is the archive; not dumped"
+msgstr "%s er arkivet; ikke lagret"
+
+#
+#: src/create.c:797
+msgid "Removing leading `/' from absolute links"
+msgstr "Tar bort ledende / fra absolutte linker"
+
+#: src/create.c:827 src/create.c:1113 src/create.c:1173 src/create.c:1427
+#, c-format
+msgid "Cannot remove %s"
+msgstr "Kan ikke slette %s"
+
+#: src/create.c:1197
+#, c-format
+msgid "Cannot add directory %s"
+msgstr "Kan ikke legge til filkatalogen %s"
+
+#: src/create.c:1322
+#, c-format
+msgid "%s: On a different filesystem; not dumped"
+msgstr "%s: P et annet filesystem. Ikke lagret"
+
+#: src/create.c:1333 src/incremen.c:186
+#, c-format
+msgid "Cannot open directory %s"
+msgstr "Kan ikke pne filkatalogen %s"
+
+#: src/create.c:1357
+#, c-format
+msgid "File name %s%s too long"
+msgstr "Filnavnet %s%s er for langt"
+
+#: src/create.c:1432
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Ukjent filtype; filen ble ignorert"
+
+#: src/compare.c:50
+#, c-format
+msgid "Could not allocate memory for diff buffer of %d bytes"
+msgstr "Kunne ikke allokere minne for diff-buffer p %d bytes"
+
+#: src/compare.c:96 src/compare.c:317 src/compare.c:347
+#, c-format
+msgid "Cannot read %s"
+msgstr "Kan ikke lese %s"
+
+#: src/compare.c:101 src/compare.c:324 src/compare.c:354
+#, c-format
+msgid "Could only read %d of %ld bytes"
+msgstr "Kunne bare lese %d av %ld bytes"
+
+#: src/compare.c:110 src/compare.c:130 src/compare.c:392
+msgid "Data differs"
+msgstr "Data er ulike"
+
+#: src/compare.c:159 src/extract.c:329 src/extract.c:630 src/list.c:380
+#: src/list.c:872
+msgid "Unexpected EOF on archive file"
+msgstr "Uventet filslutt i arkivfilen"
+
+#: src/compare.c:411
+msgid "File does not exist"
+msgstr "Filen eksisterer ikke"
+
+#: src/compare.c:414 src/compare.c:574
+#, c-format
+msgid "Cannot stat file %s"
+msgstr "Kan ikke gjre stat p %s"
+
+#: src/compare.c:448
+msgid "Verify "
+msgstr "Verifisering "
+
+#: src/compare.c:455
+#, c-format
+msgid "Unknown file type '%c' for %s, diffed as normal file"
+msgstr "Ukjent filtype %c for %s, diffet som en vanlig fil"
+
+#: src/compare.c:480 src/compare.c:737
+msgid "Not a regular file"
+msgstr "Ikke en vanlig fil"
+
+#: src/compare.c:487 src/compare.c:718
+msgid "Mode differs"
+msgstr "Modus er ulik"
+
+#: src/compare.c:494
+msgid "Uid differs"
+msgstr "Uid er ulik"
+
+#: src/compare.c:496
+msgid "Gid differs"
+msgstr "Gid er ulik"
+
+#: src/compare.c:500
+msgid "Mod time differs"
+msgstr "Modifiseringstid er ulik"
+
+#: src/compare.c:504 src/compare.c:746
+msgid "Size differs"
+msgstr "Strrelse er ulik"
+
+#: src/compare.c:551 src/compare.c:784
+#, c-format
+msgid "Error while closing %s"
+msgstr "Feil ved lukking av %s"
+
+#: src/compare.c:571
+msgid "Does not exist"
+msgstr "Eksisterer ikke"
+
+#: src/compare.c:585
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ikke linket til %s"
+
+#: src/compare.c:605
+msgid "No such file or directory"
+msgstr "Fil eller filkatalog finnes ikke"
+
+#: src/compare.c:608
+#, c-format
+msgid "Cannot read link %s"
+msgstr "Kan ikke lese link %s"
+
+#: src/compare.c:616
+msgid "Symlink differs"
+msgstr "Symbolsk link er ulik"
+
+#: src/compare.c:655
+msgid "Device numbers changed"
+msgstr "Enhetsnummer er endret"
+
+#: src/compare.c:668
+msgid "Mode or device-type changed"
+msgstr "Modus eller enhetstype er endret"
+
+#: src/compare.c:713
+msgid "No longer a directory"
+msgstr "Ikke lenger en filkatalog"
+
+#: src/compare.c:755 src/names.c:225 src/update.c:55
+#, c-format
+msgid "Cannot open file %s"
+msgstr "Kan ikke pne filen %s"
+
+#: src/compare.c:764
+#, c-format
+msgid "Cannot seek to %ld in file %s"
+msgstr "Kan ikke ske til posisjon %ld i filen %s"
+
+#: src/compare.c:837
+msgid "Could not rewind archive file for verify"
+msgstr "Kunne ikke g til begynnelsen av arkivfilen for verifisering"
+
+#: src/compare.c:864
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "VERIFIKASJONSFEIL: %d ukjente arkivhoder funnet"
+
+#: src/delete.c:81
+msgid "Could not re-position archive file"
+msgstr "Kunne ikke endre posisjon i arkivfilen"
+
+#: src/delete.c:177 src/update.c:156
+msgid "This does not look like a tar archive"
+msgstr "Dette ser ikke ut som et tar-arkiv"
+
+#: src/delete.c:182 src/update.c:161
+msgid "Skipping to next header"
+msgstr "Hopper til neste startseksjon"
+
+#: src/delete.c:260
+msgid "Deleting non-header from archive"
+msgstr "Tar bort ikke-hodedata fra arkivet"
+
+#: src/extract.c:107
+#, c-format
+msgid "%s: Cannot change mode to %0.4o"
+msgstr "%s: Kan ikke endre modus til %0.4o"
+
+#: src/extract.c:149
+#, c-format
+msgid "%s: Could not change access and modification times"
+msgstr "%s: Kunne ikke endre aksess- og modifiseringstider"
+
+#: src/extract.c:176
+#, c-format
+msgid "%s: Cannot lchown to uid %d gid %d"
+msgstr "%s: Kan ikke endre eier til uid %d gid %d med lchown()"
+
+#: src/extract.c:182 src/extract.c:191
+#, c-format
+msgid "%s: Cannot chown to uid %d gid %d"
+msgstr "%s: Kan ikke endre eier til uid %d gid %d med chown()"
+
+#: src/extract.c:245
+#, c-format
+msgid "%s: Cannot change owner to uid %d, gid %d"
+msgstr "%s: Kan ikke endre eier til uid %d, gid %d"
+
+#: src/extract.c:338 src/extract.c:348 src/extract.c:665
+#, c-format
+msgid "%s: Could not write to file"
+msgstr "%s: Kunne ikke skrive til filen"
+
+#: src/extract.c:351 src/extract.c:668
+#, c-format
+msgid "%s: Could only write %d of %d bytes"
+msgstr "%s: Kunne bare skrive %d av %d bytes'"
+
+#: src/extract.c:425
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Kunne ikke lage sikkerhetskopi av denne filen"
+
+#: src/extract.c:568
+msgid "Extracting contiguous files as regular files"
+msgstr "Ekstraherer sammenhengende filer som vanlige filer"
+
+#: src/extract.c:580
+#, c-format
+msgid "%s: Could not create file"
+msgstr "%s: Kunne ikke lage fil"
+
+#: src/extract.c:644
+#, c-format
+msgid "%d at %d\n"
+msgstr "%d ved %d\n"
+
+#: src/extract.c:707
+#, c-format
+msgid "%s: Error while closing"
+msgstr "%s: Feil under lukking"
+
+#: src/extract.c:739
+#, c-format
+msgid "%s: Could not create symlink to `%s'"
+msgstr "%s: Kunne ikke lage symbolisk link til %s"
+
+#: src/extract.c:753
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Forsker ekstrahere symbolske linker som harde linker"
+
+#: src/extract.c:789
+#, c-format
+msgid "%s: Could not link to `%s'"
+msgstr "%s: Kunne ikke lage link til %s"
+
+#: src/extract.c:822
+#, c-format
+msgid "%s: Could not make node"
+msgstr "%s: Kunne ikke lage node"
+
+#: src/extract.c:848
+#, c-format
+msgid "%s: Could not make fifo"
+msgstr "%s: Kunne ikke lage fifo"
+
+#: src/extract.c:924
+#, c-format
+msgid "%s: Could not create directory"
+msgstr "%s: Kunne ikke lage filkatalog"
+
+#: src/extract.c:935
+#, c-format
+msgid "Added write and execute permission to directory %s"
+msgstr "Satte skrive- og eksekveringsrettigheter for filkatalog %s"
+
+#: src/extract.c:973
+#, c-format
+msgid "Cannot extract `%s' -- file is continued from another volume"
+msgstr "Kan ikke ekstrahere %s -- filen fortsetter fra et tidligere volum"
+
+#: src/extract.c:983
+msgid "Visible long name error"
+msgstr "Feil p et langt navn"
+
+#: src/extract.c:991
+#, c-format
+msgid "Unknown file type '%c' for %s, extracted as normal file"
+msgstr "Ukjent filtype %c for %s, ekstrahert som en vanlig fil"
+
+#: src/incremen.c:231 src/incremen.c:598 src/update.c:131
+#, c-format
+msgid "Cannot stat %s"
+msgstr "Kan ikke utfre stat p filen %s"
+
+#: src/incremen.c:268
+#, c-format
+msgid "Directory %s has been renamed"
+msgstr "Filkatalogen %s har endret navn"
+
+#: src/incremen.c:279
+#, c-format
+msgid "Directory %s is new"
+msgstr "Filkatalogen %s er ny"
+
+#: src/incremen.c:437 src/names.c:461
+msgid "Could not get current directory"
+msgstr "Kunne ikke finne navnet p aktiv filkatalog"
+
+#: src/incremen.c:442 src/names.c:466
+#, c-format
+msgid "Could not get current directory: %s"
+msgstr "Kunne ikke finne navnet p aktiv filkatalog: %s"
+
+#: src/incremen.c:446
+#, c-format
+msgid "File name %s/%s too long"
+msgstr "Filnavnet %s/%s er for langt"
+
+#: src/incremen.c:586
+#, c-format
+msgid "Cannot chdir to %s"
+msgstr "Kan ikke g til filkatalogen %s"
+
+#: src/incremen.c:675
+msgid "Unexpected EOF in archive"
+msgstr "Uventet filslutt i arkivet"
+
+#: src/incremen.c:704
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Sletter %s\n"
+
+#: src/incremen.c:706
+#, c-format
+msgid "Error while deleting %s"
+msgstr "Feil ved sletting av %s"
+
+#: src/list.c:84
+#, c-format
+msgid "Omitting %s"
+msgstr "Utelater %s"
+
+#: src/list.c:123
+#, c-format
+msgid "block %10ld: ** Block of NULs **\n"
+msgstr "blokk %10ld: ** Blokk med NUL-er **\n"
+
+#: src/list.c:134
+#, c-format
+msgid "block %10ld: ** End of File **\n"
+msgstr "blokk %10ld: ** Slutt p fil **\n"
+
+#: src/list.c:145
+msgid "Hmm, this doesn't look like a tar archive"
+msgstr "Hmm, dette ser ikke ut som et tar-arkiv"
+
+#: src/list.c:150
+msgid "Skipping to next file header"
+msgstr "Hopper til neste filhode"
+
+#: src/list.c:204
+msgid "EOF in archive file"
+msgstr "Filslutt i arkivfilen"
+
+#: src/list.c:216
+#, c-format
+msgid "Only wrote %ld of %ld bytes to file %s"
+msgstr "Skrev bare %ld av %ld bytes til filen %s"
+
+#: src/list.c:617 src/list.c:839
+#, c-format
+msgid "block %10ld: "
+msgstr "blokk %10ld: "
+
+#: src/list.c:654
+msgid "Visible longname error"
+msgstr "Feil p et langt navn"
+
+#: src/list.c:780 src/list.c:784
+#, c-format
+msgid " link to %s\n"
+msgstr " link til %s\n"
+
+#: src/list.c:788
+#, c-format
+msgid " unknown file type `%c'\n"
+msgstr " ukjent filtype %c\n"
+
+#: src/list.c:805
+msgid "--Volume Header--\n"
+msgstr "--Volumhode--\n"
+
+#: src/list.c:809
+#, c-format
+msgid "--Continued at byte %ld--\n"
+msgstr "--Fortsetter ved byte %ld--\n"
+
+#: src/list.c:814
+msgid "--Mangled file names--\n"
+msgstr "--delagte filnavn--\n"
+
+#: src/list.c:844 src/list.c:849
+msgid "Creating directory:"
+msgstr "Lager filkatalog:"
+
+#: src/mangle.c:61
+msgid "Unexpected EOF in mangled names"
+msgstr "Uventet filslutt i delagte navn"
+
+#: src/mangle.c:97
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Kan ikke endre navn p %s til %s"
+
+#: src/mangle.c:99
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Endret navn p %s til %s"
+
+#: src/mangle.c:116
+#, c-format
+msgid "Cannot symlink %s to %s"
+msgstr "Kan ikke lage en symbolisk link fra %s til %s"
+
+#: src/mangle.c:119
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s symbolsk linket til %s"
+
+#: src/mangle.c:123
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Ukjent kommando %s ved rekonstruering av navn"
+
+#: src/names.c:332 src/names.c:530 src/names.c:556 src/names.c:582
+#: src/names.c:735
+#, c-format
+msgid "Cannot change to directory %s"
+msgstr "Kan ikke g til filkatalogen %s"
+
+#: src/names.c:351 src/names.c:407 src/names.c:452
+msgid "Missing file name after -C"
+msgstr "Mangler filnavn etter -C"
+
+#: src/names.c:620 src/names.c:639
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Finnes ikke i arkivet"
+
+#: src/rmt.c:89
+msgid "Unknown system error"
+msgstr "Unkjent systemfeil"
+
+#: src/rmt.c:157
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Kan ikke allokere buffer\n"
+
+#: src/rmt.c:159
+msgid "Cannot allocate buffer space"
+msgstr "Kan ikke allokere plass til buffer"
+
+#: src/rmt.c:308
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: For tidlig filslutt\n"
+
+#: src/rmt.c:310
+msgid "Premature end of file"
+msgstr "For tidlig filslutt"
+
+#: src/rmt.c:382
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Ugyldig kommando %c\n"
+
+#: src/rmt.c:384
+msgid "Garbage command"
+msgstr "Ugyldig kommando"
+
+#: src/rtapelib.c:247
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Tjenesten er ikke tilgjengelig"
+
+#: src/rtapelib.c:252
+msgid "stdin"
+msgstr "stdin"
+
+#: src/rtapelib.c:255
+msgid "stdout"
+msgstr "stdout"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:415
+msgid "Cannot execute remote shell"
+msgstr "Kan ikke eksekvere \"remote shell\""
+
+#: src/tar.c:97
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Flaggene -%s and -%s vil begge ta standard inn"
+
+#: src/tar.c:123
+msgid "Cannot read confirmation from user"
+msgstr "Kan ikke lese bekreftelse fra brukeren"
+
+#: src/tar.c:290 tests/genfile.c:60
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Tast %s --help for mer informasjon.\n"
+
+#: src/tar.c:294
+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 lagrer mange filer i ett arkiv, og kan hente ut enkeltstende\n"
+"filer fra arkivet.\n"
+
+#: src/tar.c:298
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+msgstr ""
+"\n"
+"Bruk: %s [FLAGG]... [FIL]...\n"
+
+#: src/tar.c:299
+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"
+"Dersom et langt flagg har et obligatorisk argument, er argumentet ogs\n"
+"obligatorisk for det korte flagget. Tilsvarende gjelder dersom argumentet\n"
+"kan slyfes.\n"
+
+#: src/tar.c:304
+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"
+"Hovedoperasjonsmodi:\n"
+" -t, --list list innholdet av arkivet\n"
+" -x, --extract, --get ekstrahr filer fra arkivet\n"
+" -c, --create lage et nytt arkiv\n"
+" -d, --diff, --compare vise forskjeller mellom arkivet og filsystemet\n"
+" -r, --append legg til filer p slutten av arkivet\n"
+" -u, --update legg til bare filer som er nyere enn de i arkivet\n"
+" -A, --catenate legg en arkivfil sammen med arkivet\n"
+" --concatenate samme som -A\n"
+" --delete slett fra arkivet (ikke for arkiv p bnd!)\n"
+
+#: src/tar.c:317
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't overwrite existing files when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting "
+"directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Flagg for operasjonsmodi:\n"
+" -W, --verify forsk verifisere arkivet etter ha laget "
+"det\n"
+" --remove-files slett filer etter ha lagt dem til arkivet\n"
+" -k, --keep-old-files ikke overskriv eksisterende filer\n"
+" -U, --unlink-first slett alle filer fr ekstrahering til dem\n"
+" --recursive-unlink tm filkataloger fr ekstrahering\n"
+" -S, --sparse hndtr filer med hull mer effektivt\n"
+" -O, --to-stdout ekstrahr filer til stdout\n"
+" -G, --incremental bruk det gamle GNU formatet for inkrementell\n"
+" sikkerhetskopiering\n"
+" -g, --listed-incremental bruk det nye GNU-formatet for inkrementell\n"
+" sikkerhetskopiering\n"
+" --ignore-failed-read ignorr feil under lesing av filer\n"
+
+#: src/tar.c:331
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added "
+"files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract all protection information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Hndtering av filattributter:\n"
+" --owner=NAVN bruk NAVN som eier for nye filer\n"
+" --gruppe=NAVN bruk NAVN som gruppe for nye filer\n"
+" --mode=OKTAL bruk OKTAL som modus for nye filer\n"
+" --atime-preserve ikke endre aksesstider p lagrede filer\n"
+" -m, --modification-time ikke ekstrahr modifiseringstiden\n"
+" --same-owner forsk ekstrahere filer med samme eier\n"
+" --numeric-owner bruk nummer for bruker/gruppe-navn\n"
+" -p, --same-permissions forsk ekstrahere filer med samme\n"
+" filbeskyttelse\n"
+" --preserve-permissions samme som -p\n"
+" -s, --same-order sorter navn som skal ekstraheres slik at\n"
+" de passer med arkivet\n"
+" --preserve-order samme som -s\n"
+" --preserve samme som bde -p og -s\n"
+
+#: src/tar.c:347
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies "
+"-M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Enhetsvalg og enhetsskifte:\n"
+" -f, --file=ARKIV bruk arkivfil eller enhet ARKIV\n"
+" --force-local arkivfil er lokal selv om den har et kolon\n"
+" --rsh-command=KOMMANDO bruk KOMMANDO i stedet for rsh\n"
+" -[0-7][lmh] angi enhet og tetthet\n"
+" -M, --multi-volume behandle arkivet som et flervolumsarkiv\n"
+" -L, --tape-length=NUMMER bytt bnd etter at NUMMER x 1024 bytes er\n"
+" skrevet\n"
+" -F, --info-script=FIL kjr kommandofil FIL ved slutten av hvert\n"
+" bnd (setter -M automatisk)\n"
+" --new-volume-script=FIL samme som -F FIL\n"
+" --volno-file=FIL bruk/oppdater volumnummeret i FIL\n"
+
+#: src/tar.c:360
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means "
+"EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Blokkhndtering:\n"
+" -b, --blocking-factor=ENHETER sett blokkstrrelse ENHETER x 512 bytes\n"
+" --record-size=STRRELSE STRRELSE bytes per enhet (delbart p 512)\n"
+" -i, --ignore-zeros ignorr blokker som inneholder nuller\n"
+" (betyr filslutt)\n"
+" -B, --read-full-records blokk om ved lesing (for 4.2BSD pipes)\n"
+
+#
+#: src/tar.c:368
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing "
+"PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX conformant archive\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Valg av arkivformat:\n"
+" -V, --label=NAVN lag et arkiv med volumnavn NAVN\n"
+" MNSTER filer som skal tas med ved listing "
+"eller\n"
+" ekstrahering (tillatt med jokertegn)\n"
+" -o, --old-archive, --portability lag et arkiv i V7 format\n"
+" --posix lag et POSIX-konformt arkiv\n"
+" -z, --gzip, --ungzip send arkivet gjennom gzip\n"
+" -Z, --compress, --uncompress send arkivet gjennom compress\n"
+" --use-compress-program=PROG send arkivet gjennom PROG (m forst "
+"-d)\n"
+
+#
+#: src/tar.c:379
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file "
+"NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a globbing PATTERN\n"
+" -X, --exclude-from=FILE exclude globbing patterns listed in FILE\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in "
+"directories\n"
+" -l, --one-file-system stay in local file system when creating "
+"archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Valg av lokale filer:\n"
+" -C, --directory=KATALOG endre filkatalog til KATALOG\n"
+" -T, --files-from=FIL hent navn for ekstrahering eller arkivering\n"
+"\t\t\t fra filen FIL\n"
+" --null -T leser null-terminerte navn, tillater ikke "
+"-C\n"
+" --exclude=MNSTER ta ikke med filer (tillatt med jokertegn)\n"
+" -X, --exclude-from=FIL ta ikke med filer navngitte i filen FIL\n"
+" (tillatt med jokertegn)\n"
+" -P, --absolute-names ta ikke bort ledende / fra filnavn\n"
+" -h, --dereference arkivr det symboliske linker peker p\n"
+" --no-recurse ta ikke med filer i underkataloger\n"
+" -l, --one-file-system ta ikke med filer fra andre filsystemer\n"
+" -K, --starting-file=NAVN begynn med filen NAVN i arkivet\n"
+
+#
+#: src/tar.c:394
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATO arkivr bare filer som er nyere enn DATO\n"
+" --newer-mtime sammenlign tidsstempel bare nr data er "
+"endret\n"
+" --after-date=DATO samme som -N\n"
+
+#: src/tar.c:400
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version "
+"control\n"
+" --suffix=SUFFIX backup before removel, override usual suffix\n"
+msgstr ""
+" --backup[=KONTROLL] lag sikkerhetskopi fr sletting, med\n"
+" versjonskontroll\n"
+" --suffix=SUFFIKS lag sikkerhetskopi fr sletting, med\n"
+" overstyring av det vanlige suffikset\n"
+
+#: src/tar.c:404
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Utskrift av informasjon:\n"
+" --help vis denne hjelpeteksten og avslutt\n"
+" --version vis programversjon og avslutt\n"
+" -v, --verbose vis hver fil som behandles\n"
+" --checkpoint vis filkatalognavn nr arkivet leses\n"
+" --totals vis totalt antall bytes skrevet\n"
+" -R, --block-number vis enhetsnummer i arkivet sammen med alle "
+"meldinger\n"
+" -w, --interactive spr etter bekreftelse for hver operasjon\n"
+" --confirmation samme som -w\n"
+
+#: src/tar.c:416
+msgid ""
+"\n"
+"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 "
+"are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+"Suffikset for sikkerhetskopiering er ~, med mindre det er satt med --suffix\n"
+"eller SIMPLE_BACKUP_SUFFIX. Versjonskontroll kan settes med --backup eller\n"
+"VERSION_CONTROL. Gyldige verdier er:\n"
+"\n"
+" t, numbered lag nummererte sikkerhetskopier\n"
+" nil, existing nummererte, dersom nummererte sikkerhetskopier "
+"eksisterer,\n"
+" ellers enkle\n"
+" never, simple lag enkle sikkerhetskopier\n"
+
+#: src/tar.c:425
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; and FILE may be a file\n"
+"or a device. *This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"GNU tar kan hverken lese eller skrive --posix-arkiver. Dersom\n"
+"miljvariabelen POSIXLY_CORRECT er satt, er GNU-funksjoner ikke tillatt\n"
+"sammen med --posix. Sttte for POSIX er bare delvis implementert, s\n"
+"stol ikke p den enn.\n"
+"ARKIV kan vre FIL, MASKIN:FIL eller BRUKER@MASKIN:FIL; og FIL kan vre en\n"
+"fil eller en enhet. *Denne* versjonen av tar har -f%s -b%d som forvalg.\n"
+
+#: src/tar.c:433
+msgid ""
+"\n"
+"Report bugs to <tar-bugs@gnu.ai.mit.edu>.\n"
+msgstr ""
+"\n"
+"Rapporter feil til <tar-bugs@gnu.ai.mit.edu>.\n"
+
+#: src/tar.c:459
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Du kan ikke angi mer enn ett av -Acdtrux-flaggene"
+
+#: src/tar.c:468
+msgid "Conflicting compression options"
+msgstr "Konflikt i kompresjonsflagg"
+
+#: src/tar.c:532
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Gammelt flagg %c behver et argument."
+
+#: src/tar.c:574
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Utdatert flagg, n implisert av --blocking-factor"
+
+#: src/tar.c:578
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Utdatert flagg skiftet ut med --blocking-factor"
+
+#: src/tar.c:588
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Utdatert flagg skiftet ut med --read-full-records"
+
+#: src/tar.c:686
+msgid "Obsolete option name replaced by --touch"
+msgstr "Utdatert flagg skiftet ut med --touch"
+
+#: src/tar.c:707
+msgid "More than one threshold date"
+msgstr "Mer enn n grense-dato"
+
+#: src/tar.c:711
+#, c-format
+msgid "Invalid date format `%s'"
+msgstr "Ugyldig datoformat %s"
+
+#: src/tar.c:720 src/tar.c:876 src/tar.c:881
+msgid "Conflicting archive format options"
+msgstr "Konflikt i flaggene for arkiv-format"
+
+#: src/tar.c:732
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Utdatert flagg skiftet ut med --absolute-names"
+
+#: src/tar.c:744
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Utdatert flagg skiftet ut med --block-number"
+
+#
+#: src/tar.c:819
+msgid "Obsolete option name replaced by --backup"
+msgstr "Utdatert flagg skiftet ut med --backup"
+
+#: src/tar.c:840
+msgid "Invalid group given on option"
+msgstr "Ugyldig gruppe gitt i flagg"
+
+#: src/tar.c:850
+msgid "Invalid mode given on option"
+msgstr "Ugyldig modus gitt i flagg"
+
+#: src/tar.c:852
+msgid "Memory exhausted"
+msgstr "Minne oppbrukt"
+
+#: src/tar.c:866
+msgid "Invalid owner given on option"
+msgstr "Ugyldig eier gitt i flagg"
+
+#: src/tar.c:893
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Blokkstrrelse m vre delbart p %d."
+
+#: src/tar.c:989
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Flaggene -[0-7][lmh] stttes ikke av *denne* implementasjonen av tar"
+
+#: src/tar.c:999
+msgid ""
+"\n"
+"Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+
+#: src/tar.c:1003 tests/genfile.c:161
+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 ""
+"Dette er fri programvare. Se kildekoden for kopieringsbetingelser.\n"
+"Programvaren har ingen garanti, ikke en gang for SALGBARHET eller EGNETHET\n"
+"TIL NOEN SPESIELL OPPGAVE.\n"
+
+#: src/tar.c:1007
+msgid ""
+"\n"
+"Written by John Gilmore and Jay Fenlason.\n"
+msgstr ""
+"\n"
+"Skrevet av John Gilmore and Jay Fenlason.\n"
+
+#: src/tar.c:1035
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU-funksjoner forskt p inkompatibelt arkiv-format"
+
+#: src/tar.c:1052
+msgid "Multiple archive files requires `-M' option"
+msgstr "Ved flere arkivfiler behves -M-flagget"
+
+#: src/tar.c:1066
+msgid "Cowardly refusing to create an empty archive"
+msgstr "For feig til lage et tomt arkiv"
+
+#: src/tar.c:1087
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Flaggene -Aru er inkompatible med -f -"
+
+#: src/tar.c:1144
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Du m angi ett av -Acdtrux-flaggene"
+
+#: src/tar.c:1191
+msgid "Error exit delayed from previous errors"
+msgstr "Utsatt feil-avslutning for tidligere feil"
+
+#: src/update.c:79
+#, c-format
+msgid "Read error at byte %ld reading %d bytes in file %s"
+msgstr "Lesefeil ved byte %ld under lesing av %d bytes i fil %s"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrunk by %d bytes, (yark!)"
+msgstr "%s: Filen krympet med %d bytes, (h!)"
+
+#: tests/genfile.c:64
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Genrerer datafiler for GNU tar testpakke.\n"
+
+#: tests/genfile.c:65
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Bruk: %s [FLAGG]...\n"
+
+#: tests/genfile.c:68
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Obligatoriske argumenter for lange flagg er obligatoriske ogs for korte "
+"flagg.\n"
+"\n"
+" -l, --file-length=LENGDE lengde av generert fil\n"
+" -p, --pattern=MNSTER gyldige mnster er default eller zeros\n"
+" --help vis denne hjelpeteksten og avslutt\n"
+" --version vis programversjon og avslutt\n"
+
+#: tests/genfile.c:134
+#, c-format
+msgid "Ambiguous pattern `%s'"
+msgstr "Tvetydig mnster %s"
+
+#: tests/genfile.c:138
+#, c-format
+msgid "Unknown pattern `%s'"
+msgstr "Ukjent mnster %s"
+
+#: tests/genfile.c:157
+msgid ""
+"\n"
+"Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+
+#: tests/genfile.c:165
+msgid ""
+"\n"
+"Written by Franois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Skrevet av Franois Pinard <pinard@iro.umontreal.ca>\n"
diff --git a/po/.reference/nb.s1 b/po/.reference/nb.s1
new file mode 100644
index 00000000..dc7c09c5
--- /dev/null
+++ b/po/.reference/nb.s1
@@ -0,0 +1 @@
+f75b1fb58348b8554900aae63c77b5158fafc1a5 -
diff --git a/po/.reference/nl.po b/po/.reference/nl.po
new file mode 100644
index 00000000..ef338bf5
--- /dev/null
+++ b/po/.reference/nl.po
@@ -0,0 +1,2632 @@
+# Dutch translations for GNU tar.
+# Copyright (C) 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+#
+# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2010, 2011.
+# Erwin Poeze <erwin.poeze@gmail.com>, 2009.
+# Elros Cyriatan <cyriatan@fastmail.fm>, 2004.
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar-1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-12 17:27+0100\n"
+"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
+"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 1.0\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "ongeldig argument %s van %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argument %s van %s is niet eenduidig"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Geldige argumenten zijn:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Onbekende parameter in ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Rommel in ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr ""
+"Een argument dat verplicht of optioneel is voor een lange optie, is dat\n"
+"ook voor de overeenkomstige korte optie."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Gebruik: "
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " of: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [OPTIE...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Typ '%s --help' of '%s --usage' voor meer informatie.\n"
+
+#: gnu/argp-help.c:1712
+#, 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"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Onbekende systeemfout"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "deze hulptekst tonen"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "een korte gebruikssamenvatting tonen"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAAM"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "de programmanaam instellen"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SECONDEN"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "dit aantal seconden pauzeren (standaard 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "programmaversie tonen"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "**Interne programmafout**: geen versie bekend!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Te veel argumenten\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "**Interne programmafout**: optie had herkend moeten worden!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "schrijffout"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: optie '%s' is niet eenduidig\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: optie '--%s' staat geen argument toe\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: optie '%c%s' staat geen argument toe\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: optie '--%s' vereist een argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: onbekende optie '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: onbekende optie '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: ongeldige optie -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: optie vereist een argument -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: optie '-W %s' is niet eenduidig\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: optie '-W %s' staat geen argument toe\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: optie '-W %s' vereist een argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "onvoldoende geheugen beschikbaar"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "kan de huidige werkmap niet vastleggen"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "kan niet terugkeren naar de oorspronkelijke werkmap"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "‘"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "’"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[jJyY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "In pakketvorm gebracht door %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "In pakketvorm gebracht door %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Dit is vrije software: u mag het vrijelijk wijzigen en verder verspreiden.\n"
+"De precieze licentie is GPL-3+: GNU General Public License versie 3 of later.\n"
+"Zie http://gnu.org/licenses/gpl.html voor de volledige (Engelse) tekst.\n"
+"Deze software kent GEEN GARANTIE, voor zover de wet dit toestaat.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Geschreven door %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Geschreven door %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s en anderen.\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).
+#: gnu/version-etc.c:247
+#, c-format
+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"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr ""
+"Rapporteer gebreken in het programma '%s' aan <%s>;\n"
+"meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Webpagina van %s: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "Webpagina van %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 "Algemene hulp bij gebruik van 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: 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Leidende '%s' wordt uit lidnamen weggelaten"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Leidende '%s' wordt uit doelen van harde koppelingen weggelaten"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Lege lidnaam wordt vervangen door '.'"
+
+#: lib/paxnames.c:155
+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 "Kan geen verbinding maken met %s: herleiding is mislukt"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Kan gindse shell niet uitvoeren"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Sprongrichting valt buiten bereik"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Ongeldige sprongrichting"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Ongeldige sprongpositie"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Sprongpositie valt buiten bereik"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Ongeldig byte-aantal"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Byte-aantal valt buiten bereik"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Voortijdig einde van bestand"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Ongeldige bewerkingscode"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Bewerking wordt niet ondersteund"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Onverwachte argumenten"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Een magneetband manipuleren, en opdrachten accepteren van een ander proces."
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "AANTAL"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "debug-niveau instellen"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "BESTAND"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "naam van debug-uitvoerbestand instellen"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "kan %s niet openen"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "te veel argumenten"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Ongeldige opdracht"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Dit ziet er niet uit als een tar-archief"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Totaal aantal geschreven bytes"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Totaal aantal gelezen bytes"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Totaal aantal verwijderde bytes: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(pijp)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Ongeldige waarde voor recordgrootte"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Geen archiefnaam opgegeven"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Kan archieven op standaardinvoer of -uitvoer niet verifiëren"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Archief is gecomprimeerd. Gebruik optie '%s'."
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Kan ingepakte archieven niet bijwerken"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Aan het begin van de band -- tar sluit nu af."
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Te veel fouten -- tar sluit nu af."
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek() is niet gestopt op een recordgrens"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: bevat een ongeldig deelnummer"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Deelnummer-overloop"
+
+#: src/buffer.c:1123
+#, 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:1129
+msgid "EOF where user reply was expected"
+msgstr "een lege tekst, terwijl gebruikersinvoer werd verwacht"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "WAARSCHUWING: Archief is onvolledig"
+
+#: src/buffer.c:1148
+#, 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 naam een nieuwe bestandsnaam opgeven voor het volgende deel en de\n"
+" daarop volgende delen\n"
+" q tar afbreken\n"
+" y of Enter doorgaan\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! een subshell starten\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? dit lijstje tonen\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Geen nieuw deel -- tar sluit af.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Geen bestandsnaam opgegeven. Probeer het nog eens.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Ongeldige invoer. Typ ? voor hulp.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "Opdracht %s is mislukt"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s gaat niet verder in dit deel"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s heeft een verkeerde grootte (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, 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:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Archief bevat geen label, kan niet overeenkomen met %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Deel %s komt niet overeen met %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: bestandsnaam is te lang om opgeslagen te worden in een GNU-meerdelenkop; afgekapt"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "schrijven is niet gestopt op een recordgrens"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Inhouden verschillen"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Onverwacht einde-van-bestand in archief"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Bestandssoort verschilt"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Modus verschilt"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "UID verschilt"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "GID verschilt"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Wijzigingstijd verschilt"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Grootte verschilt"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Niet gekoppeld aan %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Symbolische koppeling verschilt"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Apparaatnummer verschilt"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Verifiëren "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Onbekende bestandssoort '%c'; gedifft als gewoon bestand"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Archief bevat bestandsnamen waarvan de prefixen verwijderd zijn."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Archief bevat getransformeerde bestandsnamen."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Een verificatie kan mogelijk de originele bestanden niet vinden."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Een los blok met nullen op %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: map bevat cache-markering %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "waarde %s valt buiten bereik voor %s (%s..%s)"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Er worden negatieve octale koppen gemaakt"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: bestandsnaam is te lang (max %d); niet gearchiveerd"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: bestandsnaam is te lang (kan niet worden gesplitst); niet gearchiveerd"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: koppelingsnaam is te lang; niet gearchiveerd"
+
+#: src/create.c:1064
+#, 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "inhoud niet gearchiveerd"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Onbekende bestandssoort; bestand genegeerd"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Ontbrekende koppelingen naar %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: bestand is ongewijzigd; niet gearchiveerd"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: bestand is het archief zelf; niet gearchiveerd"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "map is niet gearchiveerd"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: bestand is gewijzigd tijdens het lezen"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket genegeerd"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: deur genegeerd"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Alles tot aan volgende kop wordt overgeslagen"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Niet-kop wordt uit archief verwijderd"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: onwaarschijnlijk oude tijdsstempel %s"
+
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Onverwachte inconsistentie tijdens aanmaken van map"
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Aaneengesloten bestanden worden uitgepakt als gewone bestanden"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Poging om symbolische koppelingen als harde koppelingen uit te pakken..."
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Kan niet uitpakken -- bestand gaat door vanuit een ander deel"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Onverwachte langenaamkop"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Onbekende bestandssoort '%c'; uitgepakt als gewoon bestand"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Huidige %s is nieuwer of even oud"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Kan geen reservekopie van dit bestand maken"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Kan %s niet tot %s hernoemen"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Map is hernoemd van %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Map is hernoemd"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Map is nieuw"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Ongeldig tijdsstempel"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Ongeldige wijzigingstijd (seconden)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Ongeldige wijzigingstijd (nanoseconden)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Ongeldig apparaatnummer"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Ongeldig inode-nummer"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Veld is te lang, tijdens lezen van snapshot-bestand"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Leesfout tijdens lezen van snapshot-bestand"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Onverwacht einde-van-bestand in snapshot-bestand"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Onverwachte veldwaarde in snapshot-bestand"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Ontbrekende record-afsluiting"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Onjuiste incrementele bestandsindeling"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Niet-ondersteunde versie (%<PRIuMAX>) van incrementele bestandsindeling"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Onjuiste archiveringsmap: '%c' werd verwacht maar %#3o gevonden"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Onjuiste archiveringsmap: 'X' staat er dubbel"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Onjuiste archiveringsmap: lege naam in 'R'"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Onjuiste archiveringsmap: 'T' werd niet voorafgegaan door 'R'"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Onjuiste archiveringsmap: lege naam in 'T'"
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Onjuiste archiveringsmap: 'X' is nergens gebruikt"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Kan met sjabloon %s geen tijdelijke map aanmaken"
+
+#: src/incremen.c:1670
+#, 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:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Verwijderen van %s...\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Kan niet verwijderen"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Overgeslagen"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok van NUL-tekens **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Einde-van-bestand **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Octaalwaarde %.*s in archief valt buiten bereik voor %s; 2-complement wordt aangenomen"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Archief bevat ouderwetse grondtal-64 koppen"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " koppeling naar %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " onbekende bestandssoort %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Lange koppeling--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Lange naam--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Deelkop--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Verder bij byte %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Aanmaken van map:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Kan werkmap niet achterhalen"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Hernoemen van %s naar %s...\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "Kan %s niet naar %s hernoemen"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Hernoemen van %s terug naar %s...\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Bestand werd verwijderd voordat het gelezen kon worden"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "dochterproces"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "interproces-kanaal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Bestandsnamen bevatten jokertekens."
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr ""
+"Gebruik '--wildcards' om patroonovereenkomsten in te schakelen,\n"
+"of '--no-wildcards' om deze waarschuwing te onderdrukken."
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Komt niet voor in archief"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Is vereist maar komt niet voor in archief"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Archieflabel komt niet overeen"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "Met '--listed-incremental' is '-C' niet toegestaan binnen een bestandenlijst"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Met '--listed-incremental' is slechts één '-C' toegestaan"
+
+#: 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Ongeldige archiefindeling"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU-functies gevraagd bij een incompatibele archiefindeling"
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Onbekende aanhalingsstijl '%s'. Probeer '%s --quoting-style=help' voor een overzicht."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' bewaart veel bestanden samen op een enkele magneetband of in een enkel schijfarchief, en kan individuele bestanden uit het archief herstellen.\n"
+"\n"
+"Voorbeelden:\n"
+" tar -cf archief.tar foo bar # Bestand archief.tar aanmaken van foo en bar.\n"
+" 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:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Het reservekopie-achtervoegsel is '~', tenzij anders ingesteld met\n"
+"'--suffix' of met omgevingsvariabele SIMPLE_BACKUP_SUFFIX.\n"
+"Het versiebeheer kan worden ingesteld met '--backup' of met\n"
+"omgevingsvariabele VERSION_CONTROL; mogelijke waarden zijn:\n"
+"\n"
+" none, off nooit reservekopieën maken\n"
+" t, numbered genummerde reservekopieën maken\n"
+" nil, existing genummerd als ze al bestaan, anders simpel\n"
+" never, simple altijd simpele reservekopieën maken\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Hoofdbewerkingen:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "de inhoud van een archief opsommen"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "bestanden uit een archief uitpakken"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "een nieuw archief aanmaken"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "verschillen tussen archief en bestandssyteem vinden"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "bestanden aan het eind van een archief toevoegen"
+
+#: src/tar.c:402
+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:404
+msgid "append tar files to an archive"
+msgstr "tar-bestanden aan een archief toevoegen"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "uit het archief verwijderen (niet gebruiken bij magneetbanden!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "label van archiefdeel controleren en stoppen"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Werkingsaanpassers:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "luchtige bestanden efficiënt verwerken"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "HOOFD[.SUB]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "versie van te gebruiken luchtige indeling (impliceert '--sparse')"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "oude GNU-indeling van incrementeel archief verwerken"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "nieuwe GNU-indeling van incrementeel archief verwerken"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "dump-niveau voor aan te maken incrementeel archief"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "niet afsluiten met een foutcode bij onleesbare bestanden"
+
+#: src/tar.c:429
+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 "alleen het AANTALste voorkomen van elk bestand in het archief verwerken; deze optie is alleen geldig samen met een van de subopdrachten --delete, --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:435
+msgid "archive is seekable"
+msgstr "in archief kan worden gesprongen"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "in archief kan niet worden gesprongen"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "geen apparaatnummers controleren tijdens aanmaken van incrementele archieven"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "apparaatnummers controleren tijdens aanmaken van incrementele archieven (standaard)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Overschrijvingsopties:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "het archief na het schrijven proberen te verifiëren"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "bestanden na hun toevoeging aan het archief verwijderen"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "bij het uitpakken bestaande bestanden niet vervangen"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "bestaande bestanden bij het uitpakken overschrijven"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "elk bestand verwijderen alvorens eroverheen uit te pakken"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "bestaande mappen leegmaken alvorens eroverheen uit te pakken"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "metagegevens van bestaande mappen behouden"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "de metagegevens van bestaande mappen bij het uitpakken overschrijven (standaard)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Selecteren van uitvoerkanaal:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "bestanden uitpakken naar standaarduitvoer"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "OPDRACHT"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "uitgepakte bestanden via pijp naar gegeven programma sluizen"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "afsluitwaardes van dochterprocessen negeren"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "afsluitwaardes van dochterprocessen die niet nul zijn als fout behandelen"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Behandeling van bestandskenmerken:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "toegevoegde bestanden krijgen NAAM als eigenaar"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "toegevoegde bestanden krijgen NAAM als groep"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATUM-OF-BESTAND"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "wijzigingstijd zetten van bestanden die wegens DATUM-OF-BESTAND zijn toegevoegd"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "WIJZIGINGEN"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "toegevoegde bestanden krijgen (symbolische) WIJZIGINGEN in hun modus"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "MANIER"
+
+#: src/tar.c:499
+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 "toegangstijdsstempels van gearchiveerde bestanden behouden: door het herstellen van de tijdsstempels na het lezen (MANIER='replace'; standaard), of door de tijdsstempels met rust te laten (MANIER='system')"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "bestandswijzigingstijden niet uitpakken"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "bestanden proberen uit te pakken met dezelfde eigenaar als in het archief (standaard voor root)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "bestanden uitpakken als uzelf (standaard voor gewone gebruikers)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "altijd getallen gebruiken voor gebruikers- en groepsnamen"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "bestandspermissies ook uitpakken (standaard voor root)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "de umask van de gebruiker toepassen bij het uitpakken van bestandspermissies (standaard voor gewone gebruikers)"
+
+#: src/tar.c:517
+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:520
+msgid "same as both -p and -s"
+msgstr "hetzelfde als -p en -s samen"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "het zetten van permissies en tijdsstempels van mappen uitstellen tot na het uitpakken"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "het effect van de optie --delay-directory-restore ongedaan maken"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Apparaatselectie en -wisseling:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIEF"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "archiefbestand of apparaat ARCHIEF gebruiken"
+
+#: src/tar.c:535
+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:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "deze OPDRACHT gebruiken in plaats van 'rmt'"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "deze OPDRACHT gebruiken in plaats van 'rsh'"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "schijf en dichtheid opgeven"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "meerdelig archief aanmaken/opsommen/uitpakken"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "band wisselen na schrijven van AANTAL x 1024 bytes"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "script uitvoeren aan einde van elke band (impliceert '-M')"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "het deelnummer in BESTAND gebruiken/bijwerken"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blokverwerking:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKKEN"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOKKEN x 512 bytes per record"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "AANTAL bytes per record (een veelvoud van 512)"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "blokken met nullen in archief negeren (betekenen einde-van-bestand)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "doorgaan met lezen tot blok compleet is (voor 4.2BSD-pijpen)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Archiefindelingskeuze:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "INDELING"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "een archief maken in de gekozen indeling"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "INDELING is een van de volgende:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "oude V7 tar-indeling"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU-indeling van tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU-indeling van tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar-indeling)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax-indeling)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "hetzelfde als pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "hetzelfde als --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "hetzelfde als --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "sleutelwoord[[:]=waarde][,sleutelwoord[[:]=waarde]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "het aangeven van pax-sleutelwoorden"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEKST"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "een archief met deelnaam TEKST maken; bij opsommen/uitpakken TEKST als zoekpatroon voor de deelnaam gebruiken"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Compressie-opties:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "compressieprogramma afleiden uit bestandsachtervoegsel"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "compressieprogramma niet afleiden uit bestandsachtervoegsel"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROGRAMMA"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "het archief door dit programma filteren (moet '-d' accepteren)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Lokale bestandskeuze:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "MAP"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "naar MAP gaan"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "namen van in of uit te pakken bestanden uit BESTAND halen"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "'-T' leest met NUL afgesloten namen, schakelt '-C' uit"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "het resultaat van de vorige '--null'-optie ongedaan maken"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "aanhalingstekens verwijderen rond bestandsnamen gelezen met '-T' (standaard)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "aanhalingstekens niet verwijderen rond bestandsnamen gelezen met '-T'"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "PATROON"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "bestanden uitsluiten, gegeven als een PATROON"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "uitsluitingspatronen staan opgesomd in BESTAND"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "inhoud van mappen die CACHEDIR.TAG bevatten uitsluiten, behalve CACHEDIR.TAG zelf"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "alles onder mappen die CACHEDIR.TAG bevatten uitsluiten"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "mappen die CACHEDIR.TAG bevatten uitsluiten"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "alles onder mappen die BESTAND bevatten uitsluiten"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "mappen die BESTAND bevatten uitsluiten"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "systeemmappen van versiebeheer uitsluiten"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "reservekopieën en vergrendelingsbestanden uitsluiten"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "niet automatisch afdalen in mappen"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "in het lokale bestandssysteem blijven bij maken van archief"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "recursief in mappen afdalen (standaard)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "leidende '/' niet uit bestandsnamen verwijderen"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "LIDNAAM"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "beginnen bij lid LIDNAAM in het archief"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "alleen bestanden opslaan die nieuwer zijn dan DATUM-OF-BESTAND"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATUM"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "datum en tijd alleen vergelijken wanneer gegevens veranderd zijn"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "MANIER"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "voor verwijdering een reservekopie maken, op de aangegeven MANIER"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "TEKENREEKS"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "voor verwijdering een reservekopie maken, met TEKENREEKS als achtervoegsel (in plaats van '~', die standaard is tenzij door omgevingsvariable SIMPLE_BACKUP_SUFFIX veranderd)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Bestandsnaam-transformaties:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "dit AANTAL leidende componenten uit bestandsnamen verwijderen"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "EXPRESSIE"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "deze vervangings-EXPRESSIE gebruiken om bestandsnamen met 'sed' te transformeren"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Bestandsnaamselectie-opties (voor zowel in- als uitsluitingspatronen):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "verschil tussen hoofd- en kleine letters negeren"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "patronen komen overeen met begin van bestandsnaam"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "patronen komen overeen met alles na een '/' (is standaard bij uitsluiting)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "hoofdlettergevoelige vergelijking (standaard)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "jokertekens gebruiken (is standaard bij uitsluiting)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "exacte tekenreeksvergelijking"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "jokertekens komen niet overeen met '/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "jokertekens komen overeen met '/' (is standaard bij uitsluiting)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informatieve uitvoer:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "de verwerkte bestanden opsommen"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "SLEUTELWOORD"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "waarschuwingsbeleid"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "voortgangsberichten tonen voor elk AANTALste record (standaard 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ACTIE"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "bij elk controlepunt deze ACTIE uitvoeren"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "een bericht tonen als niet alle links gearchiveerd werden"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAAL"
+
+#: src/tar.c:751
+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 "na verwerking van het archief het totaal aantal bytes printen; als een argument gegeven is, dan het totaal aantal bytes printen als dit SIGNAAL ontvangen wordt; mogelijke signalen zijn: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 en SIGUSR2; de namen zonder het voorvoegsel SIG worden ook geaccepteerd"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "bestandswijzigingstijden in UTC tonen"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "bestandstijden in volledige resolutie tonen"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "gedetailleerde uitvoer naar BESTAND sturen"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "bloknummer binnen archief tonen bij elk bericht"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "bij elke actie om toestemming vragen"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "standaardinstellingen van 'tar' tonen"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "bij opsommen of uitpakken: elke map opsommen die niet aan zoekcriteria voldoet"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "bestands- of archiefnamen na transformatie tonen"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STIJL"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "ook de tekens in TEKENREEKS aanhalen"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "de tekens in TEKENREEKS niet aanhalen"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Compatibiliteitsopties:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "bij aanmaken hetzelfde als --old-archive; bij uitpakken hetzelfde als --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Andere opties:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "het gebruik van potentieel gevaarlijke opties of opdrachten uitschakelen"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Slechts één van de opties '-Acdtrux' of '--test-label' is mogelijk"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Conflicterende compressie-opties"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Onbekende signaalnaam: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Voorbeeldbestand voor tijdsstempel niet gevonden"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Onbekende datumopmaak %2$s wordt vervangen door %1$s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Optie %s: datum '%s' wordt begrepen als %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: bestandenlijst is al gelezen"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: gelezen bestandsnaam bevat een NUL-teken"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "het archief door '%s' filteren"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Geldige argumenten van de optie '--quoting-style' zijn:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Deze* tar gebruikt de volgende standaardwaarden:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Ongeldige blokkenfactor"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Ongeldige bandlengte"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Onjuiste waarde van incrementeel niveau"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Meerdere drempeldata"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Ongeldig versienummer voor luchtige indeling"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' is op dit platform niet mogelijk"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "Waarde van '--checkpoint' is geen geheel getal"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Ongeldige groep"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Ongeldige modus gegeven bij optie"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Ongeldig nummer"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Ongeldige eigenaar"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "De optie '--preserve' is vervallen; gebruik nu '--preserve-permissions --preserve-order'."
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Ongeldige recordgrootte"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Recordgrootte moet een veelvoud zijn van %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Ongeldig aantal elementen"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Slechts één optie '--to-command' is toegestaan"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Ongeldig dichtheidsargument: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Onbekende dichtheid: '%c'"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[BESTAND]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Oude optie '%c' vereist een argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "Optie '--occurrence' betekent niets zonder een bestandenlijst"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "Optie '--occurrence' kan niet worden gebruikt in de gevraagde werkingsmodus"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Voor meerdere archiefbestanden is de optie '-M' vereist"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Opties '--listed-incremental' en '--newer' gaan niet samen"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "Optie '--level' is betekenisloos zonder '--listed-incremental'"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Kan meerdelige archieven niet verifiëren"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Kan ingepakte archieven niet verifiëren"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Kan geen meerdelige ingepakte archieven verwerken"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Kan ingepakte archieven niet samenvoegen"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "Optie '--pax' kan alleen worden gebruikt bij POSIX-archieven"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Deellengte kan niet kleiner zijn dan de recordgrootte"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "Opties '--preserve-order' en '--listed-incremental' gaan niet samen"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Een geheel leeg archief wordt niet aangemaakt"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Opties '-Aru' gaan niet samen met '-f -'"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "U dient een van de opties '-Acdtrux' of '--test-label' op te geven"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Gestopt in fouttoestand vanwege eerdere fouten"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Sleutelwoord %s is onbekend of nog niet geïmplementeerd"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Tijdsstempel valt buiten toegestaan bereik"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Patroon %s kan niet worden gebruikt"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Sleutelwoord %s kan niet worden overstegen"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Onjuiste uitgebreide kop: ontbrekende lengte"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Lengte van uitgebreide kop valt buiten bereik"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Lengte %*s van uitgebreide kop valt buiten bereik"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Onjuiste uitgebreide kop: ontbrekende witruimte na de lengte"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Onjuiste uitgebreide kop: ontbrekend isgelijkteken"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Onjuiste uitgebreide kop: ontbrekend regeleinde"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Genegeerd: onbekend sleutelwoord '%s' in uitgebreide kop"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Aangemaakt paar van sleutelwoord en waarde is te lang (sleutelwoord=%s, lengte=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Onjuiste uitgebreide kop: ongeldige %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Onjuiste uitgebreide kop: overtollige %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Onjuiste uitgebreide kop: ongeldige %s: onverwacht scheidingsteken %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Onjuiste uitgebreide kop: ongeldige %s: oneven aantal waarden"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: ongeldige tijdswaarde"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: onbekende actie voor controlepunt"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "schrijven"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "lezen"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Schrijfcontrolepunt %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Leescontrolepunt %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"'genfile' manipuleert gegevensbestanden voor de testreeksen van GNU paxutils.\n"
+"OPTIES zijn:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Bestandsaanmaak-opties:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "GROOTTE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "een bestand van de gegeven GROOTTE aanmaken"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "naar het bestand NAAM schrijven i.p.v. naar standaarduitvoer"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "bestandsnamen uit BESTAND lezen"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T leest met NUL afgesloten namen"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "blokgrootte voor luchtig bestand"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "POSITIE"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "naar deze positie springen alvorens met schrijven te beginnen"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Bestandsstatistieken-opties:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Synchrone-uitvoer-opties:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPTIE"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "gegeven ARGUMENTEN uitvoeren; dit is nuttig bij '--checkpoint' samen met één van '--cut', '--append', '--touch', of '--unlink'"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "de datum voor de volgende '--touch'"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "de uitgevoerde controlepunten en de afsluitwaarde van OPDRACHT tonen"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Synchroon uit te voeren acties. Deze worden uitgevoerd bij het bereiken van het controlepunt opgegeven met de optie '--checkpoint'."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "BESTAND afkappen tot de grootte opgegeven met een voorafgaande optie '--length' (of 0 als niet gegeven)"
+
+#: tests/genfile.c:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "de toegangs- en wijzigingstijdsstempels van BESTAND bijwerken"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "OPDRACHT uitvoeren"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "BESTAND verwijderen"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Ongeldige grootte: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Getal valt buiten toegestaan bereik: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negatieve grootte: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "Kan status van %s niet bepalen"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "gevraagde bestandslengte is %lu, werkelijke is %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "aangemaakt bestand is niet luchtig"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Fout tijdens getalsontleding, nabij '%s'"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Onbekende datumopmaak"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENTEN]..."
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "Kan '%s' niet openen"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "Kan niet springen"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "Bestandsnaam bevat een NUL-teken"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "Onjuist masker (nabij '%s')"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Onbekend veld '%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "Kan tijdsstempel van '%s' niet zetten"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "Kan '%s' niet verwijderen"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Opdracht is succesvol afgesloten\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Opdracht is mislukt met afsluitwaarde %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Opdracht is afgebroken door signaal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Opdracht is gestopt door signaal %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Opdracht resulteerde in een core-dump\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Opdracht is afgebroken\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "Optie '--stat' vereist bestandsnamen"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: Map werd verwijderd voordat deze gelezen kon worden"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Kan werkmap niet opslaan"
diff --git a/po/.reference/nl.s1 b/po/.reference/nl.s1
new file mode 100644
index 00000000..e84846b8
--- /dev/null
+++ b/po/.reference/nl.s1
@@ -0,0 +1 @@
+db55f4b8123850a78e6cd2fc170bb9da7a86cfa3 -
diff --git a/po/.reference/pl.po b/po/.reference/pl.po
new file mode 100644
index 00000000..7a874b70
--- /dev/null
+++ b/po/.reference/pl.po
@@ -0,0 +1,2624 @@
+# Polish translation of GNU tar
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 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-2011. „”
+# Thanks to Jakub Bogusz for remarks and corrections, 2003, 2004, 2007, 2008, 2010.
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-12 18:25+0100\n"
+"Last-Translator: Rafał Maszkowski <rzm@icm.edu.pl>\n"
+"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "błędny argument %s opcji %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "niejednoznaczny argument %s opcji %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Prawidłowe argumenty to:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Nieznany parametr ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Śmieci w ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+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."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Składnia:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " albo: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr "[OPCJE...]"
+
+#: gnu/argp-help.c:1684
+#, 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"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Raporty o błędach należy wysyłać do %s .\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Nieznany błąd systemu"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "wyświetlenie tego opisu"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "krótka informacja o opcjach"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAZWA"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "ustawienie nazwy programu"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "poczekaj SEK sekund (domyślnie 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "informacja o wersji programu"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(BŁĄD PROGRAMU) Nieznana wersja!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Za dużo argumentów\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(BŁĄD PROGRAMU) Opcja powinna była być rozpoznana!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "błąd zapisu"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: opcja '%s' jest niejednoznaczna\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: opcja '--%s' nie może mieć argumentu\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: opcja '%c%s' nie może mieć argumentu\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: opcja '--%s' wymaga argumentu\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: nierozpoznana opcja '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: nierozpoznana opcja '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: błędna opcja -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: opcja wymaga argumentu -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: opcja '-W %s' nie może mieć argumentu\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: opcja '-W %s' wymaga argumentu\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "brak pamięci"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "nie udało się zapisać bieżącego katalogu"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "nie udało się powrócić do początkowego katalogu bieżącego"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yYtT]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Pakowane przez %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\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.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Napisany przez %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s i\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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s,\n"
+"%s, %s, %s, %s i\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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Napisany przez %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s i innych.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\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"
+
+#: gnu/version-etc.c:253
+#, c-format
+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"
+
+#. 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Usunięcie początkowego `%s' z nazw plików"
+
+#: lib/paxnames.c:141
+#, 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:154
+msgid "Substituting `.' for empty member name"
+msgstr "Podstawienie `.' zamiast pustej nazwy"
+
+#: lib/paxnames.c:155
+msgid "Substituting `.' for empty hard link target"
+msgstr "Podstawienie `.' zamiast pustej nazwy wskazywanej przez łącze zwykłe"
+
+#: 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
+#, c-format
+msgid "stdout"
+msgstr "stdout"
+
+#: lib/rtapelib.c:429
+#, c-format
+msgid "Cannot connect to %s: resolve failed"
+msgstr "Nie można połączyć się z %s: nie udało się przetłumaczyć nazwy na adres"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Nie można uruchomić zdalnego shella"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Sposób ustawiania pozycji w pliku spoza zakresu"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Błędne kierunek przesuwania wskaźnika pozycji"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Błędne przesunięcie wskaźnika pozycji"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Pozycja w pliku poza zakresem"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Błędna liczba bajtów"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Liczba bajtów poza zakresem"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Przedwczesny EOF"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Błędny kod operacji"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operacja nie przewidziana"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Nieoczekiwany argumenty"
+
+#: rmt/rmt.c:689
+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:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "LICZBA"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "ustawienie poziomu wypisywania informacji diagnostycznych"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "PLIK"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "plik do zapisywania informacji diagnostycznych"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "nie można otworzyć %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "za dużo argumentów"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Bezsensowna komenda"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "To nie wygląda jak archiwum tar"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Licza zapisanych bajtów"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Liczba przeczytanych bajtów"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Liczba skasowanych bajtów: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Błędna wartość record_size"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Nie podana nazwa archiwum"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Nie można zweryfikować archiwum z/do stdin/stdout"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Archiwum jest skompresowane. Należy użyć opcji %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Nie można uaktualnić archiwum skompresowanego"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Na początku taśmy, teraz kończę"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Za dużo błędów, kończę"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Rozmiar rekordu = %lu blok"
+msgstr[1] "Rozmiar rekordu = %lu bloki"
+msgstr[2] "Rozmiar rekordu = %lu bloków"
+
+#: src/buffer.c:913
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek nie zatrzymał się na granicy rekordów"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: zawiera błędny numer części"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Przepełnienie numeru części"
+
+#: src/buffer.c:1123
+#, 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:1129
+msgid "EOF where user reply was expected"
+msgstr "EOF kiedy była oczekiwana odpowiedź użytkownika"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+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:1148
+#, 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 nazwa Podanie nowej nazwy dla następnej (i kolejnych) części\n"
+" q Zakończenie programu tar\n"
+" y albo Enter Kontynuacja\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Uruchomienie powłoki\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Wypisanie tej listy\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Brak nowej części; zakończenie pracy.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Brak nazwy pliku. Spróbuj jeszcze raz.\n"
+
+#: src/buffer.c:1207
+#, 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:1258
+#, c-format
+msgid "%s command failed"
+msgstr "%s polecenie zwróciło błąd"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nie jest kontynuowany w tej części"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s to zły rozmiar (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, 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:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Etykieta archiwum nie pasuje do %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Część %s nie pasuje do %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: nazwa pliku jest za długa do zapisania w nagłówku wieloczęściowego archiwum GNU, zostanie skrócona"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "zapis nie zakończył się na granicy bloków"
+
+#: 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] "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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Zawartości się różnią"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Nieoczekiwany EOF w archiwum"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Różne typy plików"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Uprawnienia się różnią"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Uid się różni"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gid się różni"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Czas modyfikacji się różni"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Rozmiar się różni"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nie dołączony do %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Łącze symboliczne się różni"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Różnią się numery urządzeń"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Sprawdzanie "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Nieznany typ pliku `%c' porównywany jako zwykły plik"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Archiwum zawiera nazwy plików bez początkowych elementów ścieżek."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Archiwum zawiera zmienione nazwy plików."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Podczas weryfikacji mogą nie być znalezione pliki lokalne"
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Samotny blok zerowy przy %s"
+
+#: src/create.c:72
+#, 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:261
+#, 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:267
+#, 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:327
+msgid "Generating negative octal headers"
+msgstr "Tworzenie ujemnych nagłówków ósemkowych"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: nazwa pliku jest za długa (powyżej %d); nie została zapisana"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: nazwa pliku jest za długa (nie może być podzielona); nie została zapisana"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: nazwa łącza jest za długa; nie została zapisana"
+
+#: src/create.c:1064
+#, 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: 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "zawartość nie została zapisana"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Nieznany typ pliku; plik zignorowany"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Brakujące łącza do %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: plik jest niezmieniony; nie został zapisany"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: plik jest w tym archiwum; nie został zapisany"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "katalog nie został zapisany"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: plik zmienił się w trakcie czytania"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: zignorowane gniazdo z nazwą"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: zignorowany plik door"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Przeskoczenie do następnego nagłówka"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Kasowanie z archiwum nie-nagłówka"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: niemożliwie stara data %s"
+
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Nieoczekiwana niespójność przy zakładaniu katalogu"
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Odtwarzanie plików ciągłych (nie sparse) jako zwykłych"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Próba odtworzenia łącza symbolicznego jako zwykłego"
+
+#: src/extract.c:1365
+#, 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:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Niespodziewany nagłówek z długą nazwą"
+
+#: src/extract.c:1379
+#, 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:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Aktualny %s jest nowszy albo w tym samym wieku"
+
+#: src/extract.c:1457
+#, 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:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Nie można przemianować %s na %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Nazwa katalogu została zmieniona z %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Nazwa katalogu została zmieniona"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Katalog jest nowy"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Błędny czas pliku"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Błędny czas modyfikacji (sekundy)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Błędny czas modyfikacji (nanosekundy)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Błędny numer urządzenia"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Błędny numer inodu"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Za długie pole w pliku migawkowym"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Błąd czytania pliku migawkowego"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Nieoczekiwany EOF w pliku migawkowym"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Nieoczekiwana wartość pola w pliku migawkowym"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Brakujące zakończenie rekordu"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Zły format pliku przyrostowego"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Nie obsługiwana wersja formatu przyrostowego: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Zły format katalogu zrzutów: oczekiwano '%c', znaleziono %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Zły format katalogu zrzutów: powtórzone 'X'"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Zły format katalogu zrzutów: pusta nazwa w 'R'"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Zły format katalogu zrzutów: 'T' nie jest poprzedzone przez 'R'"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Zły format katalogu zrzutów: pusta nazwa w 'T'"
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Zły format katalogu zrzutów: nigdy nie użyte 'X'"
+
+#: src/incremen.c:1609
+#, 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:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Bez skasowania katalogu: nie można odczytać stanu"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: katalog na innym urządzeniu: bez skasowania"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Usunięcie %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Nie można usunąć"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Pominięty"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok zer **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok: %s: ** Koniec pliku **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Wartość ósemkowa %.*s w archiwum jest spoza zakresu %s; będzie traktowana jak uzupełnienie dwójkowe"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Archiwum zawiera przestarzałe nagłówki base64"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " łącze do %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " nieznany typ pliku %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Długie łącze--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Długa nazwa--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Nagłówek części--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Kontynuacja od bajtu %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Tworzony jest katalog:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Nie można odczytać bieżącego katalogu"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Nazwa %s zmieniona na %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Nie można przemianować na %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Nazwa zmieniona z %s z powrotem na %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Plik usunięty zanim został przeczytany"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "proces potomny"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "kanał między procesami"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "W nazwach plików użyto znaków dopasowania wzorców"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Użyj --wildcards aby włączyć porównywanie wzorców albo --no-wildcards żeby wyłączyć to ostrzeżenie"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Nie znalazłem w archiwum"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Brak podanego wystąpienia pliku w archiwum"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Nie pasująca etykieta archiwum"
+
+#: src/names.c:949
+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:955
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Błędny format archiwum"
+
+#: 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:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Nieznany styl cytowania `%s'. Użyj `%s --quoting-style=help' żeby zobaczyć listę."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"`tar' GNU zapisuje wiele plików razem na na jednej taśmie lub archiwum dyskowym i może odzyskać poszczególne pliki z archiwum.\n"
+"\n"
+"Przykłady:\n"
+" tar -cf archive.tar foo bar # utworzenie archive.tar z plików foo i bar.\n"
+" tar -tvf archive.tar # wypisanie szczegółowe plików w archive.tar.\n"
+" tar -xf archive.tar # rozpakowanie plików z archive.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Przyrostek kopii zapasowej to `~', jeżeli nie został zmieniony przez --suffix\n"
+"lub SIMPLE_BACKUP_SUFFIX. Sposób zarządzania wersjami może być zmieniony przez\n"
+"--backup lub VERSION_CONTROL, możliwe wartości:\n"
+"\n"
+" none, off bez kopii zapasowych\n"
+" t, numbered zrobienie numerowanych kopii zapasowych\n"
+" nil, existing numerowane jeżeli takie już są, w przeciwnym wypadku proste\n"
+" never, simple proste kopie zapasowe\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Podstawowe tryby działania:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "wypisanie zawartości archiwum"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "rozpakowanie plików z archiwum"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "utworzenie nowego archiwum"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "sprawdzenie różnic między archiwum i plikami na dysku"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "dołączenie plików na końcu archiwum"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "dołączenie tylko plików nowszych niż kopie w archiwum"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "dołączenie plików tar do archiwum"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "skasowanie plików z archiwum (nie na taśmie!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "przetestowanie etykiety archiwum i wyjście"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Modyfikatory działania:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "efektywne przetwarzanie plików rzadkich"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+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:421
+msgid "handle old GNU-format incremental backup"
+msgstr "backup przyrostowy w starym formacie GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "backup przyrostowy w nowym formacie GNU"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "numer poziomu tworzonej albo oglądanej przyrostowej kopii zapasowej"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "bez zakończenia błędem jeżeli niedostępne pliki"
+
+#: src/tar.c:429
+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 "przetwarzanie tylko co LICZBA wystąpienie każdego pliku w archiwum. Opcja działa tylko razem z --delete, --diff, --extract albo --list oraz gdy lista plików jest podana w linii poleceń albo przez opcję -T. LICZBA domyślnie wynosi 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "archiwum o swobodnym dostępie"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "archiwum bez swobodnego dostępu"
+
+#: src/tar.c:439
+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:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "ze sprawdzaniem numerów urządzeń przy tworzeniu archiwów przyrostowych"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Sterowanie zamazywaniem"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "próba weryfikacji archiwum po zapisaniu"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "usunięcie plików po dodaniu do archiwum"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "bez zamazania istniejących plików rozpakowanymi"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "nadpisywanie istniejących plików"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "usunięcie każdego pliku przed zamazaniem go rozpakowanym plikiem"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "opróżnianie starych katalogów przed rozpakowaniem kopii z archiwum"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "zachowanie metadanych istniejących katalogów"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "nadpisywanie metadanych istniejących katalogów przy rozpakowywaniu (domyslnie)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Wybór strumienia wyjściowego"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "rozpakowanie plików na standardowe wyjście"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "POLECENIE"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "przekazanie rozpakowywanych plików do innego programu"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "zignorowanie kodów wyjścia procesów potomnych"
+
+#: src/tar.c:482
+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:487
+msgid "Handling of file attributes:"
+msgstr "Przetwarzanie atrybutów plików:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "nadanie właściciela NAZWA dodanym plikom"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "nadanie grupy NAZWA dodanym plikom"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATA_ALBO_PLIK"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "ustawianie czasu modyfikacji dodanych plików z DATA_ALBO_PLIK"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "ZMIANY"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "ZMIANA uprawnień dodanych plików (podanych symbolicznie)"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODA"
+
+#: src/tar.c:499
+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 "zachowanie czasów dostępu archiwizowanych plików przez ich odtworzenie po czytaniu (METODA='replace'; domyślnie) albo przez nieustawianie czasu (METODA='system')"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "bez odtworzenia czasu modyfikacji rozpakowanego pliku"
+
+#: src/tar.c:505
+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:507
+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:509
+msgid "always use numbers for user/group names"
+msgstr "używanie numerów, nie nazw użytkowników/grup"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "odtworzenie informacji o uprawnieniach plików (domyślnie dla superusera)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "użycie umask użytkownika przy odtwarzaniu uprawnień z archiwum (domyślnie dla zwykłych użytkowników)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "pliki do rozpakowania posortowane jak w archiwum"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "to samo co równocześnie -p i -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "ustawianie czasów zmian i uprawnień odtworzonych katalogów opóźnione do końca rozpakowywania"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "wyłączenie efektu opcji --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Wybór i przełączanie urządzeń:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIWUM"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "użycie pliku lub urządzenia ARCHIWUM"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "plik archiwum lokalny, nawet jeżeli ma dwukropek"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "użyj POLECENIA zamiast /etc/rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "użyj POLECENIA zamiast rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "podanie napędu i gęstości"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "tworzenie/wypisanie/rozpakowanie archiwum wieloczęściowego"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "zmiana taśmy po zapisaniu LICZBA x 1024 bajtów"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "uruchomienie skryptu na końcu taśmy (włącza -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "użycie/uaktualnienie numeru części w PLIKU"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Parametry bloków:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKI"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOKI x 512 bajtów na rekord"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "LICZBA bajtów w rekordzie, wielokrotność 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignorowanie wyzerowanych bloków w archiwum (oznacza EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "podzielenie na bloki przy odczycie (dla pipe 4.2BSD)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Wybór formatu archiwum:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "utworzenie archiwum w danym formacie."
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT może być jednym z następujących:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "stary format tara z V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "format GNU dla tara <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "format tara GNU 1.13"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "format POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "format POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "to samo co pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "to samo co --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "to samo co --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "słowo_kluczowe[[:]=wartość][,słowo_kluczowe[[:]=wartość]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "ustawianie słów kluczowych formatu pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEKST"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "utworzenie archiwum z nazwą wolumenu TEKST. Przy wypisywaniu/rozpakowaniu TEKST będzie użyty jako wzorzec dopasowania dla nazwy"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Opcje kompresji"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "użycie przyrostka nazwy archiwum do ustalenia programu kompresującego"
+
+#: src/tar.c:618
+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:620
+msgid "PROG"
+msgstr "PROGRAM"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtrowanie przez PROGRAM (akceptujący -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Wybór plików lokalnych:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "KATALOG"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "przejście do KATALOGU"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "nazwy plików do rozpakowania lub spakowania z PLIKU"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T czyta nazwy zakończone zerem, wyłącz -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "wyłączenie efektu użycia opcji --null"
+
+#: src/tar.c:650
+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:652
+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:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "WZORZEC"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "wykluczenie nazw pasujących do WZORCA"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "wykluczenie nazw pasujących do wzorców w PLIKU"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "wykluczenie katalogów zawierających znacznik pamięci podręcznej CACHEDIR.TAG, oprócz samych plików znacznika"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "wykluczenie katalogów zawierających CACHEDIR.TAG i ich podkatalogów"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "wykluczenie katalogów zawierających CACHEDIR.TAG"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "wykluczenie katalogów zawierających PLIK i ich podkatalogów"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "wykluczenie katalogów zawierających PLIK"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "wykluczenie katalogów systemu administrowania wersjami"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "wykluczenie plików kopii zapasowych i rezerwacji zasobów"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "bez automatycznego zagłębiania się w katalogi"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "pozostanie w jednym systemie plików"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "zagłębianie się w podkatalogi (domyślnie)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "bez usuwania początkowego `/' z nazw plików"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "archiwizacja plików, na które wskazują łącza symboliczne"
+
+#: src/tar.c:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "NAZWA-PLIKU"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "zaczęcie od pliku NAZWA-PLIKU w archiwum"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "zapisanie tylko plików nowszych niż DATA albo data PLIKU"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATA"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "porównywanie daty i czasu tylko dla zmienionych danych"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "TRYB"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "kopia zapasowa przed usunięciem, wybranie TRYBU zarządzania wersjami"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "NAPIS"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "kopia zapasowa przed usunięciem, zmiana domyślnego przyrostka ('~', jeżeli nie zmieniony przez zmienną środowiska SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Zmiany nazwy plików:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "WYRAŻENIE"
+
+#: src/tar.c:708
+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:714
+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:717
+msgid "ignore case"
+msgstr "traktowanie tak samo małych i wielkich liter"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "nazwy porównywane od początków nazw plików"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "wzorce odnoszą się do nazw po każdym / (domyślnie)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "odróżnianie małych i wielkich liter (domyślnie)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "używanie wildcards (domyślnie dla wykluczania)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "dosłowne porównywanie napisów"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "wildcards nie są porównywane z `/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "wildcards są porównywane z '/' (domyślnie dla wykluczania)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informacje:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "wypisywanie szczegółów o przetwarzanych plikach"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "SŁOWO KLUCZOWE"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "sterowanie ostrzeżeniami"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "wypisywanie co ILE rekordów informacji o przetwarzaniu (domyslnie co 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "AKCJA"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "wykonanie AKCJI przy każdym punkcie kontrolnym"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "wypisanie komunikatu jeżeli nie wszytkie łącza zostały zapisane"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SYGNAŁ"
+
+#: src/tar.c:751
+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 "wypisanie całkowitej liczby bajtów po przetworzeniu archiwum; z argumentem - wypisanie całkowitej liczby bajtów kiedy zostanie wysłany SYGNAŁ; Dozwolone sygnały: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 i SIGUSR2; nazwy bez prefiksu SIG są też akceptowane"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "wypisanie czasów modyfikacji plików w UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "wypisanie czasu pliku z pełną dokładnością"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "zapisanie dokładnych informacji w PLIKU"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "pokazanie przy każdym komunikacie numeru bloku w archiwum"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "proszenie o potwierdzenie każdego działania"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "wypisanie domyślnych ustawień tar-a"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "wypisywanie każdego katalogu nie pasującego do kryteriów szukania przy wypisywaniu albo rozpakowywaniu archiwum"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "pokazanie nazw plików albo archiwów po przeszktałceniu"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STYL"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "dodatkowe ujmowanie w znaki cytowania znaków z ŁAŃCUCHA"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "wyłączenie ujmowania w znaki cytowania znaków z ŁAŃCUCHA"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Opcje kompatybilności:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "przy tworzeniu: to samo co --old-archive przy odtwarzaniu: to co --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Inne opcje:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "wyłączenie używania potencjalnie szkodliwych opcji"
+
+#: src/tar.c:930
+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:940
+msgid "Conflicting compression options"
+msgstr "Niezgodne opcje kompresji"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Nieznana nazwa sygnału: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Nie znaleziono pliku z datą"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Postawienie %s w miejscu nieznanego formatu daty %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Opcja %s: Potraktowanie daty `%s' jako %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: lista plików już przeczytana"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: przeczytana nazwa pliku zawiera znak NUL"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtrowanie archiwum przez %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Prawidłowe argumenty dla opcji --quoting-style:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Ten* tar ma domyślne parametry:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Błędny współczynnik łączenia w bloki"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Błędna długość taśmy"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Błędny numer poziomu przyrostowej kopii zapasowej"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Więcej niż jedna data graniczna"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Błędna wartość wersji plików rzadkich"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "ten system nie pozwala na użycie --atime-preserve='system'"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "wartość --checkpoint nie jest liczbą całkowitą"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Błędna grupa"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Błędne uprawnienia podane w opcji"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Błędny numer"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Błędny właściciel"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Opcja --preserve jest przestarzała, zamiast niej użyj --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Błędna wielkość rekordu"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Rozmiar rekordu musi być wielokrotnością %d"
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Błędna ilość elementów"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Wolno użyć tylko jednej opcji polecenia --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Błędna specyfikacja gęstości: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Nieznana gęstość: `%c'"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[PLIK]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Stara opcja `%c' wymaga argumentu."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence nie ma znaczenia bez listy plików"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence nie może być użyte w tym trybie"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Archiwum składające się z wielu plików wymaga opcji `-M'"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Nie można połączyć --listed-incremental z --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "opcja --level nic nie znaczy bez użycia --listed-incremental"
+
+#: src/tar.c:2423
+#, 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: 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Nie można zweryfikować archiwum wieloczęściowego"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Nie można zweryfikować archiwum skompresowanego"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Nie można używać wieloczęściowego archiwum skompresowanego"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Nie można połączyć skompresowanych archiwów"
+
+#: src/tar.c:2462
+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:2492
+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:2495
+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:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Tchórzliwie odmawiam utworzenia pustego archiwum"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Opcje `-Aru' są niekompatybilne z `-f -'"
+
+#: src/tar.c:2621
+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:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Zakończenie w stanie błędu z powodu uprzednich błędów"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+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:164
+#, 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:174
+msgid "Time stamp is out of allowed range"
+msgstr "Czas spoza dozwolonego zakresu"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Nie może być użyty wzorzec %s"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Słowo kluczowe %s nie może być zastąpione"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Błędny nagłówek rozszerzony: brakuje długości"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Długość nagłówka rozszerzonego jest poza dozwolonym zakresem"
+
+#: src/xheader.c:557
+#, 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:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Błędny nagłówek rozszerzony: brakuje odstępu po długości"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Błędny nagłówek rozszerzony: brakuje znaku równości"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Błędny nagłówek rozszerzony: brakuje znaku mowej linii"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Zignorowane nieznane słowo kluczowe nagłówka rozszerzonego `%s'"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Wygenerowana para słowo kluczowe/wartość jest za długa (słowo kluczowe=%s, długość=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Błędny nagłówek rozszerzony: błędny %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Błędny nagłówek rozszerzony: nadmiarowe %s=%s"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, 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"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: błędna specyfikacja ograniczenia czasu"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: nieznana akcja przy punkcie kontrolnym"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "zapis"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "odczyt"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Punkt kontrolny zapisu %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Punkt kontrolny czytania %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile służy do operacji na plikach w ramach zestawu testów GNU paxutils.\n"
+"OPCJE:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Opcje tworzenia plików:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "ROZMIAR"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Utworzenie pliku o podanym ROZMIARZE"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Pisanie na pliku NAZWA zamiast na standardowe wyjście"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Czytanie nazw plików z PLIKU"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T czyta nazwy zakończone zerem"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Rozmiar bloku pliku rzadkiego"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "POZYCJA"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Ustawienie pozycji zapisu przez zapisem danych"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Opcje statystyki plików"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Opcje równoczesnego wykonywania:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPCJA"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Wykonanie ARGUMENTÓW. Przydatne z --checkpoint i jednym z --cut, --append, --touch albo --unlink"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Ustaw datę następnej opcji --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Wypisanie wykonanych punktów kontrolnych i kodu wyjścia POLECENIA"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Akcje równoczesnego wykonania. Są podejmowane po osiągnięciu punktu kontrolnego o numerze podanym przez opcję --checkpoint"
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Obcięcie PLIKU do rozmiaru podanego przez poprzednia opcję --length (albo 0, jeżeli nie został podany)"
+
+#: tests/genfile.c:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "Uaktualnienie czasów dostepu i modyfikacji PLIKU"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Wykonanie POLECENIA"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Usunięcie PLIKU"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Błędny rozmiar: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Liczba spoza dozwolonego zakresu: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Ujemny rozmiar: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "błąd stat(%s)"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "żądana długość pliku %lu, faktyczna %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "utworzony plik nie jest rzadki"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Błąd przetwarzania liczby blisko `%s'"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Nieznany format daty"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENTY...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "nie można otworzyć `%s'"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "nie można ustawić pozycji"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "nazwa pliku zawiera znak NUL"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "nieprawidłowa maska (koło `%s')"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr " Nieznane pole `%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "nie można ustawić czasu na `%s'"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "nie można usunąć `%s'"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Polecenie zakończyło się poprawnie\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Polecenie zakończyło się niepoprawnie z kodem %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Polecenie zostało zakończone sygnałem %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Polecenie zostało zatrzymane sygnałem %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Został zapisany obraz pamięci (core dump) polecenia\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Polecenie zakończone\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat wymaga podania nazwy pliku"
diff --git a/po/.reference/pl.s1 b/po/.reference/pl.s1
new file mode 100644
index 00000000..163a90f8
--- /dev/null
+++ b/po/.reference/pl.s1
@@ -0,0 +1 @@
+7f8e17c49f87ee438a1521d1b93b6c13d4450b9c -
diff --git a/po/.reference/pt.po b/po/.reference/pt.po
new file mode 100644
index 00000000..2407f5a6
--- /dev/null
+++ b/po/.reference/pt.po
@@ -0,0 +1,1606 @@
+# Portuguese translation of the "tar" messages
+# Copyright (1995) Free Software Foundation, Inc.
+# Antnio Jos Coutinho <ajc@di.uminho.pt>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.11.9\n"
+"POT-Creation-Date: 1997-04-25 16:58-0400\n"
+"PO-Revision-Date: 1996-04-20 21:50\n"
+"Last-Translator: Antnio Jos Coutinho <ajc@di.uminho.pt>\n"
+"Language-Team: Portuguese <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: src/buffer.c:160
+#, fuzzy
+msgid "Total bytes written: "
+msgstr "Nmero total de de \"bytes\" escritos: %d\n"
+
+#: src/buffer.c:255
+#, c-format
+msgid "Cannot close file #%d"
+msgstr "No se consegue fechar o ficheiro #%d"
+
+#: src/buffer.c:271
+#, c-format
+msgid "Cannot close descriptor %d"
+msgstr "No se consegue fechar o ficheiro de descritor %d"
+
+#: src/buffer.c:274
+#, fuzzy, c-format
+msgid "Cannot properly duplicate %s"
+msgstr "No se consegue redireccionar %s"
+
+#: src/buffer.c:288 src/buffer.c:298
+msgid "Cannot use compressed or remote archives"
+msgstr "No se pode usar arquivos comprimidos ou remotos"
+
+#: src/buffer.c:334 src/buffer.c:391 src/buffer.c:498 src/buffer.c:547
+msgid "Cannot open pipe"
+msgstr "No se consegue abrir \"pipe\""
+
+#: src/buffer.c:338 src/buffer.c:502
+msgid "Cannot fork"
+msgstr "No se consegue criar processo ( \"fork\" )"
+
+#. The new born child tar is here!
+#: src/buffer.c:351 src/buffer.c:516
+msgid "tar (child)"
+msgstr "tar (filho)"
+
+#: src/buffer.c:353
+msgid "(child) Pipe to stdin"
+msgstr "(filho) \"pipe\" para \"stdin\""
+
+#: src/buffer.c:378 src/buffer.c:423 src/buffer.c:535 src/buffer.c:580
+#, c-format
+msgid "Cannot open archive %s"
+msgstr "No se consegue abrir o arquivo %s"
+
+#: src/buffer.c:381
+msgid "Archive to stdout"
+msgstr "Arquivo para stdout"
+
+#: src/buffer.c:384 src/buffer.c:405 src/buffer.c:540 src/buffer.c:561
+#, c-format
+msgid "Cannot exec %s"
+msgstr "No se consegue executar %s"
+
+#: src/buffer.c:395 src/buffer.c:551
+msgid "Child cannot fork"
+msgstr "Processo filho no consegue executar \"fork\""
+
+#. The child tar is still here! Launch the compressor.
+#: src/buffer.c:401
+msgid "((child)) Pipe to stdout"
+msgstr "((filho)) \"pipe\" para \"stdout\""
+
+#. The new born grandchild tar is here!
+#: src/buffer.c:411 src/buffer.c:567
+msgid "tar (grandchild)"
+msgstr "tar (neto)"
+
+#. Prepare for reblocking the data from the compressor into the archive.
+#: src/buffer.c:415
+msgid "(grandchild) Pipe to stdin"
+msgstr "(neto) \"Pipe\" para \"stdout\""
+
+#: src/buffer.c:450
+msgid "Cannot read from compression program"
+msgstr "No se consegue ler do programa de compresso"
+
+#: src/buffer.c:518
+msgid "(child) Pipe to stdout"
+msgstr "(filho) \"pipe\" para \"stdout\""
+
+#: src/buffer.c:537
+msgid "Archive to stdin"
+msgstr "Arquivo para stdin"
+
+#. The child tar is still here! Launch the uncompressor.
+#: src/buffer.c:557
+msgid "((child)) Pipe to stdin"
+msgstr "((filho)) \"pipe\" para \"stdin\""
+
+#. Prepare for unblocking the data from the archive into the uncompressor.
+#: src/buffer.c:571
+msgid "(grandchild) Pipe to stdout"
+msgstr "(neto) \"Pipe\" para \"stdout\""
+
+#: src/buffer.c:611
+msgid "Cannot write to compression program"
+msgstr "No se consegue escrever para o programa de compresso"
+
+#: src/buffer.c:616
+#, c-format
+msgid "Write to compression program short %d bytes"
+msgstr "Faltam %d bytes no que se escreveu para o programa de compresso"
+
+#: src/buffer.c:675
+msgid "Invalid value for record_size"
+msgstr "Valor invlido para tamanho de registo (record_size)"
+
+#: src/buffer.c:678
+#, fuzzy
+msgid "No archive name given"
+msgstr "No deram nome de arquivo, que fazer?"
+
+#: src/buffer.c:705
+#, c-format
+msgid "Could not allocate memory for blocking factor %d"
+msgstr "No se conseguiu reservar memria para um factor de bloco %d"
+
+#: src/buffer.c:714
+msgid "Cannot verify multi-volume archives"
+msgstr "No se pode verificar arquivos multi-volume"
+
+#: src/buffer.c:719
+msgid "Cannot use multi-volume compressed archives"
+msgstr "No se pode de usar arquivos multi-volume comprimidos"
+
+#: src/buffer.c:721
+#, fuzzy
+msgid "Cannot verify compressed archives"
+msgstr "No se pode actualizar o verificar um arquivo comprimido"
+
+#: src/buffer.c:734
+#, fuzzy
+msgid "Cannot update compressed archives"
+msgstr "No se pode actualizar o verificar um arquivo comprimido"
+
+#: src/buffer.c:745
+msgid "Cannot verify stdin/stdout archive"
+msgstr "No se pode de verificar arquivos stdin ou stdout"
+
+#: src/buffer.c:797 src/buffer.c:1673 src/compare.c:522 src/incremen.c:456
+#: src/names.c:861
+#, c-format
+msgid "Cannot open %s"
+msgstr "No se consegue abrir %s"
+
+#: src/buffer.c:838
+#, fuzzy, c-format
+msgid "Archive not labelled to match `%s'"
+msgstr "O arquivo no tem etiqueta e no condiz com %s"
+
+#: src/buffer.c:841 src/buffer.c:1172
+#, c-format
+msgid "Volume `%s' does not match `%s'"
+msgstr ""
+
+#: src/buffer.c:880
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Escreve-se o ponto de verificao %d"
+
+#: src/buffer.c:1049 src/incremen.c:513
+#, c-format
+msgid "Cannot write to %s"
+msgstr "No se consegue escrever em %s"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Only wrote %u of %u bytes to %s"
+msgstr "S se escreveram %u \"bytes\" de um total de %u em %s"
+
+#: src/buffer.c:1064
+#, c-format
+msgid "Read error on %s"
+msgstr "Erro de leitura sobre %s"
+
+#: src/buffer.c:1067
+msgid "At beginning of tape, quitting now"
+msgstr "No princpio da fita, pra-se imediatamente"
+
+#: src/buffer.c:1073
+msgid "Too many errors, quitting"
+msgstr "Erros de mais: termina-se"
+
+#: src/buffer.c:1089
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Leu-se o ponto de verificao %d"
+
+#: src/buffer.c:1180 src/extract.c:965
+#, c-format
+msgid "Reading %s\n"
+msgstr "Leitura de %s\n"
+
+#: src/buffer.c:1184
+msgid "WARNING: No volume header"
+msgstr "ATENO: No h cabealho de volume"
+
+#: src/buffer.c:1191
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s no tem continuidade neste volume"
+
+#: src/buffer.c:1201
+#, c-format
+msgid "%s is the wrong size (%ld != %ld + %ld)"
+msgstr "%s no a dimenso correcta (%ld != %ld + %ld)"
+
+#: src/buffer.c:1212
+msgid "This volume is out of sequence"
+msgstr "Este volume est fora da sequncia"
+
+#: src/buffer.c:1240
+#, fuzzy, c-format
+msgid "Record size = %d blocks"
+msgstr "Tamanho de bloco (blocksize) = blocos de %d"
+
+#: src/buffer.c:1261
+#, c-format
+msgid "Archive %s EOF not on block boundary"
+msgstr ""
+"O fim-de-ficheiro do arquivo %s no se encontra na fronteira de um bloco"
+
+#: src/buffer.c:1269
+#, c-format
+msgid "Only read %d bytes from archive %s"
+msgstr "S se leram %d \"bytes\" do arquivo %s"
+
+#: src/buffer.c:1294 src/buffer.c:1403 src/buffer.c:1517
+#, c-format
+msgid "WARNING: Cannot close %s (%d, %d)"
+msgstr "ATENO: No se consegue fechar %s (%d, %d)"
+
+#. Lseek failed. Try a different method.
+#: src/buffer.c:1350
+msgid "Could not backspace archive file; it may be unreadable without -i"
+msgstr "No se conseguiu recuar o arquivo; pode ser ilegvel sem -i"
+
+#: src/buffer.c:1430
+#, c-format
+msgid "Child died with signal %d%s"
+msgstr "Processo filho morreu com o sinal %d%s"
+
+#: src/buffer.c:1432
+msgid " (core dumped)"
+msgstr " (imagem da memria despejada \"core dumped\")"
+
+#: src/buffer.c:1441
+#, c-format
+msgid "Child returned status %d"
+msgstr "Processo filho terminou com estado %d"
+
+#: src/buffer.c:1546
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Preparar o volume no. %d para %s e premir \"Return\": "
+
+#: src/buffer.c:1552
+msgid "EOF where user reply was expected"
+msgstr ""
+
+#: src/buffer.c:1557 src/buffer.c:1586
+msgid "WARNING: Archive is incomplete"
+msgstr "ATENO: O arquivo est incompleto"
+
+#: src/buffer.c:1570
+#, fuzzy
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nome] Dar um novo nome para o prximo (e seguintes) volume(s)\n"
+" q Cancelar o tar\n"
+" ! Criar uma \"sub-shell\" (interpretador de comandos)\n"
+" ? Escrever esta lista\n"
+
+#. Quit.
+#: src/buffer.c:1581
+msgid "No new volume; exiting.\n"
+msgstr "No h novo volume; termina-se. \n"
+
+#: src/buffer.c:1616
+msgid "Cannot fork!"
+msgstr "No se consegue criar processo! ( \"fork\" )"
+
+#: src/buffer.c:1626
+#, c-format
+msgid "Cannot exec a shell %s"
+msgstr "No se consegue executar uma \"shell\" %s"
+
+#: src/create.c:188
+msgid "Removing drive spec from names in the archive"
+msgstr "Retira-se a especificao do \"drive\" aos nomes no arquivo"
+
+#: src/create.c:199 src/extract.c:415
+#, fuzzy
+msgid "Removing leading `/' from absolute path names in the archive"
+msgstr "Retira-se / dos caminhos dos ficheiros (path names), no arquivo"
+
+#. We blew it, maybe.
+#: src/create.c:532
+#, c-format
+msgid "Wrote %ld of %ld bytes to file %s"
+msgstr "Escreveram-se %ld \"bytes\" de um total de %ld, no ficheiro %s"
+
+#: src/create.c:560 src/create.c:584 src/create.c:1083
+#, c-format
+msgid "Read error at byte %ld, reading %d bytes, in file %s"
+msgstr ""
+"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do "
+"ficheiro %s"
+
+#: src/create.c:596 src/create.c:1096
+#, c-format
+msgid "File %s shrunk by %d bytes, padding with zeros"
+msgstr "O ficheiro %s diminuiu em %d \"bytes\", ser completado com zeros"
+
+#: src/create.c:612
+#, c-format
+msgid "Amount actually written is (I hope) %d.\n"
+msgstr "A quantidade realmente escrita %d (esperemos!).\n"
+
+#: src/create.c:712 src/create.c:973 src/create.c:1149
+#, c-format
+msgid "Cannot add file %s"
+msgstr "No possvel acrescentar o ficheiro %s"
+
+#: src/create.c:742
+#, c-format
+msgid "%s: is unchanged; not dumped"
+msgstr "%s: no foi modificado; no ser arquivado"
+
+#: src/create.c:752
+#, c-format
+msgid "%s is the archive; not dumped"
+msgstr "%s o arquivo; no ser arquivado"
+
+#: src/create.c:797
+#, fuzzy
+msgid "Removing leading `/' from absolute links"
+msgstr "Retira-se \"/\" das ligaes (\"links\") absolutas "
+
+#: src/create.c:827 src/create.c:1113 src/create.c:1173 src/create.c:1427
+#, c-format
+msgid "Cannot remove %s"
+msgstr "No se consegue apagar %s"
+
+#: src/create.c:1197
+#, fuzzy, c-format
+msgid "Cannot add directory %s"
+msgstr "No se consegue abrir a directoria %s"
+
+#: src/create.c:1322
+#, c-format
+msgid "%s: On a different filesystem; not dumped"
+msgstr "%s: Est num outro sistema de ficheiros; no ser arquivado"
+
+#: src/create.c:1333 src/incremen.c:186
+#, c-format
+msgid "Cannot open directory %s"
+msgstr "No se consegue abrir a directoria %s"
+
+#: src/create.c:1357
+#, c-format
+msgid "File name %s%s too long"
+msgstr "Nome de ficheiro %s%s longo demais"
+
+#: src/create.c:1432
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipo de ficheiro desconhecido; ficheiro ignorado"
+
+#: src/compare.c:50
+#, c-format
+msgid "Could not allocate memory for diff buffer of %d bytes"
+msgstr ""
+"No se conseguiu reservar memria para um \"buffer\" de comparao, de %d "
+"\"bytes\""
+
+#: src/compare.c:96 src/compare.c:317 src/compare.c:347
+#, c-format
+msgid "Cannot read %s"
+msgstr "No se consegue ler %s"
+
+#: src/compare.c:101 src/compare.c:324 src/compare.c:354
+#, fuzzy, c-format
+msgid "Could only read %d of %ld bytes"
+msgstr "%s: S se pde ler %d de um total de %ld \"bytes\"\n"
+
+#: src/compare.c:110 src/compare.c:130 src/compare.c:392
+#, fuzzy
+msgid "Data differs"
+msgstr "%s: Os dados so diferentes\n"
+
+#: src/compare.c:159 src/extract.c:329 src/extract.c:630 src/list.c:380
+#: src/list.c:872
+msgid "Unexpected EOF on archive file"
+msgstr "Fim de ficheiro inesperado no ficheiro de arquivo"
+
+#: src/compare.c:411
+#, fuzzy
+msgid "File does not exist"
+msgstr "%s: No existe\n"
+
+#: src/compare.c:414 src/compare.c:574
+#, c-format
+msgid "Cannot stat file %s"
+msgstr "No se consegue executar \"stat\" para o ficheiro %s"
+
+#: src/compare.c:448
+msgid "Verify "
+msgstr "Verificao"
+
+#: src/compare.c:455
+#, c-format
+msgid "Unknown file type '%c' for %s, diffed as normal file"
+msgstr ""
+"Tipo de ficheiro \"%c\" desconhecido para %s; comparado como um ficheiro "
+"normal"
+
+#: src/compare.c:480 src/compare.c:737
+#, fuzzy
+msgid "Not a regular file"
+msgstr "%s: No um ficheiro normal\n"
+
+#: src/compare.c:487 src/compare.c:718
+msgid "Mode differs"
+msgstr ""
+
+#: src/compare.c:494
+#, fuzzy
+msgid "Uid differs"
+msgstr "%s: %s diferente\n"
+
+#: src/compare.c:496
+#, fuzzy
+msgid "Gid differs"
+msgstr "%s: %s diferente\n"
+
+#: src/compare.c:500
+#, fuzzy
+msgid "Mod time differs"
+msgstr "Tempo de modificao"
+
+#: src/compare.c:504 src/compare.c:746
+#, fuzzy
+msgid "Size differs"
+msgstr "%s: Ligao (\"link\") simblica diferente\n"
+
+#: src/compare.c:551 src/compare.c:784
+#, c-format
+msgid "Error while closing %s"
+msgstr "Erro durante o fecho de %s"
+
+#: src/compare.c:571
+#, fuzzy
+msgid "Does not exist"
+msgstr "%s: No existe\n"
+
+#: src/compare.c:585
+#, fuzzy, c-format
+msgid "Not linked to %s"
+msgstr "%s: No est ligado a %s\n"
+
+#: src/compare.c:605
+#, fuzzy
+msgid "No such file or directory"
+msgstr "%s: Ficheiro, ou directoria, no existe\n"
+
+#: src/compare.c:608
+#, c-format
+msgid "Cannot read link %s"
+msgstr "No se consegue ler a ligao (\"link\") %s"
+
+#: src/compare.c:616
+#, fuzzy
+msgid "Symlink differs"
+msgstr "%s: Ligao (\"link\") simblica diferente\n"
+
+#: src/compare.c:655
+#, fuzzy
+msgid "Device numbers changed"
+msgstr "%s: Os nmeros do perifrico mudaram\n"
+
+#: src/compare.c:668
+#, fuzzy
+msgid "Mode or device-type changed"
+msgstr "%s: O modo ou o tipo de perifrico mudou\n"
+
+#: src/compare.c:713
+#, fuzzy
+msgid "No longer a directory"
+msgstr "%s: J no uma directoria\n"
+
+#: src/compare.c:755 src/names.c:225 src/update.c:55
+#, c-format
+msgid "Cannot open file %s"
+msgstr "No se consegue abrir o ficheiro %s"
+
+#: src/compare.c:764
+#, c-format
+msgid "Cannot seek to %ld in file %s"
+msgstr "No se consegue mudar (\"seek\") para a posio %ld do ficheiro %s"
+
+#: src/compare.c:837
+msgid "Could not rewind archive file for verify"
+msgstr "No se conseguiu rebobinar o arquivo para verificao"
+
+#: src/compare.c:864
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "ERRO DE VERIFICAO: Encontraram-se %d cabealhos invlidos"
+
+#: src/delete.c:81
+msgid "Could not re-position archive file"
+msgstr "No se conseguiu reposicionar o ficheiro arquivo"
+
+#: src/delete.c:177 src/update.c:156
+msgid "This does not look like a tar archive"
+msgstr "Isto no se parece a um arquivo \"tar\""
+
+#: src/delete.c:182 src/update.c:161
+msgid "Skipping to next header"
+msgstr "Salta para prximo cabealho"
+
+#: src/delete.c:260
+msgid "Deleting non-header from archive"
+msgstr "Apaga-se do arquivo um no-cabealho"
+
+#: src/extract.c:107
+#, c-format
+msgid "%s: Cannot change mode to %0.4o"
+msgstr "%s: No se pode mudar para o modo para %0.4o"
+
+#: src/extract.c:149
+#, c-format
+msgid "%s: Could not change access and modification times"
+msgstr "%s: No se conseguiu mudar os tempos de acesso e modificao"
+
+#: src/extract.c:176
+#, fuzzy, c-format
+msgid "%s: Cannot lchown to uid %d gid %d"
+msgstr "%s: No se pode fazer \"chown\" para \"uid\" %d \"gid\" %d"
+
+#: src/extract.c:182 src/extract.c:191
+#, c-format
+msgid "%s: Cannot chown to uid %d gid %d"
+msgstr "%s: No se pode fazer \"chown\" para \"uid\" %d \"gid\" %d"
+
+#: src/extract.c:245
+#, c-format
+msgid "%s: Cannot change owner to uid %d, gid %d"
+msgstr "%s: No se pode mudar o dono (owner) para \"uid\" %d, \"gid\" %d"
+
+#: src/extract.c:338 src/extract.c:348 src/extract.c:665
+#, c-format
+msgid "%s: Could not write to file"
+msgstr "%s: No se conseguiu escrever para o ficheiro"
+
+#: src/extract.c:351 src/extract.c:668
+#, c-format
+msgid "%s: Could only write %d of %d bytes"
+msgstr "%s: Apenas se conseguiu escrever %d de um total de %d bytes"
+
+#: src/extract.c:425
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr ""
+
+#: src/extract.c:568
+msgid "Extracting contiguous files as regular files"
+msgstr "Esto-se a extrair ficheiros contguos como sendo ficheiros normais"
+
+#: src/extract.c:580
+#, c-format
+msgid "%s: Could not create file"
+msgstr "%s: No foi possvel criar o ficheiro"
+
+#: src/extract.c:644
+#, c-format
+msgid "%d at %d\n"
+msgstr "%d em %d\n"
+
+#: src/extract.c:707
+#, c-format
+msgid "%s: Error while closing"
+msgstr "%s: Erro ao fechar"
+
+#: src/extract.c:739
+#, c-format
+msgid "%s: Could not create symlink to `%s'"
+msgstr "%s: No se conseguiu criar uma ligao simblica (link) para `%s'"
+
+#: src/extract.c:753
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr ""
+"Est-se a tentar extrair ligaes simblicas (sym. links) como ligaes "
+"fsicas (hard links)"
+
+#: src/extract.c:789
+#, c-format
+msgid "%s: Could not link to `%s'"
+msgstr "%s: No se pde fazer ligao (link) para `%s'"
+
+#: src/extract.c:822
+#, c-format
+msgid "%s: Could not make node"
+msgstr "%s: No se pde criar um nodo"
+
+#: src/extract.c:848
+#, c-format
+msgid "%s: Could not make fifo"
+msgstr "%s: No se pde criar um \"fifo\""
+
+#: src/extract.c:924
+#, c-format
+msgid "%s: Could not create directory"
+msgstr "%s: No se pde criar uma directoria"
+
+#: src/extract.c:935
+#, c-format
+msgid "Added write and execute permission to directory %s"
+msgstr "Acrescentaram-se permisses de escrita e de leitura directoria %s"
+
+#: src/extract.c:973
+#, c-format
+msgid "Cannot extract `%s' -- file is continued from another volume"
+msgstr ""
+"No se pode extrar `%s' -- a continuao de um ficheiro de outro volume"
+
+#: src/extract.c:983
+msgid "Visible long name error"
+msgstr "Erro evidente num nome longo"
+
+#: src/extract.c:991
+#, c-format
+msgid "Unknown file type '%c' for %s, extracted as normal file"
+msgstr ""
+"Tipo \"%c\" do ficheiro \"%s\" desconhecido; extrai-se como um ficheiro "
+"normal"
+
+#: src/incremen.c:231 src/incremen.c:598 src/update.c:131
+#, c-format
+msgid "Cannot stat %s"
+msgstr "No se consegue executar \"stat\" para %s"
+
+#: src/incremen.c:268
+#, c-format
+msgid "Directory %s has been renamed"
+msgstr "Mudou-se o nome do directoria %s"
+
+#: src/incremen.c:279
+#, c-format
+msgid "Directory %s is new"
+msgstr "O directoria %s novo"
+
+#: src/incremen.c:437 src/names.c:461
+msgid "Could not get current directory"
+msgstr "No se conseguiu determinar a directoria corrente"
+
+#: src/incremen.c:442 src/names.c:466
+#, c-format
+msgid "Could not get current directory: %s"
+msgstr "No se conseguiu determinar a directoria corrente: %s"
+
+#: src/incremen.c:446
+#, fuzzy, c-format
+msgid "File name %s/%s too long"
+msgstr "Nome de ficheiro %s%s longo demais"
+
+#: src/incremen.c:586
+#, c-format
+msgid "Cannot chdir to %s"
+msgstr "No se pode mudar para a directoria %s"
+
+#: src/incremen.c:675
+msgid "Unexpected EOF in archive"
+msgstr "Fim de ficheiro inesperado no arquivo"
+
+#: src/incremen.c:704
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Apaga-se %s\n"
+
+#: src/incremen.c:706
+#, c-format
+msgid "Error while deleting %s"
+msgstr "Erro quando se apagava %s"
+
+#: src/list.c:84
+#, c-format
+msgid "Omitting %s"
+msgstr "Omite-se %s"
+
+#: src/list.c:123
+#, c-format
+msgid "block %10ld: ** Block of NULs **\n"
+msgstr "bloco %10ld: ** Bloco de NULs **\n"
+
+#: src/list.c:134
+#, c-format
+msgid "block %10ld: ** End of File **\n"
+msgstr "bloco %10ld: ** Fim-de-ficheiro **\n"
+
+#: src/list.c:145
+msgid "Hmm, this doesn't look like a tar archive"
+msgstr "Pois ..., isto no parece ser um arquivo \"tar\""
+
+#: src/list.c:150
+msgid "Skipping to next file header"
+msgstr "Salta para o prximo cabealho de ficheiro"
+
+#: src/list.c:204
+msgid "EOF in archive file"
+msgstr "Fim-de-ficheiro no arquivo"
+
+#: src/list.c:216
+#, c-format
+msgid "Only wrote %ld of %ld bytes to file %s"
+msgstr "S se escreveram %ld \"bytes\" de um total de %ld no ficheiro %s"
+
+#: src/list.c:617 src/list.c:839
+#, c-format
+msgid "block %10ld: "
+msgstr "bloco %10ld: "
+
+#: src/list.c:654
+msgid "Visible longname error"
+msgstr "Erro evidente num nome longo"
+
+#: src/list.c:780 src/list.c:784
+#, c-format
+msgid " link to %s\n"
+msgstr " ligao para %s\n"
+
+#: src/list.c:788
+#, c-format
+msgid " unknown file type `%c'\n"
+msgstr " tipo de ficheiro desconhecido \"%c\"\n"
+
+#: src/list.c:805
+msgid "--Volume Header--\n"
+msgstr "--Cabealho de volume--\n"
+
+#: src/list.c:809
+#, c-format
+msgid "--Continued at byte %ld--\n"
+msgstr "--Continua no \"byte\" %ld--\n"
+
+#: src/list.c:814
+msgid "--Mangled file names--\n"
+msgstr "--Nomes de ficheiros truncados--\n"
+
+#: src/list.c:844 src/list.c:849
+msgid "Creating directory:"
+msgstr "Criao de directoria::"
+
+#: src/mangle.c:61
+msgid "Unexpected EOF in mangled names"
+msgstr "Fim de ficheiro inesperado nos nomes truncados"
+
+#: src/mangle.c:97
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "No se consegue mudar o nome de %s para %s"
+
+#: src/mangle.c:99
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Mudou-se o nome %s para %s"
+
+#: src/mangle.c:116
+#, c-format
+msgid "Cannot symlink %s to %s"
+msgstr "No se pode criar uma ligao (\"link\") simblica de %s para %s"
+
+#: src/mangle.c:119
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s ligado simbolicamente a %s (\"link\")"
+
+#: src/mangle.c:123
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Comando desconhecido \"%s\" para decifrar os nomes truncados"
+
+#: src/names.c:332 src/names.c:530 src/names.c:556 src/names.c:582
+#: src/names.c:735
+#, c-format
+msgid "Cannot change to directory %s"
+msgstr "No se pode mudar para a directoria %s"
+
+#: src/names.c:351 src/names.c:407 src/names.c:452
+msgid "Missing file name after -C"
+msgstr "Falta um nome de ficheiro aps \"-C\""
+
+#: src/names.c:620 src/names.c:639
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: No foi encontrado no arquivo"
+
+#: src/rmt.c:89
+msgid "Unknown system error"
+msgstr "Erro desconhecido, do sistema"
+
+#: src/rmt.c:157
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: No se consegue reservar espao temporrio (\"buffers\")\n"
+
+#: src/rmt.c:159
+msgid "Cannot allocate buffer space"
+msgstr "No se consegue reservar espao temporrio (\"buffer\")"
+
+#: src/rmt.c:308
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Fim de ficheiro prematuro\n"
+
+#: src/rmt.c:310
+msgid "Premature end of file"
+msgstr "Fim-de-ficheiro prematuro"
+
+#: src/rmt.c:382
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Comando \"%c\" no faz sentido\n"
+
+#: src/rmt.c:384
+msgid "Garbage command"
+msgstr "Comando desconhecido"
+
+#: src/rtapelib.c:247
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Servio indisponvel"
+
+#: src/rtapelib.c:252
+msgid "stdin"
+msgstr ""
+
+#: src/rtapelib.c:255
+msgid "stdout"
+msgstr ""
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:415
+msgid "Cannot execute remote shell"
+msgstr "No se consegue executar uma \"shell\" remota"
+
+#: src/tar.c:97
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Ambas as opes `-%s' e `-%s' precisam do \"standard input\""
+
+#: src/tar.c:123
+msgid "Cannot read confirmation from user"
+msgstr "No se consegue obter confirmao, do utilizador"
+
+#: src/tar.c:290 tests/genfile.c:60
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Para mais informao, tente \"%s --help\".\n"
+
+#: src/tar.c:294
+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 ""
+
+#: src/tar.c:298
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+msgstr "Utilizao: %s [OPO]... [FICHEIRO]...\n"
+
+#: src/tar.c:299
+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 ""
+
+#: src/tar.c:304
+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"
+"Principal modo de funcionamento:\n"
+" -t, --list inventrio do arquivo\n"
+" -x, --extract, --get extrair ficheiros do arquivo\n"
+" -c, --create criar um novo arquivo\n"
+" -d, --diff, --compare comparar o arquivo com os actuais ficheiros \n"
+" -r, --append acrescentar os ficheiros no fim do arquivo\n"
+" -u, --update s acrescentar os ficheiros mais novos do que as "
+"verses presentes no arquivo\n"
+" -A, --catenate juntar outros arquivos \"tar\" ao arquivo\n"
+" --concatenate o mesmo que \"-A\"\n"
+" --delete apagar no arquivo (excepto para fitas "
+"magnticas!)\n"
+
+#: src/tar.c:317
+#, fuzzy
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't overwrite existing files when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting "
+"directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Modificadores do modo de funcionamento:\n"
+" -W, --verify tentar verificar o arquivo depois de o "
+"escrever\n"
+" --remove-files apagar os ficheiros depois de serem guardados "
+"no arquivo\n"
+" -k, --keep-old-files na extraco, no destruir nenhum ficheiro\n"
+" -U, --unlink-first remove cada ficheiro antes de extrair para cima "
+"dele\n"
+"\t\t\t (aparecendo duas vezes, at apaga directorias completas\n"
+" -S, --sparse tratar eficientemente ficheiros dispersos \n"
+" (os que tm buracos) \n"
+" -O, --to-stdout extrair os ficheiros para o \"stdout\" \n"
+" -G, --incremental tratar um arquivo no velho formato incremental "
+"GNU\n"
+" -g, --listed-incremental tratar arquivo no novo formato incremental GNU\n"
+" --ignore-failed-read ignorar os ficheiros que no se consegue ler.\n"
+"\n"
+
+#: src/tar.c:331
+#, fuzzy
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added "
+"files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract all protection information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Tratamento dos atributos dos ficheiros:\n"
+" --atime-preserve no alterar as datas de acesso dos ficheiros\n"
+" -m, --modification-time no extrair a data de modificao dos "
+"ficheiros\n"
+" --same-owner extrair os ficheiros tentando manter o mesmo "
+"\n"
+" dono (owner)\n"
+" --numeric-owner usar sempre nmeros para os nomes de \n"
+" utilizador/grupo \n"
+" -p, --same-permissions na extraco, manter as proteces do "
+"ficheiros\n"
+" --preserve-permissions o mesmo que -p\n"
+" -s, --same-order ordernar os nomes a extrair segundo a sua "
+"ordem\n"
+" no arquivo\n"
+" --preserve-order o mesmo que -s\n"
+" --preserve o mesmo que -p conjugado com -s\n"
+
+#: src/tar.c:347
+#, fuzzy
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies "
+"-M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Escolha do perifrico e mudanas de fita magntica:\n"
+" -f, --file=ARQ tratar o arquivo, ou perifrico ARQ\n"
+" --force-local o arquivo local, mesmo que tenha \":\"\n"
+" --rsh-command=COM usar o comando remoto COM, em vez de "
+"\"rsh\"\n"
+" -[0-7][lmh] escolher o perifrico e a densidade\n"
+" -M, --multi-volume tratar arquivos multi-volume\n"
+" -L, --tape-length=NUM tratar NUM x 1024 \"bytes\" por fita "
+"magntica\n"
+" -F, --info-script=FICH executar FICH nas mudanas de fita "
+"magntica\n"
+" (fora a escolha de \"-M\")\n"
+" --new-volume-script=FICH o mesmo que \"-F FICH\"\n"
+
+#: src/tar.c:360
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means "
+"EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Caractersticas dos blocos no perifrico (device):\n"
+" -b, --blocking-factor=BLOCOS BLOCOS x 512 \"bytes\" por registo\n"
+" --record-size=DIM DIM bytes por registo, mltiplo de 512\n"
+" -i, --ignore-zeros ignorar os blocos constitudos por zeros\n"
+" (implicam fim-de-ficheiro)\n"
+" -B, --read-full-records dividir a leitura em blocos \n"
+" (para os \"pipes\" 4.2BSD)\n"
+
+#: src/tar.c:368
+#, fuzzy
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing "
+"PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX conformant archive\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Seleco do formato do arquivo:\n"
+" -V, --label=NOME cria um aruivo com volume de nome NOME\n"
+" REGEXP ao extrair/listar, o nome uma "
+"expresso\n"
+" regular\n"
+" -o, --old-archive, --portability escreve um arquivo no formato V7\n"
+" --posix escreve um arquivo conforme com POSIX\n"
+" -z, --gzip, --ungzip filtra o arquivo atravs de \"gzip\"\n"
+" -Z, --compress, --uncompress filtra o arquivo atravs de "
+"\"compress\"\n"
+" --use-compress-program=PROG filtra o arquivo atravs de PROG \n"
+"\t\t\t\t (este tem que aceitar -d)\n"
+
+#: src/tar.c:379
+#, fuzzy
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file "
+"NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a globbing PATTERN\n"
+" -X, --exclude-from=FILE exclude globbing patterns listed in FILE\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in "
+"directories\n"
+" -l, --one-file-system stay in local file system when creating "
+"archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Seleco local de ficheiros:\n"
+" -C, --directory DIR mudar para a directoria DIR\n"
+" -T, --files-from=NOME obter do ficheiro NOME a lista de ficheiros a "
+"\n"
+" criar ou extrair\n"
+" --null faz com que \"-T\" leia nomes terminados por "
+"NULO,\n"
+" tambm inibe \"-C\"\n"
+" --exclude=PADRO excluir os ficheiros descritos pelo PADRO\n"
+" -X, --exclude-from=FICH excluir ficheiros, segundo os padres guardados "
+"em\n"
+"\t\t\t FICH\n"
+" -P, --absolute-names preservar os \"\\\" iniciais nos nomes dos "
+"ficheiros\n"
+" -h, --dereference usar os prprios ficheiros, em lugar das "
+"ligaes\n"
+" simblicas (symlinks) que os referenciam\n"
+" --no-recurse no descer pela rvore de directorias\n"
+" -l, --one-file-system no sair do sistema local de ficheiros, ao "
+"criar o\n"
+" arquivo\n"
+" -K, --starting-file=NOME comear pelo ficheiro NOME, no arquivo\n"
+
+#: src/tar.c:394
+#, fuzzy
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATA s guardar ficheiros mais recentes do que DATA\n"
+" --newer-mtime s comparar data e hora quando os dados "
+"mudarem\n"
+" --after-date=DATA o mesmo que \"-N\"\n"
+"),"
+
+#: src/tar.c:400
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version "
+"control\n"
+" --suffix=SUFFIX backup before removel, override usual suffix\n"
+msgstr ""
+
+#: src/tar.c:404
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Prestao de informaes:\n"
+" --help mostrar esta mensagem de ajuda e terminar\n"
+" --version indicar a verso do programa \"tar\" e terminar\n"
+" -v, --verbose escrever a lista dos ficheiros tratados\n"
+" --checkpoint indicar os nomes das directorias durante a leitura\n"
+" --totals indicar o nmero de \"bytes\" escritos durante a "
+"criao\n"
+" do arquivo\n"
+" -R, --block-number escrever o nmero de bloco, dentro do arquivo, \n"
+" em cada mensagem\n"
+" -w, --interactive pedir confirmao para todas as aces\n"
+" --confirmation o mesmo que \"-w\"\n"
+"\n"
+
+#: src/tar.c:416
+msgid ""
+"\n"
+"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 "
+"are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+
+#: src/tar.c:425
+#, fuzzy, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; and FILE may be a file\n"
+"or a device. *This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"O programa tar GNU anterior verso 1.12 no consegue ler arquivos "
+"\"--posix\".\n"
+"Se a varivel POSIXLY_CORRECT estiver definida no ambiente, as extenses "
+"GNU\n"
+"so inibidas com \"--posix\". O suporte para POSIX est apenas parcialmente "
+"\n"
+"implementado, pelo que no se fiem muito nele, por agora.\n"
+"ARQUIVO pode ser FICHEIRO, HOST:FICHEIRO ou UTILIZADOR@HOST:FICHEIRO; e \n"
+"FICHEIRO pode ser um ficheiro ou um perifrico.\n"
+"*Este* tar assume, por defeito, \"-f%s -b %d\".\n"
+
+#: src/tar.c:433
+msgid ""
+"\n"
+"Report bugs to <tar-bugs@gnu.ai.mit.edu>.\n"
+msgstr ""
+
+#: src/tar.c:459
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "No se pode especificar mais do que uma das opes \"-Acdtrux\""
+
+#: src/tar.c:468
+msgid "Conflicting compression options"
+msgstr "H conflitos entre as opes de compresso"
+
+#: src/tar.c:532
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "A antiga opo `%c' exige um argumento."
+
+#: src/tar.c:574
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Opo obsoleta, agora \"-blocking-factor\" implica-a"
+
+#: src/tar.c:578
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--blocking-factor\""
+
+#: src/tar.c:588
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--read-full-records\""
+
+#: src/tar.c:686
+msgid "Obsolete option name replaced by --touch"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--touch\""
+
+#: src/tar.c:707
+msgid "More than one threshold date"
+msgstr ""
+
+#: src/tar.c:711
+#, c-format
+msgid "Invalid date format `%s'"
+msgstr "Formato de data invlido \"%s\""
+
+#: src/tar.c:720 src/tar.c:876 src/tar.c:881
+msgid "Conflicting archive format options"
+msgstr "H conflitos entre as opes de formato do arquivo"
+
+#: src/tar.c:732
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--absolute-names\""
+
+#: src/tar.c:744
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--block-number\""
+
+#: src/tar.c:819
+#, fuzzy
+msgid "Obsolete option name replaced by --backup"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--touch\""
+
+#: src/tar.c:840
+msgid "Invalid group given on option"
+msgstr ""
+
+#: src/tar.c:850
+msgid "Invalid mode given on option"
+msgstr ""
+
+#: src/tar.c:852
+msgid "Memory exhausted"
+msgstr ""
+
+#: src/tar.c:866
+msgid "Invalid owner given on option"
+msgstr ""
+
+#: src/tar.c:893
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "O tamanho dos registos tem que ser mltiplo de %d."
+
+#: src/tar.c:989
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "As opes \"-[0-7][lmh]\" no so suportadas por *este* tar"
+
+#: src/tar.c:999
+msgid ""
+"\n"
+"Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+msgstr ""
+
+#: src/tar.c:1003 tests/genfile.c:161
+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 ""
+
+#: src/tar.c:1007
+msgid ""
+"\n"
+"Written by John Gilmore and Jay Fenlason.\n"
+msgstr ""
+
+#: src/tar.c:1035
+msgid "GNU features wanted on incompatible archive format"
+msgstr ""
+"Esto-se a querer propriedades GNU num arquivo com formato incompatvel"
+
+#: src/tar.c:1052
+msgid "Multiple archive files requires `-M' option"
+msgstr "Para usar vrios arquivos necessria a opo \"-M\""
+
+#: src/tar.c:1066
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Recusa-se, covardemente, a criar um arquivo vazio"
+
+#: src/tar.c:1087
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "As opes \"-Aru\" so imcompatveis com \"-f -\""
+
+#: src/tar.c:1144
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Tem que se especificar uma das opes \"-Acdtrux\""
+
+#: src/tar.c:1191
+#, fuzzy
+msgid "Error exit delayed from previous errors"
+msgstr "Erro s assinalado no fim da execuo"
+
+#: src/update.c:79
+#, c-format
+msgid "Read error at byte %ld reading %d bytes in file %s"
+msgstr ""
+"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do "
+"ficheiro %s"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrunk by %d bytes, (yark!)"
+msgstr "%s: O ficheiro diminui em %d bytes, (desgraa!)"
+
+#: tests/genfile.c:64
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr ""
+
+#: tests/genfile.c:65
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Forma de usar: %s [OPO]...\n"
+
+#: tests/genfile.c:68
+#, fuzzy
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Os argumentos obrigatrios para as opes longas tambm o so para as "
+"curtas.\n"
+"\n"
+" --help mostra esta informao e termina\n"
+" --version identifica a verso e termina\n"
+
+#: tests/genfile.c:134
+#, c-format
+msgid "Ambiguous pattern `%s'"
+msgstr ""
+
+#: tests/genfile.c:138
+#, fuzzy, c-format
+msgid "Unknown pattern `%s'"
+msgstr "Opo \"%c\" desconhecida"
+
+#: tests/genfile.c:157
+msgid ""
+"\n"
+"Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+msgstr ""
+
+#: tests/genfile.c:165
+msgid ""
+"\n"
+"Written by Franois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+
+#~ msgid "Volume mismatch! %s!=%s"
+#~ msgstr "O volume no condiz! %s!=%s"
+
+#~ msgid "EOF? What does that mean?"
+#~ msgstr "Fim-de-ficheiro? Que significa isto?"
+
+#~ msgid "Mode"
+#~ msgstr "Modo"
+
+#~ msgid "Uid"
+#~ msgstr "\"Uid\""
+
+#~ msgid "Gid"
+#~ msgstr "\"Gid\""
+
+#~ msgid "Size"
+#~ msgstr "Tamanho"
+
+#~ msgid "Missing filename after -C"
+#~ msgstr "Falta um nome de ficheiro aps \"-C\""
+
+#~ msgid ""
+#~ "Mandatory or optional arguments to long options are mandatory or optional\n"
+#~ "for short options too.\n"
+#~ msgstr ""
+#~ "Os argumentos obrigatrios ou opcionais para as opes longas tambm\n"
+#~ "so obrigatrios ou opcionais para as correspondentes opes curtas.\n"
+
+#~ msgid "Invalid date format in `-N %s'"
+#~ msgstr "Formato invlido para data em \"-N %s\""
+
+#~ msgid "Bad regular expression: %s"
+#~ msgstr "Expresso regular errada: %s"
+
+#~ msgid "File %s\n"
+#~ msgstr "Ficheiro %s\n"
+
+#~ msgid "Junk files\n"
+#~ msgstr "Ficheiros de lixo\n"
+
+#~ msgid "file %s\n"
+#~ msgstr "ficheiro %s\n"
+
+#~ msgid "Skip %ld\n"
+#~ msgstr "Salta %ld\n"
+
+#~ msgid "Out of first loop\n"
+#~ msgstr "Fora do primeiro ciclo\n"
+
+#~ msgid "Saved %d blocks, need %d more\n"
+#~ msgstr "Guardaram-se %d blocos, ainda so precisos %d\n"
+
+#~ msgid "New record\n"
+#~ msgstr "Novo registo\n"
+
+#~ msgid "Header type %d\n"
+#~ msgstr "Tipo de cabealho %d\n"
+
+#~ msgid "File %s "
+#~ msgstr "Ficheiro %s"
+
+#~ msgid "Flush it\n"
+#~ msgstr "Esvazia-o\n"
+
+#~ msgid "Flushing %d blocks from %s\n"
+#~ msgstr "Esvaziam-se %d blocos de %s\n"
+
+#~ msgid "Block: %d <= %d "
+#~ msgstr "Bloco: %d <= %d "
+
+#~ msgid "Block %d left\n"
+#~ msgstr "Deixou-se o bloco %d \n"
+
+#~ msgid "Final %d\n"
+#~ msgstr "Final %d\n"
+
+#~ msgid "Need %d kept_in %d keep %d\n"
+#~ msgstr "Precisa %d mantem dentro %d mantem %d\n"
+
+#~ msgid "Flush...\n"
+#~ msgstr "Esvaziamento...\n"
+
+#~ msgid "Copying %d\n"
+#~ msgstr "Copia de %d\n"
+
+#~ msgid "Now new %d need %d keep %d keep_in %d block %d/%d\n"
+#~ msgstr ""
+#~ "Novos agora %d precisa %d mantem %d mantem dentro %d bloco %d/%d\n"
+#~ "(N.T. Isto tambm incompreensvel em Ingls)\n"
+
+#~ msgid "Write record\n"
+#~ msgstr "Escreve-se registo\n"
+
+#, fuzzy
+#~ msgid "Fore to %x\n"
+#~ msgstr "Fore to %x\n"
+
+#~ msgid "Write block\n"
+#~ msgstr "Escreve-se o bloco\n"
+
+#~ msgid "Could not make %s"
+#~ msgstr "No se conseguiu fazer %s"
+
+#~ msgid "Only one compression option permitted"
+#~ msgstr "S se permite uma opo de compresso"
+
+#~ msgid "Options [0-7][lmh] not supported by *this* tar"
+#~ msgstr "As opes [0-7][lmh] no funcionam neste \"tar\""
+
+#~ msgid "Cannot allocate %d bytes for restore"
+#~ msgstr "No se consegue reservar %d bytes para a recuperao"
+
+#~ msgid "Saved %d recs, need %d more\n"
+#~ msgstr "Guardaram-se %d registos, ainda so precisos %d\n"
+
+#~ msgid "Could not link %s to %s"
+#~ msgstr "No se conseguiu ligar %s a %s"
+
+#~ msgid "%c: Argument missing"
+#~ msgstr "%c: Falta argumento"
+
+#~ msgid "Cannot dup %s"
+#~ msgstr "No se consegue duplicar %s com \"dup\""
+
+#~ msgid "Could not create directory %s"
+#~ msgstr "No se conseguiu criar a directoria %s"
+
+#~ msgid "Cannot change to directory %d"
+#~ msgstr "No se pode mudar para a directoria %d"
+
+#~ msgid "rec %10ld: "
+#~ msgstr "reg %10ld: "
+
+#~ msgid "Flushing %d recs from %s\n"
+#~ msgstr "Esto-se a esvaziar %d registos de um total de %s\n"
+
+#~ msgid "Multiple archive files requires --multi-volume"
+#~ msgstr "Mltiplos ficheiros de arquivo exigem \"--multi-volume\""
+
+#~ msgid "Cannot change directory to %d"
+#~ msgstr "No se pode mudar de directoria para %d"
+
+#~ msgid "[child] Pipe to stdin"
+#~ msgstr "[filho] \"Pipe\" para o stdin"
+
+#~ msgid "Cannot change owner of %s to uid %d gid %d"
+#~ msgstr "No se pode mudar o dono de %s para \"uid\" %d \"gid\" %d"
+
+#~ msgid "Cannot change mode of file %s to %lo"
+#~ msgstr "No se pode mudar o modo do ficheiro %s para %lo"
+
+#~ msgid "[child] Pipe to stdout"
+#~ msgstr "[filho] \"Pipe\" para o stdout"
+
+#~ msgid "Could not write to file %s"
+#~ msgstr "No se conseguiu escrever no ficheiro %s"
+
+#~ msgid "Could not change access and modification times of %s"
+#~ msgstr "No se conseguiu modificar os tempos de acesso e modificao de %s"
+
+#~ msgid "Blocksize = %d records"
+#~ msgstr "Tamanho do bloco = %d registos"
+
+#~ msgid "%s: %s: Cannot link to %s, copying instead\n"
+#~ msgstr ""
+#~ "%s: %s: No possvel fazer ligao para %s, em vez disso, copia-se\n"
+
+#~ msgid "Cannot close a file #%d"
+#~ msgstr "No se consegue fechar o ficheiro de descritor %d"
+
+#~ msgid "Could not create symlink to %s"
+#~ msgstr "No se conseguiu criar uma ligao (\"link\") simblica para %s"
+
+#~ msgid "Now new %d need %d keep %d keep_in %d rec %d/%d\n"
+#~ msgstr ""
+#~ "Now new %d need %d keep %d keep_in %d rec %d/%d\n"
+#~ " (FIXME)"
+
+#~ msgid "Too many args with -T option"
+#~ msgstr "Argumentos demais para a opo \"-T\""
+
+#~ msgid "New block\n"
+#~ msgstr "Novo bloco\n"
+
+#~ msgid "Invalid value for blocksize"
+#~ msgstr "Valor invlido para o tamanho do bloco"
+
+#~ msgid "Cannot chown file %s to uid %d gid %d"
+#~ msgstr "No se pode mudar o dono de %s para \"uid\" %d \"gid\" %d"
+
+#~ msgid "Cannot open a pipe"
+#~ msgstr "No se consegue abrir um \"pipe\""
+
+#~ msgid "Could only write %d of %d bytes to file %s"
+#~ msgstr ""
+#~ "S se conseguiu escrever %d \"bytes\" de um total de %d, no ficheiro %s"
+
+#~ msgid "Could not create file %s"
+#~ msgstr "No se conseguiu criar o ficheiro %s"
+
+#~ msgid "Cannot keep old files on this system"
+#~ msgstr "No se consegue manter os ficheiros antigos neste sistema"
+
+#~ msgid ""
+#~ "Skip %ld\n"
+#~ " ##################"
+#~ msgstr "Salta %ld\n"
diff --git a/po/.reference/pt.s1 b/po/.reference/pt.s1
new file mode 100644
index 00000000..86920406
--- /dev/null
+++ b/po/.reference/pt.s1
@@ -0,0 +1 @@
+4f4dcfccf717bb590c4ed474e0fa596a64f5733f -
diff --git a/po/.reference/pt_BR.po b/po/.reference/pt_BR.po
new file mode 100644
index 00000000..3eb18c94
--- /dev/null
+++ b/po/.reference/pt_BR.po
@@ -0,0 +1,1375 @@
+# tar: translation to Brazilian Portuguese (pt_BR)
+# Copyright (C) 1995, 2002 Free Software Foundation, Inc.
+# Alexandre Folle de Menezes <afmenez@terra.com.br>, 2002.
+# based on the previous translation to pt_BR (1.13.17) by
+# Joo Luiz Barbosa Silva <jl@conectiva.com.br>, 1997.
+# based on the translation to Portuguese (pt) by
+# Antnio Jos Coutinho <ajc@di.uminho.pt>, 1996.
+# Marcus Moreira de Souza <marcusms@frb.br>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.13.25\n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumento %s invlido para %s"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argumento %s ambguo para %s"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Os argumentos vlidos so:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Erro de sistema desconhecido"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: a opo `%s' ambgua\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: a opo `--%s' no admite um argumento\n"
+
+#: lib/getopt.c:723
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: a opo `%c%s' no admite um argumento\n"
+
+#: lib/getopt.c:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: a opo `%s' exige um argumento\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opo `--%s' no reconhecida\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opo `%c%s' no reconhecida\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opo ilegal -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opo invlida -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: a opo exige um argumento -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: a opo `-W %s' ambgua\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: a opo `-W %s' no aceita um argumento\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "tamanho de bloco"
+
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "'"
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "memria esgotada"
+
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Total de bytes escritos: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Impossvel fechar"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Impossvel duplicar (\"dup\")"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Impossvel usar arquivos-tar compactados ou remotos"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (filho)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (neto)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Valor invlido para \"record_size\""
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Nome de arquivo-tar no informado"
+
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Impossvel verificar arquivos-tar multi-volume"
+
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Impossvel alocar memria para um fator de bloco %d"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Impossvel usar arquivos-tar compactados multi-volume"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Impossvel verificar arquivos-tar compactados"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Impossvel atualizar arquivos-tar compactados"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Impossvel verificar arquivos-tar de entrada/sada padro (stdin/stdout)"
+
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "O arquivo-tar no rotulado para casar com %s"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "O volume %s no casa com %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Ponto de verificao de escrita %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "No princpio da fita, encerrando agora"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Muitos erros, encerrando"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Ponto de verificao de leitura %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "Lendo %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "AVISO: No h cabealho de volume"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s no continua neste volume"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s o tamanho errado (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Este volume est fora de sequncia"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Bloco desalinhado (%lu bytes) no arquivo-tar"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Tamanho de registro = %lu blocos"
+
+#: src/buffer.c:1308
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Impossvel recuar no arquivo-tar; pode estar ilegvel sem -i"
+
+#: src/buffer.c:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "O processo filho morreu com o sinal %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "O processo filho retornou estado %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: contm um nmero de volume invlido"
+
+#: src/buffer.c:1440
+msgid "Volume number overflow"
+msgstr "Sobrecarga de nmero de volumes"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "comando `%s' falhou"
+
+#: src/buffer.c:1468
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Prepare o volume #%d para %s e tecle Enter: "
+
+#: src/buffer.c:1474
+msgid "EOF where user reply was expected"
+msgstr "Fim-de-arquivo onde era esperado resposta do usurio"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "AVISO: O arquivo-tar est incompleto"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nome] Dar um novo nome para o prximo volume (e os subseqentes)\n"
+" q Abortar tar\n"
+" ! Criar um \"sub-shell\"\n"
+" ? Mostra esta lista\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Nenhum volume novo; encerrando.\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "S foi possvel ler %lu de %lu bytes"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "O contedo diferente"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339
+#: src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718
+#: src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367
+#: src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "Final-de-arquivo inesperado no arquivo-tar"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Verificar "
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Tipo de arquivo \"%c\" desconhecido, comparado como um arquivo normal"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "O tipo de arquivo diferente"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "Os modos so diferentes"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Os uid so diferentes"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "os gid so diferentes"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "Os horrios de modificao so diferentes"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "Os tamanhos so diferentes"
+
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "No est \"linkado\" a %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "O (\"Link\") simblico diferente"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "O nmero de dispositivo diferente"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "ERRO DE VERIFICAO: detectados %d cabealhos invlidos"
+
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Gerando cabealhos octais negativos"
+
+#: src/create.c:200
+#, 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:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "valor %s fora da faixa %s: %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Os nomes dos membros contm `..'"
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Removendo `%.*s' inicial dos nomes dos membros"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: arquivo sem alteraes; no ser arquivado"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: arquivo o arquivo-tar; no ser arquivado"
+
+#: src/create.c:1098
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: arquivo est em outro sistema de arquivos; no ser arquivado"
+
+#: src/create.c:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: arquivo removido antes de ser lido"
+
+#: src/create.c:1399
+#, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: o arquivo diminuiu %s bytes; completando com zeros"
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: arquivo alterado enquanto estava sendo lido"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: \"socket\" ignorado"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: porta ignorada"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipo de arquivo desconhecido; arquivo ignorado"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Este no parece ser um arquivo-tar"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Pulando para o prximo cabealho"
+
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Removendo um no-cabealho do arquivo-tar"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: o carimbo de horrio %s est %lu s no futuro"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inconsistncia inesperada ao criar diretrio"
+
+#: src/extract.c:578
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Diretrio renomeado antes de se poder extrair seu estado"
+
+#: src/extract.c:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: O nome do membro contm `..'"
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Impossvel fazer backup deste arquivo"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Extraindo arquivos contguos como sendo arquivos normais"
+
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Tentativa de extrair \"links\" simblicos como \"links\" fsicos"
+
+#: src/extract.c:1207
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Impossvel extrair -- arquivo a continuao de outro volume"
+
+#: src/extract.c:1216
+msgid "Visible long name error"
+msgstr "Erro evidente de nome longo"
+
+#: src/extract.c:1224
+#, 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:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "Erro no recupervel: saindo agora"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Diretrio foi renomeado"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: O diretrio novo"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Carimbo de horrio invlido"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "Carimbo de horrio fora da faixa"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Nmero de dispositivo invlido"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "Nmero do dispositivo fora de faixa"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Nmero de inode invlido"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "Nmero do inode fora de faixa"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Removendo %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Impossvel remover"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Omitindo"
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloco %s: ** Bloco de NULs **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloco %s: ** Fim-de-arquivo **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Espao em branco no cabealho onde valor numrico `%s' era esperado"
+
+#: src/list.c:606
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "O valor octal do arquivo-tar %.*s est fora de faixa %s; assumindo complemento de dois"
+
+#: src/list.c:616
+#, 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:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "o arquivo-tar contm cabealhos base-64 obsoletos"
+
+#: src/list.c:645
+#, 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:676
+#, 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"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "O arquivo-tar contm %.*s onde valor numrico %s era esperado"
+
+#: src/list.c:724
+#, 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:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "bloco %s: "
+
+#: src/list.c:946
+msgid "Visible longname error"
+msgstr "Erro de nome longo evidente"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr " link para %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tipo de arquivo \"%s\" desconhecido\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Cabealho de volume--\n"
+
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Continua no byte %s--\n"
+
+#: src/list.c:1112
+msgid "--Mangled file names--\n"
+msgstr "--Nomes de arquivos truncados--\n"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Criando de diretrio:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Fim de arquivo inesperado nos nomes cifrados"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Impossvel renomear para %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Renomeado %s para %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Impossvel fazer link simblico para %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s ligado simbolicamente a %s (\"link\")"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Comando de decifragem \"%s\" desconhecido"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Renomeando %s para %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Renomeando %s de volta para %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Impossvel salvar diretrio de trabalho"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Impossvel mudar o diretrio de trabalho"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: No possvel %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Ateno: No possvel %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Impossvel mudar modo para %s"
+
+#: src/misc.c:562
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Impossvel alterar dono para uid %lu, gid %lu"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Impossvel fazer link para %s"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Erro de leitura no byte %s, lendo %lu bytes"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Aviso: Erro de leitura no byte %s, lendo %lu bytes"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Impossvel saltar para %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Aviso: No possvel saltar para %s"
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Impossvel criar link simblico para %s"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Gravados apenas %lu de um total de %lu bytes"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "processo filho"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "canal interprocesso"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Falta um nome de arquivo aps \"-C\""
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: No foi encontrado no arquivo-tar"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Impossvel alocar espao para buffer\n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Impossvel alocar espao para buffer"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Tente `%s --help' para mais informaes.\n"
+
+#: src/rmt.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"
+msgstr ""
+"Uso: %s [OPO]\n"
+"Manipula uma unidade de fita, aceitando comandos de um processo remoto.\n"
+"\n"
+" --version Mostra informaes de verso.\n"
+" --help Mostra esta ajuda.\n"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid ""
+"\n"
+"Report bugs to <bug-tar@gnu.org>.\n"
+msgstr ""
+"\n"
+"Informar erros no programa para <bug-tar@gnu.org>.\n"
+"Informar erros na traduo para <afmenez@terra.com.br>.\n"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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 ""
+"Esse programa no possui NENHUMA GARANTIA, at onde permitido pela lei.\n"
+"Pode ser redistribudo sob os termos da Licena Publica Geral GNU;\n"
+"veja o arquivo COPYING para maiores detalhes."
+
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Deslocamento de procura fora de faixa"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Direo de procura fora de faixa"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Fim de arquivo prematuro\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Fim de arquivo prematuro"
+
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Comando \"%c\" no faz sentido\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Comando sem sentido"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Servio no disponvel"
+
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "entrada padro (stdin)"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "sada padro (stdout)"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Impossvel executar um shell remoto"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Ambas as opes `-%s' e `-%s' exigem a entrada padro"
+
+#: src/tar.c:292
+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 ""
+"O GNU `tar' salva vrios arquivos em um nico arquivo-tar em fita ou disco,\n"
+"e pode restaurar arquivos individualmente.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Uso: %s [OPO]... [ARQUIVO]...\n"
+"\n"
+"Exemplos:\n"
+" %s -cf arquivo.tar foo bar # Cria arquivo.tar atravs dos arquivos foo e bar.\n"
+" %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:303
+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"
+"Se uma opo longa aparece como argumento obrigatrio, ento tambm o para a\n"
+"opo curta equivalente. Idem para argumentos opcionais.\n"
+
+#: src/tar.c:308
+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"
+"Modo de operao principal:\n"
+" -t, --list lista o contedo de um arquivo-tar\n"
+" -x, --extract, --get extrai arquivos do arquivo-tar\n"
+" -c, --create cria um novo arquivo-tar\n"
+" -d, --diff, --compare compara o arquivo-tar com arquivos atuais\n"
+" -r, --append anexa arquivos no fim do arquivo-tar\n"
+" -u, --update atualiza arquivos contidos no arquivo-tar\n"
+" -A, --catenate anexa outros arquivos-tar a um arquivo-tar\n"
+" --concatenate o mesmo que \"-A\"\n"
+" --delete remove do arquivo-tar (exceto para fitas)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Modificadores de operao:\n"
+" -W, --verify tenta verificar o arquivo-tar aps gravao\n"
+" --remove-files remove arquivos depois de inclu-los no arquivo-tar\n"
+" -k, --keep-old-files no sobrescreve arquivo existente ao extrair\n"
+" --overwrite sobrescreve arquivos existentes ao extrair\n"
+" --overwrite-dir sobrescreve dados sobre diretrios ao extrair\n"
+" -U, --unlink-first remove cada arquivo antes de extra-lo\n"
+" --recursive-unlink remove hierarquia antes de extrair diretrios\n"
+" -S, --sparse trata arquivos esparsos eficientemente\n"
+" -O, --to-stdout extrai os arquivos para stdout\n"
+" -G, --incremental trata antigo formato incremental GNU\n"
+" -g, --listed-incremental=ARQUIVO\n"
+" trata novo formato incremental GNU\n"
+" --ignore-failed-read no sai com erro em arquivos ilegveis.\n"
+
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Tratamento dos atributos dos arquivos:\n"
+" --owner=NOME fora NOME como dono dos arquivos adicionados\n"
+" --group=GRUPO fora GRUPO como grupo dos arquivos adicionados\n"
+" --mode=PERM fora permisses PERM para arquivos adicionados\n"
+" --atime-preserve no altera as datas de acesso dos arquivos\n"
+" -m, --modification-time no extrai a data de modificao dos arquivos\n"
+" --same-owner extrai os arquivos tentando manter o dono\n"
+" --no-same-owner extrai os arquivos com o usurio atual como dono\n"
+" --numeric-owner usa sempre nmeros para nomes de usurio e grupo\n"
+" -p, --same-permissions mantm as permisses dos arquivos na extrao\n"
+" --no-same-permissions no extrai as informaes de permisses\n"
+" --preserve-permissions o mesmo que -p\n"
+" -s, --same-order ordena os nomes a extrair segundo a ordem do arquivo-tar\n"
+" --preserve-order o mesmo que -s\n"
+" --preserve o mesmo que -p e -s juntos\n"
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Escolha e substituio de dispositivo:\n"
+" -f, --file=ARQ usa o arquivo ou dispositivo ARQ\n"
+" --force-local o arquivo local, mesmo que tenha \":\"\n"
+" --rsh-command=COM usar o comando remoto COM, em vez de \"rsh\"\n"
+" -[0-7][lmh] escolher o acionador e a densidade\n"
+" -M, --multi-volume tratar arquivos multi-volume\n"
+" -L, --tape-length=NUM tratar NUM x 1024 \"bytes\" por fita magntica\n"
+" -F, --info-script=ARQ executar ARQ no final de cada fita (implica em -M)\n"
+" --new-volume-script=ARQ o mesmo que \"-F ARQ\"\n"
+" --volno-file=ARQ usa/atualiza o nmero do volume em ARQ\n"
+
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Blocagem no dispositivo:\n"
+" -b, --blocking-factor=BLOCOS BLOCOS x 512 bytes por registro\n"
+" --record-size=TAM TAM bytes por registro, mltiplo de 512\n"
+" -i, --ignore-zeros ignorar os blocos zerados no arquivo-tar\n"
+" (significam fim-de-arquivo)\n"
+" -B, --read-full-records dividir leitura em blocos (para pipes 4.2BSD)\n"
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Seleo do formato do arquivo-tar:\n"
+" -V, --label=NOME cria um arquivo com nome de volume NOME\n"
+" REGEXP ao extrair/listar, NOME expresso regular\n"
+" -o, --old-archive, --portability gravar um arquivo no-tar formato V7\n"
+" --posix gravar um arquivo-tar conforme com POSIX\n"
+" -j, --bzip2 filtra o arquivo-tar atravs do bzip2\n"
+" -z, --gzip, --ungzip filtra o arquivo-tar atravs do gzip\n"
+" -Z, --compress, --uncompress filtra o arquivo-tar atravs do compress\n"
+" --use-compress-program=PROG filtra atravs de PROG (precisa aceitar -d)\n"
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Seleo local de arquivos:\n"
+" -C, --directory DIR mudar para diretrio DIR\n"
+" -T, --files-from=NOME obter do arquivo NOME a lista de arquivos a\n"
+" criar ou extrair\n"
+" --null faz com que \"-T\" leia nomes terminados por NULO,\n"
+" tambm inibe \"-C\"\n"
+" --exclude=PADRO excluir os arquivos descritos pelo PADRO\n"
+" -X, --exclude-from=ARQ excluir arquivos, segundo os padres em ARQ\n"
+" --anchored padres de excluso combinam com incio do nome do arquivo (padro)\n"
+" --no-anchored padres de excluso combinam depois de qualquer /\n"
+" --ignore-case excluso ignora maisculas/minsculas\n"
+" --no-ignore-case excluso considera maisculas/minsculas (padro)\n"
+" --wildcards padres de excluso usam coringas (padro)\n"
+" --no-wildcards padres de excluso so strings simples\n"
+" --wildcards-match-slash coringas dos padres de excluso combinam com '/' (default)\n"
+" --no-wildcards-match-slash coringas dos padres de excluso no combinam com '/'\n"
+" -P, --absolute-names preservar os \"\\\" iniciais nos nomes dos arquivos\n"
+" -h, --dereference usar os prprios arquivos, em lugar dos ligaes\n"
+" simblicas (symlinks) que os referenciam\n"
+" --no-recurse no descer pela rvore de diretrios\n"
+" -l, --one-file-system no sair do sistema local de arquivos, ao criar o\n"
+" arquivo-tar\n"
+" -K, --starting-file=NOME comear pelo arquivo NOME, no arquivo-tar\n"
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATA guardar apenas arquivos mais recentes que DATA\n"
+" --newer-mtime=DATE comparar apenas data e hora quando os dados mudarem\n"
+" --after-date=DATA o mesmo que -N\n"
+
+#: src/tar.c:418
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version control\n"
+" --suffix=SUFFIX backup before removal, override usual suffix\n"
+msgstr ""
+" --backup[=CONTROL] copia antes de remover, possibilita escolha\n"
+" de controle de verso\n"
+" --suffix=SUFIXO copia antes de remover, ignora sufixo usual\n"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Prestao de informaes:\n"
+" --help mostra esta ajuda e sai\n"
+" --version mostra nmero da verso do programa tar e sai\n"
+" -v, --verbose mostra lista de arquivos processados\n"
+" --checkpoint indica os nomes dos diretrios ao ler o arquivo-tar\n"
+" --totals indica o total de bytes gravados ao criar o arquivo-tar\n"
+" -R, --block-number mostra o nmero de bloco do arquivo-tar, para cada mensagem\n"
+" -w, --interactive pede confirmao para cada ao\n"
+" --confirmation o mesmo que -w\n"
+"\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+"Sufixo do backup `~', a menos que usado --suffix ou SIMPLE_BACKUP_SUFFIX.\n"
+"Os controles de verso que podem ser usados com --backup ou VERSION_CONTROL,\n"
+"so:\n"
+"\n"
+" t, numbered faz backups numerados\n"
+" nil, existing numera se existe backup numerado, se no faz simples\n"
+" never, simple sempre faz backups simples\n"
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"O programa tar GNU no consegue ler arquivos-tar \"--posix\". Se a varivel\n"
+"POSIXLY_CORRECT estiver definida no ambiente, as extenses GNU podem ser\n"
+"inibidas com \"--posix\". O suporte para POSIX est apenas parcialmente\n"
+"implementado, pelo que no se confie muito nele, por enquanto.\n"
+"ARQUIVO-TAR pode ser ARQUIVO, HOST:ARQUIVO ou USURIO@HOST:ARQUIVO; e \n"
+"ARQUIVO pode ser um arquivo ou um dispositivo.\n"
+"*Este* `tar' assume, por default, \"-f%s -b %d\".\n"
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "No possvel especificar mais do que uma das opes \"-Acdtrux\""
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Opes de compresso conflitantes"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "A opo antiga `%c' exige um argumento."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Opo obsoleta, agora subentendida por --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Nome de opo obsoleta substituda por --blocking-factor"
+
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Fator de blocagem invlido"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Nome de opo obsoleta substitudo por --read-full-records"
+
+#: src/tar.c:696
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Aviso: a opo -I no suportada; talvez a inteno fosse -j ou -T?"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "Tamanho da fita invlido"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Nome de opo obsoleta substitudo por --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr "Mais do que uma data limite"
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Arquivo de datas no encontrado"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Substituindo %s pelo formato de data desconhecido %s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "Opes de formato do arquivo-tar conflitantes"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Nome de opo obsoleta substituda por --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Nome de opo obsoleta substituda por --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Aviso: a opo -y no suportada; talvez a inteno fosse -j?"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Nome de opo obsoleta substituda por --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Grupo invlido"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Modo invlido informado na opo"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Dono invlido"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Tamanho de registro invlido"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "O tamanho dos registros tem que ser mltiplo de %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "As opes \"-[0-7][lmh]\" no so suportadas por *este* tar"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Escrito por John Gilmore e Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Desejadas caractersticas GNU num arquivo-tar com formato incompatvel"
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Mltiplos arquivos-tar exigem a opo \"-M\""
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Impossivel combinar --listed-incremental com --newer"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: O rtulo do volume longo demais (o limite %lu bytes)"
+
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Recusando a criar um arquivo-tar vazio"
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "As opes `-Aru' so incompatveis com `-f -'"
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Deve ser especificada uma das opes \"-Acdtrux\""
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Erro ao escrever para sada padro"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Sada por erro atrasada pelos erros anteriores"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: O arquivo encolheu %s bytes"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Gera arquivos de dados para pacote de testes GNU tar.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Uso: %s [OPO]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Os argumentos obrigatrios para as opes longas tambm so obrigatrios\n"
+"para as opes curtas equivalentes.\n"
+"\n"
+" -l, --file-length=TAM TAManho do arquivo gerando\n"
+" -p, --pattern=PADRO PADRO `default' ou `zeros'\n"
+" --help exibe esta ajuda e sai\n"
+" --version exibe informaes de verso e sai\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr "Escrito por Franois Pinard"
diff --git a/po/.reference/pt_BR.s1 b/po/.reference/pt_BR.s1
new file mode 100644
index 00000000..23e7794d
--- /dev/null
+++ b/po/.reference/pt_BR.s1
@@ -0,0 +1 @@
+abfdeaa856c148da310670ed0c6b47ddc4d0a748 -
diff --git a/po/.reference/ro.po b/po/.reference/ro.po
new file mode 100644
index 00000000..6d34299c
--- /dev/null
+++ b/po/.reference/ro.po
@@ -0,0 +1,1759 @@
+# Mesajele n limba romn pentru GNU tar
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# Laurentiu Buzdugan <lbuz@rolix.org>>, 2005.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.15.1\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2004-12-21 17:11+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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/argmatch.c:137
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argument invalid %s pentru %s"
+
+#: lib/argmatch.c:138
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argument ambiguu %s pentru %s"
+
+#: lib/argmatch.c:157
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Argumente valide sunt:"
+
+#: lib/error.c:123 rmt/rmt.c:92
+msgid "Unknown system error"
+msgstr "Eroare sistem necunoscut"
+
+#: lib/getopt.c:551 lib/getopt.c:570
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opiunea `%s' este ambigu\n"
+
+#: lib/getopt.c:603 lib/getopt.c:607
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opiunea `--%s' nu permite un argument\n"
+
+#: lib/getopt.c:616 lib/getopt.c:621
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: opiunea `%c%s' nu permite un argument\n"
+
+#: lib/getopt.c:667 lib/getopt.c:689 lib/getopt.c:1020 lib/getopt.c:1042
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: opiunea `%s' necesit un argument\n"
+
+#: lib/getopt.c:727 lib/getopt.c:730
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opiunea `--%s' nu este recunoscut\n"
+
+#: lib/getopt.c:738 lib/getopt.c:741
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opiunea `%c%s' bu este recunoscut\n"
+
+#: lib/getopt.c:796 lib/getopt.c:799
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opiune ilegal -- %c\n"
+
+#: lib/getopt.c:805 lib/getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opiune invalid -- %c\n"
+
+#: lib/getopt.c:863 lib/getopt.c:882 lib/getopt.c:1095 lib/getopt.c:1116
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opiunea necesit un argument -- %c\n"
+
+#: lib/getopt.c:935 lib/getopt.c:954
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opiunea `-W %s' este ambigu\n"
+
+#: lib/getopt.c:978 lib/getopt.c:999
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opiunea `-W %s' nu permite un argument\n"
+
+#: lib/human.c:484
+msgid "block size"
+msgstr "dimensiune bloc"
+
+#: lib/quotearg.c:240
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:241
+msgid "'"
+msgstr "'"
+
+#: lib/rtapelib.c:297
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Serviciu indisponibil"
+
+#: lib/rtapelib.c:301
+msgid "stdin"
+msgstr "stdin"
+
+#: lib/rtapelib.c:304
+msgid "stdout"
+msgstr "stdout"
+
+#: lib/rtapelib.c:512
+msgid "Cannot execute remote shell"
+msgstr "Nu pot executa shell remote"
+
+#: lib/argp-help.c:194
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: parametrul ARGP_HELP_FMT necesit o valoare"
+
+#: lib/argp-help.c:203
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: parametru ARGP_HELP_FMT necunoscut"
+
+#: lib/argp-help.c:215
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Gunoi n ARGP_HELP_FMT: %s"
+
+#: lib/argp-help.c:1188
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Argumentele obligatorii sau opionale pentru opiunile lungi sunt obligatorii sau opionale i pentru opiunile corespunztoare scurte."
+
+#: lib/argp-help.c:1575
+msgid "Usage:"
+msgstr "Folosire:"
+
+#: lib/argp-help.c:1579
+msgid " or: "
+msgstr " sau: "
+
+#: lib/argp-help.c:1591
+msgid " [OPTION...]"
+msgstr " [OPIUNE...]"
+
+#: lib/argp-help.c:1618
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "ncercai `%s --help' sau `%s --usage' pentru informaii suplimentare.\n"
+
+#: lib/argp-help.c:1646 src/tar.c:1252
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Raportai bug-uri la %s.\n"
+
+#: rmt/rmt.c:144
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Nu pot aloca spaiu memorie intermediar\n"
+
+#: rmt/rmt.c:146
+msgid "Cannot allocate buffer space"
+msgstr "Nu pot aloca spaiu memorie intermediar"
+
+#: rmt/rmt.c:256
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "ncercai `%s --help' pentru informaii suplimentare.\n"
+
+#: rmt/rmt.c:260
+#, 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 ""
+"Folosire: %s [OPIUNE]\n"
+"Manipuleaz o unitate de band, acceptnd comenzi de la un proces remote.\n"
+"\n"
+" --version Afieaz informaii versiune.\n"
+" --help Afieaz acest mesaj.\n"
+
+#: rmt/rmt.c:267
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Raportai bug-uri la <%s>.\n"
+
+#: rmt/rmt.c:301
+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 ""
+"Acest program vine fr NICI O GARANIE, n conformitate cu sistemul legal.\n"
+"l putei redistribui conform termenilor din GNU General Public License;\n"
+"vedei fiierul numit COPYING pentru detalii."
+
+#: rmt/rmt.c:400 rmt/rmt.c:520 rmt/rmt.c:530
+msgid "Seek offset out of range"
+msgstr "Decalaj cutare (seek offset) n afara domeniului"
+
+#: rmt/rmt.c:413
+msgid "Seek direction out of range"
+msgstr "Direcie cutare (seek direction) n afara domeniului"
+
+#: rmt/rmt.c:452
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: eof prematur\n"
+
+#: rmt/rmt.c:454
+msgid "Premature end of file"
+msgstr "Sfrit de fiier prematur"
+
+#: rmt/rmt.c:562
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Comand gunoi %c\n"
+
+#: rmt/rmt.c:564
+msgid "Garbage command"
+msgstr "Comand gunoi"
+
+#: src/buffer.c:263
+#, c-format
+msgid "Total bytes written: %s (%s, %s/s)\n"
+msgstr "Numr total octei scrii: %s (%s, %s/s)\n"
+
+#: src/buffer.c:340
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:388
+msgid "Invalid value for record_size"
+msgstr "Valoare invalid pentru record_size"
+
+#: src/buffer.c:391
+msgid "No archive name given"
+msgstr "Nume arhiv nu a fost furnizat"
+
+#: src/buffer.c:441
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Nu pot verifica arhive atdin/stdout"
+
+#: src/buffer.c:454
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arhiva este compresat. Folosii opiunea %s."
+
+#: src/buffer.c:526
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arhiva nu este etichetat s se potriveasc cu %s"
+
+#: src/buffer.c:529 src/buffer.c:896
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Volumul %s nu se potrivete cu %s"
+
+#: src/buffer.c:567
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Scrie punct de verificare %d"
+
+#: src/buffer.c:654
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header"
+msgstr "%s: nume fiier prea lung pentru a fi storat ntr-un antet GNU multivolum"
+
+#: src/buffer.c:733
+msgid "At beginning of tape, quitting now"
+msgstr "La nceputul benzii, ieim acum"
+
+#: src/buffer.c:739
+msgid "Too many errors, quitting"
+msgstr "Prea multe erori, ieim"
+
+#: src/buffer.c:765
+#, c-format
+msgid "Read %s bytes from %s"
+msgstr "Am citit %s octei de la %s"
+
+#: src/buffer.c:777
+#, 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 octei) n arhiv"
+
+#: src/buffer.c:797
+#, 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:814
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Citete punct de verificare %d"
+
+#: src/buffer.c:905 src/extract.c:1100
+#, c-format
+msgid "Reading %s\n"
+msgstr "Citesc %s\n"
+
+#: src/buffer.c:909
+msgid "WARNING: No volume header"
+msgstr "AVERTISMENT: Nici un antet de volum"
+
+#: src/buffer.c:917
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nu este continuat pe acest volum"
+
+#: src/buffer.c:931
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s este de dimensiune greit (%s != %s + %s)"
+
+#: src/buffer.c:943
+msgid "This volume is out of sequence"
+msgstr "Acest volum este n afara secvenei"
+
+#: src/buffer.c:1025
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Nu pot backspace fiierul arhiv; acesta ar putea fi de necitit fr -i"
+
+#: src/buffer.c:1057
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek nu s-a oprit la limita unei nregistrri"
+
+#: src/buffer.c:1108
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: conine numr volum invalid"
+
+#: src/buffer.c:1160
+msgid "Volume number overflow"
+msgstr "Depire domeniu numr volum"
+
+#: src/buffer.c:1179
+#, c-format
+msgid "`%s' command failed"
+msgstr "`%s' comanda a euat"
+
+#: src/buffer.c:1188
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Prepar volum #%d pentru %s i apas tasta return: "
+
+#: src/buffer.c:1194
+msgid "EOF where user reply was expected"
+msgstr "EOF unde era ateptat rspunsul utilizatorului"
+
+#: src/buffer.c:1199 src/buffer.c:1229
+msgid "WARNING: Archive is incomplete"
+msgstr "AVERTISMENT: Arhiva este incomplet"
+
+#: src/buffer.c:1213
+#, c-format
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nume] Dai un nume de fiier nou pentru urmatoarele volume\n"
+" q Abandoneaz tar\n"
+" ! Lanseaz un subshell\n"
+" ? Afieaz aceast list de opiuni\n"
+
+#: src/buffer.c:1224
+msgid "No new volume; exiting.\n"
+msgstr "Nici un volum nou; terminm.\n"
+
+#: src/compare.c:105
+#, 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 octei"
+
+#: src/compare.c:116 src/compare.c:132
+msgid "Contents differ"
+msgstr "Coninuturile difer"
+
+#: src/compare.c:158 src/extract.c:763 src/incremen.c:496 src/list.c:235
+#: src/list.c:412 src/list.c:1282
+msgid "Unexpected EOF in archive"
+msgstr "EOF neateptat n arhiv"
+
+#: src/compare.c:212
+#, c-format
+msgid "Verify "
+msgstr "Verific "
+
+#: src/compare.c:219
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Tip de fiier necunoscut '%c', folosesc diff ca pentru un fiier normal"
+
+#: src/compare.c:242 src/compare.c:364 src/compare.c:416 src/compare.c:443
+msgid "File type differs"
+msgstr "Tipul fiierelor difer"
+
+#: src/compare.c:249 src/compare.c:378 src/compare.c:422
+msgid "Mode differs"
+msgstr "Modurile difer"
+
+#: src/compare.c:252
+msgid "Uid differs"
+msgstr "Uid difer"
+
+#: src/compare.c:254
+msgid "Gid differs"
+msgstr "Gid difer"
+
+#: src/compare.c:257
+msgid "Mod time differs"
+msgstr "Timp modificare difer"
+
+#: src/compare.c:261 src/compare.c:451
+msgid "Size differs"
+msgstr "Dimensiunea difer"
+
+#: src/compare.c:319
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nu este link-at ctre %s"
+
+#: src/compare.c:342
+msgid "Symlink differs"
+msgstr "Symlink difer"
+
+#: src/compare.c:372
+msgid "Device number differs"
+msgstr "Numr dispozitiv difer"
+
+#: src/compare.c:500
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arhiva conine nume de fiiere cu prefixele ndeprtate."
+
+#: src/compare.c:502
+msgid "Verification may fail to locate original files."
+msgstr "Verificare ar putea eua s gseasc fiierele originale."
+
+#: src/compare.c:572
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "VERIFIC EEC: detectat %d antet invalid"
+msgstr[1] "VERIFIC EEC: detectat %d antete invalide"
+
+#: src/create.c:145
+msgid "Generating negative octal headers"
+msgstr "Generez antete octale negative"
+
+#: src/create.c:196
+#, 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:202
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "valoarea %s n afara %s intervalului %s..%s"
+
+#: src/create.c:481 src/create.c:544
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: numele fiierul este prea lung (maxim %d); nimic generat"
+
+#: src/create.c:491
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: numele fiierul este prea lung (nu poate fi spart); nimic generat"
+
+#: src/create.c:518
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: numele link-ului este prea lung; nimic generat"
+
+#: src/create.c:884
+#, 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: Fiier scurtat cu %s octet; completat cu zerouri"
+msgstr[1] "%s: Fiier scurtat cu %s octei; completat cu zerouri"
+
+#: src/create.c:910
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: fiier schimbat n timp ce l citeam"
+
+#: src/create.c:1051
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: fiierul este pe un sistem de fiiere diferit; nimic generat"
+
+#: src/create.c:1061
+#, c-format
+msgid "%s: contains a cache directory tag; not dumped"
+msgstr "%s: conine o etichet de director cache; nimic generat"
+
+#: src/create.c:1221
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tip de fiier necunoscut; fiier ignorat"
+
+#: src/create.c:1320
+#, c-format
+msgid "Missing links to '%s'.\n"
+msgstr "Link lips ctre '%s'.\n"
+
+#: src/create.c:1387
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: fiierul este neschimbat; nimic generat"
+
+#: src/create.c:1395
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: fiierul este n arhiv; nimic generat"
+
+#: src/create.c:1430
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fiier ters nainte de a-l putea citi"
+
+#: src/create.c:1523
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket ignorat"
+
+#: src/create.c:1528
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: u ignorat"
+
+#: src/delete.c:209 src/list.c:171 src/update.c:163
+msgid "This does not look like a tar archive"
+msgstr "Aceasta nu pare a fi o arhiv tar"
+
+#: src/delete.c:215 src/list.c:185 src/update.c:168
+msgid "Skipping to next header"
+msgstr "Srim la urmtorul antet"
+
+#: src/delete.c:280
+msgid "Deleting non-header from archive"
+msgstr "tergem non-antet din arhiv"
+
+#: src/extract.c:208
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: nregistrare de timp neverosimil %s"
+
+#: src/extract.c:211
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: nregistrare timp %s este %lu sec n viitor"
+
+#: src/extract.c:359
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inconsisten neateptat cnd cream directorul"
+
+#: src/extract.c:478
+#, c-format
+msgid "Current `%s' is newer"
+msgstr "`%s' curent este mai nou"
+
+#: src/extract.c:590
+#, 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:655
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Nu am putut arhiva (backup) acest fiier"
+
+#: src/extract.c:722
+msgid "Extracting contiguous files as regular files"
+msgstr "Extragem fiiere contigue ca fiiere normale"
+
+#: src/extract.c:908
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "ncerc extragerea link-urilor simbolice ca link-uri hard"
+
+#: src/extract.c:1109
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Nu pot extrage -- fiierul este continuat din alt arhiv"
+
+#: src/extract.c:1118
+msgid "Visible long name error"
+msgstr "Eroare nume lung evident"
+
+#: src/extract.c:1126
+#, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
+msgstr "%s: Tip de fiier necunoscut '%c', extras ca fiier normal"
+
+#: src/extract.c:1211
+msgid "Error is not recoverable: exiting now"
+msgstr "Nu-mi pot reveni din eroare: termin acum"
+
+#: src/extract.c:1218
+msgid "memory exhausted"
+msgstr "memorie epuizat"
+
+#: src/incremen.c:193
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Directorul a fost redenumit"
+
+#: src/incremen.c:205
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Directorul este nou"
+
+#: src/incremen.c:354
+msgid "Invalid time stamp"
+msgstr "nregistrare timp invalid"
+
+#: src/incremen.c:357
+msgid "Time stamp out of range"
+msgstr "nregistrare timp n afara domeniului"
+
+#: src/incremen.c:381
+msgid "Invalid device number"
+msgstr "Numr dispozitiv invalid"
+
+#: src/incremen.c:385
+msgid "Device number out of range"
+msgstr "Numr dispozitiv n afara intervalului"
+
+#: src/incremen.c:393
+msgid "Invalid inode number"
+msgstr "Numr inode invalid"
+
+#: src/incremen.c:397
+msgid "Inode number out of range"
+msgstr "Numr inode n afara intervalului"
+
+#: src/incremen.c:524
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Nu cur director: nu pot determina statistici"
+
+#: src/incremen.c:531
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: directorul este pe un dispozitiv (device) diferit; necurat"
+
+#: src/incremen.c:539
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: tergem %s\n"
+
+#: src/incremen.c:544
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Nu pot terge"
+
+#: src/list.c:117
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Omis"
+
+#: src/list.c:135
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloc %s: ** Bloc de NUL-uri **\n"
+
+#: src/list.c:148
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Un bloc zero singuratic la %s"
+
+#: src/list.c:159
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloc %s: ** Sfrit de fiier **\n"
+
+#: src/list.c:182 src/list.c:1017 src/list.c:1244
+#, c-format
+msgid "block %s: "
+msgstr "bloc %s: "
+
+#: src/list.c:644
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Spaii libere n antet unde valoare %s numeric ateptat"
+
+#: src/list.c:698
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Valoare octal %.*s este n afara %s intervalului; presupunem complementul lui doi"
+
+#: src/list.c:708
+#, 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:725
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arhiva conine antete n baza-64 depite"
+
+#: src/list.c:738
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "ir n baza-64 (semntura arhivei) %s este n afara %s intervalului"
+
+#: src/list.c:769
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Valoare baza-256 a arhivei este n afara %s intervalului"
+
+#: src/list.c:797
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Arhiva conine %.*s unde valoare %s numeric ateptat"
+
+#: src/list.c:818
+#, 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:1048
+msgid "Visible longname error"
+msgstr "Eroare nume lung evident"
+
+#: src/list.c:1175
+#, c-format
+msgid " link to %s\n"
+msgstr " link ctre %s\n"
+
+#: src/list.c:1183
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tip fiier necunoscut %s\n"
+
+#: src/list.c:1201
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Link Lung--\n"
+
+#: src/list.c:1205
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nume Lung--\n"
+
+#: src/list.c:1209
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Antet Volum--\n"
+
+#: src/list.c:1217
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Continuat la octet %s--\n"
+
+#: src/list.c:1221
+#, c-format
+msgid "--Mangled file names--\n"
+msgstr "--Amestecat numele fiierelor--\n"
+
+#: src/list.c:1249
+msgid "Creating directory:"
+msgstr "Creez director:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "EOF neateptat n numele amestecate"
+
+#: src/mangle.c:90 src/misc.c:399 src/misc.c:417
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Nu pot redenumi ca %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Redenumit %s ca %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Nu pot crea symlink ctre %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Creat symlink %s ctre %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Comanda de-amestecare necunoscut %s"
+
+#: src/misc.c:390
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Redenumesc %s ca %s\n"
+
+#: src/misc.c:422
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Redenumesc %s napoi ca %s\n"
+
+#: src/misc.c:502
+msgid "Cannot save working directory"
+msgstr "Nu pot salva directorul n care lucrez"
+
+#: src/misc.c:508
+msgid "Cannot change working directory"
+msgstr "Nu pot schimba directorul n care lucrez"
+
+#: src/misc.c:552 src/misc.c:561
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Nu pot %s"
+
+#: src/misc.c:570
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Avertisment: Nu pot %s"
+
+#: src/misc.c:585
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Nu pot schimba modul ca %s"
+
+#: src/misc.c:593
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Nu pot schimba proprietatea ctre uid %lu, gid %lu"
+
+#: src/misc.c:628
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Nu pot crea hard link ctre %s"
+
+#: src/misc.c:689 src/misc.c:730
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu byte"
+msgid_plural "%s: Read error at byte %s, reading %lu bytes"
+msgstr[0] "%s: Eroare citire la octet %s, citind %lu octet"
+msgstr[1] "%s: Eroare citire la octet %s, citind %lu octei"
+
+#: src/misc.c:702
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu byte"
+msgid_plural "%s: Warning: Read error at byte %s, 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 octei"
+
+#: src/misc.c:790
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Nu pot cuta (seek) ctre %s"
+
+#: src/misc.c:806
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Avertisment: Nu pot cuta (seek) ctre %s"
+
+#: src/misc.c:824
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Nu pot crea symlink ctre %s"
+
+#: src/misc.c:892
+#, 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 octei"
+
+#: src/misc.c:918
+msgid "child process"
+msgstr "proces copil"
+
+#: src/misc.c:927
+msgid "interprocess channel"
+msgstr "canal ntre-procese"
+
+#: src/names.c:372 src/names.c:421 src/names.c:465
+msgid "Missing file name after -C"
+msgstr "Nume fiier absent dup -C"
+
+#: src/names.c:642 src/names.c:658
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Nu a fost gsit n arhiv"
+
+#: src/names.c:645
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Lucrul cerut nu a fost gsit n arhiv"
+
+#: src/names.c:1093
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Eliminm primul `%s' din numele membrilor"
+
+#: src/names.c:1094
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Eliminm primul `%s' din destinaiile hard link"
+
+#: src/names.c:1107
+msgid "Substituting `.' for empty member name"
+msgstr "nlocuiesc `.' pentru nume de membrii goale"
+
+#: src/names.c:1108
+msgid "Substituting `.' for empty hard link target"
+msgstr "nlocuiesc `.' pentru destinaii hard link goale"
+
+#: src/tar.c:71
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Opiunile `-%s' i `-%s' vor amndou intrarea standard"
+
+#: src/tar.c:143
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Format arhiv invalid"
+
+#: src/tar.c:167
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Capabiliti GNU cerute pentru un format de arhiv incompatibil"
+
+#: src/tar.c:241
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+" 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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"GNU tar salveaz mai multe fiiere mpreun ntr-o singur arhiv pe band sau disc i poate restaura fiiere individuale din arhiv.\n"
+"\n"
+"Exemple:\n"
+" tar -cf arhiva.tar foo bar # Creaz arhiva.tar din fiierele foo i bar.\n"
+" tar -tvf arhiva.tar # Listeaz cu amnunte toate fiierele din arhiva.tar.\n"
+" tar -xf arhiva.tar # Extrage toate fiierele din arhiva.tar.\n"
+" Sufixul pentru backup este `~', dac nu este setat cu --suffix sau SIMPLE_BACKUP_SUFFIX.\n"
+"Versiunea de control poate fi setat cu --backup sau VERSION_CONTROL, valorile permise sunt:\n"
+"\n"
+" t, numbered creaz backup numerotat\n"
+" nil, existing numeroteaz dac exist backup numerotat, altfel simplu\n"
+" never, simple ntotdeauna creaz backup simplu\n"
+
+#: src/tar.c:270
+msgid "Main operation mode:"
+msgstr "Mod de operare principal:"
+
+#: src/tar.c:273
+msgid "list the contents of an archive"
+msgstr "listeaz coninutul unei arhive"
+
+#: src/tar.c:275
+msgid "extract files from an archive"
+msgstr "extrage fiiere dintr-o arhiv"
+
+#: src/tar.c:278
+msgid "create a new archive"
+msgstr "creaz o nou arhiv"
+
+#: src/tar.c:280
+msgid "find differences between archive and file system"
+msgstr "gsete diferenele dintre arhive i sistemul de fiiere"
+
+#: src/tar.c:283
+msgid "append files to the end of an archive"
+msgstr "adaug fiiere la sfritul unei arhive"
+
+#: src/tar.c:285
+msgid "only append files newer than copy in archive"
+msgstr "adaug numai fiierele mai noi dect copia din arhiv"
+
+#: src/tar.c:287
+msgid "append tar files to an archive"
+msgstr "adaug fiiere tar la o arhiv"
+
+#: src/tar.c:290
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "terge din arhiv (nu pe benzi magnetice!)"
+
+#: src/tar.c:293
+msgid "Operation modifiers:"
+msgstr "Modificatori operaie:"
+
+#: src/tar.c:296
+msgid "attempt to verify the archive after writing it"
+msgstr "ncearc s verifici arhiva dup scrierea sa"
+
+#: src/tar.c:298
+msgid "remove files after adding them to the archive"
+msgstr "terge fiierele dup ce acestea sunt adugate la arhiv"
+
+#: src/tar.c:300
+msgid "don't replace existing files when extracting"
+msgstr "nu nlocui fiierele existente la extragere"
+
+#: src/tar.c:302
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "nu nlocui fiierele existente care sunt mai noi dect copiile acestora din arhiv"
+
+#: src/tar.c:304
+msgid "preserve metadata of existing directories"
+msgstr "pstraz metadata directoarelor existente"
+
+#: src/tar.c:306
+msgid "overwrite existing files when extracting"
+msgstr "supra-scrie fiierele existente la extragere"
+
+#: src/tar.c:308
+msgid "remove each file prior to extracting over it"
+msgstr "terge fiecare fiier nainte de a extrage peste acesta"
+
+#: src/tar.c:310
+msgid "empty hierarchies prior to extracting directory"
+msgstr "golete ierarhiile nainte de a extrage un director"
+
+#: src/tar.c:312
+msgid "handle sparse files efficiently"
+msgstr "manipuleaz eficient fiierele rerefiate (sparse)"
+
+#: src/tar.c:314
+msgid "extract files to standard output"
+msgstr "extrage fiierele la ieirea standard"
+
+#: src/tar.c:316
+msgid "handle old GNU-format incremental backup"
+msgstr "folosete vechiul format GNU pentru backup incremental"
+
+#: src/tar.c:317 src/tar.c:390 src/tar.c:455 src/tar.c:514
+msgid "FILE"
+msgstr "FIIER"
+
+#: src/tar.c:318
+msgid "handle new GNU-format incremental backup"
+msgstr "folosete noul format GNU pentru backup incremental"
+
+#: src/tar.c:320
+msgid "do not exit with nonzero on unreadable files"
+msgstr "nu termina cu non-zero pentru fiiere ce nu pot fi citite"
+
+#: src/tar.c:321 src/tar.c:385 src/tar.c:398 src/tar.c:484
+msgid "NUMBER"
+msgstr "NUMR"
+
+#: src/tar.c:322
+msgid "process only the NUMth 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 -T option. NUMBER defaults to 1."
+msgstr "proceseaz numai a NUM-ra apariie a fiecrui fiier n arhiv. Aceast opiune este valid numai n combinaie cu una dintre subcomenzile --delete, --diff, --extract sau --list i cnd o list de fiiere este dat fie n linia de comand sau folosind opiunea -T. Implicit, NUMBER=1."
+
+#: src/tar.c:324
+msgid "Archive is seekable"
+msgstr "Arhiva este cutabil"
+
+#: src/tar.c:327
+msgid "Handling of file attributes:"
+msgstr "Manipulare atribute fiiere:"
+
+#: src/tar.c:329 src/tar.c:331 src/tar.c:387
+msgid "NAME"
+msgstr "NUME"
+
+#: src/tar.c:330
+msgid "force NAME as owner for added files"
+msgstr "foreaz NUME ca proprietar pentru fiierele adugate"
+
+#: src/tar.c:332
+msgid "force NAME as group for added files"
+msgstr "foreaz NUME ca grup pentru fiierele adugate"
+
+#: src/tar.c:333
+msgid "CHANGES"
+msgstr "SCHIMBRI"
+
+#: src/tar.c:334
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "foreaz mod (simbolic) SCHIMBRI pentru fiierele adugate"
+
+#: src/tar.c:336
+msgid "don't change access times on dumped files"
+msgstr "nu schimba timpurile de acces pentru fiierele prelucrate"
+
+#: src/tar.c:338
+msgid "don't extract file modified time"
+msgstr "nu extrage timpul de modificare al fiierului"
+
+#: src/tar.c:340
+msgid "try extracting files with the same ownership"
+msgstr "ncearc extragerea fiierelor cu aceleai drepturi (ownership)"
+
+#: src/tar.c:342
+msgid "extract files as yourself"
+msgstr "extrage fiierele ca dvs. nsui"
+
+#: src/tar.c:344
+msgid "always use numbers for user/group names"
+msgstr "folosete ntotdeauna numere pentru numele utilizator/grup"
+
+#: src/tar.c:346
+msgid "extract permissions information"
+msgstr "extrage informaii permisiuni"
+
+#: src/tar.c:349
+msgid "do not extract permissions information"
+msgstr "nu extrage informaii permisiuni"
+
+#: src/tar.c:351
+msgid "sort names to extract to match archive"
+msgstr "sorteaz numele de extras s se potriveasc cu arhiva"
+
+#: src/tar.c:354
+msgid "same as both -p and -s"
+msgstr "la fel ca -p i -s"
+
+#: src/tar.c:357
+msgid "Device selection and switching:"
+msgstr "Selectare i schimbare unitate:"
+
+#: src/tar.c:359
+msgid "ARCHIVE"
+msgstr "ARHIV"
+
+#: src/tar.c:360
+msgid "use archive file or device ARCHIVE"
+msgstr "folosete fiier arhiv sau unitate ARHIV"
+
+#: src/tar.c:362
+msgid "archive file is local even if has a colon"
+msgstr "fiier arhiv este local chiar cnd are un :"
+
+#: src/tar.c:363 src/tar.c:365
+msgid "COMMAND"
+msgstr "COMAND"
+
+#: src/tar.c:364
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "folosete rmt COMAND n loc de rmt"
+
+#: src/tar.c:366
+msgid "use remote COMMAND instead of rsh"
+msgstr "folosete remote COMAND n loc de rsh"
+
+#: src/tar.c:370
+msgid "specify drive and density"
+msgstr "specific unitate i densitate"
+
+#: src/tar.c:384
+msgid "create/list/extract multi-volume archive"
+msgstr "creaz/listeaz/extrage arhiva pe volume multiple"
+
+#: src/tar.c:386
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "schimb banda dup scriere a NUMR x 1024 octei"
+
+#: src/tar.c:388
+msgid "run script at end of each tape (implies -M)"
+msgstr "ruleaz script la terminarea fiecrei benzi (implic -M)"
+
+#: src/tar.c:391
+msgid "use/update the volume number in FILE"
+msgstr "folosete/actualizeaz numrul de volum n FIIER"
+
+#: src/tar.c:394
+msgid "Device blocking:"
+msgstr "Blocuri unitate:"
+
+#: src/tar.c:396
+msgid "BLOCKS"
+msgstr "BLOCURI"
+
+#: src/tar.c:397
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOCURI x 512 octei pe ntregistrare"
+
+#: src/tar.c:399
+msgid "SIZE bytes per record, multiple of 512"
+msgstr "DIMENSIUNE octei pe nregistrare, multiplu de 12"
+
+#: src/tar.c:401
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignor blocuri zero-uate n arhiv (nseamn EOF)"
+
+#: src/tar.c:403
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "redimensioneaz bloc n timpul citirii (pentru pipe-uri BSD4.2"
+
+#: src/tar.c:406
+msgid "Archive format selection:"
+msgstr "Selecie format arhiv:"
+
+#: src/tar.c:408
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:409
+msgid "create archive of the given format."
+msgstr "creaz arhiva de formatul dat."
+
+#: src/tar.c:411
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT este unul din urmtoarele"
+
+#: src/tar.c:412
+msgid "old V7 tar format"
+msgstr "vechiul format tar V7"
+
+#: src/tar.c:414
+msgid "GNU format as per tar <= 1.12"
+msgstr "oldgnu formatul GNU format ca pentru tar <= 1.12"
+
+#: src/tar.c:416
+msgid "GNU tar 1.13.x format"
+msgstr "formatul GNU tar 1.13.x"
+
+#: src/tar.c:418
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "formatul POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:420
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "formatul POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:421
+msgid "Same as pax"
+msgstr "ca i pax"
+
+#: src/tar.c:424
+msgid "same as --format=v7"
+msgstr "ca i --format=v7"
+
+#: src/tar.c:427
+msgid "same as --format=posix"
+msgstr "ca i --format=posix"
+
+#: src/tar.c:428
+msgid "keyword[[:]=value][,keyword[[:]=value], ...]"
+msgstr "cuvnt_cheie[[:]=valoare][,cuvnt_cheie[[:]=valoare], ...]"
+
+#: src/tar.c:429
+msgid "control pax keywords"
+msgstr "controleaz cuvintele cheie pax"
+
+#: src/tar.c:430
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:431
+msgid "create archive with volume name NAME. At list/extract time, use TEXT as a globbing pattern"
+msgstr "creaz arhiv nu nume volum NUME. La listare/extragere, folosete TEXT ca pattern de globbing"
+
+#: src/tar.c:433
+msgid "filter the archive through bzip2"
+msgstr "filtraz arhiva prin bzip2"
+
+#: src/tar.c:435
+msgid "filter the archive through gzip"
+msgstr "filtreaz arhiva prin gzip"
+
+#: src/tar.c:439
+msgid "filter the archive through compress"
+msgstr "filtreaz arhiva prin compress"
+
+#: src/tar.c:441
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:442
+msgid "filter through PROG (must accept -d)"
+msgstr "filtreaz prin PROG (trebuie s accepte -d)"
+
+#: src/tar.c:445
+msgid "Local file selection:"
+msgstr "Selecie fiier local:"
+
+#: src/tar.c:447
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:448
+msgid "change to directory DIR"
+msgstr "schimb n directorul DIR"
+
+#: src/tar.c:449
+msgid "FILE-OF-NAMES"
+msgstr "FIIER-DE-NUME"
+
+#: src/tar.c:450
+msgid "get names to extract or create from file NAME"
+msgstr "obine numele de extras sau creat din fiierul NUME"
+
+#: src/tar.c:452
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T citete nume terminate cu null, deactiveaz cu -C"
+
+#: src/tar.c:453
+msgid "PATTERN"
+msgstr "PATTERN"
+
+#: src/tar.c:454
+msgid "exclude files, given as a PATTERN"
+msgstr "exclude fiiere, date ca un PATTERN"
+
+#: src/tar.c:456
+msgid "exclude patterns listed in FILE"
+msgstr "pattern-urile de excludere sunt listate n FIIER"
+
+#: src/tar.c:458
+msgid "exclude directories containing a cache tag"
+msgstr "exclude directoarele ce conin o etichet cache"
+
+#: src/tar.c:460
+msgid "exclusion ignores case"
+msgstr "n excluderi ignor cazul caracterelor (minuscule/majuscule)"
+
+#: src/tar.c:462
+msgid "exclude patterns match file name start"
+msgstr "pattern-urile de excludere potrivesc nceputul numelor de fiiere"
+
+#: src/tar.c:464
+msgid "exclude patterns match after any / (default)"
+msgstr "pattern-urile de excludere potrivesc dup orice / (implicit)"
+
+#: src/tar.c:466
+msgid "exclusion is case sensitive (default)"
+msgstr "excluderea depinde de caz (minuscule/majuscule) (implicit)"
+
+#: src/tar.c:468
+msgid "exclude patterns are plain strings"
+msgstr "pattern-urile de excludere sunt iruri simple"
+
+#: src/tar.c:470
+msgid "exclude pattern wildcards do not match '/'"
+msgstr "wildcard-urile n pattern-urile de excludere nu potrivesc '/'"
+
+#: src/tar.c:472
+msgid "avoid descending automatically in directories"
+msgstr "evit coborrea automat n directoare"
+
+#: src/tar.c:474
+msgid "stay in local file system when creating archive"
+msgstr "stai n sistemul de fiire local la creare arhivei"
+
+#: src/tar.c:477
+msgid "recurse into directories (default)"
+msgstr "coboar recursiv n directoare (implicit)"
+
+#: src/tar.c:479
+msgid "don't strip leading `/'s from file names"
+msgstr "nu elimina primul `/' din numele fiierelor"
+
+#: src/tar.c:481
+msgid "dump instead the files symlinks point to"
+msgstr "folosete n schimb fiierele ctre care point-eaz symlink-urile"
+
+#: src/tar.c:482
+msgid "MEMBER-NAME"
+msgstr "NUME-MEMBRU"
+
+#: src/tar.c:483
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "ncepe la membrul NUME-MEMBRU n arhiv"
+
+#: src/tar.c:485
+msgid "strip NUMBER leading components from file names"
+msgstr "elimin NUMR componente de la nceputul numelor fiierelor"
+
+#: src/tar.c:486
+msgid "DATE-OR-FILE"
+msgstr "DATA-FIIERULUI"
+
+#: src/tar.c:487
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "stocheaz numai fiiere mai noi dect DATA-FIIERULUI"
+
+#: src/tar.c:488 src/tar.c:490
+msgid "DATE"
+msgstr "DATA"
+
+#: src/tar.c:489
+msgid "compare date and time when data changed only"
+msgstr "compar data i timpul numai cnd a fost schimbat data"
+
+#: src/tar.c:491
+msgid "same as -N"
+msgstr "ca i -N"
+
+#: src/tar.c:492
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:493
+msgid "backup before removal, choose version CONTROL"
+msgstr "f backup nainte de tergere, alege CONTROL pentru versiuni"
+
+#: src/tar.c:494
+msgid "STRING"
+msgstr "IR"
+
+#: src/tar.c:495
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX"
+msgstr "f backup nainte de tergere, nlocuiete prefixul normal ('~' n afar de cazul cnd este determinat de variabila de mediu SIMPLE_BACKUP_SUFFIX"
+
+#: src/tar.c:497
+msgid "exclude patterns use wildcards (default)"
+msgstr "pattern-urile de excludere folosesc wildcard-uri (implicit)"
+
+#: src/tar.c:499
+msgid "exclude pattern wildcards match '/' (default)"
+msgstr "wildcard-urile din pattern-urile de excludere potrivesc '/' (implicit)"
+
+#: src/tar.c:502
+msgid "Informative output:"
+msgstr "Ieire informativ:"
+
+#: src/tar.c:505
+msgid "verbosely list files processed"
+msgstr "listeaz cu amnunte fiierele procesate"
+
+#: src/tar.c:507
+msgid "display progress messages every 10th record"
+msgstr "afieaz mesaje despre progres la fiecare al 10-a nregistrare"
+
+#: src/tar.c:509
+msgid "print a message if not all links are dumped"
+msgstr "afieaz un mesaj dac nu toate link-urile sunt prelucrate"
+
+#: src/tar.c:511
+msgid "print total bytes written while creating archive"
+msgstr "afieaz numrul total de octei scrii la crearea arhivei"
+
+#: src/tar.c:513
+msgid "print file modification dates in UTC"
+msgstr "afieaz datele de modificare a fiierelor n UTC"
+
+#: src/tar.c:515
+msgid "send verbose output to FILE"
+msgstr "trimite ieire detaliat n FIIER"
+
+#: src/tar.c:517
+msgid "show block number within archive with each message"
+msgstr "arat numrul blocului din arhiv pentru fiecare mesaj"
+
+#: src/tar.c:519
+msgid "ask for confirmation for every action"
+msgstr "cere confirmare pentru fiecare aciune"
+
+#: src/tar.c:522
+msgid "Show tar defaults"
+msgstr "Arat valorire implicite folosite de tar"
+
+#: src/tar.c:524
+msgid "When listing or extracting, list each directory that does not match search criteria"
+msgstr "La listare sau extragere, listeaz fiecare director care nu se potrivete cu criteriile de cutare"
+
+#: src/tar.c:527
+msgid "Compatibility options:"
+msgstr "Opiuni compatibilitate:"
+
+#: src/tar.c:530
+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:533
+msgid "Other options:"
+msgstr "Alte opiuni:"
+
+#: src/tar.c:535
+msgid "Give this help list"
+msgstr "Afieaz aceast list de ajutor"
+
+#: src/tar.c:536
+msgid "Give a short usage message"
+msgstr "Afieaz un scurt mesaj despre folosire"
+
+#: src/tar.c:537
+msgid "Print license and exit"
+msgstr "Afieaz licena i termin"
+
+#: src/tar.c:538
+msgid "Print program version"
+msgstr "Afieaz versiunea programului"
+
+#: src/tar.c:575
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Nu putei specifica mai mult de una dintre opiunile `-Acdtrux'"
+
+#: src/tar.c:585
+msgid "Conflicting compression options"
+msgstr "Opiunile de compresie sunt n conflict"
+
+#: src/tar.c:595
+msgid ""
+"Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n"
+"for complete list of authors.\n"
+msgstr ""
+"Bazat pe munca lui John Gilmore i Jay Fenlason. Vedei AUTHORS\n"
+"pentru o list complet a autorilor.\n"
+
+#: src/tar.c:597
+#, c-format
+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"
+msgstr ""
+" GNU tar este software liber (free software); l putei redistribui\n"
+" i/sau modifica conform termenilor licenei GNU General Public License\n"
+" publicat de Free Software Foundation; fie versiunea 2 a Licenei,\n"
+" fie (la latitudinea dvs.) orice versiune ulterioar.\n"
+"\n"
+" GNU tar este distribuit n sperana c va fi folositor,\n"
+" dar FR NICI O GARANIE; fr chiar garania implicit de\n"
+" VANDABILITATE sau POTRIVIRE PENTRU UN SCOP ANUME. Vedei\n"
+" licena GNU General Public License pentru detalii suplimentare.\n"
+"\n"
+" Ar fi trebuit s fi primit o copie a licenei GNU General Public License\n"
+" mpreun cu GNU tar; dac nu, scriei la Free Software Foundation, Inc.,\n"
+" 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+"\n"
+
+#: src/tar.c:638
+msgid "Invalid blocking factor"
+msgstr "Factor blocuri invalid"
+
+#: src/tar.c:713
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Avertisment: opiunea -I nu este suportat; ai dorit cumva -j sau -T?"
+
+#: src/tar.c:738
+msgid "Semantics of -l option will change in the future releases."
+msgstr "Semantica opiunii -l se va schimba n versiunile viitoare."
+
+#: src/tar.c:740
+msgid "Please use --one-file-system option instead."
+msgstr "V rugm folosii opiunea --one-file-system n schimb."
+
+#: src/tar.c:753
+msgid "Invalid tape length"
+msgstr "Lungime de band invalid"
+
+#: src/tar.c:781
+msgid "More than one threshold date"
+msgstr "Mai mult de o singur dat limit"
+
+#: src/tar.c:791
+msgid "Date file not found"
+msgstr "Fiier date nu a fost gsit"
+
+#: src/tar.c:800
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "nlocuim %s pentru format de dat necunoscut %s"
+
+#: src/tar.c:905
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Avertisment: opiunea -y nu este suportat, ai dorit cumva -j?"
+
+#: src/tar.c:981
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Grup invalid"
+
+#: src/tar.c:990
+msgid "Invalid mode given on option"
+msgstr "Mod invalid furnizat ca opiune"
+
+#: src/tar.c:1033
+msgid "Invalid number"
+msgstr "Numr invalid"
+
+#: src/tar.c:1051
+msgid "Invalid owner"
+msgstr "Proprietar invalid"
+
+#: src/tar.c:1075
+msgid "Invalid record size"
+msgstr "Dimensiune nregistrare invalid"
+
+#: src/tar.c:1078
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Dimensiune nregistrare trebuie s fie un multiplu de %d."
+
+#: src/tar.c:1110
+msgid "Invalid number of elements"
+msgstr "Numr invalid de elemente"
+
+#: src/tar.c:1185
+#, c-format
+msgid "Malformed density argument: '%s'"
+msgstr "Argument densitate malformat: '%s'"
+
+#: src/tar.c:1221
+#, c-format
+msgid "Unknown density: '%c'"
+msgstr "Densitate necunoscut: '%c'"
+
+#: src/tar.c:1241
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Opiunile `-[0-7][lmh]' nu sunt suportate de *acest* tar"
+
+#: src/tar.c:1249
+#, c-format
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Acest* tar folosete implicit:\n"
+
+#: src/tar.c:1278
+msgid "[FILE]..."
+msgstr "[FIIER]..."
+
+#: src/tar.c:1375
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Vechea opiune `%c' necesit un argument."
+
+#: src/tar.c:1458
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence n-are sens fr o list de fiiere"
+
+#: src/tar.c:1464
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence nu poate fi folosit n modul de operare cerut"
+
+#: src/tar.c:1494
+msgid "Multiple archive files require `-M' option"
+msgstr "Fiiere de arhiv multiple necesit opiunea `-M'"
+
+#: src/tar.c:1499
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Nu putei combina --listed-incremental cu --newer"
+
+#: src/tar.c:1514
+#, 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 octei)"
+
+#: src/tar.c:1524
+msgid "Cannot verify multi-volume archives"
+msgstr "Nu pot verifica arhive pe volume multiple"
+
+#: src/tar.c:1526
+msgid "Cannot verify compressed archives"
+msgstr "Nu pot verifica arhive comprimate"
+
+#: src/tar.c:1532
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Nu pot folosi arhive comprimate pe volume multiple"
+
+#: src/tar.c:1534
+msgid "Cannot update compressed archives"
+msgstr "Nu pot actualiza arhive comprimate"
+
+#: src/tar.c:1546
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option poate fi folosit numai pentru arhive POSIX"
+
+#: src/tar.c:1563
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Refuz categoric s creez o arhiv goal"
+
+#: src/tar.c:1584
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Opiunile `-Aru' sunt incompatibile cu `-f -'"
+
+#: src/tar.c:1607
+#, c-format
+msgid "Treating date `%s' as %s + %ld nanosecond"
+msgid_plural "Treating date `%s' as %s + %ld nanoseconds"
+msgstr[0] "Tratez data `%s' ca %s + %ld nanosecund"
+msgstr[1] "Tratez data `%s' ca %s + %ld nanosecunde"
+
+#: src/tar.c:1663
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Trebuie s specificai una din opiunile `-Acdtrux'"
+
+#: src/tar.c:1715
+msgid "Error in writing to standard output"
+msgstr "Eroare de scriere la ieirea standard"
+
+#: src/tar.c:1717
+msgid "Error exit delayed from previous errors"
+msgstr "Terminare cu eroare ntrziat de erori precedente"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: Fiier scurtat cu %s octet"
+msgstr[1] "%s: Fiier scurtat cu %s octei"
+
+#: src/xheader.c:140
+#, c-format
+msgid "Keyword %s is unknown or not yet imlemented"
+msgstr "Cuvnt_cheie %s necunoscut sau nc neimplementat"
+
+#: src/xheader.c:166
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Pattern-ul %s nu poate fi folosit"
+
+#: src/xheader.c:176
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Cuvnt_cheie %s nu poate fi nlocuit (overridden)"
+
+#: src/xheader.c:490
+msgid "Malformed extended header: missing whitespace after the length"
+msgstr "Antet extins malformat: lipsete spaiu liber dup lungime"
+
+#: src/xheader.c:501
+msgid "Malformed extended header: missing equal sign"
+msgstr "Antet extins malformat: lipsete semnul egal"
+
+#~ msgid "Quitting now."
+#~ msgstr "Termin acum."
diff --git a/po/.reference/ro.s1 b/po/.reference/ro.s1
new file mode 100644
index 00000000..8771d84e
--- /dev/null
+++ b/po/.reference/ro.s1
@@ -0,0 +1 @@
+d1673463a31ca483a235c8efac1cd1b1850909db -
diff --git a/po/.reference/ru.po b/po/.reference/ru.po
new file mode 100644
index 00000000..45268583
--- /dev/null
+++ b/po/.reference/ru.po
@@ -0,0 +1,2695 @@
+# Translation of tar messages to Russian
+# 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.
+# Pavel Maryanov <acid@jack.kiev.ua>, 2010.
+#
+#: src/create.c:1550
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.24\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2010-10-24 23:08+0300\n"
+"PO-Revision-Date: 2010-10-25 12:19+0200\n"
+"Last-Translator: Pavel Maryanov <acid@jack.kiev.ua>\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=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "недопустимый аргумент %s для %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "неоднозначный аргумент %s для %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Допустимые аргументы:"
+
+#: 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"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: Для параметра ARGP_HELP_FMT требуется значение"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: Параметра ARGP_HELP_FMT должен быть положительным"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Неизвестный параметр ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Мусор в ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1246
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Обязательные или необязательные аргументы для длинных параметров также являются обязательными или необязательными для соответствующих коротких параметров."
+
+#: gnu/argp-help.c:1639
+msgid "Usage:"
+msgstr "Использование:"
+
+#: gnu/argp-help.c:1643
+msgid " or: "
+msgstr " или: "
+
+#: gnu/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [ПАРАМЕТР...]"
+
+#: gnu/argp-help.c:1682
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Попробуйте `%s --help' или `%s --usage' для получения дополнительных сведений.\n"
+
+#: gnu/argp-help.c:1710
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Отчёты об ошибках отправляйте по адресу: %s.\n"
+
+#: gnu/argp-help.c:1929 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Неизвестная системная ошибка"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "вывод этой справки"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "вывод короткого сообщения об использовании"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "ИМЯ"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "определяет название программы"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "СЕК"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "ожидание в течение заданных СЕКУНД (по умолчанию 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "вывод версии программы"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ОШИБКА ПРОГРАММЫ) Неизвестная версия?!"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Слишком много аргументов\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ОШИБКА ПРОГРАММЫ) Параметр должен был быть распознан?!"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "ошибка записи"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: параметр «%s» не однозначен\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: с параметром «--%s» нельзя использовать аргумент\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: с параметром «%c%s» нельзя использовать аргумент\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: для параметра «--%s» требуется аргумент\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: нераспознанный параметр «--%s»\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: нераспознанный параметр «%c%s»\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: недопустимый параметр -- «%c»\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: для параметра требуется аргумент -- «%c»\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: параметр «-W %s» неоднозначен\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: с параметром «-W %s» нельзя использовать аргумент\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: для параметра «-W %s» требуется аргумент\n"
+
+#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "недостаточно памяти"
+
+#: gnu/openat-die.c:36
+#, c-format
+msgid "unable to record current working directory"
+msgstr "невозможно зарегистрировать текущий рабочий каталог"
+
+#: gnu/openat-die.c:54
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "не удалось вернуться в первоначальный рабочий каталог"
+
+#. 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.
+#: gnu/quotearg.c:274
+msgid "`"
+msgstr "«"
+
+#: gnu/quotearg.c:275
+msgid "'"
+msgstr "»"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Упакован %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl.html>\n"
+"Это свободное ПО: вы можете продавать и распространять его.\n"
+"Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Автор: %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Отчёты об ошибках отправляйте по адресу: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: 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"
+
+#: 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: Невозможно найти в %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: ошибка разрешения"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Не удаётся запустить удалённый командный процессор"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Направление поиска за пределами диапазона"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Недопустимое направление поиска"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Недопустимое смещение поиска"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Смещение поиска за пределами диапазона"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Недопустимое число байт"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Число байт за пределами диапазона"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Неожиданный конец файла"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Недопустимый код операции"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Операция не поддерживается"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Неожиданные аргументы"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Работа с накопителем на магнитной ленте с приёмом команд от удалённого процесса"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "N"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "задайте уровень отладки"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "задайте имя выходного файла отладки"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "не удаётся открыть %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "слишком много аргументов"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Неверная команда"
+
+#: src/buffer.c:386 src/buffer.c:391 src/buffer.c:635 src/buffer.c:1250
+#: src/buffer.c:1296 src/buffer.c:1325 src/delete.c:211 src/list.c:184
+#: src/update.c:198
+msgid "This does not look like a tar archive"
+msgstr "Это не похоже на tar-архив"
+
+#: src/buffer.c:450 src/buffer.c:459
+msgid "Total bytes written"
+msgstr "Всего записано байт"
+
+#: src/buffer.c:457 src/buffer.c:471
+msgid "Total bytes read"
+msgstr "Всего прочитано байт"
+
+#: src/buffer.c:461
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Всего удалено байт: %s\n"
+
+#: src/buffer.c:550
+msgid "(pipe)"
+msgstr "(канал)"
+
+#: src/buffer.c:573
+msgid "Invalid value for record_size"
+msgstr "Недопустимое значение для record_size"
+
+#: src/buffer.c:576
+msgid "No archive name given"
+msgstr "Не указано имя архива"
+
+#: src/buffer.c:618
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Не удаётся проверить архив на stdin/stdout"
+
+#: src/buffer.c:632
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Архив сжат. Используйте параметр %s"
+
+#: src/buffer.c:689 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Не удаётся обновить сжатые архивы"
+
+#: src/buffer.c:782
+msgid "At beginning of tape, quitting now"
+msgstr "Начало ленты, завершение работы"
+
+#: src/buffer.c:788
+msgid "Too many errors, quitting"
+msgstr "Слишком много ошибок, завершение работы"
+
+#: src/buffer.c:821
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Размер записи = %lu блок"
+msgstr[1] "Размер записи = %lu блока"
+msgstr[2] "Размер записи = %lu блоков"
+
+#: src/buffer.c:842
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Невыровненный блок (%lu байт) в архиве"
+msgstr[1] "Невыровненный блок (%lu байта) в архиве"
+msgstr[2] "Невыровненный блок (%lu байт) в архиве"
+
+#: src/buffer.c:919
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Невозможно вернуться назад на один архивный файл; он может быть нечитаемым без -i"
+
+#: src/buffer.c:951
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek не остановился на границе записи"
+
+#: src/buffer.c:1002
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: содержит неверный номер тома"
+
+#: src/buffer.c:1037
+msgid "Volume number overflow"
+msgstr "Переполнение номера тома"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Приготовьте том Номер %d для %s и нажмите Enter: "
+
+#: src/buffer.c:1058
+msgid "EOF where user reply was expected"
+msgstr "Конец файла вместо ожидаемого ответа пользователя"
+
+#: src/buffer.c:1063 src/buffer.c:1095
+msgid "WARNING: Archive is incomplete"
+msgstr "ПРЕДУПРЕЖДЕНИЕ: Архив не полный"
+
+#: src/buffer.c:1077
+#, 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"
+" y или [нов.строка] Продолжение операции\n"
+
+#: src/buffer.c:1082
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Порождение подпроцесса командного процессора\n"
+
+#: src/buffer.c:1083
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Вывод этого списка\n"
+
+#: src/buffer.c:1090
+msgid "No new volume; exiting.\n"
+msgstr "Нет нового тома, завершение работы.\n"
+
+#: src/buffer.c:1123
+msgid "File name not specified. Try again.\n"
+msgstr "Не указано имя имя файла. Попробуйте ещё раз.\n"
+
+#: src/buffer.c:1136
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Неверные входные данные. Наберите ? для получения справки.\n"
+
+#: src/buffer.c:1187
+#, c-format
+msgid "%s command failed"
+msgstr "Сбой команды %s"
+
+#: src/buffer.c:1368
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s, возможно, продолжается на этом томе - в заголовке находится усечённое имя"
+
+#: src/buffer.c:1372
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s не продолжается на этом томе"
+
+#: src/buffer.c:1386
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s является неверным размером (%s != %s + %s)"
+
+#: src/buffer.c:1401
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Этот том вне последовательности (%s - %s != %s)"
+
+#: src/buffer.c:1479 src/buffer.c:1505
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Метка архива не соответствует %s"
+
+#: src/buffer.c:1509
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Том %s не соответствует %s"
+
+#: src/buffer.c:1603
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: слишком длинное имя файла для сохранения в многотомном заголовке GNU; обрезано"
+
+#: src/buffer.c:1794
+msgid "write did not end on a block boundary"
+msgstr "запись не остановилась на границе блока"
+
+#: 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[2] "Можно было прочитать только %lu байт из %lu"
+
+#: src/compare.c:105 src/compare.c:382
+msgid "Contents differ"
+msgstr "Содержимое различно"
+
+#: src/compare.c:131 src/extract.c:958 src/incremen.c:1462 src/list.c:397
+#: src/list.c:1384 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Неожиданный конец файла в архиве"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:308 src/compare.c:406
+msgid "File type differs"
+msgstr "Типы файлов отличаются"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:322
+msgid "Mode differs"
+msgstr "Права доступа отличаются"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Uid отличаются"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gid отличаются"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Время изменения отличается"
+
+#: src/compare.c:215 src/compare.c:414
+msgid "Size differs"
+msgstr "Размеры отличаются"
+
+#: src/compare.c:263
+#, c-format
+msgid "Not linked to %s"
+msgstr "Не ссылается на %s"
+
+#: src/compare.c:287
+msgid "Symlink differs"
+msgstr "Символические ссылки отличаются"
+
+#: src/compare.c:316
+msgid "Device number differs"
+msgstr "Номера устройств отличаются"
+
+#: src/compare.c:456
+#, c-format
+msgid "Verify "
+msgstr "Проверка "
+
+#: src/compare.c:463
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Неизвестный тип файла `%c', сравнён как обычный файл "
+
+#: src/compare.c:518
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Архив содержит файлы с именами, из которых удалены префиксы."
+
+#: src/compare.c:520
+msgid "Verification may fail to locate original files."
+msgstr "При проверке оригинальные файлы могут быть не найдены."
+
+#: src/compare.c:593
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "СБОЙ ПРОВЕРКИ: обнаружен %d неверный заголовок"
+msgstr[1] "СБОЙ ПРОВЕРКИ: обнаружено %d неверных заголовка"
+msgstr[2] "СБОЙ ПРОВЕРКИ: обнаружено %d неверных заголовков"
+
+#: src/compare.c:611 src/list.c:161
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Нулевой блок в %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: содержит каталог с кэшем тегов %s; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "значение %s за пределами %s диапазона %s..%s; заменяется на %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "значение %s за пределами %s диапазона %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Создаются отрицательные восьмеричные заголовки"
+
+#: src/create.c:611 src/create.c:674
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: имя файла слишком длинное (максимум %d); не сброшено"
+
+#: src/create.c:621
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: имя файла слишком длинное (не может быть разделено); не сброшено"
+
+#: src/create.c:648
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: имя ссылки слишком длинное; не сброшено"
+
+#: src/create.c:1062
+#, 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[2] "%s: Файл урезан на %s байт; дополнен нулями"
+
+#: src/create.c:1158
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: файл находится на другой файловой системе; не сброшен"
+
+#: src/create.c:1201 src/create.c:1212 src/incremen.c:582 src/incremen.c:588
+msgid "contents not dumped"
+msgstr "содержимое не сброшено"
+
+#: src/create.c:1416
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Неизвестный тип файла; файл проигнорирован"
+
+#: src/create.c:1527
+#, c-format
+msgid "Missing links to %s."
+msgstr "Отсутствуют ссылки на %s."
+
+#: src/create.c:1688
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: файл не изменён; не сброшен"
+
+#: src/create.c:1697
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: файл является архивом; не сброшен"
+
+#: src/create.c:1721 src/incremen.c:575
+msgid "directory not dumped"
+msgstr "каталог не сброшен"
+
+#: src/create.c:1793
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: файл изменился во время чтения"
+
+#: src/create.c:1855
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: сокет проигнорирован"
+
+#: src/create.c:1861
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door проигнорирован"
+
+#: src/delete.c:217 src/list.c:198 src/update.c:203
+msgid "Skipping to next header"
+msgstr "Пропускается до следующего заголовка"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Удаляется не-заголовок из архива"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: невероятно старая временная метка %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: временная метка %s - %s с в будущем "
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Неожиданная противоречивость при создании каталога"
+
+#: src/extract.c:709
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Каталог переименован до того, как мог быть извлечен его статус"
+
+#: src/extract.c:863
+msgid "Extracting contiguous files as regular files"
+msgstr "Непрерывные файлы извлекаются как обычные"
+
+#: src/extract.c:1183
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Выполняется попытка извлечь символические ссылки как жесткие"
+
+#: src/extract.c:1339
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Невозможно извлечь -- файл продолжается с другого тома"
+
+#: src/extract.c:1346 src/list.c:1117
+msgid "Unexpected long name header"
+msgstr "Непредвиденный длинный заголовок имени"
+
+#: src/extract.c:1353
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Неизвестный тип файла `%c', извлечён как обычный файл"
+
+#: src/extract.c:1379
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Текущий %s более новый или такого же возраста"
+
+#: src/extract.c:1431
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Невозможно было выполнить резервное копирование этот файла"
+
+#: src/extract.c:1568
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Невозможно переименовать %s в %s"
+
+#: src/incremen.c:474 src/incremen.c:518
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Каталог был переименован из %s"
+
+#: src/incremen.c:486
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Каталог был переименован"
+
+#: src/incremen.c:531
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Каталог новый"
+
+#: src/incremen.c:956 src/incremen.c:973
+msgid "Invalid time stamp"
+msgstr "Неверная временная метка"
+
+#: src/incremen.c:1012
+msgid "Invalid modification time (seconds)"
+msgstr "Неверное время изменения (секунды) "
+
+#: src/incremen.c:1027
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Неверное время изменения (наносекунды)"
+
+#: src/incremen.c:1047
+msgid "Invalid device number"
+msgstr "Неверный номер устройства"
+
+#: src/incremen.c:1062
+msgid "Invalid inode number"
+msgstr "Неверный номер inode"
+
+#: src/incremen.c:1113 src/incremen.c:1150
+msgid "Field too long while reading snapshot file"
+msgstr "Слишком длинное поле при чтении из snapshot-файла"
+
+#: src/incremen.c:1120 src/incremen.c:1158
+msgid "Read error in snapshot file"
+msgstr "Ошибка чтения snapshot-файла"
+
+#: 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:1129 src/incremen.c:1169
+msgid "Unexpected field value in snapshot file"
+msgstr "Неожиданное значения поля в snapshot-файле"
+
+#: src/incremen.c:1264
+msgid "Missing record terminator"
+msgstr "Отсутствует указатель конца записи"
+
+#: src/incremen.c:1325 src/incremen.c:1328
+msgid "Bad incremental file format"
+msgstr "Неверный формат инкрементного файла"
+
+#: src/incremen.c:1347
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Неподдерживаемая версия инкрементного формата: %<PRIuMAX>"
+
+#: src/incremen.c:1502
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Неверно сформирован dump-каталог: ожидался '%c', а найден %#3o"
+
+#: src/incremen.c:1512
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Неверно сформирован dump-каталог: 'X' повторяется"
+
+#: src/incremen.c:1525
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Неверно сформирован dump-каталог: пустое имя в 'R'"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Неверно сформирован dump-каталог: перед 'T' не стоит 'R'"
+
+#: src/incremen.c:1544
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Неверно сформирован dump-каталог: пустое имя в 'T'"
+
+#: src/incremen.c:1564
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Неверно сформирован dump-каталог: ожидался '%c', а найден конец данных"
+
+#: src/incremen.c:1571
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Неверно сформирован dump-каталог: 'X' ни разу не использован"
+
+#: src/incremen.c:1615
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Невозможно создать временный каталог с помощью шаблона %s"
+
+#: src/incremen.c:1677
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Каталог не удалён: невозможно выполнить stat"
+
+#: src/incremen.c:1690
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: Каталог находится на другом устройстве: не удален"
+
+#: src/incremen.c:1698
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Удаляется %s\n"
+
+#: src/incremen.c:1703
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Невозможно удалить"
+
+#: src/list.c:130
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Пропускается"
+
+#: src/list.c:146
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "блок %s: ** Блок нулей **\n"
+
+#: src/list.c:172
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "блок %s: ** Конец файла **\n"
+
+#: src/list.c:195 src/list.c:1089 src/list.c:1352
+#, c-format
+msgid "block %s: "
+msgstr "блок %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:704
+#, 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:759
+#, 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:770
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Восьмеричное значение архива %.*s за пределами диапазона %s"
+
+#: src/list.c:791
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Архив содержит устаревающие заголовки base-64"
+
+#: src/list.c:805
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Архив подписан строкой base-64 %s за пределами диапазона %s"
+
+#: src/list.c:836
+#, 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:865
+#, 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:887
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Значение архива %s за пределами %s диапазона %s..%s"
+
+#: src/list.c:1253
+#, c-format
+msgid " link to %s\n"
+msgstr " ссылка на %s\n"
+
+#: src/list.c:1261
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " неизвестный тип файла %s\n"
+
+#: src/list.c:1279
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Длинная ссылка--\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Длинное имя--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Заголовок тома--\n"
+
+#: src/list.c:1295
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Продолжение с позиции %s--\n"
+
+#: src/list.c:1357
+msgid "Creating directory:"
+msgstr "Создание каталога:"
+
+#: src/misc.c:298
+msgid "Cannot get working directory"
+msgstr "Не удаётся получить рабочий каталог"
+
+#: src/misc.c:571
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s переименован в %s\n"
+
+#: src/misc.c:580 src/misc.c:599
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Невозможно переименовать в %s"
+
+#: src/misc.c:604
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "%s переименовывается назад в %s\n"
+
+#: src/misc.c:851
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Файла удален до его считывания"
+
+#: src/misc.c:866
+#, c-format
+msgid "%s: Directory removed before we read it"
+msgstr "%s: каталог удалён до его чтения"
+
+#: src/misc.c:887
+msgid "child process"
+msgstr "дочерний процесс"
+
+#: src/misc.c:896
+msgid "interprocess channel"
+msgstr "межпроцессорный канал"
+
+#: src/names.c:594
+msgid "Pattern matching characters used in file names"
+msgstr "В именах файлов используются символы подстановки"
+
+#: src/names.c:596
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Используйте --wildcards, чтобы задействовать эти символы, или --no-wildcards, чтобы убрать это предепреждение."
+
+#: src/names.c:614 src/names.c:630
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Не найден в архиве"
+
+#: src/names.c:615
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Требуемое вхождение не найдено в архиве"
+
+#: src/names.c:649
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Несоответствиве метки архива"
+
+#: src/names.c:953
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "Параметра -C в списке файлов нельзя Использовать с параметром --listed-incremental"
+
+#: src/names.c:959
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Неверный формат архива"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Запрошены расширения GNU для несовместимого формата архива"
+
+#: 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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"Примеры:\n"
+" tar -cf archive.tar foo bar # Создание archive.tar из файлов foo и bar.\n"
+" tar -tvf archive.tar # Вывод подробного списка всех файлов в архиве archive.tar.\n"
+" tar -xf archive.tar # Извлечение всех файлов из archive.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Суффикс для резервных копий - '~', если он не установлен через --suffix\n"
+"или SIMPLE_BACKUP_SUFFIX. Управление версиями может быть установлено\n"
+"через --backup или VERSION_CONTROL. Значениями могут быть:\n"
+"\n"
+" none, off не создавать резервные копии\n"
+" t, numbered создавать нумерованные резервные копии\n"
+" nil, existing нумерованные, если существуют нумерованные копии, иначе простые\n"
+" never, simple всегда создавать простые резервные копии\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Основной режим работы:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "вывод списка содержимого архива"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "извлечение файлов из архива"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "создание нового архива"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "поиск различий между архивом и файловой системой"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "добавление файлов в конец архива"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "добавление в архив только более новых файлов"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "присоединение tar-файлов к архиву"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "удаление из архива (не на магнитных лентах!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "проверка метки тома архива и выход"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Модификаторы:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "эффективная обработка разрежённых файлов"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "установить версию используемого формата разрежения (подразумевает --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "обработка добавочного резервирования старого формата GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "обработка добавочного резервирования нового формата GNU"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "уровень копирования для созданного разностного архива со списком"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "не завершать работу при ненулевом статусе для нечитаемых файлов"
+
+#: src/tar.c:429
+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 "обработка только N-ого вхождения для каждого файла в архиве. Эта опция верна только в сочетании с одной из подкоманд --delete, --diff, --extract или --list, и когда список файлов задан либо в командной строке, либо через опцию -T. По умолчанию N равен 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "доступен поиск по архиву"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "поиск по архиву недоступен"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "не проверять номера устройств при создании инкрементных архивов"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "проверять номера устройств при создании инкрементных архивов (по умолчанию)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Управление перезаписью:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "попытка проверить архив после его записи"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "удаление файлов после их добавления в архив"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "не перезаписывать существующие файлы при извлечении"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "не перезаписывать существующие файлы, которые более новые, чем их копии в архиве"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "перезапись существующих файлов при извлечении"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "удаление каждого файла до извлечения поверх него"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "очистка всей иерархии до извлечения каталога"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "сохранение метаданных существующих каталогов"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "перезапись существующих файлов при извлечении (по умолчанию)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Выбор выходного потока:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "извлекать файлы на стандартный вывод"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "КОМАНДА"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "перенаправлять извлечённые файлы в другую программу"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "игнорировать коды завершения дочерних процессов"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "считать ненулевые коды завершения дочерних процессов как ошибку"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Обработка атрибутов файлов:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "принудительно устанавливать ИМЯ в качестве владельца для добавленных файлов"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "принудительно устанавливать ИМЯ в качестве группы для добавленных файлов"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "ДАТА-ИЛИ-ФАЙЛ"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "устанавливать для добавленных файлов mtime из ДАТЫ-ИЛИ-ФАЙЛА"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "РЕЖИМ"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "принудительно устанавливать (символьный) РЕЖИМ доступа для добавляемых файлов"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "СПОСОБ"
+
+#: src/tar.c:499
+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:503
+msgid "don't extract file modified time"
+msgstr "не извлекать время изменения файла"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "попытаться извлечь файлы с тем же владельцем, что и в архиве (по умолчанию для супепользователя)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "извлекать файлы как свои собственные (по умолчанию для обычных пользователей)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "использовать числа вместо имён владельца/группы"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "извлекать информацию о правах доступа к файлу (по умолчанию для суперпользователя)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "применять umask пользователя при извлечении прав доступа из архива (по умолчанию для обычных пользователей)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "сортировать извлекаемые имена в том же порядке, что и в архиве"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "эквивалент -p и -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "не устанавливать время изменения и права доступа извлечённых каталогов до завершения процесса извлечения"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "отменить действие параметра --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Выбор и переключение устройств:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "АРХИВ"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "использовать файл или устройство АРХИВ"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "файл архива является локальным, даже если содержит двоеточие"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "использовать указанную КОМАНДУ rmt вместо rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "использовать удалённую КОМАНДУ вместо rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "указать устройство и плотность"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "создание/листинг/извлечение многотомных архивов"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "сменить ленту после записи ЧИСЛО x 1024 байт"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "запустить скрипт по окончании каждой ленты (подразумевается использование -М)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "использовать/обновлять номера тома в ФАЙЛЕ"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Разбиение на блоки:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "БЛОКИ"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "число БЛОКОВ x 512 байт на запись"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "ЧИСЛО байт на запись, кратное 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "игнорировать нулевые блоки в архиве (т.е. EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "заново разбивать на блоки при чтении (для каналов 4.2BSD)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Формата архива:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "ФОРМАТ"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "создать архив в указанном формате"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "ФОРМАТОМ может быть:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "старый формат tar V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "формат GNU как в tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "формат GNU tar 1.13.х"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "формат POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "формат POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "эквивалент pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "эквивалент --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "эквивалент --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "keyword[[:]=значение][,keyword[[:]=значение]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "управляющие ключевые слова pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "ТЕКСТ"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "создать архив с именем тома ТЕКСТ; при листинге/извлечении использовать ТЕКСТ в качестве шаблона подстановки"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Опции сжатия:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "использовать суффикс архива для определения программы сжатия"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "не использовать суффикс архива для определения программы сжатия"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "ПРОГ"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "пропустить архив через ПРОГ (должна поддерживать -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Выбор локальных файлов:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "добавить указанный ФАЙЛ в архив (полезно, если имя начинается с дефиса)"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "КАТАЛОГ"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "перейти в КАТАЛОГ"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "загрузить из ФАЙЛА имена для извлечения или создания"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T читает строки, оканчивающиеся нулём, отключает опцию -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "выключить воздействие предыдущей опции --null"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "убрать кавычки с имён файлов, прочитанных с опцией -T (по умолчанию)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "не убирать кавычки с имён файлов, прочитанных с опцией -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "ШАБЛОН"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "исключать файлы, определённые ШАБЛОНОМ"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "исключать шаблоны, перечисленных в ФАЙЛЕ"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "исключать содержимое каталогов с файлом CACHEDIR.TAG за исключением самого файла с тегами"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "исключать всё содержимое каталогов, содержащих файл CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "исключать каталоги, содержащие файл CACHEDIR.TAG"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "исключать каталоги, содержащие ФАЙЛ, за исключением самого ФАЙЛА"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "исключать всё содержимое каталогов, содержащих ФАЙЛ"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "исключать каталоги с ФАЙЛОМ"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "исключать каталоги CVS"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "исключать резервные файлы и файлы блокировки"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "отключить автоматический спуск в каталоги"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "оставаться в локальной файловой системе при создании архива"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "рекурсивный спуск по каталогам (по умолчанию)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "не удалять начальные `/' из имен файлов"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "следовать по символьным ссылкам и сохранять файлы, на которые они указывают"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "следовать по жёстким ссылкам и сохранять файлы, на которые они указывают"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "ИМЯ-ЧЛЕНА"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "начинать с члена ИМЯ-ЧЛЕНА в архиве"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "сохранять только те файлы, которые новее ДАТЫ-ИЛИ-ФАЙЛА"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "ДАТА"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "сравнивать дату и время, только если изменены данные"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "УПРАВЛЕНИЕ"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "делать копию перед удалением, УПРАВЛЕНИЕ выбора версий"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "СТРОКА"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "делать копию перед удалением, переопределяет обычный суффикс ('~', если только он не переопределён переменной окружения SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Преобразование имён файлов:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "удалять указанное ЧИСЛО начальных компонентов из имён файлов перед извлечением"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "РАСШИРЕНИЕ"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "использовать замену РАСШИРЕНИЯ sed'ом для преобразования имён файлов"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Опции шаблонов подстановки для имён файлов (влияют на шаблоны включения и исключения):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "игнорировать регистр"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "шаблоны начала имени файла"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "шаблоны после любого '/' (по умолчанию для исключаемых)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "с учётом регистра (по умолчанию)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "использовать маски (по умолчанию для исключаемых)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "точное соответствие строке"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "маски не соответствуют '/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "маски соответствуют '/' (по умолчанию для исключаемых)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Вывод информации:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "подробный листинг обрабатываемых файлов"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "КЛЮЧЕВОЕ СЛОВО"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "управление предупреждением"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "вывод сообщений о ходе выполнения через каждые ЧИСЛО записей (по умолчанию 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ДЕЙСТВИЕ"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "выполнять ДЕЙСТВИЕ на каждой контрольной точке"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "вывод сообщений, если сохранены не все ссылки"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "СИГНАЛ"
+
+#: src/tar.c:751
+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:756
+msgid "print file modification times in UTC"
+msgstr "вывод времени изменения файла в формате UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "вывод имени файла и его полного разрешения"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "отправить подробный вывод данных в FILE"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "выводить номера блоков архива в каждом сообщении"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "запрашивать подтверждение для каждого действия"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "показать значения tar по умолчанию"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "при выводе листинга или извлечении показывать все каталоги, не соответствующем условию поиска"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "показывать имена файлов или архивов после преобразования"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "СТИЛЬ"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "установить стиль цитирования имён. Значения для СТИЛЯ см. ниже"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "дополнительно цитировать символы из СТРОКИ"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "отключить цитирование символов из СТРОКИ"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Опции совместимости:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "при создании, эквивалент --old-archive; при извлечении, эквивалент --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Другие опции:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "отключить использование некоторых потенциально опасных опций"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Указать можно только один из параметров «-Acdtrux» или «--test-label»"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Конфликт опций сжатия"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Неизвестное название сигнала: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Файл с образцом даты не найден"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "%s заменяется на неизвестный формат даты %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Опция `%s': дата '%s' рассматривается как %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: список файлов уже прочитан"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: в прочитанном имени файла присутствует пустой символ"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "пропустить архив через %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Допустимые аргументы для параметра --quoting-style:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Значения по умолчанию *этого* tar:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Неверный размер ёмкости блока"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Неверная длина ленты"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Недопустимое значение добавочного уровня"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Больше одной пороговой даты"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Неверное значение версии разрежения"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' не поддерживается на этой платформе"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "значение --checkpoint не является целым числом"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Недопустимая группа"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "В опции указан неверный режим доступа"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Неверное число"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Неверный владелец"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Опция --preserve устарела, используйте --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Неверный размер записи"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Размер записи должен быть кратен %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Неверное число элементов"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Разрешается использовать только одну опцию --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Неверно сформирован аргумент плотности: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Неизвестная плотность: '%c'"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Опции `-[0-7][lmh]' не поддерживаются *этим* tar'ом"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[ФАЙЛ]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Для старой опции `%c' нужно указать аргумент."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence бесполезна без списка файлов"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence не может быть использована запрошенном режиме работы"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Для нескольких файлов архивов требуется опция `-M'"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Нельзя комбинировать --listed-incremental с --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "параметр --level не имеет смыла без --listed-incremental"
+
+#: src/tar.c:2423
+#, 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[2] "%s: Метка тома слишком длинная (максимум %lu байт)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Невозможно проверить многотомные архивы"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Невозможно проверить сжатые архивы"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Невозможно использовать многотомные сжатые архивы"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Невозможно объединить сжатые архивы"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option может быть использована только с архивами POSIX"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Размер тома не может быть меньше размера записи"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order несовместим с --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Робкий отказ от создания пустого архива"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Параметры «-Aru» не совместимы с «-f -»"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Необходимо указать один из параметров -Acdtrux или --test-label"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+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[2] "%s: Файл урезан на %s байт"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Неизвестное или ещё не реализованное ключевое слово %s"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Метка времени за пределами допустимого диапазона"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Шаблон %s не может быть использован"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Ключевое слово %s не может быть перекрыто"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Неверно сформирован расширенный заголовок: отсутствует длина"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Длина расширенного заголовка за пределами допустимого диапазона"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Длина расширенного заголовка %*s за пределами допустимого диапазона"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Неверно сформирован расширенный заголовок: после длины отсутствует пробел"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Неверно сформирован расширенный заголовок: отсутствует знак равенства "
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Неверно сформирован расширенный заголовок: отсутствует знак новой строки"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Игнорируется неизвестное ключевое слово расширенного заголовка `%s'"
+
+#: src/xheader.c:831
+#, 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:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Расширенный заголовок %s=%s за пределами диапазона %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Неверно сформирован расширенный заголовок: неверный %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Неверно сформирован расширенный заголовок: превышен %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Неверно сформирован расширенный заголовок: неверный %s: непредвиденный разделитель %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Неверно сформирован расширенный заголовок: неверный %s: нечётное число значений"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: недопустимое время ожидания"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: неизвестное действие контрольной точки"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "запись"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Контрольная точка чтения %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile используется для работы с файлами данных для пакета тестов paxutils от GNU.\n"
+"ОПЦИИ:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Опции создания файла:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "РАЗМЕР"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Создание файла указанного РАЗМЕРА"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Запись в файл с ИМЕНЕМ, а не на стандартный вывод"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Чтение имён файла из ФАЙЛА"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T читает строки, оканчивающиеся нулём"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Заполнение файла заданным ШАБЛОНОМ. ШАБЛОН - это 'default' или 'zeros'"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Размер блока для разрежённого файла"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Создание разрежённого файла. Остальная часть команды определяет карту файла."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "СМЕЩЕНИЕ"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Искать до указанного смещения перед записью данных"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Параметры статистики по файлам:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Вывод содержимого структуры stat для всех указанных файлов. ФОРМАТ по умолчанию:"
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Параметры синхронного выполнения:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "ПАРАМЕТР"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Выполнение АРГУМЕНТОВ. Полезно с параметром --checkpoint и одним из --cut, --append или --touch"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Выполнение указанного действия (см. ниже) до достижения контрольной точки с заданным НОМЕРОМ"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Указание даты для следующего параметра --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Показать выполненные контрольные точки и статус выхода КОМАНДЫ"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Синхронное выполнение действий. Они выполняются при достижении контрольной точки с номером, определённым опцией --checkpoint."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Усечь ФАЙЛ до размера, определённого предыдущей опцией --length (или 0, если не указан)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Добавить РАЗМЕР байт к ФАЙЛУ. РАЗМЕР определяется предыдущей опцией --length."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Обновить время последнего доступа и изменения ФАЙЛА."
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Выполнить КОМАНДУ"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Разорвать связь с ФАЙЛОМ"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Недопустимый размер: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Число за пределами допустимого диапазона: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Отрицательный размер: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "Сбой stat(%s)"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "запрошенная длина файла %lu, реальная %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "созданный файл не является разреженным"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Ошибка разбора числа возле `%s'"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Неизвестный формат даты"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[АРГУМЕНТЫ...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "невозможно открыть `%s'"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "невозможно найти"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "в имени файла присутствует пустой символ"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "невозможно вывести разрежённые файлы на стандартный вывод; используйте опцию --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "неверная маска (возле `%s')"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Неизвестное поле `%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "невозможно установить время в `%s'"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "не удаётся разорвать связь с «%s»"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Команда успешно выполнена\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Сбой команды; состояние: %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Команда завершена по сигналу %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Команда остановлена по сигналу %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Команда сбросила дамп памяти\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Команда завершена\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "для опции --stat нужны имена файлов"
+
+#~ msgid "Cannot save working directory"
+#~ 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 "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"
+
+#~ msgid "filter the archive through lzma"
+#~ msgstr "пропустить архив через lzma"
+
+#~ msgid "filter the archive through lzop"
+#~ msgstr "пропустить архив через lzop"
diff --git a/po/.reference/ru.s1 b/po/.reference/ru.s1
new file mode 100644
index 00000000..383cfc69
--- /dev/null
+++ b/po/.reference/ru.s1
@@ -0,0 +1 @@
+5d4ea93257d386c4097e1f2bf5c6b46688dbeb10 -
diff --git a/po/.reference/sk.po b/po/.reference/sk.po
new file mode 100644
index 00000000..05e127ea
--- /dev/null
+++ b/po/.reference/sk.po
@@ -0,0 +1,1382 @@
+# Slovak translations for GNU tar
+# Copyright (C) 1997 Free Software Foundation, Inc.
+# Martin Lacko <lacko@host.sk>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar- \n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.5\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argument %s je pre %s neplatn"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argument %s nie je pre %s jednoznan"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Platn argumenty s:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Neznma systmov chyba"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: prepna %s nie je jednoznan\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: prepna `--%s' mus by zadan bez argumentov\n"
+
+#: lib/getopt.c:723
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: prepna `%c%s' mus by zadan bez argumentu\n"
+
+#: lib/getopt.c:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: prepna `%s' vyaduje argument\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: neznmy prepna `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: neznmy prepna `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: neznmy prepna -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: neznmy prepna -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: prepna vyaduje argument -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: prepna `-W %s' nie je jednoznan\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: prepna `-W %s' mus by zadan bez argumentu\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "vekos bloku"
+
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "'"
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "Pam vyerpan"
+
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Celkom zapsan bajtov: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(rra)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Ned sa zatvori"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Popisova sboru nie je mon duplikova"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Komprimovan alebo vzdialen archvy nie je mon poui"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (potomok)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (prapotomok)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Chybn hodnota pre vekos zznamu"
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Meno archvu nebolo zadan"
+
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Vczvzkov archv nie je mon otvori"
+
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Pre blokov faktor (blokov na zznam) %d nie je mon alokovat pam"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Viaczvzkov komprimovan archv nie je mon vytvori"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Komprimovan archv nie je mon otvori"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Komprimovan archv nie je mon aktualizova"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Stdin/Stdout archv nie je mon otvori"
+
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Pre vyhodnotenie vzorky `%s' mus by archv pomenovan"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Zvzok %s nezodpoved vzorke %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Zapisujem testovac bod %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "Pska na zaiatku, konm"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Prli mnoho chb, konm"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "tanie testovacieho bodu %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "tanie z %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "VAROVANIE: Chba hlavika zvzku"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nepokrauje na tomto zvzku"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s je chybnej dky (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Tento zvzok nie je nslednkem predchdzajceho"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Nezarovnan blok (%lu bajtov) v archve"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Vekos zznamu = %lu blokov"
+
+#: src/buffer.c:1308
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "V archve sa nie je mon vrti, bez -i me by neitaten"
+
+#: src/buffer.c:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "Potomok bol ukonen signlom %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "Potomok vrtil status %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: vracia chybn slo zvzku"
+
+#: src/buffer.c:1440
+msgid "Volume number overflow"
+msgstr "slo zvzku preteen"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "'%s' prkaz zlyhal"
+
+#: src/buffer.c:1468
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Pripravte zvzok #%d pre archv %s a stlate return:"
+
+#: src/buffer.c:1474
+msgid "EOF where user reply was expected"
+msgstr "Namiesto uvateskej odpovede bol zadan koniec sboru"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "VAROVANIE: Archiv je nekompletn"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [name] Zadanie novho mena pre al (a nasleduj) zvzok(ky)\n"
+" q Ukonenie programu tar\n"
+" ! Vytvorenie podshellu\n"
+" ? Vypsanie tejto npovedy\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Nie je nov zvzok; konm.\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "D sa ta iba %lu z %lu bajtov"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "Obsah sa li"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339
+#: src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718
+#: src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367
+#: src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "Neoekvan koniec archvu"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Overujem "
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Neznmy typ sboru '%c', porovnvan ako normlny sbor"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "Typ sboru sa li"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "Prva sa lia"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Uid sa li"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "Gid sa li"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "as poslednej pravy sa li"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "Vekos sa li"
+
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nie je odkazom na %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "Symbolick odkaz sa li"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "slo zariadenia sa li"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "CHYBN OVERENIE: njdench chybnch hlaviiek: %d"
+
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Generujem zporn osmikov hlaviky"
+
+#: src/create.c:200
+#, 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:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "hodnota %s typu %s je mimo rozsah %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Nzvy sborov obsahuj `..'"
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Odstraujem vodn `%.*s' z nzvov sborov"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: sbor nie je zmenen; neaktualizovan"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: sbor je archiv; nearchivovan"
+
+#: src/create.c:1098
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: sbor je na inom sborovom systme; nearchivovan"
+
+#: src/create.c:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Sbor zmazan skr ako mohl by tan"
+
+#: src/create.c:1399
+#, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: Sbor je krat o : %s bajtov; Doplujem nulami."
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: sbor bol poas tania zmenen"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: soket ignorovan"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: dvere ignorovan"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Neznmy typ sboru; sbor ignorovan"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Toto pravdepodobne nie je tar archiv"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Preskakujem na aliu hlaviku"
+
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Z archvu je mazan to, o nie je hlavika"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: asov nlepka %s je %lu z dtumu budcnosti"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Neoakvan nekonzistencia, pri vytvren adresra"
+
+#: src/extract.c:578
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Prieinok bol premenovan predtm, ako mohol by extrahovan jeho stav"
+
+#: src/extract.c:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: Nzov sboru obsahuje `..'"
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Tento sbor nebolo mon zlohova"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Svisle uloen sbory rozbaujem ako obyajn sbory"
+
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Skam rozbali symbolick odkazy ako pevn odkazy"
+
+#: src/extract.c:1207
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Ned sa rozbali -- sbor je pokraovanm inho zvzku"
+
+#: src/extract.c:1216
+msgid "Visible long name error"
+msgstr "Viditen chyba dlhho mena"
+
+#: src/extract.c:1224
+#, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
+msgstr "%s: Neznmy typ sboru `%c', rozbalen ako normlny sbor"
+
+#: src/extract.c:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "Z chyby sa nie je mon zotavi: ukonuje sa"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Adresr bol premenovan"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Adresr je nov"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Neplatn as sboru"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "as sboru mimo rozsah"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Neplatn slo zariadenia"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "slo zariadenia je mimo rozsah"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Neplatn slo i-uzlu"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "slo i-uzlu mimo rozsah"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Maem %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ned sa zmaza"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Vynechvam"
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok NUL **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Konec sboru **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Medzery v hlavike na mieste, kde je oakvan seln hodnota typu %s"
+
+#: src/list.c:606
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Osmikov hodnota %.*s typu %s je mimo rozsah; priradzujem dvojkov complement"
+
+#: src/list.c:616
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Osmikov hodnota %.*s typu %s je mimo rozsah"
+
+#: src/list.c:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Archv obsahuje zastaral base-64 hlaviky"
+
+#: src/list.c:645
+#, 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:676
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Hodnota base-256 typu %s je mimo rozsah"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Archv obsahuje %.*s tam, kde je oakavn saln hodnota typu %s"
+
+#: src/list.c:724
+#, 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:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#: src/list.c:946
+msgid "Visible longname error"
+msgstr "Viditen chyba dlhho mena"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr " odkaz na %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " neznmy typ sboru %s\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Hlavika zvzku--\n"
+
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Pokraovan od %s bajtu--\n"
+
+#: src/list.c:1112
+msgid "--Mangled file names--\n"
+msgstr "--Rozdelen meno sboru--\n"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Vytvram adresr:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Neoakvan koniec v rozsekanom mene"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: nie je mon premenova na %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Sbor %s premenovan na %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Odkaz na `%s' nie je mon vytvori"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s odkazuje na %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Neznmy prkaz %s pre spojovanie rozsekanch mien"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Premenovvam %s na %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Premenovvm %s sp na %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Pracovn adresr nie je mon uchova"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Pracovn adresr nie je mon zmeni"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Ned sa %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Varovanie: Ned sa %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Prva nie je mon zmeni na %s"
+
+#: src/misc.c:562
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Vlastnctvo nie je mon zmeni na uid %lu, gid %lu"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Odkaz na %s nie je mon vytvori"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Chyba pri tan na bajte %s, tanie %lu bajtov"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Varovanie: Chyba pri tan na bajte %s, tanie %lu bajtov"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Ned sa zmeni pozcia v sbore na %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Varovanie: Ukazovate v sbore nie je mon premiestni na %s"
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Symbolick odkaz na `%s' nie je mon vytvori"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Zapsan iba %lu z %lu bajtov"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "potomok"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "meziprocesov kanl"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Za -C chba meno sboru"
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: V archve nenjden"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Miesto pre buffer nie je mon alokova\n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Miesto pre buffer nie je mon alokova"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Viac informci zskate prkazom `%s --help'.\n"
+
+#: src/rmt.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"
+msgstr ""
+"Pouitie: %s [PREPNA]\n"
+"Manipuluje s archvom, prjma prkazy vzdialenho procesu.\n"
+"\n"
+" --version Vype oznaenie verzie\n"
+" --help Vype tto npovedu\n"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid "\nReport bugs to <bug-tar@gnu.org>.\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"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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 ""
+" Toto je volne riten programov vybavenie, kter je celkom BEZ ZRUKY.\n"
+"Podmienky pre koprovanie a rozirovanie njdete vo Veobecnej verejnej licencii GNU\n"
+"(GNU General Public Licence). Viac informcizskate v zdrojovch textoch\n"
+"v sbore COPYING."
+
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Vekos pozcie v sbore je mimo rozsah"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Smer posunu v sbore je mimo rozsah"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Predasn koniec sboru\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Predasn koniec sboru"
+
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Neznmy prkaz %c\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Neznmy prkaz"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Sluba nie je k dispozcii"
+
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "stdin"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "stdout"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Vzdialen shell nie je mon spusti"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Prepnae `-%s' a `-%s' vyaduj tandardn vstup"
+
+#: src/tar.c:292
+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 archivan program. Uklad sbory do archvu na psku alebo \n"
+"disk. Z archvu doke rozbali tak cel hierarchie sborov, ako i jednotliv\n"
+"sbory.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Pouitie: %s [PREPNA]... [SBOR]...\n"
+"\n"
+"Prklady:\n"
+" %s -cf archv.tar foo bar # Vytvor archv.tar zo sboru foo a bar.\n"
+" %s -tvf archv.tar # Podrobne vype vetky sbory v archv.tar.\n"
+" %s -xf archv.tar # Rozbal vetky sbory z archv.tar.\n"
+
+#: src/tar.c:303
+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"
+" Ak dlh prepnae maj povinn argument, tak tento argument je\n"
+"povinn i u ich krtkych foriem. Obdobne je tomu v prpade, ke je argument\n"
+"nepovinn.\n"
+
+#: src/tar.c:308
+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"
+"Hlavn funkcie:\n"
+" -t, --list vype obsah archvu\n"
+" -x, --extract, --get vyberie sbor(y) z archvu\n"
+" -c, --create vytvor nov archv\n"
+" -d, --diff, --compare njde rozdiely medzi archvom a sborovm systmom\n"
+" -r, --append prid sbory na koniec archvu\n"
+" -u, --update prid iba sbory novie, ako s v archve\n"
+" -A, --catenate prid sbory z tar archvu do archvu\n"
+" --concatenate rovnak ako -A\n"
+" --delete mae z archvu (nefunguje na magnetickch pskch)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Modifiktory operci:\n"
+" -W, --verify over archv po zpise na mdium\n"
+" --remove-files zmae originlne sbory po ich archivcii\n"
+" -k, --keep-old-files neprepisuje existujce sbory pri rozbaovan\n"
+" archvu\n"
+" --overwrite prepisuje existujce sbory pri rozbaovan\n"
+" --overwrite-dir ak existuj metadta adresra, tak ich prepe\n"
+" -U, --unlink-first mae sbory pred ich prepsanm\n"
+" --recursive-unlink zmae przdne hierarchie pred \n"
+" rozbaovanm adresrov\n"
+" -S, --sparsa sbory s dierami spracuje efektvnejie\n"
+" -O, --to-stdout rozbal archv na tandardn vstup\n"
+" -G, --incremental spracuje star GNU-formt inkrementlnej zlohy\n"
+" -g, --listed-incremental=SBOR\n"
+" spracuje nov GNU-formt inkrementlnej zlohy\n"
+" --ignore-failed-read ignoruje chyby pri tan sborov\n"
+
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Spracovanie vlastnost sboru:\n"
+" --owner=MENO pouije MENO ako vlastnka pridvanch sborov\n"
+" --group=MENO pouije MENO ako skupinu pridvanch sborov\n"
+" --mode=ZMENY pouije ako prva (symbolick) pridvanch\n"
+" sborov\n"
+" --atime-presarve nemen prstupov as na spracovvanch\n"
+" sboroch\n"
+" -m, --modification-time u rozbaovavanch sborov nenastav as\n"
+" poslednej pravy sboru z archvu\n"
+" --same-owner u rozbalovvanch sborov ska nastavi\n"
+" toho istho vlastnka ako je v archve\n"
+" --no-same-owner rozbal sbory a vetky bud vlastnen Vami\n"
+" --numeric-owner vdy pouv sla pre men vlastnka/skupiny\n"
+" -p, --same-permissions u rozbaovanch sborov nastav rovnak\n"
+" prva, ak maj v archve\n"
+" --no-same-permissions pri rozbaovan nenastavuje prva\n"
+" --presarve-permissions rovnak ako -p\n"
+" -s, --same-order zoradenie mien sborov pre rozbalenie je\n"
+" zhodn s archvov\n"
+" --presarve-order rovnak ako -s\n"
+" --presarve rovnak ako zadan -p a -s\n"
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Vber zariadenia:\n"
+" -f, --file=ARCHV pracuje s archivom alebo zariadeniami ARCHV\n"
+" --force-local archvny sbor je loklny, dokonca i kde\n"
+" obsahuje ve mene dvojbodku\n"
+" --rsh-command=PRKAZ pouije PRKAZ pre prihlsenie namiesto rsh\n"
+" -[0-7][lmh] zadanie zariadenia a hustoty\n"
+" -M, --multi-volume prca s viaczvzkovm archvom\n"
+" -L, --tape-length=SLO vymen psku po zapsan SLO x 1024 bajtov\n"
+" -F, --info-script=SBOR spust script na konci kadej psky\n"
+" (zahrnuje i -M)\n"
+" --new-volume-script=SBOR rovnak ako -F SBOR\n"
+" --volno-file=SBOR pouije/aktualizuje slo zvzku v SBORe\n"
+
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Bloky zariadenia:\n"
+" -b, --blocking-factor=BLOKOY BLOKY x 512 bajtov na zznam\n"
+" --record-size=VEKOS VEKOS bajtov na zznam, nsobok 512\n"
+" -i, --ignore-zeros ignoruje nulov bloky v archve,\n"
+" ktor normlne znamenaj EOF.\n"
+" -B, --read-full-records ke nie je pretan toko bajtov,\n"
+" koko je poadovan, ska dota zbostatok\n"
+" (vhodn pre rry)\n"
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Vber formtu archvu:\n"
+" -V, --label=MENO vytvor archv s menom zvzku MENO\n"
+" VZOR v obsahu/rozbaovan globlny vzor\n"
+" pre men sborov\n"
+" -o, --old-archive, --portability zape archv vo formte V7\n"
+" --posix zape archv vo formte POSIX\n"
+" -I, --bzip2 komprimuje archv pomocou bzip2\n"
+" -z, --gzip, --ungzip komprimuje archv pomocou gzip\n"
+" -Z, --compress, --uncompress komprimuje archv pomocou compress\n"
+" --usa-compress-program=PROG komprimuje archv pomocou PROG\n"
+" (ktor mus akceptova -d)\n"
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Vber sborov:\n"
+" -C, --directory=ADRESR opercie vykonva v ADRESRi\n"
+" -T, --files-from=MENO pri rozbalovan alebo vytvren berie nzvy\n"
+" sborov zo sboru MENO\n"
+" --null -T ita nulou ukonen men, zakzan -C\n"
+" --exclude=VZOR nepracuje so sbormi odpovedajcim VZORu\n"
+" -X, --exclude-from=SBOR nepracuje sa so sbormi, ktor zodpovedaj\n"
+" niektormu vzoru v SBORe\n"
+" --anchored nepracuje sa so vzormi, ktorch zanaj ako nzov (predvolen)\n"
+" --no-anchored vynecha vzory za kadm /\n"
+" --ignore-case vynechvanie ignorujce vekosti psmen\n"
+" --no-ignore-case vynechvanie rozoznva vekosti psmen (predvolen)\n"
+" --wildcards vynecha vzory obsahujce wildcards (predvolen)\n"
+" --no-wildcards vynecha vzory obsahujce przdne reazce\n"
+" --wildcards-match-slash vynecha vzory, ktorch wildcards obsahuj '/' (predvolen)\n"
+" --no-wildcards-match-slash vynecha vzory, ktorch wildcards neobsahuj '/'\n"
+" -P, --absolute-names neodstrauje vodn `/' z mien sborov\n"
+" -h, --dereference namiesto symbolickch odkazov pouije sbory,\n"
+" na ktor odkazy ukazuj\n"
+" --no-recursion neprechdza adresre\n"
+" -l, --one-file-system pri vytvran archvu zostane v jednom\n"
+" sborovom systme\n"
+" -K, --starting-file=MENO zane od sboru MENO z archvu\n"
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DTUM archvuje iba sbory novie ako DTUM\n"
+" --newer-mtime=DTUM archveje iba sbory, ktorch dtum ostatnej\n"
+" zmeny dt je novj ako DTUM\n"
+" --after-date=DTUM rovnak ako -N\n"
+
+#: src/tar.c:418
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version control\n"
+" --suffix=SUFFIX backup before removal, override usual suffix\n"
+msgstr ""
+" --backup[=TYP] spsob zlohovania sborov, pred ich prepsanm\n"
+" --suffix=PRPONA zlohuje pred prepsanm (zmazanm), ako prponu\n"
+" u zlonch sborov pouije PRPONu\n"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Informatvny vstup:\n"
+" --help vype tto npovedu a skon\n"
+" --version vype oznaenie verzie programu tar a skon\n"
+" -v, --verbose. vypisuje spracovvan sbory\n"
+" --checkpoint vypisuje men adresrov pri tan archvu\n"
+" --totals vype celkom zapsanch bajtov pri tvorbe archvu\n"
+" -R, --block-number s kadou sprvou vype slo bloku v archve\n"
+" -w, --interactive iada potvrdenie kadej akcie\n"
+" --confirmation rovnak ako -w\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+" Prpona zlonch sborov bude `~', pokia nie je nastaven pomocou --suffix\n"
+"alebo premennej SIMPLE_BACKUP_SUFFIX. Ak sa maj tvori zlon kpie, me by\n"
+"nastaven pomocou prepnaa --backup alebo premennej VERSION_CONTROL. Hodnoty\n"
+"mu by:\n"
+"\n"
+" t, numbered tvoria slovan zlon kpie\n"
+" nil, existing slovan, ak u slovan zlon kpie\n"
+" existuj, inak tvor jednoduch\n"
+" never, simple tvor vdy jednoduch zlon kpie sborov\n"
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+" GNU tar nevie ta alebo produkova `--posix' archvy. Ak je\n"
+"v prostred nastaven POSIXLY_CORRECT, GNU rozrenie je zablokovan prepnaom\n"
+"`--posix'. Podpora POSIX formtu je iastene implementovan, preto s ou prli\n"
+"nepotajte.\n"
+" ARCHV me by SBOR, HOSTITEL:SBOR alebo UIVATEL@HOSTITEL:SBOR,\n"
+"SBOR me by sbor alebo zariadenie. Implicitn prepnae s `-f %s -b %d'.\n"
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Viac ako jeden prepna `-Acdtrux' neme by zadanch"
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Odporujce si kompresn prepnae"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Prepna `%c' vyaduje argument."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Zastaral prepna, je teraz zahrnut v prepnai --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Zastaral prepna, nahraden prepnaom --blocking-factor"
+
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Neplatn poet bajtov na zznam"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Zastaral prepna, nahraden prepnaom --read-full-records"
+
+#: src/tar.c:696
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Varovanie: prepna -I nie je podporovan; pravdepodobne budete chcie poui -j alebo -T!"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "Neplatn dka psky"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Zastaral prepna, nahraden prepnaom --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr "Viac ako jeden poiaton dtum"
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Dtumov sbor nebol njden"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Zamieam %s za neznmy dtumov formt %s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "Odporujce si archvne formty"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Zastaral prepna, nahraden prepnaom --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Zastaral prepna, nahraen prepnaom --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Varovanie: prepna -y nie je podporovan; pravdepodobne budete chcie poui -j!"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Zastaral prepna, nahraden prepnaom --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Chybn skupina"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Zadn chybn prva"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Neplatn vlastnk"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Chybn vekos zznamu"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Vekos zznamu mus by nsobok %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Prepna `-[0-7][lmh]' nie je podporovan tmto tarom"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Autori: John Gilmore a Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU rozrenia poadovan na nekompatibilnom formte archvu"
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Viac archivanch sborov vyaduje prepna `-M'"
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental a --newer nie je mon kombinova"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: Meno zvzku je prli dlh (limit je %lu bajtov)"
+
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Vytvorenie przdneho archvu odmietnut."
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Prepnae `-Aru' a `--delete' s nezliten s prepnaom `-f -'"
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Muste zada jeden z prepnaov `-Acdtrux'"
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Chyba pri zpise na tandardn vstup"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Za behu programu nastala chyba"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: Sbor skrten o bajtov: %s"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Generujem datov sbory pre testovanie GNU taru.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid "\nUsage: %s [OPTION]...\n"
+msgstr "\nPouitie: %s [PREPNA]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+" Povinn argumenty u dlhch prepnaov, s povinn tie u odpovedajcich \n"
+"krtkch prepnaov.\n"
+"\n"
+" -l, --file-length dka generovanho sboru\n"
+" --help vype tto npovedu a skon\n"
+" --version vype oznaenie verzie a skon\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr "Written by F. Pinard."
diff --git a/po/.reference/sk.s1 b/po/.reference/sk.s1
new file mode 100644
index 00000000..b2aad2f6
--- /dev/null
+++ b/po/.reference/sk.s1
@@ -0,0 +1 @@
+253598f40ded289acc2656a9bb5f19d2d711503f -
diff --git a/po/.reference/sl.po b/po/.reference/sl.po
new file mode 100644
index 00000000..7bbd08b3
--- /dev/null
+++ b/po/.reference/sl.po
@@ -0,0 +1,3553 @@
+# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU Tar
+# Copyright (C) 1996, 1999, 2000, 2001, 2005, 2006, 2007, 2009, 2011 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, 2011.
+#
+# $Id: tar-1.26.sl.po,v 1.2 2011/03/12 16:30:39 peterlin Exp $
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-12 17:30+0100\n"
+"Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n"
+"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "neveljaven argument %s za %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "dvoumen argument %s za %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Veljavni argumenti so:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: neznan parameter ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Smetje v ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Argumenti, ki so bodisi obvezni bodisi neobvezni za dolge oblike izbir, so obvezni/neobvezni tudi za kratke oblike."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Uporaba:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " ali: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [IZBIRA...]"
+
+#: gnu/argp-help.c:1684
+#, 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"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Poročila o napakah javite na %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Neznana sistemska napaka"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "poda ta seznam pomoči"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "poda kratka navodila za uporabo"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "IME"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "nastavi ime programa"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "premor SEK sekund (privzeto 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "izpis izdaje programa"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMSKA NAPAKA) Različica ni poznana?!"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Preveč argumentov\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMSKA NAPAKA) Izbira bi morala biti prepoznana?!"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "napaka pri pisanju"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: izbira »%s« ni enopomenska\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: izbira »--%s« ne dovoljuje argumenta\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: izbira »%c%s« ne dovoljuje argumenta\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: izbira »--%s« zahteva argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: neprepoznana izbira »--%s«\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: neprepoznana izbira »%c%s«\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: neveljavna izbira -- »%c«\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: izbira zahteva argument -- »%c«\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: izbira »-W %s« ni enopomenska\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: izbira »-W %s« ne dovoljuje argumenta\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: izbira »-W %s« zahteva argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "pomnilnik porabljen"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "ni mogoče zabeležiti trenutnega imenika"
+
+#: gnu/openat-die.c:59
+#, c-format
+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.
+#.
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "»"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "«"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[dDjJ]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Priprava paketa: %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Priprava paketa: %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+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.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Avtor(ica): %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:108
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Avtorja %s in %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Poročila o napakah javite na %s.\n"
+"Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge.net>.\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr ""
+"Poročila o napakah %s javite na %s.\n"
+"Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge.net>.\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Spletna stran %s: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "Spletna stran %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 "Splošna pomoč za rabo programja 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: Klic funkcije %s ni uspel"
+
+# 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: Klic funkcije %s ni uspel"
+
+#: 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Odstranjujemo vodilne »%s« iz imen elementov"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Odstranjujemo vodilne »%s« iz imen trdih povezav"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Nadomeščamo manjkajoča imena elementov s ».«"
+
+#: lib/paxnames.c:155
+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
+#, c-format
+msgid "Cannot connect to %s: resolve failed"
+msgstr "Priklop na %s ni mogoč: razrešitev ni uspela"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Ni mogoče pognati nelokalne ukazne lupine"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Smer iskanja izven obsega"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Neveljavna smer iskanja"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Neveljaven odmik pri seek"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Odmik pri seek izven obsega"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Neveljaven števec bajtov"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Prekoračitev števca bajtov"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Predčasen znak za konec datoteke"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Neveljavna koda operacije"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operacija ni podprta"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Nepričakovani argumenti"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Nadzor tračne enote, ki bere ukaze iz drugega procesa"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "N"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "nastavi raven iskanja napak"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "DATOTEKA"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "določi datoteko za izpis iskanja napak"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "ni mogoče odpreti %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "preveč argumentov"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Neveljaven ukaz"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "To ne deluje kot arhiv ,tar'"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Skupno zapisanih bajtov"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Skupno prebranih bajtov"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Skupno izbrisanih bajtov: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(cev)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Neveljavna vrednost za dolžino zapisa (record_size)"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Ime arhiva ni podano"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Arhivov na stdin/stdout ni mogoče preveriti"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arhiv je stisnjen. Uporabite izbiro %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Stisnjenega arhiva ni mogoče ažurirati"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Na začetku traku, končujem"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Preveč napak, končujem"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Dolžina zapisa = %lu blokov"
+msgstr[1] "Dolžina zapisa = %lu blok"
+msgstr[2] "Dolžina zapisa = %lu bloka"
+msgstr[3] "Dolžina zapisa = %lu bloki"
+
+#: src/buffer.c:913
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Neporavnan blok (%lu bajtov) v arhivu"
+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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek se ni ustavil na meji zapisa"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: vsebuje neveljavno številko dela"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Prekoračitev številke dela"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Pripravite del #%d za %s in pritisnite Return: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "Znak EOF na mestu, kjer se pričakuje odgovor uporabnika"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "POZOR: Arhiv nepopoln"
+
+#: src/buffer.c:1148
+#, 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 [ime] Podamo novo ime datoteke za naslednji del (in vse nadaljnje)\n"
+" q Končamo tar\n"
+" y, newline Nadaljujemo z delovanjem\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Poženemo ukazno podlupino\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Ta seznam uzazov\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Novega dela ni, konec.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Ime datoteke ni določeno. Poskusite znova.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Neveljaven vnos. Vtipkajte ? za pomoč.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "ukaz %s neuspešen"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s se ne nadaljuje v tem delu"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s je napačne velikosti (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Ta del ne sodi v zaporedje (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arhiv ni označen skladno z %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Del %s ne ustreza %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: ime datoteke je predolgo za zapis v zaglavje GNU večdelnega arhiva; porezano"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "pisanje se ni končalo s koncem bloka"
+
+#: 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] "Prebrati je bilo moč samo %lu od %lu bajtov"
+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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Vsebina se razlikuje"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Nepričakovan znak za konec datoteke v arhivu"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Zvrst datoteke se razlikuje"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Način se razlikuje"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Številka uporabnika (UID) se razlikuje"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Številka skupine (GID) se razlikuje"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Čas zadnje spremembe se razlikuje"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Velikost se razlikuje"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ni povezana z %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Simbolna povezava se razlikuje"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Številka enote se razlikuje"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Preverjanje "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Neznana vrsta datoteke »%c«, diff kot na navadni datoteki"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arhiv vsebuje imena datotek z odstranjenimi vodilnimi predponami."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Arhiv vsebuje transformirana imena datotek."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Verifikacija morda ne bo uspela locirati izvornih datotek."
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "NAPAKA PRI PREVERJANJU: najdeno %d neveljavnih glav"
+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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Osamljeni ničelni blok pri %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: vsebuje značko medpomnilniškega imenika %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "vrednost %s od %s obseg %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Ustvarjanje negativnih osmiških glav"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: ime datoteke je predolgo (največ %d); brez iznosa"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: ime datoteke je predolgo (ni mogoče deliti); brez iznosa"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: ime povezave je predolgo; brez iznosa"
+
+#: src/create.c:1064
+#, 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 skrčena za %s bajtov; dopolnjeno z ničlami"
+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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "vsebina ni iznešena"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Neznan tip datoteke; datoteka ignorirana"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Manjkajo povezave na %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: datoteka je nespremenjena; brez iznosa"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: datoteka je arhiv; brez iznosa"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "imenik ni iznešen"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: Datoteka je bila spremenjena med branjem"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: vtičnica ignorirana"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: vrata ignorirana"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Preskok na naslednjo glavo"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Brisanje ne-glave iz arhiva"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: neverjetno stara časovna oznaka %s"
+
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Nepričakovana neskladnost pri ustvarjanju imenika"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Imenik preimenovan, preden je bilo moč restavrirati njegov status"
+
+# POZOR! "contiguous files" so datoteke, ki so zapisane na disku
+# na zaporednih sektorjih (na tistih OS, ki jih podpirajo).
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Neprekinjene datoteke restavriramo kot navadne"
+
+# POZOR! Grdo!
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Simbolne povezave poskusimo dearhivirati kot trde"
+
+#: src/extract.c:1365
+#, 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:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Nepričakovano zaglavje z dolgim imenom"
+
+#: src/extract.c:1379
+#, 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:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Obstoječa »%s« je novejša ali enako stara"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Varnostne kopije te datoteke ni moč napraviti"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Preimenovanje %s v %s ni mogoče"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Imenik je bil preimenovan z %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Imenik je bil preimenovan"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Imenik je nov"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Neveljavna oznaka časa"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Neveljaven čas spremembe (sekunde)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Neveljaven čas spremembe (nanosekunde)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Neveljavna številka enote"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Neveljavna številka inoda"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Predolgo polje pri branju trenutnega posnetka"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Napaka pri branju trenutnega posnetka"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Nepričakovan znak za konec datoteke v trenutnem posnetku"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Nepričakovana vrednost polja v trenutnem posnetku"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Manjkajoč zaključek zapisa"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Okvarjen inkrementalni zapis datoteke"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Nepodprta različica inkrementalnega zapisa: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Skladenjska napaka pri imeniku za iznos: pričakovan »%c«, najden %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Skladenjska napaka pri imeniku za iznos: »X« podvojen"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Skladenjska napaka pri imeniku za iznos: manjkajoče ime pri »R«"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Skladenjska napaka pri imeniku za iznos: polja »T« ne predhodi polje »R«"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Skladenjska napaka pri imeniku za iznos: manjkajoče ime pri »T«"
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Skladenjska napaka pri imeniku za iznos: pričakovan »%c«, najden konec podatkov"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Skladenjska napaka pri imeniku za iznos: »X« ni uporabljen"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Ni mogoče ustvariti začasnega imenika po šabloni %s"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Imenika ne čistimo: statistika zanj ni dosegljiva"
+
+#: src/incremen.c:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Brišemo %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Odstranitev ni mogoča"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Izpuščeno"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok znakov NUL **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Konec datoteke **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, 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:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Osmiška vrednost arhiva %.*s izven obsega %s"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arhiv vsebuje zastarele glave oblike base-64"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " povezava na %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " neznan tip datoteke %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Dolga povezava--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Dolgo ime--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Glava dela--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Nadaljevanje pri bajtu %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Ustvarjamo imenik:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Delovnega imenika ni mogoče ugotoviti"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Preimenujemo %s v %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Preimenovanje v %s ni mogoče"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Preimenujemo %s nazaj v %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Datoteka je bila odstranjena, preden smo jo prebrali"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "proces naslednik"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "medprocesni kanal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Z vzorcem ujemajoči se znaki, uporabljeni v imenih datotek"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Uporabite --wildcards, da bi omogočili ujemanje vzorcev, ali --no-wildcards, da izklopite to opozorilo"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Ni najdeno v arhivu"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Zahtevane pojavitve ni moč najti v arhivu"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Neskladje v oznaki arhiva"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "Izbira -C znotraj seznama datotek pri --listed-incremential ni dovoljena"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Samo ena izbira -C je dovoljena pri --listed-incremential"
+
+#: 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Neveljavna oblika arhiva"
+
+#: 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: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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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« shranjuje več datotek skupaj na trak ali v arhiv na disku ter lahko povrne posamezne datoteke iz arhiva.\n"
+"\n"
+"Zgledi:\n"
+" tar -cf arhiv.tar prva druga # Ustvarimo arhiv.tar z datotekama prva in druga.\n"
+" tar -tvf arhiv.tar # Izčrpen seznam datotek v arhivu arhiv.tar.\n"
+" tar -xf arhiv.tar # Restavriramo vse datoteke iz arhiva arhiv.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Pripona varnostne kopije je »~«, razen če ni drugače določeno z izbiro --suffix\n"
+"ali s spremenljivko SIMPLE_BACKUP_SUFFIX. Vrsto varnostne kopije lahko določimo\n"
+"z izbiro --backup ali s spremenljivko VERSION_CONTROL. Vrednosti so:\n"
+"\n"
+" none, off nikoli ne izdeluj varnostnih kopij\n"
+" t, numbered oštevilčene varnostne kopije\n"
+" nil, existing oštevilčene varnostne kopije, če take že obstajajo,\n"
+" sicer enostavne\n"
+" never, simple vedno enostavne varnostne kopije\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Glavni načini delovanja:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "izpiši vsebino arhiva"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "restavriraj datoteke iz arhiva"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "ustvarjanje novega arhiva"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "iskanje razlik med arhivom in datotečnim sistemom"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "dodajanje datotek na konec arhiva"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "dodajanje novih datotek, če so novejše od že arhiviranih"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "zlivanje arhivov"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "brisanje datotek iz arhiva (ne deluje na traku!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "preizkusi oznako dela arhiva in zaključi"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Določila delovanja:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "ekonomično ravnanje z razpršenimi datotekami"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "GLAVNI[.POMOŽNI]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "izberi uporabljeno različico razpršenega zapisa (implicira --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "stari zapis GNU za inkrementalne arhive"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "novi zapis GNU za inkrementalne arhive"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "raven izmeta za ustvarjene inkrementalne arhive"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "nadaljuj z branjem, tudi če datoteke ni moč prebrati"
+
+#: src/tar.c:429
+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 "obdelaj le vsako N-to pojavitev vsake datoteke v arhivu. Ta izbira je veljavna le v zvezi z enim od podukazov --delete, --diff, --extract ali --list, pri čemer je seznam datotek podan bodisi v ukazni vrstici, bodisi z izbiro -T. Privzeta vrednost N je 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "po arhivu je mogoče iskati"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "po arhivu ni mogoče iskati"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "pri izdelavi inkrementalnega arhiva ne preverjaj številke naprav"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "pri izdelavi inkrementalnega arhiva preverjaj številke naprav (privzeto)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Nadzor nad pisanjem prek:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "s poskusom preverjanja zapisanega arhiva"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "pobriši datoteke, potem ko so arhivirane"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "pri restavriranju ne piši prek obstoječih datotek"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "pri restavriranju piši prek obstoječih datotek"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "s poprejšnjim brisanjem obstoječih datotek pri restavriranju istoimenskih novih"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "izprazni hierarhije pred restavriranjem imenikov"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "ohrani metainformacije o obstoječih imenikih"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "pri restavriranju piši prek metapodatkov obstoječih imenikov (privzeto)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Izbira izhodnega toka:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "datoteke restavriraj na standardni izhod"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "UKAZ"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "datoteke napelji na vhod drugega programa"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "prezri izhodne kode hčerinskih procesov"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "obravnavaj neničelne izhodne kode hčerinskih procesov kot napako"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Ravnanje z atributi datotek:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "pri dodajanju datotek spremenimo lastnika v IME"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "pri dodajanju datotek spremenimo skupino v IME"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATUM-ČAS"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "nastavi mtime za dodane datoteke iz DATUM-ALI-DATOTEKA"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "SPREMEMBE"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "zahtevaj (simbolne) SPREMEMBE zaščite za dodane datoteke"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODA"
+
+#: src/tar.c:499
+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 "ohrani čas dostopa na iznesenih datotekah, bodisi z restavriranjem časa po branju (METODA=replace, privzeto) ali tako, da se časa sploh ne nastavi (METODA=system)"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "brez restavriranja časa spremembe"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "skušaj restavrirati datoteke tako, da se ohrani njihov lastnik iz arhiva (privzeto za administratorja)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "restavriraj datoteke tako, da postanemo njihov lastnik (privzeto za navadne uporabnike)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "s številčnimi vrednostmi UID/GID namesto imen"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "restavriraj podatke o dovoljenjih za dostop do datotek (privzeto za administratorja)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "uporabi uporabnikovo masko umask pri restavriranju dovoljenj za dostop do datotek (privzeto za uporabnike)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "imena razvrstimo tako, da se ujemajo z arhivom"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "isto kot -p in -s skupaj"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "z nastavljanjem časa sprememb in dovoljenja za dostop za restavrirane imenike počakaj do zaključka restavriranja"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "prekliči učinek izbire --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Izbira enote in preklapljanje:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARHIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "uporabi datoteko ali enoto ARHIV"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "arhiv je lokalen kljub dvopičju v imenu datoteke"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "uporabi navedeni UKAZ rmt namesto rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "uporabi nelokalen UKAZ namesto rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "določi enoto in gostoto zapisa"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "ustvari/preglej/restavriraj arhiv v več delih"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "menjava traku po ŠT x 1024 zapisanih bajtih"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "poženi SKRIPT po koncu traku (privzema -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "uporabimo/ažuriramo število dela v DATOTEKI"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Bločna razdelitev enote:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKI"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "dolžina zapisa BLOKI × 512 bajtov"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "ŠTEVILO bajtov v zapisu (večkratnik 512)"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ne meni se za bloke ničel (EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "razdeli na bloke ob branju (cevovodi 4.2BSD)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Izbira oblike arhiva:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "OBLIKA"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "ustvari arhiv v navedeni obliki"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "OBLIKA je nekaj od naštetega:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "oblika starega V7 tar"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "stara oblika GNU tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "oblika GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "oblika POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "oblika POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "isto kot pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "isto kot --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "isto kot --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "ključ[[:]=vrednost][,ključ[[:]=vrednost]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "krmilni ključi pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "VZOREC"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "ustvari arhiv z imenom dela IME; pri izpisu seznama/restavriranju je lahko IME regularni izraz za ime dela"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Izbire glede stiskanja:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "program za stiskanje ugotovi iz pripone arhiva"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "ne ugotavljaj programa za stiskanje iz pripone arhiva"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROGRAM"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtriraj skozi PROGRAM (sprejemati mora izbiro -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Izbira lokalne datoteke:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "IMENIK"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "pomik v navedeni IMENIK"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "preberi seznam datotek z navedene DATOTEKE"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T prebere z \\000 terminirana imena; onemogoči -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "prekliči učinek prejšnje izbire --null"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "odstrani narekovaje iz imen datotek, prebranih s -T (privzeto)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "ne odstrani narekovajev iz imen datotek, prebranih s -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "VZOREC"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "brez datotek, ki jih opisuje VZOREC"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "brez datotek, ustrezajočim vzorcem, prebranih z DATOTEKE"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "brez vsebine imenikov, ki vsebujejo značko CACHEDIR.TAG, razen značke same"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "brez imenikov, ki vsebujejo značko CACHEDIR.TAG, in vseh njihovih podimenikov"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "brez imenikov, ki vsebujejo značko CACHEDIR.TAG"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "brez vsebine imenikov, ki vsebujejo DATOTEKO, razen DATOTEKE same"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "brez imenikov, ki vsebujejo DATOTEKO, in vseh njihovih podimenikov"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "brez imenikov, ki vsebujejo DATOTEKO"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "brez imenikov sistema za nadzor različic"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "brez varnostnih kopij in zaklepnih datotek"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "podimenikov ne vključujemo avtomatično"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "pri arhiviranju izpusti datoteke na nelokalnih datotečnih sistemih"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "rekurzivno vključi vse podimenike"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "ne odstrani vodilnih »/« iz imen datotek"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "sledi simbolnim povezavam; arhiviraj/iznesi ciljne datoteke"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "sledi trdim povezavam; arhiviraj/iznesi ciljne datoteke"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "IME"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "začenši z navedenim IMENOM v arhivu"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "shrani le datoteke, novejše od DATUM-ČAS"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATUM"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "primerjaj datum in uro le, kadar se podatki spremenijo"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "TIP"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "varnostna kopija pred brisanjem, z možnostjo izbire TIPA varnostne kopije"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "NIZ"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "varnostna kopija pred brisanjem; prekličemo običajno PRIPONO (»~«, razen če lupinska spremenljivka SIMPLE_BACKUP_SUFFIX določa drugače)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Pretvorbe imen datotek:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "pri restavriranju poreži ŠTEVILO vodilnih komponent iz imen datotek"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "IZRAZ"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "uporabi nadomestitveni IZRAZ programa sed za pretvorbo imen datotek"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Izbire ujemanja imen datotek (vpliva tako na vključitvene kot na izključitvene vzorce):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "brez razlike med malimi in velikimi črkami"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "vzorci se ujemajo z začetkom imena datoteke"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "vzorci se ujemajo od kateregakoli znaka »/« dalje (privzeto pri izključitvi)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "pri ujemanje se razlikuje med malimi in velikimi črkami (privzeto)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "uporabi nadomestne znake (privzeto za izključitvi)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "dobesedno ujemanje nizov"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "nadomestni znaki se ne ujemajo z »/«"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "nadomestni znaki se ujemajo z »/« (privzeto pri izključitvi)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informativni izpisi:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "z izčrpnim izpisom obdelanih datotek"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KLJUČ"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "nadzor opozorila"
+
+#: src/tar.c:743
+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:745
+msgid "ACTION"
+msgstr "DEJANJE"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "na vsaki kontrolni točki izvedi DEJANJE"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "izpiši sporočilo, če niso zapisane vse povezave"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "izpiši skupno število bajtov po obdelavi arhiva; skupaj z argumentom - izpiši skupno število bajtov do prejema SIGNALA; Dovoljeni signali so: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 in SIGUSR2, prepoznana so tudi imena signalov brez predpone SIG-"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "izpiši čase sprememb datotek v UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "izpiši čas datoteke v polni ločljivosti"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "zapiši izčrpno poročilo v DATOTEKO"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "z izpisom zaporednega bloka v arhivu ob vsakem sporočilu"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "vprašaj za potrditev pri vsakem koraku"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "prikaži privzete nastavitve"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "pri izpisu seznama ali restavriranju izpiši vsak imenik, ki ne ustreza iskalnim pogojem"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "prikaži imena datotek ali arhivov po pretvorbi"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "SLOG"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "nastavi slog navajanja imen; glej spodaj za veljavne SLOGE"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "dodatno navedi znake iz NIZA"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "onemogoči navajanje znakov iz NIZA"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Združljivostne izbire:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "ob ustvarjanju arhiva isto kot --old-archive; ob restavriranju isto kot --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Druge izbire:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "onemogoči rabo nekaterih potencialno škodljivih izbir"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Podate lahko največ eno od izbir »-Acdtrux« ali »--test-label«"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Nasprotujoče si izbire glede stiskanja arhiva"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Neznano ime signala: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Datoteke z vzorcem datuma ni najti"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Nadomeščamo %s za neznan format datuma %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Izbira %s: Datum »%s« obravnavamo kot %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: seznam datotek je že prebran"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: prebrano ime datoteke vsebuje znak \\0"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtriraj arhiv skozi %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Veljavni argumenti pri izbiri --quoting-style so:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Privzete vrednosti *tega* programa tar:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Neveljaven faktor blokiranja"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Neveljavna dolžina traku"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Okvarjena vrednost inkrementalne ravni"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Več kot en pražni podatek"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Neveljavna vrednost razpršene različice"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "izbira --atime-preserve='system' na tem sistemu ni podprta"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "vrednost --checkpoint ni celo število"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Neveljavna skupina"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Podana zaščita ni veljavna"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Neveljavno število"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Neveljaven lastnik"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Raba izbire --preserve je odsvetovana, uporabite --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Neveljavna dolžina zapisa"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Dolžina zapisa mora biti večkratnik %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Neveljavno število elementov"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Dovoljena je le ena izbira --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Okvarjen argument gostote: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Neznana gostota: »%c«"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[DATOTEKA]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Stara izbira »%c« zahteva argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence nima pomena brez seznama datotek"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence ni mogoče uporabiti v zahtevanem načinu delovanja"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Več arhivskih datotek zahteva izbiro »-M«"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Izbire --listed-incremental ni mogoče kombinirati z --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "Izbira --level je brez pomena brez izbire --listed-incremential"
+
+#: src/tar.c:2423
+#, 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: Oznaka dela je predolga (omejitev je %lu bajtov)"
+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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Arhivov v več delih ni mogoče preveriti"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Stisnjenega arhiva ni mogoče preveriti"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Stisnjeni arhivi v več delih niso mogoči"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Stisnjenega arhiva ni mogoče združevati"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "izbira --pax-option je mogoča le na arhivih POSIX"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Dolžina dela ne more biti manjša od velikosti zapisa"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "Izbiri --preserve-order in --listed-incremential sta nezdružljivi"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Zahteva po odprtju praznega arhiva bojazljivo zavrnjena"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Izbire »-Aru« so nezdružljive z »-f -«"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Ena od izbir »-Acdtrux« ali »--test-label« je obvezna"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Zaradi predhodnih napak zaključujemo s statusom napake"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: Datoteka skrčena za %s bajtov"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Ključ %s je bodisi neznan, bodisi še ni izveden"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Oznaka časa izven obsega"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Vzorca %s ni mogoče uporabiti"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Ključa %s ni mogoče preklicati"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Poškodovana razširjena glava: manjka dolžina"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Dolžina razširjene glave je izven dovoljenega obsega"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Dolžina razširjene glave %*s je izven dovoljenega obsega"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Poškodovana razširjena glava: za dolžino manjka presledek"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Poškodovana razširjena glava: manjka enačaj"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Poškodovana razširjena glava: manjka znak za novo vrstico"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ne upoštevamo neznanega ključa razširjene glave »%s«"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Ustvarjeni par ključ/vrednost je predolg (ključ=%s, dolžina=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Par %s=%s v razširjeni glavi je izven obsega %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Poškodovana razširjena glava: neveljavni %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Poškodovana razširjena glava: odvečni %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Poškodovana razširjena glava: neveljavni %s: nepričakovani razmejilnik %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Poškodovana razširjena glava: neveljavni %s: liho število vrednosti"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: neveljaven čas preteka"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: neznano dejanje za kontrolno točko"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "zapiši"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "preberi"
+
+# POZOR Poglej v source!
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Oznaka pisanja %u"
+
+# POZOR Poglej v source!
+#. 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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Oznaka branja %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile pripravi datoteke za testno zbirko GNU paxutils.\n"
+"IZBIRE so:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Izbire ustvarjenja datotek:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "VELIKOST"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Ustvari arhiv z navedeno VELIKOSTJO"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Zapiši na podano DATOTEKO namesto na standardni izhod"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Preberi imena datotek iz podane DATOTEKE"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T prebere z \\000 terminirana imena"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Zapiše v datoteko dani VZOREC. VZOREC je lahko 'default' ali 'zeros'"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Velikost bloka za razpršeno datoteko"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Ustvari razpršeno datoteko. Preostanek ukazne vrstice podaja preslikavo datoteke."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "ODMIK"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "pomakni se na dani odmik pred pisanjem podatkov"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Izbire statistike datotek:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Izpiši vsebino strukture stat za vsako od datotek. Privzeti FORMAT je: "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Izbire za sinhrono izvajanje:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "IZBIRA"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Izvedi ARGUMENTE. Uporabno z izbiro --checkpoint in eno od naslednjih izbir: --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Ob dosegu kontrolne točke N izvedi dano dejanje (glejte spodaj)"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Nastavi datum za naslednjo izbiro --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Izpiši izvedene kontrolne točke in izhodni status UKAZA"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Dejanja sinhronega izvajanja. Izvedejo se, ko je dosežena ena od kontrolnih točk, podana z izbiro --checkpoint."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Skrajšaj DATOTEKO na dolžino, določeno s prejšnjo izbiro --length (ali 0, če ta ni podana)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Dodaj VELIKOST bajtov DATOTEKI. VELIKOST je podana s prejšnjo izbiro --length."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Posodobi čas dostopa in spremembe za DATOTEKO"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Izvedi UKAZ"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Odstrani DATOTEKO"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Neveljavna velikost: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Številka izven dovoljenega obsega: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negativna velikost: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "klic stat(%s) ni uspel"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "zahtevana dolžina datoteke %lu, dejanska %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "ustvarjena datoteka ni razpršena"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Napaka pri razčlembi števila pri »%s«"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Neznana format datuma"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENT...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "ni mogoče odpreti »%s«"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "klic seek() ni mogoč"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "datoteka vsebuje znak NUL"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "razpršenih datotek ni mogoče ustvariti na standardnem izhodu, uporabite izbiro --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "nepravilna maska (pri »%s«)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Neznano polje »%s«"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "ni mogoče nastaviti časa za »%s«"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "ni mogoče odstraniti »%s«"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Ukaz se je uspešno zaključil\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Ukaz se je zaključil neuspešno s statusom %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Ukaz je bil prekinjen s signalom %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Ukaz je bil ustavljen s signalom %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Ukaz je izvrgel pomnilniško sliko\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Ukaz je bil prekinjen\n"
+
+# POZOR Je to res to?
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat zahteva imena datotek"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: Imenik je bil odstranjen, preden smo ga prebrali"
+
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: nedovoljena izbira -- %c\n"
+
+#~ 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 "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 "Reading %s\n"
+#~ msgstr "Branje %s\n"
+
+#~ msgid "Error is not recoverable: exiting now"
+#~ msgstr "Napake ni moč popraviti: zapuščamo"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Delovnega imenika ni mogoče shraniti"
+
+#~ 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 "filter the archive through lzma"
+#~ msgstr "filtriraj arhiv skozi gzip"
+
+#, fuzzy
+#~ msgid "filter the archive through lzop"
+#~ msgstr "filtriraj arhiv skozi gzip"
+
+#~ 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"
+
+#~ msgid "block size"
+#~ msgstr "velikost bloka"
+
+#~ msgid "%s: Read error at byte %s, reading %lu byte"
+#~ msgid_plural "%s: Read error at byte %s, reading %lu bytes"
+#~ msgstr[0] "%s: Napaka pri branju pri bajtu %s, prebrano %lu bajtov"
+#~ msgstr[1] "%s: Napaka pri branju pri bajtu %s, prebran %lu bajt"
+#~ msgstr[2] "%s: Napaka pri branju pri bajtu %s, prebrana %lu bajta"
+#~ msgstr[3] "%s: Napaka pri branju pri bajtu %s, prebran %lu bajti"
+
+#~ msgid "rmtd: Garbage command %c\n"
+#~ msgstr "rmtd: Neveljaven ukaz %c\n"
+
+#~ msgid "Modification time (seconds) out of range"
+#~ msgstr "Čas spremembe (sekunde) izven obsega"
+
+#~ msgid "Modification time (nanoseconds) out of range"
+#~ msgstr "Čas spremembe (nanosekunde) izven obsega"
+
+#~ msgid "Device number out of range"
+#~ msgstr "Številka enote izven obsega"
+
+# POZOR Je to res to?
+#~ msgid "--Mangled file names--\n"
+#~ msgstr "--Predelana imena datotek--\n"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "Datoteka %s preimenovana v %s"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ msgstr "%s: Simbolna povezava na %s ni mogoča"
+
+#~ msgid "Symlinked %s to %s"
+#~ msgstr "%s simbolno povezano z %s"
+
+#~ msgid "Unknown demangling command %s"
+#~ msgstr "Neznan ukaz %s za restavriranje izvornih imen"
+
+#~ msgid "Missing file name after -C"
+#~ msgstr "Za izbiro -C manjka ime datoteke"
+
+#~ msgid "exclude patterns are plain strings"
+#~ msgstr "izključitveni vzorci ne vsebujejo metaznakov"
+
+#~ msgid "same as -N"
+#~ msgstr "isto kot -N"
+
+#~ msgid "exclude patterns use wildcards (default)"
+#~ msgstr "izključitveni vzorci vsebujejo metaznake (privzeto)"
+
+#~ msgid "print total bytes written while creating archive"
+#~ msgstr "z izpisom celotne dolžine pri zapisu"
+
+#~ msgid "Semantics of -l option will change in the future releases."
+#~ msgstr "Pomen izbire -l se bo v prihodnjih izdajah spremenil"
+
+#~ msgid "Please use --one-file-system option instead."
+#~ msgstr "Prosimo, uporabite raje izbiro --one-file-system"
+
+#~ 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 ""
+#~ "Program je BREZ VSAKEGA JAMSTVA, do zakonsko dovoljene meje. Razširjate ga\n"
+#~ "lahko pod pogoji, določenimi v Splošni javni licenci GNU; za podrobnosti si\n"
+#~ "oglejte datoteko COPYING."
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "POZOR: Oznaka dela manjka"
+
+#~ msgid "Visible long name error"
+#~ msgstr "Opazna napaka zaradi dolgih imen"
+
+#~ msgid "Visible longname error"
+#~ msgstr "Opazna napaka zaradi dolgih imen"
+
+#~ msgid "don't change access times on dumped files"
+#~ msgstr "brez spreminjanja časa zadnjega dostopa"
+
+#~ msgid "extract permissions information"
+#~ msgstr "z ohranitvijo zaščite datotek"
+
+#~ msgid "do not extract permissions information"
+#~ msgstr "brez ohranjanja zaščite datotek"
+
+#~ msgid "FILE-OF-NAMES"
+#~ msgstr "DATOTEKA"
+
+#~ msgid "dump instead the files symlinks point to"
+#~ msgstr "shranimo datoteke, na katere kažejo simbolne povezave"
+
+#~ msgid "Print license and exit"
+#~ msgstr "Izpis dovoljenja za rabo in izhod"
+
+#~ msgid ""
+#~ "Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n"
+#~ "for complete list of authors.\n"
+#~ msgstr ""
+#~ "Osnovano na delu Johna Gilmora in Jaya Fenlasona. Celoten seznam sodelavcev\n"
+#~ "je v datoteki AUTHORS.\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"
+#~ msgstr ""
+#~ " GNU tar je prost program; lahko ga razširjate ali spreminjate pod pogoji,\n"
+#~ " skladnimi s drugo ali poznejšimi izdajami splošnega javnega dovoljenja GNU\n"
+#~ " (GNU General Public License), izdanem pri Fundaciji za prosto programje\n"
+#~ " (Free Software Foundation).\n"
+#~ "\n"
+#~ " GNU tar se razširja v upanju, da je koristen, vendar BREZ KAKRŠNEGAKOLI\n"
+#~ " JAMSTVA, niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA RABO.\n"
+#~ " Za podrobnosti si oglejte »GNU General Public License«.\n"
+#~ "\n"
+#~ " Izvod »GNU General Public License« bi moral biti priložen temu programu;\n"
+#~ " če ni, pišite Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
+#~ " Boston, MA 02111-1307, USA.\n"
+
+#~ msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+#~ msgstr "Opozorilo: izbira -y ni podprta, morda ste želeli -j?"
+
+#~ msgid "Error in writing to standard output"
+#~ msgstr "Napaka pri pisanju na standardni izhod"
+
+#~ msgid "Cannot dup"
+#~ msgstr "Podvojitev ni mogoča"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "Ni mogoče uporabiti stisnjenih ali ne-lokalnih arhivov"
+
+#~ msgid "tar (child)"
+#~ msgstr "tar (naslednik)"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (pranaslednik)"
+
+#~ msgid "Child returned status %d"
+#~ msgstr "Naslednik vrnil status %d"
+
+#~ msgid "Member names contain `..'"
+#~ msgstr "Imena elementov vsebujejo ,..`"
+
+#~ msgid "%s: Member name contains `..'"
+#~ msgstr "%s: Ime elementa vsebuje ,..`"
+
+#~ 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` shranjuje več datotek skupaj na trak ali arhiv na disku, ter lahko\n"
+#~ "vrne posamezne datoteke iz arhiva.\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"
+#~ "Če je pri daljši obliki izbire napisano, da ta zahteva argument, je argument\n"
+#~ "obvezen tudi za kratko obliko. Podobno velja za neobvezne argumente.\n"
+
+#~ 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"
+#~ "Glavni načini delovanja:\n"
+#~ " -t, --list izpis vsebine arhiva\n"
+#~ " -x, --extract, --get izvlečenje datoteke iz arhiva\n"
+#~ " -c, --create ustvarjanje novega arhiva\n"
+#~ " -d, --diff, --compare iskanje razlik med arhivom in datotečnim sistemom\n"
+#~ " -r, --append dodajanje datotek na konec arhiva\n"
+#~ " -u, --update nadomestitev starih/dodajanje novih datotek\n"
+#~ " -A, --catenate zlivanje arhivov\n"
+#~ " --concatenate isto kot -A\n"
+#~ " --delete brisanje datotek iz arhiva (ne deluje na traku!)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Operation modifiers:\n"
+#~ " -W, --verify attempt to verify the archive after writing it\n"
+#~ " --remove-files remove files after adding them to the archive\n"
+#~ " -k, --keep-old-files don't replace existing files when extracting\n"
+#~ " --overwrite overwrite existing files when extracting\n"
+#~ " --overwrite-dir overwrite directory metadata when extracting\n"
+#~ " -U, --unlink-first remove each file prior to extracting over it\n"
+#~ " --recursive-unlink empty hierarchies prior to extracting directory\n"
+#~ " -S, --sparse handle sparse files efficiently\n"
+#~ " -O, --to-stdout extract files to standard output\n"
+#~ " -G, --incremental handle old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " handle new GNU-format incremental backup\n"
+#~ " --ignore-failed-read do not exit with nonzero on unreadable files\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Določila:\n"
+#~ " -W, --verify s poskusom preverjanja zapisanega arhiva\n"
+#~ " --remove-files z brisanjem datotek, dodanih v arhiv\n"
+#~ " -k, --keep-old-files brez brisanja obstoječih datotek pri izvlačenju\n"
+#~ " --overwrite s pisanjem prek obstoječih datotek pri izvlačenju \n"
+#~ " --overwrite-dir s pisanjem prek obstoječih imenikov pri izvlačenju\n"
+#~ " -U, --unlink-first s poprejšnjim brisanjem obstoječih datotek pri \n"
+#~ " izvlačenju istoimenskih novih\n"
+#~ " --recursive-unlink izpraznimo hierarhije pred izvlačenjem imenikov\n"
+#~ " -S, --sparse ekonomično ravnanje z razpršenimi datotekami\n"
+#~ " -O, --to-stdout izvlačenje na standardni izhod\n"
+#~ " -G, --incremental stari format GNU za inkrementalne arhive\n"
+#~ " -g, --listed-incremental=DATOTEKA\n"
+#~ " novi format GNU za inkrementalne arhive\n"
+#~ " --ignore-failed-read nadaljuj z branjem, tudi če datoteke ni moč prebrati\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --preserve same as both -p and -s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Ravnanje z atributi datotek:\n"
+#~ " --owner=IME pri dodajanju datotek spremenimo lastnika v IME\n"
+#~ " --group=IME pri dodajanju datotek spremenimo skupino v IME\n"
+#~ " --mode=ZAŠČITA pri dodajanju datotek nastavimo ZAŠČITO\n"
+#~ " --atime-preserve brez spreminjanja časa zadnjega dostopa\n"
+#~ " -m, --modification-time brez izvlačenja časa spremembe\n"
+#~ " --same-owner z ohranitvijo lastništva, če je mogoče\n"
+#~ " --no-same-owner pri izvlačenju prepišemo lastništvo nase\n"
+#~ " --numeric-owner s številčnimi vrednostmi UID/GID namesto imen\n"
+#~ " -p, --same-permissions z ohranitvijo zaščite datotek\n"
+#~ " --no-same-permissions brez ohranjanja zaščite datotek\n"
+#~ " --preserve-permissions isto kot -p\n"
+#~ " -s, --same-order imena razvrstimo tako, da se ujemajo z arhivom\n"
+#~ " --preserve-order isto kot -s\n"
+#~ " --preserve isto kot -p in -s skupaj\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device selection and switching:\n"
+#~ " -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+#~ " --force-local archive file is local even if has a colon\n"
+#~ " --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+#~ " -[0-7][lmh] specify drive and density\n"
+#~ " -M, --multi-volume create/list/extract multi-volume archive\n"
+#~ " -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+#~ " --new-volume-script=FILE same as -F FILE\n"
+#~ " --volno-file=FILE use/update the volume number in FILE\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Izbira enote:\n"
+#~ " -f, --file=ARHIV uporabi datoteko ali enoto ARHIV\n"
+#~ " --force-local arhiv je lokalen ne glede na dvopičje v imenu\n"
+#~ " --rsh-command=UKAZ uporabi nelokalen UKAZ namesto rsh\n"
+#~ " -[0-7][lmh] določi enoto in gostoto zapisa\n"
+#~ " -M, --multi-volume ustvarjanje/pregled/izvleček arhiva v več delih\n"
+#~ " -L, --tape-length=ŠT menjava traku po ŠT x 1024 zapisanih bajtih\n"
+#~ " -F, --info-script=SKRIPT poženi SKRIPT po koncu traku (privzema -M)\n"
+#~ " --new-volume-script=SKRIPT isto kot -F SKRIPT\n"
+#~ " --volno-file=DATOTEKA uporabimo/ažuriramo število dela v DATOTEKI\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device blocking:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+#~ " --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+#~ " -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+#~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Bločna razdelitev enote:\n"
+#~ " -b, --blocking-factor=BLOKI dolžina zapisa BLOKI x 512 bajtov\n"
+#~ " --record-size=DOLŽINA DOLŽINA zapisa v bajtih (večkratnik 512)\n"
+#~ " -i, --ignore-zeros ne meni se za bloke ničel (EOF)\n"
+#~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -o, --old-archive, --portability write a V7 format archive\n"
+#~ " --posix write a POSIX format archive\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -d)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Izbira oblike arhiva:\n"
+#~ " -V, --label=IME ustvarjanje arhiva z danim IMENOM\n"
+#~ " VZOREC pri pregledu vsebine/izvlečku je ime\n"
+#~ " lahko regularni izraz VZOREC\n"
+#~ " -o, --old-archive, --portability zapis arhiva v formatu V7\n"
+#~ " --posix zapis arhiva v formatu POSIX\n"
+#~ " -j, --bzip2 arhiv filtriramo skozi program bzip2\n"
+#~ " -z, --gzip, --ungzip arhiv filtriramo skozi program gzip\n"
+#~ " -Z, --compress, --uncompress arhiv filtriramo skozi program compress\n"
+#~ " --use-compress-program=PROGRAM arhiv filtriramo skozi PROGRAM (ki mora\n"
+#~ " sprejemati izbiro -d)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -K, --starting-file=NAME begin at file NAME in the archive\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Izbira lokalne datoteke:\n"
+#~ " -C, --directory=IMENIK prestavimo se v navedeni IMENIK\n"
+#~ " -T, --files-from=DATOTEKE seznam datotek preberemo z navedene DATOTEKE\n"
+#~ " --null -T prebere z \\000 terminirana imena; onemogoči -C\n"
+#~ " --exclude=VZOREC izključimo datoteke, ki jih opisuje VZOREC\n"
+#~ " -X, --exclude-from=DATOTEKA izključimo datoteke, ustrezajoče vzorcem,\n"
+#~ " prebranih z DATOTEKE\n"
+#~ " --anchored izključitveni vzorci opisujejo celotno ime\n"
+#~ " datoteke (privzeto)\n"
+#~ " --no-anchored izključitveni vzorci opisujejo ime datoteke od\n"
+#~ " znaka ,/` dalje\n"
+#~ " --ignore-case izključitveni vzorci ne razlikujejo med malimi\n"
+#~ " in velikimi črkami\n"
+#~ " --no-ignore-case izključitveni vzorci razlikujejo med malimi in\n"
+#~ " velikimi črkami (privzeto)\n"
+#~ " --wildcards izključ. vzorci vsebujejo metaznake (privzeto)\n"
+#~ " --no-wildcards izključitveni vzorci ne vsebujejo metaznakov\n"
+#~ " --wildcards-match-slash izključitveni vzorci opisujejo tudi ,/` (privzeto)\n"
+#~ " --no-wildcards-match-slash izključitveni vzorci ne opisujejo ,/`\n"
+#~ " -P, --absolute-names ohranimo vodilni ,/` pri imenih datotek\n"
+#~ " -h, --dereference shranimo datoteke, na katere kažejo simbolne\n"
+#~ " povezave\n"
+#~ " --no-recursion podimenikov ne vključujemo avtomatično\n"
+#~ " -l, --one-file-system izpustimo datotek na nelokalnih datotečnih sistemih\n"
+#~ " -K, --starting-file=IME začenši z navedenim IMENOM v arhivu\n"
+
+#~ msgid ""
+#~ " -N, --newer=DATE only store files newer than DATE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed only\n"
+#~ " --after-date=DATE same as -N\n"
+#~ msgstr ""
+#~ " -N, --newer=DATUM arhiviramo samo datoteke, mlajše od DATUMA\n"
+#~ " --newer-mtime=DATUM datum in čas primerjamo le ob spremembah podatkov\n"
+#~ " --after-date=DATUM isto kot -N\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --suffix=SUFFIX backup before removal, override usual suffix\n"
+#~ msgstr ""
+#~ " --backup[=TIP] varnostna kopija pred brisanjem, z možnostjo\n"
+#~ " izbire tipa varnostne kopije\n"
+#~ " --suffix=PRIPONA varnostna kopija pred brisanjem, določimo pripono\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --confirmation same as -w\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Informativni izpisi:\n"
+#~ " --help ta navodila\n"
+#~ " --version verzija programa\n"
+#~ " -v, --verbose z zgovornim izpisom obdelanih datotek\n"
+#~ " --checkpoint z izpisom imenikov pri branju arhiva\n"
+#~ " --totals z izpisom celotne dolžine pri zapisu\n"
+#~ " -R, --block-number z izpisom zaporednega bloka v arhivu ob vsakem sporočilu\n"
+#~ " -w, --interactive z uporabnikovo potrditvijo za vsako opravilo\n"
+#~ " --confirmation isto kot -w\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+#~ "is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+#~ "Support for POSIX is only partially implemented, don't count on it yet.\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*This* `tar' defaults to `-f%s -b%d'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "GNU tar ne zna ne prebrati in ne ustvariti arhivov ,--posix`. Pri nastavljeni\n"
+#~ "spremenljivki POSIXLY_CORRECT in uporabi izbire ,--posix` razširitve GNU niso\n"
+#~ "dovoljene. Podpora za POSIX še ni v celoti izvedena, ne zanašajte se nanjo.\n"
+#~ "ARHIV je lahko podan v obliki DATOTEKA, RAČUNALNIK:DATOTEKA ali\n"
+#~ "UPORABNIK@RAČUNALNIK:DATOTEKA; kjer je DATOTEKA lahko datoteka ali enota.\n"
+#~ "DATUM je lahko besedilni datum ali ime datoteke, ki se začne z ,/` ali ,.`; v\n"
+#~ "slednjem primeru se uporabi datum te datoteke.\n"
+#~ "\n"
+#~ "Privzeta izbira *tega* programa ,tar` je `-f%s -b%d'.\n"
+
+#~ msgid "Obsolete option, now implied by --blocking-factor"
+#~ msgstr "Zastarela izbira, zdaj privzeta z --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --blocking-factor"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --read-full-records"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --read-full-records"
+
+#~ msgid "Obsolete option name replaced by --touch"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --touch"
+
+#~ msgid "Conflicting archive format options"
+#~ msgstr "Nasprotujoče si izbire glede formata arhiva"
+
+#~ msgid "Obsolete option name replaced by --absolute-names"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --absolute-names"
+
+#~ msgid "Obsolete option name replaced by --block-number"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --block-number"
+
+#~ msgid "Obsolete option name replaced by --backup"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --backup"
+
+#~ msgid "Written by John Gilmore and Jay Fenlason."
+#~ msgstr "Avtorja John Gilmore in Jay Fenlason."
+
+#~ msgid ""
+#~ "If a long option shows an argument as mandatory, then it is mandatory\n"
+#~ "for the equivalent short option also.\n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH of generated file\n"
+#~ " -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+#~ " --help display this help and exit\n"
+#~ " --version output version information and exit\n"
+#~ msgstr ""
+#~ "Argumenti, ki so obvezni za dolge oblike izbire, so obvezni tudi za kratke.\n"
+#~ "\n"
+#~ " -l, --file-length=DOLŽINA DOLŽINA ustvarjene datoteke\n"
+#~ " -p, --pattern=VZOREC možnosti za VZOREC sta ,default` in ,zeros`\n"
+#~ " --help ta navodila\n"
+#~ " --version verzija programa\n"
+
+#~ msgid "Ambiguous pattern `%s'"
+#~ msgstr "Dvoumen vzorec ,%s`"
+
+#~ msgid "Copyright %d Free Software Foundation, Inc."
+#~ msgstr "Copyright %d Free Software Foundation, Inc."
+
+#~ 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 ""
+#~ "To je prost program; pogoji, pod katerimi ga lahko razmnožujete in\n"
+#~ "razširjate so navedeni v izvorni kodi. Za program ni NOBENEGA jamstva,\n"
+#~ "niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA UPORABO.\n"
+
+#~ msgid "Write to compression program short %lu bytes"
+#~ msgstr "Pisanje na vhod programa za stiskanje prekratko za %lu bajtov"
+
+#~ msgid "Removing `%.*s' prefix from member names"
+#~ msgstr "Odstranjujemo predpono ,%.*s` iz imen elementov"
+
+#~ msgid "%s: Cannot symlink %s %s"
+#~ msgstr "%s: Simbolna povezava %s %s ni mogoča"
+
+#~ msgid "Invalid group given on option"
+#~ msgstr "Podana skupina ni veljavna"
+
+#~ msgid "Invalid owner given on option"
+#~ msgstr "Podani uporabnik ni veljaven"
+
+#~ msgid "Cannot close file descriptor"
+#~ msgstr "Ni možno zapreti datotečnega deskriptorja"
+
+#~ msgid "Cannot properly duplicate %s"
+#~ msgstr "Ni mogoče pravilno podvojiti %s"
+
+#~ msgid "(child) Pipe to stdin"
+#~ msgstr "(naslednik) cev na stdin"
+
+#~ msgid "Archive to stdout"
+#~ msgstr "Arhiv na stdout"
+
+#~ msgid "((child)) Pipe to stdout"
+#~ msgstr "((naslednik)) cev na stdout"
+
+#~ msgid "(grandchild) Pipe to stdin"
+#~ msgstr "(pranaslednik) cev na stdin"
+
+#~ msgid "(child) Pipe to stdout"
+#~ msgstr "(naslednik) cev na stdout"
+
+#~ msgid "((child)) Pipe to stdin"
+#~ msgstr "((naslednik)) cev na stdin"
+
+#~ msgid "(grandchild) Pipe to stdout"
+#~ msgstr "(pranaslednik) cev na stdout"
+
+#~ msgid "Only wrote %lu of %lu bytes to %s"
+#~ msgstr "Samo %lu od %lu bajtov zapisanih na %s"
+
+#~ msgid "WARNING: %s: close (%d, %d)"
+#~ msgstr "OPOZORILO: %s: zapiramo (%d, %d)"
+
+#~ msgid "Cannot allocate memory for diff buffer of %lu bytes"
+#~ msgstr "Ni možno rezervirati pomnilnika za %lu bajtov medpomnilnika za diff"
+
+#~ msgid "Wrote %s of %s bytes to file %s"
+#~ msgstr "Zapisano %s od %s bajtov na datoteko %s"
+
+#~ msgid "lseek error at byte %s in file %s"
+#~ msgstr "Napaka pri lseek pri bajtu %s v datoteki %s"
+
+#~ msgid "File %s shrunk, padding with zeros"
+#~ msgstr "Datoteka %s skrčena, dopolnimo z ničlami"
+
+#~ msgid "Cannot reposition archive file"
+#~ msgstr "Repozicija arhivske datoteke neuspešna"
+
+#~ msgid "%s: Cannot lchown to uid %lu gid %lu"
+#~ msgstr "%s: Lastništva ni moč spremeniti z lchown na UID %lu GID %lu"
+
+#~ msgid "%s: Cannot chown to uid %lu gid %lu"
+#~ msgstr "%s: Lastništva ni moč spremeniti s chown na UID %lu GID %lu"
+
+#~ msgid "%s: lseek error at byte %s"
+#~ msgstr "%s: napaka lseek pri bajtu %s"
+
+#~ msgid "%s: Could only write %s of %s bytes"
+#~ msgstr "%s: Zapisanih samo %s od %s bajtov"
+
+#~ msgid "Error while deleting %s"
+#~ msgstr "Napaka pri brisanju %s"
+
+#~ msgid "EOF in archive file"
+#~ msgstr "Znak za konec datoteke v arhivu"
+
+#~ msgid "Only wrote %lu of %lu bytes to file %s"
+#~ msgstr "Zapisanih samo %lu od %lu bajtov na datoteko %s"
+
+#~ msgid "Renaming previous %s to %s\n"
+#~ msgstr "Prejšnja %s preimenovana v %s\n"
+
+#~ msgid "%s: Cannot rename for backup"
+#~ msgstr "%s: Ni možno preimenovati za pisanje varnostne kopije"
+
+#~ msgid "%s: Cannot rename from backup"
+#~ msgstr "%s: Ni možno preimenovati iz varnostne kopije"
+
+# POZOR -- oblike "to stat a file" slovenscina ne pozna
+#~ msgid "Cannot %s %s"
+#~ msgstr "Ni možno %s %s"
+
+#~ msgid "Read error at byte %s reading %lu bytes in file %s"
+#~ msgstr "Napaka pri branju pri bajtu %s, prebranih %lu bajtov datoteke %s"
+
+#~ msgid "Cannot open pipe"
+#~ msgstr "Ni mogoče odpreti cevi"
+
+#~ msgid "Cannot open archive %s"
+#~ msgstr "Ni mogoče odpreti arhiva %s"
+
+#~ msgid "Cannot exec %s"
+#~ msgstr "Ni mogoče pognati %s"
+
+#~ msgid "Child cannot fork"
+#~ msgstr "Vejitev naslednika ni možna"
+
+#~ msgid "Cannot read from compression program"
+#~ msgstr "Branje z izhoda programa za stiskanje ne gre"
+
+#~ msgid "Cannot write to %s"
+#~ msgstr "Pisanje na %s ni možno"
+
+#~ msgid "WARNING: Cannot truncate %s"
+#~ msgstr "OPOZORILO: Ni mogoče skrajšati %s"
+
+#~ msgid "While waiting for child"
+#~ msgstr "Med čakanjem na naslednika"
+
+#~ msgid "Cannot fork!"
+#~ msgstr "Vejitev ni možna!"
+
+#~ msgid "Cannot exec a shell %s"
+#~ msgstr "Ni mogoče pognati lupine %s"
+
+#~ msgid "Cannot read %s"
+#~ msgstr "Branje %s ni možno"
+
+#~ msgid "Error while closing %s"
+#~ msgstr "Napaka pri zapiranju %s"
+
+#~ msgid "Cannot read link %s"
+#~ msgstr "Ni mogoče prebrati povezave %s"
+
+#~ msgid "Could not rewind archive file for verify"
+#~ msgstr "Arhiva ni možno previti na začetek, preverjanje ni možno"
+
+#~ msgid "Removing leading `/' from archive names"
+#~ msgstr "Odstranjujemo vodilne ,/` iz imen arhivov"
+
+#~ msgid "Cannot add file %s"
+#~ msgstr "Ni mogoče dodati datoteke %s"
+
+#~ msgid "Cannot add directory %s"
+#~ msgstr "Ni mogoče dodati imenika %s"
+
+#~ msgid "Cannot open directory %s"
+#~ msgstr "Ni mogoče odpreti imenika %s"
+
+#~ msgid "%s: close"
+#~ msgstr "%s: zaprto"
+
+#~ msgid "%s: Could not write to file"
+#~ msgstr "%s: Zapis na datoteko ni mogoč"
+
+#~ msgid "%s: Could not create file"
+#~ msgstr "%s: Ni mogoče ustvariti datoteke"
+
+#~ msgid "%s: Error while closing"
+#~ msgstr "%s: Napaka pri zapiranju"
+
+#~ msgid "%s: Could not make node"
+#~ msgstr "%s: Ni možno ustvariti vozla"
+
+#~ msgid "%s: Could not make fifo"
+#~ msgstr "%s: Ni možno ustvariti FIFO"
+
+#~ msgid "%s: Could not create directory"
+#~ msgstr "%s: Ni možno ustvariti imenika"
+
+#~ msgid "Added write and execute permission to directory %s"
+#~ msgstr "Imeniku %s dodani dovoljenji za pisanje in izvajanje"
+
+#~ msgid "Cannot open file %s"
+#~ msgstr "Ni mogoče odpreti datoteke %s"
+
+#~ msgid "Only read %d bytes from archive %s"
+#~ msgstr "Prebrano samo %d zlogov z arhiva %s"
+
+#~ msgid "Removing leading `/' from absolute path names in the archive"
+#~ msgstr "Imena datotek v arhivu očistimo vodilnega ,/` pri absolutnih poteh"
+
+#~ msgid "Amount actually written is (I hope) %d.\n"
+#~ msgstr "Dejanska zapisana količina: %d (upajmo)\n"
+
+#~ msgid "File name %s%s too long"
+#~ msgstr "Ime datoteke %s%s predolgo"
+
+#~ msgid "Data differs"
+#~ msgstr "Podatki se razlikujejo"
+
+#~ msgid "File does not exist"
+#~ msgstr "Datoteka ne obstaja"
+
+#~ msgid "Not a regular file"
+#~ msgstr "Ni navadna datoteka"
+
+#~ msgid "Does not exist"
+#~ msgstr "Ne obstaja"
+
+#~ msgid "No such file or directory"
+#~ msgstr "Datoteka ali imenik s tem imenom ne obstaja"
+
+#~ msgid "Mode or device-type changed"
+#~ msgstr "Način ali tip enote je spremenjen"
+
+#~ msgid "No longer a directory"
+#~ msgstr "Ni več imenik"
+
+#~ msgid "%d at %d\n"
+#~ msgstr "%d pri %d\n"
+
+#~ msgid "Could not get current directory: %s"
+#~ msgstr "Ni mogoče izvedeti trenutnega imenika: %s"
+
+#~ msgid "File name %s/%s too long"
+#~ msgstr "Ime datoteke %s/%s je predolgo"
+
+#~ msgid "Cannot chdir to %s"
+#~ msgstr "Imenik %s ni dostopen"
+
+#~ msgid "Hmm, this doesn't look like a tar archive"
+#~ msgstr "Hmm, to ne izgleda kot arhiv tar"
+
+#~ msgid "Skipping to next file header"
+#~ msgstr "Preskočimo na naslednjo glavo datoteke"
+
+#~ msgid ""
+#~ "\n"
+#~ "Usage: %s [OPTION]... [FILE]...\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Uporaba: %s [IZBIRA]... [DATOTEKA]...\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Avtorske pravice (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+
+#~ msgid "Volume mismatch! %s!=%s"
+#~ msgstr "Oznaka dela se ne ujema! %s != %s"
+
+#~ msgid "EOF? What does that mean?"
+#~ msgstr "Konec datoteke?"
+
+#~ msgid "Mode"
+#~ msgstr "Način"
+
+#~ msgid "Uid"
+#~ msgstr "UID"
+
+#~ msgid "Gid"
+#~ msgstr "GID"
+
+#~ msgid "Size"
+#~ msgstr "Velikost"
+
+#~ msgid "Missing filename after -C"
+#~ msgstr "Za izbiro -C manjka ime datoteke"
+
+#~ msgid "Bad regular expression: %s"
+#~ msgstr "Nepravilen regularen izraz: %s"
+
+#~ msgid "File %s\n"
+#~ msgstr "Datoteka %s\n"
+
+#~ msgid "Junk files\n"
+#~ msgstr "Poškodovane datoteke\n"
+
+#~ msgid "file %s\n"
+#~ msgstr "datoteka %s\n"
+
+#~ msgid "Skip %ld\n"
+#~ msgstr "Preskok %ld zlogov\n"
+
+#~ msgid "Out of first loop\n"
+#~ msgstr "Izven prve zanke\n"
+
+#~ msgid "Saved %d blocks, need %d more\n"
+#~ msgstr "Shranjenih %d blokov, potrebuje se jih še %d\n"
+
+#~ msgid "New record\n"
+#~ msgstr "Nov zapis\n"
+
+#~ msgid "Header type %d\n"
+#~ msgstr "Tip glave %d\n"
+
+#~ msgid "File %s "
+#~ msgstr "Datoteka %s "
+
+#~ msgid "Flush it\n"
+#~ msgstr "Izpraznitev medpomnilnika\n"
+
+#~ msgid "Flushing %d blocks from %s\n"
+#~ msgstr "Izpraznitev %d blokov iz %s\n"
+
+#~ msgid "Block: %d <= %d "
+#~ msgstr "Blok: %d <= %d "
+
+#~ msgid "Block %d left\n"
+#~ msgstr "Še %d blokov\n"
+
+#~ msgid "Final %d\n"
+#~ msgstr "Zadnjih %d\n"
+
+#~ msgid "Need %d kept_in %d keep %d\n"
+#~ msgstr "Potrebno %d shranjenih %d shranjujem %d\n"
+
+#~ msgid "Flush...\n"
+#~ msgstr "Izpraznitev...\n"
+
+#~ msgid "Copying %d\n"
+#~ msgstr "Kopiranje %d\n"
+
+#~ msgid "Now new %d need %d keep %d keep_in %d block %d/%d\n"
+#~ msgstr "Zdaj novih %d potrebnih %d shranjujem %d shranjenih %d blok %d/%d\n"
+
+#~ msgid "Fore to %x\n"
+#~ msgstr "Naprej na %x\n"
diff --git a/po/.reference/sl.s1 b/po/.reference/sl.s1
new file mode 100644
index 00000000..fc09c8ff
--- /dev/null
+++ b/po/.reference/sl.s1
@@ -0,0 +1 @@
+d93fbeb23c43ab2121963f901de444a1fa0b6a27 -
diff --git a/po/.reference/sv.po b/po/.reference/sv.po
new file mode 100644
index 00000000..148e1636
--- /dev/null
+++ b/po/.reference/sv.po
@@ -0,0 +1,2618 @@
+# Swedish messages for tar
+# Copyright © 1996, 2001, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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, 2009, 2010, 2011
+# Revision: 1.107
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-13 19:23+0100\n"
+"Last-Translator: Jan Djärv <jan.h.d@swipnet.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"Language: sv\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "ogiltigt argument %s för %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "tvetydigt argument %s för %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Giltiga argument är:"
+
+#: 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"
+
+#: 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."
+
+#: 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."
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Okänd ARGP_HELP_FMT-parameter"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Skräp i ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Obligatoriska respektive valfria argument för långa flaggor är obligatoriska repektive valfria även för motsvarande korta."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Användning:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " eller: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [FLAGGA...]"
+
+#: gnu/argp-help.c:1684
+#, 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"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr ""
+"Rapportera fel till %s.\n"
+"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Okänt systemfel"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "visa denna hjälptext"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "ge ett kort hjälpmeddelande"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAMN"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "ange programnamnet"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "vänta i SEK sekunder (standardvärde 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "visa programversion"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMFEL) Ingen version känd!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: För många argument\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMFEL) Flagga borde ha känts igen!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "skrivfel"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: flaggan \"%s\" är tvetydig\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"--%s\" tar inget argument\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"%c%s\" tar inget argument\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: flaggan \"--%s\" kräver ett argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: okänd flagga \"--%s\"\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: okänd flagga \"%c%s\"\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: ogiltig flagga -- \"%c\"\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: flaggan kräver ett argument -- \"%c\"\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"-W %s\" tar inget argument\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: flaggan \"-W %s\" kräver ett argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "minnet slut"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "kan inte lagra nuvarande arbetskatalog"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "kan inte gå tillbaka till initial arbetskatalog"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "\""
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "\""
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yYjJ]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Paketerad av %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl.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.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Skrivet av %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Skrivet av %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s och andra.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Rapportera fel till %s.\n"
+"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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 "hemsida för %s: <%s>\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 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 byte 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 byte 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Tar bort inledande \"%s\" från namnen i arkivet"
+
+#: lib/paxnames.c:141
+#, 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:154
+msgid "Substituting `.' for empty member name"
+msgstr "Ersätter tomma namn i arkivet med \".\""
+
+#: lib/paxnames.c:155
+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 "Kan inte ansluta till %s: namnuppslagning misslyckades"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Kan inte exekvera fjärrskal"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Positioneringsriktning har ogiltigt värde"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Ogiltig sökriktning"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Ogiltigt positioneringsvärde"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Positioneringsvärde är utanför giltigt intervall"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Ogiltigt byte-antal"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Byte-antal är utanför giltigt intervall"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "För tidigt filslut"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Felaktig operationskod"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operationsläge stöds inte"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Oväntade argument"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Styr en bandstation, acceptera kommandon från en fjärrprocess"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NUMMER"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "sätt felsökningsnivå"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FIL"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "sätt felsökningsfilnamn"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "kan inte öppna \"%s\""
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "för många argument"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Okänt kommando"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Det här ser inte ut som ett tar-arkiv"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Summa skrivna byte"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Summa lästa byte"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Summa borttagna byte: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(rör)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Ogiltigt värde på record_size"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Arkivnamn saknas"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Kan inte verifiera standard in/ut-arkiv"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arkivet är komprimerat. Använd flaggan %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Komprimerade arkiv kan inte uppdateras"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Vid bandets början, avslutar nu"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "För många fel, avslutar"
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek stannade inte på en postgräns"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: innehåller ogiltigt volymnummer"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Volymnummer flödade över"
+
+#: src/buffer.c:1123
+#, 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:1129
+msgid "EOF where user reply was expected"
+msgstr "Filslut vid förväntat användarsvar"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "VARNING: Arkivet är ofullständigt"
+
+#: src/buffer.c:1148
+#, 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 namn Ge ett nytt filnamn för nästa (och efterföljande) volym(er)\n"
+" q Avsluta programmet\n"
+" y eller nyrad Fortsätt\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Starta ett underskal\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Skriv denna lista\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Ingen ny volym; avslutar.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Filnamn inte angivet, försök igen.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Ogiltig indata. Skriv ? för hjälp.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "kommandot \"%s\" misslyckades"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s fortsätter inte i denna volym"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s har fel storlek (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, 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:1550 src/buffer.c:1576
+#, 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:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Volym %s överensstämmer inte med %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: filnamnet är för långt för att lagras i huvudet för ett GNU multivolymsarkiv, trunkerat"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "skrivning stannade inte på en blockgräns"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Innehållet är olika"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Oväntat filslut i arkivet"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Filtyper är olika"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Rättigheterna är olika"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Uid är olika"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gid är olika"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Modifieringstiderna är olika"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Storlekarna är olika"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Inte länkad till %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Symboliska länkar är olika"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Enhetsnummer är olika"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Verifierar "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Okänd filtyp \"%c\" jämförd som en normal fil"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arkivet innehåller filnamn med inledande prefix borttaget."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Arkivet innehåller konverterade filnamn."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Verifiering kan misslyckas med att hitta originalfiler."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Ett ensamt nollblock vid %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: innehåller en cachekatalog-tagg %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, 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:327
+msgid "Generating negative octal headers"
+msgstr "Genererar negativa oktala värden i arkivhuvudet"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: filnamnet är för långt (max %d); inte arkiverad"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: filnamnet är för långt (kan ej delas); inte arkiverad"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: länknamn är för långt; inte arkiverad"
+
+#: src/create.c:1064
+#, 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "innehållet inte arkiverat"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Okänd filtyp; filen ignorerad"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Det fattas länkar till %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: filen är oförändrad; inte arkiverad"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: filen är själva arkivet; inte arkiverad"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "katalog inte arkiverad"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: fil ändrades under tiden vi läste den"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socketfil ignorerad"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door-fil ignorerad"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Hoppar till nästa filhuvud"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Tar bort icke-huvuddata från arkivet"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: orimligt gammal tidsstämpel %s"
+
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Oväntad inkonsistens när katalog skapades"
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Extraherar sammanhängande filer som vanliga filer"
+
+#: src/extract.c:1209
+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:1365
+#, 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:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Oväntat huvud för långt filnamn"
+
+#: src/extract.c:1379
+#, 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:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Nuvarade \"%s\" är nyare eller lika gammal"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Kunde inte säkerhetskopiera denna fil"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Kan inte byta namn på %s till %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Katalogen har bytt namn från %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Katalogen har bytt namn"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Katalogen är ny"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Ogiltigt värde på tidsvärde"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Ogiltig modifikationstid (sekunder)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Ogiltig modifikationstid (nanosekunder)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Ogiltigt enhetsnummer"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Ogiltigt inodnummer"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Fält för långt när ögonblicksfil lästes"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Läsfel i ögonblicksfil"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Oväntat filslut i ögonblicksfil"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Oväntat fältvärde i ögonblicksfil"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Postavslutare fattas"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Felaktigt filformat för inkrementell säkerhetskopiering"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Formatversion för inkrementell säkerhetskopiering stöds inte: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Felaktig dumpkatalog: förväntade \"%c\" men hittade %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Felaktig dumpkatalog: \"X\" duplicerad"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Felaktig dumpkatalog: tomt namn i \"R\""
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Felaktig dumpkatalog: \"T\" föregås inte av \"R\""
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Felaktig dumpkatalog: tomt namn i \"T\""
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Felaktig dumpkatalog: \"X\" används inte"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Kan inte skapa temporärkatalog med mall %s"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Rensar inte katalog: kunde inte ta status"
+
+#: src/incremen.c:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Tar bort %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Kan inte ta bort"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Utelämnad"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "block %s: ** Block av nolltecken **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "block %s: ** Filslut **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "block %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Arkivets oktala värde %.*s är utanför intervallet för %s, antar två-komplement"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arkivet innehåller föråldrade \"base-64\"-huvuden"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " länk till %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " okänd filtyp \"%s\"\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Lång länk--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Långt namn--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Volymhuvud--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Fortsätter vid byte %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Skapar katalog:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Kan inte avgöra arbetskatalog"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Byter namn på %s till %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Kan inte byta namn till %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Byter namn på %s tillbaka till %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fil borttagen innan vi läste den"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "barnprocess"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "interprocesskanal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Mönstermatchningstecken används i filnamn"
+
+#: src/names.c:592
+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 att undertrycka denna varning"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Fanns inte i arkivet"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Nödvändig förekomst hittades inte i arkivet"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Arkivmärkning stämmer inte överrens"
+
+#: src/names.c:949
+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:955
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Ogiltigt arkivformat"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU-tillägg önskade i ett inkompatibelt arkivformat"
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Okänd citeringsstil \"%s\". Gör \"%s --quoting-style=help för att få en lista."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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 sparar många filer tillsammans i ett band- eller fil-arkiv och kan\n"
+"återskapa individuella filer från arkivet.\n"
+"\n"
+"Exempel:\n"
+" tar -cf arkiv.tar foo bar # Skapa arkiv.tar med filerna foo och bar.\n"
+" 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:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Säkerhetskopieändelse är \"~\", om den inte sätts med --suffix eller\n"
+"SIMPLE_BACKUP_SUFFIX.\n"
+"Versionshanteringen kan styras med --backup eller VERSION_CONTROL,\n"
+"där värdena kan vara:\n"
+"\n"
+" none, off gör aldrig säkerhetskopior\n"
+" t, numbered gör numrerade säkerhetskopior\n"
+" nil, existing numrerade säkerhetskopior om sådana redan finns, enkla annars\n"
+" never, simple gör alltid enkla säkerhetskopior\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Operationsläge:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "visa innehållet i arkivet"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "extrahera filer från arkivet"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "skapa ett nytt arkiv"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "visa skillnader mellan filsystemet och arkivet"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "lägg till filer på slutet av arkivet"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "lägg till filer som är nyare än de i arkivet"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "lägg till innehållet i en arkivfil till arkivet"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "ta bort från arkivet (inte för arkiv på magnetband!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "verifiera arkivets volymnamn och avsluta."
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Modifiera operationslägen:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "hantera filer med hål mer effektivt"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "ÖVRE[.UNDRE]"
+
+#: src/tar.c:419
+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:421
+msgid "handle old GNU-format incremental backup"
+msgstr "hantera gamla GNU-formatet för inkrementell säkerhetskopiering"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "hantera nya GNU-formatet för inkrementell säkerhetskopiering"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "dumpa nivå för \"listed-incremental\" arkiv"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "avsluta inte med felslutstatus p.g.a. oläsbara filer"
+
+#: src/tar.c:429
+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 "behandla endast förekomst NUMMER av varje fil i arkivet. Denna flagga är endast giltig med ett av underkommandona --delete, --diff, --extract eller --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:435
+msgid "archive is seekable"
+msgstr "arkivet är sökbart"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "arkivet är inte sökbart"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "kontrollera inte enhetsnummer när inkrementella arkiv skapas"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "kontrollera enhetsnummer när inkrementella arkiv skapas (standardvärde)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Kontrollera överskrivning:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "försök verifiera arkivet efter det skapats"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "ta bort filer efter de sparats i arkivet"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "ersätt inte befintliga filer vid extrahering"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "skriv över befintliga filer vid extrahering"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "ta bort befintliga filer innan de nya extraheras"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "töm kataloghierarkier före extrahering av katalog"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "bevara befintliga katalogers metadata"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "skriv över metadata för befintliga kataloger vid extrahering (standardvärde)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Välj utdataström:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "extrahera filer till standard ut"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "KOMMANDO"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "extrahera filer till standard in för ett annat program"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ignorera barnprocessers slutstatus"
+
+#: src/tar.c:482
+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:487
+msgid "Handling of file attributes:"
+msgstr "Hantering av filattribut:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "sätt NAMN som ägare för adderade filer"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "sätt NAMN som grupp för adderade filer"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATUM-ELLER-FIL"
+
+#: src/tar.c:494
+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:495
+msgid "CHANGES"
+msgstr "RÄTTIGHET"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "sätt (symbolisk) RÄTTIGHET för adderade filer"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METOD"
+
+#: src/tar.c:499
+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 "bevara accesstider på arkiverade filer, antingen genom att återställa tiderna efter läsning (METOD=\"replace\", standardvärde) eller genom att inte sätta tiderna alls (METOD=\"system\")"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "extrahera inte filers modifieringstid"
+
+#: src/tar.c:505
+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:507
+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:509
+msgid "always use numbers for user/group names"
+msgstr "använd alltid tal för användar- och gruppnamn"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "extrahera information om filrättigheter (standardvärde för superanvändare)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "applicera användarens umask när rättigheter extraheras från arkivet (standardvärde för vanliga användare)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "sortera namn som ska extraheras så de passar ihop med arkivet"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "samma som både -p och -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "fördröj sättandet av modifikationstider och rättigheter på extraherade kataloger till slutet på arkivextraheringen."
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "ta bort effekten av flaggan --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Enhetsval och enhetsbyte:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARKIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "använd arkivfil eller enhet ARKIV"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "arkivfilen är lokal även om namnet har kolon"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "använd KOMMANDO istället för rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "använd KOMMANDO istället för rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "ange enhet och densitet"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "skapa/visa/extrahera ett flervolymsarkiv"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "byt band efter det att NUMMER x 1024 byte skrivits"
+
+#: src/tar.c:561
+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:564
+msgid "use/update the volume number in FILE"
+msgstr "använd/uppdatera volymnummer i FIL"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blockhantering:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCK"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOCK x 512 byte per post"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "NUMMER byte per post, multipel av 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignorera block med enbart nolltecken (betyder filslut)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "omblocka vid läsning (för 4.2BSD-rör)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Val av arkivformat:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "skapa ett arkiv med givet format"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT är ett av följande:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "gammalt V7 format"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU-format enligt tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "Format från GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) format"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) format"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "samma som pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "samma som --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "samma som --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "nyckelord[[:]=värde][,nyckelord[[:]=värde], ...]"
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "ange nyckelord för pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "NAMN"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "skapa ett arkiv med volymnamnet NAMN. Vid visning/extrahering är NAMN ett skalmönster (\"globbing\")"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Komprimeringsflaggor:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "använd arkivsuffix för att bestämma komprimeringsprogram"
+
+#: src/tar.c:618
+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:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtrera genom PROG (måste förstå -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Filval:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "KATALOG"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "byt katalog till KATALOG"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "hämta namn att extrahera eller skapa från FIL"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T läser namn åtskilda med nolltecken, -C obrukbar"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "ta bort effekten av föregående --null-flagga"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "avcitera filnamn som lästs med -T (standardvärde)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "avcitera inte filnamn som lästs med -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MÖNSTER"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "utelämna filer som matchar MÖNSTER"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "utelämna filer som matchar mönster i FIL"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "utelämna innehållet i kataloger som innehåller CACHEDIR.TAG, förutom CACHEDIR.TAG själv"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "utelämna allt i kataloger som innehåller CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "utelämna kataloger som innehåller CACHEDIR.TAG"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "utelämna allting i kataloger som innehåller FIL"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "utelämna kataloger som innehåller FIL"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "uteslut kataloger från versionshanteringssystem"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "exkludera säkerhetskopior och låsfiler"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "gå inte automatiskt ned i kataloger"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "byt inte filsystem när arkivet skapas"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "gå rekursivt ned i kataloger (standardvärde)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "tag inte bort inledande \"/\" från namn"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "NAMN"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "börja med fil NAMN i arkivet"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "arkivera bara filer nyare än DATUM-ELLER-FIL"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATUM"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "jämför datum och tid endast för dataändringar"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "KONTROLL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "gör säkerhetskopior före borttagning, välj typ av versionshantering"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRÄNG"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "gör säkerhetskopior före borttagning, ersätt den normala säkerhetskopieändelsen (\"~\" om inte ändrad med miljövariabeln SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Filnamnstransformationer:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "UTTRYCK"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "använd seds ersättnings-UTTRYCK för att transformera filnamn"
+
+#: src/tar.c:714
+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:717
+msgid "ignore case"
+msgstr "matcha gemener och versaler lika"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "mönster måste matcha i början på filnamn"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "mönster matchas efter \"/\" i filnamn (standardvärde vid uteslutning)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "matcha gemener och versaler olika (standardvärde)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "använd jokertecken (standardvärde för uteslutning)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "ordagrann strängjämförelse"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "jokertecken matchar inte \"/\""
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "jokertecken matchar \"/\" (standardvärde för uteslutning)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informativ utskrift:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "visa namn på alla filer som behandlas"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "NYCKELORD"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "varningskontroll"
+
+#: src/tar.c:743
+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:745
+msgid "ACTION"
+msgstr "ÅTGÄRD"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "utför ÅTGÄRD vid vare kontrollpunkt"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "visa ett meddelande om inte alla länkar arkiverats"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "skriv totalt antal byte efter arkivet hanterats. Med ett argument skrivs 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:756
+msgid "print file modification times in UTC"
+msgstr "visa filers modifieringstid i UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "visa full upplösning på filtider"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "skicka informativa meddelanden till FIL"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "visa blocknummer inom arkivet för varje meddelande"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "fråga efter bekräftelse för varje steg"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "visa standardvärden för \"tar\""
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "vid visning eller extrahering, visa varje katalog som inte matchar sökkriterium"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "visa fil- eller arkivnamn efter transformering"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STIL"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "citera även tecken i STRÄNG"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "citera inte tecken i STRÄNG"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Kompatibilitetsflaggor:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "vid skapande, samma som --old-archive. Vid extrahering, samma som --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Andra flaggor:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "begränsa användningen av eventuellt farliga flaggor"
+
+#: src/tar.c:930
+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:940
+msgid "Conflicting compression options"
+msgstr "Motstridiga komprimeringsflaggor"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Okänt signalnamn: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Tidsfil hittades inte"
+
+#: src/tar.c:1028
+#, 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:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Flagga %s: Tolkar tidsangivelse \"%s\" som %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: fillistan redan läst"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: filnamnet som lästes innehåller nolltecken"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtrera arkivet genom %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Giltiga argument till flaggan --quoting-style är:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Denna* tar har standardvärdena:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Ogiltig blockfaktor"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Ogiltig bandlängd"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Felaktigt värde fär inkrementell nivå"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Mer än en datumgräns"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Ogiltig version för filer med hål"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve=\"system\" stöds inte på denna plattform"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint-värdet är inte ett heltal"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Ogiltig grupp"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Ogiltiga rättigheter givna för flagga"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Ogiltigt nummer"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Ogiltig ägare"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Flaggan --preserve är föråldrad, använd --preserve-permissions --preserve-order istället"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Ogiltig poststorlek"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Poststorlek måste vara en multipel av %d"
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Ogiltig antal element"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Endast en --to-command flagga tillåten"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Ogiltig densitetsangivelse: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Okänd densitet: \"%c\""
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[FIL]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Gammal flagga \"%c\" kräver ett argument"
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence är meningslöst utan en fillista"
+
+#: src/tar.c:2380
+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:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Multipla arkivfiler kräver \"-M\" flaggan"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Kan inte kombinera --listed-incremental med --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level är meningslös utan --listed-incremental"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Flervolymsarkiv kan inte verifieras"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Komprimerade arkiv kan inte verifieras"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Kan inte använda komprimerade flervolymsarkiv"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Komprimerade arkiv kan inte slås samman"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option kan bara användas på POSIX-arkiv"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Volymlängden kan inte vara mindre än poststorleken"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order är inte kompatibel med --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Vägrar fegt att skapa ett tomt arkiv"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Flaggorna \"-Aru\" är inkompatibla med \"-f -\""
+
+#: src/tar.c:2621
+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:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Avslutar med felstatus på grund av tidigare fel"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Nyckelordet %s är okänt eller inte ännu implementerat"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Tidsstämpel är utanför giltigt intervall"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Mönster %s kan inte användas"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Nyckelord %s kan inte ersättas"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Felaktigt utökat huvud: längd saknas"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Längd på utökat huvud är utanför giltigt intervall"
+
+#: src/xheader.c:557
+#, 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:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Felaktigt utökat huvud: blanktecken efter längdangivelse saknas"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Felaktigt utökat huvud: likamedtecken saknas"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Felaktigt utökat huvud: nyrad saknas"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ignorerar nykelord \"%s\" i utökat huvud"
+
+#: src/xheader.c:831
+#, 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:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Felaktigt utökat huvud: ogiltig %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Felaktigt utökat huvud: för många %s=%s"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Felaktigt utökat huvud: ogiltigt %s: udda antal värden"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: ogiltig timeout"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: okänd kontrollpunktsåtgärd"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "skriv"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "läs"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Kontrollpunkt för skrivning %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Kontrollpunkt för läsning %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile bearbetar datafiler i testsviten för GNU paxutils.\n"
+"FLAGGOR är:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Flaggor för filskapande:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "STORLEK"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Skapa ett arkiv med given STORLEK"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Skriv till NAMN istället för till standard ut"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Läs filnamn från FIL"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T läser namn åtskilda med nolltecken"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Storlek för ett block för filer med hål"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "POSITION"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Flytta till given position innan data skrivs"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Flaggor för filstatistik:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Flaggor för synkron exekvering:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "FLAGGA"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Kör ARGUMENT. Användbart med --checkpoint och en av --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Sätt datum för nästa --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Visa exekverade kontrollpunkter och slutstatus på KOMMANDO"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Synkront exekverade åtgärder. Dessa exekveras när kontrollpunktnumret givet av flaggan --checkpoint nås."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Trunkera FIL till storleken given av föregående flaggan --length (eller 0 om den inte är given)"
+
+#: tests/genfile.c:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "Uppdatera access- och modifikationstider för FIL"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Exekvera KOMMANDO"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Ta bort (unlink) FIL"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Ogiltigt storlek: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Nummer utanför giltigt intervall: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negativ storlek: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "status (stat) kunde ej tas på %s"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "begärd fillängd %lu, verklig %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "skapad fil har inte hål"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Fel vid parsning av tal nära \"%s\""
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Okänt datumformat"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENT...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "kan inte öppna \"%s\""
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "kan inte flytta (seek)"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "filnamnet innehåller nolltecken"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "felaktig mask (nära \"%s\")"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Okänt fält \"%s\""
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "kan inte sätta tid på \"%s\""
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "kan inte ta bort \"%s\""
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Kommandot avslutades utan fel\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Kommandot misslyckades med slutstatus %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Kommandot terminerades av signal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Kommandot stoppades av signal %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Kommandot dumpade minnet\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Kommandot avslutade\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat kräver filnamn"
diff --git a/po/.reference/sv.s1 b/po/.reference/sv.s1
new file mode 100644
index 00000000..fd26860e
--- /dev/null
+++ b/po/.reference/sv.s1
@@ -0,0 +1 @@
+e139dd9e441a965bc25f1e8fc1f615e9cbd94dac -
diff --git a/po/.reference/tr.po b/po/.reference/tr.po
new file mode 100644
index 00000000..758eb2da
--- /dev/null
+++ b/po/.reference/tr.po
@@ -0,0 +1,2305 @@
+# Turkish translations for GNU tar messages.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+#
+# Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001,..., 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.18\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2007-06-28 19:56+0300\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"
+"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"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "`%2$s' için %1$s argümanı geçersiz"
+
+#: lib/argmatch.c:135
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "`%2$s' için %1$s argümanı belirsiz"
+
+#: lib/argmatch.c:154
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Geçerli argümanlar:"
+
+#: lib/argp-help.c:148
+#, 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:221
+#, 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:227
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT parametresi pozitif olmalı"
+
+#: lib/argp-help.c:236
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: ARGP_HELP_FMT ile belirtilen parametre bilinmiyor"
+
+#: lib/argp-help.c:248
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "ARGP_HELP_FMT bozuk: %s"
+
+#: lib/argp-help.c:1247
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+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:1640
+msgid "Usage:"
+msgstr "Kullanımı:"
+
+#: lib/argp-help.c:1644
+msgid " or: "
+msgstr " veya: "
+
+#: lib/argp-help.c:1656
+msgid " [OPTION...]"
+msgstr " [SEÇENEK...]"
+
+#: lib/argp-help.c:1683
+#, 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:1711 src/tar.c:1169
+#, 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:1930 lib/error.c:125
+msgid "Unknown system error"
+msgstr "Bilinmeyen sistem hatası"
+
+#: lib/argp-parse.c:82 src/tar.c:736
+msgid "give this help list"
+msgstr "bu yardım iletisi gösterilir"
+
+#: lib/argp-parse.c:83 src/tar.c:737
+msgid "give a short usage message"
+msgstr "kısa bir kullanım iletisi gösterilir"
+
+#: lib/argp-parse.c:84 src/tar.c:456 src/tar.c:458 src/tar.c:527
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "İSİM"
+
+#: lib/argp-parse.c:84
+msgid "set the program name"
+msgstr "uygulama ismi"
+
+#: lib/argp-parse.c:85
+msgid "SECS"
+msgstr "SAN"
+
+#: lib/argp-parse.c:86 src/tar.c:742
+msgid "hang for SECS seconds (default 3600)"
+msgstr "SANİYE saniye bekler (öntanımlı 3600)"
+
+#: lib/argp-parse.c:143 src/tar.c:738
+msgid "print program version"
+msgstr "sürüm bilgisi gösterilir"
+
+#: lib/argp-parse.c:159
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(YAZILIM HATASI) Sürümünü bilmiyor!?"
+
+#: lib/argp-parse.c:612
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: argüman sayısı fazla\n"
+
+#: lib/argp-parse.c:755
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(YAZILIM HATASI) Seçenek tanınmak zorunda!?"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: `%s' seçeneği belirsiz\n"
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, 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:593 lib/getopt.c:598
+#, 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:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, 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:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: `--%s' seçeneği bilinmiyor\n"
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: `%c%s' seçeneği bilinmiyor\n"
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: kuraldışı seçenek -- %c\n"
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: geçersiz seçenek -- %c\n"
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, 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:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: `-W %s' seçeneği belirsiz\n"
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, 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/human.c:477
+msgid "block size"
+msgstr "blok uzunluğu"
+
+#: lib/obstack.c:424 lib/obstack.c:426 lib/xalloc-die.c:35 src/extract.c:1377
+msgid "memory exhausted"
+msgstr "bellek tükendi"
+
+#. 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:132
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Üye isimlerinden `%s' kaldırılıyor"
+
+#: lib/paxnames.c:133
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Sabit bağ hedeflerinden `%s' kaldırılıyor"
+
+#: lib/paxnames.c:146
+msgid "Substituting `.' for empty member name"
+msgstr "Boş üye ismi için `.' ikamesi"
+
+#: lib/paxnames.c:147
+msgid "Substituting `.' for empty hard link target"
+msgstr "Boş sabit bağ hedefi için `.' ikamesi"
+
+#. 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.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr "'"
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr "^[eEyY]"
+
+#: lib/rpmatch.c:73
+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
+#, c-format
+msgid "stdout"
+msgstr "stdÇ"
+
+#: lib/rtapelib.c:512
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Uzak kabuk çalıştırılamıyor"
+
+#: rmt/rmt.c:142
+msgid "Input string too long"
+msgstr "Girdi dizgesi çok uzun"
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr "Sayısal sözdizimi hatası"
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Tampon alanı ayrılamıyor\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr "Tampon alanı ayrılamıyor"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Daha fazla bilgi için `%s --help' yazın.\n"
+
+#: rmt/rmt.c:308
+#, 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 ""
+"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:315
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Yazılım hatalarını <%s> adresine,\n"
+"çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
+
+#: rmt/rmt.c:397
+msgid "Seek offset error"
+msgstr "Arama başlangıcı hatası"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+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:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Dosya sonu belirsiz\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "Dosya sonu belirsiz"
+
+#: rmt/rmt.c:672
+msgid "Garbage command"
+msgstr "Bozuk komut"
+
+#: src/buffer.c:326 src/buffer.c:335
+msgid "Total bytes written"
+msgstr "Yazılan toplam bayt"
+
+#: src/buffer.c:333 src/buffer.c:347
+msgid "Total bytes read"
+msgstr "Okunan toplam bayt"
+
+#: src/buffer.c:337
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Silinen toplam bayt: %s\n"
+
+#: src/buffer.c:426
+msgid "(pipe)"
+msgstr "(boru)"
+
+#: src/buffer.c:449
+msgid "Invalid value for record_size"
+msgstr "record_size için geçersiz değer"
+
+#: src/buffer.c:452
+msgid "No archive name given"
+msgstr "Arşiv ismi verilmemiş"
+
+#: src/buffer.c:496
+msgid "Cannot verify stdin/stdout archive"
+msgstr "stdG/stdÇ arşivi doğrulanamaz"
+
+#: src/buffer.c:509
+#, 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:556 src/tar.c:2187
+msgid "Cannot update compressed archives"
+msgstr "Sıkıştırılmış arşivler güncellenemez"
+
+#. 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/buffer.c:606
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Yazma sınama yeri %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/buffer.c:612
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Okuma sınaması yeri %u"
+
+#: src/buffer.c:664
+msgid "At beginning of tape, quitting now"
+msgstr "Bandın başlangıcında, şimdilik çıkıyor"
+
+#: src/buffer.c:670
+msgid "Too many errors, quitting"
+msgstr "Çok hata var, çıkıyor"
+
+#: src/buffer.c:698
+#, 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:718
+#, 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:791
+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:823
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek bir kaydın sınırında durmadı"
+
+#: src/buffer.c:879
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: geçersiz bölüm numarası içeriyor"
+
+#: src/buffer.c:914
+msgid "Volume number overflow"
+msgstr "Bölüm numarası kapsamdışı"
+
+#: src/buffer.c:929
+#, 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:935
+msgid "EOF where user reply was expected"
+msgstr "Kullanıcı cevabı beklenirken dosya sonuna gelindi"
+
+#: src/buffer.c:940 src/buffer.c:972
+msgid "WARNING: Archive is incomplete"
+msgstr "UYARI: Arşiv eksik"
+
+#: src/buffer.c:954
+#, 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 isim Sonraki (ve peşisıra) bölüm(ler) için yeni dosya ismi\n"
+" q Uygulama sonlandırılır\n"
+" y veya <enter> İşlem sürdürülür\n"
+
+#: src/buffer.c:959
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! bir alt kabuk açılır\n"
+
+#: src/buffer.c:960
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Bu listeyi basar\n"
+
+#: src/buffer.c:967
+msgid "No new volume; exiting.\n"
+msgstr "Yeni bölüm yok; çıkıyor.\n"
+
+#: src/buffer.c:1000
+msgid "File name not specified. Try again.\n"
+msgstr "Dosya ismi belirtilmemiş. Tekrar deneyin.\n"
+
+#: src/buffer.c:1013
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Girdi geçersiz, Yardım için ? yazın.\n"
+
+#: src/buffer.c:1064
+#, c-format
+msgid "%s command failed"
+msgstr "%s komutu başarısız"
+
+#: src/buffer.c:1126 src/delete.c:210 src/list.c:167 src/update.c:165
+msgid "This does not look like a tar archive"
+msgstr "Bu bir tar arşivi gibi görünmüyor"
+
+#: src/buffer.c:1219
+#, 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:1223
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s bu bölümde devam etmiyor"
+
+#: src/buffer.c:1237
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s yanlış uzunluk (%s != %s + %s)"
+
+#: src/buffer.c:1247
+msgid "This volume is out of sequence"
+msgstr "Bu bölüm sıralama dışı"
+
+#: src/buffer.c:1293
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arşiv etiketi %s ile eşleşmiyor"
+
+#: src/buffer.c:1296
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "%s bölümü %s ile eşleşmiyor"
+
+#: src/buffer.c:1392
+#, 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/compare.c:96
+#, 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
+msgid "Contents differ"
+msgstr "İçerikler farklı"
+
+#: src/compare.c:132 src/extract.c:790 src/incremen.c:1193 src/list.c:372
+#: src/list.c:1314
+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
+msgid "File type differs"
+msgstr "Dosya türleri farklı"
+
+#: src/compare.c:183 src/compare.c:203 src/compare.c:328
+msgid "Mode differs"
+msgstr "Kipleri farklı"
+
+#: src/compare.c:206
+msgid "Uid differs"
+msgstr "Kullanıcı-kimlikler farklı"
+
+#: src/compare.c:208
+msgid "Gid differs"
+msgstr "Grup-kimlikler farklı"
+
+#: src/compare.c:212
+msgid "Mod time differs"
+msgstr "Değişiklik zamanları farklı"
+
+#: src/compare.c:216 src/compare.c:420
+msgid "Size differs"
+msgstr "Uzunlukları farklı"
+
+#: src/compare.c:270
+#, c-format
+msgid "Not linked to %s"
+msgstr "%s'e bağlı değil"
+
+#: src/compare.c:293
+msgid "Symlink differs"
+msgstr "Sembolik bağlar farklı"
+
+#: src/compare.c:322
+msgid "Device number differs"
+msgstr "Aygıt numaraları farklı"
+
+#: src/compare.c:462
+#, c-format
+msgid "Verify "
+msgstr "Doğrulama "
+
+#: src/compare.c:469
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: '%c' dosya türü bilinmiyor, normal dosya olarak karşılaştırıldı"
+
+#: src/compare.c:524
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arşivdeki dosya isimleri dosya yolu içermiyor."
+
+#: src/compare.c:526
+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
+#, 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/create.c:67
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: %s arabellekleme dizini yaftasını içeriyor; %s"
+
+#: src/create.c:270
+#, 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:276
+#, 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:336
+msgid "Generating negative octal headers"
+msgstr "Negatif sekizlik başlık üretiliyor"
+
+#: src/create.c:622 src/create.c:685
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: dosya ismi çok uzun (en çok %d olabilir); dökümlenmedi"
+
+#: src/create.c:632
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: dosya ismi çok uzun (parçalanamıyor); dökümlenmedi"
+
+#: src/create.c:659
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: bağ ismi çok uzun; dökümlenmedi"
+
+#: src/create.c:1075
+#, 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:1176
+#, 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:1217 src/create.c:1228
+msgid "contents not dumped"
+msgstr "içerik dökümlenmedi"
+
+#: src/create.c:1357
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Bilinmeyen dosya türü; dosya yoksayıldı"
+
+#: src/create.c:1458
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "%s için bağlar kayıp.\n"
+
+#: src/create.c:1529
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: dosya değişmedi; dökümlenmedi"
+
+#: src/create.c:1537
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: dosya arşivdir; dökümlenmedi"
+
+#: src/create.c:1567
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Dosya okunamadan kaldırıldı"
+
+#: src/create.c:1585
+msgid "directory not dumped"
+msgstr "dizin dökümlenmedi"
+
+#: src/create.c:1654
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: dosya okundu olarak imlendi"
+
+#: src/create.c:1733
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: soket yoksayıldı"
+
+#: src/create.c:1738
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: kapı yoksayıldı"
+
+#: src/delete.c:216 src/list.c:181 src/update.c:170
+msgid "Skipping to next header"
+msgstr "Sonraki başlığa atlanıyor"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "Arşivden başlık-olmayan siliniyor"
+
+#: src/extract.c:198
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: makul olmayan eski tarih damgası %s"
+
+#: src/extract.c:215
+#, 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
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Dizin oluşturulurken anlaşılamayan uyumsuzluk"
+
+#: src/extract.c:588
+#, 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
+msgid "Extracting contiguous files as regular files"
+msgstr "Bitişik dosyaları normal dosyalar olarak çıkarıyor"
+
+#: src/extract.c:1000
+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:1057
+#, c-format
+msgid "Reading %s\n"
+msgstr "%s okunuyor\n"
+
+#: src/extract.c:1146
+#, 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:1153 src/list.c:1081
+msgid "Unexpected long name header"
+msgstr "Umulmadık uzun isim başlığı"
+
+#: src/extract.c:1159
+#, 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:1184
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Mevcut %s daha yeni ya da yaşıt"
+
+#: src/extract.c:1230
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Bu dosyayı yedeklemek mümkün olmadı"
+
+#: src/extract.c:1358
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s ismi %s olarak değiştirilemez"
+
+#: src/extract.c:1370
+#, c-format
+msgid "Error is not recoverable: exiting now"
+msgstr "Hata kurtarılabilir değil: şimdilik çıkılıyor"
+
+#: src/incremen.c:260 src/incremen.c:300
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Dizinin eski adı %s idi"
+
+#: src/incremen.c:270
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Dizin adı değiştirilmişti"
+
+#: src/incremen.c:311
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Dizin yeni"
+
+#: src/incremen.c:699 src/incremen.c:716
+msgid "Invalid time stamp"
+msgstr "Geçersiz zaman damgası"
+
+#: src/incremen.c:755
+msgid "Invalid modification time (seconds)"
+msgstr "Değişiklik zamanı (saniye cinsinden) geçersiz"
+
+#: src/incremen.c:770
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Değişiklik zamanı (nanosaniye cinsinden) geçersiz"
+
+#: src/incremen.c:790
+msgid "Invalid device number"
+msgstr "Geçersiz aygıt numarası"
+
+#: src/incremen.c:805
+msgid "Invalid inode number"
+msgstr "Geçersiz düğüm numarası"
+
+#: src/incremen.c:856 src/incremen.c:893
+msgid "Field too long while reading snapshot file"
+msgstr "Anlık görüntü dosyası okunurken alan çok uzun"
+
+#: src/incremen.c:863 src/incremen.c:901
+msgid "Read error in snapshot file"
+msgstr "Anlık görüntü dosyasında okuma hatası"
+
+#: src/incremen.c:865 src/incremen.c:905 src/incremen.c:957
+#: src/incremen.c:1015
+msgid "Unexpected EOF in snapshot file"
+msgstr "Anlık görüntü dosyasında beklenmeyen dosya sonu"
+
+#: src/incremen.c:872 src/incremen.c:912
+msgid "Unexpected field value in snapshot file"
+msgstr "Anlık görüntü dosyasında beklenmeyen alan değeri"
+
+#: src/incremen.c:1007
+msgid "Missing record terminator"
+msgstr "Kayıt sonlandırıcı eksik"
+
+#: src/incremen.c:1058 src/incremen.c:1061
+msgid "Bad incremental file format"
+msgstr "Arttırımlı dosya biçimi hatalı"
+
+#: src/incremen.c:1080
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Desteklenmeyen arttırımlı biçim sürümü: %<PRIuMAX>"
+
+#: src/incremen.c:1233
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "dumpdir bozuk: umulan '%c' ama bulunan %#3o"
+
+#: src/incremen.c:1243
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "dumpdir bozuk: 'X' yinelenmiş"
+
+#: src/incremen.c:1256
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "dumpdir bozuk: 'R'deki isim boş"
+
+#: src/incremen.c:1269
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "dumpdir bozuk: 'T' 'R' ile öncelenmemiş"
+
+#: src/incremen.c:1275
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "dumpdir bozuk: 'T'deki isim boş"
+
+#: src/incremen.c:1295
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "dumpdir bozuk: umulan'%c' ama bulunan veri sonu"
+
+#: src/incremen.c:1301
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "dumpdir bozuk: 'X' hiç kullanılmamış"
+
+#: src/incremen.c:1344
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "%s şablonu kullanılarak geçici dizin oluşturulamıyor"
+
+#: src/incremen.c:1392
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: dizin temizlenmiyor: durumlama yapılamadı"
+
+#: src/incremen.c:1405
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: dizin farklı bir aygıtta: temizlenmiyor"
+
+#: src/incremen.c:1413
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s siliniyor\n"
+
+#: src/incremen.c:1418
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Kaldırılamaz"
+
+#: src/list.c:113
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Geçiliyor"
+
+#: src/list.c:131
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** NUL bloku **\n"
+
+#: src/list.c:144
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "%s de tek başına sıfır bloğu"
+
+#: src/list.c:155
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Dosya Sonu **\n"
+
+#: src/list.c:178 src/list.c:1054 src/list.c:1282
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:662
+#, 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:717
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Arşiv sekizlik değeri %.*s aralığın %s dışında; ikinin tümleyeni kabul ediliyor"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:728
+#, 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:749
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arşiv atıl base-64 başlıklar içeriyor"
+
+#: src/list.c:763
+#, 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:794
+#, 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:823
+#, 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:845
+#, 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:1217
+#, c-format
+msgid " link to %s\n"
+msgstr " bağı -> %s \n"
+
+#: src/list.c:1225
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " bilinmeyen dosya türü %s\n"
+
+#: src/list.c:1243
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Uzun Bağ--\n"
+
+#: src/list.c:1247
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Uzun İsim--\n"
+
+#: src/list.c:1251
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Bölüm Başlığı--\n"
+
+#: src/list.c:1259
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Devamı bayt %s de--\n"
+
+#: src/list.c:1287
+msgid "Creating directory:"
+msgstr "Oluşturulan dizin:"
+
+#: src/misc.c:456
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s %s olarak değiştiriliyor\n"
+
+#: src/misc.c:465 src/misc.c:483
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: İsmi %s olarak değiştirilemez"
+
+#: src/misc.c:488
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Gerisin geriye %s %s olarak değiştiriliyor\n"
+
+#: src/misc.c:615
+msgid "Cannot save working directory"
+msgstr "Çalışılan dizin kaydedilemez"
+
+#: src/misc.c:621
+msgid "Cannot change working directory"
+msgstr "Çalışma dizini değiştirilemez"
+
+#: src/misc.c:711
+msgid "child process"
+msgstr "alt süreç"
+
+#: src/misc.c:720
+msgid "interprocess channel"
+msgstr "süreçlerarası kanal"
+
+#. TRANSLATORS: The following three msgids form a single sentence.
+#.
+#: src/names.c:599
+msgid "Pattern matching characters used in file names. Please,"
+msgstr "Kalıp eşleme karakterleri dosya isimlerinde kullanılmış. Lütfen,"
+
+#: src/names.c:601
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+msgstr "ya kalıp eşlemeyi etkin kılmak için --wildcards kullanın,"
+
+#: src/names.c:603
+msgid "suppress this warning."
+msgstr "ya da bu uyarıyı engellemek için --no-wildcards kullanın."
+
+#: src/names.c:618 src/names.c:636
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Arşivde yok"
+
+#: src/names.c:621
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Arşivde bulunması gerekirken yok"
+
+#: src/tar.c:80
+#, 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:157
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Geçersiz arşiv biçimi"
+
+#: src/tar.c:181
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU özellikleri ile uyumsuz arşiv biçimi"
+
+#: src/tar.c:242
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Sarmalama şekli `%s' bilinmiyor. Listeyi almak için `%s --quoting-style=help' yazın."
+
+#: src/tar.c:329
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' çok sayıda dosyayı birarada tek bir disk arşivi olarak veya teybe\n"
+" kaydeder ve böyle bir arşivden dosyaları tek tek çıkarabilir\n"
+"\n"
+"Örnekler:\n"
+" tar -cf arşiv.tar foo bar # foo ve bar dosyalarından arşiv.tar oluşturulur\n"
+" 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:338
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"--suffix veya SIMPLE_BACKUP_SUFFIX ile belirtilmedikçe yedek soneki '~' dir.\n"
+"Sürüm denetimi aşağıdaki değerler --backup veya VERSION_CONTROL ile\n"
+"kullanılarak yapılabilir:\n"
+"\n"
+" none, off yedekleme yapılmaz\n"
+" t, numbered numaralı yedekleme yapılır\n"
+" 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:364
+msgid "Main operation mode:"
+msgstr "Ana işlem kipi:"
+
+#: src/tar.c:367
+msgid "list the contents of an archive"
+msgstr "bir arşiv içeriğini listeler"
+
+#: src/tar.c:369
+msgid "extract files from an archive"
+msgstr "bir arşivdeki dosyaları çıkarır"
+
+#: src/tar.c:372
+msgid "create a new archive"
+msgstr "yeni bir arşiv oluşturur"
+
+#: src/tar.c:374
+msgid "find differences between archive and file system"
+msgstr "arşiv ile dosya sistemi arasındaki farklar bulunur"
+
+#: src/tar.c:377
+msgid "append files to the end of an archive"
+msgstr "dosyaları arşivin sonuna ekler"
+
+#: src/tar.c:379
+msgid "only append files newer than copy in archive"
+msgstr "sadece arşivdeki kopyasından daha yeni dosyalar eklenir"
+
+#: src/tar.c:381
+msgid "append tar files to an archive"
+msgstr "bir arşive tar dosyaları ekler"
+
+#: src/tar.c:384
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "arşivden siler (teyplerde değil!)"
+
+#: src/tar.c:386
+msgid "test the archive volume label and exit"
+msgstr "arşiv bölüm etiketini sınar ve çıkar"
+
+#: src/tar.c:391
+msgid "Operation modifiers:"
+msgstr "İşlem değiştiriciler:"
+
+#: src/tar.c:394
+msgid "handle sparse files efficiently"
+msgstr "seyrek dosyalar verimli şekilde elde edilir"
+
+#: src/tar.c:395
+msgid "MAJOR[.MINOR]"
+msgstr "ANA[.ALT]"
+
+#: src/tar.c:396
+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:398
+msgid "handle old GNU-format incremental backup"
+msgstr "GNU eski tarz arttırımlı yedekleme tanınır"
+
+#: src/tar.c:399 src/tar.c:530 src/tar.c:594 src/tar.c:598 src/tar.c:608
+#: src/tar.c:618 src/tar.c:621 src/tar.c:623 src/tar.c:698 tests/genfile.c:132
+#: tests/genfile.c:180 tests/genfile.c:184 tests/genfile.c:187
+msgid "FILE"
+msgstr "DOSYA"
+
+#: src/tar.c:400
+msgid "handle new GNU-format incremental backup"
+msgstr "GNU yeni tarz arttırımlı yedekleme tanınır"
+
+#: src/tar.c:402
+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:403 src/tar.c:525 src/tar.c:540 src/tar.c:651 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "SAYI"
+
+#: src/tar.c:404
+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 "her dosyanın arşivdeki sadece SAYI'ıncı kopyası işlenir; bu seçenek sadece --delete, --diff, --extract veya --list alt komutlarından biri ile geçerlidir 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:410
+msgid "archive is seekable"
+msgstr "arşiv arama yapılabilen türde"
+
+#: src/tar.c:415
+msgid "Overwrite control:"
+msgstr "Üsteyazma denetimi:"
+
+#: src/tar.c:418
+msgid "attempt to verify the archive after writing it"
+msgstr "yazdıktan sonra arşivi doğrulamaya çalışır"
+
+#: src/tar.c:420
+msgid "remove files after adding them to the archive"
+msgstr "arşive eklendikten sonra dosyalar silinir"
+
+#: src/tar.c:422
+msgid "don't replace existing files when extracting"
+msgstr "çıkarılırken mevcut dosyalar değiştirilmez"
+
+#: src/tar.c:424
+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:426
+msgid "overwrite existing files when extracting"
+msgstr "çıkarılırken mevcut dosyaların üzerine yazılır"
+
+#: src/tar.c:428
+msgid "remove each file prior to extracting over it"
+msgstr "çıkarılmadan önce mevcut dosya silinir"
+
+#: src/tar.c:430
+msgid "empty hierarchies prior to extracting directory"
+msgstr "dizin çıkarılmadan önce alt dizinleri silinir"
+
+#: src/tar.c:432
+msgid "preserve metadata of existing directories"
+msgstr "mevcut dizinlerin öznitelikleri korunur"
+
+#: src/tar.c:434
+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:440
+msgid "Select output stream:"
+msgstr "Çıktı akımını seçiniz:"
+
+#: src/tar.c:443
+msgid "extract files to standard output"
+msgstr "dosyalar standart çıktıya çıkarılır"
+
+#: src/tar.c:444 src/tar.c:503 src/tar.c:505 tests/genfile.c:163
+#: tests/genfile.c:190
+msgid "COMMAND"
+msgstr "KOMUT"
+
+#: src/tar.c:445
+msgid "pipe extracted files to another program"
+msgstr "çıkarılan dosyaları başka bir uygulamaya borular"
+
+#: src/tar.c:447
+msgid "ignore exit codes of children"
+msgstr "altsüreçlerin çıkış kodları yoksayılır"
+
+#: src/tar.c:449
+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:454
+msgid "Handling of file attributes:"
+msgstr "Dosya özniteliklerinin elde edilmesi:"
+
+#: src/tar.c:457
+msgid "force NAME as owner for added files"
+msgstr "İSİM eklenen dosyaların sahibi yapılır"
+
+#: src/tar.c:459
+msgid "force NAME as group for added files"
+msgstr "İSİM eklenen dosyaların grubu yapılır"
+
+#: src/tar.c:460 src/tar.c:637
+msgid "DATE-OR-FILE"
+msgstr "DOSYA-TARİHİ"
+
+#: src/tar.c:461
+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:462
+msgid "CHANGES"
+msgstr "KİP"
+
+#: src/tar.c:463
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "KİP eklenen dosyaların (sembolik) kipi yapılır"
+
+#: src/tar.c:465
+msgid "METHOD"
+msgstr "YÖNTEM"
+
+#: src/tar.c:466
+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 "dökümlenen dosyalarda erişim zamanları korunur; ya okuma sonrası eski değerine getirerek (YÖNTEM='replace' öntanımlıdır) ya da ilk yerindeki zamanı değiştirmeyerek (YÖNTEM='system')."
+
+#: src/tar.c:470
+msgid "don't extract file modified time"
+msgstr "dosya değişiklik zamanı çıkarılmaz"
+
+#: src/tar.c:472
+msgid "try extracting files with the same ownership"
+msgstr "sahibi aynı olan dosyalar çıkarılmaya çalışılır"
+
+#: src/tar.c:474
+msgid "extract files as yourself"
+msgstr "dosyalar sizin sahipliğinizde çıkarılır"
+
+#: src/tar.c:476
+msgid "always use numbers for user/group names"
+msgstr "kullanıcı/grup isimleri yerine daima numaraları kullanılır"
+
+#: src/tar.c:478
+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:482
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+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:484
+msgid "sort names to extract to match archive"
+msgstr "isimler arşivdeki sırasına göre çıkarılır"
+
+#: src/tar.c:487
+msgid "same as both -p and -s"
+msgstr "-p ve -s birlikte verilmiş gibi olur"
+
+#: src/tar.c:489
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "herşey çıkarılana kadar çıkarılan dizinlerin izinleri ve değişiklik zamanlarının değiştirilmesi geciktirilir"
+
+#: src/tar.c:492
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "--delay-directory-restore seçeneğinin etkisi iptal edilir."
+
+#: src/tar.c:497
+msgid "Device selection and switching:"
+msgstr "Aygıt seçimi ve aygıt değiştirme:"
+
+#: src/tar.c:499
+msgid "ARCHIVE"
+msgstr "ARŞİV"
+
+#: src/tar.c:500
+msgid "use archive file or device ARCHIVE"
+msgstr "arşiv dosyası ya da ARŞİV aygıtı kullanılır"
+
+#: src/tar.c:502
+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:504
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "rmt yerine rmt KOMUT kullanılır"
+
+#: src/tar.c:506
+msgid "use remote COMMAND instead of rsh"
+msgstr "rsh yerine uzak uçta KOMUT kullanılır"
+
+#: src/tar.c:510
+msgid "specify drive and density"
+msgstr "sürücü ve yoğunluk belirtilir"
+
+#: src/tar.c:524
+msgid "create/list/extract multi-volume archive"
+msgstr "çok bölümlü arşivi oluşturur/listeler/çıkarır"
+
+#: src/tar.c:526
+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:528
+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:531
+msgid "use/update the volume number in FILE"
+msgstr "DOSYAda bölüm numarası kullanılır/güncellenir"
+
+#: src/tar.c:536
+msgid "Device blocking:"
+msgstr "Aygıtın blok düzeni:"
+
+#: src/tar.c:538
+msgid "BLOCKS"
+msgstr "BLOK"
+
+#: src/tar.c:539
+msgid "BLOCKS x 512 bytes per record"
+msgstr "kayıt başına BLOK x 512 bayt"
+
+#: src/tar.c:541
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "512'nin katları olarak kayıt başına BOYUT bayt"
+
+#: src/tar.c:543
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "arşivdeki sıfırlı bloklar yoksayılır (dosyasonu anlamında)"
+
+#: src/tar.c:545
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "okunmuş olarak yeniden bloklanır (4.2 BSD boruları için)"
+
+#: src/tar.c:550
+msgid "Archive format selection:"
+msgstr "Arşiv biçimi seçimi:"
+
+#: src/tar.c:552 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "BİÇİM"
+
+#: src/tar.c:553
+msgid "create archive of the given format"
+msgstr "belirtilen biçimin arşivi oluşturulur."
+
+#: src/tar.c:555
+msgid "FORMAT is one of the following:"
+msgstr "BİÇİM şunlardan biri olabilir:"
+
+#: src/tar.c:556
+msgid "old V7 tar format"
+msgstr "eski V7 tar biçimi"
+
+#: src/tar.c:559
+msgid "GNU format as per tar <= 1.12"
+msgstr "tar <= 1.12 için GNU biçimi"
+
+#: src/tar.c:561
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x biçimi"
+
+#: src/tar.c:563
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) biçimi"
+
+#: src/tar.c:565
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) biçimi"
+
+#: src/tar.c:566
+msgid "same as pax"
+msgstr "pax ile aynı"
+
+#: src/tar.c:569
+msgid "same as --format=v7"
+msgstr " --format=v7 ile aynı"
+
+#: src/tar.c:572
+msgid "same as --format=posix"
+msgstr "--format=posix ile aynı"
+
+#: src/tar.c:573
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "isim[[:]=değer][,isim[[:]=değer]]..."
+
+#: src/tar.c:574
+msgid "control pax keywords"
+msgstr "pax anahtar sözcüklerini denetler"
+
+#: src/tar.c:575
+msgid "TEXT"
+msgstr "METİN"
+
+#: src/tar.c:576
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+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:578
+msgid "filter the archive through bzip2"
+msgstr "arşivi bzip2 üzerinden geçirir"
+
+#: src/tar.c:580
+msgid "filter the archive through gzip"
+msgstr "arşivi gzip üzerinden geçirir"
+
+#: src/tar.c:584
+msgid "filter the archive through compress"
+msgstr "arşivi compress üzerinden geçirir"
+
+#: src/tar.c:586
+msgid "PROG"
+msgstr "UYG"
+
+#: src/tar.c:587
+msgid "filter through PROG (must accept -d)"
+msgstr "arşivi UYG üzerinden geçirir (UYG -d kabul etmeli)"
+
+#: src/tar.c:592
+msgid "Local file selection:"
+msgstr "Yerel dosya seçimi:"
+
+#: src/tar.c:595
+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:596
+msgid "DIR"
+msgstr "DİZİN"
+
+#: src/tar.c:597
+msgid "change to directory DIR"
+msgstr "DİZİN dizinine geçilir"
+
+#: src/tar.c:599
+msgid "get names to extract or create from FILE"
+msgstr "çıkarılacak ya da oluşturulacak isimler DOSYAdan alınır"
+
+#: src/tar.c:601
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T boş karakter sonlandırmalı isimleri okur, -C iptal edilir"
+
+#: src/tar.c:603
+msgid "unquote filenames read with -T (default)"
+msgstr "-T ile okunan dosyaisimlerine tırnak ayıklama uygulanır"
+
+#: src/tar.c:605
+msgid "do not unquote filenames read with -T"
+msgstr "-T ile okunan dosyaisimlerine tırnak ayıklama uygulanmaz"
+
+#: src/tar.c:606 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "ŞABLON"
+
+#: src/tar.c:607
+msgid "exclude files, given as a PATTERN"
+msgstr "belirtilen ŞABLONa uyan dosyalar hariç tutulur"
+
+#: src/tar.c:609
+msgid "exclude patterns listed in FILE"
+msgstr "DOSYAdaki şablonlara uyan isimler hariç tutulur"
+
+#: src/tar.c:611
+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:614
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG içeren dizinlerin altındaki herşey hariç tutulur"
+
+#: src/tar.c:617
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG içeren dizinler hariç tutulur"
+
+#: src/tar.c:619
+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:622
+msgid "exclude everything under directories containing FILE"
+msgstr "DOSYA içeren dizinlerin altındaki herşey hariç tutulur"
+
+#: src/tar.c:624
+msgid "exclude directories containing FILE"
+msgstr "DOSYA içeren dizinler hariç tutulur"
+
+#: src/tar.c:626
+msgid "avoid descending automatically in directories"
+msgstr "dizinlerde özdevinimli olarak azalan sıralamadan kaçınılır"
+
+#: src/tar.c:628
+msgid "stay in local file system when creating archive"
+msgstr "arşiv oluşturulurken yerel dosya sisteminde kalınır"
+
+#: src/tar.c:630
+msgid "recurse into directories (default)"
+msgstr "dizinlerin alt dizinlerine inilir (öntanımlı)"
+
+#: src/tar.c:632
+msgid "don't strip leading `/'s from file names"
+msgstr "dosya isimlerinin başındaki `/'lar ayrılmaz"
+
+#: src/tar.c:634
+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:635
+msgid "MEMBER-NAME"
+msgstr "ÜYE-İSMİ"
+
+#: src/tar.c:636
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "arşivin ÜYE-İSMİ üyesinden başlanır"
+
+#: src/tar.c:638
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "sadece DOSYA-TARİHİnden daha yeni dosyalar saklanır"
+
+#: src/tar.c:640
+msgid "DATE"
+msgstr "TARİH"
+
+#: src/tar.c:641
+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:642
+msgid "CONTROL"
+msgstr "DENETİM"
+
+#: src/tar.c:643
+msgid "backup before removal, choose version CONTROL"
+msgstr "kaldırılmadan önce DENETİM sürümü seçilerek yedeklenir"
+
+#: src/tar.c:644 src/tar.c:715 src/tar.c:717 tests/genfile.c:169
+msgid "STRING"
+msgstr "DİZGE"
+
+#: src/tar.c:645
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+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:650
+msgid "File name transformations:"
+msgstr "Dosya ismi dönüşümleri:"
+
+#: src/tar.c:652
+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:654
+msgid "EXPRESSION"
+msgstr "İFADE"
+
+#: src/tar.c:655
+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:660
+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:663
+msgid "ignore case"
+msgstr "harf büyüklükleri önemsenmez"
+
+#: src/tar.c:665
+msgid "patterns match file name start"
+msgstr "dosya isminin başlangıcına uyan kalıplar"
+
+#: src/tar.c:667
+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:669
+msgid "case sensitive matching (default)"
+msgstr "harf büyüklüklerine duyarlı eşleşme (öntanımlı)"
+
+#: src/tar.c:671
+msgid "use wildcards (default for exclusion)"
+msgstr "genelleme kalıpları kullanılır (dışlama için öntanımlı)"
+
+#: src/tar.c:673
+msgid "verbatim string matching"
+msgstr "birebir dizge eşleme"
+
+#: src/tar.c:675
+msgid "wildcards do not match `/'"
+msgstr "'/' ile eşleşmeyen genelleme kalıpları"
+
+#: src/tar.c:677
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "'/' ile eşleşen genelleme kalıpları (dışlama için öntanımlı)"
+
+#: src/tar.c:682
+msgid "Informative output:"
+msgstr "Bilgilendirme çıktısı:"
+
+#: src/tar.c:685
+msgid "verbosely list files processed"
+msgstr "işlenen dosyalar ayrıntılı listelenir"
+
+#: src/tar.c:686
+msgid "[.]NUMBER"
+msgstr "[.]SAYI"
+
+#: src/tar.c:687
+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:690
+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:691
+msgid "SIGNAL"
+msgstr "SiNYAL"
+
+#: src/tar.c:692
+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 "arşivi işledikten sonra bayt toplamını basar; bir - argümanla SiNYAL 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:697
+msgid "print file modification dates in UTC"
+msgstr "dosya değişiklik zamanları UTC'ye göre basılır"
+
+#: src/tar.c:699
+msgid "send verbose output to FILE"
+msgstr "ayrıntılı çıktı DOSYAya gönderilir"
+
+#: src/tar.c:701
+msgid "show block number within archive with each message"
+msgstr "her iletide arşiv içindeki blok sayısı gösterilir"
+
+#: src/tar.c:703
+msgid "ask for confirmation for every action"
+msgstr "her eylemden önce doğrulama istenir"
+
+#: src/tar.c:706
+msgid "show tar defaults"
+msgstr "tar öntanımlıları gösterilir"
+
+#: src/tar.c:708
+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:710
+msgid "show file or archive names after transformation"
+msgstr "dönüşümden sonra dosya ve arşiv isimlerini gösterir"
+
+#: src/tar.c:713
+msgid "STYLE"
+msgstr "ŞEKİL"
+
+#: src/tar.c:714
+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:716
+msgid "additionally quote characters from STRING"
+msgstr "DİZGEdeki sarmalama karakterlerine ek olarak"
+
+#: src/tar.c:718
+msgid "disable quoting for characters from STRING"
+msgstr "DİZGEdeki karakterler için sarmalamayı iptal eder"
+
+#: src/tar.c:723
+msgid "Compatibility options:"
+msgstr "Uyumluluk seçenekleri:"
+
+#: src/tar.c:726
+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:731
+msgid "Other options:"
+msgstr "Diğer seçenekler:"
+
+#: src/tar.c:734
+msgid "disable use of some potentially harmful options"
+msgstr "bozuculuk olasılığı olan bazı seçeneklerin kullanımı iptal edilir"
+
+#: src/tar.c:838
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "`-Acdtrux' seçenekleri birden fazla belirtilemez"
+
+#: src/tar.c:848
+msgid "Conflicting compression options"
+msgstr "Sıkıştırma seçenekleri çelişiyor"
+
+#: src/tar.c:904
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Bilinmeyen sinyal ismi: %s"
+
+#: src/tar.c:928
+msgid "Date sample file not found"
+msgstr "Tarih örnekleri dosyası bulunamadı"
+
+#: src/tar.c:936
+#, 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:961
+#, 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:1035
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: dosya listesi zaten okundu"
+
+#: src/tar.c:1098
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: okunan dosya ismi boş karakter içeriyor"
+
+#: src/tar.c:1163
+msgid "Valid arguments for --quoting-style options are:"
+msgstr "--quoting-style seçeneği için geçerli değerler:"
+
+#: src/tar.c:1166
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Bu* tar için öntanımlılar:\n"
+
+#: src/tar.c:1199
+msgid "Invalid blocking factor"
+msgstr "Bloklama çarpanı geçersiz"
+
+#: src/tar.c:1271
+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?"
+
+#: src/tar.c:1304
+msgid "Invalid tape length"
+msgstr "Kayıt ortamının uzunluğu geçersiz"
+
+#: src/tar.c:1336
+msgid "More than one threshold date"
+msgstr "Birden fazla eşik tarihi"
+
+#: src/tar.c:1391 src/tar.c:1394
+msgid "Invalid sparse version value"
+msgstr "Seyrek sürüm değeri geçersiz"
+
+#: src/tar.c:1479
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' seçeneği bu platformda desteklenmiyor"
+
+#: src/tar.c:1496
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint değeri bir tamsayı değil"
+
+#: src/tar.c:1589
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: geçersiz grup"
+
+#: src/tar.c:1596
+msgid "Invalid mode given on option"
+msgstr "Seçenekte verilen kip geçersiz"
+
+#: src/tar.c:1649
+msgid "Invalid number"
+msgstr "Sayı geçersiz"
+
+#: src/tar.c:1671
+msgid "Invalid owner"
+msgstr "Sahip geçersiz"
+
+#: src/tar.c:1705
+msgid "Invalid record size"
+msgstr "Kayıt uzunluğu geçersiz"
+
+#: src/tar.c:1708
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Kayıt uzunluğu %d nin katları olmalı"
+
+#: src/tar.c:1745
+msgid "Invalid number of elements"
+msgstr "Elemen sayısı geçersiz"
+
+#: src/tar.c:1765
+msgid "Only one --to-command option allowed"
+msgstr "Sadece tek bir --to-command seçeneği kullanılabilir"
+
+#: src/tar.c:1841
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Hatalı yoğunluk argümanı: %s"
+
+#: src/tar.c:1867
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Bilinmeyen yoğunluk: '%c'"
+
+#: src/tar.c:1884
+#, 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:1919
+msgid "[FILE]..."
+msgstr "[DOSYA]..."
+
+#: src/tar.c:2022
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Eski seçenek `%c' bir argümanla kullanılır."
+
+#: src/tar.c:2104
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence bir dosya listesi olmaksızın anlamlı değil"
+
+#: src/tar.c:2110
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence istenen işlem kipinde kullanılamaz"
+
+#: src/tar.c:2140
+msgid "Multiple archive files require `-M' option"
+msgstr "Çok sayıda arşiv dosyası `-M' seçeneği gerektirir"
+
+#: src/tar.c:2145
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental ile --newer birlikte kullanılamaz"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "Cannot verify multi-volume archives"
+msgstr "Çok sayıda bölüm içeren arşivler doğrulanamaz"
+
+#: src/tar.c:2177
+msgid "Cannot verify compressed archives"
+msgstr "Sıkıştırılmış arşivler doğrulanamaz"
+
+#: src/tar.c:2183
+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:2189
+msgid "Cannot concatenate compressed archives"
+msgstr "Sıkıştırılmış arşivler birleştirilemez"
+
+#: src/tar.c:2201
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option sadece POSIX arşivlerinde kullanılabilir"
+
+#: src/tar.c:2226
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Bir boş arşivin oluşturulması ister istemez reddediliyor"
+
+#: src/tar.c:2247
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "`-Aru' seçenekleri `-f -' ile uyumsuz"
+
+#: src/tar.c:2334
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "`-Acdtrux' seçeneklerinden biri belirtilmeli"
+
+#: src/tar.c:2385
+#, c-format
+msgid "Error exit delayed from previous errors"
+msgstr "Hata çıkışı önceki hatalardan dolayı gecikti"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:158
+#, 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:184
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "%s şablonu kullanılamıyor"
+
+#: src/xheader.c:194
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "%s anahtar sözcüğü çakıştırılamaz"
+
+#: src/xheader.c:498
+msgid "Malformed extended header: missing length"
+msgstr "Ek başlık bozuk: uzunluk eksik"
+
+#: src/xheader.c:506
+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:513
+#, 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:525
+msgid "Malformed extended header: missing blank after length"
+msgstr "Ek başlık bozuk: uzunluktan sonra boşluk yok"
+
+#: src/xheader.c:533
+msgid "Malformed extended header: missing equal sign"
+msgstr "Ek başlık bozuk: eşit işareti eksik"
+
+#: src/xheader.c:539
+msgid "Malformed extended header: missing newline"
+msgstr "Ek başlık bozuk: satırsonu eksik"
+
+#: src/xheader.c:576
+#, 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:780
+#, 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:812
+#, 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:943 src/xheader.c:973 src/xheader.c:1287
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Ek başlık bozuk: %s=%s geçersiz"
+
+#: src/xheader.c:1240 src/xheader.c:1265 src/xheader.c:1315
+#, 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:1328
+#, 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:1338
+#, 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"
+
+#: tests/genfile.c:112
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile, GNU paxutils deneme araçları için veri dosyalarını işleme sokar.\n"
+"SEÇENEKLER:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Dosya oluşturma seçenekleri:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "BOYUT"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Dosya belirtilen BOYUTta oluşturulur"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Dosyalar standart çıktı yerine İSİM dosyasına yazılır"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Dosya isimleri DOSYAdan okunur"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T boş karakter sonlandırmalı isimleri okur"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Seyrek dosyalar için blok boyu"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "KONUM"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Veriyi yazmadan önce belirtilen konuma gider"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Dosya istatistikleri seçenekleri:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "İcra eşzamanlama seçenekleri:"
+
+#: tests/genfile.c:164
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+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:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Sonraki --touch seçeneği için tarih ayarlanır"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "İcra edilen sınamalar ve KOMUTun çıkış durumu gösterilir"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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:181
+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:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "DOSYAnın değişiklik ve erişim zamanları güncellenir"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "KOMUT çalıştırılır"
+
+#: tests/genfile.c:241
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Geçersiz boyut: %s"
+
+#: tests/genfile.c:246
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Numara izin verilen aralığın dışında: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negatif boyut: %s"
+
+#: tests/genfile.c:262 tests/genfile.c:561
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) başarısız"
+
+#: tests/genfile.c:356
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Sayı çözümlenirken `%s' civarında hata"
+
+#: tests/genfile.c:362
+#, c-format
+msgid "Unknown date format"
+msgstr "Bilinmeyen tarih biçimi"
+
+#: tests/genfile.c:385
+msgid "[ARGS...]"
+msgstr "[ARGÜMANLAR...]"
+
+#: tests/genfile.c:422 tests/genfile.c:462 tests/genfile.c:515
+#: tests/genfile.c:665 tests/genfile.c:679
+#, c-format
+msgid "cannot open `%s'"
+msgstr "`%s' açılamıyor"
+
+#: tests/genfile.c:428
+msgid "cannot seek"
+msgstr "konumlanamıyor"
+
+#: tests/genfile.c:445
+#, c-format
+msgid "file name contains null character"
+msgstr "dosya ismi boş karakter içeriyor"
+
+#: tests/genfile.c:510
+#, 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:588
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "kalıp yanlış (`%s' yakınında)"
+
+#: tests/genfile.c:594 tests/genfile.c:627
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Bilinmeyen alan `%s'"
+
+#: tests/genfile.c:654
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "zaman `%s' olarak ayarlanamaz"
+
+#: tests/genfile.c:808
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Komut başarıyla sonlandı\n"
+
+#: tests/genfile.c:810
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Komut %d çıkış durumu ile başarısız oldu\n"
+
+#: tests/genfile.c:814
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Komut %d sinyali ile sonlandırıldı\n"
+
+#: tests/genfile.c:816
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Komut %d sinyali ile durduruldu\n"
+
+#: tests/genfile.c:819
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Komut bellek dökümü verdi\n"
+
+#: tests/genfile.c:822
+#, c-format
+msgid "Command terminated\n"
+msgstr "Komut sonlandı\n"
+
+#: tests/genfile.c:854
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat seçeneği dosya isimleri gerektirir"
+
+#: tests/genfile.c:867
+#, c-format
+msgid "too many arguments"
+msgstr "argüman sayısı çok fazla"
diff --git a/po/.reference/tr.s1 b/po/.reference/tr.s1
new file mode 100644
index 00000000..e45ef127
--- /dev/null
+++ b/po/.reference/tr.s1
@@ -0,0 +1 @@
+4a45f0ba600abcacedd3702c599a5983bbd499d0 -
diff --git a/po/.reference/uk.po b/po/.reference/uk.po
new file mode 100644
index 00000000..810a3991
--- /dev/null
+++ b/po/.reference/uk.po
@@ -0,0 +1,2632 @@
+# Ukrainian messages for GNU tar
+# This file is distributed under the same license as the tar package.
+# Copyright (C) 2010 Free Software Foundation, Inc.
+# Sergey Poznyakoff <gray@gnu.org>, 2005, 2006, 2007, 2008, 2009, 2010.
+#
+#: src/create.c:1550
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.24\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2010-10-24 23:08+0300\n"
+"PO-Revision-Date: 2010-10-25 15:22+0300\n"
+"Last-Translator: Sergey Poznyakoff <gray@gnu.org>\n"
+"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: uk\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "неправильний аргумент %s для %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "неоднозначний аргумент %s для %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Дозволені аргументи такі:"
+
+#: 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"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: параметр ARGP_HELP_FMT вимагає значення"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: параметр ARGP_HELP_FMT має бути додатнім"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Невідомий параметр ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Хибні дані в ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1246
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Аргументи, обов'язкові для довгих ключів, є обов'язковими й для коротких."
+
+#: gnu/argp-help.c:1639
+msgid "Usage:"
+msgstr "Використання:"
+
+#: gnu/argp-help.c:1643
+msgid " or: "
+msgstr " чи: "
+
+#: gnu/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [ОПЦІЯ...]"
+
+#: gnu/argp-help.c:1682
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Спробуйте `%s --help' або `%s --usage' для отримання докладнішого опису.\n"
+
+#: gnu/argp-help.c:1710
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Про помилки звітуйте на <%s>.\n"
+
+#: gnu/argp-help.c:1929 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Невідома системна помилка"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "вивести цю довідку"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "вивести коротке повідомлення про використання"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "НАЗВА"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "встановити назву програми"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "СЕКУНДИ"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "зачекати вказану кількість секунд (типово 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "вивести версію програми"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Невідома версія!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Забагато аргументів\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Опція мала бути розпізнана!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "помилка запису"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: опція '%s' неоднозначна\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: опція '--%s' не може мати аргументу\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: опція '%c%s' не може мати аргументу\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, fuzzy, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: опція '%s' вимагає аргументу\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: невідома опція '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: невідома опція '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: недійсна опція -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: опція вимагає аргументу -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: опція '-W %s' неоднозначна\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: опція '-W %s' не може мати аргументу\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, fuzzy, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: опція '%s' вимагає аргументу\n"
+
+#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "пам'ять вичерпана"
+
+#: gnu/openat-die.c:36
+#, c-format
+msgid "unable to record current working directory"
+msgstr "не вдається змінити поточний каталог"
+
+#: gnu/openat-die.c:54
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "не вдається зберегти поточний каталог"
+
+#. 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.
+#: gnu/quotearg.c:274
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:275
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yYтТ]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nNнН]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Пакував %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Ліцензія GPLv3+: GNU GPL версії 3 або пізнішої <http://gnu.org/licenses/gpl.html>\n"
+"Це є вільне програмне забезпечення: ви можете змінювати та розповсюджувати його.\n"
+"Немає ЖОДНИХ ГАРАНТІЙ, в межах дозволених правом.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Автор: %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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 та %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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Про помилки звітуйте на %s\n"
+"Про помилки у перекладі звітуйте за адресою <translation-team-uk@lists.sourceforge.net>\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: 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"
+
+#: 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 "Підстановка `.' замість пустої назви цілі жорсткого посилання"
+
+#: 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:432
+msgid "Seek direction out of range"
+msgstr "Напрямок зміщення за межами діапазону"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Помилковий напрям пошуку"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Помилковий зсув у файлі"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Зміщення за межами діапазону"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Помилкова кількість байтів"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Кількість байтів за межами діапазону"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Передчасне закінчення файла"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Недійсний код операції"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Операція не підтримується"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Неочікувані аргументи"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Керує стрічковим пристроєм, отримуючи команди від віддаленого процесу"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "ЧИСЛО"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "встановити рівень налагоджування"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "встановити назву файлу для виходу налагоджування"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "не вдається відкрити %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "забагато аргументів"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Хибна команда"
+
+#: src/buffer.c:386 src/buffer.c:391 src/buffer.c:635 src/buffer.c:1250
+#: src/buffer.c:1296 src/buffer.c:1325 src/delete.c:211 src/list.c:184
+#: src/update.c:198
+msgid "This does not look like a tar archive"
+msgstr "Це не схоже на архів tar"
+
+#: src/buffer.c:450 src/buffer.c:459
+msgid "Total bytes written"
+msgstr "Записано загалом"
+
+#: src/buffer.c:457 src/buffer.c:471
+msgid "Total bytes read"
+msgstr "Прочитано байтів загалом"
+
+#: src/buffer.c:461
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Видалено загалом: %s\n"
+
+#: src/buffer.c:550
+msgid "(pipe)"
+msgstr "(канал)"
+
+#: src/buffer.c:573
+msgid "Invalid value for record_size"
+msgstr "Недійсне значення record_size"
+
+#: src/buffer.c:576
+msgid "No archive name given"
+msgstr "Не вказано назви архіву"
+
+#: src/buffer.c:618
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Неможливо перевіряти архів, записаний до stdout"
+
+#: src/buffer.c:632
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Архів стиснений. Використовуйте опцію %s"
+
+#: src/buffer.c:689 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Не можна оновлювати стиснені архіви"
+
+#: src/buffer.c:782
+msgid "At beginning of tape, quitting now"
+msgstr "На початку стрічки, закінчуємо"
+
+#: src/buffer.c:788
+msgid "Too many errors, quitting"
+msgstr "Надто багато помилок, виконання перервано"
+
+#: src/buffer.c:821
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Розмір запису = %lu блок"
+msgstr[1] "Розмір запису = %lu блоки"
+msgstr[2] "Розмір запису = %lu блоків"
+
+#: src/buffer.c:842
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Невірне вирівнювання блоку (%lu байт) в архіві"
+msgstr[1] "Невірне вирівнювання блоку (%lu байти) в архіві"
+msgstr[2] "Невірне вирівнювання блоку (%lu байтів) в архіві"
+
+#: src/buffer.c:919
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Не вдалося переміститись назад у архіві; можливо архів не можна прочитати без опції -i"
+
+#: src/buffer.c:951
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek не зупинився на межі запису"
+
+#: src/buffer.c:1002
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: містить невірний номер тому"
+
+#: src/buffer.c:1037
+msgid "Volume number overflow"
+msgstr "Переповнення номера тому"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Підготуйте том #%d архіву %s ї натиснить return: "
+
+#: src/buffer.c:1058
+msgid "EOF where user reply was expected"
+msgstr "Кінець файлу, замість очікуваної відповіді"
+
+#: src/buffer.c:1063 src/buffer.c:1095
+msgid "WARNING: Archive is incomplete"
+msgstr "ПОПЕРЕДЖЕННЯ: Незавершений архів"
+
+#: src/buffer.c:1077
+#, 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 Перервати роботу\n"
+" у або новий рядок Продовжувати\n"
+
+#: src/buffer.c:1082
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Викликати оболонку\n"
+
+#: src/buffer.c:1083
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Вивести цю довідку\n"
+
+#: src/buffer.c:1090
+msgid "No new volume; exiting.\n"
+msgstr "Новий том відсутній. Завершення.\n"
+
+#: src/buffer.c:1123
+msgid "File name not specified. Try again.\n"
+msgstr "Не вказано назви файлу. Спробуйте ще раз.\n"
+
+#: src/buffer.c:1136
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Недійсні вхідні дані. Наберіть ? щоб отримати підказку.\n"
+
+#: src/buffer.c:1187
+#, c-format
+msgid "%s command failed"
+msgstr "збій виконання `%s'"
+
+#: src/buffer.c:1368
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s можливо продовжується у цьому томі: заголовок містить обрізану назву"
+
+#: src/buffer.c:1372
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s не продовжується у цьому томі"
+
+#: src/buffer.c:1386
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s є неправильним розміром (%s != %s + %s)"
+
+#: src/buffer.c:1401
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Цей том є за межами послідовності (%s - %s != %s)"
+
+#: src/buffer.c:1479 src/buffer.c:1505
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Назви тому відсутня в архіві. Не можна порівняти з %s"
+
+#: src/buffer.c:1509
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Етикетка тому %s не співпадає з %s"
+
+#: src/buffer.c:1603
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: назва файлу надто довга щоб зберегти її у заголовку тому GNU; назву обрізано"
+
+#: src/buffer.c:1794
+msgid "write did not end on a block boundary"
+msgstr "запис не закінчився на межі блоку"
+
+#: 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[2] "Вдалося прочитати тільки %lu з %lu байтів"
+
+#: src/compare.c:105 src/compare.c:382
+msgid "Contents differ"
+msgstr "Різниця у змісті"
+
+#: src/compare.c:131 src/extract.c:958 src/incremen.c:1462 src/list.c:397
+#: src/list.c:1384 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Неочікуваний кінець файла в архіві"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:308 src/compare.c:406
+msgid "File type differs"
+msgstr "Різниця у типі файлу"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:322
+msgid "Mode differs"
+msgstr "Різниця у правах доступу"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Різниця у значенні UID"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Різниця у значенні GID"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Різниця у часі модифікації"
+
+#: src/compare.c:215 src/compare.c:414
+msgid "Size differs"
+msgstr "Різниця у розмірі"
+
+#: src/compare.c:263
+#, c-format
+msgid "Not linked to %s"
+msgstr "Не є посиланням до %s"
+
+#: src/compare.c:287
+msgid "Symlink differs"
+msgstr "Різниця у символічному посиланні"
+
+#: src/compare.c:316
+msgid "Device number differs"
+msgstr "Різниця у номері пристрою"
+
+#: src/compare.c:456
+#, c-format
+msgid "Verify "
+msgstr "Перевірка "
+
+#: src/compare.c:463
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Невідомий тип файлу `%c', перевірюється як звичайний файл"
+
+#: src/compare.c:518
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Архів містить назви файлів без попереджуючих префіксів."
+
+#: src/compare.c:520
+msgid "Verification may fail to locate original files."
+msgstr "Перевірка може не знайти первинних файлів."
+
+#: src/compare.c:593
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірний заголовок"
+msgstr[1] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірних заголовки"
+msgstr[2] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірних заголовків"
+
+#: src/compare.c:611 src/list.c:161
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Самотній блок нулів, зсув %s"
+
+# Не подобається мені це "кешування"...
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: містить мітку каталогу кешування `%s'; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "Значення %s поза межами діапазону типа %s %s..%s; заміна на %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "значення %s за межами діапазону типа %s %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Створення від'ємних вісімкових заголовків"
+
+#: src/create.c:611 src/create.c:674
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: назва файлу занадто довга (макс. %d); не архівується"
+
+#: src/create.c:621
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: назва файлу занадто довга (не вдається розділити); не архівується"
+
+#: src/create.c:648
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: назва посилання занадто довга; не архівується"
+
+#: src/create.c:1062
+#, 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[2] "%s: Файл скоротився на %s байтів; заповнення нулями"
+
+#: src/create.c:1158
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: файл знаходиться в іншої файлової системі; не архівується"
+
+#: src/create.c:1201 src/create.c:1212 src/incremen.c:582 src/incremen.c:588
+msgid "contents not dumped"
+msgstr "вміст не архівується"
+
+#: src/create.c:1416
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Невідомий тип файла; Файл проігноровано"
+
+#: src/create.c:1527
+#, c-format
+msgid "Missing links to %s."
+msgstr "Відсутні деякі посилання до %s."
+
+#: src/create.c:1688
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: файл не змінено; не архівується"
+
+#: src/create.c:1697
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: файл є архівом; не архівується"
+
+#: src/create.c:1721 src/incremen.c:575
+msgid "directory not dumped"
+msgstr "каталог не архівується"
+
+#: src/create.c:1793
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: файл змінився під час читання"
+
+#: src/create.c:1855
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: гніздо ігнорується"
+
+# FIXME: door?
+#: src/create.c:1861
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: двері ігноруються"
+
+#: src/delete.c:217 src/list.c:198 src/update.c:203
+msgid "Skipping to next header"
+msgstr "Перехід до наступного заголовка"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Видалення не-заголовка з архіву"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: неймовірно стара дата %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: мітка часу %s зсунута на %s сек. до майбутнього"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Неочікувана суперечність під час створення каталогу"
+
+#: src/extract.c:709
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Каталог перейменовано перед тим, як tar встиг витягнути його стан"
+
+#: src/extract.c:863
+msgid "Extracting contiguous files as regular files"
+msgstr "Витягування безперервних файлів у звичайні"
+
+#: src/extract.c:1183
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Спроба перетворити символічні посилання на жорсткі"
+
+#: src/extract.c:1339
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Не вдається витягнути -- файл починається в іншому томі"
+
+#: src/extract.c:1346 src/list.c:1117
+msgid "Unexpected long name header"
+msgstr "Неочікуваний кінець файла у заголовку довгої назви"
+
+#: src/extract.c:1353
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Невідомий тип файлу `%c', спроба витягнути його як звичайний файл"
+
+# FIXME: або сучасний?
+#: src/extract.c:1379
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Існуючий файл `%s' є новіший"
+
+#: src/extract.c:1431
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Не вдалося створити резервну копію цього файла"
+
+#: src/extract.c:1568
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Не вдається перейменувати %s на %s"
+
+#: src/incremen.c:474 src/incremen.c:518
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Каталог перейменовано з %s"
+
+#: src/incremen.c:486
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Каталог перейменовано"
+
+#: src/incremen.c:531
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Новий каталог"
+
+#: src/incremen.c:956 src/incremen.c:973
+msgid "Invalid time stamp"
+msgstr "Невірний час файлу"
+
+#: src/incremen.c:1012
+msgid "Invalid modification time (seconds)"
+msgstr "Невірна дата модифікації (секунди)"
+
+#: src/incremen.c:1027
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Недійсний час модифікації (наносекунди)"
+
+#: src/incremen.c:1047
+msgid "Invalid device number"
+msgstr "Невірний номер пристрою"
+
+#: src/incremen.c:1062
+msgid "Invalid inode number"
+msgstr "Невірний номер і-вузла"
+
+#: src/incremen.c:1113 src/incremen.c:1150
+msgid "Field too long while reading snapshot file"
+msgstr "З файла-знімка прочитано надто довге поле"
+
+#: src/incremen.c:1120 src/incremen.c:1158
+msgid "Read error in snapshot file"
+msgstr "Помилка читання файла-знімка"
+
+#: 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:1129 src/incremen.c:1169
+msgid "Unexpected field value in snapshot file"
+msgstr "Неочікуваний кінець файла-знімка"
+
+#: src/incremen.c:1264
+msgid "Missing record terminator"
+msgstr "Бракує ознаки кінця запису"
+
+#: src/incremen.c:1325 src/incremen.c:1328
+msgid "Bad incremental file format"
+msgstr "Неправильний формат файла знімку"
+
+#: src/incremen.c:1347
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Такий інкрементний формат не підтримується: %<PRIuMAX>"
+
+#: src/incremen.c:1502
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Неправильно сформований dumpdir: очікувалося '%c' натомість знайдено %#3o"
+
+#: src/incremen.c:1512
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Неправильно сформований dumpdir: 'X' вказаний двічі"
+
+#: src/incremen.c:1525
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Невірний формат dumpdir: пуста назва у `R'"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Невірний формат dumpdir: `T' без попереднього `R'"
+
+#: src/incremen.c:1544
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Невірний формат dumpdir: пуста назва у `T'"
+
+#: src/incremen.c:1564
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Невірний формат dumpdir: очікувалося `%c', натомість знайдено кінець файла"
+
+#: src/incremen.c:1571
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Невірний формат dumpdir: `X' не використаний"
+
+#: src/incremen.c:1615
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Не вдається створити тимчасовий каталог використовуючи шаблон %s"
+
+#: src/incremen.c:1677
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Каталог не очищується: не вдалося виконати stat"
+
+#: src/incremen.c:1690
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: Каталог знаходиться на іншому пристрої: не очищується"
+
+#: src/incremen.c:1698
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Стирання %s\n"
+
+#: src/incremen.c:1703
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Не вдається видалити"
+
+#: src/list.c:130
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Пропускається"
+
+#: src/list.c:146
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "блок %s: ** Містить нулі **\n"
+
+#: src/list.c:172
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "блок %s: ** Кінець файлу **\n"
+
+#: src/list.c:195 src/list.c:1089 src/list.c:1352
+#, c-format
+msgid "block %s: "
+msgstr "блок %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:704
+#, 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:759
+#, 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:770
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Вісімкове значення %.*s знаходиться поза межами діапазону типу %s"
+
+# FIXME: base=64?
+#: src/list.c:791
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Архів містить застарілі заголовки з основою 64"
+
+#: src/list.c:805
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Архів містить знакову строку з основою 64 %s, що є поза допустимими межами типу %s"
+
+# FIXME: base-256
+#: src/list.c:836
+#, 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:865
+#, 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:887
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Значення %s поза допустимими межами типу %s %s..%s"
+
+#: src/list.c:1253
+#, c-format
+msgid " link to %s\n"
+msgstr "посилання до %s\n"
+
+#: src/list.c:1261
+#, c-format
+msgid " unknown file type %s\n"
+msgstr "невідомий тип файла %s\n"
+
+#: src/list.c:1279
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Довге посилання--\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Довга назва--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Заголовок тому--\n"
+
+#: src/list.c:1295
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Продовжується з байту %s--\n"
+
+#: src/list.c:1357
+msgid "Creating directory:"
+msgstr "Створення каталогу:"
+
+#: src/misc.c:298
+msgid "Cannot get working directory"
+msgstr "Не вдається отримати поточний каталог"
+
+#: src/misc.c:571
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Перейменовано %s у %s\n"
+
+#: src/misc.c:580 src/misc.c:599
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Не вдається перейменувати на %s"
+
+#: src/misc.c:604
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Перейменовано %s назад у %s\n"
+
+#: src/misc.c:851
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Файл було видалено перед тим як tar встиг його прочитати"
+
+#: src/misc.c:866
+#, c-format
+msgid "%s: Directory removed before we read it"
+msgstr "%s: Каталог було видалено перед тим як tar встиг його прочитати"
+
+#: src/misc.c:887
+msgid "child process"
+msgstr "процес-нащадок"
+
+#: src/misc.c:896
+msgid "interprocess channel"
+msgstr "канал між процесами"
+
+#: src/names.c:594
+msgid "Pattern matching characters used in file names"
+msgstr "Назви файлів містять символи-шаблони"
+
+#: src/names.c:596
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Користайтеся опцією --wildcards аби увімкнути шаблони, або опцією --no-wildcards, щоб позбутися цього повідомлення"
+
+#: src/names.c:614 src/names.c:630
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Не знайдено в архіві"
+
+#: src/names.c:615
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Потрібну копію у архіві не знайдено"
+
+#: src/names.c:649
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Незгідність назви тому"
+
+#: src/names.c:953
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "Використання опції -C у переліку файлів разом з опцією --listed-incremental не дозволяється"
+
+#: src/names.c:959
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Невірний формат архіву"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Формат архіву є несумісним з розширеними властивостями GNU"
+
+#: 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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"Приклади:\n"
+" tar -cf archive.tar foo bar # Створює archive.tar з файлів foo та bar.\n"
+" tar -tvf archive.tar # Виводить докладну інформацію про зміст\n"
+" # archive.tar\n"
+" tar -xf archive.tar # Витягує усі файли з archive.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Типовим суфіксом резервних копій є `~', його можна змінити за допомогою\n"
+"опції --suffix або змінної середовища SIMPLE_BACKUP_SUFFIX.\n"
+" \n"
+"Створення резервних копій вмикається через опцію --backup або змінну середовища VERSION_CONTROL. Можливі значення:\n"
+"\n"
+" t, numbered створювати резервні копії з номерами\n"
+" nil, existing створювати нумеровані копії, якщо такі вже існують,\n"
+" інакше - прості\n"
+" never, simple завжди створювати прості резервні копії\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Режими роботи:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "вивести вміст архіву"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "витягнути файли з архіву"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "створити новий архів"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "порівняти файли в архіві з файлами у файлової системі"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "долучити файли до існуючого архіву"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "долучати тільки такі файли, що є новішими за їх копії в архіві"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "долучити архів до архіву"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "видалити файли з архіву (не на стрічці!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "перевірити мітку тому та вийти"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Модифікатори режиму роботи:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "заощаджувати простір під час зберігання розсіяних файлів"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "ГОЛОВНИЙ[.ДРУГОРЯДНИЙ]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "встановлює версію формату розсіяних файлів (вмикає --sparse)"
+
+# FIXME: incremental
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "обробка старого формату інкрементного архіву GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "обробка нового формату інкрементного архіву GNU"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "рівень архівної копії для створення інкрементного архіву"
+
+# FIXME: хммм...
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "ігнорувати помилки читання файлів"
+
+#: src/tar.c:429
+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 "обробляти тільки вказане входження кожного файла в архіві. Ця опція є дійсною тільки разом з однією з опцій --delete, --diff, --extract, --list і з переліком файлів (у командному рядку або за допомогою опції -T). Типове ЧИСЛО: 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "архів підтримує операцію seek"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "архів не підтримує операцію seek"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "не перевіряти номери пристрою під час створювання інкрементних архівів"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "перевіряти номери пристрою під час створювання інкрементних архівів (типово)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Керування перезаписом:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "перевірити архів після запису в нього"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "видаляти файли після додавання до архіву"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "не заміняти існуючи файли під час витягування"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "не заміняти існуючи файли що є новішими за їх копії у архіві"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "перезаписувати існуючі файли під час витягування"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "видаляти кожний файл перед витягуванням його копії"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "спорожняти старий каталог перед витягуванням його копії з архіву"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "зберігати мета-дані існуючих каталогів"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "перезаписувати метадані існуючих каталогів під час витягування (типово)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Вибір вихідного потоку:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "витягувати файли у стандартний вивід"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "КОМАНДА"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "передавати витягнуті файли до стандартного вводу іншої програми"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ігнорувати коди завершення процесів-нащадків"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "вважати ненульовий код завершення нащадка помилкою"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Обробка атрибутів файлу:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "встановлення вказаного користувача власником доданих файлів"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "встановлення групи з вказаною назвою групою власника доданих файлів"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "ДАТА-АБО-ФАЙЛ"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "встановлення часу останньої зміни доданих файлів"
+
+# Ну, і чому це CHANGES??
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "ПРАВА"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "встановлення вказаних символічно прав доступу для доданих файлів"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "МЕТОД"
+
+#: src/tar.c:499
+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:503
+msgid "don't extract file modified time"
+msgstr "не витягувати час модифікації файлів"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "встановлювати власників файлів за даними з архіву (типово для супер-користувача)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "стати власником витягнутих файлів (типово для звичайного користувача)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "завжди використовувати числа замість назв власника/групи"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "встановлювати права доступу згідно з даними архіву (типово для супер-користувача)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "встановлювати права доступу згідно зі значенням umask (типово для звичайного користувача)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "витягувати файли у порядку їх з'явлення в архіві"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "те ж, що -p -s разом"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "затримати встановлення часу модифікації та прав доступу до каталогів до кінця витягування"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "відмінити дії опції --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Вибір та зміна пристрою:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "АРХІВ"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "використовувати вказаний файл або пристрій"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "файл архіву є локальним, навіть якщо його назва містить двокрапку"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "використовувати вказану команду замість rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "використовувати вказану команду замість rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "визначає пристрой та густину"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "створити, виводити зміст або витягувати файли з багатотомного архіву"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "змінити стрічку після запису ЧИСЛА x 1024 байтів"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "запускати сценарій наприкінці кожної стрічки (вмикає -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "використовувати/обновляти номер тому у ФАЙЛІ"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Блокування пристрою:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "ЧИСЛО-БЛОКІВ"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "розмір запису ЧИСЛО-БЛОКІВ x 512 байтів"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "встановити розмір запису у блоках по 512 байтів"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ігнорувати нульові блоки в архіві (звичайно вказують кінець файлу)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "розбивати на блоки під час читання (для каналів 4.2BSD)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Вибір формату архіву:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "ФОРМАТ"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "створити архів у вказаному форматі"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "ФОРМАТ будь-який з наступних:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "старий формат V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "формат GNU, сумісний з версією tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "формат GNU, сумісний з версією tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "формат POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "формат POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "те ж, що і pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "те ж, що і --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "те ж, що і --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "ключове_слово[[:]=значення][,ключове_слово[[:]=значення], ...]\""
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "керування ключовими словами pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "ТЕКСТ"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "створити архів з назвою тому \"ТЕКСТ\". Під час виводу змісту або витягування, використовувати ТЕКСТ як шаблон пошуку тому"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Опції стиснення:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "вибирати програму стиснення за суфіксом архіву"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "не використовувати суфікс для вибору програми стиснення"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "ПРОГРАМА"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "використовувати ПРОГРАМУ для стиснення/розтискання архіву"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Вибір файлів:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "долучити ФАЙЛ до архіву (корисне, якщо його назва починається з -)"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "КАТАЛОГ"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "перейти до вказаного каталогу"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "читати назви файлів для додання/витягування з вказаного файла"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "файл, вказаний з опцією -T, містить назви, відокремлені нульовими символами. Ця опція вимикає -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "відмінити дію попередньої опції --null"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "усувати цитування з назв файлів прочитаних за допомогою -T (типово)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "не усувати цитування з назв файлів прочитаних за допомогою -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "ШАБЛОН"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "не обробляти файли, назви яких відповідають вказаному шаблону"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "виключити назви що відповідають шаблонам, вказаним у файлі"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "не архівувати файли в каталогах, що містять CACHEDIR.TAG, з винятком самого файлу"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "не архівувати жодні файли в каталогах, що містять CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "не архівувати каталоги, що містять CACHEDIR.TAG"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "не архівувати файли в каталогах, що містять ФАЙЛ, з винятком самого файлу"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "не архівувати жодні файли в каталогах, що містять ФАЙЛ"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "не архівувати каталоги, що містять ФАЙЛ"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "не архівувати каталоги систем керування версіями"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "не архівувати резерві файли та файли блокування"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "не заходити автоматично у каталоги"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "залишатися у локальної файлової системі під час створення архіву"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "рекурсивно проходити каталоги (типово)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "не видаляти початкову косу риску `/' з назв файлів"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "Йти за символьними посиланнями: долучати файли, на яки вони вказують"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "Йти за жорсткими посиланнями: долучати файли, на яки вони вказують"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "НАЗВА-ФАЙЛУ"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "починати обслуговування архіву з вказаного файлу"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "долучати тільки такі файли, що є новіші за вказану дату або файл"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "ДАТА"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "порівнювати тільки дату і час зміни даних"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "РЕЖИМ"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "перед видаленням створювати резервні файли у вказаному режимі"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "РЯДОК"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "перед видаленням створювати резервні файли з указаним суфіксом (типово '~', якщо не перевизначено змінною середовища SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Перетворювання назв файлів:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "видаляти вказане ЧИСЛО компонентів з початку назв файлів"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "ВИРАЗ"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "перетворювати назви файлів за допомогою вказаного виразу заміни"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Керування порівнюванням назв (впливає на взірці як вилучення, так і долучення):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "шаблони ігнорують відмінності у регістрі символів"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "порівнювати шаблони з назвами файлів починаючи від початку назви"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "порівнювати шаблони з назвами файлів починаючи від будь-якого / (типово)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "шаблони враховують регістр (типово)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "користатися шаблонами (типово для вилучення)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "порівнювати назви буквально"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "шаблони не стосуються до '/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "шаблони стосуються до '/' (типово)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Інформативний вивід:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "виводити докладну інформацію про оброблені файли"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "КЛ.-СЛОВО"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "керування попередженнями"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "виводити контрольне повідомлення кожне ЧИСЛО записів (типово 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ДІЯ"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "виконати вказану дію у контрольному пункті"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "виводити повідомлення якщо до архіву було додано не всі посилання"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "СИГНАЛ"
+
+#: src/tar.c:751
+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:756
+msgid "print file modification times in UTC"
+msgstr "друкувати час модифікації файлів у UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "друкувати час модифікації файлів у повній вирізняльної здатності"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "виводити детальну інформацію у ФАЙЛ"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "попереджувати кожне повідомлення номером блоку в архіві"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "Запитувати підтвердження кожної дії"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "вивести типові налаштування"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "під час виведення змісту або витягування файлів друкувати назви каталогів що не відповідають критеріям пошуку"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "показувати перетворені назви файлів"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "СТИЛЬ"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "встановити стиль цитування; дозволені стилі див. нижче"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "цитувати також вказані символи"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "вимкнути цитування вказаних символів"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Опції сумісності:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "під час створення архіву, те ж саме, що і --old-archive. Під час витягування, те ж саме, що --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Інші опції:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "заборонити користування деякими потенційно небезпечними опціями"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Не можна вказувати більш ніж одну з опцій `-Acdtrux' або `--test-label'"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Опції стиснення конфліктують одна з другою"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Невідомий тип файла %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Не знайдено файл-зразок дати"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Використовується %s замість невідомого формату дати %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Опція %s: Дату `%s' сприйнято як %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: перелік файлів уже прочитано"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: прочитана назва файла містить нульовий символ"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "фільтрувати архів через %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Допустимими аргументами опції --quoting-style є:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Типові налаштування *цієї* копії програми:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Неправильний фактор блокування"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Неправильна довжина стрічки"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Недійсне значення для рівня архівації"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Більш ніж одна гранична дата"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Недійсна версія формату розсіяних файлів"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "опція --atime-preserve='system' не підтримується на цій платформі"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "аргумент --checkpoint мусить бути цілим числом"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Недійсна група"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Невірний формат прав доступу"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Невірне число"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Невірний власник"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Опція --preserve є застарілою, замість неї використовуйте --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Невірний розмір запису"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Розмір запису має ділитися на %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Невірна кількість елементів"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Дозволяється лише одна опція --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Невірний аргумент вказання густини: `%s'"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Невідома густина: `%c'"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Опції `-[0-7][lmh]' не підтримуються *цією* версією tar"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[ФАЙЛ]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Стара опція `%c' потребує аргументу"
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "вказання --occurrence не має сенсу без вказання переліку файлів"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "опцію --occurrence не можна використовувати у зазначеному режимі роботи"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Вказання декількох файлів потребує вказання опції `-M'"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Не можна використовувати --listed-incremental разом з --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "Використання --level разом з --listed-incremental не має сенсу"
+
+#: src/tar.c:2423
+#, 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[2] "%s: Мітка тому є надто довга (обмеження в %lu байтів)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Не можна перевіряти багатотомні архіви"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Не можна перевіряти стиснені архіви"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Не можна використовувати стиснення багатотомних архівів"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Не можна з'єднувати стиснені архіви"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "Опція --pax-option використовується тільки з архівами у форматі POSIX"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Розмір тому не може бути більшим від розміру запису"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "Опція --preserve-order несумісна з --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Полохливо відмовляюся створювати пустий архів"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Опції `-Aru' несумісні з `-f -'"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Необхідно вказати одну з опцій `-Acdtrux' або `--test-label'"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+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[2] "%s: Файл скоротився на %s байтів"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Ключове слово %s не є відоме або ще не реалізоване"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Значення позначки часу поза допустимими межами"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Шаблон %s забороняється уживати"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Не можна перевизначити ключове слово %s"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Невірно сформований розширений заголовок: бракує довжини"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Довжина розширеного заголовку є за межами діапазону"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Довжина розширеного заголовку %*s є за межами діапазону"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Невірно сформований розширений заголовок: відсутній пробіл після довжини"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Невірно сформований розширений заголовок: відсутній знак рівняння"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Невірно сформований розширений заголовок: відсутній знак нового рядка"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Невідоме ключове слово `%s' іґнорується"
+
+#: src/xheader.c:831
+#, 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:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Значення розширеного заголовку %s=%s лежить поза допустимими межами типу %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Невірно сформований розширений заголовок: недійсна змінна %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Невірно сформований розширений заголовок: зайвий %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Невірно сформований розширений заголовок: змінна %s: неочікуваний розділювач %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Невірно сформований розширений заголовок %s: непарна кількість значень"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: недійсний ліміт часу"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: незнана дія"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "запис"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Контрольна відмітка читання %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile - програма обробки файлів з набору перевірок пакету GNU paxutils\n"
+"Перелік опцій:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Опції створювання файлів:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "РОЗМІР"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Створити файл заданого розміру"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Писати у вказаний файл, замість стандартного виводу"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Читати назви файлів з вказаного файлу"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "файл, вказаний з опцією -T, містить назви, відокремлені нульовими символами"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Взірець заповнення файла: 'default' (типовий) або 'zeros' (заповнення нулями)"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Розмір блока розсіяного файла"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Створити розсіяний файл. Решта аргументів дає мапу файла."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "ЗСУВ"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Перед записом даних перейти до вказаного зсуву в файлі"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Статистика файлів:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Виводити вміст структури stat для кожного файла. Типовий формат: "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Синхронне виконання:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "ОПЦІЯ"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Виконати вказану команду. Для використання з опціями --cut, --append, --touch або --unlink"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Виконати вказану операцію (див. нижче) по досягненню контрольної відмітки"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Встановлює дати для наступної опції --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Друкувати виконані операції і код завершення команди"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Операції синхронного виконання. Виконуються по досягненню контрольної відмітки, вказаної опцією --checkpoint. "
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Обрізати файл до розміру, вказаного попередньою опцією --length (до 0, якщо її не було вказано)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Додати до файла кількість байтів, вказану попередньою опцією --length."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Поновити час доступу та модифікації файла"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Виконати КОМАНДУ"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Видалити файл"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Невірний розмір: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Число поза допустимими межами: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Від'ємний розмір: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "збій виконання stat(%s)"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "замовлений розмір файлу %lu, справжній -- %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "створений файл не є розсіяним"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Помилка розбору числа біля `%s'"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Невідомий формат дати"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[АРГУМЕНТИ...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "не вдається відкрити `%s'"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "не вдається виконати lseek"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "назва файла містить нульовий символ"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "неможливо створювати розсіяні файли на стандартному виводі; користайтеся опцією --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "недійсна маска (біля `%s')"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Невідоме поле `%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "не вдається встановити час файла `%s'"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "не вдається видалити `%s'"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Команда завершилася успішно\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Команда завершилася з кодом %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Команда завершилася по сигналу %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Команда зупинилася по сигналу %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Команда скинула відбиток пам'яті\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Команда завершилася\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "опція --stat вимагає назв файлів"
diff --git a/po/.reference/uk.s1 b/po/.reference/uk.s1
new file mode 100644
index 00000000..f29ddaad
--- /dev/null
+++ b/po/.reference/uk.s1
@@ -0,0 +1 @@
+2d74d39c8bc6a1238764f6212be4be769c978d25 -
diff --git a/po/.reference/vi.po b/po/.reference/vi.po
new file mode 100644
index 00000000..b9ac83b3
--- /dev/null
+++ b/po/.reference/vi.po
@@ -0,0 +1,2631 @@
+# Vietnamese translation for Tar.
+# 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-2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.23.90\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2010-07-11 22:57+0300\n"
+"PO-Revision-Date: 2010-10-03 18:13+1030\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\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"
+"X-Generator: LocFactoryEditor 1.8\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "tham số không thích hợp %s cho %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "tham số không rõ ràng %s cho %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Các tham số đúng là:"
+
+#: 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"
+
+#: 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ị"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Tham số không rõ ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Có rác trong ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1246
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+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."
+
+#: gnu/argp-help.c:1639
+msgid "Usage:"
+msgstr "Sử dụng:"
+
+#: gnu/argp-help.c:1643
+msgid " or: "
+msgstr " hoặc: "
+
+#: gnu/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [TÙY CHỌN...]"
+
+#: 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"
+
+#: gnu/argp-help.c:1710
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Báo cáo lỗi tới %s.\n"
+
+#: gnu/argp-help.c:1929 gnu/error.c:155
+msgid "Unknown system error"
+msgstr "Lỗi hệ thống không rõ"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "hiển thị trợ giúp này"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "hiển thị cách sử dụng ngắn gọn"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:131
+msgid "NAME"
+msgstr "TÊN"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "đặt tên chương trình"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "GIÂY"
+
+#: 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)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "In ra phiên bản chương trình"
+
+#: 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 !?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Quá nhiều đối số\n"
+
+#: 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 !?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "lỗi ghi"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: tùy chọn « %s » vẫn mơ hồ\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+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"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, 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 đối số\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: tùy chọn « --%s » yêu cầu một đối số\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: không nhận ra tuỳ chọn « --%s »\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: không nhận ra tuỳ chọn « %c%s »\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: tùy chọn sai -- « %c »\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: tùy chọn yêu cầu một đối số -- « %c »\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: tùy chọn « -W %s » vẫn mơ hồ\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+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"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: tùy chọn « -W %s » yêu cầu một đối số\n"
+
+#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "cạn bộ nhớ"
+
+#: 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"
+
+#: 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:
+#. 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.
+#: gnu/quotearg.c:274
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:275
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[cCyY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[kKnN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Đóng gói bởi %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Giấy phép GPL pb3+: Giấy phép Công cộng GNU phiên bản 3 và sau:\n"
+"<http://gnu.org/licenses/gpl.html>\n"
+"Đây là phần mềm tự do : bạn có quyền thay đổi và phát hành lại nó.\n"
+"KHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều kiện được pháp luật cho phép.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: 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.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Tác giả: %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s và các người khác.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\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"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Báo cáo lỗi %s nào cho: %s\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"
+
+#. 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"
+
+#: 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 "Không thể kết nối tới %s: lỗi giải quyết"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Không thể chạy shell ở xa"
+
+#: 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: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:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 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:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: 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:696 rmt/rmt.c:764
+#, c-format
+msgid "cannot open %s"
+msgstr "không thể mở %s"
+
+#: 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:803
+msgid "Garbage command"
+msgstr "Câu lệnh rác"
+
+#: src/buffer.c:386 src/buffer.c:391 src/buffer.c:635 src/buffer.c:1250
+#: src/buffer.c:1296 src/buffer.c:1325 src/delete.c:211 src/list.c:170
+#: src/update.c:189
+msgid "This does not look like a tar archive"
+msgstr "Đây có vẻ không phải là một kho lưu tar"
+
+#: src/buffer.c:450 src/buffer.c:459
+msgid "Total bytes written"
+msgstr "Tổng số byte đã ghi"
+
+#: src/buffer.c:457 src/buffer.c:471
+msgid "Total bytes read"
+msgstr "Tổng số byte đã đọc"
+
+#: src/buffer.c:461
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Tổng số byte đã xoá: %s\n"
+
+#: src/buffer.c:550
+msgid "(pipe)"
+msgstr "(đường ống)"
+
+#: src/buffer.c:573
+msgid "Invalid value for record_size"
+msgstr "Giá trị cho record_size không đúng"
+
+#: src/buffer.c:576
+msgid "No archive name given"
+msgstr "Không đưa ra tên kho lưu"
+
+#: src/buffer.c:618
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Không kiểm tra được kho lưu stdin/stdout"
+
+#: src/buffer.c:632
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Kho lưu được nén. Hãy sử dụng tùy chọn %s"
+
+#: src/buffer.c:689 src/tar.c:2440
+msgid "Cannot update compressed archives"
+msgstr "Không cập nhật được kho lưu đã nén"
+
+#: src/buffer.c:782
+msgid "At beginning of tape, quitting now"
+msgstr "Tại đầu băng ghi âm, thoát ra bây giờ"
+
+#: src/buffer.c:788
+msgid "Too many errors, quitting"
+msgstr "Quá nhiều lỗi, đang thoát"
+
+#: src/buffer.c:821
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Kích cỡ mục ghi = %lu khối"
+
+#: src/buffer.c:842
+#, 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 kho lưu"
+
+#: src/buffer.c:919
+msgid "Cannot backspace archive file; it may be unreadable without -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:951
+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:1002
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: chứa số thứ tự khối không đúng"
+
+#: src/buffer.c:1037
+msgid "Volume number overflow"
+msgstr "Số thứ tự khối thừa ra"
+
+#: src/buffer.c:1052
+#, 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:1058
+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:1063 src/buffer.c:1095
+msgid "WARNING: Archive is incomplete"
+msgstr "CẢNH BÁO: Kho lưu không hoàn thành"
+
+#: src/buffer.c:1077
+#, 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 TÊN Đưa ra tên tập tin mới cho (các) khối tin tiếp theo (và theo sau)\n"
+" 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:1082
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Tạo một trình bao con\n"
+
+#: src/buffer.c:1083
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? In ra danh sách này\n"
+
+#: src/buffer.c:1090
+msgid "No new volume; exiting.\n"
+msgstr "Không có khối mới; đang thoát.\n"
+
+#: src/buffer.c:1123
+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:1136
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Gõ sai. (Gỏ ? để xem trợ giúp.)\n"
+
+#: src/buffer.c:1187
+#, c-format
+msgid "%s command failed"
+msgstr "Câu lệnh %s không thành công"
+
+#: src/buffer.c:1368
+#, 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:1372
+#, 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:1386
+#, 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:1401
+#, 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:1479 src/buffer.c:1505
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Kho lưu không có nhãn tương ứng với %s"
+
+#: src/buffer.c:1509
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Khối %s không tương ứng %s"
+
+#: src/buffer.c:1603
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+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:1794
+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: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:105 src/compare.c:388
+msgid "Contents differ"
+msgstr "Diff nội dung"
+
+#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:383
+#: src/list.c:1373 src/xheader.c:710
+msgid "Unexpected EOF in archive"
+msgstr "Kết thúc tập tin không mong đợi trong kho lưu"
+
+#: 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:182 src/compare.c:202 src/compare.c:327
+msgid "Mode differs"
+msgstr "Diff chế độ"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Diff Uid"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Diff Gid"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Diff thời gian sửa đổi"
+
+#: src/compare.c:215 src/compare.c:420
+msgid "Size differs"
+msgstr "Diff kích thước"
+
+#: src/compare.c:269
+#, c-format
+msgid "Not linked to %s"
+msgstr "Không liên kết tới %s"
+
+#: src/compare.c:292
+msgid "Symlink differs"
+msgstr "Diff liên kết mềm"
+
+#: src/compare.c:321
+msgid "Device number differs"
+msgstr "Diff số thứ tự của thiết bị"
+
+#: src/compare.c:461
+#, c-format
+msgid "Verify "
+msgstr "Kiểm tra "
+
+#: src/compare.c:468
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: không rõ dạng tập tin '%c' nên khác biệt (diff) như tập tin thông thường"
+
+#: src/compare.c:523
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Kho lưu chứa tên tập tin không có tiền tố ở đầu."
+
+#: src/compare.c:525
+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:598
+#, 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:616 src/list.c:147
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Một khối không đơn lẻ tại %s"
+
+#: 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: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: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:339
+msgid "Generating negative octal headers"
+msgstr "Đang tạo phần đầu hệ tám âm"
+
+#: src/create.c:624 src/create.c:687
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: tên tập tin quá dài (max %d); không được dump"
+
+#: src/create.c:634
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: tên tập tin quá dài (không chia được); không được dump"
+
+#: src/create.c:661
+#, c-format
+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:1075
+#, 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:1169
+#, 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:1213 src/create.c:1224 src/incremen.c:590 src/incremen.c:596
+msgid "contents not dumped"
+msgstr "chưa đổ nội dung"
+
+#: src/create.c:1356
+#, 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:1466
+#, c-format
+msgid "Missing links to %s."
+msgstr "Thiếu liên kết tới %s."
+
+#: src/create.c:1537
+#, 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:1546
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: tập tin là kho lưu; không được đổ"
+
+#: src/create.c:1587 src/incremen.c:583
+msgid "directory not dumped"
+msgstr "chưa đổ thư mục"
+
+#: src/create.c:1657
+#, 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:1724
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket bị lờ đi"
+
+#: src/create.c:1730
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: cửa (door) bị lờ đi"
+
+#: src/delete.c:217 src/list.c:184 src/update.c:194
+msgid "Skipping to next header"
+msgstr "Nhảy tới phần đầu tiếp theo"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Xóa không phải phần đầu từ kho lưu"
+
+#: 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: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: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: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: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:1058
+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:1215
+#, 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:1222 src/list.c:1106
+msgid "Unexpected long name header"
+msgstr "Phần đầu tên dài không mong đợi"
+
+#: src/extract.c:1229
+#, 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:1255
+#, 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:1306
+#, 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:1434
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Không thể đổi tên %s thành %s"
+
+#: 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:494
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Đã đổi tên thư mục"
+
+#: src/incremen.c:539
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Thư mục là mới"
+
+#: src/incremen.c:956 src/incremen.c:973
+msgid "Invalid time stamp"
+msgstr "Tem thời gian không đúng"
+
+#: 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:1027
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Thời gian sửa đổi không hợp lệ (nanô-giây)"
+
+#: src/incremen.c:1047
+msgid "Invalid device number"
+msgstr "Số thứ tự thiết bị không đúng"
+
+#: src/incremen.c:1062
+msgid "Invalid inode number"
+msgstr "Số thứ tự chỉ mục inode sai"
+
+#: 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: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: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: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:1264
+msgid "Missing record terminator"
+msgstr "Thiếu dấu giới hạn mục ghi"
+
+#: 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: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: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:1512
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Thư mục đổ dạng sai: « X » đã nhân đôi"
+
+#: 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: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:1544
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Thư mục đổ dạng sai: tên rỗng trong « T »"
+
+#: 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:1571
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Thư mục đổ dạng sai: « X » không bao giờ dùng"
+
+#: 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: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: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:1698
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Đang xóa %s\n"
+
+#: src/incremen.c:1703
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Không thể xóa bỏ"
+
+#: src/list.c:116
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Đang bỏ đi"
+
+#: src/list.c:132
+#, 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:158
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "khối %s: ** Kết thúc tập tin **\n"
+
+#: src/list.c:181 src/list.c:1078 src/list.c:1341
+#, c-format
+msgid "block %s: "
+msgstr "khối %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:686
+#, 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:741
+#, 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 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:752
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Giá trị hệ tám %.*s của kho lưu vượt ra phạm vi %s"
+
+#: src/list.c:773
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Kho lưu chứa phần đầu base-64 không còn dùng nữa"
+
+#: src/list.c:787
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Kho lưu ký chuỗi base-64 %s vượt ra ngoài vùng %s"
+
+#: src/list.c:818
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+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:847
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+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:869
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Giá trị kho lưu %s vượt quá phạm vi %s (%s..%s)"
+
+#: src/list.c:1242
+#, c-format
+msgid " link to %s\n"
+msgstr " liên kết tới %s\n"
+
+#: src/list.c:1250
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " dạng tập tin không rõ %s\n"
+
+#: src/list.c:1268
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Liên kết Dài--\n"
+
+#: src/list.c:1272
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Tên Dài--\n"
+
+#: src/list.c:1276
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Phần đầu Khối--\n"
+
+#: src/list.c:1284
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Tiếp tục tại byte %s--\n"
+
+#: src/list.c:1346
+msgid "Creating directory:"
+msgstr "Đang tạo thư mục:"
+
+#: src/misc.c:594
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Đang đổi tên %s thành %s\n"
+
+#: src/misc.c:603 src/misc.c:621
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Không thể đổi tên thành %s"
+
+#: src/misc.c:626
+#, 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:761
+msgid "Cannot save working directory"
+msgstr "Không thể ghi nhớ thư mục làm việc"
+
+#: src/misc.c:767
+msgid "Cannot change working directory"
+msgstr "Không thay đổi được thư mục làm việc"
+
+#: src/misc.c:851
+#, 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:866
+#, 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:887
+msgid "child process"
+msgstr "tiến trình con"
+
+#: src/misc.c:896
+msgid "interprocess channel"
+msgstr "kênh (channel) giữa các tiến trình"
+
+#: src/names.c:592
+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:594
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr ""
+"Dùng « --wildcards » (ký tự đặi diện) để hiệu lực chức năng khớp mẫu,\n"
+"hoặc « --no-wildcards » để thu hồi cảnh báo này."
+
+#: src/names.c:612 src/names.c:628
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Không tìm thấy trong kho lưu"
+
+#: src/names.c:613
+#, 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 kho lưu"
+
+#: src/names.c:647
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Sai khớp nhãn kho lưu"
+
+#: src/names.c:921
+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:927
+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: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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Định dạng kho lưu không đúng"
+
+#: 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 kho lưu không tương thích"
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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 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"
+" tar -tvf kho.tar # Liệt kê chi tiết tất cả các tập tin có trong 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:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"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 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:387
+msgid "Main operation mode:"
+msgstr "Chế độ thao tác chính:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "liệt kê nội dung của một kho lưu"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "giải phóng các tập tin từ một kho lưu"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "tạo một kho lưu mới"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "tìm sự khác nhau giữa kho lưu và hệ thống tập tin"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "thêm các tập tin vào cuối một kho lưu"
+
+#: src/tar.c:402
+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 kho lưu"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "thêm các tập tin tar vào một kho lưu"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "xóa từ kho lưu (không dùng trên các băng ghi âm mag!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "thử nhãn khối tin kho lưu rồi thoát"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Từ khóa bổ nghĩa thao tác:"
+
+#: src/tar.c:417
+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:418
+msgid "MAJOR[.MINOR]"
+msgstr "CHÍNH[.PHỤ]"
+
+#: src/tar.c:419
+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:421
+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:423
+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:425
+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:427
+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:429
+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 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"
+" --extract \tgiải nén\n"
+" --list \t\tliệt kê\n"
+"và khi đưa ra một danh sách tập tin hoặc trên dòng lệnh hoặc qua tùy chọn « -T ».\n"
+"Mặc định SỐ có giá trị bằng 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "có thể tìm nơi trong kho lưu"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "không thể tìm nơi trong kho lưu"
+
+#: src/tar.c:439
+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:442
+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:448
+msgid "Overwrite control:"
+msgstr "Điều khiển ghi đè:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "thử kiểm tra kho lưu sau khi ghi nó"
+
+#: src/tar.c:453
+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 kho lưu"
+
+#: src/tar.c:455
+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:457
+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 kho lưu"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "ghi đè lên những tập tin đã có khi giải phóng"
+
+#: src/tar.c:461
+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:463
+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:465
+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:467
+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:473
+msgid "Select output stream:"
+msgstr "Chọn luồng xuất:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "giải phóng tập tin ra đầu ra tiêu chuẩn"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:191
+msgid "COMMAND"
+msgstr "CÂU LỆNH"
+
+#: src/tar.c:478
+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:480
+msgid "ignore exit codes of children"
+msgstr "bỏ qua mã thoát của tiến trình con"
+
+#: src/tar.c:482
+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:487
+msgid "Handling of file attributes:"
+msgstr "Điều khiển thuộc tính tập tin:"
+
+#: src/tar.c:490
+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:492
+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:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "NGÀY-CỦA-TẬP-TIN"
+
+#: src/tar.c:494
+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:495
+msgid "CHANGES"
+msgstr "THAY ĐỔI"
+
+#: src/tar.c:496
+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:498
+msgid "METHOD"
+msgstr "PHƯƠNG PHÁP"
+
+#: src/tar.c:499
+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 "bảo tồn các thời gian truy cập của tập tin đã đổ, hoặc bằng cách phục hồi 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:503
+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:505
+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:507
+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:509
+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:511
+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:515
+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 (mặc định cho người dùng bình thường)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "sắp xếp tên để giải phóng tới kho lưu tương ứng"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "giống như khi có hai tùy chọn -p và -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+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:525
+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:530
+msgid "Device selection and switching:"
+msgstr "Lựa chọn và chuyển đổi thiết bị:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "LƯU TRỮ"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "sử dụng tập tin kho lưu hoặc thiết bị LƯU TRỮ"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+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:537
+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:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "sử dụng CÂU LỆNH từ xa thay cho rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "chỉ ra ổ và mật độ ghi dữ liệu"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "tạo/liệt kê/giải phóng kho lưu nhiều khối"
+
+#: src/tar.c:559
+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:561
+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:564
+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:569
+msgid "Device blocking:"
+msgstr "Khối của thiết bị:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "KHỐI"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "KHỐI X 512 byte cho mỗi bản ghi"
+
+#: src/tar.c:574
+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:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "lờ đi những khối không (zero) trong kho lưu (có nghĩa EOF)"
+
+#: src/tar.c:578
+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:583
+msgid "Archive format selection:"
+msgstr "Lựa chọn định dạng kho lưu:"
+
+#: src/tar.c:585 tests/genfile.c:154
+msgid "FORMAT"
+msgstr "ĐỊNH DẠNG"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "tạo lưư trữ với định dạng đưa ra"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "ĐỊNH DẠNG là một trong số sau:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "định dạng tar V7 cũ"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "định dạng GNU theo như tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "định dạng tar GNU 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "định dạng PoSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "định dạng POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "bằng pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "giống như --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "giống như --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "từ_khoá[[:]=giá_trị][,từ_khoá[[:]=giá_trị]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "từ khóa điều khiển pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "VĂN BẢN"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "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:614
+msgid "Compression options:"
+msgstr "Tùy chọn nén:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "dùng hậu tố kho lưu để xác định chương trình nén"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+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:620
+msgid "PROG"
+msgstr "TRÌNH"
+
+#: src/tar.c:621
+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:637
+msgid "Local file selection:"
+msgstr "Lựa chọn tập tin nội bộ:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "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:641
+msgid "DIR"
+msgstr "THƯ MỤC"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "thay đổi tới thư mục THƯ MỤC"
+
+#: src/tar.c:644
+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:646
+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:648
+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:650
+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:652
+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:653 tests/genfile.c:137
+msgid "PATTERN"
+msgstr "MẪU"
+
+#: src/tar.c:654
+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:656
+msgid "exclude patterns listed in FILE"
+msgstr "loại trừ những mẫu liệt kê trong TẬP TIN"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+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:661
+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:664
+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:666
+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:669
+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:671
+msgid "exclude directories containing FILE"
+msgstr "loại trữ thư mục chứa TẬP TIN"
+
+#: src/tar.c:673
+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:675
+msgid "exclude backup and lock files"
+msgstr "loại trừ tập tin kiểu sao lưu và khoá"
+
+#: src/tar.c:677
+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:679
+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 kho lưu"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "đệ quy vào các thư mục (mặc định)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "đừng bỏ `/' ở đầu tên tập tin"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "theo liên kết tượng trưng; kho lưu và đổ tập tin tới đó nó chỉ"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "theo liên kết cứng; kho lưu và đổ tập tin tới đó nó chỉ"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "TÊN-THÀNH-VIÊN"
+
+#: src/tar.c:689
+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 kho lưu"
+
+#: src/tar.c:691
+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:693
+msgid "DATE"
+msgstr "NGÀY"
+
+#: src/tar.c:694
+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:695
+msgid "CONTROL"
+msgstr "ĐIỀU KHIỂN"
+
+#: src/tar.c:696
+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:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:170
+msgid "STRING"
+msgstr "CHUỖI"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+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:703
+msgid "File name transformations:"
+msgstr "Chuyển dạng tên tập tin:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "BIỂU THỨC"
+
+#: src/tar.c:708
+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:714
+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:717
+msgid "ignore case"
+msgstr "không phân biệt chữ hoa/thường"
+
+#: src/tar.c:719
+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:721
+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:723
+msgid "case sensitive matching (default)"
+msgstr "khớp có phân biệt chữ hoa/ thường (mặc định)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "dùng ký tự đại diện (mặc định để loại trừ)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "khớp chuỗi nghĩa chữ"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "ký tự đại diện không tương ứng '/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "ký tự đại diện tương ứng '/' (mặc định để loại trừ)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Dữ liệu kết quả có tính thông tin:"
+
+#: src/tar.c:739
+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:740
+msgid "KEYWORD"
+msgstr "TỪ_KHOÁ"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "điều khiển cảnh báo"
+
+#: src/tar.c:743
+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:745
+msgid "ACTION"
+msgstr "HÀNH_ĐỘNG"
+
+#: src/tar.c:746
+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:749
+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:750
+msgid "SIGNAL"
+msgstr "TÍN HIỆU"
+
+#: src/tar.c:751
+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ố 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:756
+msgid "print file modification times in UTC"
+msgstr "in ra giờ sửa đổi tập tin theo UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "in ra giờ tập tin đến độ phân giải đầy đủ"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "gửi kết quả chi tiết tới TẬP TIN"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "hiên thị số thứ tự khối trong kho lưu với mỗi thông báo"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "hỏi xác nhận trước mỗi hành động"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "hiển thị các giá trị mặc định của tar"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+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:771
+msgid "show file or archive names after transformation"
+msgstr "hiển thị các tên tập tin hay kho lưu sau khi chuyển dạng"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "KIỂU DÁNG"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "cũng trích dẫn các ký tự của CHUỖI"
+
+#: src/tar.c:779
+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:784
+msgid "Compatibility options:"
+msgstr "Tùy chọn tương thích:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr ""
+"khi tạo, giống như « --old-archive »\n"
+"khi giải phóng, giống như « --no-same-owner »"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Những tùy chọn khác:"
+
+#: src/tar.c:795
+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:930
+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:940
+msgid "Conflicting compression options"
+msgstr "Mâu thuẫn giữa các tùy chọn nén"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Không rõ tên tín hiệu : %s"
+
+#: src/tar.c:1020
+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:1028
+#, 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:1057
+#, 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:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: danh sách tập tin đã được đọc"
+
+#: src/tar.c:1201
+#, 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:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "lọc kho lưu qua %s"
+
+#: src/tar.c:1296
+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:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"tar *này* mặc định tới:\n"
+
+#: src/tar.c:1400
+msgid "Invalid blocking factor"
+msgstr "Nhân tố khối không đúng"
+
+#: src/tar.c:1511
+msgid "Invalid tape length"
+msgstr "Chiều dài băng ghi âm không đúng"
+
+#: src/tar.c:1522
+msgid "Invalid incremental level value"
+msgstr "Sai đặt giá trị cấp tăng dần"
+
+#: src/tar.c:1568
+msgid "More than one threshold date"
+msgstr "Có nhiều ngày bắt đầu"
+
+#: src/tar.c:1623 src/tar.c:1626
+msgid "Invalid sparse version value"
+msgstr "Giá trị phiên bản sparse không hợp lệ"
+
+#: src/tar.c:1711
+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:1736
+msgid "--checkpoint value is not an integer"
+msgstr "giá trị « --checkpoint » không phải số nguyên"
+
+#: src/tar.c:1841
+msgid "Invalid group"
+msgstr "Nhóm không đúng"
+
+#: src/tar.c:1848
+msgid "Invalid mode given on option"
+msgstr "Đưa ra chế độ không đúng trên tùy chọn"
+
+#: src/tar.c:1905
+msgid "Invalid number"
+msgstr "Số không đúng"
+
+#: src/tar.c:1927
+msgid "Invalid owner"
+msgstr "Chủ sở hữu không đúng"
+
+#: src/tar.c:1957
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+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:1967
+msgid "Invalid record size"
+msgstr "Kích thước bản ghi không đúng"
+
+#: src/tar.c:1970
+#, 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:2011
+msgid "Invalid number of elements"
+msgstr "Số thứ tự của nguyên tố không đúng"
+
+#: src/tar.c:2031
+msgid "Only one --to-command option allowed"
+msgstr "Cho phép chỉ một tùy chọn « --to-command »"
+
+#: src/tar.c:2111
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Tham số mật độ dạng sai: %s"
+
+#: src/tar.c:2137
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Mật độ không rõ : « %c »"
+
+#: src/tar.c:2154
+#, 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:2167
+msgid "[FILE]..."
+msgstr "[TẬP TIN]..."
+
+#: src/tar.c:2285
+#, 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:2366
+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:2372
+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:2390
+msgid "Multiple archive files require `-M' option"
+msgstr "Tập tin nhiều kho lưu yêu cầu tùy chọn `-M'"
+
+#: src/tar.c:2395
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Không thể kết hợp --listed-incremental với --newer"
+
+#: src/tar.c:2398
+msgid "--level is meaningless without --listed-incremental"
+msgstr "Tùy chọn « --level » vô ích mà không có « --listed-incremental »"
+
+#: src/tar.c:2415
+#, 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:2428
+msgid "Cannot verify multi-volume archives"
+msgstr "Không thể kiểm tra kho lưu nhiều khối"
+
+#: src/tar.c:2430
+msgid "Cannot verify compressed archives"
+msgstr "Không thể kiểm tra kho lưu đã nén"
+
+#: src/tar.c:2436
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Không thể sử dụng kho lưu nhiều khối đã nén"
+
+#: src/tar.c:2442
+msgid "Cannot concatenate compressed archives"
+msgstr "Không thể ghép nối các kho nén"
+
+#: src/tar.c:2454
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option chỉ dùng được trên kho lưu POSIX"
+
+#: src/tar.c:2472
+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:2475
+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:2486
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Từ chối tạo một kho lưu trống rỗng"
+
+#: src/tar.c:2512
+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:2601
+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:2655
+#, 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"
+
+#: src/update.c:86
+#, c-format
+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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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ẻ"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: không phải quá hạn hợp lệ"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: không rõ hành động điểm kiểm"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "ghi"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "đọc"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Điểm kiểm tra ghi %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Điểm kiểm tra đọc %u"
+
+#: tests/genfile.c:112
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+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:128
+msgid "File creation options:"
+msgstr "Tùy chọn tạo tập tin:"
+
+#: tests/genfile.c:129 tests/genfile.c:140
+msgid "SIZE"
+msgstr "KÍCH CỠ"
+
+#: 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: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:134
+msgid "Read file names from FILE"
+msgstr "Đọc các tên tập tin từ TẬP TIN"
+
+#: 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: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: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: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:145
+msgid "OFFSET"
+msgstr "HIỆU SỐ"
+
+#: 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:152
+msgid "File statistics options:"
+msgstr "Tùy chọn thống kê tập tin:"
+
+#: 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:162
+msgid "Synchronous execution options:"
+msgstr "Tùy chọn thực hiện đồng thời:"
+
+#: tests/genfile.c:164
+msgid "OPTION"
+msgstr "TÙY_CHỌN"
+
+#: tests/genfile.c:165
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr ""
+"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ờ\n"
+" • --unlink\tbỏ liên kết"
+
+#: 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: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: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:179
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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:182
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+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: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: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:192
+msgid "Execute COMMAND"
+msgstr "Thực hiện LỆNH"
+
+#: 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: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:253
+#, c-format
+msgid "Negative size: %s"
+msgstr "Kích cỡ âm: %s"
+
+#: tests/genfile.c:266 tests/genfile.c:568
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) bị lỗi"
+
+#: 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: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:362
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Lỗi phân tích số gần « %s »"
+
+#: tests/genfile.c:368
+#, c-format
+msgid "Unknown date format"
+msgstr "Không rõ định dạng ngày tháng"
+
+#: tests/genfile.c:392
+msgid "[ARGS...]"
+msgstr "[ĐỐI SỐ...]"
+
+#: 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:435
+msgid "cannot seek"
+msgstr "không thể tìm nơi"
+
+#: 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: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:595
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "mặt nạ không đúng (gần « %s »)"
+
+#: tests/genfile.c:601 tests/genfile.c:634
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Không rõ trường « %s »"
+
+#: 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: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: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: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: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:837
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Lệnh đã đổ lõi\n"
+
+#: tests/genfile.c:840
+#, c-format
+msgid "Command terminated\n"
+msgstr "Lệnh đã chấm dứt\n"
+
+#: tests/genfile.c:872
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat yêu cầu tên tập tin"
diff --git a/po/.reference/vi.s1 b/po/.reference/vi.s1
new file mode 100644
index 00000000..867b6673
--- /dev/null
+++ b/po/.reference/vi.s1
@@ -0,0 +1 @@
+53c9b6756603f943bc58d24c0811ac865af40f09 -
diff --git a/po/.reference/zh_CN.po b/po/.reference/zh_CN.po
new file mode 100644
index 00000000..c77197f8
--- /dev/null
+++ b/po/.reference/zh_CN.po
@@ -0,0 +1,3044 @@
+# Chinese (simplified) translation for tar.
+# Copyright (C) 2008 Free Software Foundation, Inc.
+# 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, 2009, 2010, 2011.
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-04-28 20:42+0800\n"
+"Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
+"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "%2$s 的参数 %1$s 无效"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "%2$s 的参数 %1$s 具有歧义"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "有效的参数为:"
+
+#: 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"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT 参数需要一个值"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT 参数值必须为正"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: 未知的 ARGP_HELP_FMT 参数"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "ARGP_HELP_FMT 中的参数错误: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "长选项和相应短选项具有相同的强制参数或可选参数。"
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "用法:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " 或: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [选项...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "请用“%s --help”或“%s --usage”获得更多信息。\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "将错误报告发送到 %s。\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "未知的系统错误"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "显示此帮助列表"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "显示简短的用法说明"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "名称"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "设置程序名"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "秒"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "挂起 SECS 秒(默认 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "打印程序版本"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(程序错误)未知版本!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s:参数太多\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(程序错误)选项可否被识别!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "写错误"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: 选项\"%s\"具有歧义\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: 选项\"--%s\"不需要参数\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: 选项\"%c%s\"不需要参数\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: 选项\"%s\"需要带参数\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: 无法识别的选项\"--%s\"\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: 无法识别的选项\"%c%s\"\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: 无效选项 -- \"%c\"\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: 选项需要参数 -- \"%c\"\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: 选项\"-W %s\"具有歧义\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: 选项\"-W %s\"不要参数\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: 选项\"%s\"需要带参数\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "内存耗尽"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "无法记录当前工作目录"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "无法回到起始的工作目录"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "“"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "”"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "由 %s (%s) 打包\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+"这是自由软件:您可以自由地更改并重新发布它。\n"
+"在法律所允许的范围内不含任何担保。\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "由 %s 所写。\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"将错误报告发送到: %s。翻译错误报告给 <i18n-zh@googlegroups.com>\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: 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"
+
+#: 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "从成员名中删除开头的“%s”"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "从硬连接目标中删除开头的“%s”"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "为空成员名替换“.”"
+
+#: lib/paxnames.c:155
+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: 解析失败"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "无法执行远程 shell"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "查寻方向超出范围"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "无效的查寻方向"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "无效的查寻偏移量"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "查寻操作的偏移量超出范围"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "无效的字节数"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "字节数超出范围"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "文件结尾出现过早"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "无效操作模式"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "不支持的操作"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "参数异常"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "接受远程程序的命令操作磁带机"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NUMBER"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "设定调试级别"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FILE"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "设定调试输出文件名"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "无法打开 %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "参数过多"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "垃圾命令"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "它似乎不像是一个 tar 归档文件"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "总计写入字节数"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "总计读取字节数"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "总计删除字节数:%s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(管道)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "record_size 的无效值"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "未给出归档文件名"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "无法验证标准输入/标准输出归档文件"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "归档被压缩。使用 %s 选项"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "无法更新压缩归档文件"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "处于磁带的起点,现在退出"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "错误过多,退出"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "记录大小 = %lu 块"
+
+#: src/buffer.c:913
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "归档中未对齐的块 (%lu 字节)s"
+
+#: src/buffer.c:990
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "无法倒回归档文件;如果没有 -i 可能无法读入它"
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek 未停在记录边界处"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s:包含无效的卷编号"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "卷编号溢出"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "为 %2$s 准备卷 #%1$d 并按回车:"
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "需得到用户应答时文件结束"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "警告:归档文件不完整"
+
+#: src/buffer.c:1148
+#, 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]\t给下一卷(及以后的卷)取一个新文件名\n"
+" q\t\t终止 tar\n"
+" y or newline\t继续操作\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! 衍生出一个子 shell\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? 打印此列表\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "没有新的卷;退出。\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "未指定文件名。重试。\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "无效输入。输入 ? 显示帮助。\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "%s 命令失败"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s 在本卷可能连续: 头部包含截短的名字"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s 在本卷中不连续"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s 的大小错误 (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "此卷次序有误(%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "归档未被标记为匹配 %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "卷标 %s 不匹配 %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: 文件名太长而无法贮存在 GNU 多卷头,已被截短"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "写操作未在记录边界处终止"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "内容不同"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "归档文件中异常的 EOF"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "文件类型不同"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "访问模式不同"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Uid 不同"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gid 不同"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "修改时间不同"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "大小不同"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "没有连接到 %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "符号连接不同"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "设备号不同"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "校验"
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s:未知的文件类型“%c”,与普通文件不同"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "归档包含带有被移除前导字符的文件名。"
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "归档中有文件被改名。"
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "位于原始文件中的验证可能失败。"
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "校验失败:检测到 %d 个无效的头"
+
+#: src/compare.c:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "在 %s 处一个单独的零块"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: 包含一个缓存目录标识 %s;%s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "值 %s 超出了 %s 的范围 %s..%s;正在替换 %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "值 %s 超出了 %s 的范围 %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "正在生成负八进制头"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s:文件名太长(最长 %d);未输出"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s:文件名太长(不能被分割);未输出"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s:连接名太长;未输出"
+
+#: src/create.c:1064
+#, 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:1160
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s:文件在不同的文件系统上;未输出"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "未输出内容"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s:未知的文件类型;忽略文件"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "缺少到 %s 的连接。"
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: 文件未改变;未输出"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: 文件是归档文件;未输出"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "未输出目录"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: 在我们读入文件时文件发生了变化"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: 忽略套接字(socket)"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: 忽略权限"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "跳转到下一个头"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "从归档文件中删除非头信息"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s:不可信的旧时间戳 %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s:时间戳 %s 是未来的 %s 秒之后"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s:创建目录时出现意外的不一致"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s:目录名在状态信息被获取之前改变了"
+
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "展开紧邻的文件为普通文件"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "正试图将符号连接展开为硬连接"
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s:无法展开 -- 文件一直延伸至另一卷中"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "异常的长名字头部"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s:未知的文件类型“%c”,作为普通文件展开"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "当前的“%s”更新或一样新"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s:无法备份该文件"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "无法将 %s 重命名为 %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s:目录已改名,不再是 %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s:目录已被改名"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s:目录是新的"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "无效的时间戳"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "无效的修改时间(秒)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "无效的修改时间(纳秒)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "无效的设备号"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "无效的 inode 号"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "读取目录文件时字段太长"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "目录文件读取错误"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "目录文件中异常的文件结尾(EOF)"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "目录文件中异常的字段值"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "缺少记录终止符"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "文件格式错误增量"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "不支持增量格式版本: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "错误的 dumpdir: 需要“%c”但实际为 %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "错误的 dumpdir: 重复的“X”"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "错误的 dumpdir: “R”中有空名字"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "错误的 dumpdir: “R”后未紧接着用“T”"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "错误的 dumpdir: “T”中有空名字"
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "错误的 dumpdir: 需要“%c”但实际为数据结尾"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "错误的 dumpdir: 从未用过“X”"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "无法通过模板 %s 创建临时目录"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s:未清除目录:无法 stat"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: 目录在不同的设备上: 未清除"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s:正在删除 %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s:无法删除"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s:忽略"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "块 %s:** 空块 **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "块 %s:** 文件结束 **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "块 %s:"
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, 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:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "归档八进制值 %.*s 超出 %s 的范围"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "归档包含过时的 base-64 头"
+
+#: src/list.c:809
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "归档签署的 base-64 字符串 %s 超出范围 %s"
+
+#: src/list.c:840
+#, 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:869
+#, 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:891
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "归档值 %s 超出 %s 的范围 %s..%s"
+
+#: src/list.c:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " 连接到 %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " 未知的文件类型 %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--长连接--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--长名--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--卷头--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--从 %s 字节继续--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "正在创建目录:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "无法获取工作目录"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "将 %s 改名为 %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s:无法重命名为 %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "将 %s 的名字改回 %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s:文件在我们读入之前被删除了"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "子进程"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "进程内通道"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "文件名中所使用的字符匹配模式"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "使用 --wildcards 打开模式匹配,或是 --no-wildcards 来关闭之"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s:归档中找不到"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s:没有在归档中找到需要的"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "归档卷标不匹配"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "在文件列表中 -C 选项与 --listed-incremental 选项不许合用"
+
+#: src/names.c:955
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s:无效的归档格式"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "在不兼容的归档格式上需要 GNU 特征"
+
+#: 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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"示例\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:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"除非以 --suffix 或 SIMPLE_BACKUP_SUFFIX 设置备份后缀,否则备份后缀就是“~”。\n"
+"可以用 --backup 或 VERSION_CONTROL 设置版本控制,可能的值为:\n"
+"\n"
+" none, off\t 从不做备份\n"
+" t, numbered 进行编号备份\n"
+" nil, existing 如果编号备份存在则进行编号备份,否则进行简单备份\n"
+" never, simple 总是使用简单备份\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "主操作模式:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "列出归档内容"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "从归档中解出文件"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "创建一个新归档"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "找出归档和文件系统的差异"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "追加文件至归档结尾"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "仅追加比归档中副本更新的文件"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "追加 tar 文件至归档"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "从归档(非磁带!)中删除"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "测试归档卷标并退出"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "操作修饰符:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "高效处理离散文件"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "设置所用的离散格式版本(隐含 --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "处理老式的 GNU 格式的增量备份"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "处理新式的 GNU 格式的增量备份"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "所创建的增量列表归档的输出级别"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "当遇上不可读文件时不要以非零值退出"
+
+#: src/tar.c:429
+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 "仅处理归档中每个文件的第 NUMBER 个事件;仅当与以下子命令 --delete, --diff, --extract 或是 --list 中的一个联合使用时,此选项才有效。而且不管文件列表是以命令行形式给出或是通过 -T 选项指定的;NUMBER 值默认为 1"
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "归档可检索"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "归档不可检索"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "当创建增量归档时不要检查设备号"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "当创建增量归档时检查设备号(默认)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "重写控制:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "在写入以后尝试校验归档"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "在添加文件至归档后删除它们"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "解压时不要替换存在的文件"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "不要替换比归档中副本更新的已存在的文件"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "解压时重写存在的文件"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "在解压要重写的文件之前先删除它们"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "解压目录之前先清除目录层次"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "保留已存在目录的元数据"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "解压时重写已存在目录的元数据(默认)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "选择输出流:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "解压文件至标准输出"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "COMMAND"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "将解压的文件通过管道传送至另一个程序"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "忽略子进程的退出代码"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "将子进程的非零退出代码认为发生错误"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "操作文件属性:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "强制将 NAME 作为所添加的文件的所有者"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "强制将 NAME 作为所添加的文件的组所有者"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATE-OR-FILE"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "从 DATE-OR-FILE 中为添加的文件设置 mtime"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "CHANGES"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "强制将所添加的文件(符号)更改为权限 CHANGES"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METHOD"
+
+#: src/tar.c:499
+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 "在输出的文件上保留访问时间,要么通过在读取(默认 METHOD=‘replace’)后还原时间,要不就不要在第一次(METHOD=‘system’)设置时间"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "不要解压文件的修改时间"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "尝试解压时保持所有者关系一致(超级用户默认此项)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "将文件解压为您所有(普通用户默认此项)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "总是以数字代表用户/组的名称"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "解压文件权限信息(默认只为超级用户服务)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "从归档中解压权限时使用用户的掩码位(默认为普通用户服务)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "为解压至匹配归档排序名称"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "与 -p 和 -s 一样"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "直到解压结束才设置修改时间和所解目录的权限"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "取消 --delay-directory-restore 选项的效果"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "设备选择和切换:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIVE"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "使用归档文件或 ARCHIVE 设备"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "即使归档文件存在副本还是把它认为是本地归档"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "使用指定的 rmt COMMAND 代替 rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "使用远程 COMMAND 代替 rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "指定驱动器和压缩率"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "创建/列出/解压多卷归档文件"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "写入 NUMBER × 1024 字节后更换磁带"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "在每卷磁带最后运行脚本(隐含 -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "使用/更新 FILE 中的卷数"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "设备分块:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCKS"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "每个记录 BLOCKS x 512 字节"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "每个记录的字节数 NUMBER,乘以 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "忽略归档中的零字节块(即文件结尾)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "读取时重新分块(只对 4.2BSD 管道有效)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "选择归档格式:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "创建指定格式的归档"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT 是以下格式中的一种:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "old V7 tar 格式"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU 格式 as per tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x 格式"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) 格式"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) 格式"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "等同于 pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "等同于 --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "等同于 --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "关键字[[:]=值][,关键字[[:]=值]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "控制 pax 关键字"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:609
+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:614
+msgid "Compression options:"
+msgstr "压缩选项:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "使用归档后缀名来决定压缩程序"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "不使用归档后缀名来决定压缩程序"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "通过 PROG 过滤(必须是能接受 -d 选项的程序)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "本地文件选择:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "添加指定的 FILE 至归档(如果名字以 - 开始会很有用的)"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "改变至目录 DIR"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "从 FILE 中获取文件名来解压或创建文件"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T 读取以空终止的名字,-C 禁用"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "禁用上一次的效果 --null 选项"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "以 -T 读取的文件名作为引用结束(默认)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "不以 -T 读取的文件名作为引用结束"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "PATTERN"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "排除以 PATTERN 指定的文件"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "排除 FILE 中列出的模式串"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "除标识文件本身外,排除包含 CACHEDIR.TAG 的目录中的内容"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "排除包含 CACHEDIR.TAG 的目录中所有内容"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "排除包含 CACHEDIR.TAG 的目录"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "除 FILE 自身外,排除包含 FILE 的目录中的内容"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "排除包含 FILE 的目录中的所有内容"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "排除包含 FILE 的目录"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "排除版本控制系统目录"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "排除备份和锁文件"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "避免目录中的自动降级"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "创建归档时保存在本地文件系统中"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "目录递归(默认)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "不要从文件名中清除引导符‘/’"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "跟踪符号链接;将它们所指向的文件归档并输出"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "跟踪硬链接;将它们所指向的文件归档并输出"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "MEMBER-NAME"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "从归档中的 MEMBER-NAME 成员处开始"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "只保存比 DATE-OR-FILE 更新的文件"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATE"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "当只有数据改变时比较数据和时间"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "在删除前备份,选择 CONTROL 版本"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRING"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "在删除前备份,除非被环境变量 SIMPLE_BACKUP_SUFFIX 覆盖,否则覆盖常用后缀(‘’)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "文件名变换:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "解压时从文件名中清除 NUMBER 个引导部分"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "EXPRESSION"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "使用 sed 代替 EXPRESSION 来进行文件名变换"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "文件名匹配选项(同时影响排除和包括模式串):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "忽略大小写"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "模式串匹配文件名头部"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "模式串匹配任意‘/’后字符(默认对 exclusion 有效)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "匹配大小写(默认)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "使用通配符(默认对 exclusion )"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "逐字匹配字符串"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "通配符不匹配‘/’"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "通配符匹配‘/’(默认对排除操作有效)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "提示性输出:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "详细地列出处理的文件"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KEYWORD"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "警告控制:"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "每隔 NUMBER 个记录显示进度信息(默认为 10 个)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ACTION"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "在每个检查点上执行 ACTION"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "只要不是所有链接都被输出就打印信息"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "处理归档后打印出总字节数;当此 SIGNAL 被触发时带参数 - 打印总字节数;允许的信号为: SIGHUP,SIGQUIT,SIGINT,SIGUSR1 和 SIGUSR2;同时也接受不带 SIG 前缀的信号名称"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "以 UTC 格式打印文件修改时间"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "按文件原本时间格式打印"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "将详细输出发送至 FILE"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "每个信息都显示归档内的块数"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "每次操作都要求确认"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "显示 tar 默认选项"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "列表或解压时,列出每个不匹配查找标准的目录"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "显示变换后的文件名或归档名"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STYLE"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "设置名称引用风格;有效的 STYLE 值请参阅以下说明"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "来自 STRING 的额外的引用字符"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "禁用来自 STRING 的字符引用"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "兼容性选项:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "创建归档时,相当于 --old-archive;展开归档时,相当于 --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "其它选项:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "禁用某些潜在的有危险的选项"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "您不能指定超过一个\"-Acdtrux\"或是\"--test-label\"外的选项"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "压缩选项冲突"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "未知的信号名称: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "找不到数据样板文件"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "把未知的时间格式 %2$s 替换为 %1$s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "选项 %s: 将日期 ‘%s’ 当作 %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: 文件列表已经读取"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: 读取的文件名含有空字符"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "通过 %s 过滤归档"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "--quoting-style 选项的有效参数为:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"此 tar 默认为:\n"
+
+#: src/tar.c:1402
+#, fuzzy
+msgid "Invalid blocking factor"
+msgstr "无效的块因子"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "无效的磁带长度"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "无效的增量度"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "多于一个时间阈值"
+
+#: src/tar.c:1630 src/tar.c:1633
+#, fuzzy
+msgid "Invalid sparse version value"
+msgstr "无效的稀疏版本值"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "此平台不支持 --atime-preserve=‘system’ "
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint 值不是个整数"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "无效的组"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "选项中给出无效的访问模式"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "无效的数字"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "无效的所有者"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "--preserve 选项已经废弃了,请使用 --preserve-permissions --preserve-order 代替"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "无效的记录大小"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "记录大小必须是 %d 的倍数。"
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "无效的元素数"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "仅允许使用一个 --to-command 选项"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "错误的压缩参数: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "未知的压缩参数: ‘%c’"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "本 tar 不支持选项“-[0-7][lmh]”"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[FILE]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "旧选项“%c”需要参数。"
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "没有一个文件列表时 --occurrence 是没有意义的"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence 不能用于请求的操作模式中"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "多个归档文件需要使用“-M”选项"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "无法在使用 --newer 的时候使用 --listed-incremental"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "没有 --listed-incremental 选项的话 --level 选项是无意义的"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "无法检验多卷归档文件"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "无法检验压缩归档文件"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "无法使用多卷压缩归档文件"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "无法联结压缩归档文件"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option 只能用于 POSIX 归档中"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "卷长度不可小于记录大小"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order 与 --listed-incremental 不匹配"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "谨慎地拒绝创建空归档文件"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "选项“-Aru”与“-f -”不兼容"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "您必须从\"-Acdtrux\"或是\"--test-label\"选项中指定一个"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+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 字节"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "关键字 %s 未知或还未实现"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "时间标记超出允许范围"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "不能使用模式 %s"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "不能覆盖关键字 %s"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "错误的扩展头: 缺少 length"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "扩展头长度超出所允许的范围"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "扩展头长度 %*s 超出范围"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "错误的扩展头: length 后缺少空白符"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "错误的扩展头: 缺少等于符号"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "错误的扩展头: 缺少空行"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "忽略未知的扩展头关键字‘%s’"
+
+#: src/xheader.c:831
+#, 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:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "扩展头 %s=%s 超出范围 %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "错误的扩展头: %s=%s 无效"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "错误的扩展头: %s=%s 溢出"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "错误的扩展头: %s 无效: 非预期的分隔符 %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "错误的扩展头: %s 无效: 奇怪的数值"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: 无效的超时设置"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: 未知的检查点操作"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "写入"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "读取操作的检查点 %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile 为 GNU paxutils 测试软件操作数据文件。\n"
+"选项为:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "文件创建选项:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "SIZE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "创建指定 SIZE 的文件"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "写入文件 NAME,而不是标准输出"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "从 FILE 读取文件名"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T 读取以 NULL 终止的名字"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "以指定的 PATTERN 填充文件。PATTERN 可以是‘default’或是‘zeros’"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "稀疏文件的块大小"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "生成稀疏文件。命令行其余选项指定 map 文件。"
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "OFFSET"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "在写入数据前定位至指定的偏移位"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "文件统计选项:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "打印每个给定文件的 stat 结构定义的内容。默认 FORMAT 是: "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "同步执行选项:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPTION"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "执行 ARGS。与 --checkpoint 或 --cut,--append,--touch 中的一个一起使用时有用"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "只要达到 checkpoint NUMBER 指定的数值就执行指定的操作(见下)"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "为下一个 --touch 选项设定日期"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "显示执行的 checkpoints 以及 COMMAND 的退出状态"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "同步执行操作。当达到由 --checkpoint 选项指定的 checkpoint 数值时会执行这些操作。"
+
+#: tests/genfile.c:181
+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:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "添加 SIZE 字节至 FILE。SIZE 由前面的 --length 选项指定。"
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "更新 FILE 的访问和修改时间"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "执行 COMMAND"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "删除 FILE"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "无效的值: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "数值超出所允许的范围: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "负值: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) 错误"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "需要文件长度为 %lu,实际为 %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "所创建的文件非稀疏文件"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "“%s”附近解析数字错误"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "未知的数据格式"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGS...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "无法打开“%s”"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "无法定位"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "文件名包含空字符"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "使用 --file 选项无法在标准输出上生成离散文件"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "不正确的掩码(“%s”附近)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "未知的文件掩码位“%s”"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "无法设定“%s”的时间"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "无法删除 \"%s\""
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "命令成功退出\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "命令出错,状态 %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "命令由信号 %d 终止了\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "命令由信号 %d 停止了\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "命令输出 core\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "命令终止\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat 选项需要文件名"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: 文件在读入之前被删除了"
+
+#~ msgid "Cannot save working directory"
+#~ 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 ?"
+
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "由于前面延迟的错误而退出"
+
+#~ msgid "block size"
+#~ msgstr "块大小"
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "警告:没有卷头"
+
+#~ msgid "Visible long name error"
+#~ 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 ""
+#~ "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"
+#~ "您可以在 GNU 一般通用许可证的条款下分发本程序;\n"
+#~ "请参考名为 COPYING 的文件以了解详细信息。"
+
+#~ msgid "rmtd: Garbage command %c\n"
+#~ msgstr "rmtd:垃圾命令 %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”将许多文件保存到一个磁带或磁盘归档文件中,\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 ""
+#~ "\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 只附加比归档中新的文件\n"
+#~ " -A, --catenate 将 tar 文件附加到归档文件之后\n"
+#~ " --concatenate 与 -A 相同\n"
+#~ " --delete 从归档文件中删除 (不能在磁带上!)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Operation modifiers:\n"
+#~ " -W, --verify attempt to verify the archive after writing it\n"
+#~ " --remove-files remove files after adding them to the archive\n"
+#~ " -k, --keep-old-files don't replace existing files when extracting\n"
+#~ " --keep-newer-files don't replace existing files that are newer\n"
+#~ " than their archive copies\n"
+#~ " --overwrite overwrite existing files when extracting\n"
+#~ " --no-overwrite-dir preserve metadata of existing directories\n"
+#~ " -U, --unlink-first remove each file prior to extracting over it\n"
+#~ " --recursive-unlink empty hierarchies prior to extracting directory\n"
+#~ " -S, --sparse handle sparse files efficiently\n"
+#~ " -O, --to-stdout extract files to standard output\n"
+#~ " -G, --incremental handle old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " handle new GNU-format incremental backup\n"
+#~ " --ignore-failed-read do not exit with nonzero on unreadable files\n"
+#~ " --occurrence[=NUM] process only the NUMth occurrence of each file in\n"
+#~ " the archive. This option is valid only in\n"
+#~ " conjunction with one of the subcommands --delete,\n"
+#~ " --diff, --extract or --list and when a list of\n"
+#~ " files is given either on the command line or\n"
+#~ " via -T option.\n"
+#~ " NUM defaults to 1.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "操作修饰符:\n"
+#~ " -W, --verify 试图在写入归档之后对其进行验证\n"
+#~ " --remove-files 在将文件添加到归档之后删除文件\n"
+#~ " -k, --keep-old-files 在展开时不替换已存在的文件\n"
+#~ " --keep-newer-files 不替换比归档中的副本更新的文件\n"
+#~ " --overwrite 在展开时覆盖已存在的文件\n"
+#~ " --no-overwrite-dir 在展开时保持已存在目录元数据\n"
+#~ " -U, --unlink-first 在展开文件之前删除已存在的文件\n"
+#~ " --recursive-unlink 在展开目录之前清空目录结构\n"
+#~ " -S, --sparse 有效地处理离散文件\n"
+#~ " -O, --to-stdout 将文件展开到标准输出\n"
+#~ " -G, --incremental 处理旧 GNU-格式的增量备份\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " 处理新 GNU-格式的增量备份\n"
+#~ " --ignore-failed-read 遇到不可读文件时不退出\n"
+#~ " --occurrence[=NUM] 仅处理归档中每个文件的第 NUM 次出现\n"
+#~ " 此选项只在和 --delete,--diff,--extract 或者 --list\n"
+#~ " 等子命令一起使用时,并且当没有通过命令行或 -T\n"
+#~ " 选项提供一个文件列表时才有效。\n"
+#~ " NUM 默认为 1.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --preserve same as both -p and -s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "处理文件属性:\n"
+#~ " --owner=NAME 将被添加的文件所有者设置为 NAME\n"
+#~ " --group=NAME 将被添加的文件所属的组设置为 NAME\n"
+#~ " --mode=CHANGES 将被添加的文件的属性设置为 CHANGES\n"
+#~ " --atime-preserve 不要改变输出文件的访问时间\n"
+#~ " -m, --modification-time 不要展开文件的修改时间\n"
+#~ " --same-owner 试图以相同的所有权展开文件\n"
+#~ " --no-same-owner 以您自己的身份展开文件\n"
+#~ " --numeric-owner 总是用编号作为用户/组的名字\n"
+#~ " -p, --same-permissions 展开权限信息\n"
+#~ " --no-same-permissions 不展开权限信息\n"
+#~ " --preserve-permissions 与 -p 相同\n"
+#~ " -s, --same-order 对要展开的名称进行排序以便与归档匹配\n"
+#~ " --preserve-order 与 -s 相同\n"
+#~ " --preserve 与 -p 和 -s 都相同\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device selection and switching:\n"
+#~ " -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+#~ " --force-local archive file is local even if has a colon\n"
+#~ " --rmt-command=COMMAND use given rmt COMMAND instead of /etc/rmt\n"
+#~ " --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+#~ " -[0-7][lmh] specify drive and density\n"
+#~ " -M, --multi-volume create/list/extract multi-volume archive\n"
+#~ " -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+#~ " --new-volume-script=FILE same as -F FILE\n"
+#~ " --volno-file=FILE use/update the volume number in FILE\n"
+#~ msgstr ""
+#~ "\n"
+#~ "设备选择与切换:\n"
+#~ " -f, --file=ARCHIVE 使用归档文件或设备 ARCHIVE\n"
+#~ " --force-local 即使含有冒号,归档文件也是本地文件\n"
+#~ " --rmt-command=COMMAND 用给定的 rmt COMMAND 代替 /etc/rmt\n"
+#~ " --rsh-command=COMMAND 用远程 COMMAND 代替 rsh\n"
+#~ " -[0-7][lmh] 指定驱动器和密度\n"
+#~ " -M, --multi-volume 创建/列举/展开多卷归档文件\n"
+#~ " -L, --tape-length=NUM 在写入 NUM x 1024 个字节后更换磁带\n"
+#~ " -F, --info-script=FILE 在每个磁带末端运行脚本 (隐含 -M)\n"
+#~ " --new-volume-script=FILE 与 -F FILE 相同\n"
+#~ " --volno-file=FILE 使用/更新 FILE 中的卷编号\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device blocking:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+#~ " --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+#~ " -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+#~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "设备分块:\n"
+#~ " -b, --blocking-factor=BLOCKS 每个记录 BLOCKS x 512 个字节\n"
+#~ " --record-size=SIZE 每个记录 SIZE 个字节,512 的倍数\n"
+#~ " -i, --ignore-zeros 忽略归档中全为零的块 (标示文件结束)\n"
+#~ " -B, --read-full-records 当我们读入时重新分块 (为 4.2BSD 管道提供)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " --format=FMTNAME create archive of the given format.\n"
+#~ " FMTNAME is one of the following:\n"
+#~ " v7 old V7 tar format\n"
+#~ " oldgnu GNU format as per tar <= 1.12\n"
+#~ " gnu GNU tar 1.13 format\n"
+#~ " ustar POSIX 1003.1-1988 (ustar) format\n"
+#~ " posix POSIX 1003.1-2001 (pax) format\n"
+#~ " --old-archive, --portability same as --format=v7\n"
+#~ " --posix same as --format=posix\n"
+#~ " --pax-option keyword[[:]=value][,keyword[[:]=value], ...]\n"
+#~ " control pax keywords\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -d)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "归档格式选择:\n"
+#~ " --format=FMTNAME 创建指定格式的归档。\n"
+#~ " FMTNAME 为下列格式中的一个:\n"
+#~ " v7 旧式 V7 tar 格式\n"
+#~ " oldgnu tar <= 1.12 时的 GNU 格式\n"
+#~ " gnu GNU tar 1.13 格式\n"
+#~ " ustar POSIX 1003.1-1988 (ustar) 格式\n"
+#~ " posix POSIX 1003.1-2001 (pax) 格式\n"
+#~ " --old-archive, --portability 与 --format=v7 相同\n"
+#~ " --posix 与 --format=posix 相同\n"
+#~ " --pax-option keyword[[:]=value][,keyword[[:]=value], ...]\n"
+#~ " 控制 pax 关键字\n"
+#~ " -V, --label=NAME 以卷标名 NAME 创建归档\n"
+#~ " PATTERN 在列出/展开时,一个模糊匹配 PATTERN\n"
+#~ " -j, --bzip2 用 bzip2 过滤归档\n"
+#~ " -z, --gzip, --ungzip 用 gzip 过滤归档\n"
+#~ " -Z, --compress, --uncompress 用 compress 过滤归档\n"
+#~ " --use-compress-program=PROG 用程序 PROG(必须接受参数 -d) 过滤归档\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -K, --starting-file=NAME begin at file NAME in the archive\n"
+#~ " --strip-path=NUM strip NUM leading components from file names\n"
+#~ " before extraction\n"
+#~ msgstr ""
+#~ "\n"
+#~ "本地文件选择:\n"
+#~ " -C, --directory=DIR 进入目录 DIR\n"
+#~ " -T, --files-from=NAME 从文件 NAME 中获取要展开或创建的文件名\n"
+#~ " --null -T 读入以 null 终止的名称,禁用 -C\n"
+#~ " --exclude=PATTERN 除去匹配 PATTERN 的文件\n"
+#~ " -X, --exclude-from=FILE 出去匹配在 FILE 中列出的模式的文件\n"
+#~ " --anchored 去除模式匹配文件起点 (默认)\n"
+#~ " --no-anchored 去除任何 / 之后的模式匹配\n"
+#~ " --ignore-case 去除匹配时忽略大小写\n"
+#~ " --no-ignore-case 去除匹配时关心大小写 (默认)\n"
+#~ " --wildcards 在去除匹配时使用通配符 (默认)\n"
+#~ " --no-wildcards 在去除匹配时使用普通字符串\n"
+#~ " --wildcards-match-slash 去除模式通配符匹配“/” (默认)\n"
+#~ " --no-wildcards-match-slash 去除模式通配符不匹配“/”\n"
+#~ " -P, --absolute-names 不要从文件名中去掉最前头的“/”\n"
+#~ " -h, --dereference 输出连接指向的文件而不是文件连接\n"
+#~ " --no-recursion 避免在目录间自动递归\n"
+#~ " -l, --one-file-system 创建归档文件时留在本地文件系统中\n"
+#~ " -K, --starting-file=NAME 从归档中的文件 NAME 开始\n"
+#~ " --strip-path=NUM 展开前从文件名中删除前面的 NUM 个元素\n"
+
+#~ msgid ""
+#~ " -N, --newer=DATE-OR-FILE only store files newer than DATE-OR-FILE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed only\n"
+#~ " --after-date=DATE same as -N\n"
+#~ msgstr ""
+#~ " -N, --newer=DATE-OR-FILE 只存储比指定的日期或者文件更新的文件\n"
+#~ " --newer-mtime=DATE 只在数据发生变化时比较日期和时间\n"
+#~ " --after-date=DATE 与 -N 相同\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --suffix=SUFFIX backup before removal, override usual suffix\n"
+#~ msgstr ""
+#~ " --backup[=CONTROL] 在删除前备份,选择版本控制\n"
+#~ " --suffix=SUFFIX 在删除前备份,覆盖常用后缀\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --check-links print a message if not all links are dumped\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " --index-file=FILE send verbose output to FILE\n"
+#~ " --utc print file modification dates in UTC\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --confirmation same as -w\n"
+#~ msgstr ""
+#~ "\n"
+#~ "提示性输出:\n"
+#~ " --help 打印该求助信息,而后退出\n"
+#~ " --version 打印 tar 程序的版本号,而后退出\n"
+#~ " -v, --verbose 详细列出处理的文件\n"
+#~ " --checkpoint 在读入归档文件时打印目录名\n"
+#~ " --check-links 如果未输出所以连接则打印一条消息\n"
+#~ " --totals 在创建归档文件时打印总计写入的字节数\n"
+#~ " --index-file=FILE 输出详细输出到文件 FILE\n"
+#~ " --utc 以 UTC 格式打印文件修改时间\n"
+#~ " -R, --block-number 在每条消息中都显示归档文件中的块编号\n"
+#~ " -w, --interactive 每一动作都请求确认\n"
+#~ " --confirmation 与 -w 相同\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*This* `tar' defaults to `--format=%s -f%s -b%d'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "ARCHIVE 可以是 FILE,HOST:FILE 或者 USER@HOST:FILE;DATE 可以是一文字时间\n"
+#~ "或者是一以“/”或“.”开头的文件名,这时使用该文件的时间。\n"
+#~ "*本* “tar” 默认为“--format=%s -f%s -b%d”。\n"
+
+#~ msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+#~ msgstr "警告:不支持 -y 选项;您的意思可能是 -j?"
+
+#~ msgid "Written by John Gilmore and Jay Fenlason."
+#~ msgstr "由 John Gilmore 和 Jay Fenlason 编写。"
diff --git a/po/.reference/zh_CN.s1 b/po/.reference/zh_CN.s1
new file mode 100644
index 00000000..863cbc99
--- /dev/null
+++ b/po/.reference/zh_CN.s1
@@ -0,0 +1 @@
+2dbfa80f3920a401cbe2e80bdb0cd39c492ef735 -
diff --git a/po/.reference/zh_TW.po b/po/.reference/zh_TW.po
new file mode 100644
index 00000000..d870b361
--- /dev/null
+++ b/po/.reference/zh_TW.po
@@ -0,0 +1,2543 @@
+# Traditional Chinese Messages for tar.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# 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.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-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
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "%2$s 的引數 %1$s 無效"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "%2$s 的引數 %1$s 是模稜兩可的"
+
+#: lib/argmatch.c:153
+#, c-format
+msgid "Valid arguments are:"
+msgstr "有效的引數為:"
+
+#: lib/argp-help.c:147
+#, 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
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT 參數需要一個值"
+
+#: lib/argp-help.c:226
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT 參數必須是正值"
+
+#: lib/argp-help.c:235
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: 不明的 ARGP_HELP_FMT 參數"
+
+#: lib/argp-help.c:247
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "ARGP_HELP_FMT 中無用的資訊: %s"
+
+#: lib/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
+msgid "Usage:"
+msgstr "用法:"
+
+#: lib/argp-help.c:1643
+msgid " or: "
+msgstr " 或:"
+
+#: lib/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [選項…]"
+
+#: lib/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
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "請向 %s 回報錯誤。\n"
+
+#: lib/argp-help.c:1929 lib/error.c:125
+msgid "Unknown system error"
+msgstr "不明的系統錯誤"
+
+#: lib/argp-parse.c:81 src/tar.c:774
+msgid "give this help list"
+msgstr "給出這個使用方式列表"
+
+#: lib/argp-parse.c:82 src/tar.c:775
+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
+msgid "NAME"
+msgstr "名稱"
+
+#: lib/argp-parse.c:83
+msgid "set the program name"
+msgstr "設定程式名稱"
+
+#: lib/argp-parse.c:84
+msgid "SECS"
+msgstr "秒"
+
+#: lib/argp-parse.c:85 src/tar.c:780
+msgid "hang for SECS seconds (default 3600)"
+msgstr "掛斷若干秒 (預設 3600)"
+
+#: lib/argp-parse.c:142 src/tar.c:776
+msgid "print program version"
+msgstr "印出程式版本"
+
+#: lib/argp-parse.c:158
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(程式錯誤) 沒有已知版本 !?"
+
+#: lib/argp-parse.c:611
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s:太多引數\n"
+
+#: lib/argp-parse.c:754
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(程式錯誤) 選項應該已被辨識 !?"
+
+#: lib/closeout.c:112
+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"
+
+#: 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
+#, c-format
+msgid "unable to record current working directory"
+msgstr "無法記錄目前的工作目錄"
+
+#: lib/openat-die.c:48
+#, 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 位元組"
+
+#: 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 "以「.」來替換空白的硬式連結目標"
+
+#. 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.
+#: lib/quotearg.c:249
+msgid "`"
+msgstr "「"
+
+#: lib/quotearg.c:250
+msgid "'"
+msgstr "」"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. 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
+msgid "^[yY]"
+msgstr "^[yY是]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. 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
+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
+#, c-format
+msgid "stdout"
+msgstr "標準輸出"
+
+#: lib/rtapelib.c:512
+#, c-format
+msgid "Cannot execute remote shell"
+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
+msgid "(C)"
+msgstr "©"
+
+#: lib/version-etc.c:67
+msgid ""
+"\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"
+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
+#, c-format
+msgid "Written by %s.\n"
+msgstr "由 %s 編寫。\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:87
+#, 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
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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
+#, 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
+#, 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
+#, 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
+#, 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
+#, 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
+#, 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
+#, 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
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"將錯誤回報給 <%s>。\n"
+
+#: lib/version-etc.c:182
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>.\n"
+msgstr "%s 首頁:<http://www.gnu.org/software/%s/>。\n"
+
+#: lib/version-etc.c:184
+msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n"
+msgstr "使用 GNU 軟體的一般說明:<http://www.gnu.org/gethelp/>。\n"
+
+#: rmt/rmt.c:142
+msgid "Input string too long"
+msgstr "輸入字串太長"
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr "數字語法錯誤"
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd:無法配置緩衝區空間\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr "無法配置緩衝區空間"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "請嘗試「%s --help」以獲得更多資訊。\n"
+
+#: rmt/rmt.c:308
+#, 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"
+
+#: rmt/rmt.c:397
+msgid "Seek offset error"
+msgstr "尋覓偏移值錯誤"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+msgid "Seek offset out of range"
+msgstr "尋覓偏移值超出範圍"
+
+#: rmt/rmt.c:428
+msgid "Seek direction out of range"
+msgstr "尋覓方向超出範圍"
+
+#: rmt/rmt.c:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd:檔案突然結束\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "檔案突然結束"
+
+#: rmt/rmt.c:672
+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
+msgid "This does not look like a tar archive"
+msgstr "這個看起來不像 tar 保存檔"
+
+#: src/buffer.c:354 src/buffer.c:363
+msgid "Total bytes written"
+msgstr "已寫入位元組總數"
+
+#: src/buffer.c:361 src/buffer.c:375
+msgid "Total bytes read"
+msgstr "已讀取位元組總數"
+
+#: src/buffer.c:365
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "已刪除位元組總數:%s\n"
+
+#: src/buffer.c:454
+msgid "(pipe)"
+msgstr "(管線)"
+
+#: src/buffer.c:477
+msgid "Invalid value for record_size"
+msgstr "無效的記錄大小"
+
+#: src/buffer.c:480
+msgid "No archive name given"
+msgstr "沒有指定保存檔名稱"
+
+#: src/buffer.c:524
+msgid "Cannot verify stdin/stdout archive"
+msgstr "無法檢驗標準輸出入保存檔"
+
+#: src/buffer.c:538
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "保存檔被壓縮過。使用 %s 選項"
+
+#: src/buffer.c:593 src/tar.c:2317
+msgid "Cannot update compressed archives"
+msgstr "無法更新壓縮的保存檔"
+
+#: src/buffer.c:672
+msgid "At beginning of tape, quitting now"
+msgstr "位於磁帶起始部份,立刻退出"
+
+#: src/buffer.c:678
+msgid "Too many errors, quitting"
+msgstr "太多錯誤,離開中"
+
+#: src/buffer.c:697
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "記錄大小 = %lu 區塊"
+
+#: src/buffer.c:718
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "保存檔中未排列的區塊 (%lu 位元組)"
+
+#: src/buffer.c:795
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "無法倒退保存檔檔案;沒有 -i 也許會無法讀取"
+
+#: src/buffer.c:827
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek 無法在記錄分界處停止"
+
+#: src/buffer.c:881
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s:包含無效的卷冊號碼"
+
+#: src/buffer.c:916
+msgid "Volume number overflow"
+msgstr "卷冊號碼已滿"
+
+#: src/buffer.c:931
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "準備好卷冊 #%d 以完成 %s 並按下 return: "
+
+#: src/buffer.c:937
+msgid "EOF where user reply was expected"
+msgstr "到達期待使用者回答的檔案末端"
+
+#: src/buffer.c:942 src/buffer.c:974
+msgid "WARNING: Archive is incomplete"
+msgstr "警告:保存檔不完整"
+
+#: src/buffer.c:956
+#, 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 放棄打包\n"
+" y 或 newline 繼續作業\n"
+
+#: src/buffer.c:961
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! 衍生一個子命令殼\n"
+
+#: src/buffer.c:962
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? 列印這個清單\n"
+
+#: src/buffer.c:969
+msgid "No new volume; exiting.\n"
+msgstr "沒有新卷冊;離開。\n"
+
+#: src/buffer.c:1002
+msgid "File name not specified. Try again.\n"
+msgstr "檔案名稱尚未指定。再次嘗試。\n"
+
+#: src/buffer.c:1015
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "無效的輸入。按下 ? 以獲得說明。\n"
+
+#: src/buffer.c:1066
+#, c-format
+msgid "%s command failed"
+msgstr "%s 命令失敗"
+
+#: src/buffer.c:1221
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s 在本卷冊中可能連續:標頭含有截斷的名稱"
+
+#: src/buffer.c:1225
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s 在本卷冊中並不連續"
+
+#: src/buffer.c:1239
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s 的大小有錯 (%s != %s + %s)"
+
+#: src/buffer.c:1253
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "本卷冊已超出序列 (%s - %s !=%s)"
+
+#: src/buffer.c:1303
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "保存檔未標誌為符合 %s"
+
+#: src/buffer.c:1306
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "卷冊 %s 不符合 %s"
+
+#: src/buffer.c:1402
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s:檔名太長,無法儲存於 GNU 多重卷冊標頭之中,已截斷"
+
+#: src/buffer.c:1621
+msgid "write did not end on a block boundary"
+msgstr "並未於區段界限結束寫入"
+
+#: src/compare.c:96
+#, 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
+msgid "Contents differ"
+msgstr "內容不同"
+
+#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372
+#: src/list.c:1323
+msgid "Unexpected EOF in archive"
+msgstr "未預期的保存檔結尾"
+
+#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412
+msgid "File type differs"
+msgstr "檔案類型不同"
+
+#: src/compare.c:183 src/compare.c:203 src/compare.c:328
+msgid "Mode differs"
+msgstr "模式不同"
+
+#: src/compare.c:206
+msgid "Uid differs"
+msgstr "Uid 號碼不同"
+
+#: src/compare.c:208
+msgid "Gid differs"
+msgstr "Gid 號碼不同"
+
+#: src/compare.c:212
+msgid "Mod time differs"
+msgstr "修改時間不同"
+
+#: src/compare.c:216 src/compare.c:420
+msgid "Size differs"
+msgstr "大小不同"
+
+#: src/compare.c:270
+#, c-format
+msgid "Not linked to %s"
+msgstr "並未鏈結至 %s"
+
+#: src/compare.c:293
+msgid "Symlink differs"
+msgstr "符號連結不同"
+
+#: src/compare.c:322
+msgid "Device number differs"
+msgstr "裝置編號不同"
+
+#: src/compare.c:462
+#, c-format
+msgid "Verify "
+msgstr "驗證 "
+
+#: src/compare.c:469
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s:不明檔案類型「%c」,會以普通檔案的方式作比較"
+
+#: src/compare.c:524
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "保存檔包含前置文字被移除的檔案名稱。"
+
+#: src/compare.c:526
+msgid "Verification may fail to locate original files."
+msgstr "查核動作可能無法找到原始檔案"
+
+#: src/compare.c:596
+#, 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
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "位於 %s 的孤立零值區塊"
+
+#: src/create.c:67
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s:包含一個快取目錄標記 %s; %s"
+
+#: src/create.c:272
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "數值 %s 已超出 %s 的範圍 %s..%s;以 %s 替代中"
+
+#: src/create.c:278
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "數值 %s 已超出 %s 的範圍 %s..%s"
+
+#: src/create.c:338
+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);未傾印"
+
+#: src/create.c:634
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s:檔名太長 (無法分割);未傾印"
+
+#: src/create.c:661
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s:鏈結名稱太長;未傾印"
+
+#: src/create.c:1076
+#, 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
+#, 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
+msgid "contents not dumped"
+msgstr "內容無法傾印"
+
+#: src/create.c:1361
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s:不明檔案類型;忽略該檔案"
+
+#: src/create.c:1464
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "失去至 %s 的連結。\n"
+
+#: src/create.c:1535
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s:檔案沒有變更;未傾印"
+
+#: src/create.c:1543
+#, 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
+msgid "directory not dumped"
+msgstr "目錄未傾印"
+
+#: src/create.c:1659
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s:檔案在讀取時已變更"
+
+#: src/create.c:1739
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s:忽略通訊端"
+
+#: src/create.c:1744
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s:忽略匣門"
+
+#: src/delete.c:216 src/list.c:181 src/update.c:170
+msgid "Skipping to next header"
+msgstr "跳至下一個標頭"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "從保存檔中刪除無標頭者"
+
+#: src/extract.c:198
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s:難以確信的舊時間戳記 %s"
+
+#: src/extract.c:215
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s:時間戳記 %s 代表未來的 %s 秒"
+
+#: src/extract.c:395
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s:產生目錄時有未預期的不一致"
+
+#: src/extract.c:588
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s:解開目錄狀態之前已更改了名稱"
+
+#: src/extract.c:724
+msgid "Extracting contiguous files as regular files"
+msgstr "正在解開連續檔案為正常檔案"
+
+#: src/extract.c:997
+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
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s:無法解開 -- 檔案延續自其他卷冊"
+
+#: src/extract.c:1150 src/list.c:1090
+msgid "Unexpected long name header"
+msgstr "未預期的長名稱標頭"
+
+#: src/extract.c:1156
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s:不明檔案類型「%c」,會以普通檔案的方式解開資料"
+
+#: src/extract.c:1181
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "目前的 %s 較新或相同"
+
+#: src/extract.c:1227
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s:之前無法備份這個檔案"
+
+#: src/extract.c:1355
+#, 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
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s:目錄已從 %s 重新命名"
+
+#: src/incremen.c:460
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s:目錄已被重新命名"
+
+#: src/incremen.c:505
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s:目錄是新的"
+
+#: src/incremen.c:903 src/incremen.c:920
+msgid "Invalid time stamp"
+msgstr "無效的時間戳記"
+
+#: src/incremen.c:959
+msgid "Invalid modification time (seconds)"
+msgstr "無效的修改時間 (秒)"
+
+#: src/incremen.c:974
+msgid "Invalid modification time (nanoseconds)"
+msgstr "無效的修改時間 (奈秒)"
+
+#: src/incremen.c:994
+msgid "Invalid device number"
+msgstr "無效的裝置號碼"
+
+#: src/incremen.c:1009
+msgid "Invalid inode number"
+msgstr "無效的 inode 號碼"
+
+#: src/incremen.c:1060 src/incremen.c:1097
+msgid "Field too long while reading snapshot file"
+msgstr "讀取快照檔時欄位太長"
+
+#: src/incremen.c:1067 src/incremen.c:1105
+msgid "Read error in snapshot file"
+msgstr "讀取快照檔時發生錯誤"
+
+#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161
+#: src/incremen.c:1219
+msgid "Unexpected EOF in snapshot file"
+msgstr "未預期的快照檔結尾"
+
+#: src/incremen.c:1076 src/incremen.c:1116
+msgid "Unexpected field value in snapshot file"
+msgstr "未預期的快照檔欄位值"
+
+#: src/incremen.c:1211
+msgid "Missing record terminator"
+msgstr "缺少記錄終止符號"
+
+#: src/incremen.c:1262 src/incremen.c:1265
+msgid "Bad incremental file format"
+msgstr "不當的遞增檔案格式"
+
+#: src/incremen.c:1284
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "不受支援的遞增格式版本:%<PRIuMAX>"
+
+#: src/incremen.c:1439
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "異常的傾印目錄:預期「%c」但是找到 %#3o"
+
+#: src/incremen.c:1449
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "異常的傾印目錄:「X」重製"
+
+#: src/incremen.c:1462
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "異常的傾印目錄:在「R」中有空的名稱"
+
+#: src/incremen.c:1475
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "異常的傾印目錄:「R」未在「T」之前"
+
+#: src/incremen.c:1481
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "異常的傾印目錄:在「T」中有空的名稱"
+
+#: src/incremen.c:1501
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "異常的傾印目錄:預期「%c」但是發現資料的結束"
+
+#: src/incremen.c:1507
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "異常的傾印目錄:「X」永不使用"
+
+#: src/incremen.c:1551
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "無法使用模板 %s 建立暫存目錄"
+
+#: src/incremen.c:1613
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s:未能清空目錄;無法顯示狀態"
+
+#: src/incremen.c:1626
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s:目錄位於不同的裝置;無法清空"
+
+#: src/incremen.c:1634
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s:正在刪除 %s\n"
+
+#: src/incremen.c:1639
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s:無法移除"
+
+#: src/list.c:113
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s:省略中"
+
+#: src/list.c:131
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "區塊 %s:** 空值區塊 **\n"
+
+#: src/list.c:155
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "區塊 %s:** 檔案結尾 **\n"
+
+#: src/list.c:178 src/list.c:1063 src/list.c:1291
+#, c-format
+msgid "block %s: "
+msgstr "區塊 %s:"
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:671
+#, 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
+#, 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
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "保存檔八進位數值 %.*s 超出 %s 範圍"
+
+#: src/list.c:758
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "保存檔含有過時的 base-64 標頭"
+
+#: src/list.c:772
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "保存檔有號 base-64 字串 %s 超出 %s 範圍"
+
+#: src/list.c:803
+#, 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
+#, 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
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "保存檔值 %s 已超出 %s 的範圍 %s..%s"
+
+#: src/list.c:1226
+#, c-format
+msgid " link to %s\n"
+msgstr " 連結到 %s\n"
+
+#: src/list.c:1234
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " 不明檔案類型 %s\n"
+
+#: src/list.c:1252
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--長 連 結--\n"
+
+#: src/list.c:1256
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--長 名 稱--\n"
+
+#: src/list.c:1260
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--卷 冊 標 頭--\n"
+
+#: src/list.c:1268
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--於第 %s 位元組繼續--\n"
+
+#: src/list.c:1296
+msgid "Creating directory:"
+msgstr "正在建立目錄:"
+
+#: src/misc.c:456
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "正在將 %s 重新命名為 %s\n"
+
+#: src/misc.c:465 src/misc.c:483
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s:無法重新命名為 %s"
+
+#: src/misc.c:488
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "將 %s 的名稱還原為 %s\n"
+
+#: src/misc.c:615
+msgid "Cannot save working directory"
+msgstr "無法儲存工作目錄"
+
+#: src/misc.c:621
+msgid "Cannot change working directory"
+msgstr "無法變更工作目錄"
+
+#: src/misc.c:711
+msgid "child process"
+msgstr "子進程"
+
+#: src/misc.c:720
+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"
+msgstr "使用 --wildcards 以啟用式樣匹配,或 --no-wildcards 來"
+
+#: src/names.c:597
+msgid "suppress this warning."
+msgstr "抑制這個警告。"
+
+#: src/names.c:612 src/names.c:630
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s:在保存檔中找不到"
+
+#: src/names.c:615
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s:要求項目在保存檔中找不到"
+
+#: src/tar.c:79
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "選項「-%s」和「-%s」兩者都需要標準輸入"
+
+#: src/tar.c:156
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s:無效的保存檔格式"
+
+#: src/tar.c:180
+msgid "GNU features wanted on incompatible archive format"
+msgstr "不能在不兼容的保存檔格式中使用 GNU 功能"
+
+#: src/tar.c:241
+#, 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
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"範例:\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
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"備份檔的後置字串為‘~’,除非以 --suffix 選項或是 SIMPLE_BACKUP_SUFFIX\n"
+"環境變數指定。版本控制的方式可透過 --backup 選項或 VERSION_CONTROL 環境\n"
+"變數來選擇。可用的變數值為:\n"
+"\n"
+" none, off 永不製作備份 t, numbered 備份檔會加上數字\n"
+" nil, existing 若有數字的備份檔已經存在則使用數字,否則使用普通方式備份\n"
+" never, simple 永遠使用普通方式備份\n"
+
+#: src/tar.c:370
+msgid "Main operation mode:"
+msgstr "主要操作模式:"
+
+#: src/tar.c:373
+msgid "list the contents of an archive"
+msgstr "列出保存檔的內容"
+
+#: src/tar.c:375
+msgid "extract files from an archive"
+msgstr "從保存檔中解開檔案"
+
+#: src/tar.c:378
+msgid "create a new archive"
+msgstr "建立新的保存檔"
+
+#: src/tar.c:380
+msgid "find differences between archive and file system"
+msgstr "在保存檔與檔案系統之間找出差異"
+
+#: src/tar.c:383
+msgid "append files to the end of an archive"
+msgstr "加入檔案到保存檔末端"
+
+#: src/tar.c:385
+msgid "only append files newer than copy in archive"
+msgstr "只加入比保存檔中複本還新的檔案"
+
+#: src/tar.c:387
+msgid "append tar files to an archive"
+msgstr "加入 tar 檔案到保存檔中"
+
+#: src/tar.c:390
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "從保存檔中刪除 (並非在磁帶上!)"
+
+#: src/tar.c:392
+msgid "test the archive volume label and exit"
+msgstr "測試保存檔卷冊標籤然後離開"
+
+#: src/tar.c:397
+msgid "Operation modifiers:"
+msgstr "運算變更項:"
+
+#: src/tar.c:400
+msgid "handle sparse files efficiently"
+msgstr "有效率地處理稀疏檔案"
+
+#: src/tar.c:401
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:402
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "設定稀疏格式版本以使用 (意味著 --sparse)"
+
+#: src/tar.c:404
+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
+msgid "handle new GNU-format incremental backup"
+msgstr "處理新型 GNU-格式之遞增備份"
+
+#: src/tar.c:408
+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
+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 "只有對於每一個在保存檔中第 NUM 個出現的檔案才會處理。此選項只有與 --delete、--diff、--extract 或 --list 等次命令之一合併使用時才有效,而且要經由命令列或是 -T 選項來提供一個檔案序列。預設的數目是 1。"
+
+#: src/tar.c:416
+msgid "archive is seekable"
+msgstr "保存檔是可尋指的"
+
+#: src/tar.c:418
+msgid "do not check device numbers when creating incremental archives"
+msgstr "不檢查裝置數量時建立遞增檔案"
+
+#: src/tar.c:421
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "檢查裝置數量時建立遞增檔案 (預設)"
+
+#: src/tar.c:427
+msgid "Overwrite control:"
+msgstr "覆寫控制:"
+
+#: src/tar.c:430
+msgid "attempt to verify the archive after writing it"
+msgstr "嘗試在寫入之後驗證保存檔"
+
+#: src/tar.c:432
+msgid "remove files after adding them to the archive"
+msgstr "在加入檔案至保存檔之後移除它們"
+
+#: src/tar.c:434
+msgid "don't replace existing files when extracting"
+msgstr "解開時不要替換既有的檔案"
+
+#: src/tar.c:436
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "不要替換既有且比它們在保存檔中複本還新的檔案"
+
+#: src/tar.c:438
+msgid "overwrite existing files when extracting"
+msgstr "解開時覆寫既有檔案"
+
+#: src/tar.c:440
+msgid "remove each file prior to extracting over it"
+msgstr "在解開並覆寫檔案之前先移除它"
+
+#: src/tar.c:442
+msgid "empty hierarchies prior to extracting directory"
+msgstr "在解開目錄之前先清空階層結構"
+
+#: src/tar.c:444
+msgid "preserve metadata of existing directories"
+msgstr "保留既有目錄的後設資料"
+
+#: src/tar.c:446
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "解開時覆寫既有目錄的後設資料 (預設)"
+
+#: src/tar.c:452
+msgid "Select output stream:"
+msgstr "選取輸出串流:"
+
+#: src/tar.c:455
+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
+msgid "COMMAND"
+msgstr "命令"
+
+#: src/tar.c:457
+msgid "pipe extracted files to another program"
+msgstr "將解開的檔案管線引導到另外的程式"
+
+#: src/tar.c:459
+msgid "ignore exit codes of children"
+msgstr "忽略子進程的離開代碼"
+
+#: src/tar.c:461
+msgid "treat non-zero exit codes of children as error"
+msgstr "將子進程的非零離開代碼視為錯誤"
+
+#: src/tar.c:466
+msgid "Handling of file attributes:"
+msgstr "檔案屬性的處理:"
+
+#: src/tar.c:469
+msgid "force NAME as owner for added files"
+msgstr "強制以 NAME 做為加入檔案的擁有者"
+
+#: src/tar.c:471
+msgid "force NAME as group for added files"
+msgstr "強制以 NAME 做為加入檔案的群組"
+
+#: src/tar.c:472 src/tar.c:671
+msgid "DATE-OR-FILE"
+msgstr "檔案的日期"
+
+#: src/tar.c:473
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "將加入檔案的 mtime 設定為 DATE-OR-FILE"
+
+#: src/tar.c:474
+msgid "CHANGES"
+msgstr "變更"
+
+#: src/tar.c:475
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "強制將 (符號) 模式 CHANGES 用於已加入檔案"
+
+#: src/tar.c:477
+msgid "METHOD"
+msgstr "方法"
+
+#: src/tar.c:478
+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
+msgid "don't extract file modified time"
+msgstr "不要解開檔案的修改時間"
+
+#: src/tar.c:484
+msgid "try extracting files with the same ownership"
+msgstr "嘗試以相同的擁有身分去解開檔案"
+
+#: src/tar.c:486
+msgid "extract files as yourself"
+msgstr "以自己的身分解開檔案"
+
+#: src/tar.c:488
+msgid "always use numbers for user/group names"
+msgstr "總是使用數字做為使用者/群組名稱"
+
+#: src/tar.c:490
+msgid "extract information about file permissions (default for superuser)"
+msgstr "解開檔案權限相關資訊 (預設用於超級使用者)"
+
+#: src/tar.c:494
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "從保存檔解開權限時套用使用者 umask (預設用於一般使用者)"
+
+#: src/tar.c:496
+msgid "sort names to extract to match archive"
+msgstr "解開時依名稱排序以符合保存檔"
+
+#: src/tar.c:499
+msgid "same as both -p and -s"
+msgstr "等同於指定 -p 與 -s"
+
+#: src/tar.c:501
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "延遲設定解開目錄的修改時間和權限,直到解開結束"
+
+#: src/tar.c:504
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "取消 --delay-directory-restore 選項的效果"
+
+#: src/tar.c:509
+msgid "Device selection and switching:"
+msgstr "裝置選擇與切換:"
+
+#: src/tar.c:511
+msgid "ARCHIVE"
+msgstr "保存檔"
+
+#: src/tar.c:512
+msgid "use archive file or device ARCHIVE"
+msgstr "使用 ARCHIVE 檔案或 ARCHIVE 裝置"
+
+#: src/tar.c:514
+msgid "archive file is local even if it has a colon"
+msgstr "即使具有冒號,保存檔檔案仍位於本地端"
+
+#: src/tar.c:516
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "使用給定的 rmt COMMAND 以代替 rmt"
+
+#: src/tar.c:518
+msgid "use remote COMMAND instead of rsh"
+msgstr "使用遠端 COMMAND 以代替 rsh"
+
+#: src/tar.c:522
+msgid "specify drive and density"
+msgstr "指定磁碟機與記錄密度"
+
+#: src/tar.c:536
+msgid "create/list/extract multi-volume archive"
+msgstr "建立/列表/解開 多重卷冊的保存檔"
+
+#: src/tar.c:538
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "在寫入 NUMBER x 1024 位元組之後更換磁帶"
+
+#: src/tar.c:540
+msgid "run script at end of each tape (implies -M)"
+msgstr "在每卷磁帶末端執行命令稿 (意指 -M)"
+
+#: src/tar.c:543
+msgid "use/update the volume number in FILE"
+msgstr "使用/更新 FILE 中的卷冊號碼"
+
+#: src/tar.c:548
+msgid "Device blocking:"
+msgstr "裝置分區:"
+
+#: src/tar.c:550
+msgid "BLOCKS"
+msgstr "區塊"
+
+#: src/tar.c:551
+msgid "BLOCKS x 512 bytes per record"
+msgstr "每筆記錄含有 BLOCKS x 512 位元組"
+
+#: src/tar.c:553
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "每筆記錄 SIZE 位元組,為 512 的倍數"
+
+#: src/tar.c:555
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "忽略保存檔中零值的區塊 (意指 EOF)"
+
+#: src/tar.c:557
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "讀取時重新分區 (用於 4.2BSD 管線)"
+
+#: src/tar.c:562
+msgid "Archive format selection:"
+msgstr "保存檔格式選擇:"
+
+#: src/tar.c:564 tests/genfile.c:152
+msgid "FORMAT"
+msgstr "格式"
+
+#: src/tar.c:565
+msgid "create archive of the given format"
+msgstr "以給定格式建立保存檔"
+
+#: src/tar.c:567
+msgid "FORMAT is one of the following:"
+msgstr "符合下列任一 FORMAT:"
+
+#: src/tar.c:568
+msgid "old V7 tar format"
+msgstr "舊式 V7 tar 格式"
+
+#: src/tar.c:571
+msgid "GNU format as per tar <= 1.12"
+msgstr "tar <= 1.12 之 GNU 格式"
+
+#: src/tar.c:573
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x 格式"
+
+#: src/tar.c:575
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) 格式"
+
+#: src/tar.c:577
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) 格式"
+
+#: src/tar.c:578
+msgid "same as pax"
+msgstr "等同 pax"
+
+#: src/tar.c:581
+msgid "same as --format=v7"
+msgstr "等同 --format=v7"
+
+#: src/tar.c:584
+msgid "same as --format=posix"
+msgstr "等同 --format=posix"
+
+#: src/tar.c:585
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "關鍵字[[:]=值][,關鍵字[[:]=值]…]"
+
+#: src/tar.c:586
+msgid "control pax keywords"
+msgstr "控制 pax 的關鍵字"
+
+#: src/tar.c:587
+msgid "TEXT"
+msgstr "文字"
+
+#: src/tar.c:588
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "以卷冊名稱 NAME 來建立保存檔。在列表/解開時,使用 TEXT 做為卷冊名稱的萬用比對式樣"
+
+#: src/tar.c:593
+msgid "Compression options:"
+msgstr "壓縮選項:"
+
+#: src/tar.c:595
+msgid "use archive suffix to determine the compression program"
+msgstr "利用保存檔字尾決定壓縮程式"
+
+#: src/tar.c:597
+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
+msgid "filter the archive through xz"
+msgstr "保存檔以 xz 過濾處理"
+
+#: src/tar.c:614
+msgid "PROG"
+msgstr "程式"
+
+#: src/tar.c:615
+msgid "filter through PROG (must accept -d)"
+msgstr "以 PROG 過濾處理 (必須接受 -d)"
+
+#: src/tar.c:620
+msgid "Local file selection:"
+msgstr "本機檔案選擇:"
+
+#: src/tar.c:623
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "將給定的 FILE 加入保存檔 (如果它的名稱以減號開始時就很有用)"
+
+#: src/tar.c:624
+msgid "DIR"
+msgstr "目錄"
+
+#: src/tar.c:625
+msgid "change to directory DIR"
+msgstr "更改至目錄 DIR"
+
+#: src/tar.c:627
+msgid "get names to extract or create from FILE"
+msgstr "從 FILE 中取得要解開或建立的名稱"
+
+#: src/tar.c:629
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T 讀取零值終結的名稱,停用 -C"
+
+#: src/tar.c:631
+msgid "disable the effect of the previous --null option"
+msgstr "停用先前 --null 選項的效果"
+
+#: src/tar.c:633
+msgid "unquote filenames read with -T (default)"
+msgstr "去除以 -T 讀取的檔名引號 (預設)"
+
+#: src/tar.c:635
+msgid "do not unquote filenames read with -T"
+msgstr "不去除以 -T 讀取的檔名引號"
+
+#: src/tar.c:636 tests/genfile.c:135
+msgid "PATTERN"
+msgstr "式樣"
+
+#: src/tar.c:637
+msgid "exclude files, given as a PATTERN"
+msgstr "排除給定式樣的檔案"
+
+#: src/tar.c:639
+msgid "exclude patterns listed in FILE"
+msgstr "排除 FILE 中所列出的式樣"
+
+#: src/tar.c:641
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "排除包含 CACHEDIR.TAG 的目錄內容,除了該標記檔案本身"
+
+#: src/tar.c:644
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "排除包含 CACHEDIR.TAG 的目錄之下所有東西"
+
+#: src/tar.c:647
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "排除包含 CACHEDIR.TAG 的目錄"
+
+#: src/tar.c:649
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "排除包含 FILE 的目錄內容,除了該檔案本身"
+
+#: src/tar.c:652
+msgid "exclude everything under directories containing FILE"
+msgstr "排除包含 FILE 的目錄之下所有東西"
+
+#: src/tar.c:654
+msgid "exclude directories containing FILE"
+msgstr "排除包含 FILE 的目錄"
+
+#: src/tar.c:656
+msgid "exclude version control system directories"
+msgstr "排除版本控制系統目錄"
+
+#: src/tar.c:658
+msgid "avoid descending automatically in directories"
+msgstr "避免自動在目錄中遞降"
+
+#: src/tar.c:660
+msgid "stay in local file system when creating archive"
+msgstr "建立保存檔時保持在本地檔案系統中"
+
+#: src/tar.c:662
+msgid "recurse into directories (default)"
+msgstr "遞迴進入目錄 (預設)"
+
+#: src/tar.c:664
+msgid "don't strip leading `/'s from file names"
+msgstr "不要從檔案名稱中截去前導的 '/'"
+
+#: src/tar.c:666
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "跟隨符號連結;保存和傾印它們所指涉的檔案"
+
+#: src/tar.c:668
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "跟隨硬式連結;保存和傾印它們所參考的檔案"
+
+#: src/tar.c:669
+msgid "MEMBER-NAME"
+msgstr "成員-名稱"
+
+#: src/tar.c:670
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "從保存檔中名為 MEMBER-NAME 的成員開始"
+
+#: src/tar.c:672
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "只儲存比 DATE-OF-FILE 還新的檔案"
+
+#: src/tar.c:674
+msgid "DATE"
+msgstr "日期"
+
+#: src/tar.c:675
+msgid "compare date and time when data changed only"
+msgstr "只有當資料變更時才比較日期和時間"
+
+#: src/tar.c:676
+msgid "CONTROL"
+msgstr "控制"
+
+#: src/tar.c:677
+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
+msgid "STRING"
+msgstr "字串"
+
+#: src/tar.c:679
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "移除之前先備份並覆寫常用後置文字 (「~」除非被環境變數 SIMPLE_BACKUP_SUFFIX 所蓋過)"
+
+#: src/tar.c:684
+msgid "File name transformations:"
+msgstr "檔案名稱變換:"
+
+#: src/tar.c:686
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "從檔案名稱中截去以 NUMBER 為首的成分"
+
+#: src/tar.c:688
+msgid "EXPRESSION"
+msgstr "表示式"
+
+#: src/tar.c:689
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "利用 sed 將 EXPRESSION 替代為變換檔案名稱"
+
+#: src/tar.c:695
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "檔案名稱吻合選項 (同時影響排除和包含式樣同者):"
+
+#: src/tar.c:698
+msgid "ignore case"
+msgstr "忽略大小寫"
+
+#: src/tar.c:700
+msgid "patterns match file name start"
+msgstr "吻合檔案名稱開頭的式樣"
+
+#: src/tar.c:702
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "式樣吻合任何「/」之後的式樣 (預設排除)"
+
+#: src/tar.c:704
+msgid "case sensitive matching (default)"
+msgstr "大小寫需相符的吻合 (預設)"
+
+#: src/tar.c:706
+msgid "use wildcards (default for exclusion)"
+msgstr "使用萬用字元 (預設排除)"
+
+#: src/tar.c:708
+msgid "verbatim string matching"
+msgstr "逐字進行吻合"
+
+#: src/tar.c:710
+msgid "wildcards do not match `/'"
+msgstr "萬用字元不會吻合「/」"
+
+#: src/tar.c:712
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "萬用字元會吻合「/」(預設排除)"
+
+#: src/tar.c:717
+msgid "Informative output:"
+msgstr "富含資訊的輸出:"
+
+#: src/tar.c:720
+msgid "verbosely list files processed"
+msgstr "詳細列出處理過的檔案"
+
+#: src/tar.c:722
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "每幾項記錄顯示一次進度訊息 (預設 10)"
+
+#: src/tar.c:724
+msgid "ACTION"
+msgstr "動作"
+
+#: src/tar.c:725
+msgid "execute ACTION on each checkpoint"
+msgstr "於每個查核點執行 ACTION"
+
+#: src/tar.c:728
+msgid "print a message if not all links are dumped"
+msgstr "如果並非所有連結都被傾印則印出訊息"
+
+#: src/tar.c:729
+msgid "SIGNAL"
+msgstr "信號"
+
+#: src/tar.c:730
+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
+msgid "print file modification dates in UTC"
+msgstr "以 UTC 格式印出檔案修改日期"
+
+#: src/tar.c:737
+msgid "send verbose output to FILE"
+msgstr "將詳細輸出送至 FILE"
+
+#: src/tar.c:739
+msgid "show block number within archive with each message"
+msgstr "每則訊息附帶顯示在保存檔中的區塊號碼"
+
+#: src/tar.c:741
+msgid "ask for confirmation for every action"
+msgstr "任何動作都要求確認"
+
+#: src/tar.c:744
+msgid "show tar defaults"
+msgstr "顯示 tar 預設值"
+
+#: src/tar.c:746
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "當表列或解開時,列出每一個不符合搜尋條件的目錄"
+
+#: src/tar.c:748
+msgid "show file or archive names after transformation"
+msgstr "顯示變換之後的檔案或保存檔名稱"
+
+#: src/tar.c:751
+msgid "STYLE"
+msgstr "樣式"
+
+#: src/tar.c:752
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "設定名稱引號樣式;參看下列的有效樣式值"
+
+#: src/tar.c:754
+msgid "additionally quote characters from STRING"
+msgstr "來自 STRING 的額外引號字元"
+
+#: src/tar.c:756
+msgid "disable quoting for characters from STRING"
+msgstr "停用來自字串的引號字元"
+
+#: src/tar.c:761
+msgid "Compatibility options:"
+msgstr "相容選項:"
+
+#: src/tar.c:764
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "當建立時,等同於 --old-archive。當解開時,等同於 --no-same-owner"
+
+#: src/tar.c:769
+msgid "Other options:"
+msgstr "其他選項:"
+
+#: src/tar.c:772
+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:930
+msgid "Conflicting compression options"
+msgstr "互相抵觸的壓縮選項"
+
+#: src/tar.c:986
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "不明的信號名稱:%s"
+
+#: src/tar.c:1010
+msgid "Date sample file not found"
+msgstr "找不到日期範例檔案"
+
+#: src/tar.c:1018
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "以 %s 代替不明的日期格式 %s"
+
+#: src/tar.c:1043
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "選項 %1$s: 以 %3$s 格式來處理日期「%2$s」"
+
+#: src/tar.c:1120
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s:已經讀取檔案清單"
+
+#: src/tar.c:1185
+#, 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:1253
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*這個* tar 預設為:\n"
+
+#: src/tar.c:1294
+msgid "Invalid blocking factor"
+msgstr "無效的分區因子"
+
+#: src/tar.c:1401
+msgid "Invalid tape length"
+msgstr "無效的磁帶長度"
+
+#: src/tar.c:1441
+msgid "More than one threshold date"
+msgstr "一個以上的限定日期"
+
+#: src/tar.c:1496 src/tar.c:1499
+msgid "Invalid sparse version value"
+msgstr "無效的稀疏版本值"
+
+#: src/tar.c:1584
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' 於這個平台未被支援"
+
+#: src/tar.c:1609
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint 值不是整數"
+
+#: src/tar.c:1710
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s:無效的群組"
+
+#: src/tar.c:1717
+msgid "Invalid mode given on option"
+msgstr "選項中的模式無效"
+
+#: src/tar.c:1774
+msgid "Invalid number"
+msgstr "無效的號碼"
+
+#: src/tar.c:1796
+msgid "Invalid owner"
+msgstr "無效的擁有者"
+
+#: src/tar.c:1822
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "--preserve 選項不宜再用,請以 --preserve-permissions --preserve-order 做為替代"
+
+#: src/tar.c:1832
+msgid "Invalid record size"
+msgstr "無效的記錄大小"
+
+#: src/tar.c:1835
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "記錄大小必須是 %d 的倍數。"
+
+#: src/tar.c:1872
+msgid "Invalid number of elements"
+msgstr "無效的元素號碼"
+
+#: src/tar.c:1892
+msgid "Only one --to-command option allowed"
+msgstr "只允許一個 --to-command 選項"
+
+#: src/tar.c:1968
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "異常的密度引數:%s"
+
+#: src/tar.c:1994
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "不明的密度:「%c」"
+
+#: src/tar.c:2011
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "此版本的 tar 不支援「-[0-7][ lmh]」選項"
+
+#: src/tar.c:2046
+msgid "[FILE]..."
+msgstr "[FILE]…"
+
+#: src/tar.c:2152
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "舊的選項「%c」需要一個引數。"
+
+#: src/tar.c:2234
+msgid "--occurrence is meaningless without a file list"
+msgstr "若無檔案列表,--occurrence 便不具意義"
+
+#: src/tar.c:2240
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence 無法於要求的作業模式中使用"
+
+#: src/tar.c:2270
+msgid "Multiple archive files require `-M' option"
+msgstr "指定多個保存檔時需要「-M」選項"
+
+#: src/tar.c:2275
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "無法同時使用 --listed-incremental 及 --newer"
+
+#: src/tar.c:2292
+#, 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
+msgid "Cannot verify multi-volume archives"
+msgstr "無法驗證多重卷冊的保存檔"
+
+#: src/tar.c:2307
+msgid "Cannot verify compressed archives"
+msgstr "無法驗證壓縮過的保存檔"
+
+#: src/tar.c:2313
+msgid "Cannot use multi-volume compressed archives"
+msgstr "無法使用多重卷冊的壓縮保存檔"
+
+#: src/tar.c:2319
+msgid "Cannot concatenate compressed archives"
+msgstr "無法串接壓縮過的檔案"
+
+#: src/tar.c:2331
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option 只能用於 POSIX 保存檔"
+
+#: src/tar.c:2349
+msgid "Volume length cannot be less than record size"
+msgstr "卷冊長度無法少於記錄大小"
+
+#: src/tar.c:2352
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order 與 --listed-incremental 不相容"
+
+#: src/tar.c:2363
+msgid "Cowardly refusing to create an empty archive"
+msgstr "低調拒絕建立空白的保存檔"
+
+#: src/tar.c:2388
+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:2528
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+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 位元組"
+
+#: src/xheader.c:156
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "關鍵字 %s 為未知或尚未實作"
+
+#: src/xheader.c:182
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "式樣 %s 無法使用"
+
+#: src/xheader.c:192
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "關鍵字 %s 無法被蓋過"
+
+#: src/xheader.c:496
+msgid "Malformed extended header: missing length"
+msgstr "異常的擴充標頭:長度缺少"
+
+#: src/xheader.c:504
+msgid "Extended header length is out of allowed range"
+msgstr "擴充標頭長度超出允許範圍"
+
+#: src/xheader.c:511
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "擴充標頭長度 %*s 超出範圍"
+
+#: src/xheader.c:523
+msgid "Malformed extended header: missing blank after length"
+msgstr "異常的擴充標頭:在長度之後缺少空白"
+
+#: src/xheader.c:531
+msgid "Malformed extended header: missing equal sign"
+msgstr "異常的擴充標頭:缺少等號"
+
+#: src/xheader.c:537
+msgid "Malformed extended header: missing newline"
+msgstr "異常的擴充標頭:缺少新列"
+
+#: src/xheader.c:574
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "忽略不明擴充標頭關鍵字「%s」"
+
+#: src/xheader.c:778
+#, 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
+#, 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
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "異常的擴充標頭:無效的 %s=%s"
+
+#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "異常的擴充標頭:過剩的 %s=%s"
+
+#: src/xheader.c:1326
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "異常的擴充標頭:無效的 %s:未預期的分隔符號 %c"
+
+#: src/xheader.c:1336
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "異常的擴充標頭:無效的 %s:奇怪的數值數量"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s:不是有效的時間限制"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s:不明查核點動作"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "寫入"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "讀取的查核點 %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile 在 GNU paxutils 測試套件中用於操控資料檔案。\n"
+"選項:\n"
+
+#: tests/genfile.c:126
+msgid "File creation options:"
+msgstr "檔案建立選項:"
+
+#: tests/genfile.c:127 tests/genfile.c:138
+msgid "SIZE"
+msgstr "大小"
+
+#: tests/genfile.c:128
+msgid "Create file of the given SIZE"
+msgstr "以給定 SIZE 建立檔案。"
+
+#: tests/genfile.c:130
+msgid "Write to file NAME, instead of standard output"
+msgstr "寫入檔案 NAME,以代替標準輸出"
+
+#: tests/genfile.c:132
+msgid "Read file names from FILE"
+msgstr "從 FILE 讀取檔案名稱"
+
+#: tests/genfile.c:134
+msgid "-T reads null-terminated names"
+msgstr "-T 讀取零值終結的名稱"
+
+#: tests/genfile.c:136
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "以給定 PATTERN 填充檔案。PATTERN 是「default」或「zeros」"
+
+#: tests/genfile.c:139
+msgid "Size of a block for sparse file"
+msgstr "用於稀疏檔案的區塊大小"
+
+#: tests/genfile.c:141
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "產生稀疏檔案。命令列的其餘部份給出檔案對映。"
+
+#: tests/genfile.c:143
+msgid "OFFSET"
+msgstr "偏移值"
+
+#: tests/genfile.c:144
+msgid "Seek to the given offset before writing data"
+msgstr "寫入資料之前尋指給定的偏移值"
+
+#: tests/genfile.c:150
+msgid "File statistics options:"
+msgstr "檔案統計選項:"
+
+#: tests/genfile.c:153
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "列印每個給定檔案的結構狀態內容。預設 FORMAT 為:"
+
+#: tests/genfile.c:160
+msgid "Synchronous execution options:"
+msgstr "同步的執行選項:"
+
+#: tests/genfile.c:163
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr "執行給定的 COMMAND。同時與 --checkpoint 和 --cut, --append, --touch 之一使用會有作用"
+
+#: tests/genfile.c:166
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "當達到查核點 NUMBER 時實行給定動作 (參看以下)"
+
+#: tests/genfile.c:169
+msgid "Set date for next --touch option"
+msgstr "設定後續 --touch 選項所需的日期"
+
+#: tests/genfile.c:172
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "顯示已執行的查核點以及 COMMAND 的離開狀態"
+
+#: tests/genfile.c:177
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "同步的執行動作。當到達由 --checkpoint 選項所給定的查核點編號時,這些動作會被執行。"
+
+#: tests/genfile.c:180
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "依先前 --length 選項指定的大小來截斷檔案 (如果它未被給定就是 0)"
+
+#: tests/genfile.c:184
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "附加 SIZE 位元組到 FILE。SIZE 是由先前 --length 選項所給定。"
+
+#: tests/genfile.c:187
+msgid "Update the access and modification times of FILE"
+msgstr "更新檔案的存取和修改時間"
+
+#: tests/genfile.c:190
+msgid "Execute COMMAND"
+msgstr "執行 COMMAND"
+
+#: tests/genfile.c:240
+#, c-format
+msgid "Invalid size: %s"
+msgstr "無效的大小:%s"
+
+#: tests/genfile.c:245
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "號碼超出允許的範圍:%s"
+
+#: tests/genfile.c:248
+#, c-format
+msgid "Negative size: %s"
+msgstr "負值大小:%s"
+
+#: tests/genfile.c:261 tests/genfile.c:558
+#, c-format
+msgid "stat(%s) failed"
+msgstr "狀態(%s) 失敗"
+
+#: tests/genfile.c:264
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "要求檔案長度 %lu,實際則是 %lu"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "created file is not sparse"
+msgstr "建立的不是稀疏檔案"
+
+#: tests/genfile.c:353
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "剖析數字接近「%s」時發生錯誤"
+
+#: tests/genfile.c:359
+#, c-format
+msgid "Unknown date format"
+msgstr "不明的日期格式"
+
+#: tests/genfile.c:382
+msgid "[ARGS...]"
+msgstr "[引數…]"
+
+#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512
+#: tests/genfile.c:662 tests/genfile.c:676
+#, c-format
+msgid "cannot open `%s'"
+msgstr "無法開啟「%s」"
+
+#: tests/genfile.c:425
+msgid "cannot seek"
+msgstr "無法尋指"
+
+#: tests/genfile.c:442
+#, c-format
+msgid "file name contains null character"
+msgstr "檔案名稱含有空字元"
+
+#: tests/genfile.c:507
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "無法於標準輸出產生稀疏檔案,使用 --file 選項"
+
+#: tests/genfile.c:585
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "不正確遮罩 (接近「%s」)"
+
+#: tests/genfile.c:591 tests/genfile.c:624
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "不明的欄位「%s」"
+
+#: tests/genfile.c:651
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "無法設定時間為「%s」"
+
+#: tests/genfile.c:805
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "成功離開命令\n"
+
+#: tests/genfile.c:807
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "命令以狀態 %d 失敗\n"
+
+#: tests/genfile.c:811
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "命令於信號 %d 終止\n"
+
+#: tests/genfile.c:813
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "命令於信號 %d 停止\n"
+
+#: tests/genfile.c:816
+#, c-format
+msgid "Command dumped core\n"
+msgstr "命令傾印核心\n"
+
+#: tests/genfile.c:819
+#, c-format
+msgid "Command terminated\n"
+msgstr "命令終止\n"
+
+#: tests/genfile.c:851
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat 需要檔案名稱"
+
+#: tests/genfile.c:864
+#, c-format
+msgid "too many arguments"
+msgstr "太多引數"
diff --git a/po/.reference/zh_TW.s1 b/po/.reference/zh_TW.s1
new file mode 100644
index 00000000..23a92b76
--- /dev/null
+++ b/po/.reference/zh_TW.s1
@@ -0,0 +1 @@
+0df0aeccc0a7de23c23ce7aead157cee711ae620 -
diff --git a/po/LINGUAS b/po/LINGUAS
new file mode 100644
index 00000000..b846e7a0
--- /dev/null
+++ b/po/LINGUAS
@@ -0,0 +1,36 @@
+bg
+ca
+cs
+da
+de
+el
+es
+et
+eu
+fi
+fr
+ga
+gl
+hr
+hu
+id
+it
+ja
+ko
+ky
+ms
+nb
+nl
+pl
+pt
+pt_BR
+ro
+ru
+sk
+sl
+sv
+tr
+uk
+vi
+zh_CN
+zh_TW
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
new file mode 100644
index 00000000..82c71eb9
--- /dev/null
+++ b/po/Makefile.in.in
@@ -0,0 +1,405 @@
+# -*- buffer-read-only: t -*- vi: set ro:
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2006 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU General Public
+# License but which still want to provide support for the GNU gettext
+# functionality.
+# Please note that the actual code of GNU gettext is covered by the GNU
+# General Public License and is *not* in the public domain.
+#
+# Origin: gettext-0.16
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datarootdir = @datarootdir@
+datadir = @datadir@
+localedir = @localedir@
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+
+# We use $(mkdir_p).
+# In automake <= 1.9.x, $(mkdir_p) is defined either as "mkdir -p --" or as
+# "$(mkinstalldirs)" or as "$(install_sh) -d". For these automake versions,
+# @install_sh@ does not start with $(SHELL), so we add it.
+# In automake >= 1.10, @mkdir_p@ is derived from ${MKDIR_P}, which is defined
+# either as "/path/to/mkdir -p" or ".../install-sh -c -d". For these automake
+# versions, $(mkinstalldirs) and $(install_sh) are unused.
+mkinstalldirs = $(SHELL) @install_sh@ -d
+install_sh = $(SHELL) @install_sh@
+MKDIR_P = @MKDIR_P@
+mkdir_p = @mkdir_p@
+
+GMSGFMT_ = @GMSGFMT@
+GMSGFMT_no = @GMSGFMT@
+GMSGFMT_yes = @GMSGFMT_015@
+GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
+MSGFMT_ = @MSGFMT@
+MSGFMT_no = @MSGFMT@
+MSGFMT_yes = @MSGFMT_015@
+MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
+XGETTEXT_ = @XGETTEXT@
+XGETTEXT_no = @XGETTEXT@
+XGETTEXT_yes = @XGETTEXT_015@
+XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
+MSGMERGE = msgmerge
+MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGINIT = msginit
+MSGCONV = msgconv
+MSGFILTER = msgfilter
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+UPDATEPOFILES = @UPDATEPOFILES@
+DUMMYPOFILES = @DUMMYPOFILES@
+DISTFILES.common = Makefile.in.in remove-potcdate.sin \
+$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in \
+$(POFILES) $(GMOFILES) \
+$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+
+# Makevars gets inserted here. (Don't remove this line!)
+
+.SUFFIXES:
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
+
+.po.mo:
+ @echo "$(MSGFMT) -c -o $@ $<"; \
+ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+
+.po.gmo:
+ @lang=`echo $* | sed -e 's,.*/,,'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
+ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+ sed -e '/^#/d' $< > t-$@
+ mv t-$@ $@
+
+
+all: all-@USE_NLS@
+
+all-yes: stamp-po
+all-no:
+
+# $(srcdir)/$(DOMAIN).pot is only created when needed. When xgettext finds no
+# internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
+# we don't want to bother translators with empty POT files). We assume that
+# LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
+# In this case, stamp-po is a nop (i.e. a phony target).
+
+# stamp-po is a timestamp denoting the last time at which the CATALOGS have
+# been loosely updated. Its purpose is that when a developer or translator
+# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
+# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
+# invocations of "make" will do nothing. This timestamp would not be necessary
+# if updating the $(CATALOGS) would always touch them; however, the rule for
+# $(POFILES) has been designed to not touch files that don't need to be
+# changed.
+stamp-po: $(srcdir)/$(DOMAIN).pot
+ test ! -f $(srcdir)/$(DOMAIN).pot || \
+ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+ @test ! -f $(srcdir)/$(DOMAIN).pot || { \
+ echo "touch stamp-po" && \
+ echo timestamp > stamp-poT && \
+ mv stamp-poT stamp-po; \
+ }
+
+# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+# otherwise packages like GCC can not be built if only parts of the source
+# have been downloaded.
+
+# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
+# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+ if test -n '$(MSGID_BUGS_ADDRESS)' || test '$(PACKAGE_BUGREPORT)' = '@'PACKAGE_BUGREPORT'@'; then \
+ msgid_bugs_address='$(MSGID_BUGS_ADDRESS)'; \
+ else \
+ msgid_bugs_address='$(PACKAGE_BUGREPORT)'; \
+ fi; \
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --msgid-bugs-address="$$msgid_bugs_address"
+ test ! -f $(DOMAIN).po || { \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+ else \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ else \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ }
+
+# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
+# every "make" invocation, only create it when it is missing.
+# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
+$(srcdir)/$(DOMAIN).pot:
+ $(MAKE) $(DOMAIN).pot-update
+
+# This target rebuilds a PO file if $(DOMAIN).pot has changed.
+# Note that a PO file is not touched if it doesn't need to be changed.
+$(POFILES): $(srcdir)/$(DOMAIN).pot
+ @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+ if test -f "$(srcdir)/$${lang}.po"; then \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
+ else \
+ $(MAKE) $${lang}.po-create; \
+ fi
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ $(INSTALL_DATA) $(srcdir)/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ for file in Makevars; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+install-data-no: all
+install-data-yes: all
+ $(mkdir_p) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
+ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+ fi; \
+ done; \
+ done
+
+install-strip: install
+
+installdirs: installdirs-exec installdirs-data
+installdirs-exec:
+installdirs-data: installdirs-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkdir_p) $(DESTDIR)$(gettextsrcdir); \
+ else \
+ : ; \
+ fi
+installdirs-data-no:
+installdirs-data-yes:
+ $(mkdir_p) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkdir_p) $(DESTDIR)$$dir; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ fi; \
+ done; \
+ done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall: uninstall-exec uninstall-data
+uninstall-exec:
+uninstall-data: uninstall-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+uninstall-data-no:
+uninstall-data-yes:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ done; \
+ done
+
+check: all
+
+info dvi ps pdf html tags TAGS ctags CTAGS ID:
+
+mostlyclean:
+ rm -f remove-potcdate.sed
+ rm -f stamp-poT
+ rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+ rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f stamp-po $(GMOFILES)
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir:
+ $(MAKE) update-po
+ @$(MAKE) dist2
+# This is a separate target because 'update-po' must be executed before.
+dist2: stamp-po $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ dists="$$dists Makevars.template"; \
+ fi; \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ dists="$$dists $(DOMAIN).pot stamp-po"; \
+ fi; \
+ if test -f $(srcdir)/ChangeLog; then \
+ dists="$$dists ChangeLog"; \
+ fi; \
+ for i in 0 1 2 3 4 5 6 7 8 9; do \
+ if test -f $(srcdir)/ChangeLog.$$i; then \
+ dists="$$dists ChangeLog.$$i"; \
+ fi; \
+ done; \
+ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+ for file in $$dists; do \
+ if test -f $$file; then \
+ cp -p $$file $(distdir) || exit 1; \
+ else \
+ cp -p $(srcdir)/$$file $(distdir) || exit 1; \
+ fi; \
+ done
+
+update-po: Makefile
+ $(MAKE) $(DOMAIN).pot-update
+ test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+ $(MAKE) update-gmo
+
+# General rule for creating PO files.
+
+.nop.po-create:
+ @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
+ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
+ exit 1
+
+# General rule for updating PO files.
+
+.nop.po-update:
+ @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ cd $(srcdir); \
+ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+$(DUMMYPOFILES):
+
+update-gmo: Makefile $(GMOFILES)
+ @:
+
+Makefile: Makefile.in.in Makevars $(top_builddir)/config.status @POMAKEFILEDEPS@
+ cd $(top_builddir) \
+ && $(SHELL) ./config.status $(subdir)/$@.in po-directories
+
+force:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po/Makevars b/po/Makevars
new file mode 100644
index 00000000..6694b1cd
--- /dev/null
+++ b/po/Makevars
@@ -0,0 +1,59 @@
+# -*- buffer-read-only: t -*- vi: set ro:
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+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\
+\
+ --flag=_:1:pass-c-format\
+ --flag=N_:1:pass-c-format\
+ --flag=error:3:c-format --flag=error_at_line:5:c-format\
+ --flag=asnprintf:3:c-format --flag=vasnprintf:3:c-format\
+ --flag=argp_error:2:c-format\
+ --flag=__argp_error:2:c-format\
+ --flag=argp_failure:4:c-format\
+ --flag=__argp_failure:4:c-format\
+ --flag=argp_fmtstream_printf:2:c-format\
+ --flag=__argp_fmtstream_printf:2:c-format\
+ $${end_of_xgettext_options+}
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
+# package. (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.) Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright. The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+# in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+# understood.
+# - Strings which make invalid assumptions about notation of date, time or
+# money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = bug-tar@gnu.org
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used. It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/po/Makevars.template b/po/Makevars.template
new file mode 100644
index 00000000..7e2a267d
--- /dev/null
+++ b/po/Makevars.template
@@ -0,0 +1,43 @@
+# -*- buffer-read-only: t -*- vi: set ro:
+# DO NOT EDIT! GENERATED AUTOMATICALLY!
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
+# package. (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.) Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright. The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+# in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+# understood.
+# - Strings which make invalid assumptions about notation of date, time or
+# money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS =
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used. It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/po/Rules-quot b/po/Rules-quot
new file mode 100644
index 00000000..9c2a995e
--- /dev/null
+++ b/po/Rules-quot
@@ -0,0 +1,47 @@
+# Special Makefile rules for English message catalogs with quotation marks.
+
+DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
+
+.SUFFIXES: .insert-header .po-update-en
+
+en@quot.po-create:
+ $(MAKE) en@quot.po-update
+en@boldquot.po-create:
+ $(MAKE) en@boldquot.po-update
+
+en@quot.po-update: en@quot.po-update-en
+en@boldquot.po-update: en@boldquot.po-update-en
+
+.insert-header.po-update-en:
+ @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
+ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ ll=`echo $$lang | sed -e 's/@.*//'`; \
+ LC_ALL=C; export LC_ALL; \
+ cd $(srcdir); \
+ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "creation of $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+en@quot.insert-header: insert-header.sin
+ sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
+
+en@boldquot.insert-header: insert-header.sin
+ sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
+
+mostlyclean: mostlyclean-quot
+mostlyclean-quot:
+ rm -f *.insert-header
diff --git a/po/bg.po b/po/bg.po
new file mode 100644
index 00000000..01a5ca95
--- /dev/null
+++ b/po/bg.po
@@ -0,0 +1,2412 @@
+# Bulgarian translation of GNU tar
+# Message catalog for coreutils
+# Copyright (C) 2006 Free Software Foundation, Inc.
+# This file is distributed under the same license as GNU tar.
+# Anton Zinoviev <zinoviev@debian.org>, 2000,2006.
+#
+# WARNING: Everywhere NUMBER is translated as N rather than as БРОЙ or ЧИСЛО
+#
+# This file should be sent to translation@iro.umontreal.ca with the
+# following subject line: TP-Robot tar-1.16.bg.po
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.16\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2006-10-21 18:41+0300\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"
+"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"
+
+#: lib/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "неправилен аргумент %s за %s"
+
+#: lib/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "двусмислен аргумент %s за %s"
+
+#: lib/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Допустими аргументи са:"
+
+#: lib/argp-help.c:148
+#, 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:221
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: параметърът ARGP_HELP_FMT изисква стойност"
+
+#: lib/argp-help.c:227
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: параметърът ARGP_HELP_FMT трябва да бъде положителен"
+
+#: lib/argp-help.c:236
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: непознат параметър ARGP_HELP_FMT"
+
+#: lib/argp-help.c:248
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Боклук в ARGP_HELP_FMT: %s"
+
+#: lib/argp-help.c:1229
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Аргументите, задължителните или незадължителни за дългите опции, са съответно задължителни или незадължителни и за кратките опции."
+
+#: lib/argp-help.c:1622
+msgid "Usage:"
+msgstr "Използване:"
+
+#: lib/argp-help.c:1626
+msgid " or: "
+msgstr " или: "
+
+#: lib/argp-help.c:1638
+msgid " [OPTION...]"
+msgstr " [ОПЦИЯ...]"
+
+#: lib/argp-help.c:1665
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Използвайте „%s --help“ or „%s --usage“ за повече информация.\n"
+
+#: lib/argp-help.c:1693 src/tar.c:1136
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr ""
+"Съобщавайте за програмни грешки на %s.\n"
+"За грешки в българския превод на <dict@fsa-bg.org>.\n"
+
+#: lib/argp-help.c:1912 lib/error.c:125
+msgid "Unknown system error"
+msgstr "Непозната системна грешка"
+
+#: lib/argp-parse.c:82 src/tar.c:717
+msgid "give this help list"
+msgstr "показва тази справка"
+
+#: lib/argp-parse.c:83 src/tar.c:718
+msgid "give a short usage message"
+msgstr "показва кратко съобщение за използването"
+
+#: lib/argp-parse.c:84 src/tar.c:450 src/tar.c:452 src/tar.c:521
+#: tests/genfile.c:126
+msgid "NAME"
+msgstr "ИМЕ"
+
+#: lib/argp-parse.c:84
+msgid "set the program name"
+msgstr "посочва името на програмата"
+
+#: lib/argp-parse.c:85
+msgid "SECS"
+msgstr "СЕК"
+
+#: lib/argp-parse.c:86 src/tar.c:723
+msgid "hang for SECS seconds (default 3600)"
+msgstr "спира за СЕК секунди (подразбира се 3600)"
+
+#: lib/argp-parse.c:143 src/tar.c:719
+msgid "print program version"
+msgstr "показва версията на програмата"
+
+#: lib/argp-parse.c:159
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Не е известна версията!?"
+
+#: lib/argp-parse.c:612
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Твърде много аргументи\n"
+
+#: lib/argp-parse.c:755
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Опцията би трябвало да е била разпозната!?"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: опцията „%s“ е двусмислена\n"
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: опцията „--%s“ не допуска аргумент\n"
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: опцията „%c%s“ не допуска аргумент\n"
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: опцията „%s“ изисква аргумент\n"
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: непозната опция „--%s“\n"
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: непозната опция „%c%s“\n"
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: неправилна опция -- %c\n"
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: неправилна опция -- %c\n"
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: опцията изисква аргумент -- %c\n"
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: опцията „-W %s“ е двусмислена\n"
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: опцията „-W %s“ не допуска аргумент\n"
+
+#: lib/human.c:484
+msgid "block size"
+msgstr "блоковият размер"
+
+#: lib/obstack.c:424 lib/obstack.c:426 lib/xalloc-die.c:35 src/extract.c:1361
+msgid "memory exhausted"
+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
+#, 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:211
+#, c-format
+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 байта"
+
+#: 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:132
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Премахва се началното „%s“ от имената на членове"
+
+#: lib/paxnames.c:133
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Премахва се началното „%s“ от целите на твърдите връзки"
+
+#: lib/paxnames.c:146
+msgid "Substituting `.' for empty member name"
+msgstr "Полага се „.“ вместо празно име на член"
+
+#: lib/paxnames.c:147
+msgid "Substituting `.' for empty hard link target"
+msgstr "Полага се „.“ вместо празна цел на твърда връзка"
+
+#. 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.
+#: lib/quotearg.c:243
+msgid "`"
+msgstr "„"
+
+#: lib/quotearg.c:244
+msgid "'"
+msgstr "“"
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr "^[дДoOyY]"
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr "^[нНkKnN]"
+
+#: 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:512
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Не може да се стартира отдалечена командна обвивка"
+
+#: rmt/rmt.c:142
+msgid "Input string too long"
+msgstr "Входният низ е твърде дълъг"
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr "Синтактична грешка в число"
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Не може да се задели място за буфер\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr "Не може да се задели място за буфер"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Използвайте „%s --help“ за повече информация.\n"
+
+#: rmt/rmt.c:308
+#, 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"
+
+#: rmt/rmt.c:315
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Съобщавайте за програмни грешки на <%s>.\n"
+
+#: rmt/rmt.c:397
+msgid "Seek offset error"
+msgstr "Грешка при позициониране"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+msgid "Seek offset out of range"
+msgstr "Мястото за позициониране е извън допустимия диапазон"
+
+#: rmt/rmt.c:428
+msgid "Seek direction out of range"
+msgstr "Посоката за отместване е недопустима"
+
+#: rmt/rmt.c:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Преждевременен край (eof)\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "Преждевременен край на файла"
+
+#: rmt/rmt.c:672
+msgid "Garbage command"
+msgstr "Непозната команда"
+
+#: src/buffer.c:317 src/buffer.c:326
+msgid "Total bytes written"
+msgstr "Общо записани байтове"
+
+#: src/buffer.c:324 src/buffer.c:338
+msgid "Total bytes read"
+msgstr "Общо прочетени байтове"
+
+#: src/buffer.c:328
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Общо изтрити байтове: %s\n"
+
+#: src/buffer.c:417
+msgid "(pipe)"
+msgstr "(канал)"
+
+#: src/buffer.c:440
+msgid "Invalid value for record_size"
+msgstr "Неправилна стойност на record_size"
+
+#: src/buffer.c:443
+msgid "No archive name given"
+msgstr "Не е посочено име на архив"
+
+#: src/buffer.c:487
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Не може да се проверяват архиви на стандартните вход/изход"
+
+#: src/buffer.c:500
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Архивът е компресиран. Използвайте опцията %s"
+
+#: src/buffer.c:547 src/tar.c:2131
+msgid "Cannot update compressed archives"
+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/buffer.c:597
+#, c-format
+msgid "Write checkpoint %u"
+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/buffer.c:603
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Контролна точка при четене %u"
+
+#: src/buffer.c:655
+msgid "At beginning of tape, quitting now"
+msgstr "В началото на лентата, край на изпълнението"
+
+#: src/buffer.c:661
+msgid "Too many errors, quitting"
+msgstr "Твърде много грешки, край на изпълнението"
+
+#: src/buffer.c:689
+#, 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:709
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Размер на записа = %lu блок"
+msgstr[1] "Размер на записа = %lu блока"
+
+#: src/buffer.c:782
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Невъзможно е връщане назад в архивния файл; той може да е нечитаем без опция -i"
+
+#: src/buffer.c:814
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek не завърши при граница на запис"
+
+#: src/buffer.c:870
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: съдържа неправилен номер на том"
+
+#: src/buffer.c:905
+msgid "Volume number overflow"
+msgstr "Препълване на номера на том"
+
+#: src/buffer.c:920
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Подгответе том №%d за %s и натиснете return: "
+
+#: src/buffer.c:926
+msgid "EOF where user reply was expected"
+msgstr "EOF, когато се очакваше отговор от потребителя"
+
+#: src/buffer.c:931 src/buffer.c:963
+msgid "WARNING: Archive is incomplete"
+msgstr "ВНИМАНИЕ: Архивът е незавършен"
+
+#: src/buffer.c:945
+#, 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"
+" y или return Продължава изпълнението\n"
+
+#: src/buffer.c:950
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Поражда вторична командна обвивка\n"
+
+#: src/buffer.c:951
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Извежда този списък\n"
+
+#: src/buffer.c:958
+msgid "No new volume; exiting.\n"
+msgstr "Няма повече томове; изход.\n"
+
+#: src/buffer.c:991
+msgid "File name not specified. Try again.\n"
+msgstr "Не е посочено име на файл. Опитайте отново.\n"
+
+#: src/buffer.c:1004
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Неправилна команда. Използвайте ? за справка.\n"
+
+#: src/buffer.c:1055
+#, c-format
+msgid "%s command failed"
+msgstr "командата %s не успя"
+
+#: src/buffer.c:1117 src/delete.c:210 src/list.c:169 src/update.c:165
+msgid "This does not look like a tar archive"
+msgstr "Това не прилича на tar-архив"
+
+#: src/buffer.c:1211
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s вероятно продължава в този том: заглавният запис съдържа отрязано име"
+
+#: src/buffer.c:1215
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s не продължава с този том"
+
+#: src/buffer.c:1229
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s е грешен размер (%s != %s + %s)"
+
+#: src/buffer.c:1239
+msgid "This volume is out of sequence"
+msgstr "Този том е извън поредицата"
+
+#: src/buffer.c:1285
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Архивът не е етикетиран да отговаря на %s"
+
+#: src/buffer.c:1288
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Томът %s не съответства на %s"
+
+#: src/buffer.c:1384
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: името на файла е твърде дълго, за да се побере в заглавен запис на многотомен ГНУ-архив и бе съкратено"
+
+#: src/compare.c:96
+#, 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:122
+msgid "Contents differ"
+msgstr "Съдържанието се различава"
+
+#: src/compare.c:149 src/extract.c:773 src/incremen.c:1191 src/list.c:374
+#: src/list.c:1294
+msgid "Unexpected EOF in archive"
+msgstr "Неочакван знак за край (EOF) в архива"
+
+#: src/compare.c:197 src/compare.c:213 src/compare.c:331 src/compare.c:395
+msgid "File type differs"
+msgstr "Файловите типове се различават"
+
+#: src/compare.c:200 src/compare.c:220 src/compare.c:345
+msgid "Mode differs"
+msgstr "Режимите за достъп се различават"
+
+#: src/compare.c:223
+msgid "Uid differs"
+msgstr "Собствениците се различават"
+
+#: src/compare.c:225
+msgid "Gid differs"
+msgstr "Групите се различават"
+
+#: src/compare.c:229
+msgid "Mod time differs"
+msgstr "Времената на промяна се различават"
+
+#: src/compare.c:233 src/compare.c:403
+msgid "Size differs"
+msgstr "Размерите се различават"
+
+#: src/compare.c:287
+#, c-format
+msgid "Not linked to %s"
+msgstr "Не е свързан с %s"
+
+#: src/compare.c:310
+msgid "Symlink differs"
+msgstr "Символните връзки се различават"
+
+#: src/compare.c:339
+msgid "Device number differs"
+msgstr "Номерата на устройство се различават"
+
+#: src/compare.c:445
+#, c-format
+msgid "Verify "
+msgstr "Проверка"
+
+#: src/compare.c:452
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Непознат файлов тип „%c“, сравнява се като обикновен файл"
+
+#: src/compare.c:508
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Архивът съдържа файлови имена, с отстранени префикси."
+
+#: src/compare.c:510
+msgid "Verification may fail to locate original files."
+msgstr "Проверката може и да не открие оригиналните файлове."
+
+#: src/compare.c:580
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "НЕУСПЕШНА ПРОВЕРКА: открита е %d неправилен заглавен запис"
+msgstr[1] "НЕУСПЕШНА ПРОВЕРКА: открити са %d неправилни заглавни записа"
+
+#: src/create.c:167
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "стойността на %s е извън границите %s на диапазона %s..%s; замества се с %s"
+
+#: src/create.c:173
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "стойността %s е извън границите %s на диапазона %s..%s"
+
+#: src/create.c:233
+msgid "Generating negative octal headers"
+msgstr "Генерират се отрицателни осмични заглавни записи"
+
+#: src/create.c:519 src/create.c:582
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: файловото име е твърде дълго (максимум %d); не е архивирано"
+
+#: src/create.c:529
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: файловото име е твърде дълго (не може да се раздели); не е архивирано"
+
+#: src/create.c:556
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: името на символната връзка е твърде дълго; не е архивирано"
+
+#: src/create.c:972
+#, 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:1112
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: файлът е в друга файлова система; не се архивира"
+
+#: src/create.c:1122
+#, c-format
+msgid "%s: contains a cache directory tag; not dumped"
+msgstr "%s: каталогът е обозначен като кеш; не се архивира"
+
+#: src/create.c:1280
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Непознат файлов тип; файлът се пренебрегва"
+
+#: src/create.c:1381
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "Неархивирани връзки с %s.\n"
+
+#: src/create.c:1452
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: файлът не е променен; не се архивира"
+
+#: src/create.c:1460
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: файлът е архив; не се архивира"
+
+#: src/create.c:1490
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Файлът бе изтрит преди да бъде прочетен"
+
+#: src/create.c:1562
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: файлът бе изменен по време на четене"
+
+#: src/create.c:1641
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: гнездото се пренебрегва"
+
+#: src/create.c:1646
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: пренебрегва се специалният файл тип door"
+
+#: src/delete.c:216 src/list.c:183 src/update.c:170
+msgid "Skipping to next header"
+msgstr "Пропуска се до следващия заглавен запис"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "Изтрива се незаглавен запис от архива"
+
+#: src/extract.c:194
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: записано е невероятно старо време %s"
+
+#: src/extract.c:211
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: записано е време %s, което е %s сек. в бъдещето"
+
+#: src/extract.c:383
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Неочаквана несъгласуваност при създаване на каталог"
+
+#: src/extract.c:576
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: каталогът бе преименуван преди да може да се извлече състоянието му"
+
+#: src/extract.c:711
+msgid "Extracting contiguous files as regular files"
+msgstr "Продължаващи файлове се извличат като обикновени файлове"
+
+#: src/extract.c:979
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Опитва се извличането на символни връзки като твърди"
+
+#: src/extract.c:1037
+#, c-format
+msgid "Reading %s\n"
+msgstr "Чете се %s\n"
+
+#: src/extract.c:1130
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Не може да се извлича -- файлът продължава с друг том"
+
+#: src/extract.c:1137 src/list.c:1057
+msgid "Unexpected long name header"
+msgstr "Неочаквано дълъг заглавен запис"
+
+#: src/extract.c:1143
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Непознат файлов тип „%c“, извлича се като обикновен файл"
+
+#: src/extract.c:1168
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Текущият %s е по-нов или със същата възраст"
+
+#: src/extract.c:1214
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Не можа да се направи резервно копие на този файл"
+
+#: src/extract.c:1342
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Бе невъзможно %s да се преименува на %s"
+
+#: src/extract.c:1354
+#, c-format
+msgid "Error is not recoverable: exiting now"
+msgstr "Грешката е непоправима: край на изпълнението"
+
+#: src/incremen.c:260 src/incremen.c:300
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Каталогът бе преименуват от %s"
+
+#: src/incremen.c:270
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Каталогът бе преименуван"
+
+#: src/incremen.c:311
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Каталогът е нов"
+
+#: src/incremen.c:697 src/incremen.c:714
+msgid "Invalid time stamp"
+msgstr "Записано е неправилно време"
+
+#: src/incremen.c:753
+msgid "Invalid modification time (seconds)"
+msgstr "Неправилно време на промяна (секунди)"
+
+#: src/incremen.c:768
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Неправилно време на промяна (наносекунди)"
+
+#: src/incremen.c:788
+msgid "Invalid device number"
+msgstr "Неправилен номер на устройство"
+
+#: src/incremen.c:803
+msgid "Invalid inode number"
+msgstr "Неправилен номер на i-възел"
+
+#: src/incremen.c:854 src/incremen.c:891
+msgid "Field too long while reading snapshot file"
+msgstr "Твърде дълго поле при четене на snapshot-файл"
+
+#: src/incremen.c:861 src/incremen.c:899
+msgid "Read error in snapshot file"
+msgstr "Грешка при четене в snapshot-файл"
+
+#: src/incremen.c:863 src/incremen.c:903 src/incremen.c:955
+#: src/incremen.c:1013
+msgid "Unexpected EOF in snapshot file"
+msgstr "Неочакван край на snapshot-файл"
+
+#: src/incremen.c:870 src/incremen.c:910
+msgid "Unexpected field value in snapshot file"
+msgstr "Неочаквана стойност на поле в snapshot-файл"
+
+#: src/incremen.c:1005
+msgid "Missing record terminator"
+msgstr "Липсва завършител на записа"
+
+#: src/incremen.c:1056 src/incremen.c:1059
+msgid "Bad incremental file format"
+msgstr "Грешен инкрементален файлов формат"
+
+#: src/incremen.c:1078
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Неподдържана версия на инкрементален формат: %<PRIuMAX>"
+
+#: src/incremen.c:1231
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Лошо формиран dumpdir: очаква се „%c“, а вместо това има %#3o"
+
+#: src/incremen.c:1241
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Лошо формиран dumpdir: „X“ е дублиран"
+
+#: src/incremen.c:1254
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Лошо формиран dumpdir: празно име в „R“"
+
+#: src/incremen.c:1267
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Лошо формиран dumpdir: „T“ не се предхожда от „R“"
+
+#: src/incremen.c:1273
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Лошо формиран dumpdir: празно име в „T“"
+
+#: src/incremen.c:1293
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Лошо формиран dumpdir: очаква се „%c“, вместо това данните свършват"
+
+#: src/incremen.c:1299
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Лошо формиран dumpdir: „X“ никога не се използва"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Не може да се създаде временен каталог, използвайки шаблона %s"
+
+#: src/incremen.c:1390
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Каталогът не се изчиства: не може да се достъпи"
+
+#: src/incremen.c:1403
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: каталогът е на друго устройство: не се изчиства"
+
+#: src/incremen.c:1411
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Изтрива се %s\n"
+
+#: src/incremen.c:1416
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Не може да се изтрие"
+
+#: src/list.c:115
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Пропуска се"
+
+#: src/list.c:133
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "блок %s: ** Блок от знаци NUL **\n"
+
+#: src/list.c:146
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Изолиран блок от нули при %s"
+
+#: src/list.c:157
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "блок %s: ** Край на файла **\n"
+
+#: src/list.c:180 src/list.c:1026 src/list.c:1262
+#, c-format
+msgid "block %s: "
+msgstr "блок %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:634
+#, 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:689
+#, 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:700
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Осмичната стойност %.*s в архива е извън диапазона за %s"
+
+#: src/list.c:721
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Архивът съдържа архаични заглавни записи по модул 64 (6 битови)"
+
+#: src/list.c:735
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Архивът е подписан с низ по модул 64 %s, който е е извън диапазона за %s"
+
+#: src/list.c:766
+#, 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:795
+#, 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:817
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Стойността %s в архива е извън допустимия диапазон за %s (%s..%s)"
+
+#: src/list.c:1193
+#, c-format
+msgid " link to %s\n"
+msgstr " връзка към %s\n"
+
+#: src/list.c:1201
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " непознат файлов тип %s\n"
+
+#: src/list.c:1219
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Дълга връзка--\n"
+
+#: src/list.c:1223
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Дълго име--\n"
+
+#: src/list.c:1227
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Заглавен запис на тома--\n"
+
+#: src/list.c:1235
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Продължава при байт %s--\n"
+
+#: src/list.c:1239
+#, c-format
+msgid "--Mangled file names--\n"
+msgstr "--Съкратени имена на файлове--\n"
+
+#: src/list.c:1267
+msgid "Creating directory:"
+msgstr "Създава се каталог:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Неочакван край EOF в съкратени имена"
+
+#: src/mangle.c:90 src/misc.c:467 src/misc.c:485
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Не може да се преименува на %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Преиманувано %s на %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Невъзможна символна връзка към %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Символна връзка %s към %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Непозната команда за оправяне на съкратени имена %s"
+
+#: src/misc.c:458
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Преименува се %s на %s\n"
+
+#: src/misc.c:490
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Преименува се %s обратно на %s\n"
+
+#: src/misc.c:632
+msgid "Cannot save working directory"
+msgstr "Не може да се запази работният каталог"
+
+#: src/misc.c:638
+msgid "Cannot change working directory"
+msgstr "Не може да се смени работният каталог"
+
+#: src/misc.c:728
+msgid "child process"
+msgstr "породен процес"
+
+#: src/misc.c:737
+msgid "interprocess channel"
+msgstr "междупроцесен канал"
+
+#. TRANSLATORS: The following three msgids form a single sentence.
+#.
+#: src/names.c:600
+msgid "Pattern matching characters used in file names. Please,"
+msgstr "Във файловите имена са използвани „*“ и „?“. Моля,"
+
+#: src/names.c:602
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+msgstr "използвайте --wildcards, за да позволите съпоставяне с образци,"
+
+#: src/names.c:604
+msgid "suppress this warning."
+msgstr "или --no-wildcards, за да не се извежда това предупреждение."
+
+#: src/names.c:619 src/names.c:637
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Не е открит в архива"
+
+#: src/names.c:622
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Необходимо срещане не е открито в архива"
+
+#: src/tar.c:79
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "И двете опции „-%s“ и „-%s“ изискват стандартен вход"
+
+#: src/tar.c:156
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Неправилен архивен формат"
+
+#: src/tar.c:180
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Поискани са ГНУ-възможности при несъвместим архивен формат"
+
+#: src/tar.c:241
+#, 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:323
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"„Tar“ на ГНУ запазва последователно много файлове в един лентов или дисков архив и може да възстановява в последствие отделни файлове от архива.\n"
+"\n"
+"Примери:\n"
+" tar -cf архив.tar дрън брън # Създава архив.tar от файловете дрън и брън\n"
+" tar -tvf архив.tar # Изрежда подробно всички файлове в архив.tar\n"
+" tar -xf архив.tar # Извлича от архив.tar всички файлове\n"
+
+#: src/tar.c:332
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Суфиксът за резервни копия е „~“, освен при промяна с --suffix или с\n"
+"променлива от обкръжението SIMPLE_BACKUP_SUFFIX. Методът за управление на\n"
+"версиите може да се посочва с --backup или с променливата VERSION_CONTROL.\n"
+"Допустими стойности са:\n"
+"\n"
+" none, off никога да не се правят резервни копия\n"
+" t, numbered да се правят номерирани резервни копия\n"
+" nil, existing номерирани, ако вече са правени номерирани, а прости иначе\n"
+" never, simple винаги да се правят прости резервни копия\n"
+
+#: src/tar.c:358
+msgid "Main operation mode:"
+msgstr "Вид основно действие:"
+
+#: src/tar.c:361
+msgid "list the contents of an archive"
+msgstr "изрежда съдържанието на архив"
+
+#: src/tar.c:363
+msgid "extract files from an archive"
+msgstr "извлича файлове от архива"
+
+#: src/tar.c:366
+msgid "create a new archive"
+msgstr "създава нов архив"
+
+#: src/tar.c:368
+msgid "find differences between archive and file system"
+msgstr "намира разликите между архива и файловата система"
+
+#: src/tar.c:371
+msgid "append files to the end of an archive"
+msgstr "добавя файлове в края на архив"
+
+#: src/tar.c:373
+msgid "only append files newer than copy in archive"
+msgstr "добавя само файлове, по-нови от копието в архива"
+
+#: src/tar.c:375
+msgid "append tar files to an archive"
+msgstr "прибавя tar-файлове към архива"
+
+#: src/tar.c:378
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "трие файлове от архива (не при магнитни ленти!)"
+
+#: src/tar.c:380
+msgid "test the archive volume label and exit"
+msgstr "проверява етикета на тома и завършва"
+
+#: src/tar.c:385
+msgid "Operation modifiers:"
+msgstr "Модификатори на действието:"
+
+#: src/tar.c:388
+msgid "handle sparse files efficiently"
+msgstr "работи ефективно с разредени файлове"
+
+#: src/tar.c:389
+msgid "MAJOR[.MINOR]"
+msgstr "ГОЛЯМ[.МАЛЪК]"
+
+#: src/tar.c:390
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "определя версията на формата разредени файлове (влече --sparse)"
+
+#: src/tar.c:392
+msgid "handle old GNU-format incremental backup"
+msgstr "със стар формат ГНУ за инкрементално архивиране"
+
+#: src/tar.c:393 src/tar.c:524 src/tar.c:588 src/tar.c:592 src/tar.c:602
+#: src/tar.c:679 tests/genfile.c:128 tests/genfile.c:173 tests/genfile.c:177
+#: tests/genfile.c:180
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: src/tar.c:394
+msgid "handle new GNU-format incremental backup"
+msgstr "с новия формат на ГНУ за инкрем. архивиране"
+
+#: src/tar.c:396
+msgid "do not exit with nonzero on unreadable files"
+msgstr "при нечитаеми файлове не завършва с грешка"
+
+#: src/tar.c:397 src/tar.c:519 src/tar.c:534 src/tar.c:632 tests/genfile.c:159
+msgid "NUMBER"
+msgstr "N"
+
+#: src/tar.c:398
+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 "обработва само N-тото срещане на всеки файл в архива; тази опция е правилна само в съчетание с една от подкомандите --delete, --diff, --extract или --list и когато списъкът от файлове е зададен или на командния ред, или с опция -T. Ако не е посочен N, се подразбира 1."
+
+#: src/tar.c:404
+msgid "archive is seekable"
+msgstr "архивът е с произволен достъп"
+
+#: src/tar.c:409
+msgid "Overwrite control:"
+msgstr "Регулиране заместването на файлове:"
+
+#: src/tar.c:412
+msgid "attempt to verify the archive after writing it"
+msgstr "след записа опитва да провери архива"
+
+#: src/tar.c:414
+msgid "remove files after adding them to the archive"
+msgstr "изтрива файловете след като ги добави в архива"
+
+#: src/tar.c:416
+msgid "don't replace existing files when extracting"
+msgstr "при извличане не замества съществуващи файлове"
+
+#: src/tar.c:418
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "не замества съществуващи файлове, ако са по-нови от копията им в архива"
+
+#: src/tar.c:420
+msgid "overwrite existing files when extracting"
+msgstr "при извличане замества съществуващи файлове"
+
+#: src/tar.c:422
+msgid "remove each file prior to extracting over it"
+msgstr "изтрива всеки файл преди да извлича върху него"
+
+#: src/tar.c:424
+msgid "empty hierarchies prior to extracting directory"
+msgstr "изпразва йерархията преди извличане на каталог"
+
+#: src/tar.c:426
+msgid "preserve metadata of existing directories"
+msgstr "запазва метаданните на съществуващи каталози"
+
+#: src/tar.c:428
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "при извличане замества метаданните на съществуващи каталози (подразбира се)"
+
+#: src/tar.c:434
+msgid "Select output stream:"
+msgstr "Избор на изходен поток:"
+
+#: src/tar.c:437
+msgid "extract files to standard output"
+msgstr "извлича файловете на стандартния изход"
+
+#: src/tar.c:438 src/tar.c:497 src/tar.c:499 tests/genfile.c:156
+#: tests/genfile.c:183
+msgid "COMMAND"
+msgstr "КОМАНДА"
+
+#: src/tar.c:439
+msgid "pipe extracted files to another program"
+msgstr "подава с канал всеки извлечен файл към КОМАНДА"
+
+#: src/tar.c:441
+msgid "ignore exit codes of children"
+msgstr "игнорира кода на завършване на породени процеси"
+
+#: src/tar.c:443
+msgid "treat non-zero exit codes of children as error"
+msgstr "счита за грешка всеки ненулев код на завършване на породен процес"
+
+#: src/tar.c:448
+msgid "Handling of file attributes:"
+msgstr "Подход спрямо файловите атрибути:"
+
+#: src/tar.c:451
+msgid "force NAME as owner for added files"
+msgstr "прави ИМЕ да е собственик на добавените файлове"
+
+#: src/tar.c:453
+msgid "force NAME as group for added files"
+msgstr "прави ИМЕ да бъде групата на добавените файлове"
+
+#: src/tar.c:454 src/tar.c:618
+msgid "DATE-OR-FILE"
+msgstr "ДАТА-ИЛИ-ФАЙЛ"
+
+#: src/tar.c:455
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "прави времето на промяна на добавяни файлове като ДАТА-ИЛИ-ФАЙЛ"
+
+#: src/tar.c:456
+msgid "CHANGES"
+msgstr "ПРОМЕНИ"
+
+#: src/tar.c:457
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "модифицира режима за достъп на добавени файлове"
+
+#: src/tar.c:459
+msgid "METHOD"
+msgstr "МЕТОД"
+
+#: src/tar.c:460
+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:464
+msgid "don't extract file modified time"
+msgstr "не извлича времето на промяна на файловете"
+
+#: src/tar.c:466
+msgid "try extracting files with the same ownership"
+msgstr "опитва да възстановява собствеността на файловете"
+
+#: src/tar.c:468
+msgid "extract files as yourself"
+msgstr "извлича файловете от ваше име"
+
+#: src/tar.c:470
+msgid "always use numbers for user/group names"
+msgstr "използва числа вместо имена за потребител и група"
+
+#: src/tar.c:472
+msgid "extract information about file permissions (default for superuser)"
+msgstr "възстановява точно (без umask) режима на достъп (подразбира се при привилегирован потребител)"
+
+#: src/tar.c:476
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "прилага umask на потребителя при извличане на файлове (подразбира се при обикновен потребител)"
+
+#: src/tar.c:478
+msgid "sort names to extract to match archive"
+msgstr "файловете за извличане са сортирани според архива"
+
+#: src/tar.c:481
+msgid "same as both -p and -s"
+msgstr "същото като едновременно -p и -s"
+
+#: src/tar.c:483
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "забавя настройката на времето на промяна и режима за достъп на извличаните каталози докато извличането завърши"
+
+#: src/tar.c:486
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "отменя ефекта на --delay-directory-restore"
+
+#: src/tar.c:491
+msgid "Device selection and switching:"
+msgstr "Избор на устройство и смяна:"
+
+#: src/tar.c:493
+msgid "ARCHIVE"
+msgstr "АРХИВ"
+
+#: src/tar.c:494
+msgid "use archive file or device ARCHIVE"
+msgstr "използва архивния файл или устройство АРХИВ"
+
+#: src/tar.c:496
+msgid "archive file is local even if it has a colon"
+msgstr "архивният файл е локален дори при двуеточие"
+
+#: src/tar.c:498
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "използва посочената КОМАНДА вместо rmt"
+
+#: src/tar.c:500
+msgid "use remote COMMAND instead of rsh"
+msgstr "използва посочената КОМАНДА вместо rsh"
+
+#: src/tar.c:504
+msgid "specify drive and density"
+msgstr "посочва устройство и гъстота"
+
+#: src/tar.c:518
+msgid "create/list/extract multi-volume archive"
+msgstr "създава/извежда/извлича многотомен архив"
+
+#: src/tar.c:520
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "смяна на лентата след запис на 1024 x N байта"
+
+#: src/tar.c:522
+msgid "run script at end of each tape (implies -M)"
+msgstr "изпълнява скрипт в края на всяка лента (влече -M)"
+
+#: src/tar.c:525
+msgid "use/update the volume number in FILE"
+msgstr "ползва от и обновява във ФАЙЛ номера на тома"
+
+#: src/tar.c:530
+msgid "Device blocking:"
+msgstr "Блокуване на устройството:"
+
+#: src/tar.c:532
+msgid "BLOCKS"
+msgstr "БЛОКОВЕ"
+
+#: src/tar.c:533
+msgid "BLOCKS x 512 bytes per record"
+msgstr "БЛОКОВЕ x 512 байта в секунда"
+
+#: src/tar.c:535
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "прави N-байтови записи, кратно на 512"
+
+#: src/tar.c:537
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "пренебрегва блоковете от нули и продължава"
+
+#: src/tar.c:539
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "преформира при четене блоковете (канали 4.2BSD)"
+
+#: src/tar.c:544
+msgid "Archive format selection:"
+msgstr "Избор на архивен формат:"
+
+#: src/tar.c:546 tests/genfile.c:146
+msgid "FORMAT"
+msgstr "ФОРМАТ"
+
+#: src/tar.c:547
+msgid "create archive of the given format"
+msgstr "създава архив с посочения формат"
+
+#: src/tar.c:549
+msgid "FORMAT is one of the following:"
+msgstr "ФОРМАТ е някой от следните:"
+
+#: src/tar.c:550
+msgid "old V7 tar format"
+msgstr "стар формат tar, V7"
+
+#: src/tar.c:553
+msgid "GNU format as per tar <= 1.12"
+msgstr "формат на ГНУ при tar <= 1.12"
+
+#: src/tar.c:555
+msgid "GNU tar 1.13.x format"
+msgstr "формат на версия 1.13.x на tar на ГНУ"
+
+#: src/tar.c:557
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "формат POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:559
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "формат POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:560
+msgid "same as pax"
+msgstr "същото като pax"
+
+#: src/tar.c:563
+msgid "same as --format=v7"
+msgstr "същото като --format=v7"
+
+#: src/tar.c:566
+msgid "same as --format=posix"
+msgstr "същото като --format=posix"
+
+#: src/tar.c:567
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "ключдума[[:]=стойност][,ключдума[[:]=стойност]]..."
+
+#: src/tar.c:568
+msgid "control pax keywords"
+msgstr "управляващи ключови думи за pax"
+
+#: src/tar.c:569
+msgid "TEXT"
+msgstr "ТЕКСТ"
+
+#: src/tar.c:570
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "създава архив с име на том ТЕКСТ; при извеждане или извличане сравнява името на тома с ТЕКСТ"
+
+#: src/tar.c:572
+msgid "filter the archive through bzip2"
+msgstr "прекарва архива през bzip2"
+
+#: src/tar.c:574
+msgid "filter the archive through gzip"
+msgstr "прекарва архива през gzip"
+
+#: src/tar.c:578
+msgid "filter the archive through compress"
+msgstr "прекарва архива през compress"
+
+#: src/tar.c:580
+msgid "PROG"
+msgstr "ПРОГ"
+
+#: src/tar.c:581
+msgid "filter through PROG (must accept -d)"
+msgstr "прекарва архива през ПРОГ (трябва да приема -d)"
+
+#: src/tar.c:586
+msgid "Local file selection:"
+msgstr "Избор на локален файл:"
+
+#: src/tar.c:589
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "добавя посочения ФАЙЛ към архива (полезно е, ако името му започва с минус)"
+
+#: src/tar.c:590
+msgid "DIR"
+msgstr "КАТ"
+
+#: src/tar.c:591
+msgid "change to directory DIR"
+msgstr "работи в каталога КАТ"
+
+#: src/tar.c:593
+msgid "get names to extract or create from FILE"
+msgstr "взема имената за извличане или създаване от ФАЙЛ"
+
+#: src/tar.c:595
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T чете имена, завършващи с нулев байт"
+
+#: src/tar.c:597
+msgid "unquote filenames read with -T (default)"
+msgstr "декодира „\\“ във файловите имена на -T (подразб.)"
+
+#: src/tar.c:599
+msgid "do not unquote filenames read with -T"
+msgstr "не декодира „\\“ във файловите имена на -T"
+
+#: src/tar.c:600 tests/genfile.c:132
+msgid "PATTERN"
+msgstr "ОБРАЗЕЦ"
+
+#: src/tar.c:601
+msgid "exclude files, given as a PATTERN"
+msgstr "без файловете, отговарящи на ОБРАЗЕЦ"
+
+#: src/tar.c:603
+msgid "exclude patterns listed in FILE"
+msgstr "пропуска файловете, отговарящи на образци в ФАЙЛ"
+
+#: src/tar.c:605
+msgid "exclude directories containing a cache tag"
+msgstr "без каталози, обозначени като кеширащи"
+
+#: src/tar.c:607
+msgid "avoid descending automatically in directories"
+msgstr "без автоматично влизане в подкаталозите"
+
+#: src/tar.c:609
+msgid "stay in local file system when creating archive"
+msgstr "работи в рамките на локалната файлова система"
+
+#: src/tar.c:611
+msgid "recurse into directories (default)"
+msgstr "влиза рекурсивно в подкаталозите (подразбира се)"
+
+#: src/tar.c:613
+msgid "don't strip leading `/'s from file names"
+msgstr "не маха „/“ в началото на файлови имена"
+
+#: src/tar.c:615
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "следва симв. връзки; архивира сочените файлове"
+
+#: src/tar.c:616
+msgid "MEMBER-NAME"
+msgstr "ЧЛЕН-ИМЕ"
+
+#: src/tar.c:617
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "започва от файл с име ЧЛЕН-ИМЕ в архива"
+
+#: src/tar.c:619
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "съхранява само файлове, по-нови от ДАТА-ИЛИ-ФАЙЛ"
+
+#: src/tar.c:621
+msgid "DATE"
+msgstr "ДАТА"
+
+#: src/tar.c:622
+msgid "compare date and time when data changed only"
+msgstr "сравнява времето само ако данните са променени"
+
+#: src/tar.c:623
+msgid "CONTROL"
+msgstr "МЕТОД"
+
+#: src/tar.c:624
+msgid "backup before removal, choose version CONTROL"
+msgstr "резервно копира съществуващи файлове с МЕТОД"
+
+#: src/tar.c:625 src/tar.c:696 src/tar.c:698 tests/genfile.c:162
+msgid "STRING"
+msgstr "НИЗ"
+
+#: src/tar.c:626
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "резервно копира преди да трие, използвайки НИЗ вместо обичайния суфикс („~“, освен ако не е бил сменен с променливата от обкръжението SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:631
+msgid "File name transformations:"
+msgstr "Промени на файловите имена:"
+
+#: src/tar.c:633
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "при извличане маха N начални каталози от файловите пътеки"
+
+#: src/tar.c:635
+msgid "EXPRESSION"
+msgstr "ИЗРАЗ"
+
+#: src/tar.c:636
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "преобразува файловите имена, използвайки посочения ИЗРАЗ за замяна на sed"
+
+#: src/tar.c:641
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Съпоставяне с файлови имена (влияе и на включващи, и на изключващи образци):"
+
+#: src/tar.c:644
+msgid "ignore case"
+msgstr "пренебрегва разликата между големи/малки букви"
+
+#: src/tar.c:646
+msgid "patterns match file name start"
+msgstr "съпоставянето с образците започва от началото на файловото име"
+
+#: src/tar.c:648
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "съпоставянето започва след кой да е „/“ (подразбира се при изключване)"
+
+#: src/tar.c:650
+msgid "case sensitive matching (default)"
+msgstr "отчита се разликата между малки и големи букви (подразбира се)"
+
+#: src/tar.c:652
+msgid "use wildcards (default for exclusion)"
+msgstr "ползва „*“ и „?“ (подразбира се за изключване)"
+
+#: src/tar.c:654
+msgid "verbatim string matching"
+msgstr "дословно низово сравнение"
+
+#: src/tar.c:656
+msgid "wildcards do not match `/'"
+msgstr "„/“ не пасва с „*“ и „?“"
+
+#: src/tar.c:658
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "„/“ пасва с „*“ и „?“ (подразб. за изключване)"
+
+#: src/tar.c:663
+msgid "Informative output:"
+msgstr "Извеждане на информация:"
+
+#: src/tar.c:666
+msgid "verbosely list files processed"
+msgstr "подробно изрежда обработените файлове"
+
+#: src/tar.c:667
+msgid "[.]NUMBER"
+msgstr "[.]N"
+
+#: src/tar.c:668
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "извежда напредъка след всеки N-ти запис (подразбира се 10)"
+
+#: src/tar.c:671
+msgid "print a message if not all links are dumped"
+msgstr "съобщава, ако не всички твърди връзки са включени"
+
+#: src/tar.c:672
+msgid "SIGNAL"
+msgstr "СИГНАЛ"
+
+#: src/tar.c:673
+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:678
+msgid "print file modification dates in UTC"
+msgstr "извежда времената по Гринуич"
+
+#: src/tar.c:680
+msgid "send verbose output to FILE"
+msgstr "изпраща подробния изход във ФАЙЛ"
+
+#: src/tar.c:682
+msgid "show block number within archive with each message"
+msgstr "показва номера на блок в архива с всяко съобщение"
+
+#: src/tar.c:684
+msgid "ask for confirmation for every action"
+msgstr "изисква потвърждение за всяко действие"
+
+#: src/tar.c:687
+msgid "show tar defaults"
+msgstr "показва подразбираното от tar"
+
+#: src/tar.c:689
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "при извеждане или извличане изрежда всеки каталог, който се пропуска по някаква причина"
+
+#: src/tar.c:691
+msgid "show file or archive names after transformation"
+msgstr "показва преобразуваните файлови имена в архива"
+
+#: src/tar.c:694
+msgid "STYLE"
+msgstr "НАЧИН"
+
+#: src/tar.c:695
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "начин за цитиране на специални знаци; вж. по-долу за стойностите на НАЧИН"
+
+#: src/tar.c:697
+msgid "additionally quote characters from STRING"
+msgstr "работи и със знаците от НИЗ като със специални"
+
+#: src/tar.c:699
+msgid "disable quoting for characters from STRING"
+msgstr "не работи със знаците от НИЗ като със специални"
+
+#: src/tar.c:704
+msgid "Compatibility options:"
+msgstr "Опции за съвместимост:"
+
+#: src/tar.c:707
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "при създаване е същото като --old-archive; при извличане е същото като --no-same-owner"
+
+#: src/tar.c:712
+msgid "Other options:"
+msgstr "Други опции:"
+
+#: src/tar.c:715
+msgid "disable use of some potentially harmful options"
+msgstr "забранява някои потенциално опасни опции"
+
+#: src/tar.c:819
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Не може да се използва повече от една опция „-Acdtrux“"
+
+#: src/tar.c:829
+msgid "Conflicting compression options"
+msgstr "Противоречащи си опции за компресиране"
+
+#: src/tar.c:885
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Непознато име на сигнал: %s"
+
+#: src/tar.c:909
+msgid "Date sample file not found"
+msgstr "Не е открит еталлонният файл за дата"
+
+#: src/tar.c:917
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Използва се %s вместо непознатия файлов формат за дата %s"
+
+#: src/tar.c:942
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Опция %s: Датата „%s“ се разглежда като %s"
+
+#: src/tar.c:1013
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: файловият списък вече е прочетен"
+
+#: src/tar.c:1068
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: файловото име съдържа нулев байт"
+
+#: src/tar.c:1130
+msgid "Valid arguments for --quoting-style options are:"
+msgstr "Правилни аргументи за опциите --quoting-style са:"
+
+#: src/tar.c:1133
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Този* tar подразбира следното:\n"
+
+#: src/tar.c:1166
+msgid "Invalid blocking factor"
+msgstr "Неправилен фактор за блокуване"
+
+#: src/tar.c:1238
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Внимание: опцията -I не се поддържа. Може би имате предвид -j или -T?"
+
+#: src/tar.c:1271
+msgid "Invalid tape length"
+msgstr "Неправилна дължина на лента"
+
+#: src/tar.c:1303
+msgid "More than one threshold date"
+msgstr "Повече от една ограничителна дата"
+
+#: src/tar.c:1358 src/tar.c:1361
+msgid "Invalid sparse version value"
+msgstr "Неправилна версия на формат разредени файлове"
+
+#: src/tar.c:1446
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' не се поддържа на тази платформа"
+
+#: src/tar.c:1463
+msgid "--checkpoint value is not an integer"
+msgstr "стойността на --checkpoint не е цяло число"
+
+#: src/tar.c:1533
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Неправилна група"
+
+#: src/tar.c:1540
+msgid "Invalid mode given on option"
+msgstr "На опция е подаден неправилен режим"
+
+#: src/tar.c:1593
+msgid "Invalid number"
+msgstr "Неправилно число"
+
+#: src/tar.c:1615
+msgid "Invalid owner"
+msgstr "Неправилен собственик"
+
+#: src/tar.c:1649
+msgid "Invalid record size"
+msgstr "Неправилен размер на запис"
+
+#: src/tar.c:1652
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Размерът на запис трябва да е кратен на %d."
+
+#: src/tar.c:1689
+msgid "Invalid number of elements"
+msgstr "Неправилен брой елементи"
+
+#: src/tar.c:1709
+msgid "Only one --to-command option allowed"
+msgstr "Позволява се само една опция --to-command"
+
+#: src/tar.c:1785
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Лошо образуван аргумент за гъстота: %s"
+
+#: src/tar.c:1811
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Непозната гъстота: „%c“"
+
+#: src/tar.c:1828
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Опциите „-[0-7][lmh]“ не се поддържат от *този* tar"
+
+#: src/tar.c:1863
+msgid "[FILE]..."
+msgstr "[ФАЙЛ]..."
+
+#: src/tar.c:1966
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Старата опция „%c“ изисква аргумент."
+
+#: src/tar.c:2048
+msgid "--occurrence is meaningless without a file list"
+msgstr "без списък файлове опцията --occurrence е безсмислена"
+
+#: src/tar.c:2054
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "не може да се използва --occurrence при пожелания начин на работа"
+
+#: src/tar.c:2084
+msgid "Multiple archive files require `-M' option"
+msgstr "Използването на много архивни файлове изисква опция „-M“"
+
+#: src/tar.c:2089
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Не може да се съчетават --listed-incremental с --newer"
+
+#: src/tar.c:2106
+#, 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:2119
+msgid "Cannot verify multi-volume archives"
+msgstr "Не може да се проверяват многотомни архиви"
+
+#: src/tar.c:2121
+msgid "Cannot verify compressed archives"
+msgstr "Не може да се проверяват компресирани архиви"
+
+#: src/tar.c:2127
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Не може да се използват многотомни компресирани архиви"
+
+#: src/tar.c:2133
+msgid "Cannot concatenate compressed archives"
+msgstr "Не може да се съединяват компресирани архиви"
+
+#: src/tar.c:2145
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "опцията --pax-option може да се използва само при архиви във формат POSIX"
+
+#: src/tar.c:2170
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Страхлив отказ да се създава празен архив"
+
+#: src/tar.c:2191
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Опциите „-Aru“ са несъвместими с „-f -“"
+
+#: src/tar.c:2280
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Трябва да посочите поне една от опциите „-Acdtrux“"
+
+#: src/tar.c:2331
+#, c-format
+msgid "Error exit delayed from previous errors"
+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 байта"
+
+#: src/xheader.c:160
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Ключовата дума %s е непозната или все още не е реализирана"
+
+#: src/xheader.c:186
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Образецът %s не може да се използва"
+
+#: src/xheader.c:196
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Ключовата дума %s не може да се отмени"
+
+#: src/xheader.c:500
+msgid "Malformed extended header: missing length"
+msgstr "Лошо формиран разширен заглавен запис: не е посочена дължина"
+
+#: src/xheader.c:508
+msgid "Extended header length is out of allowed range"
+msgstr "Дължината на разширен заглавен запис е извън допустимия диапазон"
+
+#: src/xheader.c:515
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Дължината %*s на разширен заглавен запис е извън допустимия диапазон"
+
+#: src/xheader.c:527
+msgid "Malformed extended header: missing blank after length"
+msgstr "Лошо формиран разширен заглавен запис: липсва интервал след дължината"
+
+#: src/xheader.c:535
+msgid "Malformed extended header: missing equal sign"
+msgstr "Лошо формиран разширен заглавен запис: липсва знак за равенство"
+
+#: src/xheader.c:541
+msgid "Malformed extended header: missing newline"
+msgstr "Лошо формиран разширен заглавен запис: липсва знак за нов ред"
+
+#: src/xheader.c:578
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Пренебрегва се непознатата ключова дума „%s“ за разширен заглавен запис"
+
+#: src/xheader.c:785
+#, 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:817
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Разширеният заглавен запис %s=%s е извън диапазона %s..%s"
+
+#: src/xheader.c:948 src/xheader.c:978 src/xheader.c:1291
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Неправилно формиран разширен заглавен запис: неправилен %s=%s"
+
+#: src/xheader.c:1244 src/xheader.c:1269 src/xheader.c:1319
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Неправилно формиран разширен заглавен запис: прекомерен %s=%s"
+
+#: src/xheader.c:1332
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Лошо формиран разширен заглавен запис: неправилен %s; очаква се разделител %c"
+
+#: src/xheader.c:1342
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Лошо формиран разширен заглавен запис: неправилен %s; нечетен брой стойности"
+
+#: tests/genfile.c:109
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile борави с файловете с данни за тестовия пакет GNU paxutils.\n"
+"ОПЦИИТЕ са:\n"
+
+#: tests/genfile.c:123
+msgid "File creation options:"
+msgstr "Опции за създаването на файл:"
+
+#: tests/genfile.c:124 tests/genfile.c:135
+msgid "SIZE"
+msgstr "РАЗМЕР"
+
+#: tests/genfile.c:125
+msgid "Create file of the given SIZE"
+msgstr "Създава файл с посочения РАЗМЕР"
+
+#: tests/genfile.c:127
+msgid "Write to file NAME, instead of standard output"
+msgstr "Запис във файл ИМЕ вместо на стандартния изход"
+
+#: tests/genfile.c:129
+msgid "Read file names from FILE"
+msgstr "Чете файловите имена от ФАЙЛ"
+
+#: tests/genfile.c:131
+msgid "-T reads null-terminated names"
+msgstr "-T чете имена, завършващи с нулев байт"
+
+#: tests/genfile.c:133
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Попълва файла с посочения ОБРАЗЕЦ. ОБРАЗЕЦ може да бъде „default“ или „zeros“"
+
+#: tests/genfile.c:136
+msgid "Size of a block for sparse file"
+msgstr "Размер на блок за разреден файл"
+
+#: tests/genfile.c:138
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Генерира разреден файл. Останалата част от командния ред дава карта на файла."
+
+#: tests/genfile.c:144
+msgid "File statistics options:"
+msgstr "Опции за файлови статистики:"
+
+#: tests/genfile.c:147
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Извежда съдържанието на структурата stat за всеки файл. По подразбиране ФОРМАТ е: "
+
+#: tests/genfile.c:154
+msgid "Synchronous execution options:"
+msgstr "Опции за синхронизирано изпълнение:"
+
+#: tests/genfile.c:157
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr "Изпълнява посочената КОМАНДА. Полезно с --checkpoint и някоя от --cut, --append, --touch"
+
+#: tests/genfile.c:160
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Изпълнява посоченото действие (вж. по-долу) до достигането на контролна точка N"
+
+#: tests/genfile.c:163
+msgid "Set date for next --touch option"
+msgstr "Посочва дата за следващата опция --touch"
+
+#: tests/genfile.c:166
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Извежда изпълнените контролни точки и кода на завършване на КОМАНДА"
+
+#: tests/genfile.c:171
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Синхронизирано изпълнение на действията. Те се изпълняват когато се достигне контролната точка с номер, посочен с --checkpoint."
+
+#: tests/genfile.c:174
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Отсича ФАЙЛ до размера, определен с предхождаща опция --length (подразбира се 0)"
+
+#: tests/genfile.c:178
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Добавя РАЗМЕР байтове към ФАЙЛ. РАЗМЕРът се определя от предхождаща опция --length."
+
+#: tests/genfile.c:181
+msgid "Update the access and modification times of FILE"
+msgstr "Обновява времето на достъп и промяна на FILE"
+
+#: tests/genfile.c:184
+msgid "Execute COMMAND"
+msgstr "Изпълнява КОМАНДА"
+
+#: tests/genfile.c:234
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Неправилен размер: %s"
+
+#: tests/genfile.c:239
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Номер извън допустимия диапазон: %s"
+
+#: tests/genfile.c:242
+#, c-format
+msgid "Negative size: %s"
+msgstr "Отрицателен размер: %s"
+
+#: tests/genfile.c:255 tests/genfile.c:544
+#, c-format
+msgid "stat(%s) failed"
+msgstr "не успя stat(%s)"
+
+#: tests/genfile.c:345
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Грешка при анализа на число до „%s“"
+
+#: tests/genfile.c:351
+#, c-format
+msgid "Unknown date format"
+msgstr "Непознат формат за дата"
+
+#: tests/genfile.c:374
+msgid "[ARGS...]"
+msgstr "[АРГУМ...]"
+
+#: tests/genfile.c:411 tests/genfile.c:448 tests/genfile.c:498
+#: tests/genfile.c:648 tests/genfile.c:662
+#, c-format
+msgid "cannot open `%s'"
+msgstr "Не може да се отвори „%s“"
+
+#: tests/genfile.c:431
+#, c-format
+msgid "file name contains null character"
+msgstr "името на файла съдържа нулев байт"
+
+#: tests/genfile.c:495
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "не може да се създават разредени файлове на стандартния изход, използвайте опцията --file"
+
+#: tests/genfile.c:571
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "неправилна маска (до „%s“)"
+
+#: tests/genfile.c:577 tests/genfile.c:610
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Непознато поле „%s“"
+
+#: tests/genfile.c:637
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "не може да се смени времето на „%s“"
+
+#: tests/genfile.c:791
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Командата завърши успешно\n"
+
+#: tests/genfile.c:793
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Командата завърши с код %d\n"
+
+#: tests/genfile.c:797
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Командата бе прекратена със сигнал %d\n"
+
+#: tests/genfile.c:799
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Командата бе спряна със сигнал %d\n"
+
+#: tests/genfile.c:802
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Командата генерира core\n"
+
+#: tests/genfile.c:805
+#, c-format
+msgid "Command terminated\n"
+msgstr "Командата бе прекратена\n"
+
+#: tests/genfile.c:837
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat изисква файлови имена"
+
+#: tests/genfile.c:850
+#, c-format
+msgid "too many arguments"
+msgstr "твърде много аргументи"
+
+#~ msgid "Time stamp out of range"
+#~ msgstr "Записано е време извън допустимия диапазон"
+
+#~ msgid "Modification time (seconds) out of range"
+#~ msgstr "Времето на промяна (секунди) е извън допустимия диапазон"
+
+#~ msgid "Modification time (nanoseconds) out of range"
+#~ msgstr "Времето на промяна (наносекунди) е извън допустимия диапазон"
+
+#~ msgid "Device number out of range"
+#~ msgstr "Номерът на устройство е извън допустимия диапазон"
+
+#~ msgid "Error reading time stamp"
+#~ msgstr "Грешка при четене на записаното време"
+
+#~ msgid "Unexpected EOF"
+#~ msgstr "Неочакван EOF"
+
+#~ msgid "same as -N"
+#~ msgstr "същото като -N"
+
+#~ msgid "creating multi-volume archives in posix format requires using --tape-length (-L) option"
+#~ msgstr "създаването на многотомен архив във формат POSIX изисква опция --tape-length (-L)"
+
+#~ msgid "Cannot close file #%d"
+#~ msgstr "Не може да се затвори файл #%d"
+
+#~ msgid "Cannot close descriptor %d"
+#~ msgstr "Не може да се затвори дескриптор %d"
+
+#~ msgid "Cannot properly duplicate %s"
+#~ msgstr "Не може да се клонира правилно %s"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "Не може да се използват компресирани или отдалечени архиви"
+
+#~ msgid "Cannot open pipe"
+#~ msgstr "Не може да се отвори именован канал"
+
+#~ msgid "Cannot fork"
+#~ msgstr "Не може да се породи процес"
+
+#~ msgid "tar (child)"
+#~ msgstr "tar (потомък)"
+
+#~ msgid "(child) Pipe to stdin"
+#~ msgstr "(потомък) Именован канал към стандартен изход"
+
+#~ msgid "Cannot open archive %s"
+#~ msgstr "Не може да се отвори архив %s"
+
+#~ msgid "Archive to stdout"
+#~ msgstr "Архив на стандартния изход"
+
+#~ msgid "Cannot exec %s"
+#~ msgstr "Не може да се изпълни %s"
+
+#~ msgid "Child cannot fork"
+#~ msgstr "Потомъкът не може да породи процес"
+
+#~ msgid "((child)) Pipe to stdout"
+#~ msgstr "((потомък)) Именован канал към стандартния изход"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (подпотомък)"
+
+#~ msgid "(grandchild) Pipe to stdin"
+#~ msgstr "(подпотомък) Именован канал към стандартния изход"
+
+#~ msgid "Cannot read from compression program"
+#~ msgstr "Не може да се чете от компресиращата програма"
+
+#~ msgid "(child) Pipe to stdout"
+#~ msgstr "(потомък) Именован канал към стандартния изход"
+
+#~ msgid "((child)) Pipe to stdin"
+#~ msgstr "((потомък)) Именован канал към стандартния изход"
+
+#~ msgid "(grandchild) Pipe to stdout"
+#~ msgstr "(подпотомък) Именован канал към стандартния изход"
+
+#~ msgid "Cannot write to compression program"
+#~ msgstr "Не може да се пише към компресиращата програма"
+
+#~ msgid "Write to compression program short %d bytes"
+#~ msgstr "Записът към компресиращата програма е по-къс с %d байта"
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "ВНИМАНИЕ: Томът е без заглавна част"
+
+#~ msgid "Archive %s EOF not on block boundary"
+#~ msgstr "EOF на архив %s не е на границата на блок"
+
+#~ msgid "Only read %d bytes from archive %s"
+#~ msgstr "Прочетени са само %d байта от архив %s"
+
+#~ msgid "WARNING: Cannot close %s (%d, %d)"
+#~ msgstr "ВНИМАНИЕ: Не може да се затвори %s (%d, %d)"
+
+#~ msgid "Child died with signal %d%s"
+#~ msgstr "Потомъкът е прекратен чрез сигнал %d%s"
+
+#~ msgid "Cannot fork!"
+#~ msgstr "Не може да се породи процес!"
+
+#~ msgid "Cannot exec a shell %s"
+#~ msgstr "Не може да се изпълни командната обвивка %s"
diff --git a/po/boldquot.sed b/po/boldquot.sed
new file mode 100644
index 00000000..4b937aa5
--- /dev/null
+++ b/po/boldquot.sed
@@ -0,0 +1,10 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
+s/“/“/g
+s/”/”/g
+s/‘/‘/g
+s/’/’/g
diff --git a/po/ca.po b/po/ca.po
new file mode 100644
index 00000000..4be8d02d
--- /dev/null
+++ b/po/ca.po
@@ -0,0 +1,2615 @@
+# Catalan translation for tar.
+# Copyright (C) 2010 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+# Àngel Mompó <mecatxis@gmail.com>, 2010, 2011.
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar-1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-19 11:52+0100\n"
+"Last-Translator: Àngel Mompó <mecatxis@gmail.com>\n"
+"Language-Team: Catalan <ca@dodds.net>\n"
+"Language: ca\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "el paràmetre %s no és vàlid per %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "el paràmetre %s és ambigu per %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Els paràmetres vàlids són:"
+
+#: gnu/argp-help.c:149
+#, c-format
+msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
+msgstr "ARGP_HELP_FMT: el valor de %s és més petit o igual que %s"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: El paràmetre ARGP_HELP_FMT necessita un valor"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: El paràmetre ARGP_HELP_FMT ha de ser positiu"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Paràmetre ARGP_HELP_FMT desconegut"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Hi ha brossa a ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Els paràmetres obligatoris o opcionals per les opcions llargues també ho són per les corresponents opcions curtes."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Ús:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " o: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [OPCIÓ...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Proveu «%s --help» o «%s --usage» per més informació.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Informeu dels errors de programació a %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Error de sistema desconegut"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "dóna aquesta llista d'ajuda"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "dóna un missatge curt sobre utilització"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NOM"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "definiu el nom del programa"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEGS"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "es penja durant SECS segons (per defecte 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "mostra la versió del programa"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ERROR DE PROGRAMA) Versió desconeguda!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Massa paràmetres\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ERROR DE PROGRAMA) Hauria de conèixer l'opció!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "error d'escriptura"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: l'opció «%s» és ambigua\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: l'opció «--%s» no permet cap paràmetre\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: l'opció «%c%s» no permet cap paràmetre\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: l'opció «--%s» necessita un paràmetre\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: opció no reconeguda «--%s»\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: opció no reconeguda «%c%s»\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: opció invàlida -- «%c»\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: l'opció necessita un paràmetre -- «%c»\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: l'opció «-W %s» és ambigua\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: l'opció «-W %s» no permet cap paràmetre\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: l'opció «-W %s» necessita un paràmetre\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "memòria exhaurida"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "No es pot desar el directori de treball actual"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "No es pot tornar al directori de treball inicial"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "«"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "»"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[sS]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Empaquetat per %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Empaquetat per %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Llicència GPLV3+: GNU GPL versió 3 o posterior <http://gnu.org/licenses/gpl.html>\n"
+"Això és programari lliure: podeu modificar-lo i redistribuir-lo si voleu.\n"
+"No hi ha CAP GARANTIA, en la mesura que ho permeti la llei.\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Escrit per %s. \n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:108
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Escrit per %s i %s. \n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "Escrit per %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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Escrit per %s, %s, %s,\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Escrit per %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Escrit per %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Escrit per %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Escrit per %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Escrit per %s,·%s,·%s \n"
+"%s,·%s,·%s,·%s,\n"
+"%s,·and·%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.
+#: 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 ""
+"Escrit per %s,·%s,·%s,\n"
+"%s,·%s,·%s,·%s,\n"
+"%s,·%s,·i d'altres.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Informeu dels errors a <%s>.\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Informeu %s errors a: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s pàgina inicial <%s>\n"
+
+#: gnu/version-etc.c:255
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "%s pàgina inicial: <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 "Ajuda general per quan es fa servir programari de 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: No es 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: Avís: No es pot %s"
+
+#: lib/paxerror.c:93
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: No es pot canviar el mode a %s"
+
+#: lib/paxerror.c:101
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: No es pot canviar la titularitat a uid %lu, gid %lu"
+
+#: lib/paxerror.c:127
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: No es pot crear l'enllaç dur amb %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 de lectura al byte %s, quan s'estava llegint %lu byte"
+msgstr[1] "%s: Error de lectura al byte %s, quan s'estaven llegint %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: Avís: Error de lectura al byte %s, quan s'estava llegint %lu byte"
+msgstr[1] "%s: Error de lectura al byte %s, quan s'estaven llegint %lu bytes"
+
+#: lib/paxerror.c:259
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: No es pot buscar a %s"
+
+#: lib/paxerror.c:275
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Avís: No es pot buscar a %s"
+
+#: lib/paxerror.c:284
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: No es pot crear l'enllaç simbòlic 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'ha escrit només %lu de %lu byte"
+msgstr[1] "%s: S'han escrit només %lu de %lu bytes"
+
+#: lib/paxnames.c:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Es treuen les primeres «%s» dels noms dels membres"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Es treuen les primeres «%s» dels objectius dels enllaços durs"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Se substitueixen «.» per noms buits de membres"
+
+#: lib/paxnames.c:155
+msgid "Substituting `.' for empty hard link target"
+msgstr "Se substitueixen «.» per objectius buits d'enllaços durs"
+
+#: lib/rtapelib.c:299
+#, c-format
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: El servei no està 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 "No es pot connectar amb %s: no s'ha pogut resoldre"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "No es pot executar un interpret d'ordres remot"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "La direcció de cerca està fora de rang"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "La direcció de cerca no és vàlida"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "L'òfset de cerca no és vàlid"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "L'òfset de cerca està fora de rang"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "La mida en bytes no és vàlida"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "La mida en bytes està fora de rang"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Final del fitxer prematur"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "El codi de l'operació no és vàlid"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "No se suporta la operació"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Arguments inesperats"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Manipula una unitat de cinta, acceptant comandes d'un procés remot"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NÚMERO"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "estableix el nivell de depuració"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FITXER"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "estableix el nom del fitxer de sortida de la depuració"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "no es pot obrir %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "massa arguments"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Ordre escombraria"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "No sembla un arxiu tar"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Bytes totals escrits"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Bytes totals llegits"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Bytes totals esborrats: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(conducte)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "El valor de record_size no és vàlid"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "No s'ha donat el nom de l'arxiu"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "No es pot verificar l'arxiu stdin/stdout"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "L'arxiu està comprimit. Feu servir l'opció %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "No es poden actualitzar els arxius comprimits"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Al principi de la cinta, se surt"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Massa errors, se surt"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Mida del registre = %lu bloc"
+msgstr[1] "Mida del registre = %lu blocs"
+
+#: src/buffer.c:913
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Bloc desalineat(byte %lu) a l'arxiu"
+msgstr[1] "Bloc desalineat(bytes %lu) a l'arxiu"
+
+#: src/buffer.c:990
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "No es pot tornar enrere al fitxer d'arxiu; potser no es pot llegir sense -i"
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek no s'ha aturat als límits d'un registre "
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: conté un número de volum invàlid"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Desbordament del número de volum"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Prepareu el volum #%d per %s i premeu retorn: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "Final del fitxer on s'esperava una resposta de l'usuari"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "AVÍS: L'arxiu és incomplet"
+
+#: src/buffer.c:1148
+#, 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 nom Dona el nom d'un fitxer nou pel següents (i següents) volum(s)\n"
+" q Interromp tar\n"
+" y Continua l'operació\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Engendra un interpret d'ordres\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Mostra aquesta ajuda\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "No hi ha cap volum nou; se surt.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "No s'ha especificat cap nom de fitxer. Torneu-ho a provar.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Entrada invàlida. Tecleja ? per mostrar l'ajuda.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "L'ordre %s ha fallat"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s possiblement continua en aquest volum: la capçalera conté un nom truncat"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s no continua a aquest volum"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s té una mida equivocada (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Aquest volum és fora de la seqüència (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "L'arxiu no està etiquetat per coincidir amb %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "El Volum %s no coincideix amb %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: El nom del fitxer és massa llarg per ser desat en una capçalera multivolum GNU. S'ha truncat"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "l'escriptura no ha acabat al límit d'un bloc"
+
+#: 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] "Només es pot llegir %lu de %lu byte"
+msgstr[1] "Només es poden llegir %lu de %lu bytes"
+
+#: src/compare.c:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "El contingut no coincideix"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Final de l'arxiu inesperat"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "El tipus de fitxer no coincideix"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "El mode no coincideix"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "L'identificador d'usuari no coincideix"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "L'identificador de grup d'usuaris no coincideix"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "La data de modificació no coincideix"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "La mida no coincideix"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "No s'ha enllaçat amb %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "L'enllaç tou no coincideix"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "El número de dispositiu no coincideix"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Verifiqueu "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Tipus de fitxer desconegut `%c', s'usa diff com si es tractés d'un fitxer normal"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "L'arxiu conté noms de fitxers amb els prefixes inicials esborrats."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "L'arxiu conté noms de fitxers transformats."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Pot ser que la verificació no pugui trobar els fitxers originals."
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "HA FALLAT LA VERIFICACIÓ: %d s'ha detectat una capçalera invàlida"
+msgstr[1] "HA FALLAT LA VERIFICACIÓ: %d s'han detectat capçaleres invàlides"
+
+#: src/compare.c:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Un sol bloc zero a %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: conté una etiqueta de directori de memòria cau %s; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "el valor %s està fora del rang%s %s..%s; es substitueix per %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "el valor %s està fora del rang %s %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "S'estan generant les capçaleres octals negatives"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: el nom del fitxer és massa llarg (màx %d); no s'aboca"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: el nom del fitxer és massa llarg (no es pot dividir); no s'aboca"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: el nom de l'enllaç és massa llarg; no s'aboca"
+
+#: src/create.c:1064
+#, 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: El fitxer s'encongeix %s byte; s'omple amb zero"
+msgstr[1] "%s: El fitxer s'encongeix %s bytes; s'omple amb zeros"
+
+#: src/create.c:1160
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: el fitxer es troba a un sistema de fitxers diferent; no s'aboca"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "els continguts no s'aboquen"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipus de fitxer desconegut; el fitxer s'ignora"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Falten els enllaços a %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: el fitxer no ha canviat; no s'aboca"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: el fitxer és l'arxiu; no s'aboca"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "el directori no s'aboca"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: el fitxer ha canviat mentre es llegia"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: sòcol ignorat"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: porta ignorada"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Es salta fins a la propera capçalera"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "S'esborra la no-capçalera de l'arxiu"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: marca horària inversemblantment antiga %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: la marca horària %s pertany %s s al futur"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inconsistència inesperada en crear el directori"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: S'ha canviat el nom del directori abans de poder extreure'n l'estat"
+
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Els fitxers contigus s'extreuen com fitxers normals"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Es prova d'extreure els enllaços simbòlics com enllaços durs"
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: No espot extreure -- el fitxer continua des d'un altre volum"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Nom de la capçalera inesperadament llarg"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Tipus de fitxer «%c» desconegut, s'extreu com un fitxer normal"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "L'actual %s és igual d'antic o més nou"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: No es pot fer la còpia de seguretat d'aquest fitxer"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "No es pot canviar el nom de %s a %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: El directori ha canviat de nom a partir de %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: El directori ha canviat de nom"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: El directori és nou"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Marca horària invàlida"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Modificació invalida del temps (segons)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Modificació invàlida del temps (nanosegons)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Número de dispositiu invàlid"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Número de node d'identificació invàlid"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Camp massa llarg en llegir el fitxer d'instantània"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Error de lectura del fitxer d'instantània"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Final de l'arxiu d'instantània inesperat"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Valor de camp inesperat del fitxer d'instantània"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Falta el terminador del registre"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Format del fitxer incremental erroni"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "No se suporta la versió del format incremental: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Directori d'abocament mal format: s'esperava «%c» i s'ha trobat %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Directori d'abocament mal format: «X» duplicada"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Directori d'abocament mal format: nom buit a «R»"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Directori d'abocament mal format: «T» no està  precedit de «R»"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Directori d'abocament mal format: nom buit a «T»"
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Directori d'abocament mal format: s'esperava «%c» però s'ha trobat el final de les dades"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Directori d'abocament mal format: no s'ha fet servir «X»"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "No es pot crear el directori temporal fent servir la plantilla %s"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: No es purga el directori: no se'n pot saber l'estat"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: el directori és en un dispositiu diferent: no es purga"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: S'elimina %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: No es pot esborrar"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: S'ometen"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloc %s: ** Bloc de NULs **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloc %s: ** Final del Fitxer **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "bloc %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Capçalera amb blancs on hi hauria d'haver un valor numèric %s"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "El valor octal de l'arxiu %.*s està fora del rang %s; s'assumeix el complement a dos"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "El valor octal de l'arxiu %.*s està fora del rang %s"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "L'arxiu conté capçaleres amb base 64 que estan esdevenint obsoletes"
+
+#: src/list.c:809
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "La cadena de signatura %s amb base 64 de l'arxiu està fora del rang %s"
+
+#: src/list.c:840
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "El valor amb base 256 de l'arxiu està fora del rang %s "
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:869
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "L'arxiu conté %.*s on hi hauria d'haver un valor numèric de tipus %s"
+
+#. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
+#: src/list.c:891
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "El valor %s de l'arxiu està fora del rang %s %s..%s"
+
+#: src/list.c:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " enllaç cap a %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tipus de fitxer desconegut %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Enllaç llarg--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nom Llarg--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Capçalera del volum--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Continua al byte %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Es crea el directori:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "No es pot trobar el directori de treball"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Es canvia el nom %s per %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: No es pot canviar el nom a %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Es torna a canviar el nom %s a %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: El fitxer s'ha esborrat abans de poder-lo llegir"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "procés descendent"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "canal d'intercomunicació"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Caràcters de patró de coincidència que es fan servir en noms de fitxers"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Feu servir --wildcards per habilitar els patrons de coincidència, o --no-wildcars per eliminar aquest avís."
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: No s'ha trobat a l'arxiu"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: No s'ha trobat cap coincidència a l'arxiu"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "L'etiqueta de l'arxiu no coincideix"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "No podeu fer servir la opció -C als llistats de fitxer amb --listed-incremental"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Només podeu fer servit una opció -C amb --listed-incemental"
+
+#: src/tar.c:81
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Ambdues opcions «-%s» i «-%s» necessiten la sortida estàndard"
+
+#: src/tar.c:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Format de fitxer invàlid"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "El format de l'arxiu és incompatible perquè requereix característiques de GNU"
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Estil de citació desconegut «%s». Feu servir «%s --quoting-style=help» per obtenir-ne una llista."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' desa molts fitxers agrupats en un sol arxiu de cinta o de disc, i pot recuperar fitxers individuals de l'arxiu.\n"
+"\n"
+"Exemples:\n"
+" tar -cf arxiu.tar foo bar # Crea l'arxiu.tar dels fitxers foo i bar.\n"
+" tar -tvf arxiu.tar # Fa una llista detallada dels fitxers que hi ha a l'arxiu.tar.\n"
+" tar -xf arxiu.tar # Extreu tots els fitxers de l'arxiu.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"El sufix de les còpies de seguretat és «~», a no ser que s'especifiqui amb --suffix o SIMPLE_BACKUP_SUFFIX.\n"
+"El control de versions pot ser especificat amb --backup or VERSION_CONTROL, els valors possibles son:\n"
+"\n"
+" none, off no facis mai còpies de seguretat\n"
+" t, numbered fes còpies de seguretat numerades\n"
+" nil, existing numerades si existeixen còpies de seguretat numerades, si no simples\n"
+" never, simple fes sempre còpies de seguretat simples\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Mode d'operació principal:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "Llista els continguts d'un arxiu"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "extreu fitxers d'un arxiu"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "crea un arxiu nou"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "cerca diferències entre un arxiu i el sistema de fitxers"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "afegeix fitxers al final d'un arxiu"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "només afegeix els fitxers més nous que les còpies dins l'arxiu"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "afegeix fitxers tar a un arxiu"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "esborra de l'arxiu (excepte en cintes magnètiques!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "prova l'etiqueta de volum de l'arxiu i surt"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Modificadors d'operació:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "tracta fitxers dispersos de manera eficient"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MENOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "estableix la versió del format de dispersió que cal fer servir (implica --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "tracta l'antic format incremental GNU de còpies de seguretat"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "tracta el nou format de còpies de seguretat incrementals de GNU"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "nivell de bolcat per l'arxiu llistat-incremental creat"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "no surtis si l'estat és diferent de zero quan trobis fitxers il·legibles "
+
+#: src/tar.c:429
+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 "processa només la ENÈssima aparició de cada fitxer a l'arxiu; aquesta opció només és vàlid amb una de les següents subcomandes --delete, --diff, --extract o --list i quan es dona una llista de fitxers ja sigui a la línia de comandes com amb l'opció -T; ENA val 1 per defecte"
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "l'arxiu pot buscar-se"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "L'arxiu no pot buscar-se"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "no comprovis el número de dispositiu quan creis arxius incrementals"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "comprova el número de dispositiu quan creis arxius incrementals (per defecte)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Control de sobreescriptura:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "intenta verificar l'arxiu després d'escriure'l"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "eliminar els fitxers després d'afegir-los a l'arxiu"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "no reemplacis els fitxers existents quan els extreguis"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "no reemplacis els fitxers existents que siguin més nous que les còpies de l'arxiu"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "sobreescriu els fitxers existents quan els extreguis"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "elimina cada fitxer abans d'extreure-hi a sobre"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "buida les jerarquies abans d'extreure el directori"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "conserva les metadades dels directoris existents"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "sobreescriu les metadades dels directoris existents quan s'extreguin (per defecte)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Selecciona la sortida del flux de dades:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "extreu els fitxers a la sortida estàndard"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "COMANDA"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "condueix els fitxers extrets a un altre programa"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ignora els codis de sortida dels processos fill"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "tracta els codis de sortida dels processos fills diferents de zero com a error"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Gestió dels atributs del fitxer:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "força NOM coma propietari dels fitxers afegits"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "força NOM com a grup pels fitxers afegits"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATA-O-FITXER"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "estableix mtime pels fitxers afegits des de DATA-O-FITXER"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "CANVIS"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "força CANVIS de mode (simbòlic) als fitxers que s'afegeixin"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "MÈTODE"
+
+#: src/tar.c:499
+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 "conserva les hores d'accés dels fitxers bolcats, ja sigui restaurant les hores després de llegir-los (MÈTODE='replace'; per defecte) o no posant primer les hores(MÈTODE='system')"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "no extreguis la data de modificació dels fitxers"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "intenta extreure els fitxers amb el mateix propietari que existeix a l'arxiu (per defecte pel superusuari)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "extreu el fitxer com a tu mateix com a propietari (per defecte pels usuaris ordinaris"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "fes servir sempre números pels noms de usuari/grup"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "extreu la informació dels permisos del fitxer (per defecte per al superusuari)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "fes servir els permisos especificats per l'usuari qua s'extreguin permisos de l'arxiu (per defecte per usuaris normals)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "ordena els noms a extreure per que coincideixin amb els de l'arxiu"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "el mateix que per -p i -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "no modifiquis els temps i els permisos dels directoris extrets fins que s'acabi l'extracció"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "cancel·la l'efecte de l'opció --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Selecció i canvi de dispositiu:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARXIU"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "fes servir el fitxer o dispositiu ARXIU"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "l'arxiu és local encara que tingui dos punts"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "fes servir la COMANDA rmt en comtes de rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "fes servir la COMANDA remota en comptes de rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "especifica la unitat i la densitat"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "crea/llista/extreu arxius de múltiples volums"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "canvia la cinta després d'escriure NÚMERO x 1024 bytes"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "executa seqüència al final de cada cinta (implica -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "fes servir/actualitza el número de volum del FITXER"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blocs als dispositius:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCS"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOCS x 512 bytes per registre"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "NÚMERO de bytes per registre, múltiple de 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignora els blocs posats a zero de l'arxiu (volen dir fi del fitxer)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "refés els blocs mentre els llegeixes (per conductes de 4.2BSD)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Selecció del format de l'arxiu: "
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "crea un arxiu del format especificat"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "El FORMAT és un dels següents"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "format tar de l'antiga versió 7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "format GNU tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "format GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "format POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "format POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "el mateix que pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "el mateix que --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "el mateix que --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "paraula clau[[:]=valor][,paraula clau[[:]=valor]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "controla les paraules clau de pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "crea l'arxiu amb el nom de volum TEXT. Quan es llista/s'extreu, utilitza TEXT com a patró global de noms de volum"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Opcions de compressió:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "utilitza el sufix de l'arxiu per determinar el programa de compressió"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "no fa servir el sufix de l'arxiu per determinar el programa de compressió"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROGRAMA"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtra mitjançant PROGRAMA (ha d'acceptar -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Selecció de fixter local:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "afegeix el FITXER a l'arxiu (útil si el nom comença per un guió)"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "DIRECTORI"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "Canvia al directori DIRECTORI"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "obté els noms que cal extreure u crear del FITXER"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T llegeix els noms acabats en nul, desactivar-ho amb -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "deshabilita l'efecte del la opció --null prèvia"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "treu les cometes dels noms dels fitxers llegits amb -T (per defecte)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "no treguis les cometes dels noms dels fitxers llegits amb -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "PATRÓ"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "exclou els fitxers que es donen com un PATRÓ"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "exclou els patrons que es llisten al FITXER"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "exclou el contingut dels directoris que continguin CACHEDIR.TAG, excepte el propi fitxer d'etiquetes"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "exclou tot el que estigui als directoris que continguin CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "exclou els directoris que continguin CACHEDIR.TAG "
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "exclou el contingut dels directoris que contenen el FITXER, excepte el FITXER mateix"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "exclou tot el que hi hagi al directori que contingui el FITXER"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "exclou els directoris que continguin el FITXER"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "exclou els directoris del sistema de control de versions"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "exclou els fitxers de còpia de seguretat i de blocat"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "no baixa automàticament als directoris"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "queda't al sistema de fitxers local quan creïs l'arxiu"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "incloure els subdirectoris (per defecte)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "no treguis les primeres «/» dels noms dels fitxers"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "segueix els enllaços simbòlics; arxiva i aboca els fitxers als quals apunten"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "segueix els enllaços durs; arxiva i aboca els fitxers als quals es refereix"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "NOM-DEL-MEMBRE"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "comença al membre NOM-DEL MEMBRE de l'arxiu"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "desa només els fitxers més nous que DATA-O-FITXER"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATA"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "compara la data i l'hora només quan les dades hagin canviat"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "fes una còpia de seguretat abans d'esborrar, tria el CONTROL de versions"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "CADENA"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "fa una còpia de seguretat abans d'esborrar, substitueix el sufix usual («~» si no s'ha definit la variable d'entorn SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Transformacions del nom del fitxer:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "treu NÚMERO components de la capçalera dels noms dels fitxers quan extreu"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "EXPRESSIÓ"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "fes servir l'EXPRESSIÓ de substitució sed per transformar els noms dels fitxers"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "opcions de concordança de nom de fitxer (afecta tant als patrons de inclusió com als d'exclusió):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "ignora diferències majúscules/minúscules"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "comprova els patrons del començament del nom del fitxer"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "comprova els patrons després de qualsevol «/» (per defecte a les exclusions) "
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "comprova diferències majúscules/minúscules (per defecte)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "fa servir comodins (per defecte a les exclusions)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "concordància exacte a les cadenes"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "els comodins no han de concordar amb «/»"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "els comodins han de concordar amb «/» (per defecte a les exclusions)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Sortida informativa:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "llista els fitxers processats detalladament"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "PARAULA CLAU"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "control d'avisos"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "mostra els missatges de progres cada NÚMERO registres (per defecte 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ACCIÓ"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "executa ACCIÓ a cada punt de comprovació"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "mostra un missatge si no s'aboquen tots els enllaços"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SENYAL"
+
+#: src/tar.c:751
+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 "mostra els bytes totals després de processar l'arxiu. Amb un argument - mostra els bytes totals quan es rep el SENYAL. Els senyals permesos són: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 i SIGUSR2. També s'accepta els noms sense el prefix SIG"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "mostra l'hora de modificació del fitxer en UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "Mostra l'hora del fitxer amb alta precisió"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "envia la sortida detallada al FITXER"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "mostra el número de bloc de dins l'arxiu a cada missatge"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "demana la confirmació per cada acció"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "mostra els valors per defecte de tar"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "quan es llisti o s'extregui, llista tots els directoris que no es corresponguin amb el criteri de cerca"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "mostra el nom del fitxer o de l'arxiu després de la transformació"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "ESTIL"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "estableix el nom de l'estil de citació; vegeu més avall una llista de valors vàlids per ESTIL"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "més caràcters de cometes des de CADENA"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "deshabilita els caràcters de cometa de la CADENA"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Opcions de compatibilitat:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "quan es crea, el mateix que --old-archive; quan s'extreu, el mateix que --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Altres opcions:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "desactiva l'ús de certes opcions potencialment perjudicials"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "No podeu especificar més d'un «-Acdtrux» o d'opció «--test-label»"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Opcions de compressió conflictives"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Nom del senyal desconegut: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "No s'ha trobat el fitxer de mostra de la data"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "S'està substituint %s pel format de data desconegut %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Opció %s: S'està tractant la data «%s» com a %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: la llista de fitxers ja s'ha llegit"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: la lectura del nom del fixter conté un caràcter nul"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtra l'arxiu a mitjançant %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Les opcions vàlides per la opció --quoting-style són:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Aquest* tar va per defecte en:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Factor de blocs invàlid"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Longitud de la cinta invàlida"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "valor invàlid del nivell d'increment"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Més d'una data del llindar"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "valor de la versió de la opció de dispersió invalid"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "No es permet l'ús de --atime-preserve=«system» en aquesta plataforma"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "El valor --checkpoint no és un enter"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Grup invàlid"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Mode invàlid donat a les opcions"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Número invàlid"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Propietari invàlid"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "La opció --preserve es obsoleta, en comptes d'això feu servir --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Mida del registre invàlida"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "La mida del registre ha de ser múltiple de %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Nombre d'elements invàlid"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Només es permet una opció --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Argument de densitat mal format: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Densitat desconeguda: «%c»"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Opcions «-[0-7][lmh]» no suportades per *aquest* tar"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[FITXER]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "L'opció antiga «%c» requereix un argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence no te sentit sense una llista de fitxers"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence no es pot utilitzar en el mode d'operació que ha requerit"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Per a múltiples arxius de fitxers es requereix l'opció «-M»"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "No es pot combinar --listed-incremental amb --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level no té sentit sense --listed-incremental"
+
+#: src/tar.c:2423
+#, 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'etiqueta del volum és massa llarga (el limit és %lu byte)"
+msgstr[1] "%s: l'etiqueta del volum és massa llarga (el limit és %lu bytes)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "No es poden verificar els arxius multi-volum"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "No es poden verificar els arxius comprimits"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "No es poden utilitzar arxius comprimits multi-volum"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "No es poden concatenar arxius comprimits"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option només es pot utilitzar en arxius POSIX"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "La llargada del volum no pot ser inferior que la mida del registre"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order no és compatible amb --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "S'està refusant covardament crear un arxiu buit"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Les opcions «-Aru» son incompatibles amb «-f -»"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Heu d'especificar una opció «-Acdtrux» o «--test-label»"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Se surt amb estat de fallida degut a errors prèvis"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: El fitxer s'encongeix %s byte"
+msgstr[1] "%s: El fitxer s'encongeix %s bytes"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "La paraula clau %s és desconeguda o encara no s'ha implementat"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "La marca horària està fora del rang permés"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "No s'ha pogut utilitzar el patró %s "
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "No s'ha pogut sobreescriure la paraula clau %s"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Capçalera estesa mal formada: falta la longitud"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Longitud de la capçalera estesa està fora del rang permès"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "La longitud de la capçalera estesa %*s està fora de rang"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Capçalera estesa mal formada: falta l'espai després de la longitud"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Capçalera estesa mal formada: falta el signe igual"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Capçalera estesa mal formada: falta el salt de línia"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "S'ignora la paraula clau desconeguda de la capçalera estesa «%s»"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "La paraula clau/parella de valors generada és massa llarga (paraula clau=%s, longitud=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "La capçalera estesa %s=%s està fora del rang %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Capçalera estesa mal formada: %s=%s invàlid"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Capçalera estesa mal formada: excedeix %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Capçalera estesa mal formada: %s invàlid, delimitador %c inesperat"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Capçalera estesa mal formada: %s invàlid: nombre de valors incorrecte"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: no és un temps d'espera vàlid"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: acció del punt de comprovació desconegut"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "escriu"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "llegeix"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Punt de comprovació d'escriptura %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Punt de comprovació de lectura %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile manipula els fitxers de dades al conjunt de programes de proves GNU paxutils.\n"
+"Les OPCIONS són:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Opcions de creació de fitxers:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "MIDA"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Crea un fitxer de la MIDA indicada"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Escriu al fitxer amb NOM, en comptes de la sortida estàndard"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Llegeix els noms dels fitxers del FITXER"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T llegeix els noms acabats en nul"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Omple el fitxer amb el PATRÓ indicat. El PATRÓ és «per defecte» o «zeros»"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Mida d'un bloc per fitxer dispers"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Genera un fitxer dispers. La resta de la línia de comandes indica el mapa del fitxer"
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "ÒFSET"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Cerca l'òfset donat abans d'escriure les dades"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Opcions de les estadístiques dels fitxers:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Mostra el contingut de l'estructura stat per cadascun dels fitxers indicats. El FORMAT per defecte és:"
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Opcions d'execució sincrónica:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPCIÓ"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Executa ARGS. Útil amb --checkpoint i i una entre --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Realitzar les accions donades (mirar avall) quan s'arrivi al punt de comprovació NÚMERO"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Defineix la data per a la següent opció --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Mostra els punts de comprovació executats i l'estat de sortida de la COMANDA"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Accions d'execució sincrónica. Aquestes son executades quan s'arriba al númerode punts de comprovació donat per --checkpoint"
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Talla el FITXER a la mida especificada amb la opció --length prèvia (o 0, si no s'ha especificat)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Afegeix MIDA bytes al FITXER. MIDA s'ha especificat amb la opció --length prèvia."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Actualitza les hores d'accés i modificació del FITXER"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Executa COMANDA"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Desfés l'enllaç del FITXER"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Mida invàlida: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Número fora de l'abast permés: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Mida negativa: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "Ha fallat la petició d'stat(%s)"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "mida del fitxer sol·licitada %lu, actual %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "el fitxer creat no és dispers"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Error en analitzar el número prop de «%s»"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Format de data desconegut"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGS...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "no es pot obrir «%s»"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "no es pot cercar"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "el nom del fitxer conté un caràcter nul"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "no es pot generar fitxers dispersos a la sortida estàndard, empreu la opció --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "màscara incorrecta (prop de «%s»)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Camp desconegut «%s»"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "no es pot definir el temps de «%s»"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "no es pot desfer l'enllaç «%s»"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "La comanda ha finalitzat amb èxit\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "La comanda ha fallat amb estat %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "La comanda ha finalitzat amb la senyal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "La comanda ha parat amb la senyal %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "La comanda ha abocat l'ànima\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Comanda finalitzada\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat requereix noms de fitxers"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: El directori s'ha esborrat abans de poder-lo llegir"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "No es pot desar al directori de treball"
diff --git a/po/cs.po b/po/cs.po
new file mode 100644
index 00000000..f076b07b
--- /dev/null
+++ b/po/cs.po
@@ -0,0 +1,3135 @@
+# 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, 2011.
+#
+# 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.
+#
+# 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)
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-13 19:24+0100\n"
+"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
+"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
+"Language: cs\n"
+"MIME-Version: 1.0\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argument %s je pro %s neplatný"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argument %s není pro %s jednoznačný"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Platné argumenty jsou:"
+
+#: gnu/argp-help.c:149
+#, c-format
+msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
+msgstr "ARGP_HELP_FMT: hodnota %s je menší nebo rovna %s"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: parametr ARGP_HELP_FMT vyžaduje hodnotu"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: parametr ARGP_HELP_FMT musí být kladný"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Neznámý parametr ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Nepořádek v ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+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čů."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Použití:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr "nebo: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [PŘEPÍNAČ…]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Více informací získáte pomocí „%s --help“ nebo „%s --usage“.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Chyby v programu oznamujte na adrese %s (anglicky), připomínky k překladu na adrese <translation-team-cs@lists.sourceforge.net> (česky).\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Neznámá systémová chyba"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "vypíše tuto nápovědu"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "vypíše stručný návod na použití"
+
+# JMÉNO jako v příslušné položce nápovědy
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "JMÉNO"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "nastaví název programu"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEKUNDY"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "zastaví se na SEKUNDY sekund (implicitně 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "vypíše verzi programu"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(CHYBA PROGRAMU) Verze není známa!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Příliš mnoho argumentů\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(CHYBA PROGRAMU) Přepínač by měl být znám!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "chyba zápisu"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: přepínač „%s“ není jednoznačný\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, 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"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, 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"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: přepínač „--%s“ vyžaduje argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: nerozpoznaný přepínač „--%s“\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: nerozpoznaný přepínač „%c%s“\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: neplatný přepínač -- „%c“\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: přepínač vyžaduje argument -- %c\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: přepínač „-W %s“ není jednoznačný\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, 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"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: přepínač „-W %s“ vyžaduje argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "paměť vyčerpána"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "pracovní adresář nelze si nelze zapamatovat"
+
+#: gnu/openat-die.c:59
+#, c-format
+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.
+#.
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "„"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "“"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[aAyY].*"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN].*"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Zabaleno kým: %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+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.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+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.
+#: gnu/version-etc.c:108
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Napsali %s a %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\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"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Domovská stránka %s: <%s>\n"
+
+#: 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"
+
+#: 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"
+
+#. 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"
+
+#: 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
+#, 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Odstraňuje se úvodní „%s„ z názvů prvků"
+
+#: lib/paxnames.c:141
+#, 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:154
+msgid "Substituting `.' for empty member name"
+msgstr "Prázdný prvek názvu se nahradí „.“"
+
+#: lib/paxnames.c:155
+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 "K %s se nelze připojit: selhal překlad"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Vzdálený shell není možné spustit"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Směr posunu je mimo rozsah"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Chybný směr posunu"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Neplatná pozice posunu"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Pozice posunu je je mimo rozsah"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Neplatný počet bajtů"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Počet bajtů je mimo rozsah"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Předčasný konec souboru"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Neplatní kód operace"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operace není podporována"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Neočekávané argumenty"
+
+#: rmt/rmt.c:689
+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:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "ČÍSLO"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "nastaví úroveň ladění"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "SOUBOR"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "nastaví název souboru pro výstup ladění"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "„%s“ nelze otevřít"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "příliš mnoho argumentů"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Neznámý příkaz"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Toto pravděpodobně není tar archiv"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Celkem zapsáno bajtů"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Celkem přečteno bajtů"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Celkem smazáno bajtů: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(roura)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Chybná hodnota pro velikost záznamu"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Název archivu nebyl zadán"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Stdin/Stdout archiv nelze ověřit"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Archiv je komprimován. Použijte přepínač %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Komprimovaný archiv nelze aktualizovat"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Páska na začátku, končím"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Příliš mnoho chyb, končím"
+
+#: src/buffer.c:892
+#, 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 bloky"
+msgstr[2] "Velikost záznamu = %'lu bloků"
+
+#: src/buffer.c:913
+#, 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 bajty) v archivu"
+msgstr[2] "Nezarovnaný blok (%'lu bajtů) v archivu"
+
+#: src/buffer.c:990
+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ý"
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek se nezastavil na hranici záznamu"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: obsahuje neplatné číslo svazku"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "U čísla svazku nastalo přetečení"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Připravte svazek #%d pro archiv %s a stiskněte return:"
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "Místo uživatelské odpovědi byl zadán konec souboru"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "VAROVÁNÍ: Archiv je nekompletní"
+
+#: src/buffer.c:1148
+#, 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á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:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Vytvořit podshell\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Vypsat tuto nápovědu\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Není nový svazek; končím.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Název souboru nebyl zadán. Zkuste to znovu.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Neplatný vstup. Nápovědu obdržíte napsáním „?“ (otazníku).\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "příkaz %s selhal"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s možná pokračuje na tomto svazku: hlavička obsahuje zkrácený název"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nepokračuje na tomto svazku"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s je špatné délky (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Tento svazek není je mimo pořadí (%s − %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Pro vyhodnocení vzorku %s musí být archiv pojmenován"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Svazek %s neodpovídá vzorku %s"
+
+#: src/buffer.c:1674
+#, 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:1865
+msgid "write did not end on a block boundary"
+msgstr "zápis neskončil na konci hranice bloku"
+
+#: 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] "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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Obsahy se liší"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Neočekávaný konec archivu"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Typ souboru se liší"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Práva se liší"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "UID se liší"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "GID se liší"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Čas poslední modifikace se liší"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Velikost se liší"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Není odkazem na %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Symbolický odkaz se liší"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Číslo zařízení se liší"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Ověřuji "
+
+#: src/compare.c:464
+#, 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"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Archiv obsahuje názvy souborů, kterým byly odstraněny předpony."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Archiv obsahuje transformované názvy souborů."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Při kontrole může selhat nalezení původních souborů."
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Osiřelý nulový blok na pozici %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: obsahuje značku keše adresáře %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "hodnota %s typu %s je mimo rozsah %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Generuji záporné osmičkové hlavičky"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: název souboru je příliš dlouhý (max. %d); nezpracován"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: název souboru je příliš dlouhý (nelze jej rozdělit); nezpracován"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: název odkazu je příliš dlouhý; nezpracován"
+
+#: src/create.c:1064
+#, 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 %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:1160
+#, 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"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "obsah nezpracován"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Neznámý typ souboru; soubor ignorován"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Chybí odkazy na %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: soubor není změněn; neaktualizován"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: soubor je archiv; nearchivován"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "adresář nezpracován"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: soubor byl během čtení změněn"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: soket ignorován"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: dveře ignorovány"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Přeskakuji na další hlavičku"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Z archivu je mazáno to, co není hlavička"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: nemožně stará časová značka %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: časová značka %s je %s s v budoucnosti"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Neočekávaná inkonzistence, při vytváření adresáře"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Adresář byl přejmenován dříve, než bylo možné získat jeho stav"
+
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Souvisle uložené soubory rozbaluji jako obyčejné soubory"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Zkouším rozbalit symbolické odkazy jako pevné odkazy"
+
+#: src/extract.c:1365
+#, 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"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Neočekávaná hlavička dlouhého názvu"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Neznámý typ souboru „%c“, rozbalen jako normální soubor"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Současný soubor %s je novější nebo stejně starý"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Tento soubor nebylo možné zálohovat"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s nelze přejmenovat na %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Adresář byl přejmenován z %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Adresář byl přejmenován"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Adresář je nový"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Neplatný čas souboru"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Neplatný čas změny obsahu souboru (sekundy)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Neplatný čas změny obsahu souboru (nanosekundy)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Neplatné číslo zařízení"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Neplatné číslo i-uzlu"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Při čtení souboru snímku: položka je příliš dlouhá"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Chyba čtení uvnitř souboru snímku"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Neočekávaný konec souboru snímku"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Neočekávaná hodnota položky v souboru snímku"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Chybí uzávěr záznamu"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Chybný formát přírůstkového souboru"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Nepodporovaná verze přírůstkového formátu: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Poškozený dumpdir: očekáváno „%c“, ale nalezeno %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Poškozený dumpdir: „X“ duplikováno"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Poškozený dumpdir: prázdný název v „R“"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Poškozený dumpdir: „R“ není před „T“"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Poškozený dumpdir: prázdný název v „T“"
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Poškozený dumpdir: očekáváno „%c“, ale zjištěn konec dat"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Poškozený dumpdir: „X“ nebylo nikdy použito"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Podle šablony %s nelze vytvořit dočasný adresář"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Adresář nebude vyčištěn: nelze provést stat()"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: adresář je na jiném zařízení: nebude vyčištěn"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Mažu %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Nelze smazat"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Vynechávám"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok NUL **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Konec souboru **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:763
+#, 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"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Archiv obsahuje zastaralé base-64 hlavičky"
+
+#: src/list.c:809
+#, 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"
+
+#: src/list.c:840
+#, 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:869
+#, 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"
+
+#. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
+#: src/list.c:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " odkaz na %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " neznámý souborový typ %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Dlouhý odkaz--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Dlouhý název--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Hlavička svazku--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Pokračováno od %s bajtu--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Vytvářím adresář:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Nelze zjistit pracovní adresář"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Přejmenovávám %s na %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: nelze přejmenovat na %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Přejmenovávám %s zpět na %s\n"
+
+#: src/misc.c:850
+#, 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:871
+msgid "child process"
+msgstr "potomek"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "meziprocesový kanál"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "V názvech souborů se nachází žolíkové znaky"
+
+#: src/names.c:592
+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, nebo varování potlačte prostřednictvím --no-wildcards"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: V archivu nenalezen"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Požadovaný výskyt nebyl v archivu nalezen"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Název archivu se neodpovídá"
+
+#: src/names.c:949
+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:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "S --listed-incremental je dovolen pouze jediný přepínač -C"
+
+#: 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"
+
+#: src/tar.c:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Neplatný formát archivu"
+
+#: 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"
+
+#: 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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"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"
+" tar -xf archiv.tar # Rozbalí všechny soubory z archiv.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" 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"
+" 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:387
+msgid "Main operation mode:"
+msgstr "Hlavní operační režim:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "vypíše obsah archivu"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "vybalí soubory z archivu"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "vytvoří nový archiv"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "hledá rozdíly mezi archivem a systémem souborů"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "připojí soubory na konec archivu"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "připojí jen takové soubory, které jsou novější nežli kopie v archivu"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "připojí k archivu tarové soubory"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "smaže z archivu (ne na magnetických páskách!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "otestuje jmenovku archivního svazku a skončí"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Operační modifikátory:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "zachází s řídkými soubory efektivně"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "HLAVNÍ[.VEDLEJŠÍ]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "nastaví verzi řídkého formátu (implikuje --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "zpracuje přírůstkové zálohy starého formátu GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "zpracuje přírůstkové zálohy nového formátu GNU"
+
+#: src/tar.c:425
+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:427
+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:429
+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:435
+msgid "archive is seekable"
+msgstr "v archivu se lze posunovat"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "v archivu se lze posunovat"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "při vytváření přírůstkových archivů se nekontrolují čísla zařízení"
+
+#: src/tar.c:442
+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:448
+msgid "Overwrite control:"
+msgstr "Ovládání přepisování:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "pokusí se zkontrolovat archiv po té, co bude zapsán"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "odstraní soubory po té, co budou přidány do archivu"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "při rozbalovaní nenahrazuje existující soubory"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "při rozbalování existující soubory přepisuje"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "před vybalením každého souboru jej odstraní"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "před vybalením adresáře vytvoří prázdnou hierarchii"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "zachovává metadata existujících adresářů"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "při rozbalování přepisuje metadata existujících adresářů (implicitní)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Výběr výstupního proudu:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "soubory vybaluje na standardní výstup"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "PŘÍKAZ"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "vybalené soubory pošle rourou jinému programu"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ignoruje návratový kód potomků"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "nenulový návratový kód potomků považuje za chybu"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Zacházení s atributy souborů:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "vynutí JMÉNO jako vlastníka vkládaných souborů"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "vynutí JMÉNO jako skupinu vkládaných souborů"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATUM_NEBO_SOUBOR"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "nastaví čas změny obsahu vkládaných souborů podle DATA_NEBO_SOUBORU"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "ZMĚNY"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "vynutí (symbolický) mód ZMĚN (přístupová práva) vkládaným souborům"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODA"
+
+#: src/tar.c:499
+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:503
+msgid "don't extract file modified time"
+msgstr "nevybaluje čas změny obsahu souboru"
+
+#: src/tar.c:505
+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:507
+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:509
+msgid "always use numbers for user/group names"
+msgstr "pro jména uživatel/skupin vždy použije čísla"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "vybaluje informace o právech souborů (implicitní pro superuživatele)"
+
+#: src/tar.c:515
+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:517
+msgid "sort names to extract to match archive"
+msgstr "při rozbalování seřadí názvy tak, aby odpovídaly pořadí v archivu"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "stejné jako -p -s"
+
+#: src/tar.c:522
+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:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "zruší účinek přepínače --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Výběr a přepínání zařízení:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "pro archiv požije soubor zařízení ARCHIV"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "soubor archivu je místní, i když obsahuje dvojtečku"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "namísto příkazu rmt použije PŘÍKAZ"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "namísto rsh použije PŘÍKAZ"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "určuje mechaniku a hustotu"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "vytvoří/vypíše/rozbalí vícesvazkový archiv"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "po zapsaní ČÍSLO × 1024 bajtů vymění pásku"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "na konci každé pásky spustí skript (implikuje -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "použije/aktualizuje číslo svazku v SOUBORU"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Bloky zařízení:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKY"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOKŮ × 512 bajtů na záznam"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "ČÍSLO bajtů na záznam, násobek 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "v archivu ignoruje vynulované bloky (znamená EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "předělat bloky v průběhu čtení (pro roury na BSD 4.2)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Výběr formátu archivu:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMÁT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "vytvoří archiv daného formátu"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMÁT je jeden z následujících:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "starý formát taru V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "formát taru GNU <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "formát taru GNU 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "formát POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "formát POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "stejné jako pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "stejné jako --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "stejné jako --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "klíčové_slovo[[:]=hodnota][,klíčové_slovo[[:]=hodnota]]…"
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "řídicí klíčová slova paxu"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:609
+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:614
+msgid "Compression options:"
+msgstr "Přepínače komprese:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "kompresní program určí podle přípony archivu"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "kompresní program neurčí podle přípony archivu"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROGRAM"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "archiv protáhne PROGRAMEM (musí znát -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Výběr místního souboru:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "ADRESÁŘ"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "změní adresář na ADRESÁŘ"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "seznam jmen souborů na rozbalení nebo zabalení získá ze SOUBORU"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T čte názvy zakončené nulovým znakem, vypne -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "zruší účinek předchozího přepínače --null"
+
+#: src/tar.c:650
+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:652
+msgid "do not unquote filenames read with -T"
+msgstr "nezruší citování (escapování) názvů souboru načtených přes -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "VZOR"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "vynechá soubory, které odpovídají VZORU"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "vynechá soubory vyjmenované v SOUBORU"
+
+#: src/tar.c:658
+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:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "vynechá vše pod adresáři obsahujícími CACHEADR.ZNAČKA"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "vynechá adresáře obsahující CACHEADR.ZNAČKA"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "vynechá obsah adresářů obsahujících SOUBOR, vyjma SOUBORU samotného"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "vynechá vše pod adresáři obsahujícími SOUBOR"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "vynechá adresáře obsahující SOUBOR"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "vynechá adresáře systému správy verzí"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "vynechá soubory záloh a zámků"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "zabrání automatickému sestupu do adresářů"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "při tvorbě archivu se zdrží v místním systému souborů"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "sestupuje rekurzivně do adresářů (implicitní)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "neodstraní z názvů souborů úvodní „/“"
+
+#: src/tar.c:685
+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:687
+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"
+
+# část cesty (adresář)
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "SLOŽKA_NÁZVU"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "začne v archivu na složce SLOŽKA_NÁZVU"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "ukládá jen soubory novější než DATUM_NEBO_SOUBOR"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATUM"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "při změně dat porovná datum i čas"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "STRATEGIE"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "před odstraněním vytvoří záložní kopii za použití STRATEGIE"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "ŘETĚZEC"
+
+#: src/tar.c:698
+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:703
+msgid "File name transformations:"
+msgstr "Transformace názvů souborů:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "při rozbalování odřízne ČÍSLO úvodních složek z názvů souborů"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "VÝRAZ"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "názvy souborů transformuje pomocí nahrazovacího VÝRAZU sedu"
+
+#: src/tar.c:714
+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:717
+msgid "ignore case"
+msgstr "ignoruje velikost písmen"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "vzory se testují název souboru od začátku"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "vzory se testují po každém „/“ (implicitní u vyloučení)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "testování je citlivé na velikost (implicitní)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "použije žolíkové znaky (implicitní u vyloučení)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "testuje se přesný řetězec"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "žolíkové znaky nezahrnují „/“"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "žolíkové znaky zahrnují „/“ (implicitní u vyloučení)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informativní výstup:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "vypisuje zpracovávané soubory"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KLÍČOVÉ_SLOVO"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "řídí varování"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "zobrazuje zprávy o postupu každých ČÍSLO. záznam (implicitně 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "AKCE"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "v každém kontrolním bodu vykoná AKCI"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "hlásí, že nebyly zpracovány všechny odkazy"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNÁL"
+
+#: src/tar.c:751
+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:756
+msgid "print file modification times in UTC"
+msgstr "časy změn obsahu souborů vypisuje v UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "časy souborů vypisuje v plném znění"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "informativní výstup pošle do SOUBORU"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "každou zprávu opatří číslem bloku uvnitř archivu"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "na každou akcí žádá potvrzení"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "zobrazí implicitní argumenty taru"
+
+#: src/tar.c:769
+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:771
+msgid "show file or archive names after transformation"
+msgstr "zobrazuje názvy souborů a archivů po transformaci"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STYL"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "nastaví styl citování názvů; platné hodnoty STYLŮ nalezte níže"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "cituje navíc znaky z ŘETĚZCE"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "zakáže citování znaků z ŘETĚZCE"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Přepínače pro kompatibilitu"
+
+#: src/tar.c:787
+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:792
+msgid "Other options:"
+msgstr "Další přepínače:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "zakáže použití některých potenciálně nebezpečných přepínačů"
+
+#: src/tar.c:930
+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:940
+msgid "Conflicting compression options"
+msgstr "Odporující si kompresní přepínače"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Neznámý název signálu: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Soubor, ze kterého se má vzít datum a čas, nebyl nalezen"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Datum neznámého formátu %2$s nahrazuji %1$s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Přepínač %s: S datem „%s“ bude zacházeno jako s %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: seznam souborů již načten"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: načtený název souboru obsahuje nulový znak"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "archiv protáhne skrze filtr %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Pro přepínač --quoting-style jsou platné argumenty:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Implicitní přepínače *tohoto* taru:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Neplatný počet bajtů na záznam"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Neplatná délka pásky"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Chybná hodnota úrovně přírůstku"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Více než jedeno počáteční datum"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Neplatná hodnota verze řídkého formátu"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' není na této platformě podporován"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "hodnota --checkpoint není celé číslo"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Neplatná skupina"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Zadána chybná práva"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Neplatné číslo"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Neplatný vlastník"
+
+#: src/tar.c:1964
+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:1975
+msgid "Invalid record size"
+msgstr "Chybná velikost záznamu"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Velikost záznamu musí být násobek %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Neplatný počet prvků"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Povolen je jen jeden přepínač --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Neplatný argument hustoty: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Neznámá hustota: „%c“"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Přepínače „-[0-7][lmh]“ nejsou *tímto* tarem podporovány"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[SOUBOR]…"
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Přepínač „%c“ vyžaduje argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "bez seznamu souborů nemá --occurrence smysl"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence nelze v požadovaném režimu operace použít"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Více archivačních souborů vyžaduje přepínač „-M“"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental a --newer nelze kombinovat"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level bez --listed-incremental postrádá smysl"
+
+#: src/tar.c:2423
+#, 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 bajty)"
+msgstr[2] "%s: Název svazku je příliš dlouhý (limit je %'lu bajtů)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Vícesvazkový archiv není možné ověřit"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Komprimovaný archiv nelze ověřit"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Vícesvazkový komprimovaný archiv nelze vytvořit"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Komprimované archivy nelze zřetězit"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "Přepínač --pax-option lze použít jen na posixových archivech"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Délka svazku nemůže být kratší než délka záznamu"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order není slučitelný s --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Vytvoření prázdného archivu odmítnuto."
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Přepínače „-Aru“ jsou neslučitelné s přepínačem „-f -“"
+
+#: src/tar.c:2621
+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:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Končí se chybovým kódem, protože byly zaznamenány chyby"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Klíčové slovo %s není známo nebo ještě nebylo implementováno"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Časový údaj je mimo povolený rozsah"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Vzor %s nelze použít"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Klíčové slovo %s nelze přebít"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Chybná rozšířená hlavička: chybí délka"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Délka rozšířené hlavičky je mimo povolený rozsah"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Délka rozšířené hlavičky %*s je mimo rozsah"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Chybná rozšířená hlavička: po délce chybí bílé místo"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Chybná rozšířená hlavička: chybí znak rovná se"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Chybná rozšířená hlavička: chybí odřádkování"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ignoruje se neznámé klíčové slovo „%s“ rozšířené hlavičky"
+
+#: src/xheader.c:831
+#, 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:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "%s=%s v rozšířené hlavičce je mimo rozsah %s–%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Chybná rozšířená hlavička: %s=%s není platné"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Chybná rozšířená hlavička: nadbytečná %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Chybná rozšířená hlavička: neplatný %s: neočekávaný oddělovač %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Chybná rozšířená hlavička: neplatný %s: lichý počet hodnot"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: neplatný časový limit"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: neznámá akce kontrolního bodu"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "zápis"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Kontrolní bod čtení %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile pracuje s datovými soubory testovacího balíku GNU paxutils.\n"
+"PŘEPÍNAČE jsou:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Přepínače tvorby souboru:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "VELIKOST"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Vytvoří soubor zadané VELIKOSTI"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Místo na standardní výstup píše do souboru JMÉNO"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Názvy souborů čte ze SOUBORU"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T čte názvy zakončené nulovými znaky"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Velikost bloku pro řídké soubory"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Vytvoří řídký soubor. Zbytek příkazové řádku definuje mapu souboru."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "POZICE"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Před zápisem dat se přesune na zadanou POZICI"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Přepínače statistiky souboru:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Přepínače synchronního vykonávání:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "PŘEPÍNAČ"
+
+#: tests/genfile.c:164
+msgid "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:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Provede zadanou akci (vizte níže) při dosažení kontrolního bodu ČÍSLO"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Nastaví datum pro následující přepínač --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Zobrazuje prováděné kontrolní body a návratové kódy PŘÍKAZU"
+
+#: tests/genfile.c:178
+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:181
+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:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "Aktualizuje časy přístupu a změny obsahu SOUBORU"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Vykoná PŘÍKAZ"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Smaže (unlink) SOUBOR"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Neplatná velikost: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Číslo je mimo povolený rozsah: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Záporná velikost: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) selhalo"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "požadovaná délka souboru %'lu, aktuální %'lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "vytvořený soubor není řídký"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Chyba při rozebírání čísla poblíž „%s“"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Neznámý formát data"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENT…]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "„%s“ nelze otevřít"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "v souboru se nelze pohybovat"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "název souboru obsahuje nulový znak"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "nesprávná maska (poblíž „%s“)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Neznámá položka „%s“"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "Souboru „%s“ nelze nastavit čas"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "„%s“ nelze odstranit (unlink)"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Příkaz skončil úspěšně\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Příkaz selhal s kódem %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Příkaz skončil signálem %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Příkaz pozastaven signálem %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Příkaz skončil výpisem obrazu paměti\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Příkaz ukončen\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat potřebuje název souboru"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: Adresář smazán dříve než mohl být přečten"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Pracovní adresář nelze uchovat"
+
+#~ msgid "Cannot resolve hostname %s"
+#~ msgstr "Název počítače %s nelze přeložit"
+
+#~ 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"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "Komprimované nebo vzdálené archivy nelze použít"
+
+#~ msgid "tar (child)"
+#~ msgstr "tar (potomek)"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (prapotomek)"
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "VAROVÁNÍ: Chybí hlavička svazku"
+
+#~ msgid "Child returned status %d"
+#~ msgstr "Potomek vrátil status %d"
+
+#~ msgid "Member names contain `..'"
+#~ msgstr "Názvy souborů obsahují „..“"
+
+#~ msgid "%s: Member name contains `..'"
+#~ msgstr "%s: Název souboru obsahuje „..“"
+
+#~ msgid "Visible long name error"
+#~ msgstr "Viditelná chyba dlouhého názvu"
+
+#~ msgid "Device number out of range"
+#~ msgstr "Číslo zařízení je mimo rozsah"
+
+#~ msgid "Visible longname error"
+#~ msgstr "Viditelná chyba dlouhého názvu"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "Soubor %s přejmenován na %s"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ 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"
+
+#~ msgid "Missing file name after -C"
+#~ msgstr "Za -C chybí název souboru"
+
+#~ msgid "Copyright %d Free Software Foundation, Inc."
+#~ msgstr "Copyright %d Free Software Foundation, Inc."
+
+#~ 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 ""
+#~ " 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 textech\n"
+#~ "v souboru COPYING."
+
+#~ msgid "rmtd: Garbage command %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 nebo \n"
+#~ "disk. Z archivu dokáže rozbalit jak celé hierarchie souborů, tak i jednotlivé\n"
+#~ "soubory.\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"
+#~ " 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"
+
+#~ 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"
+#~ "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"
+
+#~ msgid ""
+#~ "\n"
+#~ "Operation modifiers:\n"
+#~ " -W, --verify attempt to verify the archive after writing it\n"
+#~ " --remove-files remove files after adding them to the archive\n"
+#~ " -k, --keep-old-files don't replace existing files when extracting\n"
+#~ " --overwrite overwrite existing files when extracting\n"
+#~ " -U, --unlink-first remove each file prior to extracting over it\n"
+#~ " --recursive-unlink empty hierarchies prior to extracting directory\n"
+#~ " -S, --sparse handle sparse files efficiently\n"
+#~ " -O, --to-stdout extract files to standard output\n"
+#~ " -G, --incremental handle old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " handle new GNU-format incremental backup\n"
+#~ " --ignore-failed-read do not exit with nonzero on unreadable 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 archivaci\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"
+#~ " -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"
+
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --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"
+#~ " 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/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"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device selection and switching:\n"
+#~ " -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+#~ " --force-local archive file is local even if has a colon\n"
+#~ " --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+#~ " -[0-7][lmh] specify drive and density\n"
+#~ " -M, --multi-volume create/list/extract multi-volume archive\n"
+#~ " -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+#~ " --new-volume-script=FILE same as -F FILE\n"
+#~ " --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 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"
+#~ " (zahrnuje i -M)\n"
+#~ " --new-volume-script=SOUBOR stejné jako -F SOUBOR\n"
+#~ " --volno-file=SOUBOR použije/aktualizuje číslo svazku v SOUBORu\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device blocking:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+#~ " --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+#~ " -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+#~ " -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 zbytek\n"
+#~ " (vhodné pro roury)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -o, --old-archive, --portability write a V7 format archive\n"
+#~ " --posix write a POSIX format archive\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -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í 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"
+
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -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í 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 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 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"
+
+#~ msgid ""
+#~ " -N, --newer=DATE only store files newer than DATE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed 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"
+#~ " data\n"
+#~ " --after-date=DATUM stejné jako -N\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --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"
+
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --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"
+
+#~ msgid ""
+#~ "\n"
+#~ "GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+#~ "is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+#~ "Support for POSIX is only partially implemented, don't count on it yet.\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*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"
+
+#~ msgid "Obsolete option, now implied by --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"
+
+#~ msgid "Obsolete option name replaced by --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"
+
+#~ msgid "Obsolete option name replaced by --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"
+
+#~ 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?"
+
+#~ msgid "Obsolete option name replaced by --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."
+
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "Za běhu programu nastala chyba"
+
+#~ msgid ""
+#~ "If a long option shows an argument as mandatory, then it is mandatory\n"
+#~ "for the equivalent short option also.\n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH of generated file\n"
+#~ " -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+#~ " --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"
+#~ "\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“"
diff --git a/po/da.po b/po/da.po
new file mode 100644
index 00000000..f4e13ca7
--- /dev/null
+++ b/po/da.po
@@ -0,0 +1,2620 @@
+# Danish messages for GNU tar.
+# Copyright (C) 1996 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+#
+# Claus Hindsgaul <claus_h@image.dk>, 2001.
+# Keld Jrn Simonsen <keld@keldix.com>, 2000-2001,2009,2010.
+# Keld Simonsen <keld@keldix.com>, 2010-2011.
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-04-12 10:18+0100\n"
+"Last-Translator: Keld Simonsen <keld@keldix.com>\n"
+"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+"Language: da\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"
+"X-Generator: Lokalize 1.0\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "ugyldigt argument %s for %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "flertydigt argument '%s' for %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Gyldige argumenter er:"
+
+#: 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 vrdi er mindre eller lig med %s"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: Parameter for ARGP_HELP_FMT krver en vrdi"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: Parameter fra ARGP_HELP_FMT skal vre positiv."
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Ukendt ARGP_HELP_FMT-parameter"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Skidt i ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Obligatoriske eller valgfri argumenter til lange flag er ogs obligatoriske eller valgfri for alle tilsvarende korte flag."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Brug:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " eller: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [FLAG...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Prv '%s --help' eller '%s --usage' for mere information.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Rapportr fejl til %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Ukendt systemfejl"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "vis denne hjlpetekst"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "vis en kort hjlpemeddelelse"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAVN"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "angiv progravnavnet"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "vent i SEK sekunder (standardvrdi 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "vis programversion"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMFEJL) Ingen version kendt!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: For mange argumenter\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMFEJL) Flag burde vre genkendt!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "skrivefejl"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: flag '%s' er flertydigt\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: flag '--%s' tillader ikke et argument\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: flag '%c%s' tillader ikke et argument\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: flag '--%s' krver et argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: ukendt flag '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: ukendt flag '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: ugyldigt flag -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: flag krver et argument -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: flag '-W %s' er flertydigt\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: flag '-W %s' tillader ikke et argument\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: flag '-W %s' krver et argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "hovedlager opbrugt"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "Kan ikke notere nuvrende arbejdskatalog"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "Kan ikke g tilbage til oprindeligt arbejdskatalog"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "'"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[jJyY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Pakket af %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Pakket af %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr ""
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Licens GPLv3+: GNU GPL version 3 eller senere <http://gnu.org/licenses/gpl.html>.\n"
+"Dette program er frit programmel. Du kan ndre og distribuere det.\n"
+"Der er ikke NOGEN SOM HELST GARANTI, i det omfang som lov tillader.\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Skrevet af %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:108
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Skrevet af %s og %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "Skrevet af %s, %s og %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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s\n"
+"og %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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s,\n"
+"%s og %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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s,\n"
+"%s, %s og %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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s,\n"
+"%s, %s, %s og %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"og %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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Skrevet af %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s og %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.
+#: 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 ""
+"Skrevet af %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s og andre.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Rapportr fejl til: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Rapportr %s fejl til: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s hjemmeside: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "%s hjemmeside: <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 "Generel brugerhjlp for GNU-programmel: <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: Funktionen %s fejlede"
+
+#. 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 lnke 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: Lsefejl ved byte %s ved lsning af %lu byte"
+msgstr[1] "%s: Lsefejl ved byte %s ved lsning 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: Lsefejl ved byte %s ved lsning af %lu byte"
+msgstr[1] "%s: Advarsel: Lsefejl ved byte %s ved lsning af %lu byte"
+
+#: lib/paxerror.c:259
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Kan ikke sge til %s"
+
+#: lib/paxerror.c:275
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Advarsel: Kan ikke sge til %s"
+
+#: lib/paxerror.c:284
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Kan ikke oprette symbolsk lnke 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Fjerner indledende '%s' fra medlemsnavne"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Fjerner indledende '%s' fra hrde lnkeml"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Erstatter tomme navne i arkivet med \".\""
+
+#: lib/paxnames.c:155
+msgid "Substituting `.' for empty hard link target"
+msgstr "Erstatter tomt ml for hrd lnke med \".\""
+
+#: lib/rtapelib.c:299
+#, c-format
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Tjeneste ikke tilgngelig"
+
+#: lib/rtapelib.c:303
+#, c-format
+msgid "stdin"
+msgstr "standard-ind"
+
+#: lib/rtapelib.c:306
+#, c-format
+msgid "stdout"
+msgstr "standard-ud"
+
+#: lib/rtapelib.c:429
+#, c-format
+msgid "Cannot connect to %s: resolve failed"
+msgstr "Kan ikke opkoble til %s: navneopslag mislykkedes"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Kan ikke eksekvere fjern skl"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Sgeretning udenfor interval"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Ugyldig sgeretning"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Ugyldig positioneringsvrdi"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Sgeposition udenfor interval"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Ugyldigt byteantal"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Byteantal udenfor interval"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "For tidlig filafslutning"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Ugyldig operationskode"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operation understttes ikke"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Uventede argumenter"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Styr en bndstation via accept af kommandoer fra en fjernproces"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NUMMER"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "st fejlsgningsniveau"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FIL"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "st fejlsgningsfilnavn"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "kan ikke bne %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "for mange argumenter"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Ugyldig kommando"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Dette ligner ikke et tar-arkiv"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Totalt antal byte skrevet"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Totalt antal byte lst"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Totalt antal byte slettet: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(datakanal)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Ugyldig vrdi for record_size"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Arkivnavn er ikke opgivet"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Kan ikke verificere standard-ind/standard-ud arkiver"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arkivet er komprimeret. Brug flaget %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Kan ikke opdatere komprimerede arkiver"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Ved begyndelsen af bndet, afslutter nu"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "For mange fejl, afslutter"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Poststrrelse = %lu blok"
+msgstr[1] "Poststrrelse = %lu blokke"
+
+#: src/buffer.c:913
+#, 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-justerede blokke (%lu byte) i arkiv"
+
+#: src/buffer.c:990
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Kunne ikke g tilbage i arkivfilen. Den kan vre ulselig uden -i"
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek stoppede ikke p en postgrnse"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: indeholder ugyldigt delarkivs-nummer"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Overlb p delarkiv-nummer"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Klargr delarkiv nummer %d for %s og tryk retur: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "Filafslutning hvor svar fra bruger var forventet"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "ADVARSEL: Arkivet er ufuldstndigt"
+
+#: src/buffer.c:1148
+#, 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 navn Giv et nyt filnavn for nste (og efterflgende) delarkiver\n"
+" q Afbryd tar\n"
+" y eller ny linje Fortst handling\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Start en ny skl\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Udskriv denne liste\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Intet nyt delarkiv; afslutter.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Filnavn ikke angivet, prv igen.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Ugyldigt inddata. Skriv ? for at f hjlp.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "'%s'-kommando mislykkedes"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s fortsttes muligvis i dette delarkiv: hoved indeholder afkortet navn"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s fortstter ikke i dette delarkiv"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s har forkert strrelse (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Dette delarkiv er ude af rkkeflge (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arkivet er ikke navngivet til at passe med %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Delarkivet '%s' stemmer ikke overens med %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: filnavnet er for langt til at gemmes i hovedet p et GNU-flerdelarkiv, afkortes"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "skrivning stoppede ikke p en blokgrnse"
+
+#: 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] "Kunne kun lse %lu af %lu byte"
+msgstr[1] "Kunne kun lse %lu af %lu byte"
+
+#: src/compare.c:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Indhold er forskelligt"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Uventet filslutning i arkivet"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Filtype er forskellig"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Modus er forskellig"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Bruger-ID er forskellig"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gruppe-ID er forskellig"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Modificeringstid er forskellig"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Strrelse er forskellig"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ikke lnket til %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Symbolsk lnke er forskellig"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Enhedsnummer er forskellig"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Verificr "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Ukendt filtype '%c', diff'et som en almindelig fil"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arkivet indeholder filnavne med indledende prefixer borttaget."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Arkiv indeholder transformerede filnavne."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Verificering kan mislykkes med at finde originalfiler."
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "VERIFICERINGSFEJL: %d ukendt hoved fundet"
+msgstr[1] "VERIFICERINGSFEJL: %d ukendte hoveder fundet"
+
+#: src/compare.c:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "En enkeltstende nulblok ved %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: indeholder et cachekatalog-mrke %s; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "vrdi %s ud af %s interval %s..%s; erstatter %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "vrdi %s ud af %s interval %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Genererer negative oktale hoveder"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: filnavnet er for langt (max %d); ikke arkiveret"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: filnavnet er for langt (kan ikke opdeles); ikke arkiveret"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: lnkenavn er for langt; ikke arkiveret"
+
+#: src/create.c:1064
+#, 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 nul"
+msgstr[1] "%s: Filen formindsket med %s byte, fylder ud med nuller"
+
+#: src/create.c:1160
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: fil er p et andet filesystem; ikke arkiveret"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "indholdet ikke arkiveret"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Ukendt filtype; filen blev ignoreret"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Mangler lnke til %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: fil er undret; ikke arkiveret"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: fil er det samme som arkivet; ikke arkiveret"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "katalog ikke arkiveret"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: Fil ndredes mens vi lste den"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: sokkel ignoreret"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: dr ignoreret"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Hopper til nste hoved"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Sletter ikke-hoved fra arkivet"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: usandsynligt gammelt tidsstempel %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: tidsstempel %s er %s sekunder ud i fremtiden"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Uventet uoverensstemmelse ved oprettelse af katalog"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Katalog omdbt fr dets status kunne blive udpakket"
+
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Udpakker sammenhngende filer som almindelige filer"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Forsger at udpakke symbolske lnker som hrde lnker"
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Kan ikke udpakke -- filen er fortsat fra et andet delarkiv"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Uventet langt filnavnshoved"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Ukendt filtype '%c', udpakket som en almindelig fil"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Nuvrende %s er nyere eller lige s gammel"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Kunne ikke sikkerhedskopiere denne fil"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Kan ikke omdbe %s til %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Kataloget er blevet omdbt fra %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Kataloget er blevet omdbt"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Kataloget er nyt"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Ugyldigt tidsstempel"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Ugyldig modifikationstid (sekunder)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Ugyldig modifikationstid (nanosekunder)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Ugyldigt enhedsnummer"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Ugyldigt inode-nummer"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Felt for langt da jebliksfil lstes"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Lsefejl i jebliksfil"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Uventet filslutning i jebliksfil"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Uventet feltvrdi i jebliksfil"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Postafslutning mangler"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Fejlagtigt inkrementelt filformat"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Formatversion for inkrementel sikkerhedskopiering understttes ikke: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Fejlagtigt dumpkatalog: forventede \"%c\" men fandt %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Fejlagtigt dumpkatalog: \"X\" duplikeret"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Fejlagtigt dumpkatalog: tomt navn i \"R\""
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Fejlagtigt dumpkatalog: \"T\" foregs ikke af \"R\""
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Fejlagtigt dumpkatalog: tomt navn i \"T\""
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Fejlagtigt dumpkatalog: forventede \"%c\" men fandt slut p data"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Fejlagtigt dumpkatalog: \"X\" bruges aldrig"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "kan ikke oprette midlertidigt katalog ved brug af skabelonen %s"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Renser ikke katalog: kunne ikke tage status"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: fil er p et andet filesystem: sletter ikke"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Sletter %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "Kan ikke slette %s"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Udelader"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok med NULler **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Slut p fil **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Blank-tegn i hovedet hvor numerisk %s vrdi var forventet"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Oktal vrdi %.*s i arkiv er udenfor %s interval; antager to-komplement"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Oktal vrdi %.*s i arkiv er udenfor %s interval"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arkiv indeholder forldede base-64 hoveder"
+
+#: src/list.c:809
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Base-64 streng med fortegn %s i arkiv er udenfor %s interval"
+
+#: src/list.c:840
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Base-256 vrdi i arkiv er udenfor %s interval"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:869
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Arkiv indeholder %.*s hvor numerisk %s-vrdi var forventet"
+
+#. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
+#: src/list.c:891
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Arkiv vrdi %s er udenfor %s interval %s..%s"
+
+#: src/list.c:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " lnke til %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " ukendt filtype %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Lang lnke--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Langt navn--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Delarkivhoved--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Fortsat ved byte %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Opretter katalog:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Kan ikke finde arbejdskatalog"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Omdber %s til %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Kan ikke omdbe til %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Omdber %s tilbage til %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fil fjernet fr vi lste den"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "underproces"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "mellemproces-kanal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Mnstermatchningstegn bruges i filnavne"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Brug --wildcards for at aktivere mnstermatchning, eller --no-wildcards for at undertrykke denne advarsel"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Ikke fundet i arkivet"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Krvet forekomst blev ikke fundet i arkivet"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Arkivetiket stemmer ikke overrens"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "At bruge -C-flaget i en filliste er ikke tilladt med --listed-incremental"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Kun t -C-flag er tilladt med --listed-incremental"
+
+#: 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: ugyldigt arkivformat"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU-funktioner forsgt p inkompatibelt arkiv-format"
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Ukendt citeringsstl \"%s\". Prv \"%s --quoting-style=help for at f en liste."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' gemmer mange filer sammen i et enkelt disk- eller bnd-arkiv, og kan gendanne individuelle filer fra arkivet.\n"
+"\n"
+"Eksempler:\n"
+" tar -cf arkiv.tar foo bar # Skab arkiv.tar fra filerne foo og bar.\n"
+" tar -tvf arkiv.tar # Vs alle filer i arkiv.tar udfrligt.\n"
+" tar -xf arkiv.tar # Udpak alle filer fra arkiv.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Suffikset for sikkerhedskopiering er '~', med mindre det er sat med --suffix\n"
+"eller SIMPLE_BACKUP_SUFFIX Versionskontrollen kan sttes med --backup eller\n"
+"VERSION_CONTROL, vrdier er:\n"
+"\n"
+" none, off lav aldrig sikkerhedskopier\n"
+" t, numbered lav nummererede sikkerhedskopier\n"
+" nil, existing nummererede, dersom nummererede sikkerhedskopier eksisterer,\n"
+" ellers simple\n"
+" never, simple lav altid simple sikkerhedskopier\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Hovedoperationstilstand:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "vis indholdet af et arkiv"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "udpak filer fra et arkiv"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "opret et nyt arkiv"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "find forskelle mellem filsystemet og arkivet"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "tilfj filer til slutningen af et arkiv"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "tilfj kun filer som er nyere end dem i arkivet"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "tilfj indholdet i tar-arkivfiler til et arkiv"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "fjern fra arkivet (ikke p magnetbnd!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "verificr arkivets delarkivnavn og afslut derefter."
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "ndringer til handling:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "hndtr filer med huller effektivt"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "VRE[.NEDRE]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "angiv hvilken formatversion som skal hndtere filer med huller (implicerer --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "hndtr det gamle GNU-format for inkrementel sikkerhedskopiering"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "hndtr det nye GNU-format for inkrementel sikkerhedskopiering"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "dumpniveau for \"listed-incremental\" arkiv"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "afslut ikke med fejlslutstatus p.g.a. filer, der ikke kan lses"
+
+#: src/tar.c:429
+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 "behandl kun forekomst NUMMER af hver fil i arkivet. Dette flag er kun gyldigt med en af underkommandoerne --delete, --diff, --extract eller --list og nr en liste af filer angives enten p kommandolinjen eller med flaget -T. Standardvrdi for NUMMER er 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "arkivet er sgbart"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "arkivet er ikke sgbart"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "kontrollr ikke enhedsnumre nr inkrementelle arkiver oprettes"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "kontrollr enhedsnumre nr inkrementelle arkiver oprettes (standardvrdi)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Kontrollr overskrivning:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "forsg at verificere arkivet efter det blev skrevet"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "fjern filer efter de blev tilfjet til arkivet"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "erstat ikke eksisterende filer ved udpakning"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "erstat ikke eksisterende filer som er nyere end de, som findes i arkivet"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "overskriv eksisterende filer ved udpakning"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "fjern hver eksisterende fil inden en ny udpakkes oven i den"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "tm kataloghierarkier fr udpakning af katalog"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "bevar eksisterende katalogers metadata"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "overskriv metadata for eksisterende kataloger ved udpakning (standardvrdi)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Vlg uddatastrm:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "udpak filer til standard-ud"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "KOMMANDO"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "udpak filer til standard input til et andet program"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ignorr barneprocessers slutstatus"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "behandl slutstatus fra barneprocesser bortset fra 0 som fejl"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Hndtering af filattributter:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "st NAVN som ejer for tilfjede filer"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "st NAVN som gruppe for tilfjede filer"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATO-ELLER-FIL"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "st modificeringstid p tilfjede filer fra DATO-ELLER-FIL"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "RETTIGHEDER"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "st (symbolske) RETTIGHEDER for tilfjede filer"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODE"
+
+#: src/tar.c:499
+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 "bevar accesstider p arkiverede filer, enten ved at genskabe tiderne efter lsning (METODE=\"replace\", standardvrdi) eller ved at ikke stte tiderne overhovedet (METODE=\"system\")"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "udpak ikke filers modificeringstid"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "forsg at udpakke filer til samme ejere som i arkivet (standardvrdi for superbrugeren)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "udpak filer med dig selv som ejer (standardvrdi for almindelige brugere)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "brug altid tal for bruger- og gruppnavn"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "udpak information om filrettigheder (standardvrdi for superbrugeren)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "anvend brugerens umask nr rettigheder udpakkes fra arkivet (standardvrdi for almindelige brugere)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "sortr navne som skal udpakkes s de passer med arkivet"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "samme som bde -p og -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "udst stning af modifikationstider og rettigheder p udpakkede kataloger til slutningen p arkivudpakningen."
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "fjern effekten af flaget --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Enhedsvalg og enhedsskift:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARKIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "brug arkivfil eller enhed ARKIV"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "arkivfilen er lokal selv om navnet har et kolon"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "brug KOMMANDO i stedet for rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "brug ekstern KOMMANDO i stedet for rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "angiv enhed og densitet"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "opret/vis/udpak et flerdelarkiv"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "skift bnd efter at NUMMER x 1024 byte er skrevet"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "kr kommandofil ved slutningen af hvert bnd (flaget -M sttes ogs)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "brug/opdatr delarkivnummer i FIL"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blokhndtering:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOK"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOK x 512 byte per post"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "ANTAL byte per post, deleligt med 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignorr blok med kun nultegn (betyder filslut)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "lav nye blokke ved lsning (for 4.2BSD-datakanaler)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Valg af arkivformat:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "opret et arkiv med det angivne format"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT er et af flgende:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "gammelt V7-format"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU-format for tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "Format fra GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) format"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) format"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "samme som pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "samme som --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "samme som --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "ngleord[[:]=vrdi][,ngleord[[:]=vrdi]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "angiv ngleord for pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEKST"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "opret et arkiv med delarkivnavnet TEKST. Ved visning/udpakning er TEKST et sklmnster (\"globbing\") for delarkivnavn"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Komprimeringsflag:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "brug arkivsuffix til at bestemme komprimeringsprogrammet"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "brug ikke arkivsuffix til at bestemme komprimeringsprogrammet"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtrr med PROG (skal acceptere -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Lokalt filvalg:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "tilfj angivet FIL til arkivet (brugbart hvis FIL begynder med \"-\")"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "KATALOG"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "g til arbejdskatalog KATALOG"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "hent navne at udpakke eller oprette fra FIL"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T lser navne adskilt med nultegn, deaktivr -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "fjern effekten af foregende --null-flag"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "afcitr filnavne som blev lst med -T (standardvrdi)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "afcitr ikke filnavne som blev lst med -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MNSTER"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "udelad filer som matcher MNSTER"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "udelad filer som matcher mnster listet i FIL"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "udelad indholdet i kataloger som indeholder CACHEDIR.TAG, undtagen mrkefilen CACHEDIR.TAG selv"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "udelad alt i kataloger som indeholder CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "udelad kataloger som indeholder CACHEDIR.TAG"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "udelad indholdet i kataloger som indeholder FIL, undtagen FIL selv"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "udelad alting i kataloger som indeholder FIL"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "udelad kataloger som indeholder FIL"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "udelad kataloger fra versionshndteringssystemer"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "udelad sikkerhedskopier og lsefiler"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "g ikke ned i kataloger automatisk"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "skift ikke filsystem nr arkivet oprettes"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "g rekursivt ned i kataloger (standardvrdi)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "fjern ikke indledende '/' fra filnavne"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "flg symbolske lnker, arkivr filerne de peger p"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "flg hrde lnker, arkivr filerne de peger p"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "MEDLEMSNAVN"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "begynd med medlem MEDLEMSNAVN i arkivet"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "arkivr kun filer nyere end DATO-ELLER-FIL"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATO"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "sammenlign kun dato og tid for datandringer"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "KONTROL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "lav sikkerhedskopier fr fjernelse, vlg type af versionshndtering"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRENG"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "lav sikkerhedskopier fr fjernelse, erstat den normale sikkerhedskopiendelse (\"~\" hvis ikke ndret med miljvariablen SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Filnavnstransformationer:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "fjern ANTAL indledende komponenter fra filnavne ved udpakning"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "UDTRYK"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "brug sed's erstatnings-UDTRYK for at transformere filnavne"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Flag for match af filnavne (pvirker bde ekskluderings- og inkluderingsmnstre):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "ingen forskel p store og sm bogstaver"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "mnstre skal matche med begyndelsen p filnavne"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "mnstre matches efter \"/\" i filnavne (standardvrdi ved ekskludering)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "match store og sm bogstaver forskelligt (standardvrdi)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "brug jokertegn (standardvrdi for ekskludering)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "ordret strengsammenligning"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "jokertegn matcher ikke \"/\""
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "jokertegn matcher \"/\" (standardvrdi for ekskludering)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informativ udskrift:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "vs navne p alle filer som bliver behandlet"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "NGLEORD"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "advarselskontrol"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "vis forlbsmeddelelser efter hver gruppe af ANTAL poster (standardvrdi 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "HANDLING"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "udfr HANDLING ved hvert kontrolpunkt"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "vis en meddelelse hvis ikke alle lnker bliver arkiveret"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "skriv totalt antal byte efter arkivet er blevet behandlet. Med et argument - skrives totalt antal byte nr SIGNAL levereres. Tilladte signaler er: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 coh SIGUSR2. Navne uden SIG-prfix accepteres ogs."
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "vis filers modificeringstid i UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "vis fuld oplsning p filtider"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "send informative meddelelser til FIL"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "vis bloknummer i arkivet for hver meddelelse"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "bed om bekrftelse for hver handling"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "vis standardvrdier for \"tar\""
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "ved visning eller udpakning vises hvert katalog som ikke matcher sgekriterium"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "vis fil- eller arkivnavne efter transformering"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STL"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "st citatstl for navne. Se nedenfor for gyldige vrdier p STL."
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "citr ogs tegn i STRENG"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "citr ikke tegn fra STRENG"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Kompatibilitetsflag:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "ved oprettelse det samme som --old-archive; ved udpakning det samme som --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Andre flag:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "begrns brugen af potentielt farlige flag"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Du kan ikke angive mere end et af '-Acdtrux' eller `--test-label' flagene"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Konflikt i komprimeringsflag"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Ukendt signalnavn: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Tidsfil blev ikke fundet"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Erstatter %s for ukendt dato-format %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Flag %s: Behandler tidsangivelse \"%s\" som %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: filliste allerede lst"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: filnavnet som lstes indeholder nultegn"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtrr arkivet igennem %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Gyldige argumenter til flaget --quoting-style er:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Denne* tar har standardvrdierne:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Ugyldig blokfaktor"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Ugyldig bndlngde"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Fejlagtig vrdi for inkrementelt niveau"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Mere end n grnse-dato"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Ugyldig version for filer med huller"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve=\"system\" understttes ikke p denne platform"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint-vrdien er ikke et heltal"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Ugyldig gruppe"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Ugyldig modus angivet i flag"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Ugyldigt nummer"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Ugyldig ejer"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Flaget --preserve er forldet, brug --preserve-permissions --preserve-order i stedet"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Ugyldig poststrrelse"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Poststrrelse skal vre deleligt med %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Ugyldigt antal elementer"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Kun t --to-command flag tilladt"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Ugyldig densitetsangivelse: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Ukendt densitet: '%c'"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Flagene '-[0-7][lmh]' understttes ikke af *denne* implementering af tar"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[FIL]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Gammelt flag '%c' behver et argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence er meningsls uden en filliste"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence kan ikke bruges i den nskede operationstilstand."
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Ved flere arkivfiler krves '-M'-flaget"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Kan ikke kombinere --listed-incremental med --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level er meningsls uden --listed-incremental"
+
+#: src/tar.c:2423
+#, 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: etiket p delarkiv er for lang (grnse er %lu byte)"
+msgstr[1] "%s: etiket p delarkiv er for lang (grnse er %lu byte)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Kan ikke verificere arkiv som gr over flere delarkiver"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Kan ikke verificere komprimerede arkiver"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Kan ikke bruge komprimerede arkiver som gr over flere delarkiver"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Kan ikke sammenlgge (konkatenere) komprimerede arkiver"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option kan kun bruges p POSIX-arkiver"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Delarkivlngden kan ikke vre mindre end poststrrelsen"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order er ikke kompatibel med --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Ngter stdigt at oprette et tomt arkiv"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Flagene '-Aru' er inkompatible med '-f -'"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Du skal angive et af '-Acdtrux' eller '--test-label' flagene"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Afslutter med fejlstatus p grund af tidligere fejl"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Ngleordet %s er ukendt eller ikke implementeret endnu"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Tidsstempel udenfor tilladt interval"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Mnster %s kan ikke bruges"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Ngleord %s kan ikke erstattes"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Fejlagtigt udvidet hoved: lngden mangles"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Lngde p udvidet hoved er udenfor gyldigt interval"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Lngde %*s p udvidet hoved er udenfor gyldigt interval"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Fejlagtigt udvidet hoved: blanktegn efter lngdangivelse mangles"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Fejlagtigt udvidet hoved: ligmedtegn mangles"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Fejlagtigt udvidet hoved: nylinje mangles"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ignorerer ngleord \"%s\" i udvidet hoved"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Genereret ngle/vrdi-par er for langt (ngle=%s, lngde=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Udvidet hoved %s=%s er udenfor intervallet %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Fejlagtigt udvidet hoved: ugyldig %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Fejlagtigt udvidet hoved: for mange %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Fejlagtigt udvidet hoved: ugyldigt %s: uventet skilletegn %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Fejlagtigt udvidet hoved: ugyldigt %s: ulige antal vrdier"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: ugyldig tidsudlb"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: ukendt kontrolpunktshandling"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "skrive"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "lse"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Skrivekontrolpunkt %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Lsekontrolpunkt %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile bearbejder datafiler i testsuiten for GNU paxutils.\n"
+"FLAG er:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Flag for filoprettelse:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "STRRELSE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Opret en fil med angivet STRRELSE"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Skriv til filen NAVN i stedet for til standard-ud"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Ls filnavne fra FIL"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T lser navne adskilte med nultegn"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Fyld filen med det angivne MNSTER. MNSTER er 'default' eller 'zeros'"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Strrelse af en blok for filer med huller"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Generr fil med huller. Resten af kommandolinjen giver filmapningen."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "POSITION"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Flyt til given position inden data skrives"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Flag for filstatistik:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Vs indholdet i \"struct stat\" for hver given fil. Standardvrdi p FORMAT er:"
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Flag for synkron udfrelse:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "FLAG"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Udfr ARGUMENTER. Nyttigt ved --checkpoint og en af --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Udfr angivet handling (se nedenfor) nr kontrolpunkt NUMMER ns"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "St dato for nste --touch flag"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Vs udfrte kontrolpunkter og slutstatus p KOMMANDO"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Synkront udfrte handlinger. Disse udfres nr kontrolpunktnummeret givet med flaget --checkpoint ns."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Afkort FIL til strrelsen givet med det foregende --length flag (eller 0 hvis det ikke er angivet)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Tilfj STRRELSE antal byte til FIL. STRRELSE er givet med foregende --length flag."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Opdatr acces- og modifikationstider for FIL"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Udfr KOMMANDO"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Fjern (unlink) FIL"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Ugyldig strrelse %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Nummer udenfor tilladt interval: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negativ strrelse: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "status (stat) kunne ikke tages p %s"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "nsket fillngde %lu, virkelig %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "oprettet fil har ikke huller"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Fejl ved fortolkning af tal nr \"%s\""
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Ukendt datoformat"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENTER...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "kan ikke bne '%s'"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "Kan ikke sge"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "filnavnet indeholder nultegn"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "kan ikke oprette filer med huller til standard-ud, brug flaget --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "fejlagtig maske (nr \"%s\")"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Ukendt felt '%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "kan ikke stte tid p \"%s\""
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "kan ikke fjerne (unlink) \"%s\""
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Kommandoen afsluttedes uden fejl\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Kommandoen mislykkedes med slutstatus %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Kommandoen termineredes af signal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Kommandoen stoppedes af signal %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Kommandoen dumpede hukommelsen\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Kommandoen afsluttedes\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat krver filnavne"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: Katalog fjernet fr vi lste det"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Kan ikke gemme arbejdskatalog"
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 00000000..815756d5
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,2730 @@
+# German messages for GNU tar.
+# This file is distributed under the same license as the tar package.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995?
+# Karl Eichwalder <ke@ke.central.de>, 1996
+# Christian Kirsch <ck@held.mind.de>, 1996, 2001
+# Michael Piefel <piefel@informatik.hu-berlin.de>, 2003, 2006, 2007, 2008, 2009, 2010, 2011
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-14 21:35+0100\n"
+"Last-Translator: Michael Piefel <piefel@informatik.hu-berlin.de>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "ungültiges Argument %s für %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "mehrdeutiges Argument %s für %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Zulässige Argumente sind:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: unbekannter ARGP_HELP_FMT-Parameter"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Müll in ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Erforderliche oder optionale Argumente für lange Optionen sind ebenso erforderlich bzw. optional für die entsprechenden Kurzoptionen."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Aufruf:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " oder: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [OPTION...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "„%s --help“ oder „%s --usage“ gibt weitere Informationen.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Unbekannter Systemfehler."
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "diese Hilfe ausgeben"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "eine kurze Benutzungsübersicht ausgeben"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAME"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "den Programmnamen setzen"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "für SEK Sekunden hängenbleiben (Voreinst.: 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "Programmversion ausgeben"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMMFEHLER) Keine Version bekannt!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Zu viele Argumente\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMMFEHLER) Option hätte erkannt werden müssen!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "Schreibfehler"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: Option „%s“ ist mehrdeutig\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: Option „--%s“ erlaubt keinen Parameter\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: Option „%c%s“ erlaubt keinen Parameter\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: Option „--%s“ benötigt einen Parameter\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: Unbekannte Option „--%s“\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: Unbekannte Option „%c%s“\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: Ungültige Option -- „%c“\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: Option benötigt einen Parameter -- „%c“.\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: Option „-W %s“ ist mehrdeutig\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: Option „-W %s“ erlaubt keinen Parameter\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: Option „-W %s“ benötigt einen Parameter\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "Kein Speicher mehr"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "Kann Arbeitsverzeichnis nicht aufzeichnen."
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "Konnte nicht zu ursprünglichem Arbeitsverzeichnis zurückkehren."
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "„"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "“"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yYjJ]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Paketiert von %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Paketiert von %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"License GPLv3+: GNU GPL Version 3 oder später <http://gnu.org/licenses/gpl.html>\n"
+"Dies ist freie Software: Sie dürfen sie ändern und weiter verbreiten.\n"
+"Es gibt KEINERLEI GARANTIE, so weit das Gesetz es erlaubt.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Geschrieben von %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Geschrieben von %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Geschrieben von %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s und anderen.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Melden Sie Fehler in %s (auf Englisch, mit LC_ALL=C) an: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Homepage von %s: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, 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
+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: Funktion %s fehlgeschlagen"
+
+#. 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: Funktion %s fehlgeschlagen"
+
+#: 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 keine harte Verknüpfung zu „%s“ anlegen"
+
+#: 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 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Entferne führende „%s“ von Elementnamen"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Entferne führende „%s“ von Zielen harter Verknüpfungen"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Ersetze „.“ für leeren Elementnamen"
+
+#: lib/paxnames.c:155
+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 "Kann nicht mit %s verbinden: Auflösung fehlgeschlagen"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Kann Remote-Shell nicht ausführen."
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Richtung für Positionierung nicht zulässig."
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Ungültige Richtung für Positionierung"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Ungültiger Betrag für Positionierung"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Positionierungsangabe außerhalb des zulässigen Bereichs."
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Ungültige Bytezahl"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Bytezahl außerhalb des zulässigen Bereichs"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Vorzeitiges Dateiende"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Ungültiger Arbeitsmodus"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operation nicht gestattet"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Unerwartete Argumente"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Ein Bandlaufwerk bearbeiten, dabei Befehle von entferntem Prozess annehmen"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "ZAHL"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "Debug-Level setzen"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "DATEI"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "Dateinamen für Debug-Ausschriften setzen"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "kann „%s“ nicht öffnen"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "zu viele Argumente"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Ungültiger Befehl"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Das sieht nicht wie ein „tar“-Archiv aus."
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Gesamtzahl geschriebener Bytes"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Gesamtzahl gelesener Bytes"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Gesamtzahl gelöschter Bytes: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Ungültiger Wert für „record_size“."
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Kein Archivname angegeben"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Kann Archive auf Standard-Ein-/Ausgabe nicht prüfen."
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Archiv ist komprimiert. Benutzen Sie die Option %s."
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Kann komprimierte Archive nicht aktualisieren"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Am Anfang des Mediums, beende jetzt."
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Zu viele Fehler, beende."
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "„rmtlseek“ nicht an Recordgrenze angehalten"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: enthält ungültige Teil-Nummer."
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Teil-Nummer zu groß."
+
+#: src/buffer.c:1123
+#, 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:1129
+msgid "EOF where user reply was expected"
+msgstr "Dateiende gefunden, Benutzereingabe erwartet"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "WARNUNG: Archiv unvollständig"
+
+#: src/buffer.c:1148
+#, 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 angeben\n"
+" q „tar“ abbrechen\n"
+" j oder Enter fortfahren\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Shell in einem Unterprozess starten\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? diese Liste ausgeben\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Kein neues Medium; halte an.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Dateiname nicht angegeben. Versuchen Sie es noch einmal.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Ungültige Eingabe. Geben Sie „?“ für Hilfe ein.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "„%s“-Befehl gescheitert."
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "Dieser Teil ist keine Fortsetzung von %s."
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s hat die falsche Größe (%s != %s + %s)."
+
+#: src/buffer.c:1472
+#, 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:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Kennzeichnung des Archivs passt nicht zu „%s“."
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Teil „%s“ passt nicht zu „%s“."
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: Dateiname zu lang, um in einem GNU-Mehrteil-Kopf abgelegt werden zu können, abgeschnitten"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "Schreiben endete nicht an Blockgrenze"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Unterschiedliche Inhalte"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Unerwartetes Dateiende im Archiv."
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Unterschiedliche Dateitypen "
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Modus ist unterschiedlich"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Benutzerkennung ist unterschiedlich"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gruppenkennung ist unterschiedlich"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Änderungszeit ist unterschiedlich"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Größe ist unterschiedlich"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nicht mit „%s“ verknüpft"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Symbolische Verknüpfung ist unterschiedlich"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Unterschiedliche Gerätenummern"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Prüfe "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Unbekannter Dateityp „%c“, Differenz wie für eine normale Datei."
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Archiv enthält Dateinamen, deren Präfixe entfernt wurden."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Archiv enthält transformierte Dateinamen."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Die Überprüfung findet möglicherweise die Originaldateien nicht."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Ein einzelner Nullblock bei %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: enthält eine „Cache-Verzeichnis“-Markierung %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "Wert %s außerhalb des %s-Bereichs %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Erzeuge negative oktale Kopfteile"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: Dateiname ist zu lang (max. %d); nicht gesichert."
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: Dateiname ist zu lang (kann nicht aufgeteilt werden); nicht gesichert."
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: Verknüpfungsname ist zu lang; nicht gesichert."
+
+#: src/create.c:1064
+#, 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "Inhalt nicht gesichert"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Unbekannter Dateityp; Datei ignoriert."
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Fehlende Verknüpfungen zu %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "Datei %s ist unverändert; nicht gesichert."
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s ist das Archiv; nicht gesichert."
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "Verzeichnis nicht gesichert"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: Datei hat sich beim Lesen geändert."
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: Socket ignoriert"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: Klappe ignoriert"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Springe zum nächsten Kopfteil."
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Lösche nicht-Kopfteil aus dem Archiv"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: unplausibel alter Zeitstempel %s"
+
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Unerwarteter Inkonsitenz beim Erstellen des Verzeichnisses."
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Extrahiere zusammenhängende Dateien („contiguous files“) als reguläre."
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Versuche symbolische Verknüpfungen als harte Verknüpfungen herauszuholen."
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "Kann „%s“ nicht herausholen – Datei ist Fortsetzung eines anderen Teils."
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Unerwarteter Kopfteil mit langem Namen"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Unbekannter Dateityp „%c“, wie normale Datei extrahiert."
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Aktuelles %s ist neuer oder hat dasselbe Alter."
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Konnte keine Sicherheitskopie von dieser Datei erstellen"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Kann %s nicht in %s umbenennen."
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Verzeichnis wurde von „%s“ umbenannt."
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Verzeichnis wurde umbenannt."
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "Verzeichnis „%s“ ist neu."
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Ungültiger Zeitstempel"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Ungültige Änderungszeit (Sekunden)."
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Ungültige Änderungszeit (Nanosekunden)."
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Ungültige Gerätenummer"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Ungültige Inode-Nummer"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Feld zu lang beim Lesen der Schnappschussdatei"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Lesefehler in Schnappschussdatei"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Unerwartetes Dateiende im Schnappschussdatei."
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Unerwarteter Feldwert in Schnappschussdatei"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Fehlender Record-Abschluss"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "unzulässiges inkrementelles Dateiformat"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Nicht unterstützte Version des inkrementellen Formats: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Fehlgeformtes Verzeichnis für Dump: „%c“ erwartet, aber %#3o gefunden"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Fehlgeformtes Verzeichnis für Dump: „X“ dupliziert"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Fehlgeformtes Verzeichnis für Dump: leerer Name in „R“"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Fehlgeformtes Verzeichnis für Dump: „T“ folgt nicht „R“"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Fehlgeformtes Verzeichnis für Dump: leerer Name in „T“"
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Fehlgeformtes Verzeichnis für Dump: „X“ nie benutzt"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Kann kein temporäres Verzeichnis mit der Schablone %s anlegen"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Entferne Verzeichnis nicht: kann nicht zugreifen"
+
+#: src/incremen.c:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Lösche %s.\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Kann nicht entfernen."
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Ausgelassen"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "Block %s: ** Block aus NULlen **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "Block %s: ** Ende der Datei **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "Block %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+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:763
+#, 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:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Oktalzahl %.*s außerhalb des %s-Bereichs"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Archiv enthält veraltete Base64-Kopfteile"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " Verknüpfung zu %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " unbekannter Dateityp %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "––Lange Verknüpfung––\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+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:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "––Vorspann des Teils––\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "––Fortgesetzt bei Byte %s––\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Erzeuge Verzeichnis:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Kann Arbeitsverzeichnis nicht ermitteln."
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Benenne „%s“ in „%s“ um.\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Kann nicht in %s umbenennen"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Benenne „%s“ zurück in „%s“.\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Datei gelöscht, bevor sie gelesen wurde."
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "Kindprozess"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "Interprocess-Kanal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Zeichen für Musterüberdeckung im Dateinamen benutzt"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr ""
+"Benutzen Sie --wildcards, um Musterüberdeckung zu ermöglichen oder\n"
+"--no-wildcards, um diese Warnung zu unterdrücken."
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Nicht im Archiv gefunden."
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Erforderliches Auftreten nicht im Archiv gefunden."
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Kennzeichnung des Archivs passt nicht"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "Option -C in Dateiliste ist nicht erlaubt mit --listed-incremental"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "In --listed-incremental ist nur eine Option -C erlaubt"
+
+#: 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Ungültiges Archivformat"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU-Erweiterungen bei einem inkompatiblen Archiv-Format verlangt."
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Unbekannter Zitatstil „%s“. Versuchen Sie „%s --quoting-style=help“ für eine Liste."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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“ fasst viele Dateien in einem einzigen Archiv auf Platte oder Band zusammen und kann einzelne Dateien aus dem Archiv wieder herstellen.\n"
+"\n"
+"Beispiele:\n"
+" tar -cf archiv.tar foo bar # archiv.tar mit den Dateien foo und bar erzeugen\n"
+" tar -tvf archiv.tar # Inhalt von archiv.tar ausführlich anzeigen\n"
+" tar -xf archiv.tar # alle Dateien aus archiv.tar extrahieren\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Die Namenserweiterung für Sicherheitskopien ist „~“, wenn nicht mit --suffix\n"
+"oder der Umgebungsvariablen SIMPLE_BACKUP_SUFFIX etwas anderes eingestellt ist.\n"
+"Die Versionskontrolle kann mit --backup oder der Umgebungsvariablen\n"
+"VERSION_CONTROL gesetzt werden. Mögliche Werte sind:\n"
+"\n"
+" none, off niemals Sicherheitskopien anlegen\n"
+" t, numbered nummerierte Sicherheitskopien\n"
+" nil, existing nummerierte Sicherheitskopien, wenn schon nummerierte\n"
+" vorhanden sind, sonst einfache\n"
+" never, simple immer einfache Sicherheitskopien\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Hauptsächlicher Arbeitsmodus:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "den Inhalt eines Archivs auflisten"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "Dateien aus einem Archiv extrahieren"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "ein neues Archiv anlegen"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "Unterschiede zwischen Archiv und Dateisystem suchen"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "Dateien hinten an das Archiv anfügen"
+
+#: src/tar.c:402
+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:404
+msgid "append tar files to an archive"
+msgstr "tar-Dateien an ein Archiv anfügen"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "aus dem Archiv löschen (nicht auf Magnetband!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "den Archiv-Teil-Namen überprüfen und beenden"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Feineinstellungen:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "löchrige Dateien („sparse files“) effizient behandeln"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "zu benutzende Version des Sparse-Formats setzen (impliziert --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "inkrementelle Sicherung im alten GNU-Format"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "inkrementelle Sicherung im neuen GNU-Format"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "Niveau für erzeugte Archive mit --listed-incremental ausgeben"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "kein Abbruch mit Existatus!=0 bei unlesbaren Dateien"
+
+#: src/tar.c:429
+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 "nur das ZAHLte Auftreten jeder Datei im Archiv bearbeiten; diese Option kann nur zusammen mit einem der Arbeitsmodi --delete, --diff, --extract oder --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:435
+msgid "archive is seekable"
+msgstr "im Archiv kann positioniert werden"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "im Archiv kann nicht positioniert werden"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "Gerätenummer bei Erstellung inkrementeller Archive nicht prüfen"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "Gerätenummer bei Erstellung inkrementeller Archive prüfen (Voreinstellung)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Steuerung des Überschreibens:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "Archiv nach dem Schreiben prüfen"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "Dateien nach dem Hinzufügen zum Archiv löschen"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "vorhandene Dateien beim Extrahieren nicht überschreiben"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "vorhandene Dateien beim Extrahieren überschreiben"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "zu überschreibende Dateien vor dem Extrahieren löschen"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "Verzeichnishierarchien rekursiv vor dem Extrahieren eines Verzeichnisses löschen"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "Metadaten existierender Verzeichnisse erhalten"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "Metadaten existierender Verzeichnisse beim Extrahieren überschreiben (Voreinstellung)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Wahl des Ausgabestroms:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "Dateien auf die Standardausgabe extrahieren"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "BEFEHL"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "extrahierte Dateien an ein anderes Programm weiterreichen"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "Exitstatus der Kinder ignorieren"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "Exitstatus!=0 von Kindern als Fehler ansehen"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Behandlung der Datei-Attribute:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "Eigentümer für hinzugefügte Dateien auf NAME setzen"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "Gruppe für hinzugefügte Dateien auf NAME setzen"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATUM-ODER-DATEI"
+
+#: src/tar.c:494
+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:495
+msgid "CHANGES"
+msgstr "ÄNDERUNGEN"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "den (symbolischen) Modus ÄNDERUNGEN für hinzugefügte Dateien erzwingen"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METHODE"
+
+#: src/tar.c:499
+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 "Zugriffszeit für abgespeicherte Dateien erhalten, entweder durch Zurücksetzen der Zeiten nach dem Lesen (METHODE=„replace“, Voreinstellung) oder dadurch, dass die Zeiten gar nicht erst neu gesetzt werden (METHODE=„system“)"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "die geänderte Zeit nicht extrahieren"
+
+#: src/tar.c:505
+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 (für den Admin ist dies die Voreinstellung)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "Dateien als aktueller Nutzer extrahieren (für normale Nutzer die Voreinstellung)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "immer Zahlen für Nutzer-/Gruppennamen verwenden"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "Informationen über Dateizugriffsrechte mit extrahieren (Voreinstellung für Root)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "die Umask des Nutzers anwenden beim Extrahieren von Dateizugriffsrechte aus dem Archiv (Voreinstellung für normale Nutzer)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "zu entpackende Dateinamen wie im Archiv sortieren"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "wie -p und -s zusammen"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "das Setzen von Zugriffszeiten und Rechten von extrahierten Verzeichnissen verschieben bis zum Ende des Entpackens"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "den Effekt von --delay-directory-restore aufheben"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Geräteauswahl und -umschaltung:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "Archivdatei oder Gerät ARCHIV benutzen"
+
+#: src/tar.c:535
+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:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "statt „rmt“ den gegebenen BEFEHL benutzen"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "statt „rsh“ den entfernten BEFEHL benutzen"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "Laufwerk und Schreibdichte angeben"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "mehrteiliges Archiv anlegen/listen/extrahieren"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "Medium wechseln, wenn ZAHL × 1024 Bytes geschrieben wurden"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "am Ende jedes Mediums das Skript ausführen (impliziert -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "Teil-Nummer in DATEI benutzen/aktualisieren"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blockung des Gerätes:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLÖCKE"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLÖCKE × 512 Bytes pro Record"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "ZAHL Bytes pro Record, Vielfaches von 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "Blöcke mit Nullen im Archiv ignorieren (heißt EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "erneut Blocken beim Lesen (für 4.2BSD‐Pipes)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Auswahl des Archiv-Formats:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "Archiv mit dem gegebenen Format anlegen"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT ist eines der folgenden:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "altes V7-tar-Format"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU-Format wie mit tar <=1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU-tar-1.13.x-Format"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "Format von POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "Format von POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "wie pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "wie --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "wie --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "Schlüsselwort[[:]=Wert][,Schlüsselwort[[:]=Wert]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "Pax-Schlüsselwörter steuern"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "Archiv mit dem Teilnamen TEXT anlegen; beim Listen/Extrahieren, TEXT als Muster für den Teilnamen benutzen"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Kompressionsoptionen:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "Archiverweiterung nehmen, um Kompressionsprogramm zu bestimmen"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "Archiverweiterung nicht nehmen, um Kompressionsprogramm zu bestimmen"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "durch PROG filten (muss -d akzeptieren)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Auswahl der lokalen Dateien:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "VERZEICHNIS"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "zu VERZEICHNIS wechseln"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "Namen der zu bearbeitenden Dateien aus DATEI lesen"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T liest null-terminierte Namen, verbiete -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "die Wirkung der vorangehenden Option --null aufheben"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "Dateinamen, die mit -T gelesen werden, von Zitat befreien (Voreinstellung)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "Dateinamen, die mit -T gelesen werden, nicht von Zitat befreien"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MUSTER"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "Dateien auslassen, auf die MUSTER passt"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "Dateien auslassen, auf die in DATEI angegebene Muster passen"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "Inhalt von Verzeichnissen auslassen, die CACHEDIR.TAG enthalten, außer der Markierungsdatei selbst"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "alles unterhalb von Verzeichnissen auslassen, die CACHEDIR.TAG enthalten"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "Verzeichnisse auslassen, die CACHEDIR.TAG enthalten"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "alles unterhalb von Verzeichnissen auslassen, die DATEI enthalten"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "Verzeichnisse auslassen, die DATEI enthalten"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "Verzeichnisse von Versionskontrollsystemen auslassen"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "Backup- und Lock-Dateien ausschließen"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "automatischen Abstieg in Vezeichnisse vermeiden"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "beim Anlegen eines Archivs im lokalen Dateisystem bleiben"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "in Verzeichnisse absteigen (Voreinstellung)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "führende „/“-Zeichen in den Dateinamen erhalten"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "ELEMENT-NAME"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "mit ELEMENT-NAME im Archiv beginnen"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "nur Dateien ablegen, die neuer als DATUM-ODER-DATEI sind"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATUM"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "Datum und Zeit nur überprüfen, wenn Daten geändert wurden"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "KONTROLLE"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "Sicherung vor dem Entfernen, wähle Versions-KONTROLLE"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "ZEICHENKETTE"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "Sicherung vor dem Entfernen, übliches Suffix ersetzen („~“, wenn nicht durch Umgebungsvariable SIMPLE_BACKUP_SUFFIX anders gesetzt)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Dateinamentransformationen:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "ZAHL führende Komponenten beim Extrahieren von Dateinamen entfernen"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "AUSDRUCK"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "den sed-AUSDRUCK zur Dateinamentransformation benutzen"
+
+#: src/tar.c:714
+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:717
+msgid "ignore case"
+msgstr "Groß-/Kleinschreibung ignorieren"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "Muster am Dateinamensanfang ausrichten"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "Muster passen nach jedem „/“ (Voreinstellung beim Ausschluss)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "Groß-/Kleinschreibung beachten (Voreinstellung)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "Muster benutzen (Voreinstellung für Ausschluss)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "Zeichenketten sind buchstabengetreu"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "Jokerzeichen passen nicht auf „/“"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "Jokerzeichen passen auf „/“ (Voreinstellung für Ausschluss)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informationen:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "bearbeitete Dateien ausführlich listen"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "SCHLÜSSELWORT"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "Warnungssteuerung"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "Fortschrittsnachrichten bei jedem ZAHLten Record (Voreinstellung 10) anzeigen"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "AKTION"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "AKTION bei jedem Kontrollpunkt ausführen"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "eine Nachricht ausgeben, wenn nicht alle Verknüpfungen abgespeichert werden"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "Gesamtzahl der Bytes nach dem Bearbeiten des Archivs anzeigen; mit einem Argument – Gesamtzahl der Bytes anzeigen, wenn dieses SIGNAL ausgeliefert wird; erlaubte Signale sind: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 und SIGUSR2; die Namen ohne das Präfix SIG sind auch erlaubt"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "Dateiänderungszeiten in UTC anzeigen"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "Dateizeit in voller Auflösung anzeigen"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "ausführliche Ausgabe in DATEI schreiben"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "bei jeder Nachricht die Blocknummer innerhalb des Archivs mit anzeigen"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "für jede Aktion um Bestätigung bitten"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "Voreinstellungen von tar anzeigen"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "beim Listen oder Extrahieren jedes Verzeichnis auflisten, dass nicht den Suchkriterien entspricht"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "Datei- oder Archivnamen nach der Transformation anzeigen"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STIL"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "zusätzliche Zeichen aus ZEICHENKETTE zitieren"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "Zeichen aus ZEICHENKETTE nicht zitieren"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Kompatibilitätsoptionen:"
+
+#: src/tar.c:787
+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:792
+msgid "Other options:"
+msgstr "Weitere Optionen:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "möglicherweise schädliche Optionen deaktivieren"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Von den Optionen „-Acdtrux“ oder „--test-label“ ist jeweils nur eine erlaubt"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Kompressionsoptionen schließen sich gegenseitig aus."
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Unbekannter Signalname: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Datumsdatei nicht gefunden"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Ersetze %s für unbekanntes Datumsformat %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Option %s: Behandle Datum „%s“ als %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: Dateiliste schon gelesen"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: gelesener Dateiname enthält ein NULL-Zeichen"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "Archiv durch %s filtern"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Gültige Argumente für die Option --quoting-style sind:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Dieses* „tar“ hat als Voreinstellung:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Ungültige Blockgröße"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Ungültige Bandlänge"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "unzulässiger Wert für inkrementelles Niveau"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Mehr als ein Datum angegeben."
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Ungültiger Wert für Sparse-Version (für löchrige Dateien)"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' wird auf dieser Plattform nicht unterstützt"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "Wert für --checkpoint ist keine ganze Zahl"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Ungültige Gruppe"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Ungültige Zugriffsrechte angegeben."
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Ungültige Zahl"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Ungültiger Benutzer"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Die Option --preserve ist veraltet, benutzen Sie stattdessen --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Ungültiger Wert für Recordgröße."
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Die Recordgröße muss ein Vielfaches von %d sein."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Ungültige Elementanzahl"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Nur eine Option --to-command erlaubt"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Fehlgeformtes Dichteargument: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Unbekannte Dicht: „%c“"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[DATEI]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Die alte Option „%c“ benötigt einen Parameter."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence ist ohne Dateiliste bedeutungslos"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence kann im angeforderten Operationsmodus nicht benutzt werden"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Mehrere Archivdateien verlangen die Option „-M“."
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental kann nicht mit --newer benutzt werden"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level ist ohne --listed-incremental bedeutungslos"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Kann mehrteilige Archive nicht prüfen."
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Kann komprimierte Archive nicht prüfen"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Kann keine mehrteiligen komprimierten Archive verwenden."
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Kann komprimierte Archive nicht aneinanderhängen"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option kann nur mit POSIX-Archiven benutzt werden"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Teillänge kann nicht unter der Recordgröße liegen"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order ist nicht kompatibel mit --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Anlegen eines leeren Archivs wird feige verweigert."
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Die Optionen „-Aru“ sind nicht kompatibel mit „-f -“."
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Eine der Optionen „-Acdtrux“ oder „--test-label“ ist notwendig."
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Beende mit Fehlerstatus aufgrund vorheriger Fehler"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Schlüsselwort %s ist unbekannt oder noch nicht implementiert"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Zeitstempel außerhalb des zulässigen Bereichs"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Muster %s kann nicht benutzt werden"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Schlüsselwort %s kann nicht überschrieben werden"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Fehlgeformter erweiterter Kopfteil: fehlende Länge"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Länge des erweiterten Kopfteils ist außerhalb des erlaubten Bereichs"
+
+#: src/xheader.c:557
+#, 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:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Fehlgeformter erweiterter Kopfteil: fehlender Leerraum nach der Länge"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Fehlgeformter erweiterter Kopfteil: fehlendes Gleichheitszeichen"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Fehlgeformter erweiterter Kopfteil: fehlender Zeilenvorschub"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ignoriere unbekanntes Schlüsselwort „%s“ für erweiterten Kopfteil"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Generiertes Schlüsselwort/Wert-Paar ist zu lang (Schlüsselwort=%s, Länge =%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Fehlgeformter erweiterter Kopfteil: ungültiges %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Fehlgeformter erweiterter Kopfteil: überzähliges %s=%s"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Fehlgeformter erweiterter Kopfteil: ungültiges %s: ungewöhnliche Anzahl von Werten"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: kein gültiger Zeitüberschreitungswert"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: unbekannte Kontrollpunkt-Aktion"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "lesen"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "schreiben"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Schreib-Kontrollpunkt %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Lese-Kontrollpunkt %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile manipuliert Datendateien für die Testsuite der GNU paxutils.\n"
+"OPTIONEN sind:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Optionen beim Anlegen von Dateien:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "GRÖßE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Datei der gegebenen GRÖßE anlegen"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "in Datei NAME anstelle der Standardausgabe schreiben"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Dateinamenlist aus DATEI lesen"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T liest null-terminierte Namen"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Größe eines Blocks für löchrige Dateien"
+
+# „map“: Karte, Abbildung?
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "POSITION"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "vor dem Schreiben zur gegebenen Position springen"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Dateistatistikoptionen:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Optionen für synchrone Ausführung:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPTION"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "ARGUMENTE ausführen. Nützlich mit --checkpoint und einem aus --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Datum für nächste „--touch“-Operation setzen"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "ausgeführte Kontrollpunkte und Beendigungsstatus von BEFEHL anzeigen"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "DATEI kürzen auf die Länge, die mit einer vorhergehenden Option --length (oder 0 bei Abwesenheit) gesetzt wurde"
+
+#: tests/genfile.c:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "Zugriffs- und Änderungszeiten der DATEI neu setzen"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "BEFEHL ausführen"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "FILE entfernen (unlink)"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Ungültige Größe: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Zahl außerhalb des zulässigen Bereichs: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negative Größe: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) fehlgeschlagen"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "Dateilänge %lu verlangt, tatsächlich %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "erzeugte Datei ist nicht löchrig"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Fehler beim Parser der Zahl in der Nähe von „%s“"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Unbekanntes Datumsformat"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENTE...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "kann „%s“ nicht öffnen"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "kann nicht positionieren"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "Dateiname enthält Null-Zeichen"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "inkorrekte Maske (nahe „%s“)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "unbekannte Feld „%s“"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "kann an „%s“ keine Zeit setzen"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "kann „%s“ nicht entfernen (unlink)"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Befehl erfolgreich ausgeführt\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Befehl schlug mit Beendigungsstatus %d fehl.\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Befehl beendete sich bei Signal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Befehl hieltb bei Signal %d an\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Befehl erzeugte einen Core-Dump\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Befehl beendet\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat erfordert Dateinamen"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: Verzeichnis gelöscht, bevor es gelesen wurde."
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Kann aktuelles Verzeichnis nicht sichern."
+
+#~ 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 "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 "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 "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+#~ msgstr "Warnung: Die Option -I ist nicht unterstützt, meinen Sie -j oder -T?"
+
+# Was ist hier genau gemeint? ke
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "Fehler beim Beenden, verursacht durch vorhergehende Fehler."
+
+#~ msgid "[.]NUMBER"
+#~ msgstr "[.]ZAHL"
+
+#~ msgid "block size"
+#~ msgstr "Blockgröße"
+
+#~ msgid "%s: Read error at byte %s, reading %lu byte"
+#~ msgid_plural "%s: Read error at byte %s, reading %lu bytes"
+#~ msgstr[0] "%s: Lesefehler bei Byte %s, lese ein Byte"
+#~ msgstr[1] "%s: Lesefehler bei Byte %s, lese %lu Bytes"
+
+#~ msgid "--Mangled file names--\n"
+#~ msgstr "––Verstümmelte Dateinamen––\n"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "%s in %s umbenannt"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ msgstr "%s: Kann nicht zu „%s“ linken."
+
+#~ msgid "Symlinked %s to %s"
+#~ msgstr "Symbolische Verknüpfung von %s auf %s."
+
+#~ msgid "Unknown demangling command %s"
+#~ msgstr "Unbekanntes Befehl „%s“ beim Zusammensetzen von Namen."
diff --git a/po/el.po b/po/el.po
new file mode 100644
index 00000000..705b96d2
--- /dev/null
+++ b/po/el.po
@@ -0,0 +1,1366 @@
+# Greek translation of tar
+# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+# Μπαλάσκας Ευάγγελος (Balaskas Euaggelos) <ebalaskas@cs.teiath.gr>, 2004.
+# Simos Xenitellis <simos74@gmx.net>, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.13.25 \n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\n"
+"PO-Revision-Date: 2004-03-08 14:44+0200\n"
+"Last-Translator: Μπαλάσκας Ευάγγελος (Balaskas Euaggelos) <ebalaskas@cs.teiath.gr>\n"
+"Language-Team: Greek <nls@tux.hellug.gr>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.0.2\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "άκυρο όρισμα %s για %s"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "αμφιλεγόμενο όρισμα %s για %s"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Έγκυρα ορίσματα είναι:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Άγνωστο σφάλμα συστήματος"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: η επιλογή`%s' είναι αμφιλεγόμενη\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: η επιλογή `--%s' δεν επιτρέπει όρισμα\n"
+
+#: lib/getopt.c:723
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: η επιλογή `%c%s' δεν επιτρέπει όρισμα\n"
+
+#: lib/getopt.c:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: η επιλογή `%s' απαιτεί όρισμα\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: μη αναγνωρίσιμη επιλογή `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: μη αναγνωρίσιμη επιλογή `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: παράνομη επιλογή -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: άκυρη επιλογή -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: η επιλογή απαιτεί όρισμα -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: η επιλογή `-W %s' είναι αμφιλεγόμενη\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: η επιλογή `-W %s' δεν επιτρέπει όρισμα\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "μέγεθος μπλοκ"
+
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "'"
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "η μνήμη εξαντλήθηκε"
+
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Συνολικά byte που γράφτηκαν: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(σωλήνωση)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Δεν είναι δυνατό το κλείσιμο"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Δεν είναι δυνατή η εκτέλεση της dup"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Δεν είναι δυνατή η χρήση συμπιεσμένων ή απομακρυσμένων αρχειοθηκών"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (θυγατρική)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (εγγόνι)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Άκυρη τιμή για record_size"
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Δεν δόθηκε όνομα αρχειοθήκης"
+
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Δεν είναι δυνατή η επαλήθευση πολλαπλών αρχειοθηκών"
+
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Δεν είναι δυνατή η δέσμευση μνήμης για τον συντελεστή ομαδοποίησης %d"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Δεν είναι δυνατή η χρήση πολλαπλών συμπιεσμένων αρχειοθηκών"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Δεν είναι δυνατή η επαλήθευση των συμπιεσμένων αρχειοθηκών"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Δεν είναι δυνατή η ανανέωση των συμπιεσμένων αρχειοθηκών"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Δεν είναι δυνατή η επαλήθευση των κανονικών εισόδων/εξόδων της αρχειοθήκης"
+
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Η αρχειοθήκη δεν έχει ετικέτα για ταίριασμα %s"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Ο τόμος %s δεν ταιριάζει %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Εγγραφή σημείου ελέγχου %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "Στην αρχή της ταινίας, τερματισμός τώρα"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Πάρα πολλά σφάλματα, τερματισμός"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Ανάγνωση σημείου ελέγχου %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "Ανάγνωση %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "ΠΡΟΕΙΔΟΠΟΊΗΣΗ: Καμία κεφαλίδα του πλήθους"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s δεν συνεχίζεται σε αυτόν τον τόμο"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s είναι το εσφαλμένο μέγεθος (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Αυτός ο τόμος είναι εκτός συνέχειας"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Μη ευθυγραμμισμένο μπλοκ (%lu byte) στην αρχειοθήκη"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Μέγεθος εγγραφής = %lu block"
+
+#: src/buffer.c:1308
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr ""
+
+#: src/buffer.c:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "Η θυγατρική διεργασία τερματίστηκε με το σήμα %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "Η θυγατρική διεργασία επέστρεψε την κατάσταση %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: περιέχει άκυρο αριθμό τόμου"
+
+#: src/buffer.c:1440
+msgid "Volume number overflow"
+msgstr "Υπερχήλιση αριθμού τόμου"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "`%s' η εντολή απέτυχε"
+
+#: src/buffer.c:1468
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Προετοίμασε τον τόμο #%d για %s και πάτα το πλήκτρο επιστροφής γραμμής"
+
+#: src/buffer.c:1474
+msgid "EOF where user reply was expected"
+msgstr "EOF (Τέλος Αρχείου) ενώ η απάντηση του χρήστη αναμενότανε"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "ΠΡΟΕΙΔΟΠΟΊΗΣΗ: Η αρχειοθήκη είναι ημιτελής"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [όνομα] Δώσε ένα νέο όνομα για τον επόμενο (και τον επακόλουθο) τόμο\n"
+" q Εγκατάλειψη tar\n"
+" ! Παραγωγή νέου υπό-φλοιού\n"
+" ? Εκτύπωση αυτής της λίστας\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Κανένας νέος τόμος; έξοδος\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "Δυνατή μόνο η ανάγνωση %lu από %lu byte"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "Τα περιεχόμενα διαφέρουν"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339
+#: src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718
+#: src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367
+#: src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στην αρχειοθήκη"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Επαλήθευση "
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Άγνωστος τύπος αρχείου '%c', εκτέλεση της diff ως κανονικό αρχείο"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "Οι τύποι αρχείων διαφέρουν"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "Οι καταστάσεις διαφέρουν"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Ταυτότητες χρήστη διαφέρουν"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "Ταυτότητες ομάδας διαφέρουν"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "Ώρες τροποποίησης διαφέρουν"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "Τα μεγέθη διαφέρουν"
+
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "Δεν είναι συνδεδεμένο με %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "Οι σύνδεσμοι διαφέρουν"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "Οι αριθμοί των συσκευών διαφέρουν"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "Η ΕΠΑΛΎΘΕΥΣΗ ΑΠΈΤΥΧΕ: ανιχνεύτηκαν %d άκυρη(ες) επικεφαλίδα(δες)"
+
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Παράχθηκαν αρνητικές οκταδικές επικεφαλίδες"
+
+#: src/create.c:200
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "η τιμή %s είναι εκτός του %s εύρος %s..%s; αντικαταστήθηκε από %s"
+
+#: src/create.c:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "η τιμή %s είναι εκτός του %s εύρους %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Τα ονόματα των μελών περιέχουν `..'"
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Απομακρύνονται τα αρχικά `%.*s' από τα ονόματα των μελών"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε"
+
+#: src/create.c:1098
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: το αρχείο είναι σε διαφορετικό σύστημα αρχείων; δεν αποθηκεύτηκε"
+
+#: src/create.c:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Το αρχείο απομακρύνθηκε πριν το διαβάσουμε"
+
+#: src/create.c:1399
+#, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: Το αρχείο συρρικνώθηκε σε %s bytes; συμπλήρωση με μηδενικά"
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: αρχείο τροποποιήθηκε κατά την ανάγνωση"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: η υποδοχή αγνοήθηκε"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: η πόρτα αγνοήθηκε"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Άγνωστος τύπος αρχείου; το αρχείο αγνοήθηκε"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Αυτό δεν φαίνεται ως αρχειοθήκη tar"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Παραλείποντας στην επόμενη επικεφαλίδα"
+
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Διαγραφή μη-επικεφαλίδων από την αρχειοθήκη"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: η ένδειξη χρόνου %s είναι %lu s στο μέλλον"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Μη αναμενόμενη ανακολουθία κατά την δημιουργία του καταλόγου"
+
+#: src/extract.c:578
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Ο κατάλογος μετονομάστηκε πριν η κατάστασή του γίνει μη εξαγώγιμη"
+
+#: src/extract.c:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: Τα ονόματα των μελών περιέχουν `..'"
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Δεν είναι δυνατή η αποθήκευση αυτού του αρχείου"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Εξαγωγή συνεχόμενων αρχείων ως κανονικών αρχείων"
+
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Προσπάθεια εξαγωγής των συμβολικών συνδέσμων ως σθεναρών συνδέσμων"
+
+#: src/extract.c:1207
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Δεν είναι δυνατή η εξαγωγή -- το αρχείο συνεχίζεται σε άλλο τόμο"
+
+#: src/extract.c:1216
+msgid "Visible long name error"
+msgstr "Ορατό σφάλμα μεγάλων ονομάτων"
+
+#: src/extract.c:1224
+#, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
+msgstr "%s: Άγνωστος τύπος αρχείου '%c', εξαγωγή ως κανονικό αρχείο"
+
+#: src/extract.c:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "Το σφάλμα δεν είναι επανορθώσιμο: τερματισμός τώρα"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Ο κατάλογος έχει μετονομαστεί"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Ο κατάλογος είναι καινούριος"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Άκυρη ένδειξη χρόνου"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "Η ένδειξη χρόνου είναι εκτός εύρους"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Άκυρος αριθμός συσκευής"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "Ο αριθμός της συσκευής είναι εκτός εύρους"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Άκυρος αριθμός i-κόμβου"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "Ο αριθμός του i-κόμβου είναι εκτός εύρους"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Διαγραφή %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Δεν είναι δυνατή η απομάκρυνση"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Παράλειψη"
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "μπλοκ %s: ** Μπλοκ με χαρακτήρες NUL **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "μπλοκ %s: ** Τέλος Αρχείου **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Κενά στην επικεφαλίδα ενώ αναμενόταν αριθμητική τιμή %s"
+
+#: src/list.c:606
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Αρχειοθήκη οκταδικής τιμής %.*s είναι εκτός του %s εύρους; Υποθέτω δυαδικά συμπληρώματα"
+
+#: src/list.c:616
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Αρχειοθήκη οκταδικής τιμής %.*s είναι εκτός του %s εύρους"
+
+#: src/list.c:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Η αρχειοθήκη περιέχει απαρχαιωμένες επικεφαλίδες κωδικοποίησης base64"
+
+#: src/list.c:645
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Η αρχειοθήκη είναι υπογεγραμμένη με αλφαριθμητικά base-64 %s είναι εκτός του %s εύρους"
+
+#: src/list.c:676
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Η αρχειοθήκη με base-256 τιμές είναι εκτός του %s εύρους"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Η αρχειοθήκη περιέχει %.*s όπου αριθμητικές %s τιμές αναμένονται"
+
+#: src/list.c:724
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Η τιμή της αρχειοθήκης %s είναι εκτός του %s εύρους %s..%s"
+
+#: src/list.c:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "μπλοκ %s: "
+
+#: src/list.c:946
+msgid "Visible longname error"
+msgstr "Ορατό σφάλμα μεγάλων ονομάτων"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr " σύνδεσμος σε %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " άγνωστος τύπος αρχείου %s\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Επικεφαλίδα Τόμου--\n"
+
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Συνέχιση στο byte %s--\n"
+
+#: src/list.c:1112
+msgid "--Mangled file names--\n"
+msgstr "--Κατακερματισμένα ονόματα αρχείων--\n"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Δημιουργία καταλόγου:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στα κατακερματισμένα ονόματα"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Δεν είναι δυνατή η μετονομασία σε %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Μετονομάστηκε %s σε %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Δεν είναι δυνατή η συμβολική σύνδεση στο %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Συμβολικός δεσμός %s στο %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Άγνωστη εντολή ανασύνταξης %s"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Μετονομασία %s σε %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Μετονομασία %s πίσω στο %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Δεν είναι δυνατή η αποθήκευση του τρέχοντος καταλόγου"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Δεν είναι δυνατή η τροποποίηση του τρέχοντος καταλόγου"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Δεν είναι δυνατή %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Προειδοποίηση: Δεν είναι δυνατή %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Δεν είναι δυνατή η αλλαγή κατάστασης σε %s"
+
+#: src/misc.c:562
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Δεν είναι δυνατή η αλλαγή ιδιοκτησίας σε uid %lu, gid %lu"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Δεν είναι δυνατή η σύνδεση υλικού σε %s"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Προειδοποίηση: Σφάλμα ανάγνωσης στο byte %s, διαβάζοντας %lu byte"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Προειδοποίηση: Δεν είναι δυνατή η αναζήτηση σε %s"
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Δεν είναι δυνατή η δημιουργία συμβολικού δεσμού στο %s"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Γράφτηκαν μόνο %lu από %lu byte"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "θυγατρική διεργασία"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "κανάλι μεταξύ διεργασιών"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Λείπει όνομα αρχείου μετά -C"
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Δεν βρέθηκε στην αρχειοθήκη"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Δεν είναι δυνατή η δέσμευση προσωρινού αποθηκευτικού χώρου \n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Δεν είναι δυνατή η δέσμευση προσωρινού αποθηκευτικού χώρου"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Προσπαθήστε `%s --help' για περισσότερες πληροφορίες.\n"
+
+#: src/rmt.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"
+msgstr ""
+"Χρήση: %s [ΕΠΙΛΟΓΉ]\n"
+"Διαχείριση συσκευής αποθήκευσης ταινίας, αποδοχή εντολών από απομακρυσμένη διεργασία.\n"
+"\n"
+" --version Εμφάνιση πληροφοριών έκδοσης.\n"
+" --help Εμφάνιση αυτής της βοήθειας.\n"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid ""
+"\n"
+"Report bugs to <bug-tar@gnu.org>.\n"
+msgstr ""
+"\n"
+"Αναφορά σφαλμάτων στο <bug-tar@gnu.org>.\n"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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"
+"Μπορείτε να το αναδιανέμεται υπό τους όρους της GNU General Public License;\n"
+"δείτε το αρχείο με όνομα COPYING για λεπτομέρειες."
+
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Η μετατόπιση αναζήτησης είναι εκτός εύρους"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Η κατεύθυνση αναζήτησης είναι εκτός εύρους"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Πρόωρο eof (τέλος αρχείου)\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Πρόωρο τέλος αρχείου"
+
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Εντολή απορριμμάτων %c\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Εντολή απορριμμάτων"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Μη διαθέσιμη υπηρεσία"
+
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "κανονική είσοδος"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "κανονική έξοδος"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Δεν είναι δυνατή η εκτέλεση απομακρυσμένου κελύφους (φλοιού)"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Οι επιλογές `-%s' και `-%s' απαιτούν κανονική είσοδο"
+
+#: src/tar.c:292
+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' αποθηκεύει πολλά αρχεία μαζί σε μία μόνο ταινία (tape) ή σε μία αρχειοθήκη δίσκου (disk archive),\n"
+" και μπορεί να επαναφέρει ξεχωριστά αρχεία από την αρχειοθήκη.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Χρήση: %s [ΕΠΙΛΟΓΈΣ]... [ΑΡΧΕΊΟ]...\n"
+"\n"
+"Παραδείγματα:\n"
+" %s -cf archive.tar foo bar # Δημιουργεί το archive.tar από τα αρχεία foo και bar.\n"
+" %s -tvf archive.tar # Εμφανίζει σε λίστα όλα τα αρχεία από το archive.tar με λεπτομέρειες.\n"
+" %s -xf archive.tar # Εξάγει όλα τα αρχεία από το archive.tar.\n"
+
+#: src/tar.c:303
+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"
+"Παρομοίως για προαιρετικά ορίσματα.\n"
+
+#: src/tar.c:308
+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 μόνο προσθέτει αρχεία νεότερα από ότι αυτά στο αντίγραφο της αρχειοθήκης\n"
+" -A, --catenate προσθέτει αρχεία tar σε μία αρχειοθήκη\n"
+" --concatenate ίδιο όπως -A\n"
+" --delete διαγράφει από μία αρχειοθήκη (όχι γιαμαγνητικές ταινίες)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Τροποποιητές λειτουργίας:\n"
+" -W, --verify προσπάθεια για επιβεβαίωση της αρχειοθήκης μετά από την εγγραφή της\n"
+" --remove-files απομακρύνει τα αρχεία μετά την προσθήκη τους στην αρχειοθήκη\n"
+" -k, --keep-old-files δεν αντικαθιστά τα υπάρχοντα αρχεία κατά την εξαγωγή τους\n"
+" --overwrite αντικαθιστά τα υπάρχοντα αρχεία κατά την εξαγωγή τους\n"
+" --overwrite-dir αντικαθιστά καταλόγους με τα δεδομένα κατά την εξαγωγή τους\n"
+" -U, --unlink-first απομακρύνει κάθε σύνδεσμο αρχείου για να τα εξάγει\n"
+" --recursive-unlink καθορίζει τις ιεραρχικότητες των συνδέσμων των αρχείων για να τα εξάγει\n"
+" -S, --sparse χειρίζεται τα αραιά αρχεία αποτελεσματικά\n"
+" -O, --to-stdout εξάγει τα αρχεία στην κανονική έξοδο\n"
+" -G, --incremental χειρίζεται τα παλιά GNU-format αυξανόμενα αντίγραφα\n"
+" -g, --listed-incremental=FILE\n"
+" χειρίζεται τα νέα GNU-format αυξανόμενα αντίγραφα\n"
+" --ignore-failed-read αποφυγή τερματισμού κατά μη-μηδενικά ή μη-αναγνώσιμα αρχεία\n"
+
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Χειρισμός αρχείων ιδιοτήτων:\n"
+" --owner=ΌΝΟΜΑ ρύθμιση ΌΝΟΜΑ ως ιδιοκτήτης για τα πρόσθετα αρχεία\n"
+" --group=ΌΝΟΜΑ εξαναγκασμός ΌΝΟΜΑ ως ομάδα για τα πρόσθετα αρχεία\n"
+" --mode=ΑΛΛΑΓΈΣ εξαναγκασμός (συμβολικών) κατάστασης ΑΛΛΑΓΈΣ για τα πρόσθετα αρχεία\n"
+" --atime-preserve να μην αλλάξει η ώρα προσπέλασης στα αποθηκευμένα αρχεία\n"
+" -m, --modification-time να μην γίνει εξαγωγή της ώρας τροποποίησης αρχείου\n"
+" --same-owner προσπάθεια εξαγωγής αρχείων με την ίδια ιδιοκτησία\n"
+" --no-same-owner εξαγωγή αρχείων ως ο εαυτός σου\n"
+" --numeric-owner πάντα να χρησιμοποιείται αριθμούς για τα ονόματα χρήστη/ομάδα\n"
+" -p, --same-permissions εξαγωγή πληροφοριών δικαιωμάτων\n"
+" --no-same-permissions να μην γίνει εξαγωγή πληροφοριών δικαιωμάτων\n"
+" --preserve-permissions ίδιο όπως -p\n"
+" -s, --same-order ταξινόμηση ονομάτων για εξαγωγή για ταίριασμα με αρχειοθήκη\n"
+" --preserve-order ίδιο όπως -s\n"
+" --preserve ίδιο όπως -p και -s\n"
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Επιλογή συσκευής και εναλλαγή:\n"
+" -f, --file=ΑΡΧΕΙΟΘΉΚΗ χρησιμοποίησε αρχείο αρχειοθήκης ή συσκευή ΑΡΧΕΙΟΘΉΚΗς\n"
+" --force-local το αρχείο αρχειοθήκης είναι τοπικό ακόμα και εάν είχε άνω στιγμή\n"
+" --rsh-command=ΕΝΤΟΛΉ χρησιμοποίησε απομακρυσμένη ΕΝΤΟΛΉ αντί για rsh\n"
+" -[0-7][lmh] καθόρισε συσκευή και πυκνότητα\n"
+" -M, --multi-volume δημιουργία/λίστα/εξαγωγή πολλαπλών αρχειοθηκών\n"
+" -L, --tape-length=ΑΡΙΘΜ αλλαγή ταινίας αφού γραφτούν ΑΡΙΘΜ x 1024 byte\n"
+" -F, --info-script=ΑΡΧΕΊΟ εκτέλεσε ΑΡΧΕΊΟ στο τέλος κάθε ταινίας (υπονοείται -M)\n"
+" --new-volume-script=ΑΡΧΕΊΟ ίδιο όπως -F ΑΡΧΕΙΟ\n"
+" --volno-file=ΑΡΧΕΊΟ χρησιμοποιεί/ανανεώνει τον αριθμό του τόμου στο ΑΡΧΕΊΟ\n"
+
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Διάταξη ομαδοποίησης:\n"
+" -b, --blocking-factor=ΜΠΛΟΚ ΜΠΛΟΚ x 512 byte ανά εγγραφή\n"
+" --record-size=ΜΈΓΕΘΟΣ ΜΈΓΕΘΟΣ byte ανά εγγραφή, πολλαπλάσιο του 512\n"
+" -i, --ignore-zeros παράβλεψη μηδενικών μπλοκ στην αρχειοθήκη (δηλαδή EOF)\n"
+" -B, --read-full-records δημιουργία ξανά μπλοκ κατά την ανάγνωση (για σωληνώσεις σε 4.2BSD)\n"
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Επιλογή μορφής αρχείοθήκης:\n"
+" -V, --label=ΌΝΟΜΑ δημιουργία αρχειοθήκης με όνομα τόμου ΌΝΟΜΑ\n"
+" ΣΧΈΔΙΟ κατά την ώρα λίστας/εξαγωγής,ένα ΣΧΈΔΙΟ ταιριάσματος\n"
+" -o, --old-archive, --portability γράφω μία αρχειοθήκη μορφής V7\n"
+" --posix γράφω μία αρχειοθήκη μορφής POSIX\n"
+" -j, --bzip2 φιλτράρισμα αρχειοθήκης μέσα από bzip2\n"
+" -z, --gzip, --ungzip φιλτράρισμα αρχειοθήκης μέσα από gzip\n"
+" -Z, --compress, --uncompress φιλτράρισμα αρχειοθήκης μέσα από compress\n"
+" --use-compress-program=ΠΡΟΓΡ φιλτράρισμα μέσα από ΠΡΟΓΡ (πρέπει να δεχτεί -d)\n"
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Επιλογές τοπικών αρχείων:\n"
+" -C, --directory=ΚΑΤΑΛ άλλαξε στον κατάλογο ΚΑΤΑΛ\n"
+" -T, --files-from=ΌΝΟΜΑ πάρε ονόματα από το αρχείο ΌΝΟΜΑ για εξαγωγή/δημιουργία\n"
+" --null -T διαβάζει κενά-τελικά ονόματα, απενεργοποιεί με -C\n"
+" --exclude=ΣΧΈΔΙΟ αποκλείει αρχεία, δοσμένα ως ΣΧΈΔΙΟ\n"
+" -X, --exclude-from=ΑΡΧΕΊΟ αποκλείει σχέδια που εμφανίζονται στο FILE\n"
+" --anchored αποκλείει σχέδια που ταιριάζουν τα ονόματα των αρχικών αρχείων (προεπιλογή)\n"
+" --no-anchored αποκλείει σχέδια που ταιριάζουν με καθένα /\n"
+" --ignore-case παράληψη αγνοώντας τα πεζά\n"
+" --no-ignore-case παράληψη σε διάκριση πεζών-κεφαλαίων (προεπιλογή)\n"
+" --wildcards αποκλείει σχέδια χρησιμοποιώντας σύμβολα (προεπιλογή)\n"
+" --no-wildcards αποκλείει σχέδια που είναι απλά κείμενα\n"
+" --wildcards-match-slash αποκλείει σχέδια που ταιριάζουν σε σύμβολα '/' (προεπιλογή)\n"
+" --no-wildcards-match-slash αποκλείει σχέδια που δεν ταιριάζουν σε σύμβολα '/'\n"
+" -P, --absolute-names δεν αφαιρεί αρχικό `/'s από τα ονόματα των αρχείων\n"
+" -h, --dereference αποθηκεύει αντί για τα αρχεία συμβολικούς δεσμούς που δείχνουν σε αυτά\n"
+" --no-recursion αποφεύγει αυτόματη κάθοδος στους καταλόγους\n"
+" -l, --one-file-system μένει στο τοπικό σύστημα αρχείων κατά την δημιουργία αρχειοθήκης\n"
+" -K, --starting-file=ΌΝΟΜΑ αρχίζει στο αρχείο ΌΝΟΜΑ μέσα στην αρχειοθήκη\n"
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=ΗΜΕΡΟΜΗΝΊΑ αποθήκευσε μόνο αρχεία νεώτερα από την ΗΜΕΡΟΜΉΝΙΑ\n"
+" --newer-mtime=ΗΜΕΡΟΜΗΝΊΑ σύγκρινε ημερομηνία και ώρα μόνο όταν τα δεδομένα τροποποιούνται\n"
+" --after-date=ΗΜΕΡΟΜΗΝΊΑ ίδιο όπως -N\n"
+
+#: src/tar.c:418
+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"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Εμφάνιση πληροφοριών:\n"
+" --help τύπωμα αυτής της βοήθειας, έπειτα έξοδος\n"
+" --version τύπωμα αριθμού έκδοσης του προγράμματος tar, έπειτα έξοδος\n"
+" -v, --verbose εμφάνιση ονομάτων αρχείων κατά την επεξεργασία τους\n"
+" --checkpoint τύπωσε τα ονόματα των καταλόγων κατά την ανάγνωση της αρχειοθήκης\n"
+" --totals τύπωσε συνολικά byte γραμμένα κατά την δημιουργία της αρχειοθήκης\n"
+" -R, --block-number εμφάνισε αριθμό μπλοκ μέσα στην αρχειοθήκη σε κάθε μήνυμα\n"
+" -w, --interactive ρώτησε για επιβεβαίωση για κάθε ενέργεια\n"
+" --confirmation ίδιο όπως -w\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+"Η κατάληξη αντιγράφου είναι `~', εκτός εάν τεθεί --suffix ή με SIMPLE_BACKUP_SUFFIX.\n"
+"Ο έλεγχος της έκδοσης μπορεί να τεθεί με --backup ή με VERSION_CONTROL, οι τιμές είναι:\n"
+"\n"
+" t, numbered κάνε αριθμημένα αντίγραφα\n"
+" nil, existing αρίθμησε-τα ακόμα και εάν είναι αριθμημένα, απλά διαφορετικά\n"
+" never, simple πάντα κάνε απλά αντίγραφα\n"
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"Το GNU tar δεν μπορεί να αναγνώσει είτε να παράγει αρχειοθήκες `--posix'.\n"
+"Εάν στο περιβάλλον έχει τεθεί POSIXLY_CORRECT, οι επεκτάσεις GNU δεν επιτρέπονται με `--posix'.\n"
+"Η υποστήριξη για POSIX είναι μόνο μερικών υλοποιημένη, μην βασίζεστε πάνω σε αυτήν ακόμα.\n"
+"Η ΑΡΧΕΙΟΘΉΚΗ μπορεί να είναι ΑΡΧΕΊΟ, ΔΙΑΚΟΜΙΣΤΉΣ:ΑΡΧΕΊΟ ή ΧΡΉΣΤΗΣ@ΔΙΑΚΟΜΙΣΤΉΣ:ΑΡΧΕΊΟ; \n"
+"Η ΗΜΕΡΟΜΉΝΙΑ μπορεί να είναι σε μορφή κειμένου ή ένα όνομα αρχείου\n"
+"όπου αρχίζει με `/' ή `.', στην οποία περίπτωση η ημερομηνία του αρχείου χρησιμοποιείτε.\n"
+"*Τούτη* η εντολή `tar' χρησιμοποιεί εξ ορισμού `-f%s -b%d'.\n"
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Ίσως δεν καθορίσατε παραπάνω από μία επιλογή `-Acdtrux'"
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Συγκρουόμενες επιλογές συμπίεσης"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Παλιά επιλογή `%c' απαιτεί όρισμα."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Εκτός χρήσης επιλογή, τώρα συνεπάγεται από το --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --blocking-factor"
+
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Άκυρος συντελεστής ομαδοποίησης"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --read-full-records"
+
+#: src/tar.c:696
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Προειδοποίηση: η -I επιλογή δεν υποστηρίζεται; ίσως εννοούσατε την -j ή την -T;"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "Άκυρο μέγεθος ταινίας"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr "Παραπάνω από ένα όριο ημερομηνίας"
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Το αρχείο ημερομηνίας δεν βρέθηκε"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Αντικατάσταση %s για άγνωστη διαμόρφωση ημερομηνίας %s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "Συγκρουόμενες επιλογές διαμόρφωσης αρχειοθήκης"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Προειδοποίηση: η επιλογή -y δεν υποστηρίζεται; ίσως εννοούσατε -j;"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Εκτός χρήσης όνομα επιλογής αντικαταστάθηκε από το --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Άκυρη ομάδα"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Άκυρη κατάσταση δόθηκε σε επιλογή"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Άκυρος ιδιοκτήτης"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Άκυρο μέγεθος εγγραφής"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Το μέγεθος της εγγραφής πρέπει να είναι πολλαπλάσιο του %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Οι επιλογές `-[0-7][lmh]' δεν υποστηρίζονται από *αυτήν* την εντολή tar"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Γράφτηκε από τους John Gilmore και Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Τα χαρακτηριστικά GNU απαιτούν μη συμβατή διαμόρφωση αρχειοθήκης"
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Πολλαπλά αρχεία αρχειοθηκών απαιτούν την επιλογή `-M'"
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Δεν είναι δυνατός ο συνδυασμός --listed-incremental με --newer"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: Η ετικέτα του τόμου είναι πολύ μεγάλη (το όριο είναι %lu byte)"
+
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Αρνούμαι δειλά στη δημιουργία μίας κενής αρχειοθήκης"
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Οι επιλογές `-Aru' δεν είναι συμβατές με `-f -'"
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Πρέπει να καθορίσεις μία από τις επιλογές `-Acdtrux'"
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Σφάλμα κατά την εγγραφή στην κανονική έξοδο"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Καθυστέρησε το σφάλμα εξόδου από προηγούμενα σφάλματα"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: Το αρχείο συρρικνώθηκε κάτα %s byte"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Παράγει αρχεία δεδομένων για δοκιμαστική πλατφόρμα GNU tar.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Χρήση: %s [ΕΠΙΛΟΓΉ]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Εάν μία μεγάλη επιλογή εμφανίζει ένα όρισμα ως υποχρεωτικό, τότε αυτό\n"
+"είναι υποχρεωτικό και για την αντίστοιχη μικρή επιλογή επίσης.\n"
+"\n"
+" -l, --file-length=ΜΉΚΟΣ Το ΜΉΚΟΣ του παραγομένου αρχείου\n"
+" -p, --pattern=ΜΟΤΊΒΟ Το ΜΟΤΊΒΟ είναι το `default' ή `zeros'\n"
+" --help εμφάνισης αυτής της βοήθειας και τερματισμός\n"
+" --version εμφάνιση πληροφοριών έκδοσης και τερματισμός\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr ""
+"Γράφτηκε από τον F. Pinard.\n"
+"Μεταφράστηκε από τον Μπαλάσκα Ευάγγελο."
diff --git a/po/en@boldquot.header b/po/en@boldquot.header
new file mode 100644
index 00000000..fedb6a06
--- /dev/null
+++ b/po/en@boldquot.header
@@ -0,0 +1,25 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+# This catalog furthermore displays the text between the quotation marks in
+# bold face, assuming the VT100/XTerm escape sequences.
+#
diff --git a/po/en@quot.header b/po/en@quot.header
new file mode 100644
index 00000000..a9647fc3
--- /dev/null
+++ b/po/en@quot.header
@@ -0,0 +1,22 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 00000000..8c3b33dd
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,2776 @@
+# Mensajes en espaol para GNU tar.
+# Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+# Federico Rivas <frivas@arrakis.es>, 1997.
+# Enrique Melero <melero@iprolink.ch>, 1997.
+# Santiago Vila Doncel <sanvila@unex.es>, 1998, 1999, 2000, 2001, 2002, 2004.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.15.1\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2004-12-21 17:11+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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/argmatch.c:137
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumento %s invlido para %s"
+
+#: lib/argmatch.c:138
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argumento %s ambiguo para %s"
+
+#: lib/argmatch.c:157
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Los argumentos vlidos son:"
+
+#: lib/error.c:123 rmt/rmt.c:92
+msgid "Unknown system error"
+msgstr "Error del sistema desconocido"
+
+#: lib/getopt.c:551 lib/getopt.c:570
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: la opcin `%s' es ambigua\n"
+
+#: lib/getopt.c:603 lib/getopt.c:607
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: la opcin `--%s' no admite ningn argumento\n"
+
+#: lib/getopt.c:616 lib/getopt.c:621
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: la opcin `%c%s' no admite ningn argumento\n"
+
+#: lib/getopt.c:667 lib/getopt.c:689 lib/getopt.c:1020 lib/getopt.c:1042
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: la opcin `%s' requiere un argumento\n"
+
+#: lib/getopt.c:727 lib/getopt.c:730
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opcin no reconocida `--%s'\n"
+
+#: lib/getopt.c:738 lib/getopt.c:741
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opcin no reconocida `%c%s'\n"
+
+#: lib/getopt.c:796 lib/getopt.c:799
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opcin ilegal -- %c\n"
+
+#: lib/getopt.c:805 lib/getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opcin invlida -- %c\n"
+
+#: lib/getopt.c:863 lib/getopt.c:882 lib/getopt.c:1095 lib/getopt.c:1116
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: la opcin requiere un argumento -- %c\n"
+
+#: lib/getopt.c:935 lib/getopt.c:954
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: la opcin `-W %s' es ambigua\n"
+
+#: lib/getopt.c:978 lib/getopt.c:999
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: la opcin `-W %s' no admite ningn argumento\n"
+
+#: lib/human.c:484
+msgid "block size"
+msgstr "tamao del bloque"
+
+#: lib/quotearg.c:240
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:241
+msgid "'"
+msgstr "'"
+
+#: lib/rtapelib.c:297
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Servicio no disponible"
+
+#: lib/rtapelib.c:301
+msgid "stdin"
+msgstr "entrada estndar (stdin)"
+
+#: lib/rtapelib.c:304
+msgid "stdout"
+msgstr "salida estndar (stdout)"
+
+#: lib/rtapelib.c:512
+msgid "Cannot execute remote shell"
+msgstr "No se puede ejecutar un shell remoto"
+
+#: lib/argp-help.c:194
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: El parmetro ARGP_HELP_FMT necesita un valor"
+
+#: lib/argp-help.c:203
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Parmetro ARGP_HELP_FMT desconocido"
+
+#: lib/argp-help.c:215
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Incongruencia en ARGP_HELP_FMT: %s"
+
+#: lib/argp-help.c:1188
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr ""
+"Los argumentos obligatorios u opcionales para las opciones largas son tambin\n"
+"obligatorios u opcionales para las opciones cortas correspondientes."
+
+#: lib/argp-help.c:1575
+msgid "Usage:"
+msgstr "Modo de empleo:"
+
+#: lib/argp-help.c:1579
+msgid " or: "
+msgstr " o bien: "
+
+#: lib/argp-help.c:1591
+msgid " [OPTION...]"
+msgstr " [OPCIN...]"
+
+#: lib/argp-help.c:1618
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Pruebe `%s --help' o `%s --usage' para ms informacin.\n"
+
+# Por favor, no me digis cmo se traduce bug.
+# Gerardo lo ha visto traducido en un libro como "pulgas", y yo
+# lo he visto como "chinche" en la "Investigacin y Ciencia".
+# Est claro que as no vamos a ninguna parte.
+# Yo dira simplemente `fallos [ocultos]'. Es lo que significa, en realidad,
+# en el contexto informtico, razones histricas aparte de bichos anidando
+# al calorcito de los tubos de vaco de los primeros computadores. gerardo
+# De "ocultos" nada... Este vamos a dejarlo, vale? sv
+# T mandas, pero cmo que de ocultos nada? Si no fueran ocultos, el progra-
+# ma no vera la luz an, no? Pero observa que he puesto el `ocultos' entre
+# corchetes. Yo pondra "bug -> fallo" simplemente. Comunicar fallos a... gerardo
+# Que no vera la luz si no fueran ocultos? Ja, ja, ja, ja...
+# Mira por ejemplo en http://nl.debian.org/Bugs.
+# No tendra sentido catalogarlos entonces?
+#
+# Vase "A Bug's life".
+#: lib/argp-help.c:1646 src/tar.c:1252
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Comunicar bichos a %s.\n"
+
+#: rmt/rmt.c:144
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: No se puede asignar espacio para el bfer\n"
+
+#: rmt/rmt.c:146
+msgid "Cannot allocate buffer space"
+msgstr "No se puede asignar espacio para el bfer"
+
+#: rmt/rmt.c:256
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Pruebe `%s --help' para ms informacin.\n"
+
+#: rmt/rmt.c:260
+#, 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 [OPCIN]\n"
+"Manipula una unidad de cinta, aceptando rdenes de un proceso remoto.\n"
+"\n"
+" --version Muestra la versin.\n"
+" --help Muestra esta ayuda.\n"
+
+# Por favor, no me digis cmo se traduce bug.
+# Gerardo lo ha visto traducido en un libro como "pulgas", y yo
+# lo he visto como "chinche" en la "Investigacin y Ciencia".
+# Est claro que as no vamos a ninguna parte.
+# Yo dira simplemente `fallos [ocultos]'. Es lo que significa, en realidad,
+# en el contexto informtico, razones histricas aparte de bichos anidando
+# al calorcito de los tubos de vaco de los primeros computadores. gerardo
+# De "ocultos" nada... Este vamos a dejarlo, vale? sv
+# T mandas, pero cmo que de ocultos nada? Si no fueran ocultos, el progra-
+# ma no vera la luz an, no? Pero observa que he puesto el `ocultos' entre
+# corchetes. Yo pondra "bug -> fallo" simplemente. Comunicar fallos a... gerardo
+# Que no vera la luz si no fueran ocultos? Ja, ja, ja, ja...
+# Mira por ejemplo en http://nl.debian.org/Bugs.
+# No tendra sentido catalogarlos entonces?
+#
+# Vase "A Bug's life".
+#: rmt/rmt.c:267
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Comunicar bichos a <%s>.\n"
+
+#: rmt/rmt.c:301
+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 ""
+"Este programa viene sin NINGUNA GARANTA, hasta donde permite la ley.\n"
+"Puede redistribuirse bajo los trminos de la Licencia Pblica General de GNU;\n"
+"vea el fichero llamado COPYING para ms informacin."
+
+#: rmt/rmt.c:400 rmt/rmt.c:520 rmt/rmt.c:530
+msgid "Seek offset out of range"
+msgstr "Desplazamiento fuera de rango"
+
+#: rmt/rmt.c:413
+msgid "Seek direction out of range"
+msgstr "Direccin de desplazamiento fuera de rango"
+
+# FIXME. Este es el nico eof en minsculas.
+#: rmt/rmt.c:452
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Fin de fichero prematuro\n"
+
+#: rmt/rmt.c:454
+msgid "Premature end of file"
+msgstr "Fin de fichero prematuro"
+
+# "no reconocida" me pareca muy suave para "garbage". sv
+# OJO: Casi el mismo mensaje.
+#: rmt/rmt.c:562
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Orden ininteligible %c\n"
+
+#: rmt/rmt.c:564
+msgid "Garbage command"
+msgstr "Orden ininteligible"
+
+# No es mejor "Total de bytes escritos: "?
+# Suena ms directo y ms similar al original,
+# "bytes escritos en total" suena demasiado complejo... Nicols Lichtmaier.
+# Suena algo extrao eso de "total de bytes". "en total" me suena
+# mucho ms natural. sv
+#: src/buffer.c:263
+#, c-format
+msgid "Total bytes written: %s (%s, %s/s)\n"
+msgstr "Bytes escritos en total: %s (%s, %s/s)\n"
+
+# Antes de que nadie diga nada:
+#
+# Si a alguien no le gusta la palabra tubera (que aparece en algunos
+# libros sobre MS-DOS y es la que venimos usando desde el principio) que
+# haga una propuesta seria de cambio, pero que sepa que abriramos la caja
+# de Pandora, pues hay muchas palabras posibles para pipe: tubera,
+# conducto, caera, canal, etc.
+#
+# En cuanto a poner (pipe) entre parntesis, es una mala costumbre que
+# deberamos desterrar ya. Eso se hace en los libros la primera vez, pero
+# aqu no slo no hay primera vez, sino que el mismo mensaje puede
+# aparecer *varias* veces, y entonces s que es una paliza.
+# Ejemplo de paliza: "tubera rota" en libc. Sale muchsimo y no es
+# cuestin de ver (pipe) cuarenta veces al da...
+#: src/buffer.c:340
+msgid "(pipe)"
+msgstr "(tubera)"
+
+# No queda ms bonita la 1 comilla abierta as: `record_size'?
+# S. FIXME. Comunicar al autor. sv
+#: src/buffer.c:388
+msgid "Invalid value for record_size"
+msgstr "El valor de `record_size' no es vlido"
+
+#: src/buffer.c:391
+msgid "No archive name given"
+msgstr "No se ha especificado ningn nombre de archivo"
+
+# FIXME: Si la entrada/salida estndar no es un archivo, por qu el
+# original se refiere a ella como tal?
+#
+# En cierto sentido, s es un archivo, o se puede emplear como tal.
+# Tar al menos la trata as, en `tar -f -' (o sin la opcin -f en este
+# GNU tar)'; luego la E/S std. puede ser un archivo "real" de disco:
+# tar ... -f - > arch.tar gerardo
+#
+# Esto corresponde a la opcin --verify.
+# Ejemplos: "tar cWf - ." y "tar xWf -"
+# o sea que una traduccin correcta se vera ms como:
+# "No se puede verificar un archivo desde/hacia la entrada/salida estndar"
+# o algo as. Quiz "No se puede verificar un archivo tomado de la entrada
+# estndar o escrito hacia la salida estndar", pero es un poco largo.. =)
+#
+#: src/buffer.c:441
+msgid "Cannot verify stdin/stdout archive"
+msgstr "No se puede verificar la entrada/salida estndar"
+
+#: src/buffer.c:454
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "El archivo est comprimido. Utilice la opcin %s"
+
+# Ojo que esto podra referirse a "is not being labelled NOW" en vez de
+# "isn't labelled". Pero no tengo los fuentes para ver la intencin
+# original. nl
+# Si no se sabe eso, se podra dejar de forma ms neutra como
+# "Archivo no etiquetado para concordancia con `%s'" - gerardo (gag)
+# FIXME: Preguntar.
+#: src/buffer.c:526
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "El archivo no est etiquetado para que coincida con %s"
+
+#: src/buffer.c:529 src/buffer.c:896
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "El volumen %s no coincide con %s"
+
+#: src/buffer.c:567
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Punto de comprobacin de escritura %d"
+
+#: src/buffer.c:654
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header"
+msgstr ""
+"%s: el nombre del fichero es demasiado largo para almacenarse en una cabecera\n"
+"multivolumen de GNU"
+
+#: src/buffer.c:733
+msgid "At beginning of tape, quitting now"
+msgstr "Al principio de la cinta, se terminar ahora"
+
+#: src/buffer.c:739
+msgid "Too many errors, quitting"
+msgstr "Demasiados errores, abandono"
+
+#: src/buffer.c:765
+#, c-format
+msgid "Read %s bytes from %s"
+msgstr "Ledos %s bytes como %s"
+
+#: src/buffer.c:777
+#, 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:797
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Tamao del registro = %lu bloque"
+msgstr[1] "Tamao del registro = %lu bloques"
+
+#: src/buffer.c:814
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Punto de comprobacin de lectura %d"
+
+#: src/buffer.c:905 src/extract.c:1100
+#, c-format
+msgid "Reading %s\n"
+msgstr "Leyendo %s\n"
+
+#: src/buffer.c:909
+msgid "WARNING: No volume header"
+msgstr "ATENCIN: No hay cabecera de volumen"
+
+#: src/buffer.c:917
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s no contina en este volumen"
+
+#: src/buffer.c:931
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s tiene un tamao errneo (%s != %s + %s)"
+
+# Sugerencia: est fuera de secuencia -> no est en orden. sv
+# Creo recordar que en el CPBackup de Central Point pona lo de "fuera de
+# secuencia". fr
+# Buena referencia :-).
+# El comentario habr que conservarlo en la versin final. sv
+# Bueno, la verdad es que ahora que lo pienso, me parece una mala
+# traduccin... opiniones? sv
+# Me parece correcta la traduccin "literal", pero me gusta
+# ms tu sugerencia - gerardo
+# El problema es que un volumen individual no puede estar desordenado.
+# Lo que est ordenado o no es la sucesin entera.
+# Un volumen individual puede estar fuera de lugar, pero no desordenado
+# l solito.
+# Todava espero una solucin mgica que sea mejor que las dos
+# que tenemos hasta ahora.
+#: src/buffer.c:943
+msgid "This volume is out of sequence"
+msgstr "Este volumen est fuera de secuencia"
+
+#: src/buffer.c:1025
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "No se puede ir hacia atrs en el archivo; puede ser ilegible sin -i"
+
+#: src/buffer.c:1057
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek no par en los lmites de un registro"
+
+#: src/buffer.c:1108
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: contiene un nmero de volumen invlido"
+
+#: src/buffer.c:1160
+msgid "Volume number overflow"
+msgstr "Desbordamiento en el nmero de volumen"
+
+#: src/buffer.c:1179
+#, c-format
+msgid "`%s' command failed"
+msgstr "La orden `%s' fall"
+
+#: src/buffer.c:1188
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Prepare el volumen #%d para %s y pulse intro: "
+
+#: src/buffer.c:1194
+msgid "EOF where user reply was expected"
+msgstr "Se encontr un final de fichero mientras se esperaba respuesta del usuario"
+
+#: src/buffer.c:1199 src/buffer.c:1229
+msgid "WARNING: Archive is incomplete"
+msgstr "ATENCIN: El archivo est incompleto"
+
+# Antes de que nadie diga nada:
+# shell admite muchas traducciones, caparazn, concha, envoltorio, coraza,
+# etc. pero ninguna ha prosperado. Adems, algunos nombres son innombrables
+# en ciertos pases, as que mejor dejarlo como est.
+# Y si no se traduce, se queda en *el* shell, es decir, *neutro*.
+#
+# Ya que volmenes se acenta, habra que poner "volumen/volmenes"
+# en lugar de "volumen(es)"?
+# No me gusta, ya que slo es plural con la parte entre parntesis "(y consecutivos)". fr
+# Creo que esta bien as Gerardo. em+
+# # Cuidadn. El nombre de archivo se le da *al* volumen? Literalmente
+# # dice que da un nuevo nombre *para* el sgute. volumen, pero ese
+# # nombre es el del volumen? No entiendo bien el contexto; quiz
+# # habra que mirar el cdigo fuente o ver cundo sale este
+# # mensaje.
+# # Otra cosa es eso de "abortar". No s si se habr tratado en
+# # spanglish o en es@li.org, pero suena muy feo, no? Quiz "Sale
+# # inmediatamente de tar".
+#
+# "Print this list" es exactamente "Imprime esta lista" o a lo sumo "Muestra
+# esta lista". No veo que diga ayuda en ninguna parte, no creo que un
+# traductor deba ser ms inteligente que el escritor original.. =) nl
+# Yo creo que a veces s :-) sv
+# S, un programador no tiene por qu ser buen escritor :-) En un fortune me
+# sali una vez: "Los que no saben escribir, escriben manuales". :-)
+# A m aqu me da igual lista que ayuda, de las dos formas se entiende. Manda
+# el traductor original. gerardo
+# A alguien ms le parece mal que ponga ayuda en vez de lista? sv
+#: src/buffer.c:1213
+#, c-format
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nombre] Da un nuevo nombre de archivo al siguiente\n"
+" (y consecutivos) volumen(es)\n"
+" q Aborta tar\n"
+" ! Lanza un subshell\n"
+" ? Muestra esta ayuda\n"
+
+# "saliendo"->"finalizando". jmg
+# Je, je, no has ledo, Santiago, el `dardo' de Fdo. Lzaro Carreter sobre
+# finalizar? No s por qu quitar lo de salir, to exit es salir, no acabar.
+# Uno se sale del programa, y ste acaba. En realidad, tambin da igual, de
+# cualquier forma se entiende, pero mejor acabar o terminar que finalizar,
+# total, son sinnimos. gerardo
+#: src/buffer.c:1224
+msgid "No new volume; exiting.\n"
+msgstr "No hay volumen nuevo; finalizando.\n"
+
+#: src/compare.c:105
+#, c-format
+msgid "Could only read %lu of %lu byte"
+msgid_plural "Could only read %lu of %lu bytes"
+msgstr[0] "Slo se pudieron leer %lu de %lu byte"
+msgstr[1] "Slo se pudieron leer %lu de %lu bytes"
+
+#: src/compare.c:116 src/compare.c:132
+msgid "Contents differ"
+msgstr "El contenido es distinto"
+
+#: src/compare.c:158 src/extract.c:763 src/incremen.c:496 src/list.c:235
+#: src/list.c:412 src/list.c:1282
+msgid "Unexpected EOF in archive"
+msgstr "Fin de fichero inesperado en el archivo"
+
+# "Verifica ". Supongo que depende de si se concatena en algn
+# mensaje. jmg
+# FUZZY. Es verdad, habr que verlo.
+#: src/compare.c:212
+#, c-format
+msgid "Verify "
+msgstr "Verificar "
+
+# # Quiz diffed es el participio de diff, siendo esto un verbo tomado
+# # del nombre del programa diff? Entonces querra decir que se ha
+# # efectuado un diff como si el *fichero* hubiera sido normal. Yo slo
+# # cambiara "se toma" por "se ha tomado". gag
+# Es norma habitual convertir un pasado en un presente en estos casos.
+# Realmente, dice lo que hace y no lo que ha hecho. sv
+# FIXME. Decirle al autor que estandarice las comillas: '%c' o `%c'?
+# De momento lo estandarizo en la traduccin.
+#: src/compare.c:219
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr ""
+"%s: Tipo de fichero `%c' desconocido, se toma la diferencia\n"
+"como fichero normal"
+
+#: src/compare.c:242 src/compare.c:364 src/compare.c:416 src/compare.c:443
+msgid "File type differs"
+msgstr "El tipo de fichero es distinto"
+
+# El autor quera un mensaje muy conciso, y en la traduccin se expande a una
+# oracin completa.. Por qu? Debera ser "Distinto modo".
+# Porque el idioma ingls es ms corto. Si a cada frase corta le hago
+# corresponder siempre una frase corta espaola, el resultado sonar a indio
+# completamente (me refiero a los indios esos de las pelculas del oeste,
+# que solamente hablan con sustantivos, verbos y adjetivos). sv
+#: src/compare.c:249 src/compare.c:378 src/compare.c:422
+msgid "Mode differs"
+msgstr "El modo es distinto"
+
+#: src/compare.c:252
+msgid "Uid differs"
+msgstr "El uid es distinto"
+
+#: src/compare.c:254
+msgid "Gid differs"
+msgstr "El gid es distinto"
+
+#: src/compare.c:257
+msgid "Mod time differs"
+msgstr "La fecha de modificacin es distinta"
+
+#: src/compare.c:261 src/compare.c:451
+msgid "Size differs"
+msgstr "El tamao es distinto"
+
+# Creo que este enlace se efecta 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:319
+#, c-format
+msgid "Not linked to %s"
+msgstr "No se enlaza a %s"
+
+#: src/compare.c:342
+msgid "Symlink differs"
+msgstr "El enlace simblico es distinto"
+
+#: src/compare.c:372
+msgid "Device number differs"
+msgstr "El nmero de dispositivo es distinto"
+
+#: src/compare.c:500
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "El archivo contiene nombres de fichero con los prefijos iniciales eliminados."
+
+#: src/compare.c:502
+msgid "Verification may fail to locate original files."
+msgstr "Puede que la verificacin no encuentre los ficheros originales."
+
+#: src/compare.c:572
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "FALLO DE VERIFICACIN: %d cabecera invlida detectada"
+msgstr[1] "FALLO DE VERIFICACIN: %d cabeceras invlidas detectadas"
+
+#: src/create.c:145
+msgid "Generating negative octal headers"
+msgstr "Generando cabeceras octales negativas"
+
+#: src/create.c:196
+#, 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:202
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "valor %s fuera del rango %s %s..%s"
+
+#: src/create.c:481 src/create.c:544
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: el nombre del fichero es demasiado largo (mx %d); no se vuelca"
+
+#: src/create.c:491
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: el nombre del fichero es demasiado largo (no se puede dividir); no se vuelca"
+
+#: src/create.c:518
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: el nombre del enlace es demasiado largo; no se vuelca"
+
+# "se rellena" debera ser "rellenando". "se rellena" puede entenderse como
+# varias cosas, no queda claro que es lo que se esta haciendo, podra indicar
+# lo que se suele hacer.. =) "rellenando con ceros" es perfecto y es
+# exactamente lo que est escrito en el original. sv
+#
+# Que s, reconozco que la traduccin es un poco libre.
+# Pero mi intencin 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:884
+#, 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: El tamao del fichero ha disminuido en %s byte, se rellena con ceros"
+msgstr[1] "%s: El tamao del fichero ha disminuido en %s bytes, se rellena con ceros"
+
+#: src/create.c:910
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: el fichero cambi mientras se estaba leyendo"
+
+#: src/create.c:1051
+#, 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"
+
+#: src/create.c:1061
+#, c-format
+msgid "%s: contains a cache directory tag; not dumped"
+msgstr "%s: contiene una marca de directorio cach; no se vuelca"
+
+# ignore no es ignorar, es "no hacer caso"
+# se puede usar: no tener en cuenta, descartar, no tener efecto,
+# pasar por alto,
+# ignorar es "not to know". sv
+# Y cuando se ignora a una persona ;-)? fr
+# Lo mismo: Est mal dicho, se dice que no le haces caso a esa persona.
+# Si no me crees busca "ignore" en algn buen diccionario.
+# O mira la lista de pifias de ngel lvarez directamente.
+# La tengo en ftp.unex.es.
+# Lo siento, Santiago, hemos sido derrotados; "ignorar" ya viene en los
+# diccionarios de espaol, y creo que hasta en el DRAE, con el significado
+# que tiene en ingls "to ignore"; aunque nosotros podemos ignorarlo ;-)
+# y seguir en la ortodoxia castellana :-) gerardo
+# Seguiremos en la ortodoxia, pero an as, no puedo creerme que venga
+# en el DRAE. Ests seguro? sv
+# No, no me compr el DRAE. Pregntalo a spanglish (si te atreves ;-) gerardo
+#: src/create.c:1221
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipo de fichero desconocido; no se tendr en cuenta"
+
+#: src/create.c:1320
+#, c-format
+msgid "Missing links to '%s'.\n"
+msgstr "Faltan enlaces a '%s'.\n"
+
+#: src/create.c:1387
+#, 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:1395
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: el fichero es el propio archivo; no se vuelca"
+
+#: src/create.c:1430
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: El fichero fue borrado antes de leerlo"
+
+#: src/create.c:1523
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: el `socket' no se tendr en cuenta"
+
+#: src/create.c:1528
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: no se tendr en cuenta la puerta"
+
+#: src/delete.c:209 src/list.c:171 src/update.c:163
+msgid "This does not look like a tar archive"
+msgstr "Esto no parece un archivo tar"
+
+#: src/delete.c:215 src/list.c:185 src/update.c:168
+msgid "Skipping to next header"
+msgstr "Saltando a la siguiente cabecera"
+
+#: src/delete.c:280
+msgid "Deleting non-header from archive"
+msgstr "Borrando no-cabecera del archivo"
+
+#: src/extract.c:208
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: marca de fecha sospechosamente antigua %s"
+
+#: src/extract.c:211
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: la marca de tiempo %s est %lu s en el futuro"
+
+#: src/extract.c:359
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inconsistencia inesperada al crear el directorio"
+
+#: src/extract.c:478
+#, c-format
+msgid "Current `%s' is newer"
+msgstr "El `%s' actual es ms reciente"
+
+#: src/extract.c:590
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: El directorio fue renombrado antes de que se pudiera extraer su estado"
+
+#: src/extract.c:655
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: No se pudo hacer copia de seguridad de este fichero"
+
+# Nota: En Unix, se llama fichero *regular* al que no es ni un directorio,
+# 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 ms "normal"...
+#: src/extract.c:722
+msgid "Extracting contiguous files as regular files"
+msgstr "Extrayendo ficheros contiguos como ficheros regulares"
+
+# Enlaces fuertes? Aqu los profes. de Sistemas Operativos y otros
+# dicen "enlaces duros", y creo que los libros tambin lo ponen as. gag
+# Es una cuestin todava no dirimida.
+# Tienes algn dato ms? Qu dicen los libros? sv
+# Enlaces duros. Lo acabo de mirar en un libro. gag
+#: src/extract.c:908
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Intentando la extraccin de enlaces simblicos como enlaces duros"
+
+#: src/extract.c:1109
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: No se puede extraer -- el fichero es continuacin de otro volumen"
+
+# Me queda la duda de si lo que es visible es el error o el nombre largo... sv
+#: src/extract.c:1118
+msgid "Visible long name error"
+msgstr "Error de nombre largo visible"
+
+# FIXME. Lo de las comillas '%c'.
+# Como antes, lo estandarizo en la traduccin a pesar de todo.
+#: src/extract.c:1126
+#, 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:1211
+msgid "Error is not recoverable: exiting now"
+msgstr "El error no es recuperable: salida ahora"
+
+#: src/extract.c:1218
+msgid "memory exhausted"
+msgstr "memoria agotada"
+
+#: src/incremen.c:193
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: El directorio ha sido renombrado"
+
+#: src/incremen.c:205
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: El directorio es nuevo"
+
+#: src/incremen.c:354
+msgid "Invalid time stamp"
+msgstr "Marca de tiempo invlida"
+
+#: src/incremen.c:357
+msgid "Time stamp out of range"
+msgstr "Marca de tiempo fuera de rango"
+
+#: src/incremen.c:381
+msgid "Invalid device number"
+msgstr "Nmero de dispositivo invlido"
+
+#: src/incremen.c:385
+msgid "Device number out of range"
+msgstr "Nmero de dispositivo fuera de rango"
+
+#: src/incremen.c:393
+msgid "Invalid inode number"
+msgstr "Nmero de nodo-i invlido"
+
+#: src/incremen.c:397
+msgid "Inode number out of range"
+msgstr "Nmero de nodo-i fuera de rango"
+
+#: src/incremen.c:524
+#, 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:531
+#, 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:539
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Borrando %s\n"
+
+#: src/incremen.c:544
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: No se puede borrar"
+
+#: src/list.c:117
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Se omite"
+
+#: src/list.c:135
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloque %s: ** Bloque de NULos **\n"
+
+#: src/list.c:148
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Un bloque de ceros aislado en %s"
+
+#: src/list.c:159
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloque %s: ** Fin de Fichero **\n"
+
+#: src/list.c:182 src/list.c:1017 src/list.c:1244
+#, c-format
+msgid "block %s: "
+msgstr "bloque %s: "
+
+#: src/list.c:644
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Hay blancos en la cabecera cuando se esperaba el valor numrico %s"
+
+#: src/list.c:698
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr ""
+"El valor octal %.*s del archivo est fuera del rango %s;\n"
+"se supone complemento a dos"
+
+#: src/list.c:708
+#, 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:725
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "El archivo contiene cabeceras base 64 obsoletas"
+
+#: src/list.c:738
+#, 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:769
+#, 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"
+
+#: src/list.c:797
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "El archivo contiene %.*s donde se esperaba el valor numrico %s"
+
+#: src/list.c:818
+#, 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"
+
+# FIXME. Hay otro que se parece muchsimo. sv
+#: src/list.c:1048
+msgid "Visible longname error"
+msgstr "Error de nombre largo visible"
+
+#: src/list.c:1175
+#, c-format
+msgid " link to %s\n"
+msgstr " enlace a %s\n"
+
+#: src/list.c:1183
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tipo de fichero desconocido %s\n"
+
+#: src/list.c:1201
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Enlace largo--\n"
+
+#: src/list.c:1205
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nombre largo--\n"
+
+#: src/list.c:1209
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Cabecera de Volumen--\n"
+
+#: src/list.c:1217
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Contina en el byte %s--\n"
+
+#: src/list.c:1221
+#, c-format
+msgid "--Mangled file names--\n"
+msgstr "--Nombres de fichero modificados--\n"
+
+#: src/list.c:1249
+msgid "Creating directory:"
+msgstr "Creando el directorio:"
+
+# No se referir al autor a "mangled filenames"?... jmg
+# FIXME. Preguntrselo.
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Fin de fichero inesperado en los nombres modificados"
+
+#: src/mangle.c:90 src/misc.c:399 src/misc.c:417
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: No se puede renombrar a %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Se renombra %s como %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: No se puede crear un enlace simblico a %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Se enlaza %s simblicamente a %s"
+
+# desmutilador? sv. (Perdona mi ignorancia: qu significa?)
+# No lo s, tengo que consultar. Lo encontr en un diccionario raro. fr
+# Bueno, yo tampoco s lo que es, pero "mangling" me suena a:
+# "proceso mediante el cual se codifican ciertos nombres de cierta manera."
+# Por ejemplo, "name mangling" es lo que hace Linux cuando se instala
+# con umsdos. (Lo has visto alguna vez?).
+# Tambin se habla de "mangling" a la forma que tiene el C++ de incluir
+# los nombres de las funciones (o de las clases quiz) en un archivo
+# objeto ( .o ).
+# Bueno, en realidad no lo s, pero espero haberte dado alguna idea.
+# A ver qu dice Enrique u otro revisor. sv
+# Sigo en blanco. fr
+# La traduccin mas acertada creo que es esta :) , el uso que conozco
+# de mangled esta relacionado con codificar o transformar el nombre de una
+# funcin C++ dentro de una biblioteca, de manera que se pueda deshacer la
+# referencia a la funcin al compilar o enlazar dinmicamente, obteniendo
+# la funcin que corresponde al aplicar la sobrecarga de operadores. em+
+# # Todo eso es as, lo malo es encontrar la palabra simple ms
+# # adecuada y mantenerla. Por ejemplo, antes hemos dicho "mutilar", en
+# # otros mensajes; y ahora "desenredar".
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Orden desconocida para recuperar el nombre original de %s"
+
+#: src/misc.c:390
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Se renombra %s como %s\n"
+
+#: src/misc.c:422
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Se vuelve a renombrar %s como %s\n"
+
+#: src/misc.c:502
+msgid "Cannot save working directory"
+msgstr "No se puede guardar el directorio de trabajo"
+
+#: src/misc.c:508
+msgid "Cannot change working directory"
+msgstr "No se puede cambiar el directorio de trabajo"
+
+# FIXME: Intraducible.
+#: src/misc.c:552 src/misc.c:561
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: No se puede %s"
+
+#: src/misc.c:570
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Atencin: No se puede %s"
+
+#: src/misc.c:585
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: No se puede cambiar el modo a %s"
+
+#: src/misc.c:593
+#, 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"
+
+#: src/misc.c:628
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: No se puede crear un enlace duro a %s"
+
+#: src/misc.c:689 src/misc.c:730
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu byte"
+msgid_plural "%s: Read error at byte %s, 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"
+
+#: src/misc.c:702
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu byte"
+msgid_plural "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr[0] "%s: Atencin: Error de lectura en el byte %s, leyendo %lu byte"
+msgstr[1] "%s: Atencin: Error de lectura en el byte %s, leyendo %lu bytes"
+
+#: src/misc.c:790
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: No se puede desplazar a %s"
+
+#: src/misc.c:806
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Atencin: No se puede desplazar a %s"
+
+#: src/misc.c:824
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: No se puede crear el enlace simblico a %s"
+
+#: src/misc.c:892
+#, c-format
+msgid "%s: Wrote only %lu of %lu byte"
+msgid_plural "%s: Wrote only %lu of %lu bytes"
+msgstr[0] "%s: Slo se escribieron %lu de %lu byte"
+msgstr[1] "%s: Slo se escribieron %lu de %lu bytes"
+
+#: src/misc.c:918
+msgid "child process"
+msgstr "proceso hijo"
+
+#: src/misc.c:927
+msgid "interprocess channel"
+msgstr "canal de interproceso"
+
+#: src/names.c:372 src/names.c:421 src/names.c:465
+msgid "Missing file name after -C"
+msgstr "Falta el nombre del fichero despus de -C"
+
+#: src/names.c:642 src/names.c:658
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: No se encuentra en el archivo"
+
+#: src/names.c:645
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: El elemento solicitado no se encuentra en el archivo"
+
+# FIXME. This might not always work. Is `%.*s' male or female? sv
+#: src/names.c:1093
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Eliminando la `%s' inicial de los nombres"
+
+#: src/names.c:1094
+#, 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
+#: src/names.c:1107
+msgid "Substituting `.' for empty member name"
+msgstr "Se sustituye `.' por el nombre vaco"
+
+#: src/names.c:1108
+msgid "Substituting `.' for empty hard link target"
+msgstr "Se sustituye `.' por un objetivo vaco de enlace duro"
+
+#: src/tar.c:71
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Las opciones `-%s' y `-%s' requieren entrada estndar"
+
+#: src/tar.c:143
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Formato de archivo invlido"
+
+#: src/tar.c:167
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Se requieren caractersticas de GNU en formato de archivo incompatible"
+
+# Yo usara "recuperar", en vez de "restablecer". Lo de repetir "archivo"
+# dos veces en la misma frase no me suena bien, as que pondra "... a
+# partir de aqul". jmg
+# El original tambin repite. sv
+#
+# CUIDADO! slo no debe llevar tilde en ".. juntos en un solo archivo..."
+# `Solo' slo lleva acento cuando equivale al adverbio de modo `solamente',
+# y aun as no es obligatorio ponrselo si no hay ambigedad (lo siento,
+# muchachos, pero saqu sobresaliente en Lingstica de COU :-D ) gerardo
+# Lo cambio, pero "no es obligatorio" no es lo mismo que "est mal". sv
+#
+# # la versin de control -> el control de versin
+# # nil: numeradas... simples... (en plural)
+# # never, simPle (falta una pe): backup -> copia de seguridad. gag
+# Estoy de acuerdo con lo de gag (ms arriba usas eso mismo). jmg
+#: src/tar.c:241
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+" 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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"GNU `tar' guarda varios ficheros juntos en un solo archivo en cinta o disco, y\n"
+"puede restablecer ficheros individuales a partir del archivo.\n"
+"\n"
+"Ejemplos:\n"
+" tar -cf archivo.tar fu fa # Crea archivo.tar con los ficheros fu y fa.\n"
+" tar -tvf archivo.tar # Lista los ficheros de archivo.tar con detalle.\n"
+" tar -xf archivo.tar # Extrae todos los ficheros de archivo.tar.\n"
+" El sufijo de respaldo es `~', a menos que se especifique con --suffix\n"
+"o con SIMPLE_BACKUP_SUFFIX. El control de versiones puede establecerse\n"
+"con --backup o con VERSION_CONTROL, los valores son:\n"
+"\n"
+" t, numbered hace copias de seguridad numeradas\n"
+" nil, existing numerada si existen copias de seguridad numeradas, simples\n"
+" en otro caso\n"
+" never, simple siempre hace copias de seguridad simples\n"
+
+#: src/tar.c:270
+msgid "Main operation mode:"
+msgstr "Modo principal de operacin:"
+
+#: src/tar.c:273
+msgid "list the contents of an archive"
+msgstr "lista el contenido de un archivo"
+
+#: src/tar.c:275
+msgid "extract files from an archive"
+msgstr "extrae ficheros de un archivo"
+
+#: src/tar.c:278
+msgid "create a new archive"
+msgstr "crea un nuevo archivo"
+
+#: src/tar.c:280
+msgid "find differences between archive and file system"
+msgstr "encuentra las diferencias entre un archivo y el sistema de ficheros"
+
+#: src/tar.c:283
+msgid "append files to the end of an archive"
+msgstr "aade ficheros al final de un archivo"
+
+#: src/tar.c:285
+msgid "only append files newer than copy in archive"
+msgstr "solamente aade ficheros ms recientes que la copia del archivo"
+
+#: src/tar.c:287
+msgid "append tar files to an archive"
+msgstr "aade ficheros tar a un archivo"
+
+#: src/tar.c:290
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "borra del archivo (no en cintas magnticas!)"
+
+#: src/tar.c:293
+msgid "Operation modifiers:"
+msgstr "Modificadores de operacin:"
+
+#: src/tar.c:296
+msgid "attempt to verify the archive after writing it"
+msgstr "intenta verificar el archivo despus de escribirlo"
+
+#: src/tar.c:298
+msgid "remove files after adding them to the archive"
+msgstr "borra los ficheros despus de aadirlos al archivo"
+
+#: src/tar.c:300
+msgid "don't replace existing files when extracting"
+msgstr "no reemplaza ficheros que existan al extraer"
+
+#: src/tar.c:302
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "no reemplaza los ficheros que existan que sean ms recientes que sus copias en el archivo"
+
+#: src/tar.c:304
+msgid "preserve metadata of existing directories"
+msgstr "conserva los metadatos de los directorios que existan"
+
+#: src/tar.c:306
+msgid "overwrite existing files when extracting"
+msgstr "sobreescribe los ficheros que existan al extraer"
+
+#: src/tar.c:308
+msgid "remove each file prior to extracting over it"
+msgstr "borra cada fichero antes de extraer sobre l"
+
+#: src/tar.c:310
+msgid "empty hierarchies prior to extracting directory"
+msgstr "vaca jerarquas antes de extraer directorios"
+
+#: src/tar.c:312
+msgid "handle sparse files efficiently"
+msgstr "maneja ficheros dispersos de forma eficiente"
+
+#: src/tar.c:314
+msgid "extract files to standard output"
+msgstr "extrae los ficheros a la salida estndar"
+
+#: src/tar.c:316
+msgid "handle old GNU-format incremental backup"
+msgstr "maneja el formato GNU antiguo de respaldo incremental"
+
+#: src/tar.c:317 src/tar.c:390 src/tar.c:455 src/tar.c:514
+msgid "FILE"
+msgstr "FICHERO"
+
+#: src/tar.c:318
+msgid "handle new GNU-format incremental backup"
+msgstr "maneja el nuevo formato GNU de respaldo incremental"
+
+# archivos nonzero? sv
+# Estupendo Gerardo, se me haba pasado, como tantas cosas em+
+# # Nooorl! Quiere decir que el programa tar no acaba o sale (exit())
+# # devolviendo al sistema un "status" distinto de cero cuando
+# # encuentre ficheros ilegibles. (Uf! Ahora a ver cmo se pone esto en
+# # media lnea.) gag
+#
+#: src/tar.c:320
+msgid "do not exit with nonzero on unreadable files"
+msgstr "no sale con estado distinto de cero cuando hay ficheros ilegibles"
+
+#: src/tar.c:321 src/tar.c:385 src/tar.c:398 src/tar.c:484
+msgid "NUMBER"
+msgstr "NMERO"
+
+#: src/tar.c:322
+msgid "process only the NUMth 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 -T option. NUMBER defaults to 1."
+msgstr "procesa nicamente la NUM-sima aparicin de cada fichero en el archivo. Esta opcin solamente es vlida junto con una de las subrdenes --delete, --diff, --extract o --list y cuando se da una lista de ficheros en la lnea de rdenes o con la opcin -T. El valor predeterminado de NUM es 1."
+
+# Mejor eso que inventarse un palabro, digo yo. sv
+#: src/tar.c:324
+msgid "Archive is seekable"
+msgstr "El archivo admite `seek'"
+
+#: src/tar.c:327
+msgid "Handling of file attributes:"
+msgstr "Manejo de los atributos del fichero:"
+
+#: src/tar.c:329 src/tar.c:331 src/tar.c:387
+msgid "NAME"
+msgstr "NOMBRE"
+
+#: src/tar.c:330
+msgid "force NAME as owner for added files"
+msgstr "fuerza NOMBRE como propietario de los ficheros que se aaden"
+
+#: src/tar.c:332
+msgid "force NAME as group for added files"
+msgstr "fuerza NOMBRE como grupo para los ficheros que se aaden"
+
+#: src/tar.c:333
+msgid "CHANGES"
+msgstr "CAMBIOS"
+
+#: src/tar.c:334
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "fuerza CAMBIOS (simblicos) de modo para los ficheros que se aaden"
+
+#: src/tar.c:336
+msgid "don't change access times on dumped files"
+msgstr "no cambia la fecha de acceso en los ficheros volcados"
+
+#: src/tar.c:338
+msgid "don't extract file modified time"
+msgstr "no extrae la fecha de modificacin del fichero"
+
+#: src/tar.c:340
+msgid "try extracting files with the same ownership"
+msgstr "intenta extraer los ficheros con el mismo propietario"
+
+#: src/tar.c:342
+msgid "extract files as yourself"
+msgstr "extrae los ficheros como usted mismo"
+
+#: src/tar.c:344
+msgid "always use numbers for user/group names"
+msgstr "utiliza siempre nmeros para los nombres de usuarios/grupos"
+
+#: src/tar.c:346
+msgid "extract permissions information"
+msgstr "extrae la informacin de los permisos"
+
+#: src/tar.c:349
+msgid "do not extract permissions information"
+msgstr "no extrae la informacin de los permisos"
+
+#: src/tar.c:351
+msgid "sort names to extract to match archive"
+msgstr "ordena los nombres que se extraen para que coincidan con el archivo"
+
+#: src/tar.c:354
+msgid "same as both -p and -s"
+msgstr "lo mismo que -p y -s"
+
+#: src/tar.c:357
+msgid "Device selection and switching:"
+msgstr "Seleccin de dispositivo y opciones:"
+
+#: src/tar.c:359
+msgid "ARCHIVE"
+msgstr "ARCHIVO"
+
+#: src/tar.c:360
+msgid "use archive file or device ARCHIVE"
+msgstr "utiliza un archivo o el dispositivo ARCHIVO"
+
+#: src/tar.c:362
+msgid "archive file is local even if has a colon"
+msgstr "el archivo es local incluso si tiene dos puntos"
+
+#: src/tar.c:363 src/tar.c:365
+msgid "COMMAND"
+msgstr "ORDEN"
+
+#: src/tar.c:364
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "utiliza la ORDEN rmt dada en vez de rmt"
+
+#: src/tar.c:366
+msgid "use remote COMMAND instead of rsh"
+msgstr "utiliza la ORDEN remota en vez de rsh"
+
+#: src/tar.c:370
+msgid "specify drive and density"
+msgstr "especifica la unidad y la densidad"
+
+#: src/tar.c:384
+msgid "create/list/extract multi-volume archive"
+msgstr "crea/lista/extrae un archivo multivolumen"
+
+# Una chorradita, si se me permite; estamos usando ISO-8859-1,
+# verdad? Y en ISO-Latin1 existe un carcter que representa la
+# multiplicacin, verdad? Ya saben , el aspa: '' ('\327'). Pues
+# por qu no usarlo (est bien, "utilizarlo" ;-) en vez de la equis
+# en NUM x 1024 -> NUM 1024?
+# En otra parte dices que pones (C) en vez de porque no se ve bien en
+# la consola. Pues no dirs eso del aspa, que se ve mejor an que la equis:
+# x - gerardo
+# Efectivamente, pero no es transportable, el que use tar bajo DJGPP
+# le saldra un churro pues el aspa no existe en la tabla 850. sv
+#: src/tar.c:386
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "cambia la cinta despus de escribir NMERO x 1024 bytes"
+
+#: src/tar.c:388
+msgid "run script at end of each tape (implies -M)"
+msgstr "ejecuta un script al final de cada cinta (implica -M)"
+
+#: src/tar.c:391
+msgid "use/update the volume number in FILE"
+msgstr "usa/actualiza el nmero de volumen en FICHERO"
+
+#: src/tar.c:394
+msgid "Device blocking:"
+msgstr "Bloques en los dispositivos:"
+
+#: src/tar.c:396
+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:397
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOQUES x 512 bytes por registro"
+
+#: src/tar.c:399
+msgid "SIZE bytes per record, multiple of 512"
+msgstr "TAMAO bytes por registro, mltiplo de 512"
+
+#: src/tar.c:401
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "no tiene en cuenta los bloques convertidos en ceros dentro de un archivo (significa fin de fichero)"
+
+# rebloquea? existe esa palabra? sv
+# Que opine el pueblo, no lo s. fr
+# # Existe bloquear? Pues si es as, tambin existe rebloquear =
+# # volver a bloquear. Y requetebloquear, etc. En un artculo de Martin
+# # Gardner se preguntaba cul era la palabra espaola ms larga, y la
+# # respuesta era que cualquiera que pudiera ir precedida por
+# # requetequetequete... (longitud infinita). Peln ssagerao, no? gag
+#
+# Bueno, al final he puesto lo que se ve, un poco menos raro que rebloquear. sv
+#: src/tar.c:403
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "rehace los bloques conforme se lee (para tuberas de 4.2BSD)"
+
+# Qu ser esto? Quizs un fallo en el mensaje original? Porque "to"
+# no es "desde", sino "hacia", que yo sepa. Pero `archivo hacia la
+# salida estndar' no pega mucho. Est en otros mensajes, como el
+# siguiente; no lo entiendo. - gerardo
+# FIXME. Tienes razn. Es muy raro.
+#: src/tar.c:406
+msgid "Archive format selection:"
+msgstr "Seleccin del formato de archivo:"
+
+#: src/tar.c:408
+msgid "FORMAT"
+msgstr "FORMATO"
+
+#: src/tar.c:409
+msgid "create archive of the given format."
+msgstr "crea un archivo en el formato dado."
+
+#: src/tar.c:411
+msgid "FORMAT is one of the following:"
+msgstr "FORMATO es uno de los siguientes:"
+
+#: src/tar.c:412
+msgid "old V7 tar format"
+msgstr "formato tar V7 antiguo"
+
+#: src/tar.c:414
+msgid "GNU format as per tar <= 1.12"
+msgstr "formato GNU de tar <= 1.12"
+
+#: src/tar.c:416
+msgid "GNU tar 1.13.x format"
+msgstr "formato GNU tar 1.13.x"
+
+#: src/tar.c:418
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "formato POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:420
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "formato POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:421
+msgid "Same as pax"
+msgstr "Lo mismo que pax"
+
+#: src/tar.c:424
+msgid "same as --format=v7"
+msgstr "lo mismo que --format=v7"
+
+#: src/tar.c:427
+msgid "same as --format=posix"
+msgstr "lo mismo que --format=posix"
+
+#: src/tar.c:428
+msgid "keyword[[:]=value][,keyword[[:]=value], ...]"
+msgstr "palabra[[:]=valor][,palabra[[:]=valor], ...]"
+
+#: src/tar.c:429
+msgid "control pax keywords"
+msgstr "palabras clave de control de pax"
+
+#: src/tar.c:430
+msgid "TEXT"
+msgstr "TEXTO"
+
+#: src/tar.c:431
+msgid "create archive with volume name NAME. At list/extract time, use TEXT as a globbing pattern"
+msgstr "crea un archivo con nombre de volumen NOMBRE. En el momento de listar/extraer, utiliza TEXTO como patrn expandible"
+
+#: src/tar.c:433
+msgid "filter the archive through bzip2"
+msgstr "filtra el archivo a travs de bzip2"
+
+# FIXME: Decir al autor que ponga el "itself". sv
+#: src/tar.c:435
+msgid "filter the archive through gzip"
+msgstr "filtra el arhivo a travs de gzip"
+
+# FIXME: Decir al autor que ponga el "itself". sv
+#: src/tar.c:439
+msgid "filter the archive through compress"
+msgstr "filtra el archivo a travs de compress"
+
+#: src/tar.c:441
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:442
+msgid "filter through PROG (must accept -d)"
+msgstr "filtra a travs de PROG (debe aceptar -d)"
+
+#: src/tar.c:445
+msgid "Local file selection:"
+msgstr "Seleccin del fichero local:"
+
+#: src/tar.c:447
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:448
+msgid "change to directory DIR"
+msgstr "cambia al directorio DIR"
+
+#: src/tar.c:449
+msgid "FILE-OF-NAMES"
+msgstr "FICHERO-DE-NOMBRES"
+
+#: src/tar.c:450
+msgid "get names to extract or create from file NAME"
+msgstr "obtiene los nombres que se van a extraer o crear del fichero NOMBRE"
+
+#: src/tar.c:452
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T lee nombres terminados en nulo, desactiva -C"
+
+# Nota: La diferencia entre un PATRN y una EXPREG es que
+# el primero se refiere a un "globbing pattern", es decir, patrones
+# de expansin 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:453
+msgid "PATTERN"
+msgstr "PATRN"
+
+#: src/tar.c:454
+msgid "exclude files, given as a PATTERN"
+msgstr "excluye ficheros, dados como un PATRN"
+
+#: src/tar.c:456
+msgid "exclude patterns listed in FILE"
+msgstr "excluye los patrones listados en FICHERO"
+
+#: src/tar.c:458
+msgid "exclude directories containing a cache tag"
+msgstr "excluye los directorios que contienen una marca de cach"
+
+#: src/tar.c:460
+msgid "exclusion ignores case"
+msgstr "la exclusin no distingue maysculas de minsculas"
+
+#: src/tar.c:462
+msgid "exclude patterns match file name start"
+msgstr "los patrones de exclusin encajan con el comienzo del nombre del fichero"
+
+#: src/tar.c:464
+msgid "exclude patterns match after any / (default)"
+msgstr "los patrones de exclusin encajan despus de cualquier / (por omisin)"
+
+#: src/tar.c:466
+msgid "exclusion is case sensitive (default)"
+msgstr "la exclusin distingue maysculas de minsculas (por omisin)"
+
+#: src/tar.c:468
+msgid "exclude patterns are plain strings"
+msgstr "los patrones de exclusin son cadenas normales"
+
+#: src/tar.c:470
+msgid "exclude pattern wildcards do not match '/'"
+msgstr "los comodines de patrones de exclusin no encajan con '/'"
+
+#: src/tar.c:472
+msgid "avoid descending automatically in directories"
+msgstr "evita descender automticamente en los directorios"
+
+#: src/tar.c:474
+msgid "stay in local file system when creating archive"
+msgstr "permanece en el sistema de ficheros locales al crear el archivo"
+
+#: src/tar.c:477
+msgid "recurse into directories (default)"
+msgstr "opera recursivamente sobre los directorios (por omisin)"
+
+#: src/tar.c:479
+msgid "don't strip leading `/'s from file names"
+msgstr "no elimina la `/' inicial de los nombres de ficheros"
+
+#: src/tar.c:481
+msgid "dump instead the files symlinks point to"
+msgstr "vuelca los ficheros a los que apuntan los enlaces simblicos, en lugar de los enlaces"
+
+#: src/tar.c:482
+msgid "MEMBER-NAME"
+msgstr "NOMBRE-DE-MIEMBRO"
+
+#: src/tar.c:483
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "comienza por el miembro NOMBRE-DE-MIEMBRO dentro del archivo"
+
+#: src/tar.c:485
+msgid "strip NUMBER leading components from file names"
+msgstr "elimina NMERO componentes iniciales de los nombres de ficheros"
+
+#: src/tar.c:486
+msgid "DATE-OR-FILE"
+msgstr "FECHA-O-FICHERO"
+
+#: src/tar.c:487
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "almacena solamente ficheros ms recientes que FECHA-O-FICHERO"
+
+#: src/tar.c:488 src/tar.c:490
+msgid "DATE"
+msgstr "FECHA"
+
+#: src/tar.c:489
+msgid "compare date and time when data changed only"
+msgstr "compara la fecha y hora solamente cuando cambian los datos"
+
+#: src/tar.c:491
+msgid "same as -N"
+msgstr "lo mismo que -N"
+
+#: src/tar.c:492
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:493
+msgid "backup before removal, choose version CONTROL"
+msgstr "se hace un respaldo antes de borrar, escoja el CONTROL de versin"
+
+#: src/tar.c:494
+msgid "STRING"
+msgstr "CADENA"
+
+#: src/tar.c:495
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX"
+msgstr ""
+"se hace un respaldo antes de borrar, cambiando el sufijo usual ('~' a menos que se\n"
+"cambie con la variable de entorno SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:497
+msgid "exclude patterns use wildcards (default)"
+msgstr "los patrones de exclusin usan comodines (por omisin)"
+
+#: src/tar.c:499
+msgid "exclude pattern wildcards match '/' (default)"
+msgstr "los comodines de los patrones de exclusin encajan con '/' (por omisin)"
+
+#: src/tar.c:502
+msgid "Informative output:"
+msgstr "Salida informativa:"
+
+#: src/tar.c:505
+msgid "verbosely list files processed"
+msgstr "lista los ficheros procesados detalladamente"
+
+#: src/tar.c:507
+msgid "display progress messages every 10th record"
+msgstr "muestra mensajes de progreso cada 10 registros"
+
+#: src/tar.c:509
+msgid "print a message if not all links are dumped"
+msgstr "muestra un mensaje si no se vuelcan todos los enlaces"
+
+#: src/tar.c:511
+msgid "print total bytes written while creating archive"
+msgstr "muestra el total de bytes escritos cuando se crea un archivo"
+
+#: src/tar.c:513
+msgid "print file modification dates in UTC"
+msgstr "muestra las fechas de modificacin de los ficheros en UTC"
+
+#: src/tar.c:515
+msgid "send verbose output to FILE"
+msgstr "enva la salida detallada a FICHERO"
+
+#: src/tar.c:517
+msgid "show block number within archive with each message"
+msgstr "muestra el nmero de bloque dentro del archivo con cada mensaje"
+
+#: src/tar.c:519
+msgid "ask for confirmation for every action"
+msgstr "pide confirmacin para cada accin"
+
+#: src/tar.c:522
+msgid "Show tar defaults"
+msgstr "Muestra los valores predeterminados de tar"
+
+#: src/tar.c:524
+msgid "When listing or extracting, list each directory that does not match search criteria"
+msgstr "Cuando se lista o extrae, lista cada directorio que no coincida con el criterio de bsqueda"
+
+#: src/tar.c:527
+msgid "Compatibility options:"
+msgstr "Opciones de compatibilidad:"
+
+#: src/tar.c:530
+msgid "when creating, same as --old-archive. When extracting, same as --no-same-owner"
+msgstr "al crear, lo mismo que --old-archive. Al extraer, lo mismo que --no-same-owner"
+
+#: src/tar.c:533
+msgid "Other options:"
+msgstr "Otras opciones:"
+
+#: src/tar.c:535
+msgid "Give this help list"
+msgstr "Da esta lista de ayuda"
+
+#: src/tar.c:536
+msgid "Give a short usage message"
+msgstr "Da un mensaje de uso corto"
+
+#: src/tar.c:537
+msgid "Print license and exit"
+msgstr "Muestra la licencia y finaliza"
+
+#: src/tar.c:538
+msgid "Print program version"
+msgstr "Muestra la versin del programa"
+
+#: src/tar.c:575
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "No se puede especificar ms de una opcin `-Acdtrux'"
+
+#: src/tar.c:585
+msgid "Conflicting compression options"
+msgstr "Opciones de compresin en conflicto"
+
+#: src/tar.c:595
+msgid ""
+"Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n"
+"for complete list of authors.\n"
+msgstr ""
+"Basado en el trabajo de John Gilmore y Jay Fenlason. Vea AUTHORS\n"
+"para una lista completa de autores.\n"
+
+#: src/tar.c:597
+#, c-format
+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"
+msgstr ""
+" GNU tar es software libre; puede redistribuirse y/o modificarse\n"
+" bajo los trminos de la Licencia Pblica General de GNU tal y como\n"
+" se publica por la Free Software Foundation; bien en la versin 2\n"
+" de la Licencia, o (a su eleccin) cualquier versin posterior.\n"
+"\n"
+" GNU tar se distribuye con la esperanza de que sea til, pero\n"
+" SIN NINGUNA GARANTA; ni siquiera la garanta implcita de\n"
+" COMERCIABILIDAD o IDONEIDAD PARA UN FIN DETERMINADO. Vase la\n"
+" Licencia Pblica General de GNU para ms detalles.\n"
+"\n"
+" Usted debera haber recibido una copia de la Licencia Pblica General\n"
+" de GNU junto con GNU tar; en caso contrario, escriba a la Free Software\n"
+" Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 EE.UU.\n"
+
+#: src/tar.c:638
+msgid "Invalid blocking factor"
+msgstr "Factor de bloqueo invlido"
+
+#: src/tar.c:713
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Atencin: no se admite la opcin -I; no ser -j o -T?"
+
+#: src/tar.c:738
+msgid "Semantics of -l option will change in the future releases."
+msgstr "El significado de la opcin -l cambiar en versiones posteriores."
+
+#: src/tar.c:740
+msgid "Please use --one-file-system option instead."
+msgstr "Por favor utilice la opcin --one-file-system en su lugar."
+
+#: src/tar.c:753
+msgid "Invalid tape length"
+msgstr "Longitud de cinta invlida"
+
+# No s cmo traducir threshold. fr
+# Yo tampoco (los diccionarios los tengo en casa...). sv
+# Lo buscar en un diccionario "geno". 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 lmite"?. jmg
+#: src/tar.c:781
+msgid "More than one threshold date"
+msgstr "Se ha especificado ms de una fecha tope"
+
+#: src/tar.c:791
+msgid "Date file not found"
+msgstr "No se encontr la fecha del fichero"
+
+#: src/tar.c:800
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Sustituyendo %s por el formato de fecha desconocido %s"
+
+#: src/tar.c:905
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Atencin: no se admite la opcin -y; no ser -j?"
+
+#: src/tar.c:981
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Grupo invlido"
+
+#: src/tar.c:990
+msgid "Invalid mode given on option"
+msgstr "Se ha especificado un modo no vlido en la opcin"
+
+#: src/tar.c:1033
+msgid "Invalid number"
+msgstr "Nmero invlido"
+
+#: src/tar.c:1051
+msgid "Invalid owner"
+msgstr "Propietario invlido"
+
+#: src/tar.c:1075
+msgid "Invalid record size"
+msgstr "El tamao del registro es invlido"
+
+#: src/tar.c:1078
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "El tamao del registro debe ser mltiplo de %d."
+
+#: src/tar.c:1110
+msgid "Invalid number of elements"
+msgstr "Nmero invlido de elementos"
+
+#: src/tar.c:1185
+#, c-format
+msgid "Malformed density argument: '%s'"
+msgstr "Argumento de densidad mal formado: '%s'"
+
+#: src/tar.c:1221
+#, c-format
+msgid "Unknown density: '%c'"
+msgstr "Densidad desconocida: '%c'"
+
+#: src/tar.c:1241
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "*Esta* versin de tar no admite las opciones `-[0-7][lmh]'"
+
+#: src/tar.c:1249
+#, c-format
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Las opciones predeterminadas de *esta* versin de tar son:\n"
+
+#: src/tar.c:1278
+msgid "[FILE]..."
+msgstr "[FICHERO]..."
+
+#: src/tar.c:1375
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "La opcin antigua `%c' requiere un argumento"
+
+#: src/tar.c:1458
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence no tiene sentido sin una lista de ficheros"
+
+#: src/tar.c:1464
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "no se puede usar --occurrence en el modo de operacin solicitado"
+
+# requieren -> necesitan. gerardo
+#: src/tar.c:1494
+msgid "Multiple archive files require `-M' option"
+msgstr "Los archivos mltiples requieren la opcin `-M'"
+
+#: src/tar.c:1499
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "No se puede combinar --listed-incremental con --newer"
+
+#: src/tar.c:1514
+#, 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: La etiqueta de volumen es demasiado larga (el lmite es %lu byte)"
+msgstr[1] "%s: La etiqueta de volumen es demasiado larga (el lmite es %lu bytes)"
+
+#: src/tar.c:1524
+msgid "Cannot verify multi-volume archives"
+msgstr "No se pueden verificar archivos multivolumen"
+
+#: src/tar.c:1526
+msgid "Cannot verify compressed archives"
+msgstr "No se pueden verificar archivos comprimidos"
+
+#: src/tar.c:1532
+msgid "Cannot use multi-volume compressed archives"
+msgstr "No se pueden utilizar archivos multivolumen comprimidos"
+
+#: src/tar.c:1534
+msgid "Cannot update compressed archives"
+msgstr "No se pueden actualizar archivos comprimidos"
+
+#: src/tar.c:1546
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option solamente se puede usar en archivos POSIX"
+
+# Me gusta ms al verrs: cobarde rechazo [de la pradera] a... gerardo
+#: src/tar.c:1563
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Rechazo cobarde a crear un archivo vaco"
+
+#: src/tar.c:1584
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Las opciones `-Aru' son incompatibles con `-f -'"
+
+#: src/tar.c:1607
+#, c-format
+msgid "Treating date `%s' as %s + %ld nanosecond"
+msgid_plural "Treating date `%s' as %s + %ld nanoseconds"
+msgstr[0] "Se trata la fecha `%s' como %s + %ld nanosegundo"
+msgstr[1] "Se trata la fecha `%s' como %s + %ld nanosegundos"
+
+#: src/tar.c:1663
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Debe especificar una de las opciones `-Acdtrux'"
+
+#: src/tar.c:1715
+msgid "Error in writing to standard output"
+msgstr "Error al escribir en la salida estndar"
+
+# Antes deca:
+# "La salida con error se demora por los errores anteriores
+#
+# Quiere decir que hubo errores, pero tar pudo seguir adelante, sin
+# embargo va a salir con un estado de error por esos errores que ya pasaron.
+# Una traduccin:
+# "Salida con error demorada desde errores anteriores" (Nicols L.)
+#: src/tar.c:1717
+msgid "Error exit delayed from previous errors"
+msgstr "Salida con error demorada desde errores anteriores"
+
+# Eso de vaya tela! es una interjeccin que se entiende en todo el mundo
+# hispanoparlante? No vaya a ser especfico de Andaluca/Extremadura y...
+# oye, djalo, as expandimos nuestra lengua! gerardo
+# Inaceptable, alguien fuera de Espaa no tiene idea de que diablos quiere
+# decir vaya tela!. Habr que buscar alguna interheccin de asco/sorpresa
+# que sea ms `portable'. nl
+# Tenis razn. Habr que preguntar.
+# Ya lo tengo! "Carajo!" X-D Eso se utiliza en Colombia, Mxico y otros
+# sitios de por ah a troche y moche, y creo que ni siquiera se entiende como
+# "miembro viril masculino". Y en Espaa creo que tambin se emplea, no?
+# (Vaale, vaaale, y qu tal su eufemismo `caramba' o `caray', ms neutros
+# y cursis, para que no se enfade nadie? Aunque para cursis: `cspita',
+# `caracoles', `cnchales'; no diris que no os doy opciones.) Por cierto,
+# creo que la coma sobra (incluso en el original). gerardo
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: El tamao del fichero ha disminuido en %s byte"
+msgstr[1] "%s: El tamao del fichero ha disminuido en %s bytes"
+
+# FIXME: Imlemented
+#: src/xheader.c:140
+#, c-format
+msgid "Keyword %s is unknown or not yet imlemented"
+msgstr "La palabra clave %s es desconocida o no est implementada todava"
+
+#: src/xheader.c:166
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "No se puede usar el patrn %s"
+
+#: src/xheader.c:176
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "La palabra clave %s no se puede sustituir"
+
+#: src/xheader.c:490
+msgid "Malformed extended header: missing whitespace after the length"
+msgstr "Cabecera extendida errnea: falta un espacio en blanco despus de la longitud"
+
+#: src/xheader.c:501
+msgid "Malformed extended header: missing equal sign"
+msgstr "Cabecera extendida errnea: falta un signo igual"
+
+# Sugerencia: para archivos -> para los archivos. sv
+# Sugerencia: Estandarizar la traduccin de "added files". sv
+# En el --mode=CHANGES no s qu poner... sv
+# En vez de "force"->"establece", yo dejara el significado
+# original ->"fuerza". jmg
+# force es forzar, no establecer! nl
+# Gerardo, qu opinas de "forzar"? sv
+# Hombre, desde luego to force es forzar u obligar; la verdad es que no s
+# por qu el autor original dice "force" y no "set". Quiz porque si no se
+# pusieran estas opciones los ficheros tendran otros atributos que vendran
+# impuestos por el umask, el UID/GID del usuario, etc., y con esto se "fuerza",
+# se cambia esta situacin. No es lo mismo que establecer, que sera poner
+# esos atributos partiendo de cero. Creo que se es el matiz, y para conservar-
+# lo habra que poner "fuerza NOMBRE como propietario...", etc., o bien
+# "obliga a que sea NOMBRE el propietario...", etc. gerardo
+# # usa -> emplea - gerardo
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --preserve same as both -p and -s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Manejo de los atributos de los ficheros:\n"
+#~ " --owner=NOMBRE establece NOMBRE como propietario para los\n"
+#~ " ficheros que se aaden\n"
+#~ " --group=NOMBRE establece NOMBRE como grupo para los ficheros que\n"
+#~ " se aaden\n"
+#~ " --mode=CAMBIOS establece CAMBIOS como modo (simblico) para los\n"
+#~ " ficheros que se aaden\n"
+#~ " --atime-preserve no cambia la fecha de acceso en los ficheros\n"
+#~ " volcados\n"
+#~ " -m, --modification-time no extrae la fecha de modificacin de ficheros\n"
+#~ " --same-owner intenta extraer ficheros con el mismo propietario\n"
+#~ " --no-same-owner extrae los ficheros como uno mismo\n"
+#~ " --numeric-owner siempre utiliza nmeros para nombres de\n"
+#~ " usuario/grupo\n"
+#~ " -p, --same-permissions extrae la informacin de los permisos\n"
+#~ " --no-same-permissions no extrae la informacin de los permisos\n"
+#~ " --preserve-permissions igual que -p\n"
+#~ " -s, --same-order ordena los nombres a extraer para coincidir con\n"
+#~ " el archivo\n"
+#~ " --preserve-order igual que -s\n"
+#~ " --preserve igual que -p y -s a la vez\n"
+
+# globbing = globales? sv
+# Me parece una buena traduccin, es algo que engloba a un grupo. fr
+#
+# globbing es, por ejemplo, lo que hace el shell cuando pones asteriscos:
+# Cuando haces "cat *", el shell se encarga de expandir el *
+# en lo que corresponda, y se lo da a cat ya traducido.
+# Esto ms que globalizar me suena a expandir, no s.
+# Si quieres djalo que lo vea otro. sv
+# Vid. mi comentario del mensaje anterior. gerardo
+# quita -> elimina. sv
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -K, --starting-file=NAME begin at file NAME in the archive\n"
+#~ " --strip-path=NUM strip NUM leading components from file names\n"
+#~ " before extraction\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Seleccin de fichero local:\n"
+#~ " -C, --directory DIR cambia al directorio DIR\n"
+#~ " -T, --files-from=NOMBRE obtiene los nombres a extraer o crear del\n"
+#~ " archivo NOMBRE\n"
+#~ " --null -T lee nombres terminados en cero, deshabilita -C\n"
+#~ " --exclude=PATRN excluye ficheros, dados como un PATRN\n"
+#~ " -X, --exclude-from=FICHERO excluye patrones listados en FICHERO\n"
+#~ " --anchored los patrones de exclusin encajan desde el\n"
+#~ " comienzo del nombre de fichero (predeterminado)\n"
+#~ " --no-anchored los patrones de exclusin encajan despus de\n"
+#~ " cualquier /\n"
+#~ " --ignore-case la exclusin considera iguales minsculas y\n"
+#~ " maysculas\n"
+#~ " --no-ignore-case la exclusin distingue minsculas de maysculas\n"
+#~ " (predeterminado)\n"
+#~ " --wildcards los patrones de exclusin incluyen comodines\n"
+#~ " (predeterminado)\n"
+#~ " --no-wildcards los patrones de exclusin son cadenas normales\n"
+#~ " --wildcards-match-slash los comodines de los patrones de exclusin\n"
+#~ " encajan con '/' (predeterminado)\n"
+#~ " --wildcards-match-slash los comodines de los patrones de exclusin\n"
+#~ " no encajan con '/'\n"
+#~ " -P, --absolute-names no elimina las '/'s iniciales de los nombres de\n"
+#~ " fichero\n"
+#~ " -h, --dereference vuelca en su lugar los ficheros a los que apuntan\n"
+#~ " los enlaces simblicos.\n"
+#~ " --no-recurse evita descender automticamente en directorios\n"
+#~ " -l, --one-file-system permanece en el sistema de ficheros local\n"
+#~ " cuando se crea el archivo\n"
+#~ " -K, --starting-file=NOMBRE comienza en el fichero NOMBRE del archivo\n"
+#~ " --strip-path=NM elimina NM componentes iniciales de los nombres\n"
+#~ " de los ficheros antes de la extraccin\n"
+
+# # "ms nuevos"->"ms recientes". En el info de tar1.11.8 explica un poco ms las
+# # opciones --newer-*, sin limitar a "store", sino hablando en general de
+# # cualquier operacin. En el --newer-mtime debera ser --newer-mtime=DATE, y
+# # dice que "limita la operacin a los ficheros modificados despus de la
+# # fecha DATE"... ?. jmg
+#~ msgid ""
+#~ " -N, --newer=DATE-OR-FILE only store files newer than DATE-OR-FILE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed only\n"
+#~ " --after-date=DATE same as -N\n"
+#~ msgstr ""
+#~ " -N, --newer=FECHA-O-FICHERO slo almacena los ficheros ms recientes que FECHA-O-FICHERO\n"
+#~ " --newer-mtime=FECHA compara la fecha y hora en que los datos cambiaron\n"
+#~ " --after-date=FECHA igual que -N\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --suffix=SUFFIX backup before removal, override usual suffix\n"
+#~ msgstr ""
+#~ " --backup[=CONTROL] copia de seguridad antes de eliminar, elige\n"
+#~ " el control de versin\n"
+#~ " --suffix=SUFIJO copia de seguridad antes de eliminar, pasa por\n"
+#~ " alto el sufijo habitual\n"
+
+# # print -> muestra o imprime? Prefiero muestra, pero mantngase
+# # siempre; al menos en un mismo mensaje! gag
+# Lo de "prolijamente" suena regular. En diffutils hay una laaarga discusin
+# sobre ello. Yo usara "verbosely"->"detalladamente" o "con detalle". jmg
+# los bytes totales escritos -> el total de bytes escritos. nl
+# O los bytes escritos en total, bien. gerardo
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --check-links print a message if not all links are dumped\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " --index-file=FILE send verbose output to FILE\n"
+#~ " --utc print file modification dates in UTC\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --confirmation same as -w\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Salida de informacin:\n"
+#~ " --help muestra esta ayuda, y finaliza\n"
+#~ " --version informa de la versin y finaliza\n"
+#~ " -v, --verbose lista prolijamente los ficheros procesados\n"
+#~ " --checkpoint muestra los nombres de directorio al leer el archivo\n"
+#~ " --check-links muestra un mensaje si no se vuelcan todos los enlaces\n"
+#~ " --totals muestra los bytes escritos en total al crear el archivo\n"
+#~ " --index-file=FICHERO enva una salida detallada a FICHERO\n"
+#~ " --utc muestra las fechas de modificacin en UTC\n"
+#~ " -R, --block-number muestra el nmero de bloque en el archivo con cada mensaje\n"
+#~ " -w, --interactive pide confirmacin para cada accin\n"
+#~ " --confirmation igual que -w\n"
+
+# por defecto -> por omisin, de forma predeterminada
+# HOST -> HUSPED, ANFITRIN (aqu estoy ms perdido que el barco 'el
+# arroz, ya lo s; como con shell y script). gag
+#~ msgid ""
+#~ "\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*This* `tar' defaults to `--format=%s -f%s -b%d'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "GNU tar no puede leer ni generar archivos `--posix'. Si POSIXLY_CORRECT est\n"
+#~ "definido en el entorno, las extensiones GNU se deshabilitan con `--posix'.\n"
+#~ "El soporte para POSIX est slo parcialmente implementado, no se debe contar \n"
+#~ "con l an.\n"
+#~ "ARCHIVO puede ser FICHERO, HOST:FICHERO o USUARIO@HOST:FICHERO; FECHA puede ser\n"
+#~ "una fecha textual, o un nombre de fichero que comience con `/' o con `.', en\n"
+#~ "cuyo caso se utiliza la fecha del fichero.\n"
+#~ "*Este* `tar' utiliza `--format=%s -f%s -b%d' por omisin.\n"
+
+#~ msgid "Written by John Gilmore and Jay Fenlason."
+#~ msgstr "Escrito por John Gilmore y Jay Fenlason."
+
+#~ msgid "Cannot close"
+#~ msgstr "No se puede cerrar"
+
+# FIXME. Comunicar al autor. Con suerte quedar como un mensaje
+# parecido que hay en fileutils: "fork system call failed".
+# La solucin de fileutils no me acaba de convencer (era "llamada
+# a fork()" ). Yo pondra: "No se puede crear proceso hijo (fork)"
+# que responde a la idea del fork y el parntesis aclara. jmg
+# Pero eso sera "Cannot create child process"...
+# Yo creo que la solucin de fileutils es la mejor.
+# Tanto es as que lo pongo igual que all. sv
+# Literalmente es "No puedo bifurcar", pero como sabemos que
+# `bifurcar' se refiere a la primitiva `fork()', est bien como est,
+# salvo que se debera conservar la mayscula inicial, y para mi gusto,
+# simplificar, respetando el mensaje original: "Fallo en fork()" - gerardo
+# Pongo la mayscula inicial, pero antes de ser tan respetuoso con el original
+# consultar con el autor. sv
+#~ msgid "Cannot dup"
+#~ msgstr "Fall la llamada al sistema `dup'"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "No se pueden usar archivos comprimidos ni remotos"
+
+# Por qu en todo lugar donde dice "child" se traduce como "proceso hijo" y
+# no como "hijo" directamente? nl
+# Para que est ms claro. es demasiado libre la traduccin? sv
+# Gerardo?
+# Hola. Hay dos posturas a la hora de traducir:
+# a) respetar escrupulosamente el mensaje original y traducir
+# literalmente, o casi.
+# b) buscar la mejor interpretacin de forma que un hispanohablante lo
+# entienda lo mejor posible, aunque se "corrija" al autor; siempre
+# sin cambiar el sentido o la idea del mensaje, claro.
+# Yo prefiero (b) generalmente. Est claro que aqu child se refiere a un
+# proceso, un proceso derivado de otro, proceso hijo. Dara igual dejar hijo
+# solamente, pero as est mejor expresado. Me gusta ms.
+#~ msgid "tar (child)"
+#~ msgstr "tar (proceso hijo)"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (proceso nieto)"
+
+#~ msgid "Child died with signal %d"
+#~ msgstr "El proceso hijo termin con la seal %d"
+
+#~ msgid "Child returned status %d"
+#~ msgstr "El proceso hijo devolvi el estado %d"
+
+#~ msgid "Member names contain `..'"
+#~ msgstr "Los nombres contienen `..'"
+
+#~ msgid "%s: Member name contains `..'"
+#~ msgstr "%s: El nombre contiene `..'"
+
+# Nota aclaratoria: (Gerardo)
+# Incluida no lleva tilde.
+# Ni ruido ni huida ni giro (un instrumento musical cubano).
+# S se parte en in-clu-i-da, pero sin tilde. No existe el hiato.
+# Mira en un diccionario `ruido' a ver si tiene tilde, y considera si
+# no es el mismo caso (Rui-do no: ru-i-do).
+#
+# Ms arriba has usado "implies"->"implica", as que aqu
+# sera "implied by"->"implicada por", o modificar lo otro. jmg
+# Pero es que implica suena bien pero implicada por suena fatal. sv
+#~ msgid "Obsolete option, now implied by --blocking-factor"
+#~ msgstr "Opcin obsoleta, ahora incluida en --blocking-factor"
+
+# Pregunta: qu es reemplazado/a el nombre o la opcin? sv
+# Creo que es el nombre. fr
+# # El nombre de la opcin; lo que pasa es que en el mensaje en espaol
+# # no se entiende muy bien. Quiz: nombre obsoleto de la opcin
+# # remplazado por -- ... gag
+#~ msgid "Obsolete option name replaced by --blocking-factor"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --blocking-factor"
+
+# # Ver msj. anterior
+#~ msgid "Obsolete option name replaced by --read-full-records"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --read-full-records"
+
+#~ msgid "Obsolete option name replaced by --touch"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --touch"
+
+#~ msgid "Conflicting archive format options"
+#~ msgstr "Opciones de formato de archivo en conflicto"
+
+#~ msgid "Obsolete option name replaced by --absolute-names"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --absolute-names"
+
+#~ msgid "Obsolete option name replaced by --block-number"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --block-number"
+
+#~ msgid "Obsolete option name replaced by --backup"
+#~ msgstr "Nombre de opcin obsoleta reemplazado por --backup"
+
+# Acepto sugerencias para el `test suite'. sv
+# "test suite"="paquete/conjunto de pruebas/anlisis", en cualquier
+# combinacin. jmg
+#~ msgid "Generate data files for GNU tar test suite.\n"
+#~ msgstr "Genera ficheros de datos para el conjunto de pruebas de GNU tar.\n"
+
+#~ msgid ""
+#~ "If a long option shows an argument as mandatory, then it is mandatory\n"
+#~ "for the equivalent short option also.\n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH of generated file\n"
+#~ " -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+#~ " --help display this help and exit\n"
+#~ " --version output version information and exit\n"
+#~ msgstr ""
+#~ "Los argumentos obligatorios para las opciones largas son tambin obligatorios\n"
+#~ "para las opciones cortas.\n"
+#~ "\n"
+#~ " -l, --file-length=LONGITUD LONGITUD del fichero generado\n"
+#~ " -p, --pattern=PATRN PATRN es `default' o `zeros'\n"
+#~ " --help muestra esta ayuda y sale\n"
+#~ " --version informa de la versin y finaliza\n"
+
+#~ msgid "Written by F. Pinard."
+#~ msgstr "Escrito por Franois Pinard."
+
+#~ msgid "Ambiguous pattern `%s'"
+#~ msgstr "El patrn `%s' es ambiguo"
+
+# Me encantara poder incluir tos propuestas de usar el \372 ( aspa ) y
+# el (C) , veremos si lo hacemos algn da. em+
+# Estara bien cambiar el '(C)' por '', que es otro carcter de
+# ISO-Latin1. Como los yanquis usan el ASCII (US ISO-646), que es de
+# 7 bits, no lo pueden usar; nosotros s. gerardo
+# Pues eso: que si os encanta, por qu no lo hacis? Cul es el problema?
+# Bueno, vale, de acuerdo... sv
+#~ msgid "Copyright %d Free Software Foundation, Inc."
+#~ msgstr " %d Free Software Foundation, Inc."
+
+#~ 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 ""
+#~ "Esto es software libre; vea el cdigo fuente para las condiciones de copia.\n"
+#~ "No hay NINGUNA garanta; ni siquiera de COMERCIABILIDAD o IDONEIDAD PARA UN\n"
+#~ "FIN DETERMINADO.\n"
+
+#~ msgid "Write to compression program short %lu bytes"
+#~ msgstr "La escritura al programa de compresin acorta %lu bytes"
+
+#~ msgid "Removing `%.*s' prefix from member names"
+#~ msgstr "Eliminando el prefijo `%.*s' de los nombres"
+
+#~ msgid "Archive contains future timestamp %s"
+#~ msgstr "El archivo contiene la marca de tiempo en el futuro %s"
+
+#~ msgid "%s: Cannot symlink %s %s"
+#~ msgstr "%s: No se puede crear el enlace simblico %s %s"
+
+#~ msgid "Invalid group given on option"
+#~ msgstr "Se ha especificado un grupo no vlido en la opcin"
+
+#~ msgid "Invalid owner given on option"
+#~ msgstr "Se ha especificado un propietario no vlido en la opcin"
+
+#~ msgid "Cannot close file descriptor"
+#~ msgstr "No se puede cerrar el descriptor de fichero"
+
+#~ msgid "Cannot properly duplicate %s"
+#~ msgstr "No se puede duplicar %s correctamente"
+
+#~ msgid "(child) Pipe to stdin"
+#~ msgstr "(proceso hijo) Se abre una tubera desde la entrada estndar"
+
+#~ msgid "Archive to stdout"
+#~ msgstr "Archivo hacia la salida estndar"
+
+#~ msgid "((child)) Pipe to stdout"
+#~ msgstr "((proceso hijo)) Se abre una tubera hacia la salida estndar"
+
+#~ msgid "(grandchild) Pipe to stdin"
+#~ msgstr "(proceso nieto) Se abre una tubera desde la entrada estndar"
+
+#~ msgid "(child) Pipe to stdout"
+#~ msgstr "(proceso hijo) Se vuelca el resultado por la salida estndar"
+
+#~ msgid "((child)) Pipe to stdin"
+#~ msgstr "((proceso hijo)) Se abre una tubera desde la entrada estndar"
+
+#~ msgid "(grandchild) Pipe to stdout"
+#~ msgstr "(proceso nieto) Se abre una tubera hacia la salida estndar"
+
+#~ msgid "Only wrote %lu of %lu bytes to %s"
+#~ msgstr "Slo se escribieron %lu de %lu bytes en %s"
+
+# FIXME: No queda claro si es al cerrar, cerrando, cierre, o qu. sv
+#~ msgid "WARNING: %s: close (%d, %d)"
+#~ msgstr "ATENCIN: %s: se cierra (%d, %d)"
+
+#~ msgid "Cannot allocate memory for diff buffer of %lu bytes"
+#~ msgstr "No se puede asignar memoria para el bfer de diferencias de %lu bytes"
+
+# Lo mismo que con stat() em+
+# seek() es otra funcin. seek = "hacer seek()" Estos
+# angloparlantes!
+#~ msgid "Cannot seek to %s in file %s"
+#~ msgstr "No se puede acceder a la posicin %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"
+
+#~ msgid "lseek error at byte %s in file %s"
+#~ msgstr "Error de lectura en el byte %s en el fichero %s"
+
+# "se rellena" debera ser "rellenando". "se rellena" puede entenderse como
+# varias cosas, no queda claro que es lo que se esta haciendo, podra indicar
+# lo que se suele hacer.. =) "rellenando con ceros" es perfecto y es
+# exactamente lo que est escrito en el original. sv
+#
+# Que s, reconozco que la traduccin es un poco libre.
+# Pero mi intencin 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
+#~ msgid "File %s shrunk, padding with zeros"
+#~ msgstr "El tamao del fichero %s ha disminuido, se rellena con ceros"
+
+# OK em+
+# Can't = no se puede; couldn't: no se ha podido. gag
+# O no se pudo. sv
+# Esa forma verbal se debera usar para cosas ocurridas hace mucho ms tiempo.
+# No pude hacer la Primera Comunin vestido de hombre-rana, no he podido
+# escribir esta frase en caracteres jeroglficos. gag
+#
+#~ msgid "Cannot reposition archive file"
+#~ msgstr "No se puede reposicionar el archivo"
+
+#~ msgid "%s: Cannot change access and modification times"
+#~ msgstr "%s: No se pueden cambiar las fechas de acceso y modificacin"
+
+#~ msgid "%s: Cannot lchown to uid %lu gid %lu"
+#~ msgstr "%s: No se puede cambiar el propietario y grupo con `lchown' a uid %lu gid %lu"
+
+#~ msgid "%s: Cannot chown to uid %lu gid %lu"
+#~ msgstr "%s: No se puede cambiar el propietario y grupo con `chown' a uid %lu gid %lu"
+
+#~ msgid "%s: lseek error at byte %s"
+#~ msgstr "%s: error de desplazamiento en el byte %s"
+
+#~ msgid "%s: Could only write %s of %s bytes"
+#~ msgstr "%s: Slo se pudieron escribir %s de %s bytes"
+
+#~ msgid "Error while deleting %s"
+#~ msgstr "Error al borrar %s"
+
+#~ msgid "Only wrote %lu of %lu bytes to file %s"
+#~ msgstr "Slo se escribieron %lu de %lu bytes al archivo %s"
+
+#~ msgid "Renaming previous %s to %s\n"
+#~ msgstr "Se renombra el anterior %s como %s\n"
+
+#~ msgid "%s: Cannot rename for backup"
+#~ msgstr "%s: No se puede renombrar para hacer una copia de seguridad"
+
+#~ msgid "%s: Cannot rename from backup"
+#~ msgstr "%s: No se puede renombrar de la copia de seguridad"
+
+# FIXME. No es traducible.
+#~ msgid "Cannot %s %s"
+#~ msgstr "No se puede %s %s"
+
+#~ msgid "Read error at byte %s reading %lu bytes in file %s"
+#~ msgstr "Error de lectura en el byte %s leyendo %lu bytes en el fichero %s"
+
+#~ msgid "Cannot open pipe"
+#~ msgstr "No se puede abrir la tubera"
+
+#~ msgid "Cannot open archive %s"
+#~ msgstr "No se puede abrir el archivo %s"
+
+#~ msgid "Cannot exec %s"
+#~ msgstr "No se puede ejecutar %s"
+
+# lo mismo de antes. sv
+#~ msgid "Child cannot fork"
+#~ msgstr "El proceso hijo no puede bifurcarse"
+
+#~ msgid "Cannot read from compression program"
+#~ msgstr "No se puede leer del programa de compresin"
+
+#~ msgid "Cannot write to compression program"
+#~ msgstr "No se puede escribir al programa de compresin"
+
+#~ msgid "Cannot write to %s"
+#~ msgstr "No se puede escribir en %s"
+
+#~ msgid "Read error on %s"
+#~ msgstr "Error de lectura en %s"
+
+#~ msgid "WARNING: Cannot truncate %s"
+#~ msgstr "ATENCIN: No se puede truncar %s"
+
+#~ msgid "While waiting for child"
+#~ msgstr "Mientras se esperaba al hijo"
+
+# Estos errores son para el debug del programa. A quien le pueda
+# interesar sabe lo que quiere decir em+
+# Otras veces se ha puesto bifurcar sin el (fork)! Esto es difcil,
+# porque tambin podra ponerse: "No se puede hacer fork()", ya que
+# fork() es un punto de entrada a una primitiva Unix; vaya, una
+# funcin. gag
+# FIXME. Hablar con el autor.
+# en fileutils-3.16.es.po, el autor cambi el "Cannot fork" por "fork
+# system call failed", con lo que podra pasar lo mismo ahora. Si no
+# hay cambios, yo preferira: "No se puede crear proceso hijo (fork)!"
+# jmg
+#~ msgid "Cannot fork!"
+#~ msgstr "No se puede bifurcar!"
+
+#~ msgid "Cannot exec a shell %s"
+#~ msgstr "No se puede ejecutar un shell %s"
+
+#~ msgid "Cannot open %s"
+#~ msgstr "No se puede abrir %s"
+
+#~ msgid "Cannot read %s"
+#~ msgstr "No se puede leer %s"
+
+#~ msgid "Error while closing %s"
+#~ msgstr "Error al cerrar %s"
+
+#~ msgid "Cannot read link %s"
+#~ msgstr "No se puede leer el enlace %s"
+
+#~ msgid "Could not rewind archive file for verify"
+#~ msgstr "No se pudo rebobinar el archivo para verificar"
+
+#~ msgid "Cannot add file %s"
+#~ msgstr "No se puede aadir el fichero %s"
+
+#~ msgid "Cannot add directory %s"
+#~ msgstr "No se puede aadir el directorio %s"
+
+#~ msgid "Cannot open directory %s"
+#~ msgstr "No se puede abrir el directorio %s"
+
+#~ msgid "%s: Could not write to file"
+#~ msgstr "%s: No se pudo escribir en el fichero"
+
+#~ msgid "%s: Could not create file"
+#~ msgstr "%s: No se pudo crear el fichero"
+
+#~ msgid "%s: Error while closing"
+#~ msgstr "%s: Error al cerrar"
+
+#~ msgid "%s: Could not make node"
+#~ msgstr "%s: No se pudo crear el nodo"
+
+# Pongo comitas porque no es una palabra espaola.
+# A quien no le guste que abra el debate sobre cundo s y cundo no
+# deben ponerse comitas en es@li.org.
+#~ msgid "%s: Could not make fifo"
+#~ msgstr "%s: No se pudo crear el `fifo'"
+
+#~ msgid "%s: Could not create directory"
+#~ msgstr "%s: No se pudo crear el directorio"
+
+#~ msgid "Added write and execute permission to directory %s"
+#~ msgstr "Aadidos permisos de escritura y ejecucin al directorio %s"
+
+#~ msgid "Cannot open file %s"
+#~ msgstr "No se puede abrir el fichero %s"
+
+#~ msgid ""
+#~ "\n"
+#~ "Usage: %s [OPTION]... [FILE]...\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Modo de empleo: %s [OPCIN]... [FICHERO]...\n"
+
+# Me encantara poder incluir tos propuestas de usar el \372 ( aspa ) y
+# el (C) , veremos si lo hacemos algn da. em+
+# Estara bien cambiar el '(C)' por '', que es otro carcter de
+# ISO-Latin1. Como los yanquis usan el ASCII (US ISO-646), que es de
+# 7 bits, no lo pueden usar; nosotros s. Incluso "Copyright" por
+# "Derechos de copia". Ya lo de FSF por Fundacin del Logical Libre
+# es demasiado, verdad? :-) gag
+# < Puede alguien explicarme por qu no se hace ya, o no se ha hecho
+# antes? Qu diferencia hay, bajo el punto de vista de ser caracteres
+# vlidos, entre '' y '' o entre '' y '' o entre '' y '' o entre
+# '' y ''? Lo nico que se me ocurre es que es algo difcil introducir
+# esos caracteres porque no estn en el teclado del PC. No hay ms que
+# irse a una terminal o teclado con tecla de Componer o usar el Emacs con
+# C-q ooo (ooo = nmero octal) con la tabla (man iso_8859_1) al lado.
+# Alguien tiene otra explicacin?
+#
+# Se ven peor. Estas cosas deben ser bien legibles desde consola, y el
+# Copyright ese no se ve demasiado bien. sv
+# Nostoy dacuerdo. Protesto enrgicamente. gerardo
+# No tendra ningn inconveniente en usar ese carcter si el objetivo final
+# fuera que apareciese por una lser de 300ppp, pero el objetivo es que se
+# vea por consola, y con la poca resolucin que tiene no es un Copyright
+# hecho y derecho sino una C dentro de algo que parece ms bien un cuadrado
+# con los bordes redondeados. Incluso el (C) Sinclair Research...
+# se vea mejor que el de los PCs. sv
+# Bueno, eso es un problema del tipo de letra, no del traductor. Adems (C)
+# es el sucedneo legal del , como TeX cuando no se puede poner como \TeX{}.
+# Pero es un sucedneo, no el original. Es un copyright light. A ms a ms,
+# como dicen los catalanes, que ya aparece delante la palabra Copyright, por
+# lo que no debe haber ambigedad. gerardo
+#
+# Hombre, el objetivo del traductor es que se entienda, y por ser (C)
+# el "sucedneo legal", como t le dices, es razonable usarlo.
+# En cambio la "" no tiene sucedneo legal, por lo que poner
+# "espagna" o "espa~na" sera completamente inaceptable.
+# Y si lo miras bien, todos son sucedneos, pues las letras no "son"
+# pixelizadas. Lo que yo digo es que no es un sucedneo ms bonito que (C)
+# para el smbolo de copyright. sv
+#~ msgid ""
+#~ "\n"
+#~ "Copyright 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Copyright 1988, 92,93,94,95,96,97,98, 1999 Free Software Foundation, Inc.\n"
+
+# Segn gag y jmg, hay que decir: "no est en un lmite de bloque", pues
+# no estamos hablando de un bloque concreto (el bloque) sino de uno cualquiera.
+# FIXME: Entonces tal vez el original debera decir "on a block boundary". sv
+#~ msgid "Archive %s EOF not on block boundary"
+#~ msgstr "El fin del archivo %s no est en un lmite de bloque"
+
+# por qu convertir las oraciones unimembres en bimembres? Ya vi
+# otro caso en donde se hace y no veo por qu. Bien podra quedar como:
+# "Nombre de fichero %s%s demasiado largo". nl
+# Algunas de esas frases suenan a "indio" sv
+# Hombre, esto no es una novela (del Oeste :-), la forma "india" es
+# ms literal y ms corta, lo que quiz sea ms apropiado para mensajes
+# concisos como stos; pero en realidad es ms agradable de leer as.
+# El traductor manda. gerardo
+#~ msgid "File name %s%s too long"
+#~ msgstr "El nombre de fichero %s%s es demasiado largo"
+
+#~ msgid "Skipping to next file header"
+#~ msgstr "Saltando a la siguiente cabecera de fichero"
+
+#~ msgid "Cannot determine initial working directory"
+#~ msgstr "No se puede determinar el directorio de trabajo inicial"
+
+#~ msgid "Could not get current directory"
+#~ msgstr "No se pudo obtener el directorio actual"
+
+#~ msgid "Could not get current directory: %s"
+#~ msgstr "No se pudo obtener el directorio actual: %s"
+
+#~ msgid "File name %s/%s too long"
+#~ msgstr "El nombre del fichero %s/%s es demasiado largo"
+
+#~ msgid "%s: out-of-range timestamp `%s' ignored"
+#~ msgstr "%s: no se tendr en cuenta la marca de fecha `%s' fuera de rango"
+
+#~ msgid "Cannot chdir to %s"
+#~ msgstr "No se puede cambiar al directorio %s"
+
+#~ msgid "Arithmetic overflow"
+#~ msgstr "Sobrepasamiento aritmtico"
+
+# Se vuelca la *memoria* del proceso en un fichero llamado `core'.
+#~ msgid " (core dumped)"
+#~ msgstr " (memoria volcada)"
+
+#~ msgid "Data differs"
+#~ msgstr "Los datos son distintos"
+
+#~ msgid "File does not exist"
+#~ msgstr "El fichero no existe"
+
+# Uff, a lo mejor se asusta el usuario si ponemos 'no se pudo leer con stat()
+# el estado del fichero em+
+# stat() es una primitiva Unix que acaba de fallar; tambin podra
+# ser: "No se puede hacer stat() del fichero %s", o "stat() ha fallado..."
+# Aunque tal como est es ms descriptivo para el nefito, desde
+# luego. gag
+#~ msgid "Cannot stat file %s"
+#~ msgstr "No se puede leer el estado del fichero %s"
+
+#~ msgid "Not a regular file"
+#~ msgstr "No es un fichero regular"
+
+#~ msgid "Does not exist"
+#~ msgstr "No existe"
+
+#~ msgid "No such file or directory"
+#~ msgstr "No existe el fichero o el directorio"
+
+#~ msgid "Mode or device-type changed"
+#~ msgstr "El modo o el tipo de dispositivo ha cambiado"
+
+#~ msgid "No longer a directory"
+#~ msgstr "Ya no es un directorio"
+
+# Lo mismo. sv
+# Sugerencia: Sendero -> Ruta, camino. sv
+# Lo siento, no me sala la palabra. Esperaba correcin. fr
+# Siempre he estado usando ruta en otras traducciones em+
+# # Esta vez sugiero "camino", por seguir la terminologa de
+# # Microsoft, ya que da lo mismo, no? gag
+# Quedara igualmente claro si no se hace referencia a ruta:
+# "... de los nombres absolutos en el archivo". jmg
+#~ msgid "Removing leading `/' from absolute path names in the archive"
+#~ msgstr "Borrando la `/' inicial de los nombres absolutos de ruta en el archivo"
+
+#~ msgid "Amount actually written is (I hope) %d.\n"
+#~ msgstr "La cantidad realmente escrita (esperemos) es %d.\n"
diff --git a/po/et.po b/po/et.po
new file mode 100644
index 00000000..9ad9d480
--- /dev/null
+++ b/po/et.po
@@ -0,0 +1,2614 @@
+# This file is distributed under the same license as the tar package.
+# Estonian translations for GNU tar.
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Toomas Soome <Toomas.Soome@microlink.ee>, 2011.
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-12 18:29+0200\n"
+"Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
+"Language-Team: Estonian <linux-ee@lists.eenet.ee>\n"
+"Language: et\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-15\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "vigane argument %s (`%s')"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "segane argument %s (`%s')"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Lubatud argumendid on:"
+
+#: 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 vrtus on viksem vi vrdne kui %s"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT parameeter nuab vrtust"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Tundmatu ARGP_HELP_FMT parameeter"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Prgi ARGP_HELP_FMT parameetrites: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Kohustuslikud vi mittekohustuslikud argumendid pikkadele vtmetele on ka kohustuslikud vi mittekohustuslikud vastavatele lhikestele vtmetele."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Kasutamine:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " vi: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [VTI...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "`%s --help' vi `%s --usage' annab rohkem infot.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Teated vigadest saatke palun aadressil %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Tundmatu ssteemi viga"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "nita seda abiinfot"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "nita lhikest kasutamise petust"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NIMI"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "sea programmi nimi"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "oota SEK sekundeid (vaikimisi 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "esita programmi versioon"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMMI VIGA) Versioon pole teada!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Liiga palju argumente\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMMI VIGA) Vti peaks olema ra tuntud!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "viga kirjutamisel"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: vti '%s' on segane\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: vtmel '--%s' pole argumente\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: vtmel '%c%s' pole argumente\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: vti '--%s' nuab argumenti\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: tundmatu vti '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: tundmatu vti '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: vigane vti -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: vti nuab argumenti -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: vti '-W %s' on segane\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: vti '-W %s' ei luba argumenti\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: vti '-W %s' nuab argumenti\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "mlu on otsas"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "ei nnestu salvestada jooksvat tkataloogi"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "algsesse tkataloogi ei nnestu tagasi minna"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[jJ]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[eE]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Paketi looja %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Paketi looja %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr ""
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Litsents GPLv3+: GNU GPL versioon 3 vi uuem <http://gnu.org/licenses/gpl.html>.\n"
+"See on vaba tarkvara: teil on lubatud seda muuta ja levitada.\n"
+"GARANTII PUUDUB, vastaval seadusega lubatud piiridele.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Kirjutanud %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:108
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Kirjutanud %s ja %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+msgstr "Kirjutanud %s, %s ja %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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"ja %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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"%s ja %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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"%s, %s ja %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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"%s, %s, %s ja %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"ja %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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Kirjutanud %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s ja %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.
+#: 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 ""
+"Kirjutanud %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s ja teised.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Teated vigadest saatke palun aadressil: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Teated %s vigadest saatke palun aadressil: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s koduleht: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "%s koduleht: <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 "ldine abiinfo GNU tarkvara kasutamisest: <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 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Eemaldan liikmete nimedelt prefiksi `%s'"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Eemaldan viidatavate nimedelt prefiksi `%s'"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Kasutan thjade nimede asemel `.'"
+
+#: lib/paxnames.c:155
+msgid "Substituting `.' for empty hard link target"
+msgstr "Kasutan thja 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 vljund"
+
+#: lib/rtapelib.c:429
+#, c-format
+msgid "Cannot connect to %s: resolve failed"
+msgstr "Ei nnestu luua hendust masinaga %s: nimelahendus ebannestus"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Ei saa kivitada kaug ksuinterpretaatorit"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Otsimise suund on piiridest vljas"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Vigane seek suund"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Vigane seek indeks"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Otsimise indeks on piiridest vljas"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Vigane baitide arv"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Baitide arv on piiridest vljas"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Ootamatu faili lpp"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Vigane operatsiooni kood"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operatsioon ei ole toetatud"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Ootamatud argumendid"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Opereeri lindiseadet, aktsepteerib kske mittelokaalselt protsessilt"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "N"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "mra silumise tase"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FAIL"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "sea silumisteadete faili nimi"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "%s ei saa avada"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "liiga palju argumente"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Rmpsksk"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Hmm.... see ei tundu olema tar arhiiv"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Baite kirjutatud kokku"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Baite loetud kokku"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Baite kirjutatud kokku: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(toru)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Kirje suuruse vrtus on vigane"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Arhiivi nime pole"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Ei saa kontrollida sisend/vljund arhiive"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arhiiv on tihendatud. Kasutage vtit %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Ei saa uuendada pakitud arhiive"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Lindi alguses, lpetan t"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Liig palju vigu, jtan t pooleli"
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Arhiivi ei nnestu tagasi kerida; lugemiseks vib olla vajalik kasutada vtit -i"
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek ei peatunud kirje piiril"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: sisaldab vigast volmi numbrit"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Volmi number on liiga suur"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Otsi volm #%d %s'le ja vajuta return klahvi: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "EOF kasutaja vastuse asemel"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "HOIATUS: Arhiiv pole tielik"
+
+#: src/buffer.c:1148
+#, 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 nimi Anna jrgmistele volmidele uus nimi\n"
+" q Katkesta tar\n"
+" y vi reavahetus Jtka\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Loo alamshell\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Vljasta see info\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Pole uus volm; lpetan t.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Puudub faili nimi. Proovige uuesti.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Vigane sisend. ? annab abiinfot.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "%s ksklus sai vea"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "vimalik et %s jtkub sellel volmil: pises on lhendatud nimi"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s ei jtku sellel volmil"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s on vale suurusega (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "See volm on vljaspoolt jrjekorda (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arhiivi mrgend ei sobi %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Volm %s ei sobi volmiga %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: faili nimi on GNU mitmevolmi pisesse salvestamiseks liiga pikk, lhendan"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "kirjutamine ei peatunud bloki piiril"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Sisu on erinev"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Ootamatu arhiivi lpp"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Failitbid on erinevad"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Moodid erinevad"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "UID on erinevad"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "GID on erinevad"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Muutmise ajad erinevad"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Suurused erinevad"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "ei viita %s-le"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Nimeviited erinevad"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Seadme numbrid on erinevad"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Kontroll "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Tundmatu failitp '%c', vrdlen tavalise failina"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arhiiv sisaldab eemaldatud prefiksitega failinimesid."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Arhiiv sisaldab teisendatud faili nimesid."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Kontrollimine ei pruugi leida algseid faile."
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "VIGA KONTROLLIMISEL: leiti %d vigast pist"
+msgstr[1] "VIGA KONTROLLIMISEL: leiti %d vigast pist"
+
+#: src/compare.c:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "ksik null blokk kohal %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: sisaldab vahemlu kataloogi lipikut %s; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "vrtus %s on %s piiridest %s..%s vljas; asendan %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "vrtus %s on %s piiridest %s..%s vljas"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Genereerin negatiivsed kaheksand pised"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: faili nimi on liiga pikk (maks. %d); ei salvesta"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: faili nimi on liiga pikk (ei saa poolitada); ei salvesta"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: viite nimi on liiga pikk; ei salvesta"
+
+#: src/create.c:1064
+#, 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 lhenes %s baiti; tidan nullidega"
+msgstr[1] "%s: Fail lhenes %s baiti; tidan nullidega"
+
+#: src/create.c:1160
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: fail on teises failissteemis; ei salvesta"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "sisu ei salestata"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tundmatu failitp; ignoreerin seda faili"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "%s-le puudub viiteid."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: pole muutunud; ei salvesta"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s on arhiiv; ei salvesta"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "kataloogi ei salvestatud"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: fail muutus lugemisel"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: ignoreerin pesa"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: ignoreerin ust"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Hppan jrgmise piseni"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Kustutan arhiivist mitte-pise"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: ebatenoliselt vana ajatempel %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: ajatempel %s on %s sekundit tulevikus"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Ootamatu koosklalisuse probleem kataloogi loomisel"
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Taastan jtkuvad failid kui tavalised"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "ritan taastada nimeviiteid viidetena"
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Ei saa taastada -- fail jtkub teisel volmil"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Ootamatu pika nime pis"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Tundmatu failitp `%c', taastan tavalise failina"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Olemasolev %s on uuem vi sama kuupevaga"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Selle faili varundamine ebannestus"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s ei nnestu mber nimetada %s-ks"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Kataloog %s on mber nimetatud"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Kataloog on mber nimetatud"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Kataloog on uus"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Vigane ajatempel"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Vigane muutmise aeg (sekundid)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Vigane muutmise aeg (nanosekundid)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Vigane seadmenumber"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Vigane i-kirje number"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Snapshoti faili lugemisel leiti liiga pikk vli"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Snapshoti failist lugemise viga"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Ootamatu snapshoti faili lpp"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Snapshoti failis on vljal ootamatu vrtus"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Puudub kirje lpetaja"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Inkrementaalse faili vorming on vigane"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Mittetoetatud inkrementaalse vormingu versioon: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Vigane taastamise kataloog: eeldasin '%c', sain %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Vigane taastamise kataloog: dubleeritud 'X'"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Vigane taastamise kataloog: thi nimi 'R' vljal"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Vigane taastamise kataloog: 'R' ei ole 'T' ees"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Vigane taastamise kataloog: thi nimi 'T' vljal"
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Vigane taastamise kataloog: 'X' ei kasutata"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Vormiga %s ei saa ajutist kataloogi luua"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Ei puhasta kataloogi: stat ebannestus"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: kataloog on teisel seadmel; ei puhasta"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Kustutan %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ei saa eemaldada"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Jtan vahele"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blokk %s: ** NULlide blokk **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blokk %s: ** Faili lpp **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blokk %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Thjad vljad pises kohtadel, kus eeldati numbrit %s"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Arhiivi kaheksandvrtus %.*s on %s piiridest vljas; eeldan kahe tiendit"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Arhiivi kaheksandvrtus %.*s on %s piiridest vljas"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arhiiv sisaldab aegunuid base-64 piseid"
+
+#: src/list.c:809
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Arhiivi mrgiga base-64 sne %s on %s piiridest vljas"
+
+#: src/list.c:840
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Arhiivi base-256 vrtus on %s piiridest vljas"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:869
+#, 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:891
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Arhiivi vrtus %s on %s piiridest %s..%s vljas"
+
+#: src/list.c:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " viide %s-le\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tundmatu failitp %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Pikk viide--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Pikk nimi--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Volmi pis--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Jtkub baidilt %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Loon kataloogi:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Ei nnestu lugeda tkataloogi"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Annan %s uueks nimeks %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: ei nnestu mber nimetada %s-ks"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Nimetan `%s' tagasi `%s'\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fail kustutati enne lugemist"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "alamprotsess"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "protsessidevaheline kanal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Failide nimedes on jokkersmbolid"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Jokkerite lubamiseks kasutage --wildcars vi --no-wildcards selle teate blokeerimiseks"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Puudub arhiivis"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Nutud eksemplar puudub arhiivis"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Arhiivi mrgend ei sobi"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "--listed-incremental ei luba faili loendis vtit -C kasutada"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Vti --listed-incremental lubab ainult hte -C kasutamist"
+
+#: src/tar.c:81
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Mlemad vtmed - `-%s' ja `-%s' eeldavad standard sisendit"
+
+#: src/tar.c:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Vigane arhiivi vorming"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Arhiivi formaat ei toeta GNU laiendusi"
+
+#: 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 ksuga `%s --quoting-style=help'"
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' salvestab failid hte lindi vi ketta faili arhiivi ja taastab\n"
+"arhiivist ksikuid faile.\n"
+"\n"
+"Niteid:\n"
+" tar -cf arhiiv.tar foo bar # Loo arhiiv.tar failidest foo ja bar.\n"
+" tar -tvf arhiiv.tar # Anna arhiiv.tar sisust tielik levaade.\n"
+" tar -xf arhiiv.tar # Taasta kik failid arhiivist arhiiv.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Varukoopia lpp on `~', kui pole antud --suffix vi SIMPLE_BACKUP_SUFFIX.\n"
+"Versiooni kontrolli vib mrata --backup vi VERSION_CONTROL, vrtused on:\n"
+"\n"
+" none, off varukoopiat ei loo\n"
+" t, numbered tee nummerdatud koopiaid\n"
+" nil, existing nummerdatud kui koopiad on nummerdatud, muidu lihtne\n"
+" never, simple tee ainult lihtne koopia\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Philine t:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "nita arhiivi sisukorda"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "taasta failid arhiivist"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "loo uus arhiiv"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "otsi arhiivi ja failissteemi erinevusi"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "lisa failid arhiivi lppu"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "lisa arhiivi ainult failid uuemad kui arhiivis"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "lisa tar failid arhiivi"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "kustuta arhiivist (mitte magnetlindilt!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "testi arhiivi volmi mrgendit ja lpeta t"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "T tpsustamine:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "tta aukudega failidega efektiivsemalt"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "PHI[.ALAM]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "mra aukudega faili vormingu versioon (eeldab vtit --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "ksitle vana GNU vormingus inkrementaalset koopiat"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "ksitle uue GNU vormingu inkrementaalset koopiat"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "loodud listed-incremental arhiivi dump tase"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "ra lpeta loetamatute failide korral veakoodiga"
+
+#: src/tar.c:429
+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 ""
+"ttle ainult N-dat esinemist arhiivi igast failist. See vti on lubatud ainult\n"
+"kskudega --delete, --diff, --extract vi --list ja kui failide loend on antud\n"
+"ksureal vi vtmega -T. Vaikimisi N on 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "arhiiv on positsioneeritav"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "arhiiv ei ole positsioneeritav"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "inkrementaalsete arhiivide loomisel ra kontrolli seadmete numbreid"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "inkrementaalsete arhiivide loomisel kontrolli seadmete numbreid (vaikimisi)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "lekirjutamise juhtimine:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "kontrolli arhiivi peale arhiivi kirjutamist"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "kustuta failid peale arhiveerimist"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "olemasolevaid faile taastamisel le ei kirjuta"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "kirjuta olemasolevad failid le"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "kustuta fail enne taastamist"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "kustuta hierarhia enne kataloogi taastamist"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "silita olemasolevate kataloogide metainfo"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "taastamisel kirjuta olemasolevate kataloogide metainfo le (vaikimisi)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Vali vljundvoog:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "taasta failid standardvljundisse"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "KSK"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "taasta failid lbi toru teise programmi"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ignoreeri alamprotsesside lpetamise koode"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "ksitle alamprotsesside nullist erinevaid lpetamise koode veana"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Faili atribuutide ksitlemine:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "kasuta NIMEe kui lisatud failide omanikku"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "kasuta NIMEe kui lisatud failide gruppi"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "KUUP-VI-FAIL"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "sea lisatud failide muutmise ajaks KUUP-VI-FAIL"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "MUUTUSED"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "kasuta lisatud failidel smbol moodi MUUTUSED"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "MEETOD"
+
+#: src/tar.c:499
+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 "silita salvestatud failide kasutamise aeg, kas taastades selle peale lugemist (METHOD='replace'; vaikimisi) vi ei muuda kasutamise aega ldse (METHOD='system')"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "ra taasta faili muutmise aega"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "rita failide taastamisel silitada failide omanikud arhiivis (root kasutajal vaikimisi)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "taasta failid enda igustes (tavakasutajatel vaikimisi)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "kasuta kasutaja/grupp numbreid"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "taasta ka info failide igustest (vaikimisi superkasutaja korral)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "iguste taastamisel kasuta kasutaja umask vrtust (vaikimisi tavakasutajatel)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "taasta failid arhiveerimis jrjekorras"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "sama, kui -p ja -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "oota muutmise aegade ja iguste taastamisega taastamise lpuni"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "katkesta --delay-directory-restore vtme mju"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Seadme valik ja vahetamine:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARHIIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "kasuta arhiivi faili vi seadet ARHIIV"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "arhiivi fail on lokaalne isegi kui sisaldab koolonit"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "kasuta rmt asemel antud ksku"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "kasuta rsh asemel antud ksku"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "mra seade ja tihedus"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "loo/nita/taasta mitme volmilisi arhiive"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "vaheta peale NUMBER x 1024 baidi kirjutamist linti"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "kivita iga lindi lpus skript (eeldab vtit -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "kasuta/uuenda volmi numbrit failis FAIL"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Seadme blokkimine:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKKE"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOKKE x 512 baiti kirjele"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "NUMBER baiti kirjele, 512 kordne"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignoreeri null blokke arhiivis (thistab EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "bloki lugemisel uuesti (4.2BSD torude jaoks)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Arhiivi vormingu valikud:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "VORMING"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "loo arhiiv antud vormingus"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "VORMING on ks jrgnevaist:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "vana V7 tar vorming"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU vorming tar <= 1.12 korral"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x vorming"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) vorming"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) vorming"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "sama, kui pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "sama, kui --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "sama, kui --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "vtmesna[[:]=vrtus][,vtmesna[[:]=vrtus]...]"
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "pax vtmesnade kasutamine"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEKST"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "loo arhiivi volmi nimega NIMI. Listingu/taastamise ajal kasuta TEKSTi otsingumustrina"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Tihendamise vtmed:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "tihendamisprogrammi tuvastamiseks kasuta arhiivi sufiksit"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "tihendamisprogrammi tuvastamiseks ra kasuta arhiivi sufiksit"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtreeri lbi programmi (peab lubama vtit -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Lokaalse faili valik:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "KAT"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "mine kataloogi KAT"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "loe taastatavate vi varundatavate failide nimed failist NIMI"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T loeb nullidega lpetatud nimesid, blokeeri -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "blokeeri eelmise --null vtme mju"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "eemalda -T vtmega loetud failinimedest kvootimissmbolid (vaikimisi)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "ra eemalda -T vtmega loetud failinimedest kvootimissmboleid"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MUSTER"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "MUSTRI jrgi vlistatud failid"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "vlistavad mustrid on FAILIS"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "vlista kataloogide, mis sisaldavad CACHEDIR.TAG, sisu, vlja arvatud mrgendi fail ise"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "vlista kik kataloogis, mis sisaldab CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "vlista kataloogid, mis sisaldavad CACHEDIR.TAG"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "vlista kataloogide, mis sisaldavad faili FAIL, sisu, vlja arvatud FAIL ise"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "vlista kataloogid, mis sisaldavad faili FAIL"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "vlista kataloogid, mis sisaldavad faili FAIL"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "vlista versiooni kontrolli ssteemi kataloogid"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "vlista varukoopiad ja lukufailid"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "ra sisene kataloogidesse"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "psi arhiivi loomise ajal kohalikus failissteemis"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "sisene kataloogidesse (vaikimisi)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "ra eemalda faili nimedelt prefiksit `/'"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "jrgi nimeviiteid; arhiveeri ja taasta viidatavad failid"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "jrgi viiteid; arhiveeri ja taasta viidatavad failid"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "KOMPONENT"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "alusta arhiivi liikmest KOMPONENT"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "salvesta ainult failid mis on uuemad kui KUUP-VI-FAIL"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "KUUPEV"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "vrdle kuupevi ainult kui andmed on muutunud"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "KONTROLL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "loo enne eemaldamist varukoopia, vali versioonikontroll"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "SNE"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "varunda enne kustutamist, kasuta uut lppu (vaikimisi '~', kui pole le mratud keskkonnamuutujaga SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Failide nimede muutmine:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "eemalda taastamisel failide nimede algusest NUMBER komponenti"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "AVALDIS"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "kasuta failide nimede muutmiseks sed asendus avaldist"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Failinimede otsimine (mjutab nii kaasamist, kui vlistamist):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "tstutundetu"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "mustrid alustavad faili nime algusest"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "mustrid toimivad iga / jrel (vlistamise korral vaikimisi)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "tstutundlik otsimine (vaikimisi)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "kasuta jokkersmboleid (vlistamise korral vaikimisi)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "tht-theline sne otsimine"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "jokkerid ei leia '/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "jokkersmbolid leiavad '/' (vlistamise korral vaikimisi)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informatsioon:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "vljasta tdeldavate failide kohta infot"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "VTMESNA"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "hoiatuste juhtimine"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "anna t kohta infot iga NUMBER kirje jrel (vaikimisi 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "TEGEVUS"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "kivita tegevus igas kontrollpunktis"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "vljasta teade, kui kike viiteid pole salvestatud"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAAL"
+
+#: src/tar.c:751
+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 "vljasta peale arhiivi ttlemist baitide koguarv, argumendi korral - vljasta see info, kui saadetakse antud signaal. Lubatud signaalid on: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 ja SIGUSR2; SIG prefiksi vib ra jtta"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "vljasta failide muutmise ajad UTC esituses"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "vljasta faili aeg tielikult"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "salvesta tiendav info FAILi"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "nita iga teatega ka arhiivi bloki numbrit"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "ksi iga tegevuse kohta kinnitust"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "nita tar vaikeseadeid"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "listingu vi taastamise ajal, nita igat kataloogi mis ei vasta otsingutingimustele"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "peale teisendamist nita faili vi arhiivi nime"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STIIL"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "mra nimede kvootimise stiil; lubatud vrtused on toodud allpool"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "lisaks kvoodi snes nidatud smbolid"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "keela snes toodud smbolite kvootimine"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "hilduvuse vtmed:"
+
+#: src/tar.c:787
+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:792
+msgid "Other options:"
+msgstr "Muud vtmed:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "blokeeri potentsiaalselt ohtlikud vtmed"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Korraga vib kasutada ainult hte vtmetest `-Acdtrux' vi `--test-label'"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Konfliktsed pakkimisvtmed"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Tundmatu signaali nimi: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Kuupeva fail puudub"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Kasutan %s tundmatu ajaformaadi %s asemel"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Vti %s: Ksitlen aega `%s' kui %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: failide nimekiri on juba loetud"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: loetud faili nimi sisaldab smbolit nul"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtreeri arhiiv lbi %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Vtmega --quoting-style on lubatud jrgnevad argumendid:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*See* tar kasutab vaikimisi:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Vigane blokkimisfaktor"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Vigane lindi pikkus"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Inkrementaalse varunduse taseme vrtus on vigane"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Rohkem kui ks etteantud aeg"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Vigane aukudega faili versiooni vrtus"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' ei ole sellel platvormil toetatud"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint vrtus ei ole tisarv"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Vigane grupp"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Vtmega anti vigane mood"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Vigane number"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Vigane omanik"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Vti --preserve on mittesoovitatav, kasutage --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Vigane kirje suurus"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Kirje suurus peab olema %d kordne."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Vigane elementide arv"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Lubatud on ainult ks --to-command vti"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Vigane tiheduse argument: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Tundmatu tihedus: `%c'"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "*See* tar ei toeta vtmeid `-[0-7][lmh]'"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[FAIL]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Vana vti `%c' nuab argumenti."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence ei oma failide nimekirjata mtet"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence ei saa valitud treiimil kasutada"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Mitme arhiivifaili kasutamine nuab vtit `-M'"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental ja --newer ei saa koos kasutada"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level ei oma vtmeta --listed-incremental mtet"
+
+#: src/tar.c:2423
+#, 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: Volmi mrgend on liiga pikk (piirang on %lu baiti)"
+msgstr[1] "%s: Volmi mrgend on liiga pikk (piirang on %lu baiti)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Ei suuda kontrollida mitme volmilisi arhiive"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Ei saa kontrollida pakitud arhiive"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Ei saa kasutada mitme volmilisi pakitud arhiive"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Tihendatud arhiive ei saa hendada"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option saab kasutada ainult POSIX arhiividega"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Volmi suurus ei saa olla viksem kirje suurusest"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order ei ole hilduv vtmega --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Ega ikka ei tee kll thja arhiivi"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Vtmeid `-Aru' ei saa kasutada vtmega `-f -'"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Peab kasutama ht vtmetest `-Acdtrux' vi `--test-label'"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Kuna eelnevalt oli vigu, siis lpetan veakoodiga"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: Fail on %s baiti lhem"
+msgstr[1] "%s: Fail on %s baiti lhem"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Vtmesna %s on tundmatu vi pole veel realiseeritud"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Ajatempel on piiridest vljas"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Mustrit %s ei saa kasutada"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Vtmesna %s ei saa mber mrata"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Vigane laiendatud pis: puudub pikkus"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Laiendatud pise pikkus on piiridest vljas"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Laiendatud pise pikkus %*s on piiridest vljas"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Vigane laiendatud pis: pikkuse jrel puudub thik"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Vigane laiendatud pis: puudub vrdusmrk"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Vigane laiendatud pis: puudub reavahetus"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ignoreerin tundmatud laiendatud pise vtmesna `%s'"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Genereeritud vti/vrtus paar on liiga pikk (vti=%s, pikkus=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Laiendatud pis %s=%s on piiridest %s..%s vljas"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Vigane laiendatud pis: %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Vigane laiendatud pis: liigne %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Vigane laiendatud pis: vigane %s: ootamatu eraldaja %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Vigane laiendatud pis: vigane %s: veider arv vrtuseid"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: ei ole korrektne taimout"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: tundmatu kontrollpunkti tegevus"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "kirjutamine"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "lugemine"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Kirjutamise kontrollpunkt %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Lugemise kontrollpunkt %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile manipuleerib GNU paxutils testipaketi andmefailidega.\n"
+"VTMED on:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Faili loomise vtmed:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "SUURUS"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Loo mratud suurusega fail"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Kirjuta standardvljundi asemel faili NIMI"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Loe failide nimed failist FAIL"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T loeb nullidega lpetatud nimesid"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Tida fail antud mustriga. Muster on 'default' vi 'zeros'"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Bloki suurus aukudega faili korral"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Loo aukudega fail. Jrgnev ksurida kirjeldab faili."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "INDEKS"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Enne kirjutamist liigu antud indeksile"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Statistika faili kohta:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Vljasta iga faili kohta stat struktuuri sisu. Vaikimisi VORMING on: "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Snkroonse titmise vtmed:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "VTI"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Tida antud KSKLUS. Kasulik vtmetega --checkpoint ja --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Judes kontrollpunkti NUMBER, tida antud tegevus (vt. allpool)"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Mra jrgmise --touch vtme ajatempel"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Esita tidetud kontrollpunktid ja ksu lpetamise olek"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Snkroonse titmise tegevused. Neid tidetakse, kui saabub --checkpoint vtmega mratud kontrollpunkt."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Sea faili suuruseks --length vtmega nidatu (vi 0, kui suurust ei antud)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Lisa faili lppu --length parameetriga nidatud arv baite."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Uuenda faili kasutamise ja muutmise ajatempleid"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Kivita KSK"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Kustuta FAIL"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Vigane suurus: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Number on piiridest vljas: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negatiivne suurus: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) ebannestus"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "ksitud faili pikkus %lu, tegelik %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "loodud fail pole aukudega"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Viga `%s' juures numbri parsimisel"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Tundmatu kuupeva vorming"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENDID...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "`%s' ei saa avada"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "seek ebannestus"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "faili nimi sisaldab null smbolit"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "standard vljundis ei saa aukudega faili luua, kasutage vtit --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "vigane mask (`%s' lhedal)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Tundmatu vli `%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "ei nnestu seada `%s' aega"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "`%s' ei saa kustutada"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Ksk lpetas t edukalt\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Ksk lpetas veakoodiga %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Ksk katkestati signaaliga %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Ksk peatati signaaliga %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Ksk salvestas mlupildi\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Ksk katkestas\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat nuab failinimesid"
diff --git a/po/eu.po b/po/eu.po
new file mode 100644
index 00000000..085b9de5
--- /dev/null
+++ b/po/eu.po
@@ -0,0 +1,2267 @@
+# Translation of tar messages to Basque.
+# Copyright (C) 2006 Free Software Foundation, Inc.
+# Mikel Olasagasti <hey_neken@mundurat.net>, 2006.
+# Piarres Beobide <pi@beobide.net>, 2006.
+# This file is distributed under the same license as the tar package.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar-1.15.91-eu\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2006-06-16 10:13+0300\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"
+"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:137
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "%s argumentu baliogabea %s-rentzat"
+
+#: lib/argmatch.c:138
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "%s argumentu anbiguoa %s-rentzat"
+
+#: lib/argmatch.c:157
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Argumentu erabilgarriak:"
+
+#: lib/argp-help.c:148
+#, 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:221
+#, 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:227
+#, 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:236
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: ARGP_HELP_FMT parametro ezezaguna"
+
+#: lib/argp-help.c:248
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Zaborra ARGP_HELP_FMT-en: %s"
+
+#: lib/argp-help.c:1229
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Aukera luzeentzat beharrezko edo aukerako argumentuak modu berdinean beharrezko edo aukerakoak izango dira aukera luzeentzat ere."
+
+#: lib/argp-help.c:1616
+msgid "Usage:"
+msgstr "Erabilera:"
+
+#: lib/argp-help.c:1620
+msgid " or: "
+msgstr " edo: "
+
+#: lib/argp-help.c:1632
+msgid " [OPTION...]"
+msgstr " [AUKERA...]"
+
+#: lib/argp-help.c:1659
+#, 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:1687 src/tar.c:1066
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Arazoen berri %s-en eman.\n"
+
+#: lib/argp-help.c:1906 lib/error.c:121
+msgid "Unknown system error"
+msgstr "Sistema errore ezezaguna"
+
+#: lib/argp-parse.c:82 src/tar.c:709
+msgid "give this help list"
+msgstr "laguntza zerrenda hau eman"
+
+#: lib/argp-parse.c:83 src/tar.c:710
+msgid "give a short usage message"
+msgstr "erabilera mezu labur bat eman"
+
+#: lib/argp-parse.c:84 src/tar.c:443 src/tar.c:445 src/tar.c:512
+#: tests/genfile.c:126
+msgid "NAME"
+msgstr "IZENA"
+
+#: lib/argp-parse.c:84
+msgid "set the program name"
+msgstr "programa izen ezarri"
+
+#: lib/argp-parse.c:85
+msgid "SECS"
+msgstr "SEG"
+
+#: lib/argp-parse.c:86 src/tar.c:715
+msgid "hang for SECS seconds (default 3600)"
+msgstr "SEG segundu gelditu (lehenetsia 3600)"
+
+#: lib/argp-parse.c:143 src/tar.c:711
+msgid "print program version"
+msgstr "programa bertsioa bistarazi"
+
+#: lib/argp-parse.c:159
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMA ERROREA) Ez da bertsioa ezagutzen!?"
+
+#: lib/argp-parse.c:612
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Argumentu gehiegi\n"
+
+#: lib/argp-parse.c:755
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMA ERROREA) Aukera ezaguna izan beharko zen!?"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: `%s' aukera anbiguoa da\n"
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: `--%s' aukerak ez du argumenturik onartzen\n"
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, 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:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: `%s' aukerak argumentu bat behar du\n"
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: `--%s' aukera ezezaguna\n"
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: `%c%s' aukera ezezaguna\n"
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: -- %c legezkanpoko aukera\n"
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: -- %c ekintza baliogabea\n"
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: aukerak -- %c argumentu bat behar du.\n"
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: `-W %s' aukera anbiguoa da\n"
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: `-W %s' aukerak ez du argumenturik onartzen\n"
+
+#: lib/human.c:486
+msgid "block size"
+msgstr "bloke tamaina"
+
+#: lib/obstack.c:433 lib/obstack.c:435 lib/xalloc-die.c:37 src/extract.c:1360
+msgid "memory exhausted"
+msgstr "memoria askieza"
+
+#. 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
+#, 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:211
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu byte"
+msgid_plural "%s: Read error at byte %s, 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: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:132
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr ""
+
+#: lib/paxnames.c:133
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr ""
+
+#: lib/paxnames.c:146
+msgid "Substituting `.' for empty member name"
+msgstr "`.' partaide izen hutsagatik aldatzen"
+
+#: lib/paxnames.c:147
+msgid "Substituting `.' for empty hard link target"
+msgstr "`.' lotura gogor helburu hutsegatik aldatzen"
+
+#. 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.
+#: lib/quotearg.c:245
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:246
+msgid "'"
+msgstr "'"
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr "^[bB]"
+
+#: lib/rpmatch.c:73
+msgid "^[nN]"
+msgstr "^[eE]"
+
+#: lib/rtapelib.c:299
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Zerbitzua ez da erabilgarria"
+
+#: lib/rtapelib.c:303
+msgid "stdin"
+msgstr "sarrera estandarra"
+
+#: lib/rtapelib.c:306
+msgid "stdout"
+msgstr "irteera estandarra"
+
+#: lib/rtapelib.c:512
+msgid "Cannot execute remote shell"
+msgstr "Ezin da urruneko shell-a abiarazi"
+
+#: rmt/rmt.c:143
+msgid "Input string too long"
+msgstr "Sarrera kate luzeegia"
+
+#: rmt/rmt.c:162
+msgid "Number syntax error"
+msgstr "Zenbaki sintaxi errorea"
+
+#: rmt/rmt.c:181
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Ezin da buffer lekua esleitu\n"
+
+#: rmt/rmt.c:183
+msgid "Cannot allocate buffer space"
+msgstr "Ezin da buffer lekua esleitu"
+
+#: rmt/rmt.c:305
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "`%s --help' saiatu argibide gehiagorako.\n"
+
+#: rmt/rmt.c:309
+#, 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 ""
+"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:316
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Erroreen berri <%s>-ra eman.\n"
+
+#: rmt/rmt.c:398
+msgid "Seek offset error"
+msgstr "Seek offset errorea"
+
+#: rmt/rmt.c:407 rmt/rmt.c:548 rmt/rmt.c:558
+msgid "Seek offset out of range"
+msgstr "Seek offset-a eremuz kanpo"
+
+#: rmt/rmt.c:429
+msgid "Seek direction out of range"
+msgstr "Seek norabidea eremuz kanpo"
+
+#: rmt/rmt.c:473
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Fitxategi amaiera azkarregia\n"
+
+#: rmt/rmt.c:475
+msgid "Premature end of file"
+msgstr "Fitxategi amaiera azkarregia"
+
+#: rmt/rmt.c:673
+msgid "Garbage command"
+msgstr "Zabor komandoa"
+
+#: src/buffer.c:317 src/buffer.c:326
+msgid "Total bytes written"
+msgstr "Idatziriko byte-ak guztira"
+
+#: src/buffer.c:324 src/buffer.c:338
+msgid "Total bytes read"
+msgstr "Irakurritako byte-ak guztira"
+
+#: src/buffer.c:328
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Ezabaturiko byte-ak guztira: %s\n"
+
+#: src/buffer.c:414
+msgid "(pipe)"
+msgstr "(tutua)"
+
+#: src/buffer.c:447
+msgid "Invalid value for record_size"
+msgstr "balio baliogabea record_size-rentzat"
+
+#: src/buffer.c:450
+msgid "No archive name given"
+msgstr "Ez da fitxategi izenik eman"
+
+#: src/buffer.c:493
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Ezin da sarrera/irteera estandar fitxategia egiaztatu"
+
+#: src/buffer.c:506
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Fitxategia konprimiturik dago. %s aukera erabili"
+
+#: src/buffer.c:551 src/tar.c:2067
+msgid "Cannot update compressed archives"
+msgstr "Ezin dira konprimituriko fitxategiak eguneratu"
+
+#. 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/buffer.c:601
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Idazketa %u egiaztapen puntua"
+
+#. 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/buffer.c:607
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Irakurketa %u egiaztapen puntua"
+
+#: src/buffer.c:659
+msgid "At beginning of tape, quitting now"
+msgstr "Zintaren hasieran, uzten"
+
+#: src/buffer.c:665
+msgid "Too many errors, quitting"
+msgstr "Errore gehiegi, uzten"
+
+#: src/buffer.c:693
+#, 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:713
+#, 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:786
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr ""
+
+#: src/buffer.c:818
+msgid "rmtlseek not stopped at a record boundary"
+msgstr ""
+
+#: src/buffer.c:874
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: bolumen zenbaki baliogabea du"
+
+#: src/buffer.c:909
+msgid "Volume number overflow"
+msgstr "Bolumen zenbaki gainezkatzea"
+
+#: src/buffer.c:924
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "#%d bolumena %s -rako prestatu eta enter sakatu: "
+
+#: src/buffer.c:930
+msgid "EOF where user reply was expected"
+msgstr "Fitxategi amaiera erabiltzaile erantzuna espero zenean"
+
+#: src/buffer.c:935 src/buffer.c:967
+msgid "WARNING: Archive is incomplete"
+msgstr "Oharra: Paketea ez dago osaturik"
+
+#: src/buffer.c:949
+#, 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 Eman izen berri bat hurrengo (eta hurrengo) bolumenentzat\n"
+" q tar utzi\n"
+" y edo intro Ekintza jarraitu\n"
+
+#: src/buffer.c:954
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Azpishell bat sortu\n"
+
+#: src/buffer.c:955
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Zerrenda hau inprimatu\n"
+
+#: src/buffer.c:962
+msgid "No new volume; exiting.\n"
+msgstr "Ez dago bolumen berririk; uzten.\n"
+
+#: src/buffer.c:995
+msgid "File name not specified. Try again.\n"
+msgstr "Ez da fitxategi izenik ezarri. Berriz saiatu.\n"
+
+#: src/buffer.c:1008
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "SArrera baliogabea. ? idatzi laguntzarako.\n"
+
+#: src/buffer.c:1058
+#, c-format
+msgid "%s command failed"
+msgstr "%s komandoak huts egin du"
+
+#: src/buffer.c:1120 src/delete.c:210 src/list.c:169 src/update.c:165
+msgid "This does not look like a tar archive"
+msgstr "Honek ez dirudi tar pakete bat"
+
+#: src/buffer.c:1212
+#, 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:1216
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s ez da bolumen honen jarraipena"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s okerreko tamaina da (%s != %s + %s)"
+
+#: src/buffer.c:1240
+msgid "This volume is out of sequence"
+msgstr "Bolumen hau sekuentziatik kanpo dago"
+
+#: src/buffer.c:1286
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr ""
+
+#: src/buffer.c:1289
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "%s bolumena ez da %s-ren pareko"
+
+#: src/buffer.c:1385
+#, 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/compare.c:96
+#, 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:122
+msgid "Contents differ"
+msgstr "Eduki ezberdintasunak"
+
+#: src/compare.c:149 src/extract.c:773 src/incremen.c:1109 src/list.c:374
+#: src/list.c:1294
+msgid "Unexpected EOF in archive"
+msgstr "Esperogabeko Fitxategi amaiaera paketean"
+
+#: src/compare.c:197 src/compare.c:213 src/compare.c:331 src/compare.c:395
+msgid "File type differs"
+msgstr "Fixtategi mota ezberdinak"
+
+#: src/compare.c:200 src/compare.c:220 src/compare.c:345
+msgid "Mode differs"
+msgstr "Modu ezberdinak"
+
+#: src/compare.c:223
+msgid "Uid differs"
+msgstr "Uid ezberdinak"
+
+#: src/compare.c:225
+msgid "Gid differs"
+msgstr "Gid ezberdinak"
+
+#: src/compare.c:229
+msgid "Mod time differs"
+msgstr "Eraldaketa data ezberdinak"
+
+#: src/compare.c:233 src/compare.c:403
+msgid "Size differs"
+msgstr "Tamaina ezberdinak"
+
+#: src/compare.c:287
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ez dago %s-ra loturik"
+
+#: src/compare.c:310
+msgid "Symlink differs"
+msgstr "Lotura sinboliko ezberdinak"
+
+#: src/compare.c:339
+msgid "Device number differs"
+msgstr "Gailu zenbaki ezberdinak"
+
+#: src/compare.c:445
+#, c-format
+msgid "Verify "
+msgstr "Egiaztatu "
+
+#: src/compare.c:452
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: `%c' fitxategi mota ezezaguna, fitxategi arrunt batez ezberdina"
+
+#: src/compare.c:508
+msgid "Archive contains file names with leading prefixes removed."
+msgstr ""
+
+#: src/compare.c:510
+msgid "Verification may fail to locate original files."
+msgstr "Egiaztapenak huts egin dezake jatorrizko fitxategiak kokatzerakoan."
+
+#: src/compare.c:580
+#, 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/create.c:162
+#, 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:168
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "%s balioa %s eremutik %s..%s kanpo dago"
+
+#: src/create.c:228
+msgid "Generating negative octal headers"
+msgstr "Zortzitar buru negatiboak sortzen"
+
+#: src/create.c:513 src/create.c:576
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: fitxategi izena luzeegia da (gehi. %d); ez da irauliko"
+
+#: src/create.c:523
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: fitxategi izena luzeegia da (ezin da moztu); ez da irauliko"
+
+#: src/create.c:550
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: lotura izena luzeegia da; ez da irauliko"
+
+#: src/create.c:965
+#, 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:1105
+#, 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:1115
+#, c-format
+msgid "%s: contains a cache directory tag; not dumped"
+msgstr "%s: katxe direktorioa marka bat du; ez da irauliko"
+
+#: src/create.c:1273
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Fitxategi mota ezezaguna; fitxategia alde batetara utziko da"
+
+#: src/create.c:1374
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "%s-ra lotura falta da.\n"
+
+#: src/create.c:1444
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: fitxategia ez da aldatu, ez da irauliko"
+
+#: src/create.c:1452
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: fitxategia paketea da, ez da irauliko"
+
+#: src/create.c:1482
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fitxategia irakurri baino lehen ezabaturik"
+
+#: src/create.c:1552
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: fitxategia aldatu egin da irakurtzen ari zenean"
+
+#: src/create.c:1628
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket-a alde batetara utzi da"
+
+#: src/create.c:1633
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: atea alde batetara utzia"
+
+#: src/delete.c:216 src/list.c:183 src/update.c:170
+msgid "Skipping to next header"
+msgstr "Hurrengoa burura salto egiten"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "paketetik burugabea ezabatzen"
+
+#: src/extract.c:194
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: Sinesgarri izateko zaharregia den denbora marka %s"
+
+#: src/extract.c:211
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: %s denbora marka %s etorkizunean da"
+
+#: src/extract.c:383
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Esperogabeko inkonsistentziak direktorioa sortzerakoan"
+
+#: src/extract.c:576
+#, 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:711
+msgid "Extracting contiguous files as regular files"
+msgstr "Alboko fitxategiak fitxategi erregularrak bezala ateratzen"
+
+#: src/extract.c:979
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Lotura sinbolikoak lotura gogor bezala ateratzen saiatzen"
+
+#: src/extract.c:1037
+#, c-format
+msgid "Reading %s\n"
+msgstr "%s irakurtzen\n"
+
+#: src/extract.c:1129
+#, 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:1136 src/list.c:1057
+msgid "Unexpected long name header"
+msgstr "Buru izen luzera esperogabea"
+
+#: src/extract.c:1142
+#, 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:1167
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Unekoa %s berriagoa edo data berdinekoa da"
+
+#: src/extract.c:1213
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Ez da gai fitxategi honen babeskopia egiteko"
+
+#: src/extract.c:1341
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Ezin da %s %s-ra berrizendatu"
+
+#: src/extract.c:1353
+msgid "Error is not recoverable: exiting now"
+msgstr "Errorea berreskura ezina da: irteten"
+
+#: src/incremen.c:261 src/incremen.c:301
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Direktorioa %s-tik berrizendatua izan da"
+
+#: src/incremen.c:271
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktorioa berrizendatua izan da"
+
+#: src/incremen.c:312
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Direktorioa berria da"
+
+#: src/incremen.c:692 src/incremen.c:707
+msgid "Invalid time stamp"
+msgstr "denbora marka baliogabea"
+
+#: src/incremen.c:697 src/incremen.c:712 src/incremen.c:857 src/incremen.c:867
+msgid "Time stamp out of range"
+msgstr "Denbora marka eremuz kanpo dago"
+
+#: src/incremen.c:742
+msgid "Invalid modification time (seconds)"
+msgstr "Eraldaketa denbora (segundu) baliogabea"
+
+#: src/incremen.c:746 src/incremen.c:890
+msgid "Modification time (seconds) out of range"
+msgstr "Eraldaketa denbora (segundu) eremuz kanpo dago"
+
+#: src/incremen.c:754
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Eraldaketa denbora (nanosegundu) baliogabea"
+
+#: src/incremen.c:758 src/incremen.c:898
+msgid "Modification time (nanoseconds) out of range"
+msgstr "Eraldaketa denbora (nanosegundu) eremuz kanpo dago"
+
+#: src/incremen.c:769
+msgid "Invalid device number"
+msgstr "gailu zenbaki baliogabea"
+
+#: src/incremen.c:773 src/incremen.c:906
+msgid "Device number out of range"
+msgstr "Gailu zenbakia eremuz kanpo dago"
+
+#: src/incremen.c:781
+msgid "Invalid inode number"
+msgstr "Inodo zenbaki baliogabea"
+
+#: src/incremen.c:785 src/incremen.c:914
+msgid "Inode number out of range"
+msgstr "Inodo zenbakia eremuz kanpo dago"
+
+#: src/incremen.c:830
+msgid "Field too long while reading snapshot file"
+msgstr "Eremu luzeegia snapshot fitxategia irakurtzerakoan"
+
+#: src/incremen.c:836
+msgid "Unexpected field value in snapshot file"
+msgstr "Eremu balio esperogabea snapshot fitxategian"
+
+#: src/incremen.c:852 src/incremen.c:862
+msgid "Error reading time stamp"
+msgstr "Errorea denbora marka irakurtzerakoan"
+
+#: src/incremen.c:926
+msgid "Missing record terminator"
+msgstr "Gordetze amaiera falta da"
+
+#: src/incremen.c:934
+msgid "Unexpected EOF"
+msgstr "Fitxategi Amaiera Esperogabea"
+
+#: src/incremen.c:978 src/incremen.c:981
+msgid "Bad incremental file format"
+msgstr "Fitxategi inkremental formatu okerra"
+
+#: src/incremen.c:1000
+#, c-format
+msgid "Unsupported incremental format version: %d"
+msgstr "Onartugabeko inkremental formatu bertsioa: %d"
+
+#: src/incremen.c:1149
+#, 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:1159
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Gaizki eratutako iraulketa direktorioa: 'X' bikoizturik"
+
+#: src/incremen.c:1172
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Gaizki eratutako iraulketa direktorioa: izen hutsa 'R'-en"
+
+#: src/incremen.c:1185
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Gaizki eratutako iraulketa direktorioa: 'T' ez doa 'R' atzean"
+
+#: src/incremen.c:1191
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Gaizki eratutako iraulketa direktorioa: izen hutsa 'T'-en"
+
+#: src/incremen.c:1211
+#, 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:1217
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Gaizki eratutako iraulketa direktorioa: 'X' ez da inoiz erabili"
+
+#: src/incremen.c:1260
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Ezin da aldiroko direktorioa sortu %s txantiloia erabiliaz"
+
+#: src/incremen.c:1312
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Ez da direktorioa garbituko: ezin da egoera eskuratu"
+
+#: src/incremen.c:1320
+#, 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:1328
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s ezabatzen\n"
+
+#: src/incremen.c:1333
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ezin da ezabatu"
+
+#: src/list.c:115
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Alde batetara uzten"
+
+#: src/list.c:133
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr ""
+
+#: src/list.c:146
+#, c-format
+msgid "A lone zero block at %s"
+msgstr ""
+
+#: src/list.c:157
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "%s blokea: ** Fitxategi Amaiera **\n"
+
+#: src/list.c:180 src/list.c:1026 src/list.c:1262
+#, c-format
+msgid "block %s: "
+msgstr "%s blokea: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:634
+#, 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:689
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Paketearen zortzitar %.*s balioa %s eremutik kanpo dago, biak bateragarriak direla pentsatuko da"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:700
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Paketearen zortzitar %.*s balioa %s eremutik kanpo dago"
+
+#: src/list.c:721
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Paketeak zaharkituriko base-64 buruak ditu"
+
+#: src/list.c:735
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr ""
+
+#: src/list.c:766
+#, 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:795
+#, 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:817
+#, 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:1193
+#, c-format
+msgid " link to %s\n"
+msgstr " %s-ra lotu\n"
+
+#: src/list.c:1201
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " %s fitxategi mota ezezaguna\n"
+
+#: src/list.c:1219
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Lotura Luzea--\n"
+
+#: src/list.c:1223
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Izen Luzea--\n"
+
+#: src/list.c:1227
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Bolumen Burua--\n"
+
+#: src/list.c:1235
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--%s byte-an jarraitzen du--\n"
+
+#: src/list.c:1239
+#, c-format
+msgid "--Mangled file names--\n"
+msgstr "--Kudeatutako fitxategi izenak--\n"
+
+#: src/list.c:1267
+msgid "Creating directory:"
+msgstr "Direktorioa sortzen:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Fitxategi amaiera esperogabea kudeatutako izenetan"
+
+#: src/mangle.c:90 src/misc.c:464 src/misc.c:482
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Ezin da %s-ra berrizendatu"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "%s %s-ra berrizendaturik"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Ezin da %s-ra lotura sinbolikoa egin"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s %s-ra sibolikoki lotua"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr ""
+
+#: src/misc.c:455
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s %s-ra berrizendatzen\n"
+
+#: src/misc.c:487
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "%s %s-ra atzera berrizendatzen\n"
+
+#: src/misc.c:587
+msgid "Cannot save working directory"
+msgstr "Ezin da lan direktorioa gorde"
+
+#: src/misc.c:593
+msgid "Cannot change working directory"
+msgstr "Ezin da lan direktorioa aldatu"
+
+#: src/misc.c:683
+msgid "child process"
+msgstr "ume prozesua"
+
+#: src/misc.c:692
+msgid "interprocess channel"
+msgstr "prozesu arteko kanala"
+
+#. TRANSLATORS: The following three msgids form a single sentence.
+#.
+#: src/names.c:601
+msgid "Pattern matching characters used in file names. Please,"
+msgstr ""
+
+#: src/names.c:603
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+msgstr ""
+
+#: src/names.c:605
+msgid "suppress this warning."
+msgstr "ohar hau kendu."
+
+#: src/names.c:620 src/names.c:638
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Ez da paketean aurkitu"
+
+#: src/names.c:623
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr ""
+
+#: src/tar.c:79
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "`-%s' eta `-%s' aukerek sarrera estandarra behar dute"
+
+#: src/tar.c:156
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Pakete formatu baliogabea"
+
+#: src/tar.c:180
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU ezaugarriak behar dira pakete formatu bateraezinean"
+
+#: src/tar.c:241
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "`%s' markatze estilo ezezaguna. Saiatu `%s --quoting-style=help' zerrenda eskuratzeko."
+
+#: src/tar.c:321
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+" 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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"GNU `tar'-ek fitxategi anitz zinta edo disko pakete batetan gordetzen ditu, eta paketetetik banakako fitxategiak berreskuratu ditzake.\n"
+"\n"
+"Adibideak:\n"
+" tar -cf archive.tar foo bar # paketea.tar paketea sortu foo eta bar fitxategiekin.\n"
+" tar -tvf archive.tar # paketea.tar-eko fitxategi guztiak modu luzean zerrendatu.\n"
+" tar -xf archive.tar # paketea.tar-eko fitxategi guztiak atera.\n"
+" Babeskopia aurrizkia `~', da --suffix edo SIMPLE_BACKUP_SUFFIX bidez ezarri ezean.\n"
+"Bertsio kontrola --backup edo VERSION_CONTROL bidez ezarri daiteke, balioak hauek dira:\n"
+"\n"
+" none, off inoiz ez egin babeskopiarik\n"
+" t, numbered zenbakitutako babeskopiak egin\n"
+" nil, existing zenbakitutako zenbakitutakoak baleude bestela sinplea erabili\n"
+" never, simple beti babeskopia sinpleak egin\n"
+
+#: src/tar.c:353
+msgid "Main operation mode:"
+msgstr "Ekintza nagusi modua:"
+
+#: src/tar.c:356
+msgid "list the contents of an archive"
+msgstr "pakete baten edukiak zerrendatu"
+
+#: src/tar.c:358
+msgid "extract files from an archive"
+msgstr "pakete batetako fitxategiak atera"
+
+#: src/tar.c:361
+msgid "create a new archive"
+msgstr "pakete berri bat sortu"
+
+#: src/tar.c:363
+msgid "find differences between archive and file system"
+msgstr "paketea eta fitxategi sistema arteko ezberdintasunak bilatu"
+
+#: src/tar.c:366
+msgid "append files to the end of an archive"
+msgstr "fitxategiak paketearen amaieran gehitu"
+
+#: src/tar.c:368
+msgid "only append files newer than copy in archive"
+msgstr "paketean dauden kopiak baino berriagoak diren fitxategiak bakarrik gehitu"
+
+#: src/tar.c:370
+msgid "append tar files to an archive"
+msgstr "gehitu tar fitxategiak pakete batetara"
+
+#: src/tar.c:373
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "paketetik ezabatu (ez mag zintetan!)"
+
+#: src/tar.c:375
+msgid "test the archive volume label and exit"
+msgstr "pakete bolumen etiketa egiaztatu eta irten"
+
+#: src/tar.c:380
+msgid "Operation modifiers:"
+msgstr "Ekintza aldagaiak:"
+
+#: src/tar.c:383
+msgid "handle sparse files efficiently"
+msgstr "sakabanatutako fitxategiak egoki kudeatu"
+
+#: src/tar.c:385
+msgid "handle old GNU-format incremental backup"
+msgstr "GNU basbeskopia inkremenetal formatu zaharra kudeatu"
+
+#: src/tar.c:386 src/tar.c:515 src/tar.c:579 src/tar.c:583 src/tar.c:593
+#: src/tar.c:671 tests/genfile.c:128 tests/genfile.c:173 tests/genfile.c:177
+#: tests/genfile.c:180
+msgid "FILE"
+msgstr "FITXATEGIA"
+
+#: src/tar.c:387
+msgid "handle new GNU-format incremental backup"
+msgstr "GNU basbeskopia inkremenetal formatu berria kudeatu"
+
+#: src/tar.c:389
+msgid "do not exit with nonzero on unreadable files"
+msgstr ""
+
+#: src/tar.c:390 src/tar.c:510 src/tar.c:525 src/tar.c:624 tests/genfile.c:159
+msgid "NUMBER"
+msgstr "ZENBAKIA"
+
+#: src/tar.c:391
+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 ""
+
+#: src/tar.c:397
+msgid "archive is seekable"
+msgstr "paketeak `seek' onartzen du"
+
+#: src/tar.c:402
+msgid "Overwrite control:\n"
+msgstr "Gainidazketa kontrola:\n"
+
+#: src/tar.c:405
+msgid "attempt to verify the archive after writing it"
+msgstr "fitxategia egiaztatzen saiatu idatzi aurretik"
+
+#: src/tar.c:407
+msgid "remove files after adding them to the archive"
+msgstr "ezabatu fitxategiak paketera gehitu aurretik"
+
+#: src/tar.c:409
+msgid "don't replace existing files when extracting"
+msgstr "ez ordezkatu dauden fitxategiak ateratzerakoan"
+
+#: src/tar.c:411
+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:413
+msgid "overwrite existing files when extracting"
+msgstr "gainidatzi dauden fitxategiak ateratzerakoan"
+
+#: src/tar.c:415
+msgid "remove each file prior to extracting over it"
+msgstr ""
+
+#: src/tar.c:417
+msgid "empty hierarchies prior to extracting directory"
+msgstr ""
+
+#: src/tar.c:419
+msgid "preserve metadata of existing directories"
+msgstr "dauden direktorioen metadata mantendu"
+
+#: src/tar.c:421
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "dauden direktorioen metadata gainidatzi ateratzerakoan (lehenetsia)"
+
+#: src/tar.c:427
+msgid "Select output stream:"
+msgstr "Irteera korrontea hautatu:"
+
+#: src/tar.c:430
+msgid "extract files to standard output"
+msgstr "fitxategiak irteera estandarrera atera"
+
+#: src/tar.c:431 src/tar.c:488 src/tar.c:490 tests/genfile.c:156
+#: tests/genfile.c:183
+msgid "COMMAND"
+msgstr "KOMANDOA"
+
+#: src/tar.c:432
+msgid "pipe extracted files to another program"
+msgstr "bideratu ateratako fitxategiak beste programa batetara"
+
+#: src/tar.c:434
+msgid "ignore exit codes of children"
+msgstr "alde batetara utzi semeen irteera kodeak"
+
+#: src/tar.c:436
+msgid "treat non-zero exit codes of children as error"
+msgstr "zero ez diren semeen irteera kodeekin errore bat bezala jokatu"
+
+#: src/tar.c:441
+msgid "Handling of file attributes:"
+msgstr "Fitxategi atributu kudeaketa:"
+
+#: src/tar.c:444
+msgid "force NAME as owner for added files"
+msgstr "indartu IZENA jabe bezala gehituriko fitxategientzat"
+
+#: src/tar.c:446
+msgid "force NAME as group for added files"
+msgstr "indartu IZENA talde bezala gehituriko fitxategientzat"
+
+#: src/tar.c:447
+msgid "CHANGES"
+msgstr "ALDAKETAK"
+
+#: src/tar.c:448
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "indartu (sinbolikoa) modu ALDAKETAK gehituriko lerroentzat"
+
+#: src/tar.c:450
+msgid "METHOD"
+msgstr "METODOA"
+
+#: src/tar.c:451
+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:455
+msgid "don't extract file modified time"
+msgstr "ez atera fitxategi eraldaketa data"
+
+#: src/tar.c:457
+msgid "try extracting files with the same ownership"
+msgstr "jabe berdinaren fitxategiak ateratzen saiatu"
+
+#: src/tar.c:459
+msgid "extract files as yourself"
+msgstr "atera fitxategiak zure kabuz"
+
+#: src/tar.c:461
+msgid "always use numbers for user/group names"
+msgstr "beti erabili zenbakiak erabiltzaile/talde izenen ordez"
+
+#: src/tar.c:463
+msgid "extract information about file permissions (default for superuser)"
+msgstr "fitxategi baimenei buruzko argibideak atera (lehenetsia root erabiltzailearentzat)"
+
+#: src/tar.c:467
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "erabiltzailearen umask-a erabili paketetik baimenak ateratzerakoan (lehenetsia erabiltzaile arruntentzat)"
+
+#: src/tar.c:469
+msgid "sort names to extract to match archive"
+msgstr ""
+
+#: src/tar.c:472
+msgid "same as both -p and -s"
+msgstr "-p eta -s bikotearen berdina"
+
+#: src/tar.c:474
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr ""
+
+#: src/tar.c:477
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "--delay-directory-restore aukeraren eragina ezeztatu"
+
+#: src/tar.c:482
+msgid "Device selection and switching:\n"
+msgstr "Gailu hautapen eta aldaketa:\n"
+
+#: src/tar.c:484
+msgid "ARCHIVE"
+msgstr "PAKETEA"
+
+#: src/tar.c:485
+msgid "use archive file or device ARCHIVE"
+msgstr "pakete fitxategia edo gailu PAKETEA erabili"
+
+#: src/tar.c:487
+msgid "archive file is local even if it has a colon"
+msgstr "pakete fitxategi lokala da nahiz bi puntu izan"
+
+#: src/tar.c:489
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "Emandako rmt KOMANDOA erabili rmt ordez"
+
+#: src/tar.c:491
+msgid "use remote COMMAND instead of rsh"
+msgstr "Urruneko KOMANDOA erabili rsh ordez"
+
+#: src/tar.c:495
+msgid "specify drive and density"
+msgstr "Gailu eta dentsitatea ezarri"
+
+#: src/tar.c:509
+msgid "create/list/extract multi-volume archive"
+msgstr "sortu/zerrendatu/atera bolumen-anitzeko paketea"
+
+#: src/tar.c:511
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "zinta aldatu ZENBAKIA x 1024 byte idatzi ondoren"
+
+#: src/tar.c:513
+msgid "run script at end of each tape (implies -M)"
+msgstr "scipt-a abiarazi zinta bakoitzaren amaieran (-M behar du)"
+
+#: src/tar.c:516
+msgid "use/update the volume number in FILE"
+msgstr "erabili/eguneratu FITXATEGI bolumen zenbakia"
+
+#: src/tar.c:521
+msgid "Device blocking:"
+msgstr "Gailu blokeak:"
+
+#: src/tar.c:523
+msgid "BLOCKS"
+msgstr "BLOKE"
+
+#: src/tar.c:524
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOKE x 512 byte grabazio bakoitzeko"
+
+#: src/tar.c:526
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "grabazio bakoitzeko byte ZENBAKIA, 512-ren multiploa"
+
+#: src/tar.c:528
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "paketean zeroz betetako blokeak alde batetara utzi"
+
+#: src/tar.c:530
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "irakurri ahala berriz bloke egin (4.2BSD tutuentzat)"
+
+#: src/tar.c:535
+msgid "Archive format selection:"
+msgstr "Pakete formatu hautapena:"
+
+#: src/tar.c:537 tests/genfile.c:146
+msgid "FORMAT"
+msgstr "FORMATUA"
+
+#: src/tar.c:538
+msgid "create archive of the given format"
+msgstr "emandako formatuko pakete bat sortu"
+
+#: src/tar.c:540
+msgid "FORMAT is one of the following:"
+msgstr "FORMATUA hauetako bat da:"
+
+#: src/tar.c:541
+msgid "old V7 tar format"
+msgstr "V7 tar formatu zaharra"
+
+#: src/tar.c:544
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU formatua tar <= 1.12"
+
+#: src/tar.c:546
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x formatua"
+
+#: src/tar.c:548
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) formatua"
+
+#: src/tar.c:550
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) formatua"
+
+#: src/tar.c:551
+msgid "same as pax"
+msgstr "pax-en berdina"
+
+#: src/tar.c:554
+msgid "same as --format=v7"
+msgstr "--format=v7-ren berdina"
+
+#: src/tar.c:557
+msgid "same as --format=posix"
+msgstr "--format=posix-ren berdina"
+
+#: src/tar.c:558
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "gakoa[[:]=balioavalue][,gakoa[[:]=balioa]]..."
+
+#: src/tar.c:559
+msgid "control pax keywords"
+msgstr ""
+
+#: src/tar.c:560
+msgid "TEXT"
+msgstr "TESTUA"
+
+#: src/tar.c:561
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr ""
+
+#: src/tar.c:563
+msgid "filter the archive through bzip2"
+msgstr "fitxategia bzip2 bidez iragazi"
+
+#: src/tar.c:565
+msgid "filter the archive through gzip"
+msgstr "fitxategia gzip bidez iragazi"
+
+#: src/tar.c:569
+msgid "filter the archive through compress"
+msgstr "fitxategia konpresorearen bidez iragazi"
+
+#: src/tar.c:571
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:572
+msgid "filter through PROG (must accept -d)"
+msgstr "PROG bidez iragazi (-d onartu behar du)"
+
+#: src/tar.c:577
+msgid "Local file selection:"
+msgstr "Fixtategi lokal hautapena:"
+
+#: src/tar.c:580
+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:581
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:582
+msgid "change to directory DIR"
+msgstr "DIR direktoriora aldatu"
+
+#: src/tar.c:584
+msgid "get names to extract or create from FILE"
+msgstr "ateratzeko edo sortzeko izenak FITXATEGIA-tik eskuratu"
+
+#: src/tar.c:586
+msgid "-T reads null-terminated names, disable -C"
+msgstr ""
+
+#: src/tar.c:588
+msgid "unquote filenames read with -T (default)"
+msgstr ""
+
+#: src/tar.c:590
+msgid "do not unquote filenames read with -T"
+msgstr ""
+
+#: src/tar.c:591 tests/genfile.c:132
+msgid "PATTERN"
+msgstr "PATROIA"
+
+#: src/tar.c:592
+msgid "exclude files, given as a PATTERN"
+msgstr "fixtategiak utzi, PATROIA bezala emandakoak"
+
+#: src/tar.c:594
+msgid "exclude patterns listed in FILE"
+msgstr "FITXATEGIAN zerrendaturiko patroiak alde batetara utzi"
+
+#: src/tar.c:596
+msgid "exclude directories containing a cache tag"
+msgstr "katxe marka duten direktorioak alde batetara utzi"
+
+#: src/tar.c:598
+msgid "avoid descending automatically in directories"
+msgstr "sahiestu automatikoki direktorioetan zehar jeistea"
+
+#: src/tar.c:600
+msgid "stay in local file system when creating archive"
+msgstr "fitxategi sistema lokalean egon paketea sortzerakoan"
+
+#: src/tar.c:602
+msgid "recurse into directories (default)"
+msgstr "direktorioetan barrena (lehenetsia)"
+
+#: src/tar.c:604
+msgid "don't strip leading `/'s from file names"
+msgstr "Ez kendu hasierako `/' fitxategi izenetatik"
+
+#: src/tar.c:606
+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:607
+msgid "MEMBER-NAME"
+msgstr "PARTAIDE IZEN"
+
+#: src/tar.c:608
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr ""
+
+#: src/tar.c:609
+msgid "DATE-OR-FILE"
+msgstr "DATA-EDO-FITXATEGIA"
+
+#: src/tar.c:610
+msgid "only store files newer than DATE-OR-FILE"
+msgstr ""
+
+#: src/tar.c:611 src/tar.c:613
+msgid "DATE"
+msgstr "DATA"
+
+#: src/tar.c:612
+msgid "compare date and time when data changed only"
+msgstr "data eta ordua parekatu data bakarrik aldatzen denean"
+
+#: src/tar.c:614
+msgid "same as -N"
+msgstr "-N -ren berdina"
+
+#: src/tar.c:615
+msgid "CONTROL"
+msgstr "KONTROL"
+
+#: src/tar.c:616
+msgid "backup before removal, choose version CONTROL"
+msgstr "babeskopia egin ezabatu aurretik, KONTROL bertsioa hautatu"
+
+#: src/tar.c:617 src/tar.c:688 src/tar.c:690 tests/genfile.c:162
+msgid "STRING"
+msgstr "KATEA"
+
+#: src/tar.c:618
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr ""
+
+#: src/tar.c:623
+msgid "File name transformations:"
+msgstr "Fitxategi izen eraldaketak:"
+
+#: src/tar.c:625
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr ""
+
+#: src/tar.c:627
+msgid "EXPRESSION"
+msgstr "ESPRESIOA"
+
+#: src/tar.c:628
+msgid "Use sed replace EXPRESSION to transform file names"
+msgstr "Sed-en ordezko EXPRESIOA erabili fitxategi izenak eraldatzeko"
+
+#: src/tar.c:633
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr ""
+
+#: src/tar.c:636
+msgid "ignore case"
+msgstr "kasua alde batetara utzi"
+
+#: src/tar.c:638
+msgid "patterns match file name start"
+msgstr ""
+
+#: src/tar.c:640
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr ""
+
+#: src/tar.c:642
+msgid "case sensitive matching (default)"
+msgstr ""
+
+#: src/tar.c:644
+msgid "use wildcards (default for exclusion)"
+msgstr ""
+
+#: src/tar.c:646
+msgid "verbatim string matching"
+msgstr "verbatim kate parekatzea"
+
+#: src/tar.c:648
+msgid "wildcards do not match `/'"
+msgstr ""
+
+#: src/tar.c:650
+msgid "wildcards match `/' (default for exclusion)"
+msgstr ""
+
+#: src/tar.c:655
+msgid "Informative output:"
+msgstr "irteera informatiboa:"
+
+#: src/tar.c:658
+msgid "verbosely list files processed"
+msgstr ""
+
+#: src/tar.c:659
+msgid "[.]NUMBER"
+msgstr "[.]ZENBAKIA"
+
+#: src/tar.c:660
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "Aurrerapen mezuak bistarazi grabaketa ZENBAKI bakiotzagatik (lehenetsia 10 da)"
+
+#: src/tar.c:663
+msgid "print a message if not all links are dumped"
+msgstr "mezu bat inprimatu lotura guztiak ez badira iraultzen"
+
+#: src/tar.c:664
+msgid "SIGNAL"
+msgstr "SEINALEA"
+
+#: src/tar.c:665
+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 ""
+
+#: src/tar.c:670
+msgid "print file modification dates in UTC"
+msgstr "eraldaketa datak UTC orduan bistarazi"
+
+#: src/tar.c:672
+msgid "send verbose output to FILE"
+msgstr "irteera luzea FITXATEGIRA bidali"
+
+#: src/tar.c:674
+msgid "show block number within archive with each message"
+msgstr "Bloke zenbakia bistarazu pakete bakoitzeko mezu bakoitzagatik"
+
+#: src/tar.c:676
+msgid "ask for confirmation for every action"
+msgstr "berrespena eskatu ekintza bakoitzean"
+
+#: src/tar.c:679
+msgid "show tar defaults"
+msgstr "tar lehenespenak bistarazi"
+
+#: src/tar.c:681
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr ""
+
+#: src/tar.c:683
+msgid "show file or archive names after transformation"
+msgstr "fixtategi edo pakete izenak bistarazi eraldaketaren aurretik"
+
+#: src/tar.c:686
+msgid "STYLE"
+msgstr "ESTILOA"
+
+#: src/tar.c:687
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr ""
+
+#: src/tar.c:689
+msgid "additionally quote characters from STRING"
+msgstr "Gako karaktere gehigarriak KATE-tik"
+
+#: src/tar.c:691
+msgid "disable quoting for characters from STRING"
+msgstr "gakoak kendu karaktereentzat KATE-tik"
+
+#: src/tar.c:696
+msgid "Compatibility options:"
+msgstr "Bateragarritasun aukerak:"
+
+#: src/tar.c:699
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr ""
+
+#: src/tar.c:704
+msgid "Other options:"
+msgstr "Beste aukerak:"
+
+#: src/tar.c:707
+msgid "disable use of some potentially harmful options"
+msgstr "ezgaitu arriskutsu izan daitezken zenbait aukera"
+
+#: src/tar.c:810
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Ezin duzu `-Acdtrux' aukera bat baino gehiago ezarri"
+
+#: src/tar.c:820
+msgid "Conflicting compression options"
+msgstr "Elkarjotzen duten konpresio aukerak"
+
+#: src/tar.c:876
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Seinale izen ezezaguna: %s"
+
+#: src/tar.c:943
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: fitxategi zerrenda irakurria dagoeneko"
+
+#: src/tar.c:998
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr ""
+
+#: src/tar.c:1060
+msgid "Valid arguments for --quoting-style options are:"
+msgstr "--quoting-style-entzat balio erabilgarriak:"
+
+#: src/tar.c:1063
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+
+#: src/tar.c:1096
+msgid "Invalid blocking factor"
+msgstr "Blokeo faktore baliogabea"
+
+#: src/tar.c:1168
+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?"
+
+#: src/tar.c:1201
+msgid "Invalid tape length"
+msgstr "Zinta luzera baliogabea"
+
+#: src/tar.c:1228
+msgid "More than one threshold date"
+msgstr "Atari data bat baino gehiago"
+
+#: src/tar.c:1238
+msgid "Date sample file not found"
+msgstr "Data adibide fitxategia ez da aurkitu"
+
+#: src/tar.c:1246
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "%s %s data formatu ezezagunagatik aldatzen"
+
+#: src/tar.c:1377
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' ez da onartzen plataforma honetan"
+
+#: src/tar.c:1394
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint balioa ez da zenbaki oso bat"
+
+#: src/tar.c:1464
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Talde baliogabea"
+
+#: src/tar.c:1471
+msgid "Invalid mode given on option"
+msgstr "Modu baliogabea eman da aukeran"
+
+#: src/tar.c:1524
+msgid "Invalid number"
+msgstr "Zenbaki baliogabea"
+
+#: src/tar.c:1546
+msgid "Invalid owner"
+msgstr "Jabe baliogabea"
+
+#: src/tar.c:1580
+msgid "Invalid record size"
+msgstr "Grabazio tamaina baliogabea"
+
+#: src/tar.c:1583
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Grabaszio tamaina %d-ren multiplo bat izan behar da."
+
+#: src/tar.c:1620
+msgid "Invalid number of elements"
+msgstr "Elementu kopuru baliogabea"
+
+#: src/tar.c:1640
+msgid "Only one --to-command option allowed"
+msgstr "--to-command aukera bat bakarrik onartzen da"
+
+#: src/tar.c:1716
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Gaizki eratutako dentsitate argumentua: %s"
+
+#: src/tar.c:1742
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Dentsitate Ezezaguna: `%c'"
+
+#: src/tar.c:1759
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr " `-[0-7][lmh]' aukerak ez dira onartzen tar *honetan*"
+
+#: src/tar.c:1794
+msgid "[FILE]..."
+msgstr "[FITXATEGIA]..."
+
+#: src/tar.c:1895
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "`%c' zaharkituriko aukerak argumentu bat behar du"
+
+#: src/tar.c:1978
+msgid "creating multi-volume archives in posix format requires using --tape-length (-L) option"
+msgstr ""
+
+#: src/tar.c:1984
+msgid "--occurrence is meaningless without a file list"
+msgstr ""
+
+#: src/tar.c:1990
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr ""
+
+#: src/tar.c:2020
+msgid "Multiple archive files require `-M' option"
+msgstr "Pakete fitxategi anitzentzat `-M' aukera erabili behar da"
+
+#: src/tar.c:2025
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Ezin dira --listed-incremental eta --newer batera erabili"
+
+#: src/tar.c:2042
+#, 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:2055
+msgid "Cannot verify multi-volume archives"
+msgstr "Ezin dira bolumen-anitzeko paketeak egiaztatu"
+
+#: src/tar.c:2057
+msgid "Cannot verify compressed archives"
+msgstr "Ezin dira konprimituriko fitxategiak egiaztatu"
+
+#: src/tar.c:2063
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Ezin dira bolumen anitzeko konprimituriko paketeak erabaili"
+
+#: src/tar.c:2069
+msgid "Cannot concatenate compressed archives"
+msgstr "Ezin dira konprimituriko paketeak kateatu"
+
+#: src/tar.c:2081
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option POSIX paketeekin bakarrik erabili daiteke"
+
+#: src/tar.c:2106
+msgid "Cowardly refusing to create an empty archive"
+msgstr ""
+
+#: src/tar.c:2127
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr " `-Aru' aukerak bateraezinak dira `-f -' rekin"
+
+#: src/tar.c:2153
+#, c-format
+msgid "Treating date `%s' as %s"
+msgstr ""
+
+#: src/tar.c:2208
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Behintzat `-Acdtrux' aukeretako bat ezarri behar duzu"
+
+#: src/tar.c:2262
+msgid "Error exit delayed from previous errors"
+msgstr "Errore irteera aurreko erroreak direla eta"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/xheader.c:160
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "%s gakoa ezezaguna da edo ez dago inplementaturik oraindik"
+
+#: src/xheader.c:186
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "%s patroia ezin da erabili"
+
+#: src/xheader.c:196
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "%s gakoa ezin da gainidatzi"
+
+#: src/xheader.c:499
+msgid "Malformed extended header: missing length"
+msgstr "Gaizki eratutako buru luzapena: luzera falta da"
+
+#: src/xheader.c:509
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr " %*s buru luzapen luzera eremuz kanpo dago"
+
+#: src/xheader.c:521
+msgid "Malformed extended header: missing blank after length"
+msgstr "Gaizki eratutako buru luzapena: luzera ondoren hutsunea falta da"
+
+#: src/xheader.c:529
+msgid "Malformed extended header: missing equal sign"
+msgstr "Gaizki eratutako buru luzapena: berdin ikurra falta da"
+
+#: src/xheader.c:535
+msgid "Malformed extended header: missing newline"
+msgstr "Gaizki eratutako buru luzapena: lerro berria falta da"
+
+#: src/xheader.c:572
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "alde batetara utzi gako buru luzapen ezezaguna `%s'"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:800
+#, 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:931 src/xheader.c:961 src/xheader.c:1244
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Gaizki eratutako buru luzapena: baliogabea %s=%s"
+
+#: src/xheader.c:1200 src/xheader.c:1223 src/xheader.c:1272
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Gaizki eratutako buru luzapena: gehiegizkoa %s=%s"
+
+#: src/xheader.c:1285
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Gaizki eratutako buru luzapena: %s baliogabea: %c mugatzaile esperodageba"
+
+#: src/xheader.c:1295
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Gaizki eratutako buru luzapena: %s baliogabea: balio kopuru bitxia"
+
+#: tests/genfile.c:109
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+
+#: tests/genfile.c:123
+msgid "File creation options:"
+msgstr "Pakete sortze aukerak:"
+
+#: tests/genfile.c:124 tests/genfile.c:135
+msgid "SIZE"
+msgstr "TAMAINA"
+
+#: tests/genfile.c:125
+msgid "Create file of the given SIZE"
+msgstr "Emandako TAMAINAko paketea sortu"
+
+#: tests/genfile.c:127
+msgid "Write to file NAME, instead of standard output"
+msgstr "Fitxategi IZENEAN idatzi irteera estandarren ordez"
+
+#: tests/genfile.c:129
+msgid "Read file names from FILE"
+msgstr "Fitxategi izenak PAKETEtik irakurri"
+
+#: tests/genfile.c:131
+msgid "-T reads null-terminated names"
+msgstr ""
+
+#: tests/genfile.c:133
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr ""
+
+#: tests/genfile.c:136
+msgid "Size of a block for sparse file"
+msgstr "Bloke tamaina fitxategi sakabanatuentzat"
+
+#: tests/genfile.c:138
+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:144
+msgid "File statistics options:"
+msgstr "Fixtategi estatistika aukerak:"
+
+#: tests/genfile.c:147
+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:154
+msgid "Synchronous execution options:"
+msgstr "Sinkronizatutako exekuzio aukerak:"
+
+#: tests/genfile.c:157
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr "Emandako KOMANDOA exekutatu. Erabilgarri --checkpoint eta hauetako batekin; --cut, --append, --touch"
+
+#: tests/genfile.c:160
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr ""
+
+#: tests/genfile.c:163
+msgid "Set date for next --touch option"
+msgstr "Ezarri data hurrengo --touch aukerarentzat"
+
+#: tests/genfile.c:166
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr ""
+
+#: tests/genfile.c:171
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr ""
+
+#: tests/genfile.c:174
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr ""
+
+#: tests/genfile.c:178
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr ""
+
+#: tests/genfile.c:181
+msgid "Update the access and modification times of FILE"
+msgstr "FITXATEGIAREN irakurketa eta eraldaketa denborak aldatu"
+
+#: tests/genfile.c:184
+msgid "Execute COMMAND"
+msgstr "KOMANDOA exekutatu"
+
+#: tests/genfile.c:227
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Tamaina baliogabea: %s"
+
+#: tests/genfile.c:241 tests/genfile.c:531
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) -ek huts egin du"
+
+#: tests/genfile.c:331
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Errorea zenbakia analizatzean hemendi gertu: `%s'"
+
+#: tests/genfile.c:337
+msgid "Unknown date format"
+msgstr "Data formatu ezezaguna"
+
+#: tests/genfile.c:360
+msgid "[ARGS...]"
+msgstr "[ARG...]"
+
+#: tests/genfile.c:398 tests/genfile.c:435 tests/genfile.c:485
+#: tests/genfile.c:637 tests/genfile.c:651
+#, c-format
+msgid "cannot open `%s'"
+msgstr "Ezin da `%s' ireki"
+
+#: tests/genfile.c:418
+msgid "file name contains null character"
+msgstr "fitxategia izenak karaktere baliogabea du"
+
+#: tests/genfile.c:482
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "ezin dira sakabanaturiko fitxategiaksortu irteera estandarrean. --file erabili"
+
+#: tests/genfile.c:558
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "maskara baliogabea (`%s'-etik gertu)"
+
+#: tests/genfile.c:566 tests/genfile.c:599
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "`%s' eremu ezezaguna"
+
+#: tests/genfile.c:626
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "ezin da `%s'-ren denbora ezarri"
+
+#: tests/genfile.c:780
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Komandoa behar bezala irten da\n"
+
+#: tests/genfile.c:782
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Komandoa %d egoerarekin huts egin du\n"
+
+#: tests/genfile.c:786
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Komandoa %d seinalearekin amaitu da\n"
+
+#: tests/genfile.c:788
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Komandoa %d seinalearekin geratu da\n"
+
+#: tests/genfile.c:791
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Komando iraulketa nagusia\n"
+
+#: tests/genfile.c:794
+#, c-format
+msgid "Command terminated\n"
+msgstr "Komandoa amaitua\n"
+
+#: tests/genfile.c:826
+msgid "--stat requires file names"
+msgstr "--stat -ek fitxategi izenak behar ditu"
+
+#: tests/genfile.c:839
+msgid "too many arguments"
+msgstr "argumentu gehiegi"
diff --git a/po/fi.po b/po/fi.po
new file mode 100644
index 00000000..a59e6135
--- /dev/null
+++ b/po/fi.po
@@ -0,0 +1,2890 @@
+# Finnish messages for GNU tar.
+# Copyright © 2002, 2003, 2004, 2006 Free Software Foundation, Inc.
+# Lauri Nurmi <lanurmi@iki.fi>, 2002-2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.16.1\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2006-12-08 13:25+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"
+"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"
+
+#: lib/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumentti %s on virheellinen %s:lle"
+
+#: lib/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argumentti %s on moniselitteinen %s:lle"
+
+#: lib/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Kelvolliset argumentit ovat:"
+
+#: lib/argp-help.c:148
+#, c-format
+msgid "ARGP_HELP_FMT: %s value is less than or equal to %s"
+msgstr ""
+
+#: lib/argp-help.c:221
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT-parametri vaatii arvon"
+
+#: lib/argp-help.c:227
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT-parametrin on oltava positiivinen"
+
+#: lib/argp-help.c:236
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Tuntematon ARGP_HELP_FMT-parametri"
+
+#: lib/argp-help.c:248
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Roskaa ARGP_HELP_FMT:ssä: %s"
+
+#: lib/argp-help.c:1229
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Pitkien valitsinten pakolliset tai valinnaiset argumentit ovat pakollisia tai valinnaisia myös vastaaville lyhyille."
+
+#: lib/argp-help.c:1622
+msgid "Usage:"
+msgstr "Käyttö:"
+
+#: lib/argp-help.c:1626
+msgid " or: "
+msgstr " tai: "
+
+#: lib/argp-help.c:1638
+msgid " [OPTION...]"
+msgstr " [VALITSIN...]"
+
+#: lib/argp-help.c:1665
+#, 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:1693 src/tar.c:1154
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Ilmoita ohjelmistovioista (englanniksi) osoitteeseen %s.\n"
+
+#: lib/argp-help.c:1912 lib/error.c:125
+msgid "Unknown system error"
+msgstr "Tuntematon järjestelmävirhe"
+
+#: lib/argp-parse.c:82 src/tar.c:721
+msgid "give this help list"
+msgstr "näytä tämä ohje"
+
+#: lib/argp-parse.c:83 src/tar.c:722
+msgid "give a short usage message"
+msgstr "näytä lyhyt käyttöohje"
+
+#: lib/argp-parse.c:84 src/tar.c:452 src/tar.c:454 src/tar.c:523
+#: tests/genfile.c:128
+msgid "NAME"
+msgstr "NIMI"
+
+#: lib/argp-parse.c:84
+msgid "set the program name"
+msgstr ""
+
+#: lib/argp-parse.c:85
+msgid "SECS"
+msgstr ""
+
+#: lib/argp-parse.c:86 src/tar.c:727
+msgid "hang for SECS seconds (default 3600)"
+msgstr ""
+
+#: lib/argp-parse.c:143 src/tar.c:723
+msgid "print program version"
+msgstr "näytä ohjelman versio"
+
+#: lib/argp-parse.c:159
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr ""
+
+#: lib/argp-parse.c:612
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Liian monta argumenttia\n"
+
+#: lib/argp-parse.c:755
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr ""
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: valitsin ”%s” on moniselitteinen\n"
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: valitsin ”--%s” ei salli argumenttia\n"
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, 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:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: valitsin ”%s” vaatii argumentin\n"
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: tunnistamaton valitsin ”--%s”\n"
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: tunnistamaton valitsin ”%c%s”\n"
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: virheellinen valitsin -- %c\n"
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: virheellinen valitsin -- %c\n"
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: valitsin vaatii argumentin -- %c\n"
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: valitsin ”-W %s” on moniselitteinen\n"
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: valitsin ”-W %s” ei salli argumenttia\n"
+
+#: lib/human.c:477
+msgid "block size"
+msgstr "lohkokoko"
+
+#: lib/obstack.c:424 lib/obstack.c:426 lib/xalloc-die.c:35 src/extract.c:1373
+msgid "memory exhausted"
+msgstr "muisti lopussa"
+
+# 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:132
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Poistetaan ”%s” tiedostonimien alusta"
+
+#: lib/paxnames.c:133
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Poistetaan ”%s” kovien linkkien kohdenimien alusta"
+
+#: lib/paxnames.c:146
+msgid "Substituting `.' for empty member name"
+msgstr "Korvataan ”.” tyhjällä tiedostonimellä"
+
+#: lib/paxnames.c:147
+msgid "Substituting `.' for empty hard link target"
+msgstr "Korvataan ”.” tyhjällä kovan linkin kohteella"
+
+#. 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.
+#: lib/quotearg.c:245
+msgid "`"
+msgstr "”"
+
+#: lib/quotearg.c:246
+msgid "'"
+msgstr "”"
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr "^[kKyY]"
+
+#: lib/rpmatch.c:73
+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
+#, c-format
+msgid "stdout"
+msgstr "vakiotuloste"
+
+#: lib/rtapelib.c:512
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Etäkuorta ei voi käynnistää"
+
+#: rmt/rmt.c:142
+msgid "Input string too long"
+msgstr ""
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr ""
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Puskuritilaa ei voi varata\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr "Puskuritilaa ei voi varata"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Komento ”%s --help” antaa lisää tietoa.\n"
+
+#: rmt/rmt.c:308
+#, 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 ""
+"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:315
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Ohjelmistovioista voi ilmoittaa (englanniksi) osoitteeseen\n"
+"<%s>.\n"
+
+#: rmt/rmt.c:397
+#, fuzzy
+msgid "Seek offset error"
+msgstr "Siirtymä sallitun välin ulkopuolella"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+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:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Ennenaikainen tiedoston loppu\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "Ennenaikainen tiedoston loppu"
+
+#: rmt/rmt.c:672
+msgid "Garbage command"
+msgstr "Roskakomento"
+
+#: src/buffer.c:317 src/buffer.c:326
+msgid "Total bytes written"
+msgstr "Kirjoitettuja tavuja yhteensä"
+
+#: src/buffer.c:324 src/buffer.c:338
+msgid "Total bytes read"
+msgstr ""
+
+#: src/buffer.c:328
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Poistettuja tavuja yhteensä: %s\n"
+
+#: src/buffer.c:417
+msgid "(pipe)"
+msgstr "(putki)"
+
+#: src/buffer.c:440
+msgid "Invalid value for record_size"
+msgstr "Virheellinen arvo kentälle record_size"
+
+#: src/buffer.c:443
+msgid "No archive name given"
+msgstr "Arkiston nimeä ei ole annettu"
+
+#: src/buffer.c:487
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Vakiosyötteessä/tulosteessa olevaa arkistoa ei voi varmistaa"
+
+#: src/buffer.c:500
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arkisto on tiivistetty. Käytä valitsinta %s"
+
+#: src/buffer.c:547 src/tar.c:2153
+msgid "Cannot update compressed archives"
+msgstr "Pakattuja arkistoja ei voi päivittää"
+
+#. 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/buffer.c:597
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Kirjoituksen tarkistuspiste %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/buffer.c:603
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Lukemisen tarkistuspiste %u"
+
+#: src/buffer.c:655
+msgid "At beginning of tape, quitting now"
+msgstr "Nauhan alussa, lopetetaan"
+
+#: src/buffer.c:661
+msgid "Too many errors, quitting"
+msgstr "Liian monta virhettä, lopetetaan"
+
+#: src/buffer.c:689
+#, 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:709
+#, 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:782
+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:814
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek ei pysähtynyt tietueen rajalle"
+
+#: src/buffer.c:870
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: sisältää virheellisen arkiston osan järjestysnumeron"
+
+#: src/buffer.c:905
+msgid "Volume number overflow"
+msgstr "Arkisto-osan järjestysnumeron ylivuoto"
+
+#: src/buffer.c:920
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Valmistele osa #%d arkistolle %s ja paina return: "
+
+#: src/buffer.c:926
+msgid "EOF where user reply was expected"
+msgstr "Tiedoston loppu odotetun käyttäjän syötteen sijaan"
+
+#: src/buffer.c:931 src/buffer.c:963
+msgid "WARNING: Archive is incomplete"
+msgstr "VAROITUS: Arkisto on epätäydellinen"
+
+#: src/buffer.c:945
+#, 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 nimi Anna uusi tiedostonimi seuraavalle (ja tuleville) arkiston\n"
+" osalle/osille\n"
+" q Keskeytä tar\n"
+" y tai rivinv. Jatka suoritusta\n"
+
+#: src/buffer.c:950
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Käynnistä alikuori\n"
+
+#: src/buffer.c:951
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Näytä tämä lista\n"
+
+#: src/buffer.c:958
+msgid "No new volume; exiting.\n"
+msgstr "Ei uutta arkiston osaa, poistutaan.\n"
+
+#: src/buffer.c:991
+msgid "File name not specified. Try again.\n"
+msgstr "Tiedostonimeä ei annettu. Yritä uudelleen.\n"
+
+#: src/buffer.c:1004
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr ""
+
+#: src/buffer.c:1055
+#, c-format
+msgid "%s command failed"
+msgstr "Komento %s epäonnistui"
+
+#: src/buffer.c:1117 src/delete.c:210 src/list.c:168 src/update.c:165
+msgid "This does not look like a tar archive"
+msgstr "Tämä ei näytä tar-arkistolta"
+
+#: src/buffer.c:1211
+#, 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:1215
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s ei jatku tällä arkiston osalla"
+
+#: src/buffer.c:1229
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s on väärän kokoinen (%s ≠ %s + %s)"
+
+#: src/buffer.c:1239
+msgid "This volume is out of sequence"
+msgstr "Tämä arkiston osa ei ole järjestyksessä"
+
+#: src/buffer.c:1285
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arkistoa ei ole nimetty täsmää nimiöön %s"
+
+#: src/buffer.c:1288
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Arkiston osa %s ei täsmää nimiöön %s"
+
+#: src/buffer.c:1384
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: tiedostonimi on liian pitkä tallennettavaksi moniosaisen GNU-arkiston otsakkeeseen; nimi typistetty"
+
+#: src/compare.c:96
+#, 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:122
+msgid "Contents differ"
+msgstr "Sisällöt eroavat"
+
+#: src/compare.c:149 src/extract.c:790 src/incremen.c:1191 src/list.c:373
+#: src/list.c:1285
+msgid "Unexpected EOF in archive"
+msgstr "Odottamaton tiedoston loppu arkistossa"
+
+#: src/compare.c:197 src/compare.c:213 src/compare.c:331 src/compare.c:395
+msgid "File type differs"
+msgstr "Tiedoston tyyppi eroaa"
+
+#: src/compare.c:200 src/compare.c:220 src/compare.c:345
+msgid "Mode differs"
+msgstr "Tila eroaa"
+
+#: src/compare.c:223
+msgid "Uid differs"
+msgstr "UID eroaa"
+
+#: src/compare.c:225
+msgid "Gid differs"
+msgstr "GID eroaa"
+
+#: src/compare.c:229
+msgid "Mod time differs"
+msgstr "Muutosaika eroaa"
+
+#: src/compare.c:233 src/compare.c:403
+msgid "Size differs"
+msgstr "Koko eroaa"
+
+#: src/compare.c:287
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ei ole linkitetty tiedostoon %s"
+
+#: src/compare.c:310
+msgid "Symlink differs"
+msgstr "Symlinkki eroaa"
+
+#: src/compare.c:339
+msgid "Device number differs"
+msgstr "Laitenumero eroaa"
+
+#: src/compare.c:445
+#, c-format
+msgid "Verify "
+msgstr "Tarkasta "
+
+#: src/compare.c:452
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Tuntematon tiedostotyyppi ”%c”, vertailtu normaalina tiedostona"
+
+# Mitäh?
+#: src/compare.c:508
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arkisto sisältää tiedostonimiä, joiden etuliitteet on poistettu."
+
+#: src/compare.c:510
+msgid "Verification may fail to locate original files."
+msgstr "Tarkastus ei ehkä löydä alkuperäisiä tiedostoja."
+
+#: src/compare.c:580
+#, 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/create.c:85
+#, fuzzy, c-format
+msgid "%s: contains a cache directory tag %s; not dumped"
+msgstr "%s: näyttää välimuistihakemistolta, ei lisätä"
+
+#: src/create.c:226
+#, 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:232
+#, 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:292
+msgid "Generating negative octal headers"
+msgstr "Luodaan otsakkeet negatiivisilla oktaaleilla"
+
+#: src/create.c:578 src/create.c:641
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: tiedostonimi on liian pitkä (maksimi %d), ei lisätä"
+
+#: src/create.c:588
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: tiedostonimi on liian pitkä (ei voida jakaa), ei lisätä"
+
+#: src/create.c:615
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: linkin nimi on liian pitkä, ei lisätä"
+
+#: src/create.c:1031
+#, 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:1172
+#, 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:1327
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tuntematon tiedostotyyppi, tiedostoa ei huomioida"
+
+#: src/create.c:1428
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "Puuttuvat linkit tiedostoon %s.\n"
+
+#: src/create.c:1499
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: tiedosto on muuttumaton, ei lisätä"
+
+#: src/create.c:1507
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: tiedosto on arkistossa, ei lisätä"
+
+#: src/create.c:1537
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Tiedosto oli poistettu ennen sen lukemista"
+
+#: src/create.c:1555
+#, c-format
+msgid "%s: contains a cache directory tag; not dumped"
+msgstr "%s: näyttää välimuistihakemistolta, ei lisätä"
+
+#: src/create.c:1625
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: tiedosto muuttui lukemisen aikana"
+
+#: src/create.c:1704
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: pistoketta ei huomioida"
+
+#: src/create.c:1709
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: ovea ei huomioida"
+
+#: src/delete.c:216 src/list.c:182 src/update.c:170
+msgid "Skipping to next header"
+msgstr "Siirrytään seuraavaan otsakkeeseen"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "Poistetaan epäotsake arkistosta"
+
+#: src/extract.c:198
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: epätodennäköisen vanha aikaleima %s"
+
+#: src/extract.c:215
+#, 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
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Odottamaton ristiriita luotaessa hakemistoa"
+
+#: src/extract.c:588
+#, 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
+msgid "Extracting contiguous files as regular files"
+msgstr "Puretaan jatkuvat tiedostot normaaleiksi tiedostoiksi"
+
+#: src/extract.c:996
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Yritetään purkaa symboliset linkit koviksi linkeiksi"
+
+#: src/extract.c:1053
+#, c-format
+msgid "Reading %s\n"
+msgstr "Luetaan %s\n"
+
+#: src/extract.c:1142
+#, 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:1149 src/list.c:1052
+#, fuzzy
+msgid "Unexpected long name header"
+msgstr "Odottamaton tiedoston loppu sovitetuissa nimissä"
+
+#: src/extract.c:1155
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Tuntematon tiedostotyyppi ”%c”, purettiin normaaliksi tiedostoksi"
+
+#: src/extract.c:1180
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Nykyinen %s on uudempi tai yhtä vanha"
+
+#: src/extract.c:1226
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Tätä tiedostoa ei voitu varmuuskopioida"
+
+#: src/extract.c:1354
+#, fuzzy, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s: Uudelleennimeäminen nimelle %s ei onnistu"
+
+#: src/extract.c:1366
+#, c-format
+msgid "Error is not recoverable: exiting now"
+msgstr "Virhe ei ole korjattavissa, poistutaan nyt"
+
+#: src/incremen.c:260 src/incremen.c:300
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Hakemisto %s on nimetty uudelleen"
+
+#: src/incremen.c:270
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Hakemisto on nimetty uudelleen"
+
+#: src/incremen.c:311
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Hakemisto on uusi"
+
+#: src/incremen.c:697 src/incremen.c:714
+msgid "Invalid time stamp"
+msgstr "Virheellinen aikaleima"
+
+#: src/incremen.c:753
+msgid "Invalid modification time (seconds)"
+msgstr "Virheellinen muutosaika (sekunnit)"
+
+#: src/incremen.c:768
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Virheellinen muutosaika (nanosekunnit)"
+
+#: src/incremen.c:788
+msgid "Invalid device number"
+msgstr "Virheellinen laitenumero"
+
+#: src/incremen.c:803
+msgid "Invalid inode number"
+msgstr "Virheellinen i-solmun numero"
+
+#: src/incremen.c:854 src/incremen.c:891
+msgid "Field too long while reading snapshot file"
+msgstr ""
+
+#: src/incremen.c:861 src/incremen.c:899
+msgid "Read error in snapshot file"
+msgstr ""
+
+#: src/incremen.c:863 src/incremen.c:903 src/incremen.c:955
+#: src/incremen.c:1013
+#, fuzzy
+msgid "Unexpected EOF in snapshot file"
+msgstr "Odottamaton tiedoston loppu arkistossa"
+
+#: src/incremen.c:870 src/incremen.c:910
+msgid "Unexpected field value in snapshot file"
+msgstr ""
+
+#: src/incremen.c:1005
+msgid "Missing record terminator"
+msgstr ""
+
+#: src/incremen.c:1056 src/incremen.c:1059
+msgid "Bad incremental file format"
+msgstr ""
+
+#: src/incremen.c:1078
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr ""
+
+#: src/incremen.c:1231
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr ""
+
+#: src/incremen.c:1241
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr ""
+
+#: src/incremen.c:1254
+#, fuzzy
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Kelvoton tiheysargumentti: ”%s”"
+
+#: src/incremen.c:1267
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr ""
+
+#: src/incremen.c:1273
+#, fuzzy
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Kelvoton tiheysargumentti: ”%s”"
+
+#: src/incremen.c:1293
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr ""
+
+#: src/incremen.c:1299
+msgid "Malformed dumpdir: 'X' never used"
+msgstr ""
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Väliaikaishakemiston luominen %s-mallia käyttäen ei onnistu"
+
+#: src/incremen.c:1390
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Ei poisteta hakemistoa: stat ei onnistu"
+
+#: src/incremen.c:1403
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: hakemisto on eri laitteella, ei poisteta"
+
+#: src/incremen.c:1411
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Poistetaan %s\n"
+
+#: src/incremen.c:1416
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ei voi poistaa"
+
+#: src/list.c:114
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Jätetään pois"
+
+#: src/list.c:132
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "lohko %s: ** NUL-lohko **\n"
+
+#: src/list.c:145
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Yksinäinen nollalohko kohdassa %s"
+
+#: src/list.c:156
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "lohko %s: ** Tiedoston loppu **\n"
+
+#: src/list.c:179 src/list.c:1025 src/list.c:1253
+#, c-format
+msgid "block %s: "
+msgstr "lohko %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:633
+#, 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:688
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Arkiston oktaaliarvo %.*s on sallitun %s-välin ulkopuolella, oletetaan kahden komplementiksi"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:699
+#, 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:720
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arkisto sisältää käytöstä poistuvia base-64-otsakkeita"
+
+#: src/list.c:734
+#, 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:765
+#, 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:794
+#, 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:816
+#, 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:1188
+#, c-format
+msgid " link to %s\n"
+msgstr " linkki tiedostoon %s\n"
+
+#: src/list.c:1196
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tuntematon tiedostotyyppi %s\n"
+
+#: src/list.c:1214
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Pitkä linkki--\n"
+
+#: src/list.c:1218
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Pitkä nimi--\n"
+
+#: src/list.c:1222
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Arkiston osan otsake--\n"
+
+#: src/list.c:1230
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Jatkuu tavusta %s--\n"
+
+#: src/list.c:1258
+msgid "Creating directory:"
+msgstr "Luodaan hakemisto:"
+
+#: src/misc.c:458
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Nimetään uudelleen %s -> %s\n"
+
+#: src/misc.c:467 src/misc.c:485
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Uudelleennimeäminen nimelle %s ei onnistu"
+
+#: src/misc.c:490
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Nimetään %s takaisin nimelle %s\n"
+
+#: src/misc.c:632
+msgid "Cannot save working directory"
+msgstr "Työhakemistoa ei voi tallentaa"
+
+#: src/misc.c:638
+msgid "Cannot change working directory"
+msgstr "Työhakemistoa ei voi vaihtaa"
+
+#: src/misc.c:728
+msgid "child process"
+msgstr "lapsiprosessi"
+
+#: src/misc.c:737
+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:600
+msgid "Pattern matching characters used in file names. Please,"
+msgstr "Tiedostonimissä on käytetty jokerimerkkejä. Käytä"
+
+#: src/names.c:602
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+msgstr "valitsinta --wildcards täsmäyksen käyttöön ottamiseksi, tai"
+
+#: src/names.c:604
+msgid "suppress this warning."
+msgstr "--no-wildcards tämän varoituksen vaientamiseksi."
+
+#: 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:622
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Vaadittua esiintymää ei löytynyt arkistosta"
+
+#: src/tar.c:80
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Kumpikin valitsimista ”-%s” ja ”-%s” käyttää vakiosyötettä"
+
+#: src/tar.c:157
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Virheellinen arkistomuoto"
+
+#: src/tar.c:181
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Haluttiin käyttää GNU-ominaisuuksia yhteensopimattoman arkistomuodon kanssa"
+
+#: src/tar.c:242
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr ""
+
+#: src/tar.c:325
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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” tallentaa useita tiedostoja yhteen nauha- tai levyarkistoon, ja\n"
+"pystyy palauttamaan yksittäisiä tiedostoja arkistosta.\n"
+"\n"
+"Esimerkkejä:\n"
+" %s -cf arkisto.tar foo bar # Luo arkisto.tar tiedostoista foo ja bar.\n"
+" %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:334
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Varmuuskopion jälkiliite on ”~”, ellei sitä ole asetettu valitsimella\n"
+"--suffix tai muuttujalla SIMPLE_BACKUP_SUFFIX. Versionhallintaa voidaan\n"
+"säätää valitsimella --backup tai muuttujalla VERSION_CONTROL; arvot ovat:\n"
+"\n"
+" none, off älä tee varmuuskopioita koskaan\n"
+" t, numbered tee numeroituja varmuuskopioita\n"
+" nil, existing numeroituja, jos numeroituja varmuuskopioita on olemassa,\n"
+" muuten yksinkertaisia\n"
+" never, simple tee aina yksinkertaisia varmuuskopioita\n"
+
+#: src/tar.c:360
+msgid "Main operation mode:"
+msgstr "Päätoimintatila:"
+
+#: src/tar.c:363
+msgid "list the contents of an archive"
+msgstr "listaa arkiston sisältö"
+
+#: src/tar.c:365
+msgid "extract files from an archive"
+msgstr "pura tiedostoja arkistosta"
+
+#: src/tar.c:368
+msgid "create a new archive"
+msgstr "luo uusi arkisto"
+
+#: src/tar.c:370
+msgid "find differences between archive and file system"
+msgstr "etsi arkiston ja tiedostojärjestelmän väliset erot"
+
+#: src/tar.c:373
+msgid "append files to the end of an archive"
+msgstr "lisää tiedostoja arkiston loppuun"
+
+#: src/tar.c:375
+msgid "only append files newer than copy in archive"
+msgstr "lisää vain arkistokopiota uudemmat tiedostot"
+
+#: src/tar.c:377
+msgid "append tar files to an archive"
+msgstr "lisää tar-tiedostoja arkistoon"
+
+#: src/tar.c:380
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "poista tiedostoja arkistosta (ei toimi magneettinauhoilla!)"
+
+#: src/tar.c:382
+msgid "test the archive volume label and exit"
+msgstr ""
+
+#: src/tar.c:387
+msgid "Operation modifiers:"
+msgstr "Toimintovalinnat:"
+
+#: src/tar.c:390
+msgid "handle sparse files efficiently"
+msgstr "käsittele harvat tiedostot tehokkaasti"
+
+#: src/tar.c:391
+msgid "MAJOR[.MINOR]"
+msgstr ""
+
+#: src/tar.c:392
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr ""
+
+#: src/tar.c:394
+msgid "handle old GNU-format incremental backup"
+msgstr "käsittele vanha GNU-muotoinen lisääntyvä varmuuskopio"
+
+#: src/tar.c:395 src/tar.c:526 src/tar.c:590 src/tar.c:594 src/tar.c:604
+#: src/tar.c:608 src/tar.c:683 tests/genfile.c:130 tests/genfile.c:178
+#: tests/genfile.c:182 tests/genfile.c:185
+msgid "FILE"
+msgstr "TIED"
+
+#: src/tar.c:396
+msgid "handle new GNU-format incremental backup"
+msgstr "käsittele uusi GNU-muotoinen lisääntyvä varmuuskopio"
+
+#: src/tar.c:398
+msgid "do not exit with nonzero on unreadable files"
+msgstr "jatka lukukelvottomista tiedostoista huolimatta"
+
+#: src/tar.c:399 src/tar.c:521 src/tar.c:536 src/tar.c:636 tests/genfile.c:164
+msgid "NUMBER"
+msgstr "MÄÄRÄ"
+
+#: src/tar.c:400
+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 "käsittele vain kunkin tiedoston MÄÄRÄ-järjestyslukuinen esiintymä arkistossa; tämä valitsin on kelvollinen vain yhdessä alikomentojen --delete, --diff, --extract tai --list kanssa, ja kun luettelo tiedostoista on annettu komentirivillä tai -T-valitsimella; oletusMÄÄRÄ on 1"
+
+# Muualla seek on siirtymistä...
+#: src/tar.c:406
+msgid "archive is seekable"
+msgstr "arkisto on selattava"
+
+#: src/tar.c:411
+msgid "Overwrite control:"
+msgstr ""
+
+#: src/tar.c:414
+msgid "attempt to verify the archive after writing it"
+msgstr "yritä varmistaa arkisto kirjoittamisen jälkeen"
+
+#: src/tar.c:416
+msgid "remove files after adding them to the archive"
+msgstr "poista tiedostot arkistoon lisäämisen jälkeen"
+
+#: src/tar.c:418
+msgid "don't replace existing files when extracting"
+msgstr "älä korvaa olemassaolevia tiedostoja purettaessa"
+
+#: src/tar.c:420
+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:422
+msgid "overwrite existing files when extracting"
+msgstr "ylikirjoita olemassaolevat tiedostot purettaessa"
+
+#: src/tar.c:424
+msgid "remove each file prior to extracting over it"
+msgstr "poista jokainen tiedosto ennen sen päälle purkamista"
+
+#: src/tar.c:426
+msgid "empty hierarchies prior to extracting directory"
+msgstr "tyhjennä rakenne ennen hakemiston purkamista"
+
+#: src/tar.c:428
+msgid "preserve metadata of existing directories"
+msgstr "säilytä olemassaolevien hakemistojen metatiedot"
+
+#: src/tar.c:430
+#, fuzzy
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "ylikirjoita olemassaolevat tiedostot purettaessa"
+
+#: src/tar.c:436
+msgid "Select output stream:"
+msgstr "Valitse tulostusvirta:"
+
+#: src/tar.c:439
+msgid "extract files to standard output"
+msgstr "pura tiedostot vakiotulosteeseen"
+
+#: src/tar.c:440 src/tar.c:499 src/tar.c:501 tests/genfile.c:161
+#: tests/genfile.c:188
+msgid "COMMAND"
+msgstr "KOMENTO"
+
+#: src/tar.c:441
+msgid "pipe extracted files to another program"
+msgstr "putkita puretut tiedostot toiselle ohjelmalle"
+
+#: src/tar.c:443
+msgid "ignore exit codes of children"
+msgstr "jätä lapsiprosessien paluuarvot huomiotta"
+
+#: src/tar.c:445
+msgid "treat non-zero exit codes of children as error"
+msgstr "käsittele lapsiprosessien nollasta poikkeavat paluuarvot virheinä"
+
+#: src/tar.c:450
+msgid "Handling of file attributes:"
+msgstr "Tiedostojen ominaisuuksien käsittely:"
+
+#: src/tar.c:453
+msgid "force NAME as owner for added files"
+msgstr "pakota NIMI lisättyjen tiedostojen omistajaksi"
+
+#: src/tar.c:455
+msgid "force NAME as group for added files"
+msgstr "pakota NIMI lisättyjen tiedostojen ryhmäksi"
+
+#: src/tar.c:456 src/tar.c:622
+msgid "DATE-OR-FILE"
+msgstr "PÄIVÄYS-TAI-TIED"
+
+#: src/tar.c:457
+#, fuzzy
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "tallenna vain PÄIVÄYS-TAI-TIEDostoa uudemmat tiedostot"
+
+#: src/tar.c:458
+msgid "CHANGES"
+msgstr "MUUTOS"
+
+#: src/tar.c:459
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "pakota (symbolinen) tila MUUTOS lisätyille"
+
+#: src/tar.c:461
+msgid "METHOD"
+msgstr ""
+
+#: src/tar.c:462
+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:466
+msgid "don't extract file modified time"
+msgstr "älä pura tiedoston muutosaikaa"
+
+#: src/tar.c:468
+msgid "try extracting files with the same ownership"
+msgstr "yritä purkaa tiedostot samalla omistajuudella"
+
+#: src/tar.c:470
+msgid "extract files as yourself"
+msgstr "pura tiedostot itsenäsi"
+
+#: src/tar.c:472
+msgid "always use numbers for user/group names"
+msgstr "käytä aina numeroita käyttäjän/ryhmän nimissä"
+
+#: src/tar.c:474
+msgid "extract information about file permissions (default for superuser)"
+msgstr ""
+
+#: src/tar.c:478
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr ""
+
+#: src/tar.c:480
+msgid "sort names to extract to match archive"
+msgstr "lajittele purettavat tiedostonimet täsmäämään arkistoon"
+
+#: src/tar.c:483
+msgid "same as both -p and -s"
+msgstr "sama kuin -p ja -s yhdessä"
+
+#: src/tar.c:485
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr ""
+
+#: src/tar.c:488
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr ""
+
+#: src/tar.c:493
+#, fuzzy
+msgid "Device selection and switching:"
+msgstr "Laitteen valinta ja vaihtaminen:\n"
+
+#: src/tar.c:495
+msgid "ARCHIVE"
+msgstr "ARKISTO"
+
+#: src/tar.c:496
+msgid "use archive file or device ARCHIVE"
+msgstr "käytä arkistotiedostoa tai -laitetta ARKISTO"
+
+#: src/tar.c:498
+msgid "archive file is local even if it has a colon"
+msgstr "arkisto on paikallinen vaikka nimessä olisi kaksoispiste"
+
+#: src/tar.c:500
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "käytä rmt-KOMENTOA rmt:n sijaan"
+
+#: src/tar.c:502
+msgid "use remote COMMAND instead of rsh"
+msgstr "käytä etäKOMENTOa rsh:n sijaan"
+
+#: src/tar.c:506
+msgid "specify drive and density"
+msgstr "anna asema ja tiheys"
+
+#: src/tar.c:520
+msgid "create/list/extract multi-volume archive"
+msgstr "luo/listaa/pura moniosainen arkisto"
+
+#: src/tar.c:522
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "vaihda nauhaa MÄÄRÄ × 1024 kirjoitetun tavun jälkeen"
+
+#: src/tar.c:524
+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:527
+msgid "use/update the volume number in FILE"
+msgstr "käytä/päivitä arkiston osan numero TIEDostossa"
+
+#: src/tar.c:532
+msgid "Device blocking:"
+msgstr "Laitteen lohkot:"
+
+#: src/tar.c:534
+msgid "BLOCKS"
+msgstr "LOHKOT"
+
+#: src/tar.c:535
+msgid "BLOCKS x 512 bytes per record"
+msgstr "LOHKOT × 512 tavua tietuetta kohti"
+
+#: src/tar.c:537
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "MÄÄRÄ tavua tietuetta kohti, 512:n monikerta"
+
+#: src/tar.c:539
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "älä huomioi nollattuja lohkoja arkistossa (merkitsee tiedoston loppua)"
+
+#: src/tar.c:541
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "suorita lohkominen uudelleen luettaessa (4.2BSD-putkia varten)"
+
+#: src/tar.c:546
+msgid "Archive format selection:"
+msgstr "Arkistomuodon valinta:"
+
+#: src/tar.c:548 tests/genfile.c:151
+msgid "FORMAT"
+msgstr "MUOTO"
+
+#: src/tar.c:549
+msgid "create archive of the given format"
+msgstr "luo annetun muotoinen arkisto"
+
+#: src/tar.c:551
+msgid "FORMAT is one of the following:"
+msgstr "MUOTO on yksi seuraavista:"
+
+#: src/tar.c:552
+msgid "old V7 tar format"
+msgstr "vanha V7-tar-muoto"
+
+#: src/tar.c:555
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU-muoto tar-versioilla ≤ 1.12"
+
+#: src/tar.c:557
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x -muoto"
+
+#: src/tar.c:559
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) -muoto"
+
+#: src/tar.c:561
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) -muoto"
+
+#: src/tar.c:562
+msgid "same as pax"
+msgstr "sama kuin pax"
+
+#: src/tar.c:565
+msgid "same as --format=v7"
+msgstr "sama kuin --format=v7"
+
+#: src/tar.c:568
+msgid "same as --format=posix"
+msgstr "sama kuin --format=posix"
+
+#: src/tar.c:569
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "avainsana[[:]=arvo][,avainsana[[:]=arvo]]..."
+
+#: src/tar.c:570
+msgid "control pax keywords"
+msgstr "määrittele pax-avainsanoja"
+
+#: src/tar.c:571
+msgid "TEXT"
+msgstr "TEKSTI"
+
+#: src/tar.c:572
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "luo arkisto nimiöllä TEKSTI. Listattaessa/purettaessa käytä TEKSTIä nimiönhakulausekkeena"
+
+#: src/tar.c:574
+msgid "filter the archive through bzip2"
+msgstr "ohjaa arkisto bzip2-ohjelman läpi"
+
+#: src/tar.c:576
+msgid "filter the archive through gzip"
+msgstr "ohjaa arkisto gzip-ohjelman läpi"
+
+#: src/tar.c:580
+msgid "filter the archive through compress"
+msgstr "ohjaa arkisto compress-ohjelman läpi"
+
+#: src/tar.c:582
+msgid "PROG"
+msgstr "OHJ"
+
+#: src/tar.c:583
+msgid "filter through PROG (must accept -d)"
+msgstr "ohjaa OHJelman läpi (on hyväksyttävä -d)"
+
+#: src/tar.c:588
+msgid "Local file selection:"
+msgstr "Paikallisten tiedostojen valinta:"
+
+#: src/tar.c:591
+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:592
+msgid "DIR"
+msgstr "HAK"
+
+#: src/tar.c:593
+msgid "change to directory DIR"
+msgstr "siirry hakemistoon HAK"
+
+#: src/tar.c:595
+msgid "get names to extract or create from FILE"
+msgstr "hae purettavat/luotavat nimet TIEDOSTOsta"
+
+#: src/tar.c:597
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T lukee nollaan päättyviä nimiä, poistaa käytöstä -C:n"
+
+#: src/tar.c:599
+msgid "unquote filenames read with -T (default)"
+msgstr ""
+
+#: src/tar.c:601
+msgid "do not unquote filenames read with -T"
+msgstr ""
+
+#: src/tar.c:602 tests/genfile.c:134
+msgid "PATTERN"
+msgstr "HAHMO"
+
+#: src/tar.c:603
+msgid "exclude files, given as a PATTERN"
+msgstr "jätä pois HAHMOn mukaiset tiedostot"
+
+#: src/tar.c:605
+msgid "exclude patterns listed in FILE"
+msgstr "jätä pois TIEDOSTOssa listatut hahmot"
+
+#: src/tar.c:607
+msgid "exclude directories containing a cache tag"
+msgstr "jätä pois välimuistihakemistot"
+
+#: src/tar.c:609
+msgid "exclude directories containing FILE"
+msgstr "jätä pois TIEDOSTOn sisältävät hakemistot"
+
+#: src/tar.c:611
+msgid "avoid descending automatically in directories"
+msgstr "estä automaattinen eteneminen alihakemistoihin"
+
+#: src/tar.c:613
+msgid "stay in local file system when creating archive"
+msgstr "pysy nykyisessä tiedostojärjestelmässä arkistoa luotaessa"
+
+#: src/tar.c:615
+msgid "recurse into directories (default)"
+msgstr "etene alihakemistoihin (oletus)"
+
+#: src/tar.c:617
+msgid "don't strip leading `/'s from file names"
+msgstr "älä poista ”/”-merkkiä tiedostonimien alusta"
+
+#: src/tar.c:619
+#, fuzzy
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "seuraa symlinkkejä; "
+
+#: src/tar.c:620
+msgid "MEMBER-NAME"
+msgstr "TIED-NIMI"
+
+#: src/tar.c:621
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "aloita arkiston tiedostosta TIED-NIMI"
+
+#: src/tar.c:623
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "tallenna vain PÄIVÄYS-TAI-TIEDostoa uudemmat tiedostot"
+
+#: src/tar.c:625
+msgid "DATE"
+msgstr "PÄIVÄYS"
+
+#: src/tar.c:626
+msgid "compare date and time when data changed only"
+msgstr "vertaa vain tiedoston muutosaikaa"
+
+#: src/tar.c:627
+msgid "CONTROL"
+msgstr "HALLINTA"
+
+#: src/tar.c:628
+msgid "backup before removal, choose version CONTROL"
+msgstr "varmuuskopiointi ennen poistoa, valitse versionHALLINTA"
+
+#: src/tar.c:629 src/tar.c:700 src/tar.c:702 tests/genfile.c:167
+msgid "STRING"
+msgstr "MERKKIJONO"
+
+#: src/tar.c:630
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "varmuuskopiointi ennen poistoa, älä käytä tavanomaista jälkiliitettä (joka on ”~”, ellei muuttujaa SIMPLE_BACKUP_SUFFIX ole asetettu)"
+
+#: src/tar.c:635
+msgid "File name transformations:"
+msgstr ""
+
+#: src/tar.c:637
+#, fuzzy
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "poista MÄÄRÄn verran osia tiedostonimien alusta"
+
+#: src/tar.c:639
+msgid "EXPRESSION"
+msgstr ""
+
+#: src/tar.c:640
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr ""
+
+#: src/tar.c:645
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr ""
+
+#: src/tar.c:648
+#, fuzzy
+msgid "ignore case"
+msgstr "poisjättäminen ei huomioi kirjainkokoa"
+
+#: src/tar.c:650
+#, fuzzy
+msgid "patterns match file name start"
+msgstr "poisjättöhahmoja verrataan nimen alkuun"
+
+#: src/tar.c:652
+#, fuzzy
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "poisjättöhahmoja verrataan jokaisen ”/”:n jälkeen"
+
+#: src/tar.c:654
+#, fuzzy
+msgid "case sensitive matching (default)"
+msgstr "poisjättäminen huomioi kirjainkoon (oletus)"
+
+#: src/tar.c:656
+msgid "use wildcards (default for exclusion)"
+msgstr ""
+
+#: src/tar.c:658
+msgid "verbatim string matching"
+msgstr ""
+
+#: src/tar.c:660
+#, fuzzy
+msgid "wildcards do not match `/'"
+msgstr "poisjättöhahmon jokerimerkit eivät täsmää ”/”-merkkiin"
+
+#: src/tar.c:662
+#, fuzzy
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "poisjättöhahmon jokerimerkit vastaavat merkkiä ”/”"
+
+#: src/tar.c:667
+msgid "Informative output:"
+msgstr "Tietoja antava tuloste:"
+
+#: src/tar.c:670
+msgid "verbosely list files processed"
+msgstr "listaa käsiteltävät tiedostot"
+
+#: src/tar.c:671
+#, fuzzy
+msgid "[.]NUMBER"
+msgstr "MÄÄRÄ"
+
+#: src/tar.c:672
+#, fuzzy
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "näytä edistymisviesti 10 sekunnin välein"
+
+#: src/tar.c:675
+msgid "print a message if not all links are dumped"
+msgstr "näytä viesti, ellei kaikkia linkkejä lisätty"
+
+#: src/tar.c:676
+msgid "SIGNAL"
+msgstr ""
+
+#: src/tar.c:677
+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 ""
+
+#: src/tar.c:682
+msgid "print file modification dates in UTC"
+msgstr "näytä tiedostojen muutosajat UTC-aikoina"
+
+#: src/tar.c:684
+msgid "send verbose output to FILE"
+msgstr "ohjaa monisanainen tuloste TIEDostoon"
+
+#: src/tar.c:686
+msgid "show block number within archive with each message"
+msgstr "näytä lohkonumero arkistossa viestien yhteydessä"
+
+#: src/tar.c:688
+msgid "ask for confirmation for every action"
+msgstr "kysy varmistusta jokaiselle toiminnolle"
+
+#: src/tar.c:691
+msgid "show tar defaults"
+msgstr "näytä tarin oletukset"
+
+#: src/tar.c:693
+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:695
+msgid "show file or archive names after transformation"
+msgstr ""
+
+#: src/tar.c:698
+msgid "STYLE"
+msgstr ""
+
+#: src/tar.c:699
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr ""
+
+#: src/tar.c:701
+msgid "additionally quote characters from STRING"
+msgstr ""
+
+#: src/tar.c:703
+msgid "disable quoting for characters from STRING"
+msgstr ""
+
+#: src/tar.c:708
+msgid "Compatibility options:"
+msgstr "Yhteensopivuusvalitsimet:"
+
+#: src/tar.c:711
+#, fuzzy
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "luotaessa sama kuin --old-archive purettaessa sama kuin --no-same-owner"
+
+#: src/tar.c:716
+msgid "Other options:"
+msgstr "Muut valitsimet:"
+
+#: src/tar.c:719
+msgid "disable use of some potentially harmful options"
+msgstr "poista käytöstä joitakin potentiaalisesti vahingollisia valitsimia"
+
+#: src/tar.c:823
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Vain yhtä valitsimista ”-Acdtrux” voi käyttää kerrallaan"
+
+#: src/tar.c:833
+msgid "Conflicting compression options"
+msgstr "Ristiriitaiset pakkausvalitsimet"
+
+#: src/tar.c:889
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Tuntematon signaalin nimi: %s"
+
+#: src/tar.c:913
+#, fuzzy
+msgid "Date sample file not found"
+msgstr "Päiväystiedostoa ei löytynyt"
+
+#: src/tar.c:921
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Korvataan tuntematon päiväysmuoto %2$s arvolla %1$s"
+
+#: src/tar.c:946
+#, 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:1020
+#, fuzzy, c-format
+msgid "%s: file list already read"
+msgstr "%s: tiedosto on arkistossa, ei lisätä"
+
+#: src/tar.c:1083
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: tiedostonimi sisältää nul-merkin"
+
+#: src/tar.c:1148
+msgid "Valid arguments for --quoting-style options are:"
+msgstr "Kelvolliset argumentit --quoting-style -valitsimille ovat:"
+
+#: src/tar.c:1151
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Tämä* tar käyttää oletuksena:\n"
+
+#: src/tar.c:1184
+msgid "Invalid blocking factor"
+msgstr "Virheellinen lohkomiskerroin"
+
+#: src/tar.c:1256
+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?"
+
+#: src/tar.c:1289
+msgid "Invalid tape length"
+msgstr "Virheellinen nauhan pituus"
+
+#: src/tar.c:1321
+msgid "More than one threshold date"
+msgstr "Annettu useampi kuin yksi kynnyspäiväys"
+
+#: src/tar.c:1376 src/tar.c:1379
+msgid "Invalid sparse version value"
+msgstr ""
+
+#: src/tar.c:1464
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' ei ole tuettu tällä alustalla"
+
+#: src/tar.c:1481
+msgid "--checkpoint value is not an integer"
+msgstr ""
+
+#: src/tar.c:1555
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Virheellinen ryhmä"
+
+#: src/tar.c:1562
+msgid "Invalid mode given on option"
+msgstr "Valitsimelle annettiin virheellinen tila"
+
+#: src/tar.c:1615
+msgid "Invalid number"
+msgstr "Virheellinen määrä"
+
+#: src/tar.c:1637
+msgid "Invalid owner"
+msgstr "Virheellinen omistaja"
+
+#: src/tar.c:1671
+msgid "Invalid record size"
+msgstr "Virheellinen tietueen koko"
+
+#: src/tar.c:1674
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Tietueen koon on oltava %d:n monikerta."
+
+#: src/tar.c:1711
+msgid "Invalid number of elements"
+msgstr "Virheellinen osien määrä"
+
+#: src/tar.c:1731
+msgid "Only one --to-command option allowed"
+msgstr ""
+
+#: src/tar.c:1807
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Kelvoton tiheysargumentti: %s"
+
+#: src/tar.c:1833
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Tuntematon tiheys: ”%c”"
+
+#: src/tar.c:1850
+#, 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:1885
+msgid "[FILE]..."
+msgstr "[TIEDOSTO]..."
+
+#: src/tar.c:1988
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Vanha valitsin ”%c” vaatii argumentin."
+
+#: src/tar.c:2070
+msgid "--occurrence is meaningless without a file list"
+msgstr "valitsin --occurence on merkityksetön ilman tiedostoluetteloa"
+
+#: src/tar.c:2076
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "valitsinta --occurence ei voi käyttää pyydetyssä toimintatilassa"
+
+#: src/tar.c:2106
+msgid "Multiple archive files require `-M' option"
+msgstr "Usean arkistotiedoston käyttäminen vaatii valitsimen ”-M”"
+
+#: src/tar.c:2111
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Valitsimia --listed-incremental ja --newer ei voi käyttää yhdessä"
+
+#: src/tar.c:2128
+#, 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:2141
+msgid "Cannot verify multi-volume archives"
+msgstr "Moniosaisia arkistoja ei voi tarkastaa"
+
+#: src/tar.c:2143
+msgid "Cannot verify compressed archives"
+msgstr "Pakattuja arkistoja ei voi varmistaa"
+
+#: src/tar.c:2149
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Pakattuja moniosaisia arkistoja ei voi käyttää"
+
+#: src/tar.c:2155
+msgid "Cannot concatenate compressed archives"
+msgstr "Pakattuja arkistoja ei voi liittää toisiinsa"
+
+#: src/tar.c:2167
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "Valitsinta --pax-option voi käyttää vain POSIX-arkistoille"
+
+#: src/tar.c:2192
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Kieltäydytään pelkurimaisesti luomasta tyhjää arkistoa"
+
+#: src/tar.c:2213
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Valitsimet ”-Aru” eivät ole yhteensopivia valitsinten ”-f -” kanssa"
+
+#: src/tar.c:2302
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Vähintään yhtä valitsimista ”-Acdtrux” on käytettävä"
+
+#: src/tar.c:2353
+#, c-format
+msgid "Error exit delayed from previous errors"
+msgstr "Viivästetty virhepoistuminen johtuu aikaisemmista virheistä"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:160
+#, 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:186
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Hahmoa %s ei voi käyttää"
+
+#: src/xheader.c:196
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Avainsanaa %s ei voi ohittaa"
+
+#: src/xheader.c:500
+#, fuzzy
+msgid "Malformed extended header: missing length"
+msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
+
+#: src/xheader.c:508
+#, 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:515
+#, 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:527
+#, fuzzy
+msgid "Malformed extended header: missing blank after length"
+msgstr "Väärän muotoinen laajennettu otsake: tyhje puuttuu pituuden jälkeen"
+
+#: src/xheader.c:535
+msgid "Malformed extended header: missing equal sign"
+msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
+
+#: src/xheader.c:541
+#, fuzzy
+msgid "Malformed extended header: missing newline"
+msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
+
+#: src/xheader.c:578
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr ""
+
+#: src/xheader.c:783
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Muodostettu avainsana-arvo-pari on liian pitkä (avainsana=%s, pituus=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:815
+#, 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:946 src/xheader.c:976 src/xheader.c:1290
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Väärän muotoinen laajennettu otsake: virheellinen %s=%s"
+
+#: src/xheader.c:1243 src/xheader.c:1268 src/xheader.c:1318
+#, fuzzy, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
+
+#: src/xheader.c:1331
+#, 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:1341
+#, fuzzy, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Väärän muotoinen laajennettu otsake: yhtäsuuruusmerkki puuttuu"
+
+#: tests/genfile.c:110
+#, 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:125
+#, fuzzy
+msgid "File creation options:"
+msgstr "Muut valitsimet:"
+
+#: tests/genfile.c:126 tests/genfile.c:137
+msgid "SIZE"
+msgstr ""
+
+#: tests/genfile.c:127
+#, fuzzy
+msgid "Create file of the given SIZE"
+msgstr "luo annetun muotoinen arkisto."
+
+#: tests/genfile.c:129
+#, fuzzy
+msgid "Write to file NAME, instead of standard output"
+msgstr "pura tiedostot vakiotulosteeseen"
+
+#: tests/genfile.c:131
+#, fuzzy
+msgid "Read file names from FILE"
+msgstr "Luettiin %s tavua arkistosta %s"
+
+#: tests/genfile.c:133
+msgid "-T reads null-terminated names"
+msgstr "-T lukee nollatavuun päättyviä nimiä"
+
+#: tests/genfile.c:135
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr ""
+
+#: tests/genfile.c:138
+msgid "Size of a block for sparse file"
+msgstr ""
+
+#: tests/genfile.c:140
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr ""
+
+#: tests/genfile.c:142
+msgid "OFFSET"
+msgstr ""
+
+#: tests/genfile.c:143
+#, fuzzy
+msgid "Seek to the given offset before writing data"
+msgstr "yritä varmistaa arkisto kirjoittamisen jälkeen"
+
+#: tests/genfile.c:149
+msgid "File statistics options:"
+msgstr ""
+
+#: tests/genfile.c:152
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr ""
+
+#: tests/genfile.c:159
+msgid "Synchronous execution options:"
+msgstr ""
+
+#: tests/genfile.c:162
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr ""
+
+#: tests/genfile.c:165
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr ""
+
+#: tests/genfile.c:168
+msgid "Set date for next --touch option"
+msgstr ""
+
+#: tests/genfile.c:171
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr ""
+
+#: tests/genfile.c:176
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr ""
+
+#: tests/genfile.c:179
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr ""
+
+#: tests/genfile.c:183
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr ""
+
+#: tests/genfile.c:186
+msgid "Update the access and modification times of FILE"
+msgstr ""
+
+#: tests/genfile.c:189
+msgid "Execute COMMAND"
+msgstr "Suorita KOMENTO"
+
+#: tests/genfile.c:239
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Virheellinen koko: %s"
+
+#: tests/genfile.c:244
+#, fuzzy, c-format
+msgid "Number out of allowed range: %s"
+msgstr "I-solmun numero ei ole sallitulla välillä"
+
+#: tests/genfile.c:247
+#, fuzzy, c-format
+msgid "Negative size: %s"
+msgstr "Virheellinen koko: %s"
+
+#: tests/genfile.c:260 tests/genfile.c:559
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) epäonnistui"
+
+#: tests/genfile.c:354
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr ""
+
+#: tests/genfile.c:360
+#, fuzzy, c-format
+msgid "Unknown date format"
+msgstr "Tuntematon järjestelmävirhe"
+
+#: tests/genfile.c:383
+msgid "[ARGS...]"
+msgstr "[ARG...]"
+
+#: tests/genfile.c:420 tests/genfile.c:460 tests/genfile.c:513
+#: tests/genfile.c:663 tests/genfile.c:677
+#, c-format
+msgid "cannot open `%s'"
+msgstr ""
+
+#: tests/genfile.c:426
+#, fuzzy, c-format
+msgid "cannot seek: %s"
+msgstr "%s: Siirtyminen kohtaan %s ei onnistu"
+
+#: tests/genfile.c:443
+#, c-format
+msgid "file name contains null character"
+msgstr "tiedostonimi sisältää nollatavun"
+
+#: tests/genfile.c:508
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr ""
+
+#: tests/genfile.c:586
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr ""
+
+#: tests/genfile.c:592 tests/genfile.c:625
+#, fuzzy, c-format
+msgid "Unknown field `%s'"
+msgstr " tuntematon tiedostotyyppi %s\n"
+
+#: tests/genfile.c:652
+#, fuzzy, c-format
+msgid "cannot set time on `%s'"
+msgstr "%s: Siirtyminen kohtaan %s ei onnistu"
+
+#: tests/genfile.c:806
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Komennon suoritus päättyi onnistuneesti\n"
+
+#: tests/genfile.c:808
+#, fuzzy, c-format
+msgid "Command failed with status %d\n"
+msgstr "Lapsiprosessi kuoli signaalilla %d"
+
+#: tests/genfile.c:812
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Komento keskeytyi signaaliin %d\n"
+
+#: tests/genfile.c:814
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Komento pysähtyi signaaliin %d\n"
+
+#: tests/genfile.c:817
+#, c-format
+msgid "Command dumped core\n"
+msgstr ""
+
+#: tests/genfile.c:820
+#, c-format
+msgid "Command terminated\n"
+msgstr "Komento keskeytyi\n"
+
+#: tests/genfile.c:852
+#, fuzzy, c-format
+msgid "--stat requires file names"
+msgstr "--Sovitetut tiedostonimet--\n"
+
+#: tests/genfile.c:865
+#, c-format
+msgid "too many arguments"
+msgstr "liian monta argumenttia"
+
+#~ msgid "%s: Read error at byte %s, reading %lu byte"
+#~ msgid_plural "%s: Read error at byte %s, reading %lu bytes"
+#~ msgstr[0] "%s: Lukuvirhe tavun %s kohdalla, luetaan %lu tavu"
+#~ msgstr[1] "%s: Lukuvirhe tavun %s kohdalla, luetaan %lu tavua"
+
+#~ msgid "--Mangled file names--\n"
+#~ msgstr "--Sovitetut tiedostonimet--\n"
+
+#~ msgid "Unexpected EOF in mangled names"
+#~ msgstr "Odottamaton tiedoston loppu sovitetuissa nimissä"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "Nimettiin uudelleen %s -> %s"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ msgstr "%s: Symlinkittäminen tiedostoksi %s ei onnistu"
+
+#~ msgid "Symlinked %s to %s"
+#~ msgstr "Symlinkitettiin %s -> %s"
+
+#~ 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ä"
+
+#, fuzzy
+#~ 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"
+
+#~ 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 ""
+#~ "Tällä ohjelmalla EI lain sallimissa rajoissa OLE TAKUUTA.\n"
+#~ "Ohjelmaa saa levittää GNU:n General Public Licensen mukaisesti;\n"
+#~ "katso lisätietoja tiedostosta COPYING."
+
+#~ msgid "rmtd: Garbage command %c\n"
+#~ msgstr "rmtd: Roskakomento %c\n"
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "VAROITUS: Arkisto-osan otsake puuttuu"
+
+#~ msgid "Visible long name error"
+#~ msgstr "Näkyvän pitkän nimen virhe"
+
+#~ msgid "Visible longname error"
+#~ msgstr "Näkyvän pitkän nimen virhe"
+
+#~ msgid "Missing file name after -C"
+#~ msgstr "Puuttuva tiedostonimi valitsimen -C jälkeen"
+
+#~ msgid "don't change access times on dumped files"
+#~ msgstr "älä muuta lisättyjen tiedostojen käyttöaikoja"
+
+#~ msgid "extract permissions information"
+#~ msgstr "pura tiedostojen oikeudet"
+
+#~ msgid "do not extract permissions information"
+#~ msgstr "älä pura tiedostojen oikeuksia"
+
+#~ msgid "FILE-OF-NAMES"
+#~ msgstr "TIEDOSTO"
+
+#~ msgid "exclude patterns are plain strings"
+#~ msgstr "poisjättöhahmot ovat tavallisia merkkijonoja"
+
+#~ msgid "dump instead the files symlinks point to"
+#~ msgstr "lisää symlinkin kohdetiedostot, ei linkkejä"
+
+#~ msgid "exclude patterns use wildcards (default)"
+#~ msgstr "poisjättöhahmot käyttävät jokerimerkkejä (oletus)"
+
+#~ msgid "print total bytes written while creating archive"
+#~ msgstr "näytä kirj. tavujen yhteismäärä luotaessa arkistoa"
+
+#~ msgid "Print license and exit"
+#~ msgstr "Näytä lisenssi ja poistu"
+
+#~ msgid ""
+#~ "Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n"
+#~ "for complete list of authors.\n"
+#~ msgstr ""
+#~ "Perustuu John Gilmoren ja Jay Fenlasonin tekemään työhön. Tarkka lista\n"
+#~ "tekijöistä on AUTHORS-tiedostossa.\n"
+
+# HUOM: Osoitetiedot suomennoksessa ajan tasalla, alkuperäisessä ei.
+#~ 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"
+#~ msgstr ""
+#~ " GNU tar on vapaaohjelmisto; voitte levittää edelleen ja/tai muuttaa\n"
+#~ " sitä Free Software Foundationin julkaiseman GNU General Public\n"
+#~ " License'in ehtojen mukaisesti; joko version 2, tai (valintanne mukaan)\n"
+#~ " minkä tahansa myöhemmän version.\n"
+#~ "\n"
+#~ " GNU taria levitetään siinä toivossa, että se olisi hyödyllinen,\n"
+#~ " mutta TAKUUTA EI OLE; ei edes KAUPALLISESTI HYVÄKSYTTÄVÄSTÄ LAADUSTA\n"
+#~ " tai SOPIVUUDESTA TIETTYYN TARKOITUKSEEN. Katsokaa lisätietoja GNU\n"
+#~ " General Public License'istä.\n"
+#~ "\n"
+#~ " Olette saaneet kopion GNU General Public License'istä tämän\n"
+#~ " ohjelman mukana. Ellette saaneet, kirjoittakaa Free Software Foundation,\n"
+#~ " Inc.:ille osoitteeseen 51 Franklin Street, Fifth Floor,\n"
+#~ " Boston, MA 02110-1301, USA.\n"
+#~ "\n"
+
+#~ msgid "Semantics of -l option will change in the future releases."
+#~ msgstr "Valitsimen -l merkitys muuttuu tulevissa versioissa."
+
+#~ msgid "Please use --one-file-system option instead."
+#~ msgstr "Käytä valitsinta --one-file-system."
+
+#~ msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+#~ msgstr "Varoitus: valitsin -y ei ole tuettu, ehkä tarkoitit -j?"
+
+#~ msgid "Error in writing to standard output"
+#~ msgstr "Virhe kirjoitettaessa vakiotulosteeseen"
+
+#~ 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” tallentaa useita tiedostoja yhteen nauha- tai levyarkistoon, sekä\n"
+#~ "palauttaa yksittäisiä tiedostoja arkistosta.\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"
+#~ "Jos argumentti on pakollinen pitkän valitsimen kanssa, se on pakollinen\n"
+#~ "myös vastaavan lyhyen valitsimen kanssa. Sama koskee valinnaisia argumentteja.\n"
+
+#~ 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"
+#~ "Päätoimintatila:\n"
+#~ " -t, --list listaa arkiston sisältö\n"
+#~ " -x, --extract, --get pura tiedostoja arkistosta\n"
+#~ " -c, --create luo uusi arkisto\n"
+#~ " -d, --diff, --compare etsi erot arkiston ja tied.järjestelmän välillä\n"
+#~ " -r, --append lisää tiedostoja arkiston loppuun\n"
+#~ " -u, --update lisää vain arkistossa olevia uudemmat tiedostot\n"
+#~ " -A, --catenate lisää tar-tiedostoja arkistoon\n"
+#~ " --concatenate sama kuin -A\n"
+#~ " --delete poista arkistosta (ei toimi nauhoilla!)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Operation modifiers:\n"
+#~ " -W, --verify attempt to verify the archive after writing it\n"
+#~ " --remove-files remove files after adding them to the archive\n"
+#~ " -k, --keep-old-files don't replace existing files when extracting\n"
+#~ " --keep-newer-files don't replace existing files that are newer\n"
+#~ " than their archive copies\n"
+#~ " --overwrite overwrite existing files when extracting\n"
+#~ " --no-overwrite-dir preserve metadata of existing directories\n"
+#~ " -U, --unlink-first remove each file prior to extracting over it\n"
+#~ " --recursive-unlink empty hierarchies prior to extracting directory\n"
+#~ " -S, --sparse handle sparse files efficiently\n"
+#~ " -O, --to-stdout extract files to standard output\n"
+#~ " -G, --incremental handle old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " handle new GNU-format incremental backup\n"
+#~ " --ignore-failed-read do not exit with nonzero on unreadable files\n"
+#~ " --occurrence[=NUM] process only the NUMth occurrence of each file in\n"
+#~ " the archive. This option is valid only in\n"
+#~ " conjunction with one of the subcommands --delete,\n"
+#~ " --diff, --extract or --list and when a list of\n"
+#~ " files is given either on the command line or\n"
+#~ " via -T option.\n"
+#~ " NUM defaults to 1.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Toimintovalinnat:\n"
+#~ " -W, --verify yritä varmistaa arkisto kirjoittamisen jälkeen\n"
+#~ " --remove-files poista tiedostot arkistoon lisäämisen jälkeen\n"
+#~ " -k, --keep-old-files älä korvaa olemassaolevia tiedostoja purettaessa\n"
+#~ " --keep-newer-files älä korvaa olemassaolevia tiedostoja, jotka ovat\n"
+#~ " arkistokopioitaan uudempia\n"
+#~ " --overwrite ylikirjoita olemassaolevat tiedostot purettaessa\n"
+#~ " --overwrite-dir ylikirjoita hakemiston metadata purettaessa\n"
+#~ " -U, --unlink-first poista jokainen tiedosto ennen sen päälle\n"
+#~ " purkamista\n"
+#~ " --recursive-unlink tyhjennä rakenne ennen hakemiston purkamista\n"
+#~ " -S, --sparse käsittele harvat tiedostot tehokkaasti\n"
+#~ " -O, --to-stdout pura tiedostot vakiotulosteeseen\n"
+#~ " -G, --incremental käsittele vanha GNU-muotoinen lisääntyvä\n"
+#~ " varmuuskopio\n"
+#~ " -g, --listed-incremental=TIEDOSTO\n"
+#~ " käsittele uusi GNU-muotoinen lisääntyvä\n"
+#~ " varmuuskopio\n"
+#~ " --ignore-failed-read jatka lukukelvottomista tiedostoista huolimatta\n"
+#~ " --occurrence[=N] käsittele vain kunkin tiedoston N:s esiintymä\n"
+#~ " arkistossa. Tämä valitsin on kelvollinen vain\n"
+#~ " yhdessä alikomennon --delete, --diff, --extract\n"
+#~ " tai --list, kun tiedostoluettelo on annettu\n"
+#~ " komentoriviltä tai valitsimella -T.\n"
+#~ " N on oletuksena 1.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --preserve same as both -p and -s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Tiedostojen ominaisuuksien käsittely:\n"
+#~ " --owner=NIMI pakota NIMI lisättyjen tiedostojen omistajaksi\n"
+#~ " --group=NIMI pakota NIMI lisättyjen tiedostojen ryhmäksi\n"
+#~ " --mode=MUUTOS pakota (symbolinen) tila MUUTOS lisätyille\n"
+#~ " tiedostoille\n"
+#~ " --atime-preserve älä muuta lisättyjen tiedostojen käyttöaikoja\n"
+#~ " -m, --modification-time älä pura tiedoston muutosaikaa\n"
+#~ " --same-owner yritä purkaa tiedostot samalla omistajuudella\n"
+#~ " --no-same-owner pura tiedostot itsenäsi\n"
+#~ " --numeric-owner käytä aina numeroita käyttäjän/ryhmän nimissä\n"
+#~ " -p, --same-permissions pura tiedostojen oikeudet\n"
+#~ " --no-same-permissions älä pura tiedostojen oikeuksia\n"
+#~ " --preserve-permissions sama kuin -p\n"
+#~ " -s, --same-order lajittele purettavat tiedostonimet vastaamaan\n"
+#~ " arkistoa\n"
+#~ " --preserve-order sama kuin -s\n"
+#~ " --preserve sama kuin -p ja -s yhdessä\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device selection and switching:\n"
+#~ " -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+#~ " --force-local archive file is local even if has a colon\n"
+#~ " --rmt-command=COMMAND use given rmt COMMAND instead of /etc/rmt\n"
+#~ " --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+#~ " -[0-7][lmh] specify drive and density\n"
+#~ " -M, --multi-volume create/list/extract multi-volume archive\n"
+#~ " -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+#~ " --new-volume-script=FILE same as -F FILE\n"
+#~ " --volno-file=FILE use/update the volume number in FILE\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Laitteen valinta ja vaihtaminen:\n"
+#~ " -f, --file=ARKISTO käytä arkistotiedostoa tai -laitetta ARKISTO\n"
+#~ " --force-local arkisto on paikallinen vaikka nimessä olisi\n"
+#~ " kaksoispiste\n"
+#~ " --rmt-command=KOMENTO käytä KOMENTOA /etc/rmt:n sijaan\n"
+#~ " --rsh-command=KOMENTO käytä KOMENTOa rsh:n sijaan\n"
+#~ " -[0-7][lmh] anna asema ja tiheys\n"
+#~ " -M, --multi-volume luo/listaa/pura moniosainen arkisto\n"
+#~ " -L, --tape-length=MÄÄRÄ vaihda nauhaa MÄÄRÄ × 1024 kirjoitetun tavun\n"
+#~ " jälkeen\n"
+#~ " -F, --info-script=TIED aja skripti joka nauhan lopussa (valitsin -M\n"
+#~ " tulee käyttöön)\n"
+#~ " --new-volume-script=TIED sama kuin -F TIED\n"
+#~ " --volno-file=TIED käytä/päivitä arkiston osan numero TIEDostossa\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device blocking:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+#~ " --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+#~ " -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+#~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Laitteen lohkot:\n"
+#~ " -b, --blocking-factor=LOHKOT LOHKOT × 512 tavua tietuetta kohti\n"
+#~ " --record-size=MÄÄRÄ MÄÄRÄ tavua tietuetta kohti, 512:n monikerta\n"
+#~ " -i, --ignore-zeros älä huomioi nollattuja lohkoja arkistossa\n"
+#~ " (merkitsee tiedoston loppua)\n"
+#~ " -B, --read-full-records suorita lohkominen uudelleen luettaessa\n"
+#~ " (4.2BSD-putkia varten)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " --format=FMTNAME create archive of the given format.\n"
+#~ " FMTNAME is one of the following:\n"
+#~ " v7 old V7 tar format\n"
+#~ " oldgnu GNU format as per tar <= 1.12\n"
+#~ " gnu GNU tar 1.13 format\n"
+#~ " ustar POSIX 1003.1-1988 (ustar) format\n"
+#~ " posix POSIX 1003.1-2001 (pax) format\n"
+#~ " --old-archive, --portability same as --format=v7\n"
+#~ " --posix same as --format=posix\n"
+#~ " --pax-option keyword[[:]=value][,keyword[[:]=value], ...]\n"
+#~ " control pax keywords\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -d)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Arkistomuodon valinta:\n"
+#~ " --format=MUOTO luo annetun muotoinen arkisto.\n"
+#~ " MUOTO on jokin seuraavista:\n"
+#~ " v7 vanha V7-tar-muoto\n"
+#~ " oldgnu GNU-muoto tar-versioilla <= 1.12\n"
+#~ " gnu GNU tar 1.13 -muoto\n"
+#~ " ustar POSIX 1003.1-1988 (ustar) -muoto\n"
+#~ " posix POSIX 1003.1-2001 (pax) -muoto\n"
+#~ " --old-archive, --portability sama kuin --format=v7\n"
+#~ " --posix sama kuin --format=posix\n"
+#~ " -pax-option avainsana[[:]=arvo][,avainsana[[:]=arvo], ...]\n"
+#~ " määrittele pax-avainsanoja\n"
+#~ " -V, --label=NIMI luo arkisto nimiöllä NIMI\n"
+#~ " HAHMO listattaessa/purettaessa jokeri-HAHMO\n"
+#~ " -j, --bzip2 ohjaa arkisto bzip2-ohjelman läpi\n"
+#~ " -z, --gzip, --ungzip ohjaa arkisto gzip-ohjelman läpi\n"
+#~ " -Z, --compress, --uncompress ohjaa arkisto compress-ohjelman läpi\n"
+#~ " --use-compress-program=OHJ ohjaa OHJelman läpi (on hyväksyttävä -d)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -K, --starting-file=NAME begin at file NAME in the archive\n"
+#~ " --strip-path=NUM strip NUM leading components from file names\n"
+#~ " before extraction\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Paikallisten tiedostojen valinta:\n"
+#~ " -C, --directory=HAK siirry hakemistoon HAK\n"
+#~ " -T, --files-from=TIEDOSTO hae purettavat/lisättävät nimet TIEDOSTOsta\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=HAHMO jätä pois HAHMOn mukaiset tiedostot\n"
+#~ " -X, --exclude-from=TIEDOSTO jätä pois TIEDOSTOssa listatut hahmot\n"
+#~ " --anchored poisjättöhahmoja verrataan nimen alkuun (oletus)\n"
+#~ " --no-anchored poisjättöhahmoja verrataan jokaisen ”/” jälkeen\n"
+#~ " --ignore-case poisjättäminen ei huomioi kirjainkokoa\n"
+#~ " --no-ignore-case poisjättäminen huomioi kirjainkoon (oletus)\n"
+#~ " --wildcards poisjättöhahmot käyttävät jokerimerkkejä (oletus)\n"
+#~ " --no-wildcards poisjättöhahmot ovat tavallisia merkkijonoja\n"
+#~ " --wildcards-match-slash poisjättöhahmon jokerimerkit vastaavat merkkiä ”/”\n"
+#~ " --no-wildcards-match-slash poisjättöhahmon jokerimerkit eivät vastaa\n"
+#~ " merkkiä ”/”\n"
+#~ " -P, --absolute-names älä poista merkkiä ”/” tiedostonimien alusta\n"
+#~ " -h, --dereference lisää symlinkin kohdetiedostot, ei linkkejä\n"
+#~ " --no-recursion estä automaattinen eteneminen alihakemistoihin\n"
+#~ " -l, --one-file-system pysy nykyisessä tied.järjestelmässä arkistoa\n"
+#~ " luotaessa\n"
+#~ " -K, --starting-file=NIMI aloita arkiston tiedostosta NIMI\n"
+#~ " --strip-path=MÄÄRÄ poista MÄÄRÄn verran osia tiedostonimien alusta\n"
+#~ " ennen purkamista\n"
+
+#~ msgid ""
+#~ " -N, --newer=DATE-OR-FILE only store files newer than DATE-OR-FILE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed only\n"
+#~ " --after-date=DATE same as -N\n"
+#~ msgstr ""
+#~ " -N, --newer=PÄIVÄYS-TAI-TIED tallenna vain PÄIVÄYS-TAI-TIEDostoa uudemmat tiedostot\n"
+#~ " --newer-mtime=PÄIVÄYS vertaa vain tiedoston muutosaikaa\n"
+#~ " --after-date=PÄIVÄYS sama kuin -N\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --suffix=SUFFIX backup before removal, override usual suffix\n"
+#~ msgstr ""
+#~ " --backup[=HALLINTA] varmuuskopiointi ennen poistoa, valitse\n"
+#~ " versionhallinta\n"
+#~ " --suffix=JÄLKILIITE varmuuskopiointi ennen poistoa, älä käytä\n"
+#~ " tavanomaista jälkiliitettä\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --check-links print a message if not all links are dumped\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " --index-file=FILE send verbose output to FILE\n"
+#~ " --utc print file modification dates in UTC\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --confirmation same as -w\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Tietoja antava tuloste:\n"
+#~ " --help näytä tämä ohje ja poistu\n"
+#~ " --version näytä tar-ohjelman versionumero ja poistu\n"
+#~ " -v, --verbose listaa käsiteltävät tiedostot\n"
+#~ " --checkpoint näytä hakemistojen nimet luettaessa arkistoa\n"
+#~ " --check-links näytä viesti, ellei kaikkia linkkejä lisätty\n"
+#~ " --totals näytä kirj. tavujen yhteismäärä luotaessa arkistoa\n"
+#~ " --index-file=TIED ohjaa monisanainen tuloste TIEDostoon\n"
+#~ " --utc näytä tiedostojen muutosajat UTC-aikoina\n"
+#~ " -R, --block-number näytä lohkonumero arkistossa viestien yhteydessä\n"
+#~ " -w, --interactive kysy varmistusta jokaiselle toiminnolle\n"
+#~ " --confirmation sama kuin -w\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Compatibility options:\n"
+#~ " -o when creating, same as --old-archive\n"
+#~ " when extracting, same as --no-same-owner\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Yhteensopivuusvalitsimet:\n"
+#~ " -o luotaessa sama kuin --old-archive\n"
+#~ " purettaessa sama kuin --no-same-owner\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*This* `tar' defaults to `--format=%s -f%s -b%d'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "ARKISTO voi olla TIEDOSTO, ISÄNTÄ:TIEDOSTO tai KÄYTTÄJÄ@ISÄNTÄ:TIEDOSTO;\n"
+#~ "PÄIVÄYS voi olla tekstimuotoinen, tai merkillä ”/” tai ”.” alkava\n"
+#~ "tiedoston nimi, jolloin käytetään tiedoston päiväystä.\n"
+#~ "*Tämä* ”tar” käyttää oletuksena ”--format=%s -f %s -b%d”.\n"
+
+#~ msgid "Written by John Gilmore and Jay Fenlason."
+#~ msgstr "Kirjoittaneet John Gilmore ja Jay Fenlason."
+
+#~ msgid "Cannot close"
+#~ msgstr "Ei voi sulkea"
+
+#~ msgid "Cannot dup"
+#~ msgstr "Tiedostokahvaa ei voi kopioida"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "Pakattuja tai etäarkistoja ei voi käyttää"
+
+#~ msgid "tar (child)"
+#~ msgstr "tar (lapsiprosessi)"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (lapsenlapsiprosessi)"
+
+#~ msgid "Child returned status %d"
+#~ msgstr "Lapsiprosessi palautti tilan %d"
+
+#~ msgid "Member names contain `..'"
+#~ msgstr "Tiedostonimet sisältävät ”..”"
+
+#~ msgid "%s: Member name contains `..'"
+#~ msgstr "%s: Tiedostonimi sisältää ”..”"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -o, --old-archive, --portability write a V7 format archive\n"
+#~ " --posix write a POSIX format archive\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -d)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Arkiston muodon valinta:\n"
+#~ " -V, --label=NIMI luo arkisto nimiöllä NIMI\n"
+#~ " HAHMO listattaessa/purettaessa jokeri-HAHMO\n"
+#~ " -o, --old-archive, --portability kirjoita V7-muodon arkisto\n"
+#~ " --posix kirjoita POSIX-muotoinen arkisto\n"
+#~ " -j, --bzip2 ohjaa arkisto bzip2-ohjelman läpi\n"
+#~ " -z, --gzip, --ungzip ohjaa arkisto gzip-ohjelman läpi\n"
+#~ " -Z, --compress, --uncompress ohjaa arkisto compress-ohjelman läpi\n"
+#~ " --use-compress-program=OHJ ohjaa OHJelman läpi (on hyväksyttävä -d)\n"
+
+#~ msgid "Obsolete option, now implied by --blocking-factor"
+#~ msgstr "Vanhentunut valitsin, seuraa nyt valitsimesta --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --blocking-factor"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --read-full-records"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --read-full-records"
+
+#~ msgid "Obsolete option name replaced by --touch"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --touch"
+
+#~ msgid "Obsolete option name replaced by --absolute-names"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --absolute-names"
+
+#~ msgid "Obsolete option name replaced by --block-number"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --block-number"
+
+#~ msgid "Obsolete option name replaced by --backup"
+#~ msgstr "Vanhentunut valitsimen nimi, uusi on --backup"
+
+#~ msgid ""
+#~ "If a long option shows an argument as mandatory, then it is mandatory\n"
+#~ "for the equivalent short option also.\n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH of generated file\n"
+#~ " -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+#~ " --help display this help and exit\n"
+#~ " --version output version information and exit\n"
+#~ msgstr ""
+#~ "Jos argumentti on pakollinen pitkän valitsimen kanssa, se on pakollinen\n"
+#~ "myös vastaavan lyhyen valitsimen kanssa.\n"
+#~ "\n"
+#~ " -l, --file-length=PITUUS luotavan tiedoston PITUUS\n"
+#~ " -p, --pattern=HAHMO HAHMO on ”default” tai ”zeros”\n"
+#~ " --help näytä tämä ohje ja poistu\n"
+#~ " --version näytä versiotiedot ja poistu\n"
+
+#~ msgid "Written by F. Pinard."
+#~ msgstr "Kirjoittanut François Pinard."
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 00000000..fc60b496
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,2694 @@
+# Messages français pour GNU concernant tar.
+# Copyright © 2010 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, 2009, 2010, 2011
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar-1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-13 12:51+0100\n"
+"Last-Translator: Christophe Combelles <ccomb@free.fr>\n"
+"Language-Team: French <traduc@traduc.org>\n"
+"Language: fr\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "Argument %s non valable pour %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "Argument %s ambigu pour %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Les arguments valables sont :"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s : le paramètre ARGP_HELP_FMT est inconnu"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Déchet dans ARGP_HELP_FMT : %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Les arguments obligatoires ou facultatifs pour les formes longues des options le sont également pour les formes courtes qui leur correspondent."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Utilisation :"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " ou : "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [OPTION...]"
+
+#: gnu/argp-help.c:1684
+#, 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"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Rapportez toute anomalie à %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Erreur système inconnue"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "Afficher cette aide-mémoire"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "Afficher un court mode d'emploi"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NOM"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "définit le nom du programme"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SECS"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "Bloquer pendant SECS secondes (3600 par défaut)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "Afficher la version du programme"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAM ERROR) Aucune version connue !?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s : trop d'arguments\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAM ERROR) L'option devrait avoir été reconnue !?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "erreur d'écriture"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s : l'option « %s » est ambiguë\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s : l'option « --%s » n'a pas d'argument\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, 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"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s : l'option « --%s » doit avoir un argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s : l'option « --%s » est inconnue\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s : l'option « %c%s » est inconnue\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s : l'option -- '%c' n'est pas valable\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s : l'option -- '%c' a besoin d'un argument\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s : l'option « -W %s » est ambiguë\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, 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"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s : l'option « -W %s » doit avoir un argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "mémoire épuisée"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "Impossible d'enregistrer le répertoire de travail actuel"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "Impossible de revenir au répertoire de travail initial"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "« "
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr " »"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[oO]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Packagé par %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Packagé par %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Licence GPLv3+ : GNU GPL version 3 ou ultérieure <http://gnu.org/licenses/gpl.html>\n"
+"Ceci est un logiciel libre : vous êtes libre de le modifier et de le redistribuer.\n"
+"Il est fourni SANS GARANTIE, dans la mesure de ce que permet la loi.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Écrit par %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Écrit par %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Écrit par %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s et d'autres personnes.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Signalez toute anomalie à : %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Signalez les anomalies de %s à : %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Page d'accueil de %s : <%s>\n"
+
+#: gnu/version-etc.c:255
+#, 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
+msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+msgstr "Aide générale sur l'utilisation des 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 : %s impossible"
+
+#. 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 : %s impossible"
+
+#: 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Suppression de « %s » au début des noms des membres"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Suppression de « %s » au début des liens physiques"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Remplacement des noms vides par « . » pour les membres"
+
+#: lib/paxnames.c:155
+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 "Impossible de se connecter à %s : échec de résolution"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Impossible de lancer un interpréteur de commandes distant"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Direction de positionnement hors plage"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Direction de recherche non valable"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Décalage de recherche non valable"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Positionnement relatif hors plage"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Nombre d'octets non valable"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Nombre d'octets hors plage"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Fin de fichier prématurée"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Code d'opération non valable"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Opération non prise en charge"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Arguments inattendus"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Manipule un lecteur de cartouches en acceptant des commandes d'un processus distant"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NOMBRE"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "définit le niveau de débogage"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FICHIER"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "définit le nom de fichier de sortie de débogage"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "impossible d'ouvrir %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "trop d'arguments"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Commande rejetée"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Ceci ne ressemble pas à une archive de type « tar »"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Nombre total d'octets écrits"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Nombre total d'octets lus"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Nombre total d'octets effacés : %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(tube)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Valeur incorrecte pour « record_size »"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Aucun nom d'archive donné"
+
+#: src/buffer.c:689
+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:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "L'archive est compressée. Utilisez l'option %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Une archive compressée ne peut pas être mise à jour"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Début de la cartouche atteinte ; arrêt du programme."
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Trop d'erreurs, arrêt du programme."
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek ne s'est pas arrêté à une limite d'enregistrement"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s : contient un numéro de volume non valable"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Débordement du numéro de volume"
+
+#: src/buffer.c:1123
+#, 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:1129
+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:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "AVERTISSEMENT : l'archive est incomplète"
+
+#: src/buffer.c:1148
+#, 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 nom Donner un nouveau nom de fichier pour les prochains volumes\n"
+" q Arrêter tar\n"
+" y ou newline Continuer le traitement\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Générer un sous-shell\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Afficher cette liste\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Pas de nouveau volume ; fin du traitement.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Nom de fichier non spécifié. Essaye encore :).\n"
+
+#: src/buffer.c:1207
+#, 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:1258
+#, c-format
+msgid "%s command failed"
+msgstr "Échec de la commande %s"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "La suite de %s n'est pas sur ce volume."
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s a une taille incorrecte (%s != %s + %s)."
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Ce volume est hors séquence (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Archive non étiquetée pour correspondre à %s."
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Le volume %s ne correspond pas à %s."
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s : nom de fichier tronqué, car trop long pour être stocké dans un en-tête GNU multi-volumes"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "l'écriture ne s'est pas arrêté sur une limite de bloc"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Les contenus sont différents."
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Fin prématurée rencontrée dans l'archive."
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Le type de fichier est différent."
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Le mode est différent."
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "L'UID est différent."
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Le GID est différent."
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "La date de modification est différente."
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "La taille est différente."
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "N'est pas lié à %s."
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Le lien symbolique est différent."
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Le numéro de périphérique est différent."
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Vérification "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s : type de fichier inconnu « %c », recherche de différence comme pour un fichier normal"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "L'archive contient des noms de fichiers dont le préfixe a été enlevé"
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "L'archive contient des noms de fichiers transformés"
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "La vérification peut échouer lors de la localisation des fichier originaux."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Bloc zéro solitaire repéré à %s"
+
+#: src/create.c:72
+#, 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:261
+#, 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:267
+#, 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:327
+msgid "Generating negative octal headers"
+msgstr "Génération d'en-têtes octaux négatifs"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s : le nom de fichier est trop long (%d max) ; fichier non archivé"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s : le nom de fichier est trop long (ne peut être scindé) ; fichier non archivé"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s : le nom du lien est trop long ; fichier non archivé"
+
+#: src/create.c:1064
+#, 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "contenu non archivé"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s : type de fichier inconnu ; fichier ignoré"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Liens manquants vers %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s : le fichier n'est pas modifié ; fichier non archivé"
+
+#: src/create.c:1699
+#, 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:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "répertoire non archivé"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s : fichier modifié pendant sa lecture"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s : socket ignorée"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s : porte ignorée"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "On saute à l'en-tête suivant"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Suppression d'un « non en-tête » de l'archive"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s : l'horodatage %s est trop vieux pour être plausible"
+
+#: src/extract.c:295
+#, 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:475
+#, 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:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Extraction des fichiers contigus comme des fichiers réguliers"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Tentative d'extraction des liens symboliques comme des liens physiques"
+
+#: src/extract.c:1365
+#, 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:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "En-tête à nom long inattendu"
+
+#: src/extract.c:1379
+#, 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:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Le %s actuel est au moins aussi récent"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s : impossible d'archiver ce fichier."
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Impossible de renommer %s en %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s : le répertoire a été renommé depuis %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s : le répertoire a été renommé."
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s : le répertoire est nouveau."
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Horodatage non valable"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Temps de modification non valable (secondes)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Temps de modification non valable (nanosecondes)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Numéro de périphérique non valable"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Numéro d'inode non valable"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Champ trop long rencontré pendant la lecture du fichier d'instantané"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Erreur de lecture du fichier d'instantané"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Fin prématurée du fichier d'instantané"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Valeur de champ inattendue dans le fichier d'instantané"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Terminaison de champ manquante"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Mauvais format de fichier incrémental"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Version non prise en charge pour le format incrémental : %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "dumpdir incorrect : « %c » était attendu mais %#3o a été trouvé"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "dumpdir incorrect : « X » en double"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "dumpdir incorrect : nom vide dans « R »"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "dumpdir incorrect : « T » non précédé de « R »"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "dumpdir incorrect : nom vide dans « T »"
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "dumpdir incorrect : « X » n'a jamais été utilisé"
+
+#: src/incremen.c:1609
+#, 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:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s : répertoire non purgé : impossible d'évaluer par stat()"
+
+#: src/incremen.c:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s : suppression de %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s : suppression impossible"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s : omis"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloc %s : ** Bloc de NULs **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloc %s : ** Fin de fichier **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "bloc %s : "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "La valeur octale de l'archive %.*s est en dehors de la plage de %s ; complément à 2 supposé"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "L'archive contient des en-têtes obsolètes en base 64."
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "L'archive contient %.*s alors qu'une valeur numérique de type %s est attendue."
+
+#. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.)
+#: src/list.c:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " lien vers %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " type de fichier inconnu %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Lien long--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nom long--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--En-tête de volume--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Suite à l'octet %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Création du répertoire :"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Impossible de connaître le répertoire de travail"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s renommé en %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s : impossible de renommer en %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "%s finalement renommé en %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s : fichier supprimé avant d'avoir été lu"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "processus enfant"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "canal inter-processus"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Caractères de correspondance de motif utilisé dans les noms de fichiers."
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Utilisez « --wildcards » pour activer la correspondance de motif ou « --no-wildcards » pour supprimer cet avertissement"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s : non trouvé dans l'archive"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s : occurence requise non trouvée dans l'archive"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Mauvaise correspondance d'étiquette d'archive"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "L'utilisation de l'option -C à l'intérieur de la liste de fichiers n'est pas permise avec --listed-incremental"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Une seule option -C est autorisée 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s : format d'archive non valable"
+
+#: 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:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Type de protection de caractères inconnu « %s ». Essayez « %s --quoting-style=help » pour avoir une liste."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"Le programme « tar » de GNU permet de sauvegarder une grande quantité de fichiers dans une unique archive sur disque ou sur cartouche et de récupérer ces fichiers depuis l'archive de manière individuelle.\n"
+"\n"
+"Exemples :\n"
+" tar -cf archive.tar foo bar # Crée le fichier archive.tar à partir de foo et bar.\n"
+" tar -tvf archive.tar # Liste tous les fichiers de archive.tar de manière détaillée.\n"
+" tar -xf archive.tar # Extrait tous les fichiers de archive.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Le suffixe de sauvegarde est « ~ », à moins qu'il ne soit défini avec « --suffix » ou SIMPLE_BACKUP_SUFFIX.\n"
+"Le contrôle de version peut être défini avec « --backup » ou VERSION_CONTROL, les valeurs sont :\n"
+"\n"
+" none, off Ne jamais faire de sauvegarde.\n"
+" t, numbered Faire des sauvegardes numérotées.\n"
+" 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:387
+msgid "Main operation mode:"
+msgstr "Mode d'opération principal :"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "Afficher le contenu de l'archive"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "Extraire les fichiers de l'archive"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "Créer une nouvelle archive"
+
+#: src/tar.c:397
+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:400
+msgid "append files to the end of an archive"
+msgstr "Ajouter des fichiers à la fin de l'archive"
+
+#: src/tar.c:402
+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:404
+msgid "append tar files to an archive"
+msgstr "Ajouter des fichiers tar à une archive"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "Effacer de l'archive (pas sur les bandes magnétiques !)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "Tester l'étiquette du volume d'archive et terminer"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Modificateurs d'opération :"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "Économiser efficacement l'espace dans les fichiers dispersés (fichiers à trous)"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJEUR[.MINEUR]"
+
+#: src/tar.c:419
+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:421
+msgid "handle old GNU-format incremental backup"
+msgstr "Prendre en charge les sauvegardes incrémentales à l'ancien format GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "Prendre en charge les sauvegardes incrémentales au nouveau format GNU"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "niveau de vidage d'archive incrémentale au nouveau format GNU"
+
+#: src/tar.c:427
+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:429
+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 "Traiter seulement l'occurrence n°NOMBRE de chaque fichier dans l'archive ; cette option n'est valable qu'accompagnée de l'une des sous-commandes « --delete », « --diff », « --extract » ou « --list » et lorsqu'une liste de fichiers est fournie soit sur la ligne de commande, soit avec l'option « -T ». NOMBRE vaut 1 par défaut."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "L'archive peut être parcourue"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "L'archive ne peut pas être parcourue"
+
+#: src/tar.c:439
+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:442
+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:448
+msgid "Overwrite control:"
+msgstr "Contrôle de l'écrasement :"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "Tenter de vérifier l'archive après écriture"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "Supprimer les fichiers après les avoir ajoutés à l'archive"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "Ne pas écraser les fichiers préexistants lors de l'extraction"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "Écraser les fichiers préexistants lors de l'extraction"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "Effacer chaque fichier préexistant avant l'extraction"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "Vider les hiérarchies avant d'extraire les répertoires"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "Préserver les métadonnées des répertoires préexistants"
+
+#: src/tar.c:467
+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:473
+msgid "Select output stream:"
+msgstr "Choix du flux de sortie :"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "Extraire les fichiers vers la sortie standard"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "COMMANDE"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "Renvoyer par tube les fichiers extraits vers un autre programme"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "Ignorer les codes de retour des processus enfants"
+
+#: src/tar.c:482
+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:487
+msgid "Handling of file attributes:"
+msgstr "Traitement des attributs de fichiers :"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "Utiliser NOM comme propriétaire des fichiers ajoutés"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "Utiliser NOM comme groupe des fichiers ajoutés"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATE-OU-FICHIER"
+
+#: src/tar.c:494
+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:495
+msgid "CHANGES"
+msgstr "CHANGEMENTS"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "Utiliser les CHANGEMENTS de mode (symboliques) pour les fichiers ajoutés"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "MÉTHODE"
+
+#: src/tar.c:499
+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 "Préserve la date d'accès des fichiers archivés, soit en la restaurant après lecture (MÉTHODE = « replace » par défaut) ou en ne définissant pas les dates initialement (MÉTHODE = « system »)"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "Ne pas extraire la date de modification du fichier"
+
+#: src/tar.c:505
+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 que dans l'archive (par défaut pour le superutilisateur)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "S'approprier les fichiers lors de l'extraction (par défaut pour les utilisateurs ordinaires)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "Toujours utiliser les valeurs numériques des utilisateurs/groupes"
+
+#: src/tar.c:511
+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:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "Appliquer l'umask de l'utilisateur lors de l'extraction des permissions (par défaut pour les utilisateurs normaux)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "Trier les noms à extraire dans le même ordre que l'archive"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "Équivalent à « -p -s » à la fois"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "Reporter à la fin de l'extraction le changement des dates de modification et des permissions des répertoires extraits"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "Annule l'effet de l'option « --delay-directory-restore »"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Sélection et option de périphérique :"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIVE"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "Utiliser le fichier ou le périphérique ARCHIVE"
+
+#: src/tar.c:535
+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:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "Utiliser la COMMANDE rmt fournie au lieu de rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "Utiliser la COMMANDE distante à la place de rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "Spécifier le lecteur et la densité"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "Créer/lister/extraire une archive multi-volumes"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "Changer de cartouche après avoir écrit NOMBRE x 1024 octets"
+
+#: src/tar.c:561
+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:564
+msgid "use/update the volume number in FILE"
+msgstr "Utiliser/mettre à jour le numéro de volume dans le FICHIER"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blocs du périphérique :"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCS"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOCS x 512 octets par enregistrement"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "NOMBRE d'octets par enregistrement (multiple de 512)"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "Ignorer les blocs de zéros dans l'archive (càd EOF)"
+
+#: src/tar.c:578
+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:583
+msgid "Archive format selection:"
+msgstr "Sélection du format d'archive :"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "Créer l'archive au format désiré."
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT peut prendre une des valeurs suivantes :"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "Vieux format tar V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "Format GNU issu de tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "Format GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "Format POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "Format POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "Identique à pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "Identique à « --format=v7 »"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "Identique à « --format=posix »"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "mot_clé[[:]=valeur][,mot_clé[[:]=valeur]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "Mots-clés de contrôle pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXTE"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "Créer l'archive en attribuant le TEXTE au nom de volume. À la lecture ou à l'extraction, utiliser le TEXTE comme motif de correspondance (glob) au nom de volume."
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Options de compression :"
+
+#: src/tar.c:616
+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:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "Ne pas utiliser l'extension du fichier d'archive pour déterminer le programme de compression"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "Filtrer à travers le PROG (doit accepter l'option « -d »)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Sélection des fichiers locaux :"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "RÉP"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "Utiliser RÉP comme répertoire de travail"
+
+#: src/tar.c:644
+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:646
+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:648
+msgid "disable the effect of the previous --null option"
+msgstr "désactive l'effet de l'option --null précédente"
+
+#: src/tar.c:650
+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:652
+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:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MOTIF"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "Exclure les fichiers correspondant au MOTIF"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "Exclure les motifs listés dans le FICHIER"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "Exclure le contenu des répertoires contenant CACHEDIR.TAG, sauf le fichier de tag lui-même"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "Tout exclure dans les répertoires contenant CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "Exclure les répertoires contenant CACHEDIR.TAG"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "Tout exclure dans les répertoires contenant le FICHIER"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "Exclure les répertoires contenant le FICHIER"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "Exclure les répertoires de contrôle de version (CVS, .svn, etc.)"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "exclure les fichiers de sauvegarde et de verrou"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "Empêcher la descente automatique dans les sous-répertoires"
+
+#: src/tar.c:679
+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:681
+msgid "recurse into directories (default)"
+msgstr "Parcourir les sous-répertoires de manière récursive (par défaut)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "Ne pas enlever le « / » au début des noms de fichiers"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "NOM-DE-MEMBRE"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "Débuter au NOM-DE-MEMBRE dans l'archive"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "Stocker seulement les fichiers plus récents que DATE-OU-FICHIER"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATE"
+
+#: src/tar.c:694
+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:695
+msgid "CONTROL"
+msgstr "CONTRÔLE"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "Faire une copie de sauvegarde avant suppression, choisir le CONTRÔLE de version"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "CHAÎNE"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "Faire une copie de sauvegarde avant suppression, en remplaçant le suffixe habituel (« ~ » sauf s'il est définit par la variable d'environnement SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Transformation des noms de fichiers :"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "EXPRESSION"
+
+#: src/tar.c:708
+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:714
+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:717
+msgid "ignore case"
+msgstr "Ignorer la casse (majuscules/minuscules)"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "Les motifs doivent correspondre au début des noms de fichiers"
+
+#: src/tar.c:721
+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:723
+msgid "case sensitive matching (default)"
+msgstr "Correspondance sensible à la casse (comportement par défaut)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "Utiliser des caractères de correspondance (par défaut pour l'exclusion)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "Correspondance exacte de chaîne"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "« / » ne correspond à aucun caractère de correspondance"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "« / » peut correspondre à un caractère de correspondance (par défaut pour l'exclusion)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Options d'affichage :"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "Afficher de manière détaillée les fichiers traités"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "MOTCLÉ"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "Contrôle d'avertissement"
+
+#: src/tar.c:743
+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:745
+msgid "ACTION"
+msgstr "ACTION"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "exécuter l'ACTION à chaque point de contrôle"
+
+#: src/tar.c:749
+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:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "Afficher le nombre total d'octets après traitement de l'archive. Avec un argument, afficher ce nombre si le SIGNAL est émis. Les signaux permis sont : SIGHUP, SIGQUIT, SIGINT, SIGUSR1 et SIGUSR2. Les noms sans préfixe « SIG » sont aussi acceptés"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "Afficher les dates de modification de fichier en UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "afficher l'heure du fichier en pleine résolution"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "Envoyer la sortie détaillée vers le FICHIER"
+
+#: src/tar.c:762
+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:764
+msgid "ask for confirmation for every action"
+msgstr "Demander confirmation pour chaque action"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "Afficher les paramètres par défaut de tar"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+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:771
+msgid "show file or archive names after transformation"
+msgstr "Afficher les noms des fichiers ou des archives après transformation"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STYLE"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "Protéger aussi les caractères faisant partie de la CHAÎNE"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "Enlever la protection des caractères faisant partie de la CHAÎNE"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Options de compatibilité :"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "Lors de la création, identique à « --old-archive ». Lors de l'extraction, identique à « --no-same-owner »"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Autres options :"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "Désactiver certaines options potentiellement néfastes"
+
+#: src/tar.c:930
+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 » ou « --test-label »"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Options de compression non compatibles entre elles"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Type de signal inconnu : %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Fichier d'échantillon de date non trouvé"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Remplacement par %s du format de date inconnu %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Option %s : date « %s » traitée comme %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s : la liste de fichiers est déjà lue"
+
+#: src/tar.c:1201
+#, 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:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "Filtrer l'archive à travers %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Les arguments valables pour l'option « --quoting-style » sont :"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Les valeurs par défaut de *ce* tar sont :\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Facteur de bloc non valable"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Longueur de cartouche non valable"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Mauvaise valeur pour le niveau incrémental"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Plus d'une date seuil"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Version de la dispersion non valable"
+
+#: src/tar.c:1718
+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:1743
+msgid "--checkpoint value is not an integer"
+msgstr "la valeur de « --checkpoint » n'est pas un entier"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Groupe non valable"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Mode non valable donné en option"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Nombre non valable"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Propriétaire non valable"
+
+#: src/tar.c:1964
+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:1975
+msgid "Invalid record size"
+msgstr "Taille d'enregistrement non valable"
+
+#: src/tar.c:1978
+#, 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:2019
+msgid "Invalid number of elements"
+msgstr "Nombre d'éléments incorrect"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Une seule option « --to-command » est permise"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Argument de densité incorrect : %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Densité inconnue : « %c »"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[FICHIER]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "L'ancienne option « %c » a besoin d'un argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence n'a pas de sens sans une liste de fichiers"
+
+#: src/tar.c:2380
+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:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Les fichiers d'archives multiples ont besoin de l'option « -M »"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Impossible de combiner « --listed-incremental » avec « --newer »"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level n'a aucun sens sans --listed-incremental"
+
+#: src/tar.c:2423
+#, 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'étiquette du volume est trop longue (la limite est %lu octet)"
+msgstr[1] "%s: l'étiquette du volume est trop longue (la limite est %lu octets)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Impossible de vérifier des archives multi-volumes"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Impossible de vérifier des archives compressées"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Impossible d'utiliser des archives multi-volumes compressées"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Impossible de concaténer des archives compressées"
+
+#: src/tar.c:2462
+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:2492
+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:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order n'est pas compatible avec --listed-incremental"
+
+#: src/tar.c:2506
+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:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Les options « -Aru » sont incompatibles avec « -f - »"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Vous devez choisir une option parmi « -Acdtrux » ou « --test-label »"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Arrêt avec code d'échec à cause des erreurs précédentes"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, 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:174
+msgid "Time stamp is out of allowed range"
+msgstr "L'horodatage est en dehors de la plage permise"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Le motif %s ne peut être utilisé"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Le mot clé %s ne peut pas être surdéfini"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "En-tête étendu incorrect : longueur manquante"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "La longueur de l'en-tête étendu est hors plage"
+
+#: src/xheader.c:557
+#, 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:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "En-tête étendu incorrect : espace blanche manquante après la longueur"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "En-tête étendu incorrect : signe d'égalité manquant"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "En-tête étendu incorrect : retour à la ligne manquant"
+
+#: src/xheader.c:621
+#, 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:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "La paire mot clé/valeur générée est trop longue (keyword=%s, length=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "En-tête étendu incorrect : %s=%s non valable"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "En-tête étendu incorrect : %s=%s en trop"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, 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"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s : délai d'expiration non valable"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s : action de point de contrôle inconnue"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "écriture"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "lecture"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Point de contrôle d'écriture %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Point de contrôle de lecture %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile permet de manipuler des fichiers de données pour la suite de tests GNU paxutils.\n"
+"Les options sont :\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Options de création de fichier :"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "TAILLE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Créer le fichier à la TAILLE donnée"
+
+#: tests/genfile.c:131
+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:133
+msgid "Read file names from FILE"
+msgstr "Lire les noms de fichier depuis le FICHIER"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T permet de lire les noms terminés par un NULL"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Taille d'un bloc pour le fichier dispersé"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "DÉCALAGE"
+
+#: tests/genfile.c:145
+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:151
+msgid "File statistics options:"
+msgstr "Options des statistiques de fichiers :"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Options d'exécution synchrone :"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPTION"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Exécuter les ARGS. Utile avec « --checkpoint » et l'une des options « --cut », « --append », « --touch » ou « --unlink »"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Définir la date pour la prochaine option « --touch »"
+
+#: tests/genfile.c:173
+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:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+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:185
+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:188
+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:191
+msgid "Execute COMMAND"
+msgstr "Exécuter la COMMANDE"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Supprimer FICHIER"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Taille non valable : %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Nombre en dehors de la plage permise : %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Taille négative : %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "La fonction stat(%s) a échoué"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "taille de fichier demandée : %lu, taille réelle : %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "le fichier créé n'est pas dispersé"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Erreur à la lecture du nombre près de « %s »"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Format de date inconnu"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGS...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "Impossible d'ouvrir « %s »"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "Impossible à parcourir"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "Le nom de fichier contient un caractère nul"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "Masque incorrect (près de « %s »)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Champ inconnu « %s »"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "Impossible de définir la date de « %s »"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "Impossible de supprimer « %s »"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "La commande s'est terminée correctement\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "La commande a échoué avec le code %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "La commande s'est terminée sur le signal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "La commande s'est interrompue sur le signal %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "La commande a généré un core dump\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "La commande s'est terminée\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat nécessite un nom de fichier"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s : Répertoire supprimé avant d'avoir été lu"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Le répertoire de travail ne peut pas être sauvegardé"
+
+#~ 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 » ?"
+
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "Des erreurs ont provoqué l'arrêt du programme"
+
+#~ msgid "[.]NUMBER"
+#~ msgstr "[.]NOMBRE"
diff --git a/po/ga.po b/po/ga.po
new file mode 100644
index 00000000..0365b93a
--- /dev/null
+++ b/po/ga.po
@@ -0,0 +1,2724 @@
+# 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, 2009.
+msgid ""
+msgstr ""
+"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-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"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"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
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argóint neamhbhailí %s chun %s"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argóint dhébhríoch %s chun %s"
+
+#: lib/argmatch.c:153
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Na hargóintí bailí:"
+
+#: lib/argp-help.c:147
+#, 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
+#, 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
+#, 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
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Paraiméadar anaithnid ARGP_HELP_FMT"
+
+#: lib/argp-help.c:247
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Bruscar i ARGP_HELP_FMT: %s"
+
+#: lib/argp-help.c:1246
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Is riachtanach/roghnach le rogha ghearr aon argóint atá riachtanach/roghnach leis an rogha fhada."
+
+#: lib/argp-help.c:1639
+msgid "Usage:"
+msgstr "Úsáid:"
+
+#: lib/argp-help.c:1643
+msgid " or: "
+msgstr " nó: "
+
+#: lib/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [ROGHA...]"
+
+#: lib/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
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Seol tuairiscí fabhtanna chuig %s.\n"
+
+#: lib/argp-help.c:1929 lib/error.c:125
+msgid "Unknown system error"
+msgstr "Earráid anaithnid chórais"
+
+#: lib/argp-parse.c:81 src/tar.c:774
+msgid "give this help list"
+msgstr "taispeáin an chabhair seo"
+
+#: lib/argp-parse.c:82 src/tar.c:775
+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
+msgid "NAME"
+msgstr "AINM"
+
+#: lib/argp-parse.c:83
+msgid "set the program name"
+msgstr "socraigh ainm an chláir"
+
+#: lib/argp-parse.c:84
+msgid "SECS"
+msgstr "SOIC"
+
+#: lib/argp-parse.c:85 src/tar.c:780
+msgid "hang for SECS seconds (default 3600)"
+msgstr "moill de SOIC soicind (réamhshocrú: 3600)"
+
+#: lib/argp-parse.c:142 src/tar.c:776
+msgid "print program version"
+msgstr "taispeáin leagan an chláir"
+
+#: lib/argp-parse.c:158
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(EARRÁID RÍOMHCHLÁIR) Gan leagan!?"
+
+#: lib/argp-parse.c:611
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: An iomarca argóintí\n"
+
+#: lib/argp-parse.c:754
+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
+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"
+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"
+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"
+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"
+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"
+msgstr "%s: rogha anaithnid `--%s'\n"
+
+#: lib/getopt.c:704 lib/getopt.c:707
+#, 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"
+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"
+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"
+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"
+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
+msgid "memory exhausted"
+msgstr "cuimhne ídithe"
+
+#: lib/openat-die.c:35
+#, c-format
+msgid "unable to record current working directory"
+msgstr "ní féidir an chomhadlann reatha a thaifeadadh"
+
+#: lib/openat-die.c:48
+#, 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.
+#.
+#. 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.
+#: lib/quotearg.c:249
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:250
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. 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
+msgid "^[yY]"
+msgstr "^[yYiIsS]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. 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
+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
+#, c-format
+msgid "stdout"
+msgstr "stdout"
+
+#: lib/rtapelib.c:512
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Ní féidir cianbhlaosc a rith"
+
+#. 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
+msgid "(C)"
+msgstr "©"
+
+#: lib/version-etc.c:67
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos nuaí <http://gnu.org/licenses/gpl.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
+#, 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
+#, 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
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"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:103
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%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:109
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%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:116
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %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:123
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"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:131
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, and others.\n"
+msgstr ""
+"Scríofa ag %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, agus daoine eile nach iad.\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
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Seol tuairiscí fabhtanna chuig <%s>.\n"
+
+#: lib/version-etc.c:182
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>.\n"
+msgstr "Leathanach baile %s: <http://www.gnu.org/software/%s/>.\n"
+
+#: lib/version-etc.c:184
+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:142
+msgid "Input string too long"
+msgstr "Teaghrán ionchurtha rófhada"
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr "Earráid chomhréire in uimhir"
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Ní féidir maolán a dháileadh\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr "Ní féidir maolán a dháileadh"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Bain triail as `%s --help' chun tuilleadh eolais a fháil.\n"
+
+#: rmt/rmt.c:308
+#, 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á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'"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+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:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Comhadchríoch gan choinne\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "Comhadchríoch gan choinne"
+
+#: rmt/rmt.c:672
+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
+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
+msgid "Total bytes written"
+msgstr "Bearta scríofa go hiomlán"
+
+#: src/buffer.c:361 src/buffer.c:375
+msgid "Total bytes read"
+msgstr "Bearta léite go hiomlán"
+
+#: src/buffer.c:365
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Bearta scriosta go hiomlán: %s\n"
+
+#: src/buffer.c:454
+msgid "(pipe)"
+msgstr "(píopa)"
+
+#: src/buffer.c:477
+msgid "Invalid value for record_size"
+msgstr "Luach neamhbhailí do record_size"
+
+#: src/buffer.c:480
+msgid "No archive name given"
+msgstr "Ní thugtar ainm na cartlainne"
+
+#: src/buffer.c:524
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Ní féidir cartlann stdin/stdout a fhíorú"
+
+#: src/buffer.c:538
+#, 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
+msgid "Cannot update compressed archives"
+msgstr "Ní féidir cartlanna comhbhrúite a nuashonrú"
+
+#: src/buffer.c:672
+msgid "At beginning of tape, quitting now"
+msgstr "Tosach na téipe, ag scor anois"
+
+#: src/buffer.c:678
+msgid "Too many errors, quitting"
+msgstr "An iomarca earráidí, ag scor"
+
+#: src/buffer.c:697
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Méid taifid = %lu bloc"
+msgstr[1] "Méid taifid = %lu bhloc"
+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
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Bloc neamhailínithe (%lu beart) sa chartlann"
+msgstr[1] "Bloc neamhailínithe (%lu bheart) sa chartlann"
+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
+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
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "Níor stopadh rmtlseek ag teorainn taifid"
+
+#: src/buffer.c:881
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: tá uimhir imleabhair neamhbhailí ann"
+
+#: src/buffer.c:916
+msgid "Volume number overflow"
+msgstr "Uimhir imleabhair thar maoil"
+
+#: src/buffer.c:931
+#, 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
+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
+msgid "WARNING: Archive is incomplete"
+msgstr "RABHADH: Tá an chartlann neamhiomlán"
+
+#: src/buffer.c:956
+#, 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 ainm Cuir comhadainm nua ar an chéad imleabhar eile (agus gach ceann ina dhiaidh)\n"
+" q Tobscoir tar\n"
+" y nó líne nua Lean ar aghaidh\n"
+
+#: src/buffer.c:961
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Sceith fobhlaosc\n"
+
+#: src/buffer.c:962
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Priontáil an liosta seo\n"
+
+#: src/buffer.c:969
+msgid "No new volume; exiting.\n"
+msgstr "Níl aon imleabhar nua; ag scor.\n"
+
+#: src/buffer.c:1002
+msgid "File name not specified. Try again.\n"
+msgstr "Ainm an chomhaid gan sonrú. Bain triail eile as.\n"
+
+#: src/buffer.c:1015
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Ionchur neamhbhailí. Iontráil ? chun cabhair a fháil.\n"
+
+#: src/buffer.c:1066
+#, c-format
+msgid "%s command failed"
+msgstr "Theip ar ordú %s"
+
+#: src/buffer.c:1221
+#, 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
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "Ní leanann %s ar an imleabhar seo"
+
+#: src/buffer.c:1239
+#, 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
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Tá an t-imleabhar seo as ord (%s - %s != %s)"
+
+#: src/buffer.c:1303
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Lipéad ar chartlann nach comhoiriúnaithe le %s"
+
+#: src/buffer.c:1306
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Níl an t-imleabhar %s comhoiriúnaithe le %s"
+
+#: src/buffer.c:1402
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: ní féidir an comhadainm seo a stóráil i gceanntásc il-imleabhar GNU; teasctha"
+
+#: src/buffer.c:1621
+msgid "write did not end on a block boundary"
+msgstr "níor stop an scríobh ag teorainn bhloic"
+
+#: src/compare.c:96
+#, c-format
+msgid "Could only read %lu of %lu byte"
+msgid_plural "Could only read %lu of %lu bytes"
+msgstr[0] "Níorbh fhéidir ach %lu de %lu beart a léamh"
+msgstr[1] "Níorbh fhéidir ach %lu de %lu bheart a léamh"
+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
+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
+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
+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
+msgid "Mode differs"
+msgstr "Tá difríocht idir na móid"
+
+#: src/compare.c:206
+msgid "Uid differs"
+msgstr "Tá difríocht idir na UIDanna"
+
+#: src/compare.c:208
+msgid "Gid differs"
+msgstr "Tá difríocht idir na GIDanna"
+
+#: src/compare.c:212
+msgid "Mod time differs"
+msgstr "Tá difríocht idir na hamanna modhnaithe"
+
+#: src/compare.c:216 src/compare.c:420
+msgid "Size differs"
+msgstr "Tá difríocht idir na méideanna"
+
+#: src/compare.c:270
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ní ceangailte le %s"
+
+#: src/compare.c:293
+msgid "Symlink differs"
+msgstr "Tá difríocht idir na naisc shiombalacha"
+
+#: src/compare.c:322
+msgid "Device number differs"
+msgstr "Tá difríocht idir na huimhreacha gléis"
+
+#: src/compare.c:462
+#, c-format
+msgid "Verify "
+msgstr "Fíoraigh "
+
+#: src/compare.c:469
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Cineál anaithnid comhaid `%c', déan diff mar ghnáthchomhad"
+
+#: src/compare.c:524
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Tá comhaid sa chartlann agus a réimíreanna scriosta."
+
+#: src/compare.c:526
+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
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "THEIP AR DHEIMHNIÚ: aimsíodh %d ceanntásc neamhbhailí"
+msgstr[1] "THEIP AR DHEIMHNIÚ: aimsíodh %d cheanntásc neamhbhailí"
+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
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Bloc nialasach scoite ag %s"
+
+#: src/create.c:67
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: tá clib chomhadlainne taisce %s ann; %s"
+
+#: src/create.c:272
+#, 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
+#, 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
+msgid "Generating negative octal headers"
+msgstr "Ceanntásca ochtnártha diúltacha á gcruthú"
+
+#: src/create.c:624 src/create.c:687
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: ainm comhaid rófhada (uasmhéid %d); gan dumpáil"
+
+#: src/create.c:634
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: ainm comhaid rófhada (ní féidir é a scoilt); gan dumpáil"
+
+#: src/create.c:661
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: ainm naisc rófhada; gan dumpáil"
+
+#: src/create.c:1076
+#, 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 beart níos lú sa chomhad; ag stuáil le nialais"
+msgstr[1] "%s: %s bheart níos lú sa chomhad; ag stuáil le nialais"
+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
+#, 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
+msgid "contents not dumped"
+msgstr "ábhar gan dumpáil"
+
+#: src/create.c:1361
+#, 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"
+msgstr "Naisc le %s ar iarraidh.\n"
+
+#: src/create.c:1535
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: comhad gan athrú; gan dumpáil"
+
+#: src/create.c:1543
+#, 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
+msgid "directory not dumped"
+msgstr "níor dumpáladh an chomhadlann"
+
+#: src/create.c:1659
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: athraíodh an comhad agus á léamh"
+
+#: src/create.c:1739
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: rinneadh neamhshuim ar an soicéad"
+
+#: src/create.c:1744
+#, 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
+msgid "Skipping to next header"
+msgstr "Ag bogadh go dtí an chéad cheanntásc eile"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "Comhad nach ceanntásc á scriosadh ón chartlann"
+
+#: src/extract.c:198
+#, 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
+#, 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
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Bunoscionntacht gan choinne agus comhadlann á cruthú"
+
+#: src/extract.c:588
+#, 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
+msgid "Extracting contiguous files as regular files"
+msgstr "Comhaid theorantacha á mbaint amach mar ghnáthchomhaid"
+
+#: src/extract.c:997
+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
+#, 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
+msgid "Unexpected long name header"
+msgstr "Ceanntásc ainm fada gan choinne"
+
+#: src/extract.c:1156
+#, 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
+#, 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
+#, 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
+#, 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
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Athainmníodh an chomhadlann ó %s"
+
+#: src/incremen.c:460
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Athainmníodh an chomhadlann"
+
+#: src/incremen.c:505
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Comhadlann nua"
+
+#: src/incremen.c:903 src/incremen.c:920
+msgid "Invalid time stamp"
+msgstr "Stampa ama neamhbhailí"
+
+#: src/incremen.c:959
+msgid "Invalid modification time (seconds)"
+msgstr "Am neamhbhailí mionathraithe (soicindí)"
+
+#: src/incremen.c:974
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Am neamhbhailí mionathraithe (nanashoicindí)"
+
+#: src/incremen.c:994
+msgid "Invalid device number"
+msgstr "Uimhir neamhbhailí gléis"
+
+#: src/incremen.c:1009
+msgid "Invalid inode number"
+msgstr "Uimhir inode as raon"
+
+#: src/incremen.c:1060 src/incremen.c:1097
+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
+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
+msgid "Unexpected EOF in snapshot file"
+msgstr "Comhadchríoch gan choinne sa chomhad roghbhlúire"
+
+#: src/incremen.c:1076 src/incremen.c:1116
+msgid "Unexpected field value in snapshot file"
+msgstr "Luach réimse gan choinne sa chomhad roghbhlúire"
+
+#: src/incremen.c:1211
+msgid "Missing record terminator"
+msgstr "Críochnaitheoir taifid ar iarraidh"
+
+#: src/incremen.c:1262 src/incremen.c:1265
+msgid "Bad incremental file format"
+msgstr "Drochfhormáid incriminteach"
+
+#: src/incremen.c:1284
+#, 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
+#, 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
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "dumpdir míchumtha: 'X' faoi dhó"
+
+#: src/incremen.c:1462
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "dumpdir míchumtha: ainm folamh i 'R'"
+
+#: src/incremen.c:1475
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "dumpdir míchumtha: 'T' gan 'R' roimhe"
+
+#: src/incremen.c:1481
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "dumpdir míchumtha: ainm folamh i 'T'"
+
+#: src/incremen.c:1501
+#, 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
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "dumpdir míchumtha: níor úsáideadh 'X' riamh"
+
+#: src/incremen.c:1551
+#, 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
+#, 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
+#, 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
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s á scriosadh\n"
+
+#: src/incremen.c:1639
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ní féidir scriosadh a dhéanamh"
+
+#: src/list.c:113
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: ag fágáil ar lár"
+
+#: src/list.c:131
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloc %s: ** bloc de NULanna **\n"
+
+#: src/list.c:155
+#, 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
+#, c-format
+msgid "block %s: "
+msgstr "bloc %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:671
+#, 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
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr ""
+"Tá an luach ochtnártha %.*s as raon %s sa chartlann;\n"
+"ag glacadh le comhlánú dénártha"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:737
+#, 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
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Tá ceanntásca le bunuimhir 64 i léig sa chartlann"
+
+#: src/list.c:772
+#, 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
+#, 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
+#, 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
+#, 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
+#, c-format
+msgid " link to %s\n"
+msgstr " nasc le %s\n"
+
+#: src/list.c:1234
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " cineál anaithnid comhaid %s\n"
+
+#: src/list.c:1252
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Nasc Fada--\n"
+
+#: src/list.c:1256
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Ainm Fada--\n"
+
+#: src/list.c:1260
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Ceanntásc Imleabhair--\n"
+
+#: src/list.c:1268
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Ar lean ag beart %s--\n"
+
+#: src/list.c:1296
+msgid "Creating directory:"
+msgstr "Comhadlann á cruthú:"
+
+#: src/misc.c:456
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s á athainmniú go %s\n"
+
+#: src/misc.c:465 src/misc.c:483
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Ní féidir athainmniú go %s"
+
+#: src/misc.c:488
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "%s á athainmniú go %s arís\n"
+
+#: src/misc.c:615
+msgid "Cannot save working directory"
+msgstr "Ní féidir an chomhadlann reatha a shábháil"
+
+#: src/misc.c:621
+msgid "Cannot change working directory"
+msgstr "Ní féidir an chomhadlann reatha a athrú"
+
+#: src/misc.c:711
+msgid "child process"
+msgstr "macphróiseas"
+
+#: src/misc.c:720
+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,"
+msgstr "Aimsíodh saoróga in ainmneacha comhaid."
+
+#: src/names.c:595
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+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
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Ní sa chartlann é"
+
+#: src/names.c:615
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Níl rud riachtanach sa chartlann"
+
+#: src/tar.c:79
+#, 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
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Formáid neamhbhailí chartlainne"
+
+#: src/tar.c:180
+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
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Stíl anaithnid athfhriotail `%s'. Bain triail as `%s --quoting-style=help' chun liosta a fheiceáil."
+
+#: src/tar.c:336
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"Sábhálann GNU tar comhaid le chéile i gcartlann aonair ar théip nó ar dhiosca, agus is féidir comhaid ar leith a athchóiriú as an gcartlann.\n"
+"\n"
+"Samplaí:\n"
+" tar -cf cartlann.tar fú barr # Cruthaigh cartlann.tar as comhaid fú 7 barr.\n"
+" tar -tvf cartlann.tar # Taispeáin gach comhad i cartlann.tar (foclach).\n"
+" tar -xf cartlann.tar # Bain gach comhad amach as cartlann.tar.\n"
+
+#: src/tar.c:345
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Is é `~' an iarmhír chúltaca, mura dtugtar é le --suffix nó le hathróg\n"
+"timpeallachta SIMPLE_BACKUP_SUFFIX.\n"
+"Is féidir an modh rialaithe foinsí a shocrú le --backup nó le hathróg\n"
+"thimpeallachta VERSION_CONTROL. Is iad seo na luachanna bailí:\n"
+"\n"
+" none, off ná déan cúltaca riamh\n"
+" t, numbered déan cúltacaí agus uimhreacha orthu\n"
+" nil, existing 'numbered' má tá uimhreacha orthu anois, 'simple' mura bhfuil\n"
+" never, simple déan cúltacaí simplí i gcónaí\n"
+
+#: src/tar.c:370
+msgid "Main operation mode:"
+msgstr "Príomh-mhód oibre:"
+
+#: src/tar.c:373
+msgid "list the contents of an archive"
+msgstr "taispeáin an t-ábhar i gcartlann"
+
+#: src/tar.c:375
+msgid "extract files from an archive"
+msgstr "bain comhaid as cartlann"
+
+#: src/tar.c:378
+msgid "create a new archive"
+msgstr "cruthaigh cartlann nua"
+
+#: src/tar.c:380
+msgid "find differences between archive and file system"
+msgstr "taispeáin difríochtaí idir cartlann agus córas comhaid"
+
+#: src/tar.c:383
+msgid "append files to the end of an archive"
+msgstr "iarcheangail le deireadh cartlainne"
+
+#: src/tar.c:385
+msgid "only append files newer than copy in archive"
+msgstr "ná hiarcheangail ach comhaid mhionathraithe leis an gcartlann"
+
+#: src/tar.c:387
+msgid "append tar files to an archive"
+msgstr "iarcheangail comhaid tar le cartlann"
+
+#: src/tar.c:390
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "scrios as an gcartlann (nach ar théipeanna maighnéadacha!)"
+
+#: src/tar.c:392
+msgid "test the archive volume label and exit"
+msgstr "tástáil lipéad imleabhair na cartlainne agus scoir"
+
+#: src/tar.c:397
+msgid "Operation modifiers:"
+msgstr "Mionathraitheoirí oibríochta:"
+
+#: src/tar.c:400
+msgid "handle sparse files efficiently"
+msgstr "caith le gannchomhaid go héifeachtach"
+
+#: src/tar.c:401
+msgid "MAJOR[.MINOR]"
+msgstr "PRÍOMH[.MION]"
+
+#: src/tar.c:402
+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
+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
+msgid "handle new GNU-format incremental backup"
+msgstr "déan cúltaca incriminteach nua-aoise GNU"
+
+#: src/tar.c:408
+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
+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 "ná próiseáil ach an UIMHIRú leagan de gach comhad sa chartlann; níl an rogha bhailí ach in éineacht le ceann de na fo-orduithe --delete, --diff, --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
+msgid "archive is seekable"
+msgstr "tá an chartlann inchuardaithe"
+
+#: src/tar.c:418
+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
+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
+msgid "Overwrite control:"
+msgstr "Rialú forscríofa:"
+
+#: src/tar.c:430
+msgid "attempt to verify the archive after writing it"
+msgstr "fíoraigh an chartlann i ndiaidh ag scríobh"
+
+#: src/tar.c:432
+msgid "remove files after adding them to the archive"
+msgstr "scrios comhaid i ndiaidh iad a chur leis an gcartlann"
+
+#: src/tar.c:434
+msgid "don't replace existing files when extracting"
+msgstr "ná forscríobh comhaid atá ann le linn baint amach"
+
+#: src/tar.c:436
+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
+msgid "overwrite existing files when extracting"
+msgstr "forscríobh comhaid atá ann le linn baint amach"
+
+#: src/tar.c:440
+msgid "remove each file prior to extracting over it"
+msgstr "scrios gach comhaid sula scríobhtar air"
+
+#: src/tar.c:442
+msgid "empty hierarchies prior to extracting directory"
+msgstr "folmhaigh géagchóras sula mbaintear comhadlann amach"
+
+#: src/tar.c:444
+msgid "preserve metadata of existing directories"
+msgstr "ná forscríobh meiteashonraí comhadlainne"
+
+#: src/tar.c:446
+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
+msgid "Select output stream:"
+msgstr "Roghnaigh sruth aschurtha:"
+
+#: src/tar.c:455
+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
+msgid "COMMAND"
+msgstr "ORDÚ"
+
+#: src/tar.c:457
+msgid "pipe extracted files to another program"
+msgstr "píopaigh comhaid bhainte go ríomhchlár eile"
+
+#: src/tar.c:459
+msgid "ignore exit codes of children"
+msgstr "ná bac le cóid scortha na macphróiseas"
+
+#: src/tar.c:461
+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
+msgid "Handling of file attributes:"
+msgstr "Tréithe comhaid á láimhseáil:"
+
+#: src/tar.c:469
+msgid "force NAME as owner for added files"
+msgstr "éiligh AINM mar úinéir de chomhaid bhreise"
+
+#: src/tar.c:471
+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
+msgid "DATE-OR-FILE"
+msgstr "DÁTA-NÓ-COMHAD"
+
+#: src/tar.c:473
+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
+msgid "CHANGES"
+msgstr "ATHRUITHE"
+
+#: src/tar.c:475
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "déan ATHRUITHE ar mhód de chomhaid bhreise"
+
+#: src/tar.c:477
+msgid "METHOD"
+msgstr "MODH"
+
+#: src/tar.c:478
+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 "coimeád amanna rochtana de chomhaid dhumpáilte, trí athchóiriú na n-amanna i 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
+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"
+msgstr "bain triail as úinéireacht a choinneáil"
+
+#: src/tar.c:486
+msgid "extract files as yourself"
+msgstr "bain comhaid amach mar thusa féin"
+
+#: src/tar.c:488
+msgid "always use numbers for user/group names"
+msgstr "bain úsáid as uimhreacha d'ainmneacha úsáideora/grúpa"
+
+#: src/tar.c:490
+msgid "extract information about file permissions (default for superuser)"
+msgstr "bain eolas faoi cheadanna (réamhshocrú don fhorúsáideoir)"
+
+#: src/tar.c:494
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "cuir umask an úsáideora i bhfeidhm agus ceadanna á mbaint ón chartlann (réamhshocrú do ghnáthúsáideoirí)"
+
+#: src/tar.c:496
+msgid "sort names to extract to match archive"
+msgstr "sórtáil ainmneacha le cur in oiriúint"
+
+#: src/tar.c:499
+msgid "same as both -p and -s"
+msgstr "ar comhbhrí le -p agus -s araon"
+
+#: src/tar.c:501
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "ná socraigh amanna mionathraithe ná ceadanna de na comhadlanna go dtí go bhfuil an bhaint curtha i gcrích"
+
+#: src/tar.c:504
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "cealaigh an éifeacht de rogha --delay-directory-restore"
+
+#: src/tar.c:509
+msgid "Device selection and switching:"
+msgstr "Roghnú gléis agus malartú:"
+
+#: src/tar.c:511
+msgid "ARCHIVE"
+msgstr "CARTLANN"
+
+#: src/tar.c:512
+msgid "use archive file or device ARCHIVE"
+msgstr "bain úsáid as cartlann chomhaid nó gléas CARTLANN"
+
+#: src/tar.c:514
+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
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "bain úsáid as ORDÚ in ionad rmt"
+
+#: src/tar.c:518
+msgid "use remote COMMAND instead of rsh"
+msgstr "bain úsáid as ORDÚ cian in ionad rsh"
+
+#: src/tar.c:522
+msgid "specify drive and density"
+msgstr "sonraigh tiomántán agus a dhlús"
+
+#: src/tar.c:536
+msgid "create/list/extract multi-volume archive"
+msgstr "cruthaigh/liostaigh/bain amach cartlann le hiliomad imleabhair"
+
+#: src/tar.c:538
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "athraigh téip i ndiaidh UIMHIR × 1024 beart"
+
+#: src/tar.c:540
+msgid "run script at end of each tape (implies -M)"
+msgstr "rith script i ndiaidh gach téip (-M intuigthe)"
+
+#: src/tar.c:543
+msgid "use/update the volume number in FILE"
+msgstr "úsáid/nuashonraigh an uimhir imleabhair i gCOMHAD"
+
+#: src/tar.c:548
+msgid "Device blocking:"
+msgstr "Blocáil ghléis:"
+
+#: src/tar.c:550
+msgid "BLOCKS"
+msgstr "BLOIC"
+
+#: src/tar.c:551
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOIC × 512 beart sa taifead"
+
+#: src/tar.c:553
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "UIMHIR beart sa taifead, iolraí de 512"
+
+#: src/tar.c:555
+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
+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
+msgid "Archive format selection:"
+msgstr "Roghnú formáide:"
+
+#: src/tar.c:564 tests/genfile.c:152
+msgid "FORMAT"
+msgstr "FORMÁID"
+
+#: src/tar.c:565
+msgid "create archive of the given format"
+msgstr "cruthaigh cartlann san fhormáid seo"
+
+#: src/tar.c:567
+msgid "FORMAT is one of the following:"
+msgstr "Is FORMÁID ceann de na rudaí seo:"
+
+#: src/tar.c:568
+msgid "old V7 tar format"
+msgstr "seanfhormáid V7 tar"
+
+#: src/tar.c:571
+msgid "GNU format as per tar <= 1.12"
+msgstr "formáid de réir GNU tar <= 1.12"
+
+#: src/tar.c:573
+msgid "GNU tar 1.13.x format"
+msgstr "formáid de réir GNU tar 1.13"
+
+#: src/tar.c:575
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "formáid POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:577
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "formáid POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:578
+msgid "same as pax"
+msgstr "ar comhbhrí le pax"
+
+#: src/tar.c:581
+msgid "same as --format=v7"
+msgstr "is ionann le --format=v7"
+
+#: src/tar.c:584
+msgid "same as --format=posix"
+msgstr "is ionann le --format=posix"
+
+#: src/tar.c:585
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "lorgfhocal[[:]=luach][,lorgfhocal[[:]=luach]]..."
+
+#: src/tar.c:586
+msgid "control pax keywords"
+msgstr "rialaigh lorgfhocail pax"
+
+#: src/tar.c:587
+msgid "TEXT"
+msgstr "TÉACS"
+
+#: src/tar.c:588
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+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
+msgid "Compression options:"
+msgstr "Roghanna comhbhrúite:"
+
+#: src/tar.c:595
+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
+msgid "do not use archive suffix to determine the compression program"
+msgstr "ná húsáid iarmhír na cartlainne chun an clár 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
+msgid "filter the archive through lzop"
+msgstr "scag an chartlann le lzop"
+
+#: src/tar.c:613
+msgid "filter the archive through xz"
+msgstr "scag an chartlann le xz"
+
+#: src/tar.c:614
+msgid "PROG"
+msgstr "CLÁR"
+
+#: src/tar.c:615
+msgid "filter through PROG (must accept -d)"
+msgstr "scag le CLÁR (ní foláir -d)"
+
+#: src/tar.c:620
+msgid "Local file selection:"
+msgstr "Roghnú comhaid logánta:"
+
+#: src/tar.c:623
+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
+msgid "DIR"
+msgstr "COMHADLANN"
+
+#: src/tar.c:625
+msgid "change to directory DIR"
+msgstr "athraigh go dtí COMHADLANN"
+
+#: src/tar.c:627
+msgid "get names to extract or create from FILE"
+msgstr "tóg ainmneacha le baint/cruthú as comhad COMHAD"
+
+#: src/tar.c:629
+msgid "-T reads null-terminated names, disable -C"
+msgstr "léigh ainmneacha, foirceanta le NULanna; múch -C"
+
+#: src/tar.c:631
+msgid "disable the effect of the previous --null option"
+msgstr "díchumasaigh an rogha --null roimhe seo"
+
+#: src/tar.c:633
+msgid "unquote filenames read with -T (default)"
+msgstr "bain comharthaí athfhriotail ó chomhadainmneacha a léadh le -T (réamhshocrú)"
+
+#: src/tar.c:635
+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
+msgid "PATTERN"
+msgstr "PATRÚN"
+
+#: src/tar.c:637
+msgid "exclude files, given as a PATTERN"
+msgstr "fág comhaid as an áireamh, tugtha mar PHATRÚN"
+
+#: src/tar.c:639
+msgid "exclude patterns listed in FILE"
+msgstr "fág as an áireamh aon phatrún atá i gCOMHAD"
+
+#: src/tar.c:641
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "gabh thar ábhar na gcomhadlann ina bhfuil CACHEDIR.TAG, seachas an comhad clibe féin"
+
+#: src/tar.c:644
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "gabh thar gach rud faoi chomhadlanna ina bhfuil CACHEDIR.TAG"
+
+#: src/tar.c:647
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "gabh thar chomhadlanna ina bhfuil CACHEDIR.TAG"
+
+#: src/tar.c:649
+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
+msgid "exclude everything under directories containing FILE"
+msgstr "gabh thar gach rud faoi chomhadlanna ina bhfuil COMHAD"
+
+#: src/tar.c:654
+msgid "exclude directories containing FILE"
+msgstr "gabh thar chomhadlanna a bhfuil COMHAD iontu"
+
+#: src/tar.c:656
+msgid "exclude version control system directories"
+msgstr "gabh thar chomhadlanna a bhaineann le córas rialaithe foinsí"
+
+#: src/tar.c:658
+msgid "avoid descending automatically in directories"
+msgstr "ná téigh isteach i bhfochomhadlanna go huathoibríoch"
+
+#: src/tar.c:660
+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
+msgid "recurse into directories (default)"
+msgstr "téigh isteach i gcomhadlanna (réamhshocrú)"
+
+#: src/tar.c:664
+msgid "don't strip leading `/'s from file names"
+msgstr "ná struipeáil `/' tosaigh ó ainmneacha comhaid"
+
+#: src/tar.c:666
+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
+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
+msgid "MEMBER-NAME"
+msgstr "AINM-BAILL"
+
+#: src/tar.c:670
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "tosaigh ag ball AINM-BAILL sa chartlann"
+
+#: src/tar.c:672
+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
+msgid "DATE"
+msgstr "DÁTA"
+
+#: src/tar.c:675
+msgid "compare date and time when data changed only"
+msgstr "déan comparáid le dáta/am modhnaithe"
+
+#: src/tar.c:676
+msgid "CONTROL"
+msgstr "MODH"
+
+#: src/tar.c:677
+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
+msgid "STRING"
+msgstr "TEAGHRÁN"
+
+#: src/tar.c:679
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+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
+msgid "File name transformations:"
+msgstr "Trasfhoirmiú ainmneacha comhaid:"
+
+#: src/tar.c:686
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "struipeáil UIMHIR comhpháirt tosaigh ó ainmneacha comhaid"
+
+#: src/tar.c:688
+msgid "EXPRESSION"
+msgstr "SLONN"
+
+#: src/tar.c:689
+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
+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
+msgid "ignore case"
+msgstr "ná bí cásíogair"
+
+# subject is "exclude patterns"
+#: src/tar.c:700
+msgid "patterns match file name start"
+msgstr "comhoiriúnaíonn patrúin do thosach ainm an chomhaid"
+
+#: src/tar.c:702
+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
+msgid "case sensitive matching (default)"
+msgstr "dealaigh idir litreacha beaga/móra (réamhshocrú)"
+
+#: src/tar.c:706
+msgid "use wildcards (default for exclusion)"
+msgstr "úsáid saoróga (réamhshocrú do phatrúin eisiata)"
+
+#: src/tar.c:708
+msgid "verbatim string matching"
+msgstr "comhoiriúnú teaghráin carachtar ar charachtar"
+
+#: src/tar.c:710
+msgid "wildcards do not match `/'"
+msgstr "ní ghlacann saoróga le `/'"
+
+#: src/tar.c:712
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "comhoiriúnaíonn saoróga do `/' (réamhshocrú le patrúin eisiata)"
+
+#: src/tar.c:717
+msgid "Informative output:"
+msgstr "Aschur faisnéiseach:"
+
+#: src/tar.c:720
+msgid "verbosely list files processed"
+msgstr "taispeáin gach comhad atá próiseáilte, go foclach"
+
+#: src/tar.c:722
+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
+msgid "ACTION"
+msgstr "GNÍOMH"
+
+#: src/tar.c:725
+msgid "execute ACTION on each checkpoint"
+msgstr "déan GNÍOMH ag gach seicphointe"
+
+#: src/tar.c:728
+msgid "print a message if not all links are dumped"
+msgstr "taispeáin eolas mura bhfuil gach nasc dumpáilte"
+
+#: src/tar.c:729
+msgid "SIGNAL"
+msgstr "COMHARTHA"
+
+#: src/tar.c:730
+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 "taispeáin líon iomlán na mbeart tar éis na cartlainne a phróiseáil; le hargóint - taispeáin líon iomlán na mbeart nuair a thugtar an COMHARTHA seo; 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
+msgid "print file modification dates in UTC"
+msgstr "taispeáin dátaí mionathraithe de réir UTC"
+
+#: src/tar.c:737
+msgid "send verbose output to FILE"
+msgstr "scríobh aschur foclach i gCOMHAD"
+
+#: src/tar.c:739
+msgid "show block number within archive with each message"
+msgstr "taispeáin bloc sa chartlann le gach teachtaireacht"
+
+#: src/tar.c:741
+msgid "ask for confirmation for every action"
+msgstr "iarr deimhniú ar gach gníomh"
+
+#: src/tar.c:744
+msgid "show tar defaults"
+msgstr "taispeáin réamhshocruithe tar"
+
+#: src/tar.c:746
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "agus á liostú nó á bhaint amach, taispeáin gach comhadlann nach bhfuil comhoiriúnaithe don chuardach"
+
+#: src/tar.c:748
+msgid "show file or archive names after transformation"
+msgstr "taispeáin ainmneacha comhaid/cartlainne i ndiaidh trasfhoirmithe"
+
+#: src/tar.c:751
+msgid "STYLE"
+msgstr "STÍL"
+
+#: src/tar.c:752
+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
+msgid "additionally quote characters from STRING"
+msgstr "cuir carachtair athfhriotail timpeall na carachtair ó TEAGHRÁN"
+
+#: src/tar.c:756
+msgid "disable quoting for characters from STRING"
+msgstr "ná húsáid comharthaí athfhriotail timpeall carachtair ó TEAGHRÁN"
+
+#: src/tar.c:761
+msgid "Compatibility options:"
+msgstr "Roghanna Comhoiriúnachta:"
+
+#: src/tar.c:764
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "is ionann le --old-archive le linn cruthaithe; is ionann le --no-same-owner le linn baint"
+
+#: src/tar.c:769
+msgid "Other options:"
+msgstr "Roghanna eile:"
+
+#: src/tar.c:772
+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"
+msgstr "Ná tabhair ach ceann de na roghanna `-Acdtrux'"
+
+#: src/tar.c:930
+msgid "Conflicting compression options"
+msgstr "Roghanna contrártha comhbhrúite"
+
+#: src/tar.c:986
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Comhartha anaithnid: %s"
+
+#: src/tar.c:1010
+msgid "Date sample file not found"
+msgstr "Comhad samplach dáta gan aimsiú"
+
+#: src/tar.c:1018
+#, 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
+#, 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
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: léadh an liosta comhad cheana"
+
+#: src/tar.c:1185
+#, 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:"
+msgstr "Argóintí bailí do roghanna --quoting-style:"
+
+#: src/tar.c:1253
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Luachanna réamhshocraithe don tar *seo*:\n"
+
+#: src/tar.c:1294
+msgid "Invalid blocking factor"
+msgstr "Fachtóir bacainneach neamhbhailí"
+
+#: src/tar.c:1401
+msgid "Invalid tape length"
+msgstr "Fad téipe neamhbhailí"
+
+#: src/tar.c:1441
+msgid "More than one threshold date"
+msgstr "Níos mó ná spriocdháta amháin"
+
+#: src/tar.c:1496 src/tar.c:1499
+msgid "Invalid sparse version value"
+msgstr "Leagan neamhbhailí ar fhormáid na ngannchomhad"
+
+#: src/tar.c:1584
+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
+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"
+msgstr "%s: Grúpa neamhbhailí"
+
+#: src/tar.c:1717
+msgid "Invalid mode given on option"
+msgstr "Mód neamhbhailí ar rogha"
+
+#: src/tar.c:1774
+msgid "Invalid number"
+msgstr "Uimhir neamhbhailí"
+
+#: src/tar.c:1796
+msgid "Invalid owner"
+msgstr "Úinéir neamhbhailí"
+
+#: src/tar.c:1822
+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
+msgid "Invalid record size"
+msgstr "Méid taifid neamhbhailí"
+
+#: src/tar.c:1835
+#, 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
+msgid "Invalid number of elements"
+msgstr "Tá líon na mball neamhbhailí"
+
+#: src/tar.c:1892
+msgid "Only one --to-command option allowed"
+msgstr "Ní cheadaítear ach aon rogha --to-command amháin"
+
+#: src/tar.c:1968
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Tá an argóint dlúis míchumtha: %s"
+
+#: src/tar.c:1994
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Dlús anaithnid: `%c'"
+
+#: src/tar.c:2011
+#, 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
+msgid "[FILE]..."
+msgstr "[COMHAD]..."
+
+#: src/tar.c:2152
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Tá gá le hargóint ar an seanrogha `%c'."
+
+#: src/tar.c:2234
+msgid "--occurrence is meaningless without a file list"
+msgstr "tá an rogha --occurrence gan bhrí in éagmais liosta comhad"
+
+#: src/tar.c:2240
+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
+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
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Ní féidir --listed-incremental a úsáid le --newer"
+
+#: src/tar.c:2292
+#, 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: Lipéad imleabhair rófhada (%lu beart ar a mhéad)"
+msgstr[1] "%s: Lipéad imleabhair rófhada (%lu bheart ar a mhéad)"
+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
+msgid "Cannot verify multi-volume archives"
+msgstr "Ní féidir cartlanna le hiliomad imleabhair a fhíorú"
+
+#: src/tar.c:2307
+msgid "Cannot verify compressed archives"
+msgstr "Ní féidir cartlanna comhbhrúite a fhíorú"
+
+#: src/tar.c:2313
+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
+msgid "Cannot concatenate compressed archives"
+msgstr "Ní féidir cartlanna comhbhrúite a iarcheangal"
+
+#: src/tar.c:2331
+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
+msgid "Volume length cannot be less than record size"
+msgstr "Ní cheadaítear fad an imleabhair a bheith níos lú ná an mhéid taifid"
+
+#: src/tar.c:2352
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "Níl --preserve-order comhoiriúnach do --listed-incremental"
+
+#: src/tar.c:2363
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Ní chruthófar cartlann fholamh (go cladhartha)"
+
+#: src/tar.c:2388
+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"
+msgstr "Ní foláir rogha amháin de `-Acdtrux' ar a laghad"
+
+#: src/tar.c:2528
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Scor le stádas teipthe de bharr earráidí roimhe seo"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: Chrap an comhad %s beart"
+msgstr[1] "%s: Chrap an comhad %s bheart"
+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
+#, 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
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Ní féidir an patrún %s a úsáid"
+
+#: src/xheader.c:192
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Ní féidir an lorgfhocal %s a shárú"
+
+#: src/xheader.c:496
+msgid "Malformed extended header: missing length"
+msgstr "Ceanntásc míchumtha breisithe: fad ar iarraidh"
+
+#: src/xheader.c:504
+msgid "Extended header length is out of allowed range"
+msgstr "Fad an cheanntáisc breisithe as raon"
+
+#: src/xheader.c:511
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Fad %*s as raon sa cheanntásc breisithe"
+
+#: src/xheader.c:523
+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
+msgid "Malformed extended header: missing equal sign"
+msgstr "Ceanntásc míchumtha breisithe: sín chothroime ar iarraidh"
+
+#: src/xheader.c:537
+msgid "Malformed extended header: missing newline"
+msgstr "Ceanntásc míchumtha breisithe: líne nua ar iarraidh"
+
+#: src/xheader.c:574
+#, 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
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Tá an péire a cruthaíodh (lorgfhocal/luach) rófhada (lorgfhocal=%s, fad=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:810
+#, 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
+#, 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
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Ceanntásc míchumtha breisithe: %s=%s sa bhreis"
+
+#: src/xheader.c:1326
+#, 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
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Ceanntásc míchumtha breisithe: %s neamhbhailí: corruimhir de luachanna"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: teorainn ama neamhbhailí"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: gníomh anaithnid seicphointe"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "scríobh"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "léamh"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Seicphointe scríofa %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Seicphointe léimh %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"Láimhseálann genfile comhaid shonraí le haghaidh an tsratha tástála GNU paxutils.\n"
+"Is iad na ROGHANNA:\n"
+
+#: tests/genfile.c:126
+msgid "File creation options:"
+msgstr "Roghanna - cruthú comhad:"
+
+#: tests/genfile.c:127 tests/genfile.c:138
+msgid "SIZE"
+msgstr "MÉID"
+
+#: tests/genfile.c:128
+msgid "Create file of the given SIZE"
+msgstr "Cruthaigh comhad leis an MÉID seo"
+
+#: tests/genfile.c:130
+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
+msgid "Read file names from FILE"
+msgstr "Léigh ainmneacha comhaid ó COMHAD"
+
+#: tests/genfile.c:134
+msgid "-T reads null-terminated names"
+msgstr "Léann -T ainmneacha, foirceanta le NULanna"
+
+#: tests/genfile.c:136
+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
+msgid "Size of a block for sparse file"
+msgstr "Méid bhloic sa gannchomhad"
+
+#: tests/genfile.c:141
+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
+msgid "OFFSET"
+msgstr "FRITHÁIREAMH"
+
+#: tests/genfile.c:144
+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
+msgid "File statistics options:"
+msgstr "Roghanna - staitisticí comhaid"
+
+#: tests/genfile.c:153
+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
+msgid "Synchronous execution options:"
+msgstr "Roghanna - feidhmiú sioncrónach:"
+
+#: tests/genfile.c:163
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr "Rith an tORDÚ sonraithe. Is áisiúil an rogha seo le --checkpoint agus ceann de --cut, --append, nó --touch"
+
+#: tests/genfile.c:166
+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
+msgid "Set date for next --touch option"
+msgstr "Socraigh an dáta le haghaidh an chéad rogha --touch eile"
+
+#: tests/genfile.c:172
+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
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+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
+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
+msgid "Update the access and modification times of FILE"
+msgstr "Nuashonraigh na hamanna rochtana/mionathraithe de CHOMHAD"
+
+#: tests/genfile.c:190
+msgid "Execute COMMAND"
+msgstr "Rith ORDÚ"
+
+#: tests/genfile.c:240
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Méid neamhbhailí: %s"
+
+#: tests/genfile.c:245
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Uimhir as raon: %s"
+
+#: tests/genfile.c:248
+#, c-format
+msgid "Negative size: %s"
+msgstr "Méid diúltach: %s"
+
+#: tests/genfile.c:261 tests/genfile.c:558
+#, c-format
+msgid "stat(%s) failed"
+msgstr "theip ar stat(%s)"
+
+#: tests/genfile.c:264
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "fad iarrtha %lu, fíorfhad %lu"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "created file is not sparse"
+msgstr "ní gannchomhad é an comhad cruthaithe"
+
+#: tests/genfile.c:353
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Earráid agus uimhir á parsáil i ngar do `%s'"
+
+#: tests/genfile.c:359
+#, c-format
+msgid "Unknown date format"
+msgstr "Formáid anaithnid ar an dáta"
+
+#: tests/genfile.c:382
+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
+#, c-format
+msgid "cannot open `%s'"
+msgstr "ní féidir `%s' a oscailt"
+
+#: tests/genfile.c:425
+msgid "cannot seek"
+msgstr "ní féidir 'seek' a dhéanamh"
+
+#: tests/genfile.c:442
+#, c-format
+msgid "file name contains null character"
+msgstr "tá carachtar nialasach sa chomhadainm"
+
+#: tests/genfile.c:507
+#, 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
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "masc mícheart (i ngar do `%s')"
+
+#: tests/genfile.c:591 tests/genfile.c:624
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Réimse anaithnid `%s'"
+
+#: tests/genfile.c:651
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "ní féidir an t-am a shocrú ar `%s'"
+
+#: tests/genfile.c:805
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "D'éirigh leis an ordú\n"
+
+#: tests/genfile.c:807
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Theip ar an ordú le stádas %d\n"
+
+#: tests/genfile.c:811
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Stopadh an t-ordú le comhartha %d\n"
+
+#: tests/genfile.c:813
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Stopadh an t-ordú ar chomhartha %d\n"
+
+#: tests/genfile.c:816
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Rinne an t-ordú córdhumpa\n"
+
+#: tests/genfile.c:819
+#, c-format
+msgid "Command terminated\n"
+msgstr "Ordú críochnaithe\n"
+
+#: tests/genfile.c:851
+#, 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 "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?"
+
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "Earráid; tobscor moillithe ó earráidí roimhe seo"
+
+#~ msgid "[.]NUMBER"
+#~ msgstr "[.]UIMHIR"
+
+#~ msgid "block size"
+#~ msgstr "méid bloc"
+
+#~ msgid "%s: Read error at byte %s, reading %lu byte"
+#~ msgid_plural "%s: Read error at byte %s, 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"
+
+#~ msgid "--Mangled file names--\n"
+#~ msgstr "--Ainmneacha comhaid coscartha--\n"
+
+#~ msgid "Unexpected EOF in mangled names"
+#~ msgstr "Comhadchríoch gan choinne in ainmneacha coscartha"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "Athainmníodh %s go %s"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ msgstr "%s: Ní féidir nasc siombalach a dhéanamh le %s"
+
+#~ msgid "Symlinked %s to %s"
+#~ msgstr "Nasctha %s le %s"
+
+#~ 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"
+
+#~ msgid "Modification time (nanoseconds) out of range"
+#~ msgstr "Am mionathraithe (nanashoicindí) as raon"
+
+#~ msgid "Device number out of range"
+#~ msgstr "Uimhir ghléis as raon"
+
+#~ 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"
+
+#~ msgid "creating multi-volume archives in posix format requires using --tape-length (-L) option"
+#~ msgstr "Ní mór an rogha --tape-length (-L) a úsáid agus cartlanna il-imleabhair á gcruthú i bhformáid posix"
+
+#~ msgid "rmtd: Garbage command %c\n"
+#~ msgstr "rmtd: Ordú dramhaíola %c\n"
+
+#~ msgid "Missing file name after -C"
+#~ msgstr "Ainm comhaid ar iarraidh i ndiaidh -C"
+
+#~ msgid "exclude patterns are plain strings"
+#~ msgstr "ná bain úsáid as saoróga i bpatrúin eisiata"
+
+#~ msgid "exclude patterns use wildcards (default)"
+#~ msgstr "bain úsáid as saoróga i bpatrúin (réamhshocrú)"
+
+#~ msgid "print total bytes written while creating archive"
+#~ msgstr "taispeáin líon na mbloc scríofa sa chartlann"
+
+#~ msgid "When creating archive in verbose mode, list member names as stored in the archive"
+#~ msgstr "Agus cartlann á cruthú sa mhód foclach, taispeáin ainmneacha na mball nuair a chuirtear iad sa chartlann"
+
+#~ msgid "Semantics of -l option will change in the future releases."
+#~ msgstr "Athróidh an bhrí den rogha -l i leaganacha amach anseo."
+
+#~ msgid "Please use --one-file-system option instead."
+#~ msgstr "Bain úsáid as --one-file-system ina ionad, le do thoil."
+
+#~ 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íl baránta AR BITH leis an gclár seo, an oiread atá ceadaithe de réir dlí.\n"
+#~ "Is féidir leat á scaipeadh de réir na gcoinníollacha den GNU General Public License;\n"
+#~ "Féach ar an chomhad `COPYING' chun tuilleadh eolais a fháil."
+
+#~ msgid "Quitting now."
+#~ msgstr "Á scor anois."
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "RABHADH: níl ceanntásc imleabhair ann"
+
+#~ msgid "Visible long name error"
+#~ msgstr "Earráid le hainm fada infheicthe"
+
+#~ msgid "Visible longname error"
+#~ msgstr "Earráid le hainm fada infheicthe"
+
+#~ msgid "don't change access times on dumped files"
+#~ msgstr "ná hathraigh amanna modhnaithe de chomhaid dhumpáilte"
+
+#~ msgid "extract permissions information"
+#~ msgstr "bain eolas faoina ceadanna"
+
+#~ msgid "do not extract permissions information"
+#~ msgstr "ná bain eolas faoina ceadanna"
+
+#~ msgid "dump instead the files symlinks point to"
+#~ msgstr "lean naisc shiombalacha le linn dumpála"
+
+#~ msgid "Print license and exit"
+#~ msgstr "Taispeáin an ceadúnas agus scoir"
+
+#~ msgid ""
+#~ "Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n"
+#~ "for complete list of authors.\n"
+#~ msgstr ""
+#~ "Bunaithe ar obair de John Gilmore agus Jay Fenlason. Tá an liosta údar\n"
+#~ "ina iomláine ar fáil sa chomhad AUTHORS.\n"
+
+#~ msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+#~ msgstr "Rabhadh: níl an rogha -y ar fáil; ar mhaith leat -j?"
+
+#~ msgid "Error in writing to standard output"
+#~ msgstr "Earráid le linn scríobh ar aschur caighdeánach"
diff --git a/po/gl.po b/po/gl.po
new file mode 100644
index 00000000..16854624
--- /dev/null
+++ b/po/gl.po
@@ -0,0 +1,1627 @@
+# Galician translation of GNU tar.
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Jacobo Tarro Barreiro <jtarrio@iname.com>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.13.25\n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\n"
+"PO-Revision-Date: 2002-03-26 19:17+0100\n"
+"Last-Translator: Jacobo Tarro Barreiro <jtarrio@iname.com>\n"
+"Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumento %s non vlido para %s"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argumento %s ambiguo para %s"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Os argumentos vlidos son:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Erro do sistema descoecido"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: a opcin \"%s\" ambigua\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: a opcin \"--%s\" non admite un argumento\n"
+
+#: lib/getopt.c:723
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: a opcin \"%c%s\" non admite un argumento\n"
+
+#: lib/getopt.c:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: a opcin \"%s\" precisa dun argumento\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opcin \"--%s\" non recoecida\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opcin \"%c%s\" non recoecida\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opcin non admitida -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opcin non vlida -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: a opcin precisa dun argumento -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: a opcin \"-W %s\" ambigua\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: a opcin \"-W %s\" non admite un argumento\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "tamao de bloque"
+
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "\""
+
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "\""
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "memoria esgotada"
+
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Bytes totais escritos: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(canalizacin)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Non se pode pechar"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Non se pode duplicar"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Non se pode empregar arquivos comprimidos ou remotos"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (fillo)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (neto)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Valor non vlido para record_size"
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Non se proporcionou o nome do arquivo"
+
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Non se pode verifica-los arquivos multi-volume"
+
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Non se pode reservar memoria para o factor de bloqueo %d"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Non se poden empregar arquivos comprimidos multi-volume"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Non se poden verifica-los arquivos comprimidos"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Non se poden actualiza-los arquivos comprimidos"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Non se poden verifica-los arquivos da entrada/sada estndar"
+
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "O arquivo non est etiquetado para coincidir con %s"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "O volume %s non coincide con %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Punto de control de escritura %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "No comezo da cinta, sando agora"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Demasiados erros, sando"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Punto de control de lectura %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "Lendo %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "AVISO: Non hai unha cabeceira de volume"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s non contina neste volume"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s ten un tamao incorrecto (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Este volume est fora da secuencia"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Bloque desaliado (%lu bytes) no arquivo"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Tamao do rexistro = %lu bloques"
+
+#: src/buffer.c:1308
+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:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "O fillo morreu co sinal %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "O fillo devolveu o estado %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: contn un nmero de volume non vlido"
+
+#: src/buffer.c:1440
+msgid "Volume number overflow"
+msgstr "Desbordamento no nmero de volume"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "O comando \"%s\" fallou"
+
+#: src/buffer.c:1468
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Prepare o volume #%d para %s e prema enter: "
+
+#: src/buffer.c:1474
+msgid "EOF where user reply was expected"
+msgstr "Chegouse fin de ficheiro onde se esperaba unha resposta do usuario"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "AVISO: O arquivo est incompleto"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nome] Dar un novo nome de ficheiro para os seguintes volumes\n"
+" q Abortar tar\n"
+" ! Executar outro intrprete de comandos\n"
+" ? Amosar esta lista\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Non hai novos volumes; sando.\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "So se puido ler %lu de %lu bytes"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "O contido diferente"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339 src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718 src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367 src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "Fin de ficheiro inesperado no arquivo"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Verificar "
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Tipo de ficheiro \"%c\" descoecido; trtase coma un ficheiro normal"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "O tipo de ficheiro diferente"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "O modo diferente"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Os uid son diferentes"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "Os gid son diferentes"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "A data de modificacin diferente"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "O tamao diferente"
+
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "Non ligado a %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "A ligazn simblica diferente"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "O nmero de dispositivo diferente"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "FALLO NA VERIFICACION: detectronse %d cabeceiras non vlidas"
+
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Xerando cabeceiras octais negativas"
+
+#: src/create.c:200
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "valor %s fra do rango de %s %s..%s; substitundo %s"
+
+#: src/create.c:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "valor %s fra do rango de %s %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Os nomes dos membros conteen \"..\""
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Eliminadndo o \"%.*s\" inicial dos nomes dos membros"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: ficheiro sen cambios; non se envorca"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: o ficheiro o arquivo; non se envorca"
+
+#: src/create.c:1098
+#, 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:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Ficheiro eliminado antes da sa lectura"
+
+#: src/create.c:1399
+#, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: O ficheiro encolleu %s bytes; enchendo con ceros"
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: o ficheiro cambiou mentres se la"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: ignrase o socket"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: ignrase a porta"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipo de ficheiro descoecido; ignrase este ficheiro"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Isto non semella un arquivo tar"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Pasando seguinte cabeceira"
+
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Borrando o que non sexan cabeceiras do arquivo"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: a marca de tempo %s est %lu segundos no futuro"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inconsistencia inesperada ao crea-lo directorio"
+
+#: src/extract.c:578
+#, 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:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: O nome do membro contn \"..\""
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Non se puido copiar este ficheiro"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Extraendo os ficheiros contiguos coma ficheiros normais"
+
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Tentando extrae-las ligazns simblicas coma ligazns duras"
+
+#: src/extract.c:1207
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Non se pode extraer -- o ficheiro continuacin doutro volume"
+
+#: src/extract.c:1216
+msgid "Visible long name error"
+msgstr "Erro no nome longo visible"
+
+#: src/extract.c:1224
+#, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
+msgstr "%s: Tipo de ficheiro \"%c\" descoecido, extrandoo coma ficheiro normal"
+
+#: src/extract.c:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "O erro non recuperable: sese agora"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Renomeouse o directorio"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: O directorio novo"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Marca de tempo non vlida"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "Marca de tempo fra de rango"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Nmero de dispositivo non vlido"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "Nmero de dispositivo fra de rango"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Nmero de inode non vlido"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "Nmero de inode fra de rango"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Borrando %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Non se pode eliminar"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Omitndoo"
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloque %s: ** Bloque de nulos **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloque %s: ** Fin de Ficheiro **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Atopronse espacios na cabeceira onde se esperaba un valor nmerico de %s"
+
+#: src/list.c:606
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "O valor octal do arquivo %.*s est fra do rango de %s; suponse complemento a 2"
+
+#: src/list.c:616
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "O valor octal do arquivo %.*s est fra do rango de %s"
+
+#: src/list.c:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "O arquivo contn cabeceiras base-64 obsoletas"
+
+#: src/list.c:645
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "A cadea base-64 asinada do arquivo %s est fra do rango de %s"
+
+#: src/list.c:676
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "O valor base-256 do arquivo est fra do rango de %s"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "O arquivo contn %.*s onde se esperaba un valor numrico de %s"
+
+#: src/list.c:724
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "O valor do arquivo %s est fra do rango de %s %s..%s"
+
+#: src/list.c:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "bloque %s: "
+
+#: src/list.c:946
+msgid "Visible longname error"
+msgstr "Erro de nome longo visible"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr " ligazn a %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " Tipo de ficheiro %s descoecido\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Cabeceira de Volume--\n"
+
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Contina no byte %s--\n"
+
+#: src/list.c:1112
+msgid "--Mangled file names--\n"
+msgstr "--Nomes de ficheiro alterados--\n"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Creando o directorio:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Fin de ficheiro inesperado nos nomes alterados"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Non se pode renomear a %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Renomeado %s a %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Non se pode crear unha ligazn simblica a %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Creada unha ligazn simblica de %s a %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Comando de correccin %s descoecido"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Renomeando %s a %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Renomeando %s a %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Non se pode armacena-lo directorio de traballo"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Non se pode cambia-lo directorio de traballo"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Non se pode %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Aviso: Non se pode %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Non se pode cambia-lo modo a %s"
+
+#: src/misc.c:562
+#, 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"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Non se pode libar a %s"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Erro de lectura no byte %s, lendo %lu bytes"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Aviso: Erro de lectura no byte %s, lendo %lu bytes"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Non se pode saltar a %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Aviso: Non se pode saltar a %s"
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Non se pode crear unha ligazn simblica a %s"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Gravronse s %lu de %lu bytes"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "proceso fillo"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "canle interproceso"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Falta o nome de ficheiro despois de -C"
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Non atopado no arquivo"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Non se pode reservar espacio para o buffer\n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Non se pode reservar espacio para o buffer"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Escriba '%s --help' para mis informacin.\n"
+
+#: src/rmt.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"
+msgstr ""
+"Emprego: %s [OPCIN]\n"
+"Manipula unha unidade de fita, aceptando comandos dun proceso remoto.\n"
+"\n"
+" --version Amosar informacin da versin.\n"
+" --help Amosar esta axuda.\n"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid ""
+"\n"
+"Report bugs to <bug-tar@gnu.org>.\n"
+msgstr ""
+"\n"
+"Informe dos erros no programa a <bug-tar@gnu.org>.\n"
+"Informe dos erros na traduccin a <proxecto@trasno.net>.\n"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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 ""
+"Este programa vn SEN GARANTA, ata o permitido pola lei. Pode redistribulo\n"
+"baixo os termos da Licencia Pblica Xeral de GNU; vexa o ficheiro chamado\n"
+"COPYING para mis detalles."
+
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Desprazamento fra de rango"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Direccin de desprazamento fra de rango"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Fin de ficheiro prematura\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Fin de ficheiro prematura"
+
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Comando lixo %c\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Comando lixo"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Servicio non dispoible"
+
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "entrada estndar"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "sada estndar"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Non se pode executar un intrprete de comandos remoto"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "As opcins \"-%s\" e \"-%s\" precisan da entrada estndar"
+
+#: src/tar.c:292
+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' armacena varios ficheiros xuntos nun s arquivo en fita ou disco, e\n"
+"pode restaurar ficheiros individuais do arquivo.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Emprego: %s [OPCIN]... [FICHEIRO]...\n"
+"\n"
+"Exemplos:\n"
+" %s -cf arquivo.tar pepe xoan # Crear arquivo.tar dos ficheiros pepe e xoan.\n"
+" %s -tvf arquivo.tar # Listar tdolos ficheiros de arquivo.tar\n"
+" # dando moitos datos\n"
+" %s -xf arquivo.tar # Extraer tdolos ficheiros de arquivo.tar.\n"
+
+#: src/tar.c:303
+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"
+"Se unha opcin longa ten un argumento obrigatorio, tamn o para a\n"
+"opcin curta equivalente. A mesma regra para os argumentos opcionais.\n"
+
+#: src/tar.c:308
+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"
+"Modo de operacin principal:\n"
+" -t, --list lista o contido dun arquivo\n"
+" -x, --extract, --get extrae ficheiros dun arquivo\n"
+" -c, --create crea un novo arquivo\n"
+" -d, --diff, --compare busca diferencias entre o arquivo e o sistema\n"
+" de ficheiros\n"
+" -r, --append engade ficheiros na fin do arquivo\n"
+" -u, --update s engade ficheiros mis novos c copia do arquivo\n"
+" -A, --catenate engade ficheiros tar a un arquivo\n"
+" --concatenate igual que -A\n"
+" --delete borra do arquivo (non en fitas!)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Modificadores de operacin:\n"
+" -W, --verify tenta verifica-lo arquivo despois de escribilo\n"
+" --remove-files borra os ficheiros despois de engadilos no arquivo\n"
+" -k, --keep-old-files non sobrescribe ficheiros existentes ao extraer\n"
+" --overwrite sobrescribe os ficheiros existentes ao extraer\n"
+" --overwrite sobrescribe metadatos dos directorios ao extraer\n"
+" -U, --unlink-first borra cada ficheiro antes de extraer sobre el\n"
+" --recursive-unlink borra a rbore de directorios antes de extraer\n"
+" -S, --sparse manexa eficientemente os ficheiros dispersos\n"
+" -O, --to-stdout extrae os ficheiros sada estndar\n"
+" -G, --incremental trata os antigos arquivos incrementais GNU\n"
+" -g, --listed-incremental trata os novos arquivos incrementais GNU\n"
+" --ignore-failed-read non sar con erro polos ficheiros ilexibles\n"
+
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Manexo dos atributos dos ficheiros:\n"
+" --owner=NOME forza NOME coma dono dos ficheiros engadidos\n"
+" --group=NOME forza NOME como grupo dos ficheiros engadidos\n"
+" --mode=CAMBIOS forza o modo CAMBIOS para os ficheiros engadidos\n"
+" --atime-preserve non cambia as datas de acceso dos ficheiros\n"
+" -m, --modification-time non extrae a data de modificacin dos ficheiros\n"
+" --same-owner tenta extrae-los ficheiros co mesmo propietario\n"
+" --no-same-owner extrae-los ficheiros coma o usuario actual\n"
+" --numeric-owner sempre usa nmeros para os nomes de dono/grupo\n"
+" -p, --same-permissions extrae toda a informacin dos permisos\n"
+" --no-same-permissions non extrae a informacin dos permisos\n"
+" --preserve-permissions igual que -p\n"
+" -s, --same-order ordea os nomes a extraer igual que os do arquivo\n"
+" --preserve-order igual que -s\n"
+" --preserve igual que -p e -s ao mesmo tempo\n"
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Seleccin e cambio de dispositivo:\n"
+" -f, --file=ARQUIVO usa o ficheiro ou o dispositivo ARQUIVO\n"
+" --force-local arquivo local incluso cun signo de dous puntos\n"
+" --rsh-command=COMANDO emprega-lo COMANDO remoto no canto de rsh\n"
+" -[0-7][lmh] especificar unidade e densidade\n"
+" -M, --multi-volume crear/listar/extraer un arquivo multi-volume\n"
+" -L, --tape-length=NUM cambia-la fita tras gravar NUM x 1024 bytes\n"
+" -F, --info-script=FICH executa-lo script tras cada fita (implica -M)\n"
+" --new-volume-script=FICH o mesmo que -F FICH\n"
+" --volno-file=FICH usar/actualizar o nmero de volume en FICH\n"
+
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Bloqueo dos dispositivos:\n"
+" -b, --blocking-factor=BLOQUES BLOQUES x 512 bytes por rexistro\n"
+" --record-size=TAM TAM bytes por rexistro, mltiplo de 512\n"
+" -i, --ignore-zeros ignora-los bloques de ceros do arquivo\n"
+" -B, --read-full-records cambia-lo factor de blocaxe mentres se le\n"
+"\t\t\t (para canalizacins 4.2BSD)\n"
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Seleccin do formato do arquivo:\n"
+" -V, --label=NOME crear un arquivo co nome de volume NOME\n"
+" PATRN ao listar/extraer, emprega-lo PATRN\n"
+" -o, --old-archive, --portability escribir un arquivo con formato V7\n"
+" --posix escribir un arquivo con formato POSIX\n"
+" -j, --bzip2 filtra-lo arquivo por bzip2\n"
+" -z, --gzip, --ungzip filtra-lo arquivo por gzip\n"
+" -Z, --compress, --uncompress filtra-lo arquivo por compress\n"
+" --use-compress-program=PROG filtra-lo arquivo polo PROGrama\n"
+" (debe aceptar -d)\n"
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Seleccin de ficheiros locais:\n"
+" -C, --directory=DIR cambiar directorio DIR\n"
+" -T, --files-from=FICH obte-los nomes a extraer ou engadir do FICHeiro\n"
+" --null -T le nomes terminados en nulo, desactiva -C\n"
+" --exclude=PATRN excluir ficheiros, dados coma un PATRN\n"
+" -X, --exclude-from=FICH patrns de exclusin listados no FICHeiro\n"
+" --anchored os patrns de exclusin encaixan no principio\n"
+" do nome do ficheiro (por defecto)\n"
+" --no-anchored os patrns de exclusin encaixan despois de /\n"
+" --ignore-case exclusin que ignora maisculas/minsculas\n"
+" --no-ignore-case exclusin que distingue maisculas/minsculas\n"
+" --wildcards os patrns de exclusin empregan comodns\n"
+" --wildcards-match-slash os patrns de exclusin encaixan en / (def.)\n"
+" --no-wildcards-match-slash os patrns de exclusin non encaixan en /\n"
+" -P, --absolute-names non elimina-las / iniciais dos nomes de ficheiro\n"
+" -h, --dereference envorca-los ficheiros aos que levan as ligazns\n"
+" --no-recursion evita-lo descenso pola rbore de directorios\n"
+" -l, --one-file-system quedar no sistema de ficheiros local\n"
+" ao crea-lo arquivo\n"
+" -K, --starting-file=NOME comeza-lo arquivo polo ficheiro NOME\n"
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATA gravar s os ficheiros posteriores DATA\n"
+" --newer-mtime comparar data e hora s cando cambien os datos\n"
+" --after-date=DATA o mesmo que -N\n"
+
+#: src/tar.c:418
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version control\n"
+" --suffix=SUFFIX backup before removal, override usual suffix\n"
+msgstr ""
+" --backup[=CONTROL] copiar antes de borrar, escoller control\n"
+" de versins\n"
+" --suffix=SUFIXO copiar antes de borrar, ignora-lo sufixo normal\n"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Mensaxes informativas:\n"
+" --help amosar esta axuda e sar\n"
+" --version amosa-lo nmero de versin de tar e sar\n"
+" -v, --verbose lista-los ficheiros procesados\n"
+" --checkpoint escribi-los nomes dos directorios ao le-lo arquivo\n"
+" --totals indica-los bytes totais escritos ao crea-lo arquivo\n"
+" -R, --block-number amosa-lo nmero do bloque no arquivo en cada mensaxe\n"
+" -w, --interactive pedir confirmacin para cada accin\n"
+" --confirmation o mesmo que -w\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+"O sufixo de copia de seguridade \"~\", ags se se cambia con --suffix ou\n"
+"SIMPLE_BACKUP_SUFFIX. O control de versins pode estabrecerse con --backup ou\n"
+"VERSION_CONTROL, os valores son:\n"
+"\n"
+" t, numbered crea copias de seguridade numeradas\n"
+" nil, existing numera se existen copias de seguridade numeradas\n"
+" never, simple sempre fai copias de seguridade sinxelas\n"
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"GNU tar non pode ler nin producir arquivos `--posix'. Se a variable de\n"
+"ambiente POSIXLY_CORRECT existe, as extensins GNU quedan desactivadas coa\n"
+"opcin `--posix'.\n"
+"\n"
+"O soporte de POSIX est s parcialmente implementado, non se fe dela anda.\n"
+"ARQUIVO pode ser un FICHEIRO, SERVIDOR:FICHEIRO ou USUARIO@SERVIDOR:FICHEIRO;\n"
+"DATA pode ser unha data textual ou un nome de ficheiro que comeza por \"/\" ou\n"
+"\".\"; neste caso emprgase a data do ficheiro.\n"
+"As opcins por defecto *deste* tar son \"-f%s -b%d\".\n"
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Non pode especificar mis dunha das opcins \"-Acdtrux\""
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Opcins de compresin conflictivas"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "A antiga opcin \"%c\" precisa dun argumento."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Opcin obsoleta, agora implicada por --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Nome de opcin obsoleta substitudo por --blocking-factor"
+
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Factor de bloqueo non vlido"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Nome de opcin obsoleta substitudo por --read-full-records"
+
+#: src/tar.c:696
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Aviso: a opcin -I non est soportada; quera dicir -j ou -T?"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "Lonxitude da fita non vlida"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Nome de opcin obsoleta substitudo por --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr "Mis dunha data de umbral"
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Non se atopou o ficheiro de data"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Substitundo o formato de data descoecido %2$s por %1$s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "Opcins de formato de arquivo conflictivas"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Nome de opcin obsoleta substitudo por --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Nome de opcin obsoleta substitudo por --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Aviso: a opcin -y non est soportada; quera dicir -j?"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Nome de opcin obsoleta substitudo por --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Grupo non vlido"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Proporcionouse na opcin un modo non vlido"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Propietario non vlido"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Tamao de rexistro non vlido"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "O tamao do rexistro debe ser mltiplo de %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Opcins `-[0-7][lmh]' non soportadas por *este* tar"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Escrito por John Gilmore e Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Qurense as caractersticas de GNU no formato de arquivo incompatible"
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Varios ficheiros de arquivo requiren a opcin \"-M\""
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Non se pode combinar --listed-incremental con --newer"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: A etiqueta do volume longa de mis (o lmite %lu bytes)"
+
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "De xeito cobarde rexitase crear un ficheiro baleiro"
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "As opcins \"-Aru\" son incompatibles con \"-f -\""
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Debe especificar unha das opcins \"-Acdtrux\""
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Erro ao gravar na sada estndar"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Sada por erro retrasada dos erros anteriores"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: O ficheiro encolleu %s bytes"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Xera-los ficheiros de datos para a suite de probas de GNU tar.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Emprego: %s [OPCIN]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Se unha opcin longa ten un argumento obrigatorio, tamn o para a opcin\n"
+"curta equivalente.\n"
+"\n"
+" -l, --file-length=LONXIT LONXITude do ficheiro xerado\n"
+" -p, --pattern=PATRN PATRN \"default\" ou \"zeros\"\n"
+" --help amosar esta axuda e sa\n"
+" --version amosar informacin sobre a versin e sar\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr "Escrito por Franois Pinard"
+
+#~ msgid "Cannot close descriptor %d"
+#~ msgstr "Non se puido cerra-lo descriptor %d"
+
+#~ msgid "Cannot properly duplicate %s"
+#~ msgstr "Non se puido duplicar %s"
+
+#~ msgid "Cannot open pipe"
+#~ msgstr "Non se puido crear unha canalizacin"
+
+#~ msgid "Cannot fork"
+#~ msgstr "Non se puido bifurcar"
+
+#~ msgid "(child) Pipe to stdin"
+#~ msgstr "(fillo) Canalizar da entrada estndar"
+
+#~ msgid "Cannot open archive %s"
+#~ msgstr "Non se puido abri-lo arquivo %s"
+
+#~ msgid "Archive to stdout"
+#~ msgstr "Arquivar sada estndar"
+
+#~ msgid "Cannot exec %s"
+#~ msgstr "Non se puido executar %s"
+
+#~ msgid "Child cannot fork"
+#~ msgstr "O fillo non puido ser bifurcado"
+
+#~ msgid "((child)) Pipe to stdout"
+#~ msgstr "((fillo)) Canalizar sada estndar"
+
+#~ msgid "(grandchild) Pipe to stdin"
+#~ msgstr "(neto) Canalizar da entrada estndar"
+
+#~ msgid "Cannot read from compression program"
+#~ msgstr "Non se puido ler dende o programa de compresin"
+
+#~ msgid "(child) Pipe to stdout"
+#~ msgstr "(fillo) Canalizar sada estndar"
+
+#~ msgid "Archive to stdin"
+#~ msgstr "Arquivar da entrada estndar"
+
+#~ msgid "((child)) Pipe to stdin"
+#~ msgstr "((fillo)) Canalizacin da entrada estndar"
+
+#~ msgid "(grandchild) Pipe to stdout"
+#~ msgstr "(neto) Canalizacin sada estndar"
+
+#~ msgid "Cannot write to compression program"
+#~ msgstr "Non se puido escribir no programa de compresin"
+
+#~ msgid "Write to compression program short %d bytes"
+#~ msgstr "Quedan %d bytes por escribir ao programa de compresin"
+
+#~ msgid "Cannot open %s"
+#~ msgstr "Non se puido abrir %s"
+
+#~ msgid "Only wrote %u of %u bytes to %s"
+#~ msgstr "S escritos %u dun total de %u bytes en %s"
+
+#~ msgid "Read error on %s"
+#~ msgstr "Erro de lectura en %s"
+
+#~ msgid "Archive %s EOF not on block boundary"
+#~ msgstr "A fin do ficheiro (EOF) do arquivo %s non se atopa no lmite do bloque"
+
+#~ msgid "Only read %d bytes from archive %s"
+#~ msgstr "So lidos %d bytes do arquivo %s"
+
+#~ msgid "WARNING: Cannot close %s (%d, %d)"
+#~ msgstr "ATENCIN: Non se puido cerrar %s (%d, %d)"
+
+#~ msgid " (core dumped)"
+#~ msgstr " (memoria volcada)"
+
+#~ msgid "Cannot fork!"
+#~ msgstr "Non se puido bifurcar!"
+
+#~ msgid "Cannot exec a shell %s"
+#~ msgstr "Non se puido executar un intrprete de comandos %s"
+
+#~ msgid "Removing drive spec from names in the archive"
+#~ msgstr "Borrando a especificacin de unidade dos nomes do arquivo"
+
+#~ msgid "Removing leading `/' from absolute path names in the archive"
+#~ msgstr "Borrando o caracter '/' inicial das rutas absolutas do arquivo"
+
+#~ msgid "Wrote %ld of %ld bytes to file %s"
+#~ msgstr "Escritos %ld de %ld bytes no ficheiro %s"
+
+#~ msgid "Amount actually written is (I hope) %d.\n"
+#~ msgstr "Actualmente escritos (espero) %d.\n"
+
+#~ msgid "Cannot add file %s"
+#~ msgstr "Non se puido engadi-lo ficheiro %s"
+
+#~ msgid "Cannot add directory %s"
+#~ msgstr "Non se puido engadi-lo directorio %s"
+
+#~ msgid "Cannot open directory %s"
+#~ msgstr "Non se puido abri-lo directorio %s"
+
+#~ msgid "File name %s%s too long"
+#~ msgstr "O nome do ficheiro %s%s demasiado longo"
+
+#~ msgid "Could not allocate memory for diff buffer of %d bytes"
+#~ msgstr "Non se puido reservar memoria para un buffer de diferencias de %d bytes"
+
+#~ msgid "Data differs"
+#~ msgstr "Datos diferentes"
+
+#~ msgid "Unexpected EOF on archive file"
+#~ msgstr "Fin de ficheiro (EOF) inesperado no arquivo"
+
+#~ msgid "File does not exist"
+#~ msgstr "O ficheiro non existe"
+
+#~ msgid "Cannot stat file %s"
+#~ msgstr "Non se puido evalua-lo ficheiro %s"
+
+#~ msgid "Not a regular file"
+#~ msgstr "Non un ficheiro normal"
+
+#~ msgid "Error while closing %s"
+#~ msgstr "Erro mentres se cerraba %s"
+
+#~ msgid "Does not exist"
+#~ msgstr "Non existe"
+
+#~ msgid "No such file or directory"
+#~ msgstr "Non se atopa o ficheiro ou directorio"
+
+#~ msgid "Mode or device-type changed"
+#~ msgstr "O modo ou o tipo do dispositivo cambiaron"
+
+#~ msgid "No longer a directory"
+#~ msgstr "Xa non un directorio"
+
+#~ msgid "Cannot open file %s"
+#~ msgstr "Non se puido abrir o ficheiro %s"
+
+#~ msgid "Cannot seek to %ld in file %s"
+#~ msgstr "No se puido posicionar en %ld no ficheiro %s"
+
+#~ msgid "Could not rewind archive file for verify"
+#~ msgstr "Non se puido rebobinar-lo ficheiro de arquivo para verificar"
+
+#~ msgid "Could not re-position archive file"
+#~ msgstr "Non se puido reposicionar o ficheiro de arquivo"
+
+#~ msgid "%s: Could not change access and modification times"
+#~ msgstr "%s: Non se puido cambia-la hora de acceso e modificacin"
+
+#~ msgid "%s: Cannot lchown to uid %d gid %d"
+#~ msgstr "%s: Non se puido facer lchown a uid %d e gid %d"
+
+#~ msgid "%s: Cannot chown to uid %d gid %d"
+#~ msgstr "%s: Non se puido facer chown a uid %d e gid %d"
+
+#~ msgid "%s: Could not write to file"
+#~ msgstr "%s: Non se puido escribir no ficheiro"
+
+#~ msgid "%s: Could not create file"
+#~ msgstr "%s: Non se puido crea-lo ficheiro"
+
+#~ msgid "%d at %d\n"
+#~ msgstr "%d a %d\n"
+
+#~ msgid "%s: Error while closing"
+#~ msgstr "%s: Erro pechando"
+
+#~ msgid "%s: Could not link to `%s'"
+#~ msgstr "%s: Non se puido enlazar a %s"
+
+#~ msgid "%s: Could not make node"
+#~ msgstr "%s: Non se puido facer un nodo"
+
+#~ msgid "%s: Could not make fifo"
+#~ msgstr "%s: Non se puido facer un fifo"
+
+#~ msgid "%s: Could not create directory"
+#~ msgstr "%s: No se puido crear un directorio"
+
+#~ msgid "Added write and execute permission to directory %s"
+#~ msgstr "Engadidos permisos de lectura e escritura directorio %s"
+
+#~ msgid "Could not get current directory"
+#~ msgstr "Non se puido obte-lo directorio actual"
+
+#~ msgid "Could not get current directory: %s"
+#~ msgstr "Non se puido obte-lo directorio actual: %s"
+
+#~ msgid "File name %s/%s too long"
+#~ msgstr "O nome de ficheiro %s/%s demasiado longo"
+
+#~ msgid "Cannot chdir to %s"
+#~ msgstr "Non se puido ir ao directorio %s"
+
+#~ msgid "Error while deleting %s"
+#~ msgstr "Erro durante o borrado de %s"
+
+#~ msgid "Hmm, this doesn't look like a tar archive"
+#~ msgstr "Hum, isto non semella un arquivo tar"
+
+#~ msgid "Skipping to next file header"
+#~ msgstr "Pasando seguinte cabeceira de ficheiro"
+
+#~ msgid "EOF in archive file"
+#~ msgstr "Fin de ficheiro (EOF) no ficheiro de arquivo"
+
+#~ msgid "Only wrote %ld of %ld bytes to file %s"
+#~ msgstr "S se escribiron %ld de %ld bytes no ficheiro %s"
+
+#~ msgid "Cannot read confirmation from user"
+#~ msgstr "Non se puido le-la confirmacin do usuario"
+
+#~ msgid ""
+#~ "\n"
+#~ "Usage: %s [OPTION]... [FILE]...\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Uso: %s [[OPTION]... [FICHEIRO]...\n"
+
+#~ msgid "Invalid group given on option"
+#~ msgstr "Grupo incorrecto dado na opcin"
+
+#~ msgid ""
+#~ "\n"
+#~ "Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+
+#~ 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 ""
+#~ "Iso software libre; vexa o cdigo fonte para as condicins de copia. NON hai\n"
+#~ "garanta; nin sequera de MERCABILIDADE ou IDONEIDADE PARA UNHA FIN PARTICULAR.\n"
+
+#~ msgid "Read error at byte %ld reading %d bytes in file %s"
+#~ msgstr "Erro de lectura no byte %ld lendo %d bytes no ficheiro %s"
+
+#~ msgid "Unknown pattern `%s'"
+#~ msgstr "Patrn descoecido `%s'"
+
+#~ msgid ""
+#~ "\n"
+#~ "Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Written by Franois Pinard <pinard@iro.umontreal.ca>.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Escrito por Franois Pinard <pinard@iro.umontreal.ca>.\n"
diff --git a/po/hr.po b/po/hr.po
new file mode 100644
index 00000000..d045e95f
--- /dev/null
+++ b/po/hr.po
@@ -0,0 +1,1419 @@
+# GNU tar .po message translation file for hr_HR locale
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Mirsad Todorovac <mtodorov_69@yahoo.com>, 2002.
+# ... wishes to thank everybody who helped in good faith.
+#
+# Well, in 03:12 hrs (for 1st pass)!! who beats me I owe him a pizza ;-) -- TM
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.13.25\n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "pogrean argument %s za %s"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "nejednoznaan argument %s za %s"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Ispravni argumenti su:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Nepoznata pogreka u sistemu"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opcija `%s' nije jednoznana\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opcija `--%s' ne dozvoljava argument\n"
+
+#: lib/getopt.c:723
+#, 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:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: za opciju `%s' neophodan je argument\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: ne prepoznajem opciju `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: ne prepoznajem opciju `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: ilegalna opcija -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: pogrena opcija -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opcija zahtijeva neophodan argument -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opcija `-W %s' nije jednoznana\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opcija `-W %s' ne dozvoljava argument\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "veliina bloka"
+
+#
+# MT -- FIXME -- for now this is left untranslated, until we
+# come to UTF-8 or something alike (20020412)
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "'"
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "iscrpljena memorija"
+
+# FIXME -- ovo nee raditi ako je prevedeno -- Denis?
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Ukupno ispisano bajtova: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(cjevovod - pipe)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Ne mogu zatvoriti"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Neuspjeli dup"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Ne mogu koristiti komprimirane ili udaljene (remote) arhive"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (podproces)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (pod-podproces)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Pogrena vrijednost za record_size"
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Nije dano ime arhive"
+
+# FIXME -- volume -- find more suitable (ask others) -- TM
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Ne mogu verificirati viedjelne arhive"
+
+# FIXME -- blocking factor -- can't translate (ask others) -- TM
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Ne mogu alocirati memoriju za faktor pakiranja u blokove %d"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Ne mogu koristiti viedjelne komprimirane arhive"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Ne mogu verificirati komprimirane arhive"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Ne mogu aurirati komprimirane arhive"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Ne mogu verificirati stdin/stdout arhive"
+
+# FIXME -- clean against source! (TM)
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arhiva nije oznaena labelom da odgovara %s"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Dio arhive %s ne odgovara %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Toka provjere ispisa %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "Poetak trake, zavravam"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Previe pogreaka, zavravam"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Toka provjere itanja %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "itam %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "UPOZORENJE: Nema zaglavlja za dio arhive"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nije nastavljen za ovom dijelu arhive"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s je pogrene veliine (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Ovaj dio arhive je izvan slijeda"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Neporavnat (unaligned) blok (%lu bajtova) unutar arhive"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Veliina sloga = %lu blokova"
+
+#: src/buffer.c:1308
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Ne mogu se pomicati unazad unutar arhive; moe biti neitljiva bez -i"
+
+#: src/buffer.c:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "Potproces zavrio uz signal %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "Podproces zavrio uz status %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: sadri pogrean broj dijela arhive"
+
+#: src/buffer.c:1440
+msgid "Volume number overflow"
+msgstr "Prekoraenje u broju dijela arhive"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "Neuspjela `%s' naredba"
+
+#: src/buffer.c:1468
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Pripremite dio arhive #%d za %s i pritisni <RETURN>:"
+
+#: src/buffer.c:1474
+msgid "EOF where user reply was expected"
+msgstr "Naen EOF gdje sam oekivao odgovor korisnika"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "UPOZORENJE: Arhiva nije kompletirana"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [ime] Daj novo ime datoteke za slijedei (i nadovezujue) dijelove\n"
+" q Zavri tar\n"
+" ! Pokreni podljusku operativnog sistema\n"
+" ? Ispii ovu listu\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Nema novog dijela arhive; zavravam.\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "Uspio proitati samo %lu od %lu bajtova"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "Sadraji se razlikuju"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339 src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718 src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367 src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "Neoekivani EOF u arhivi"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Verificiraj "
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Nepoznat tip datoteke '%c', diff-iran kao normalna datoteka"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "Tipovi datoteka se razlikuju"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "Mod se razlikuje"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Uid se razlikuje"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "Gid se razlikuje"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "Mod time (vrijeme modifikacije) se razlikuje"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "Veliina se razlikuje"
+
+# FIXME -- language purists might lynch me for this "polinkan" -- TM
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nije polinkan na %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "Simboliki link se razlikuje"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "Broj ureaja (device number) se razlikuje"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "NEUSPJELA VERIFIKACIJA: detektirano %d pogrenih zaglavlja"
+
+# FIXME -- find `pade' here from source
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Generiram negativna oktalna zaglavlja"
+
+#: src/create.c:200
+#, 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:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "vrijednost %s izvan %s raspona %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Imena lanova sadre `..'"
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Uklanjam vodee `%.*s' iz imena lanova"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: datoteka nepromijenjena; ne arhiviram ju"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: datoteka je arhiva; ne arhiviram ju"
+
+#: src/create.c:1098
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: datoteka je na drugom datotenom sustavu; ne arhiviram ju"
+
+#: src/create.c:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Datoteka uklonjena (removed) prije nego to smo ju proitali"
+
+#: src/create.c:1399
+#, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: Datoteka se skratila za %s bajtova; nadopunjujemo nulama"
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: datoteka se promijenila dok smo ju itali"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket ignoriran"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door ignoriran"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Nepoznat tip datoteke; datoteka ignorirana"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Ovo ne izgleda kao tar arhiva"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Preskaem do slijedeeg zaglavlja"
+
+# FIXME -- non-header dubious -- clean against source! -- TM
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Briem neispravno zaglavlje iz arhive"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: oznaka vremena %s je %lu sekundi u budunost"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Neoekivana nekonzistentnost kod otvaranja direktorija"
+
+#: src/extract.c:578
+#, 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:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: Ime lana sadri `..'"
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Nisam uspio napraviti backup ove datoteke"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Ekstrahiram neprekinute datoteke kao regularne datoteke"
+
+# FIXME -- 'hard links' -- TM
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Pokuavam ekstrakciju simbolikih linkova kao hard linkova"
+
+#: src/extract.c:1207
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Ne mogu ekstrahirati -- datoteka se nastavlja iz drugog dijela arhive"
+
+# FIXME -- clarify this against source -- TM -- didn't help
+# Paul E. said this means:
+#
+# "tar" read a LONGNAME or LONGLINK header from the archive in a context
+# where it was not expected.
+#: src/extract.c:1216
+msgid "Visible long name error"
+msgstr "Vidljiva pogreka u dugom imenu"
+
+#: src/extract.c:1224
+#, 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:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "Greka iz koje se ne mogu oporaviti: zavravam s radom"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktoriju promijenjeno ime"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Novi direktorij"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Pogrena oznaka vremena"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "Oznaka vremena izvan opsega"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Pogrean broj ureaja"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "Broj ureaja izvan opsega"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Pogrean inode broj"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "Inode broj izvan opsega"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Briem %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ne mogu obrisati"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Izostavljam"
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok ispunjen NULama **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Kraj datoteke **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Razmaci u zaglavlju gdje se oekuje numerika %s vrijednost"
+
+#: src/list.c:606
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Oktalna vrijednost %.*s iz arhive je izvan %s opsega; pretpostavljam dvojni komplement"
+
+#: src/list.c:616
+#, 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:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arhiva sadri base-64 zaglavlja zastarjelog formata"
+
+# FIXME??
+#: src/list.c:645
+#, 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:676
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Base-256 vrijednost iz arhive je izvan %s opsega"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Arhiva sadri %.*s gdje je oekivana numerika %s vrijednost"
+
+#: src/list.c:724
+#, 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:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#: src/list.c:946
+msgid "Visible longname error"
+msgstr "Vidljiva pogreka u dugom imenu"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr " link do %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " nepoznat tip datoteke %s\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Zaglavlje dijela arhive--\n"
+
+# FIXME -- clarify against source -- TM
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Nastavljeno s bajtom %s--\n"
+
+# FIXME -- 'mangled filenames'???
+#: src/list.c:1112
+msgid "--Mangled file names--\n"
+msgstr "--Manglirana imena datoteka--\n"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Kreiram direktorij:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Neoekivan EOF u mangliranim imenima"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Ne mogu preimenovati u %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Preimenovao %s u %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Ne mogu napraviti simboliki link prema %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Napravio simboliki link %s prema %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Nepoznata naredba za demangliranje %s"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Preimenujem %s u %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Preimenujem %s natrag u %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Ne mogu pohraniti radni direktorij"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Ne mogu promijeniti radni direktorij"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Ne mogu %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Upozorenje: Ne mogu %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Ne mogu promijeniti mod u %s"
+
+#: src/misc.c:562
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Ne mogu promijeniti vlasnitvo na uid %lu, gid %lu"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Ne mogu napraviti hard link na %s"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Pogreka u itanju na bajtu %s, itam %lu bajtova"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Upozorenje: Pogreka u itanju na bajtu %s, itam %lu bajtova"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Neuspjeli seek na %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Upozorenje: Neuspjeli seek na %s"
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Ne mogu kreirati simboliki link prema %s"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Upsjeno zapisao samo %lu od %lu bajtova"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "podproces"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "meuprocesni kanal"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Nedostaje ime datoteke nakon -C"
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Nije naeno u arhivi"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Ne mogu alocirati prostor za meuspremnik\n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Ne mogu alocirati prostor za meuspremnik"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Pokuajte `%s --help' za vie informacija.\n"
+
+#: src/rmt.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"
+msgstr ""
+"Koritenje: %s [OPCIJA]\n"
+"Upravljaj jedinicom trake, prihvaajui naredbe od udaljenih procesa.\n"
+"\n"
+" --version Informacije o verziji programskih ispisa.\n"
+" --help Ispii ovu pomo.\n"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid ""
+"\n"
+"Report bugs to <bug-tar@gnu.org>.\n"
+msgstr ""
+"\n"
+"Prijavi greke i bugove na <bug-tar@gnu.org>.\n"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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 ""
+"Ovaj program dolazi BEZ GARANCIJA, do granica dozvoljenih zakonom.\n"
+"Moete ga redistribuirati pod uvjetima GNU General Public License;\n"
+"vidi datoteku imena COPYING za detalje."
+
+# FIXME -- find xlation for 'seek offset' -- TM
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Seek ofset izvan opsega"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Seek smjer izvan opsega"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Prerani eof\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Prerani kraj datoteke"
+
+# FIXME -- now this is supposed to be funny
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: %c je neispravna naredba\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Neispravna naredba"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Servis nije dostupan"
+
+# FIXME -- verify against source
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "stdin -- standardni ulaz"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "stdout -- standardni ulaz"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Ne mogu pokrenuti udaljenu (remote) ljusku"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Opcije `-%s' i `-%s' obje zahtijevaju standardni ulaz"
+
+#: src/tar.c:292
+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' sprema mnogo datoteka zajedno u jednu arhivu na traci ili disku, i\n"
+"moe povratiti pojedinane datoteke iz arhive.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Usage: %s [OPCIJA]... [DATOTEKA]...\n"
+"\n"
+"Primjeri:\n"
+" %s -cf arhiva.tar foo bar # Kreiraj arhiva.tar od datoteka foo i bar.\n"
+" %s -tvf arhiva.tar # Ispii redom sve datoteke iz arhiva.tar opirno.\n"
+" %s -xf arhiva.tar # Ekstrahiraj sve datoteke iz arhiva.tar.\n"
+
+#: src/tar.c:303
+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"
+"Ako duga opcija pokazuje agument kao obavezan, onda je obavezan\n"
+"i za ekvivalentnu kratku opciju takoer. Jednako vrijedi i za opcionalne\n"
+"argumente.\n"
+
+#: src/tar.c:308
+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"
+"Glavni mod rada:\n"
+" -t, --list ispii sadraje arhive\n"
+" -x, --extract, --get ekstrahiraj datoteke iz arhive\n"
+" -c, --create kreiraj novu arhivu\n"
+" -d, --diff, --compare nai razlike izmeu arhive i datotenog sustava\n"
+" -r, --append nadodaj datoteke na kraj arhive\n"
+" -u, --update nadodaj samo datoteke novije od kopije u arhivi\n"
+" -A, --catenate nadodaj tar datoteke na arhivu\n"
+" --concatenate isto kao -A\n"
+" --delete izbrii iz arhive (ne radi na magnetskim trakama!)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Modifikatori operacija: -W, --verify pokuaj verificirati arhivu nakon pisanja\n"
+" --remove-files obrii datoteke nakon njihovog dodavanja arhivi\n"
+" -k, --keep-old-files ne zamjenjuj postojee datoteke kod ekstrakcije\n"
+" --overwrite prepisuj postojee datoteke kod ekstrakcije\n"
+" --overwrite-dir prepisuj meta-podatke direktorija kod ekstrakcije\n"
+" -U, --unlink-first obrii svaku datoteku prije ekstrakcije preko nje\n"
+" --recursive-unlink isprazni hijerarhije prije ekstrahiranja u\n"
+" direktorij\n"
+" -S, --sparse tretiraj efikasno 'sparse' datoteke\n"
+" (slabo popunjene datoteke)\n"
+" -O, --to-stdout ekstrahiraj datoteke na standardni izlaz\n"
+" -G, --incremental obradi inkrementalni backup starog GNU-formata\n"
+" -g, --listed-incremental=FILE\n"
+" obradi inkrementalni backup novog GNU-formata\n"
+" --ignore-failed-read\n"
+" ne zavravaj uz ne-nula izlazni kod na\n"
+" neitljivim datotekama\n"
+
+# FIXME -- 'volume number' -- TM
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Tretiranje atributa datoteka:\n"
+" --owner=NAME forsiraj NAME za vlasnika dodanih datoteka\n"
+" --group=NAME forsiraj NAME za grupu dodanih datoteka\n"
+" --mode=CHANGES forsiraj (symbolike) promjene pristupnog\n"
+" moda za dodane datoteke\n"
+" --atime-preserve ne mijenjaj vremena pristupa (access time)\n"
+" pohranjenim datotekama\n"
+" -m, --modification-time ne ekstrahiraj vremena modifikacije\n"
+" --same-owner pokuaj postaviti vlasnitvo datoteka\n"
+" kao u arhivi\n"
+" --no-same-owner ekstrahiraj datoteke pod svojim vlasnitvom\n"
+" --numeric-owner uvijek koristi numerika imena\n"
+" korisnika/grupa\n"
+" -p, --same-permissions ekstrahiraj informacije o dozvolama\n"
+" --no-same-permissions ne ekstrahiraj informacije o dozvolama\n"
+" --preserve-permissions isto kao -p\n"
+" -s, --same-order sortiraj imena kod ekstrakcije da odgovaraju\n"
+" arhivi\n"
+" --preserve-order isto kao -s\n"
+" --preserve isto kao -p i -s zajedno\n"
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Selektiranje i mijenjanje ureaja:\n"
+" -f, --file=ARCHIVE koristi datoteku ili ureaj za arhiviranje\n"
+" ARCHIVE\n"
+" --force-local ime arhive je lokalno ak i ako sadri\n"
+" dvotoku\n"
+" --rsh-command=COMMAND koristi remote COMMAND umjesto rsh\n"
+" -[0-7][lmh] specificiraj drive i density\n"
+" -M, --multi-volume kreiraj/izlistaj/ekstrahiraj viedjelne\n"
+" arhive\n"
+" -L, --tape-length=NUM promijeni traku nakon ispisivanja\n"
+" NUM x 1024 bajtova\n"
+" -F, --info-script=FILE pokreni skriptu na kraju svake trake\n"
+" (podrazumijeva -M)\n"
+" --new-volume-script=FILE isto kao -F FILE\n"
+" --volno-file=FILE koristi/nadopuni volume number u FILE\n"
+
+# FIXME -- clear this 'device blocking' xlation -- TM
+# FIXME -- vidi ovaj 'znai EOF' u man -- TM
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Faktor grupiranja u blokove na ureaju (device blocking):\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bajtova po zapisu (record)\n"
+" --record-size=SIZE SIZE bajtova po zapisu, viekratnik od 512\n"
+" -i, --ignore-zeros ignoriraj blokove ispunjene nulama u arhivi\n"
+" (koji inae znae EOF)\n"
+" -B, --read-full-records pregrupiraj blokove dok ita\n"
+" (za 4.2BSD cjevovode -- pipes)\n"
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Selekcija formata arhive:\n"
+" -V, --label=NAME kreiraj arhivu s imenom dijela arhive NAME\n"
+" PATTERN u vrijeme izlistavanja/ekstrakcije,\n"
+" koristi PATTERN za globbing\n"
+" -o, --old-archive, --portability ispii V7 format arhivu\n"
+" --posix ispii POSIX format arhivu\n"
+" -j, --bzip2 filtriraj arhivu kroz bzip2\n"
+" -z, --gzip, --ungzip filtriraj arhivu kroz gzip\n"
+" -Z, --compress, --uncompress filtriraj arhivu kroz compress\n"
+" --use-compress-program=PROG filtriraj kroz program PROG (moji mora\n"
+" prihvaati opciju -d)\n"
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Selekcija lokalnih datoteka:\n"
+" -C, --directory=DIR promijeni direktorij u DIR\n"
+" -T, --files-from=NAME dobavi imena za ekstrahirati ili kreirati\n"
+" iz datoteke NAME\n"
+" --null -T ita nul-terminirana imena, onemogui -C\n"
+" --exclude=PATTERN izostavi datoteke, dane s PATTERN\n"
+" -X, --exclude-from=FILE izostavi uzorak datoteka: pobrojane u FILE\n"
+" --anchored - koje zapoinju tim imenom (default)\n"
+" --no-anchored - koje se podudaraju s uzorkom nakon nekog '/'\n"
+" --ignore-case izostavljanje ignorira razliku\n"
+" izmeu velikih i malih slova\n"
+" --no-ignore-case izostavljanje uzima u obzir razliku\n"
+" izmeu malih i velikih slova (default)\n"
+" --wildcards izostavi uzorke koristi wildcard (default)\n"
+" --no-wildcards uzorci za izostavljanje su obini nizovi\n"
+" --wildcards-match-slash izostavi uzorak wildcard podudara '/'\n"
+" (default)\n"
+" --no-wildcards-match-slash\n"
+" izostavi uzorak - wildcard ne podudara '/'\n"
+" -P, --absolute-names ne brii vodee `/' iz imena datoteka\n"
+" -h, --dereference ne arhiviraj simboliki link nego datoteku\n"
+" na koju pokazuje\n"
+" --no-recursion ne idi rekurzivno u poddirektorije\n"
+" -l, --one-file-system ne prelazi na drugi datoteni sustav\n"
+" kod kreiranja datoteka\n"
+" -K, --starting-file=NAME poni s imenom NAME u arhivi kod ekstrakcije\n"
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATE pohranjuj samo datoteke novije od DATE\n"
+" --newer-mtime=DATE usporedi datum i vrijeme samo\n"
+" ako su se promijenili podaci\n"
+" --after-date=DATE isto kao -N\n"
+
+#: src/tar.c:418
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version control\n"
+" --suffix=SUFFIX backup before removal, override usual suffix\n"
+msgstr ""
+" --backup[=CONTROL] backup-iraj prije brisanja, izaberi mehanizam\n"
+" kontrole verzije\n"
+" --suffix=SUFFIX backup-iraj prije brisanja, promijeni\n"
+" standardni sufiks.\n"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Informativni ispis:\n"
+" --help ispii ovu pomo, potom zavri\n"
+" --version ispii broj verzije tar programa, potom zavri\n"
+" -v, --verbose opirno izlistaj imena datoteka kod procesiranja\n"
+" --checkpoint ispisuj imena direktorija dok ita arhivu\n"
+" --totals ispisuj ukupan broj ispisanih bajtova dok kreira\n"
+" arhivu\n"
+" -R, --block-number prikai broj bloka unutar arhive uz svaku poruku\n"
+" -w, --interactive trai odobrenje za svaku akciju\n"
+" --confirmation isto kao -w\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+"Backup sufiks je `~', osim ako je postavljen drugi s --suffix ili\n"
+"SIMPLE_BACKUP_SUFFIX. Kontrola verzije moe biti postavljena s --backup\n"
+"ili s VERSION_CONTROL, vrijednosti su:\n"
+"\n"
+" t, numbered radi pobrojane (numbered) backup-e\n"
+" nil, existing pobrojani ako pobrojani ve postoje, inae jednostavni\n"
+" never, simple uvijek radi jednostavne backupe\n"
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"GNU tar ne moe itati ili proizvoditi `--posix' arhive. Ako je\n"
+"POSIXLY_CORRECT definirano u environment okolini, GNU ekstenzije se\n"
+"onemoguuju pomou `--posix'. Podrka za POSIX je samo djelomino\n"
+"implementirana, ne raunajte jo na nju.\n"
+"ARCHIVE moe biti FILE, HOST:FILE ili USER@HOST:FILE; DATE moe biti\n"
+"tekstualni datum ili ime datoteke koje zapoinje s `/' ili `.',\n"
+"u kojem sluaju je koriten datum datoteke.\n"
+"*Ovaj* `tar' podrazumijeva `-f%s -b%d'.\n"
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Ne moete navesti vie od jedne od `-Acdtrux' opcija"
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Konfliktne opcije za kompresiju"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Stara opcija `%c' zahtijeva obavezan argument."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Zastarjela opcija, sada podrazumijevana s --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Zastarjelo ime opcije zamijenjeno s --blocking-factor"
+
+# FIXME -- clarify this against source and man -- TM
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Pogrean faktor pakiranja u blokove"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Zastarjelo ime opcije zamijenjeno s --read-full-records"
+
+#: src/tar.c:696
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Upozorenje: opcija -I nije podrana; moda ste mislili -j ili -T?"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "Pogrena duljina trake"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Zastarjelo ime opcije zamijenjeno s --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr "Vie od jednog datuma s pragom (threshold)"
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Datoteka s datumom nije pronaena"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Substituiram %s za nepoznat format datuma %s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "Konfliktne opcije formata arhive"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Zastarjelo ime opcije zamijenjeno s --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Zastarjelo ime opcije zamijenjeno s --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Upozorenje: opcija -y nije podrana; moda ste eljeli -j?"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Zastarjelo ime opcije zamijenjeno s --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Pogrena grupa"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Pogrean mod dan opcijom"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Pogrean vlasnik"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Pogrena veliina sloga (record)"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Veliina sloga (record) mora biti viekratnik %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Opcije `-[0-7][lmh]' nisu podrane od strane *ovog* tar-a"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Napisali John Gilmore i Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU specijalne pogodnosti zatraene na nekompatibilnom formatu arhive"
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Viedjelne arhive zahtijevaju `-M' opciju"
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Ne mogu kombinirati --listed-incremental s --newer"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: Oznaka dijela arhive je predugaka (limit je %lu bajtova)"
+
+# LOL -- TM
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Kukaviki odbijam kreirati praznu arhivu!"
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Opcije `-Aru' nisu kompatibilne s `-f -'"
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Morate specificirati jednu od `-Acdtrux' opcija"
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Pogreka u pisanju na standardni izlaz"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Pogrean izlaz (naknadno) zbog prijanjih pogreaka"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: Datoteka se skratila za %s bajtova"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Generiraj podatkovne datoteke za GNU tar skup test programa.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Koritenje: %s [OPCIJA]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Ako duga opcija pokazuje argument kao obavezan, tada je on obavezan\n"
+"takoer i za ekvivalentnu kratku verziju opcije.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH (duljina) generirane datoteke\n"
+" -p, --pattern=PATTERN PATTERN je `default' ili `zeros'\n"
+" --help ispii ovu pomo i zavri\n"
+" --version ispii informaciju o verziji i zavri\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr "Napisao Franois Pinard."
diff --git a/po/hu.po b/po/hu.po
new file mode 100644
index 00000000..7470c2fc
--- /dev/null
+++ b/po/hu.po
@@ -0,0 +1,2619 @@
+# Hungarian translation of the GNU tar.
+# 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, 2009, 2010.
+#: src/create.c:1550
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.24\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2010-10-24 23:08+0300\n"
+"PO-Revision-Date: 2010-10-25 14:41+0200\n"
+"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
+"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 1.11.4\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: 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"
+
+#: 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”"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Az érvényes argumentumok a következők:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Ismeretlen ARGP_HELP_FMT paraméter"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Szemét az ARGP_HELP_FMT-ben: %s"
+
+#: gnu/argp-help.c:1246
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "A hosszú kapcsolók kötelező vagy elhagyható argumentumai a megfelelő rövid kapcsolókhoz is kötelezőek vagy elhagyhatóak."
+
+#: gnu/argp-help.c:1639
+msgid "Usage:"
+msgstr "Használat:"
+
+#: gnu/argp-help.c:1643
+msgid " or: "
+msgstr " vagy: "
+
+#: gnu/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [KAPCSOLÓ...]"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:1929 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Ismeretlen rendszerhiba"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "ezen súgószöveg megjelenítése"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "rövid használati utasítás megjelenítése"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NÉV"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "a program nevének beállítása"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "MP"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "szünet MP másodpercre (alapértelmezetten 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "a programverzió kiírása"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMHIBA) A verziószám ismeretlen???"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: túl sok argumentum\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMHIBA) A kapcsolót fel kellett volna ismerni???"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "íráshiba"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: a(z) „--%s” kapcsolóhoz argumentum szükséges\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: a(z) „--%s” kapcsoló ismeretlen\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: a(z) „%c%s” kapcsoló ismeretlen\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: érvénytelen kapcsoló -- „%c”\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: a kapcsoló egy argumentumot igényel -- „%c”\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: a „-W %s” kapcsoló nem egyértelmű\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: a „-W %s” kapcsoló nem enged meg argumentumot\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: a „-W %s” kapcsolóhoz argumentum szükséges\n"
+
+#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "elfogyott a memória"
+
+#: gnu/openat-die.c:36
+#, c-format
+msgid "unable to record current working directory"
+msgstr "A munkakönyvtár nem jegyezhető fel"
+
+#: 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:
+#. 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.
+#: gnu/quotearg.c:274
+msgid "`"
+msgstr "”"
+
+#: gnu/quotearg.c:275
+msgid "'"
+msgstr "”"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[iIyY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Csomagolta: %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Licenc: GPLv3+: A GNU GPL 3. vagy újabb változata <http://gnu.org/licenses/gpl.html>\n"
+"Ez egy szabad szoftver: terjesztheti és/vagy módosíthatja.\n"
+"NINCS GARANCIA, a törvény által engedélyezett mértékig.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Írta: %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Írta: %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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Írta %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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Írta %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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Írta %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Írta %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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Írta %s, %s, %s,\n"
+"%s, %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.
+#: 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 ""
+"Írta %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, és mások.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"A hibák a(z) %s címen jelenthetők.\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: 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"
+
+#. 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"
+
+#: 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 "Nem lehet csatlakozni ehhez: %s: a feloldás meghiúsult"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Nem futtatható távoli parancssor"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "A keresési irány kívül esik a tartományon"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Érvénytelen pozicionálási irány"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Érvénytelen pozicionálási eltolás"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "A keresési eltolás kívül esik a tartományon"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Érvénytelen bájtszám"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "A bájtszám kívül esik a tartományon"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Idő előtti fájlvége"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Érvénytelen működési kód"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "A művelet nem támogatott"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Váratlan paraméterek"
+
+#: rmt/rmt.c:689
+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:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "SZÁM"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "hibakeresési szint beállítása"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FÁJL"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "hibakeresés kimeneti fájlnevének beállítása"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "a(z) %s nem nyitható meg"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "túl sok argumentum"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Értelmetlen parancs"
+
+#: src/buffer.c:386 src/buffer.c:391 src/buffer.c:635 src/buffer.c:1250
+#: src/buffer.c:1296 src/buffer.c:1325 src/delete.c:211 src/list.c:184
+#: src/update.c:198
+msgid "This does not look like a tar archive"
+msgstr "Ez nem úgy néz ki, mint egy tar archívum"
+
+#: src/buffer.c:450 src/buffer.c:459
+msgid "Total bytes written"
+msgstr "Kiírt bájtok teljes száma"
+
+#: src/buffer.c:457 src/buffer.c:471
+msgid "Total bytes read"
+msgstr "Olvasott bájtok teljes száma"
+
+#: src/buffer.c:461
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Törölt bájtok teljes száma: %s\n"
+
+#: src/buffer.c:550
+msgid "(pipe)"
+msgstr "(cső)"
+
+#: src/buffer.c:573
+msgid "Invalid value for record_size"
+msgstr "A record_size értéke érvénytelen"
+
+#: src/buffer.c:576
+msgid "No archive name given"
+msgstr "Nem adott meg archívumnevet"
+
+#: src/buffer.c:618
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Nem ellenőrizhető az archívum, ha a szabványos be/kimenetet használja"
+
+#: src/buffer.c:632
+#, 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:689 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Tömörített archívumok nem frissíthetők"
+
+#: src/buffer.c:782
+msgid "At beginning of tape, quitting now"
+msgstr "A szalag eleje, most kilépek"
+
+#: src/buffer.c:788
+msgid "Too many errors, quitting"
+msgstr "Túl sok hiba, kilépek"
+
+#: src/buffer.c:821
+#, 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:842
+#, 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:919
+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:951
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "az rmtlseek nem állt meg egy rekord határán"
+
+#: src/buffer.c:1002
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: érvénytelen kötetszámot tartalmaz"
+
+#: src/buffer.c:1037
+msgid "Volume number overflow"
+msgstr "Kötetszám-túlcsordulás"
+
+#: src/buffer.c:1052
+#, 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:1058
+msgid "EOF where user reply was expected"
+msgstr "Fájlvége a várt felhasználói válasz helyett"
+
+#: src/buffer.c:1063 src/buffer.c:1095
+msgid "WARNING: Archive is incomplete"
+msgstr "FIGYELMEZTETÉS: Az archívum befejezetlen"
+
+#: src/buffer.c:1077
+#, 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év Új fájlnév megadása a következő (és az azt követő) köteteknek\n"
+" q A Tar megszakítása\n"
+" y vagy újsor A művelet folytatása\n"
+
+#: src/buffer.c:1082
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Új parancsértelmező hívása\n"
+
+#: src/buffer.c:1083
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Ezen lista kiírása\n"
+
+#: src/buffer.c:1090
+msgid "No new volume; exiting.\n"
+msgstr "Nincs új kötet, kilépés.\n"
+
+#: src/buffer.c:1123
+msgid "File name not specified. Try again.\n"
+msgstr "Nincs megadva fájlnév, próbálkozzon újra.\n"
+
+#: src/buffer.c:1136
+#, 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:1187
+#, c-format
+msgid "%s command failed"
+msgstr "A(z) „%s” parancs meghiúsult"
+
+#: src/buffer.c:1368
+#, 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:1372
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nem folytatódik ezen a köteten"
+
+#: src/buffer.c:1386
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s mérete hibás (%s != %s + %s)"
+
+#: src/buffer.c:1401
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Ez a kötet kívül esik a sorozaton (%s - %s != %s)"
+
+#: src/buffer.c:1479 src/buffer.c:1505
+#, 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:1509
+#, 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:1603
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+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:1794
+msgid "write did not end on a block boundary"
+msgstr "az írás nem egy rekord határán fejeződött be"
+
+#: 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:105 src/compare.c:382
+msgid "Contents differ"
+msgstr "A tartalom eltér"
+
+#: src/compare.c:131 src/extract.c:958 src/incremen.c:1462 src/list.c:397
+#: src/list.c:1384 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Váratlan fájlvége jel az archívumban"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:308 src/compare.c:406
+msgid "File type differs"
+msgstr "A fájltípus eltér"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:322
+msgid "Mode differs"
+msgstr "A mód eltér"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Az Uid eltér"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "A Gid eltér"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "A módosítási idő eltér"
+
+#: src/compare.c:215 src/compare.c:414
+msgid "Size differs"
+msgstr "A méret eltér"
+
+#: src/compare.c:263
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nincs a következőre linkelve: %s"
+
+#: src/compare.c:287
+msgid "Symlink differs"
+msgstr "A szimbolikus link eltér"
+
+#: src/compare.c:316
+msgid "Device number differs"
+msgstr "Az eszközszám eltér"
+
+#: src/compare.c:456
+#, c-format
+msgid "Verify "
+msgstr "Ellenőrzés "
+
+#: src/compare.c:463
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: A(z) „%c” fájltípus ismeretlen, a diffelés normális fájlként történt"
+
+#: src/compare.c:518
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Az archívum eltávolított előtagokkal rendelkező fájlneveket tartalmaz."
+
+#: src/compare.c:520
+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:593
+#, 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:611 src/list.c:161
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Egy magányos nulla blokk %s helyen"
+
+#: src/create.c:72
+#, 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:261
+#, 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:267
+#, 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:327
+msgid "Generating negative octal headers"
+msgstr "Negatív oktális fejlécek előállítása"
+
+#: src/create.c:611 src/create.c:674
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: a fájlnév túl hosszú (maximum: %d), nem kerül kiírásra"
+
+#: src/create.c:621
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: a fájlnév túl hosszú (nem darabolható), nem kerül kiírásra"
+
+#: src/create.c:648
+#, c-format
+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:1062
+#, 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:1158
+#, 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:1201 src/create.c:1212 src/incremen.c:582 src/incremen.c:588
+msgid "contents not dumped"
+msgstr "a tartalom nem került kiírásra"
+
+#: src/create.c:1416
+#, 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:1527
+#, c-format
+msgid "Missing links to %s."
+msgstr "Hiányzó linkek a következőre: „%s”."
+
+#: src/create.c:1688
+#, 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:1697
+#, 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:1721 src/incremen.c:575
+msgid "directory not dumped"
+msgstr "a könyvtár nem került kiírásra"
+
+#: src/create.c:1793
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: a fájl módosult olvasás közben"
+
+#: src/create.c:1855
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: a foglalat figyelmen kívül hagyva"
+
+#: src/create.c:1861
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: ajtó figyelmen kívül hagyva"
+
+#: src/delete.c:217 src/list.c:198 src/update.c:203
+msgid "Skipping to next header"
+msgstr "Ugrás a következő fejlécre"
+
+#: 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:277
+#, 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:295
+#, 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:475
+#, 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:709
+#, 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:863
+msgid "Extracting contiguous files as regular files"
+msgstr "A folytonos fájlok kibontása normál fájlként"
+
+#: src/extract.c:1183
+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:1339
+#, 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:1346 src/list.c:1117
+msgid "Unexpected long name header"
+msgstr "Váratlan hosszú névfejléc"
+
+#: src/extract.c:1353
+#, 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:1379
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "A jelenlegi „%s” újabb vagy egyező korú"
+
+#: src/extract.c:1431
+#, 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:1568
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s: Nem nevezhető át a következőre: %s"
+
+#: src/incremen.c:474 src/incremen.c:518
+#, 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:486
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: a könyvtár át lett nevezve"
+
+#: src/incremen.c:531
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: a könyvtár új"
+
+#: src/incremen.c:956 src/incremen.c:973
+msgid "Invalid time stamp"
+msgstr "Érvénytelen időbélyeg"
+
+#: src/incremen.c:1012
+msgid "Invalid modification time (seconds)"
+msgstr "Érvénytelen módosítási idő (másodperc)"
+
+#: src/incremen.c:1027
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Érvénytelen módosítási idő (nanomásodperc)"
+
+#: src/incremen.c:1047
+msgid "Invalid device number"
+msgstr "Érvénytelen eszközszám"
+
+#: src/incremen.c:1062
+msgid "Invalid inode number"
+msgstr "Érvénytelen inode-szám"
+
+#: 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:1120 src/incremen.c:1158
+msgid "Read error in snapshot file"
+msgstr "Olvasási hiba a pillanatképfájlban"
+
+#: 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: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:1264
+msgid "Missing record terminator"
+msgstr "Hiányzó rekordlezáró"
+
+#: 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:1347
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Nem támogatott növekményes formátumverzió: %<PRIuMAX>"
+
+#: 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: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: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: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: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: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: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: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: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: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:1698
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s törlése\n"
+
+#: src/incremen.c:1703
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: nem távolítható el"
+
+#: src/list.c:130
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: kihagyás"
+
+#: src/list.c:146
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blokk %s: ** A blokk üres **\n"
+
+#: src/list.c:172
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blokk %s: ** Fájlvége **\n"
+
+#: src/list.c:195 src/list.c:1089 src/list.c:1352
+#, c-format
+msgid "block %s: "
+msgstr "blokk %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:704
+#, 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:759
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Az archívum %.*s oktális értéke túllépi a(z) %s tartományt, a program feltételezi, hogy kettes komplemens"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:770
+#, 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:791
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Az archívum elavulófélben levő base-64-es fejléceket tartalmaz"
+
+#: src/list.c:805
+#, 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:836
+#, 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:865
+#, 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:887
+#, 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:1253
+#, c-format
+msgid " link to %s\n"
+msgstr " link a következőre: %s\n"
+
+#: src/list.c:1261
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " ismeretlen fájltípus: %s\n"
+
+#: src/list.c:1279
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Hosszú link--\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Hosszú név--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Kötetfejléc--\n"
+
+#: src/list.c:1295
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Folytatva %s bájttól--\n"
+
+#: src/list.c:1357
+msgid "Creating directory:"
+msgstr "Könyvtár létrehozása:"
+
+#: src/misc.c:298
+msgid "Cannot get working directory"
+msgstr "A munkakönyvtár nem kérdezhető le"
+
+#: src/misc.c:571
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s átnevezése a következőre: %s\n"
+
+#: src/misc.c:580 src/misc.c:599
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Nem nevezhető át a következőre: %s"
+
+#: src/misc.c:604
+#, 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:851
+#, 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:866
+#, 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:887
+msgid "child process"
+msgstr "gyermekfolyamat"
+
+#: src/misc.c:896
+msgid "interprocess channel"
+msgstr "folyamatközi csatorna"
+
+#: src/names.c:594
+msgid "Pattern matching characters used in file names"
+msgstr "Mintaillesztő karaktereket használt a fájlnevekben"
+
+#: src/names.c:596
+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 ezen figyelmeztetés letiltásához"
+
+#: src/names.c:614 src/names.c:630
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Nem található az archívumban"
+
+#: src/names.c:615
+#, 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/names.c:649
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Hibás archívumcímke"
+
+#: src/names.c:953
+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:959
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Érvénytelen archívumformátum"
+
+#: 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:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"A GNU „tar” több fájlt egyetlen szalagos vagy lemezes archívumba ment és képes az egyes fájlokat helyreállítani az archívumból.\n"
+"\n"
+"Például:\n"
+" tar -cf archívum.tar foo bar # Létrehozza az archívum.tar fájlt a foo\n"
+" és bar fájlokból.\n"
+" tar -tvf archívum.tar # Bőbeszédűen felsorolja az archívum.tar\n"
+" fájljait.\n"
+" tar -xf archívum.tar # Kibontja az összes fájlt az archívum.tar\n"
+" fájlból.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+" A biztonsági mentés utótagja „~”, hacsak nem változtatja meg a „--suffix”\n"
+"vagy a SIMPLE_BACKUP_SUFFIX segítségével.\n"
+"A verziófelügyelet a --backup vagy a VERSION_CONTROL segítségével kezelheti,\n"
+"az értékek:\n"
+" none, off soha ne mentsen\n"
+" t, numbered számozott mentések létrehozása\n"
+" nil, existing számozott, ha már létezik számozott mentés,\n"
+" egyébként egyszerű\n"
+" never, simple mindig egyszerű mentés létrehozása\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Fő működési mód:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "felsorolja egy archívum tartalmát"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "fájlok kibontása egy archívumból"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "új archívum létrehozása"
+
+#: src/tar.c:397
+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:400
+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:402
+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:404
+msgid "append tar files to an archive"
+msgstr "tar fájlok hozzáfűzése egy archívumhoz"
+
+#: src/tar.c:407
+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:409
+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:414
+msgid "Operation modifiers:"
+msgstr "Műveletmódosítók:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "ritka fájlok hatékony kezelése"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAGAS[.ALACSONY]"
+
+#: src/tar.c:419
+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:421
+msgid "handle old GNU-format incremental backup"
+msgstr "régi GNU formátumú növekményes mentés kezelése"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "új GNU formátumú növekményes mentés kezelése"
+
+#: src/tar.c:425
+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:427
+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:429
+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 "az archívum minden egyes fájljának csak a SZÁM-adik előfordulásának feldolgozása. Ez a kapcsoló csak a --delete, --diff, --extract vagy --list alparancsok egyikével használható és csak akkor, ha egy fájllista kerül átadásra a parancssoron vagy a -T kapcsolón keresztül. A SZÁM alapértelmezett értéke az 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "az archívum kereshető"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "az archívumban nem lehet pozicionálni"
+
+#: src/tar.c:439
+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:442
+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:448
+msgid "Overwrite control:"
+msgstr "Felülírás felügyelete:"
+
+#: src/tar.c:451
+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:453
+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:455
+msgid "don't replace existing files when extracting"
+msgstr "ne cserélje a meglévő fájlokat kibontáskor"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "meglévő fájlok felülírása kibontáskor"
+
+#: src/tar.c:461
+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:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "hierarchiák kiürítése könyvtár kibontása előtt"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "meglévő könyvtárak metaadatainak megőrzése"
+
+#: src/tar.c:467
+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:473
+msgid "Select output stream:"
+msgstr "Kimeneti adatfolyam kiválasztása:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "fájlok kibontása a szabványos kimenetre"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "PARANCS"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "kibontott fájlok továbbítása másik program számára"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "utódok kilépési kódjainak figyelmen kívül hagyása"
+
+#: src/tar.c:482
+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:487
+msgid "Handling of file attributes:"
+msgstr "Fájlattribútumok kezelése:"
+
+#: src/tar.c:490
+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:492
+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:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DÁTUM-VAGY-FÁJL"
+
+#: src/tar.c:494
+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:495
+msgid "CHANGES"
+msgstr "MÓDOSÍTÁSOK"
+
+#: src/tar.c:496
+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:498
+msgid "METHOD"
+msgstr "MÓDSZER"
+
+#: src/tar.c:499
+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 "a kiíratott fájlok hozzáférési időpontjainak megőrzése, vagy az időpontok 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:503
+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:505
+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:507
+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:509
+msgid "always use numbers for user/group names"
+msgstr "mindig számok használata a felhasználó- vagy csoportnevekhez"
+
+#: src/tar.c:511
+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:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+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:517
+msgid "sort names to extract to match archive"
+msgstr "kibontandó nevek rendezése, az archívumnak való megfelelés érdekében"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "azonos, mint a -p és -s egyszerre"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+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:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "a --delay-directory-restore kapcsoló hatásának megszüntetése"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Eszköz kiválasztása és váltása:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHÍVUM"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "az ARCHÍVUM archívumfájl vagy -eszköz használata"
+
+#: src/tar.c:535
+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:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "az adott rmt PARANCS használata az rmt helyett"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "a távoli PARANCS használata az rsh helyett"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "meghajtó és sűrűség megadása"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "többkötetes archívum létrehozása/listázása/kibontása"
+
+#: src/tar.c:559
+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:561
+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:564
+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:569
+msgid "Device blocking:"
+msgstr "Eszközblokkolás:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKK"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "rekordonként BLOKK x 512 bájt"
+
+#: src/tar.c:574
+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:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "nullázott blokkok (EOF) mellőzése az archívumban"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "újrablokkolás olvasáskor (4.2BSD csövekhez)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Archívumformátum kiválasztása:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMÁTUM"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "az adott formátumú archívum létrehozása"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "A FORMÁTUM a következők egyike:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "régi V7 tar formátum"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "A tar <= 1.12 által használt GNU formátum"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x formátum"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) formátum"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) formátum"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "azonos a pax formátummal"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "azonos a --format=v7 formátummal"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "azonos a --format=posix formátummal"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "kulcsszó[[:]=érték][,kulcsszó[[:]=érték]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "a pax kulcsszavak irányítása"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "SZÖVEG"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+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:614
+msgid "Compression options:"
+msgstr "Tömörítési kapcsolók:"
+
+#: src/tar.c:616
+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:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "ne használja az archívum kiterjesztését a tömörítőprogram meghatározására"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+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:637
+msgid "Local file selection:"
+msgstr "Helyi fájlválasztás:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "KÖNYVTÁR"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "váltás a KÖNYVTÁR könyvtárba"
+
+#: src/tar.c:644
+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:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "a -T nullal lezárt neveket olvas, letiltja a -C kapcsolót"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "a korábbi --null kapcsoló hatásának letiltása"
+
+#: src/tar.c:650
+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:652
+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:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MINTA"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "a MINTAKÉNT megadott fájlok kihagyása"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "a FÁJLBAN megadott minták kihagyása"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak tartalmának kihagyása, a címkefájl kivételével"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak alatt minden kihagyása"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak kihagyása"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "a FÁJLT tartalmazó könyvtárak alatt minden kihagyása"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "a FÁJLT tartalmazó könyvtárak kihagyása"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "verziókezelő-könyvtárak kihagyása"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "mentési és zárolási fájlok kihagyása"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "ne lépjen be automatikusan a könyvtárakba"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "az archívum létrehozásakor maradjon a helyi fájlrendszeren"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "belépés a könyvtárakba rekurzívan (alapértelmezett)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "ne vágja le a kezdő „/” jelet a fájlnevekből"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "TAGNÉV"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "kezdés a TAGNÉV tagnál az archívumban"
+
+#: src/tar.c:691
+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:693
+msgid "DATE"
+msgstr "DÁTUM"
+
+#: src/tar.c:694
+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:695
+msgid "CONTROL"
+msgstr "FELÜGYELET"
+
+#: src/tar.c:696
+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:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "KARAKTERLÁNC"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+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:703
+msgid "File name transformations:"
+msgstr "Fájlnév-átalakítások:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "KIFEJEZÉS"
+
+#: src/tar.c:708
+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:714
+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:717
+msgid "ignore case"
+msgstr "kis- és nagybetűk figyelmen kívül hagyása"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "a minták illesztése a fájlnevek elejére"
+
+#: src/tar.c:721
+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:723
+msgid "case sensitive matching (default)"
+msgstr "kis- és nagybetűkre érzékeny illesztés (alapértelmezett)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "helyettesítő karakterek használata (alapértelmezett kihagyáskor)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "szó szerinti karakterlánc-illesztés"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "a helyettesítő karakterek nem illeszkednek a perjelre"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "a helyettesítőkarakterek illeszkednek a „/” jelre (alapértelmezett kihagyáskor)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informatív kimenet:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "feldolgozott fájlok bőbeszédű listázása"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KULCSSZÓ"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "figyelmeztetés felügyelete"
+
+#: src/tar.c:743
+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:745
+msgid "ACTION"
+msgstr "MŰVELET"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "a MŰVELET végrehajtása minden ellenőrzőponton"
+
+#: src/tar.c:749
+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:750
+msgid "SIGNAL"
+msgstr "SZIGNÁL"
+
+#: src/tar.c:751
+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 "a bájtok teljes számának megjelenítése az archívum feldolgozása után egy argumentummal hívva kiírja a bájtok teljes számát ezen SZIGNÁL megkapásakor. Az engedélyezett szignálok: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 és SIGUSR2; a SIG előtag nélküli nevek is elfogadottak"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "a fájlmódosítási idők kiírása UTC szerint"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "fájl módosítási idejének kíiírása teljes pontossággal"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "bőbeszédű kimenet küldése a FÁJLBA"
+
+#: src/tar.c:762
+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:764
+msgid "ask for confirmation for every action"
+msgstr "megerősítés kérése minden egyes művelethez"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "a tar alapértelmezéseinek megjelenítése"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+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:771
+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:774
+msgid "STYLE"
+msgstr "STÍLUS"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "a KARAKTERLÁNCBÓL származó karakterek kiegészítő idézése"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "a KARAKTERLÁNCBÓL származó karakterek idézésének letiltása"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Kompatibilitási kapcsolók:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "létrehozáskor megegyezik a --old-archive kapcsolóval; kibontáskor a --no-same-owner kapcsolóval"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Egyéb kapcsolók:"
+
+#: src/tar.c:795
+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:930
+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:940
+msgid "Conflicting compression options"
+msgstr "A tömörítési kapcsolók ütköznek"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Ismeretlen szignálnév: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "A dátummintafájl nem található"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "%s cseréje az ismeretlen %s dátumformátumhoz"
+
+#: src/tar.c:1057
+#, 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:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: a fájllista már be van olvasva"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: a beolvasott fájlnév null karaktert tartalmaz"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, 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:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "A --quoting-style kapcsoló érvényes paraméterei:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Ezen* tar alapértelmezései:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Érvénytelen blokkolási tényező"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Érvénytelen szalagméret"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Hibás növekményszintérték"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Egynél több küszöbdátum"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Érvénytelen ritka verzió érték"
+
+#: src/tar.c:1718
+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:1743
+msgid "--checkpoint value is not an integer"
+msgstr "A --checkpoint értéke nem egy egész"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Érvénytelen csoport"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Érvénytelen mód került megadásra a kapcsolóban"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Érvénytelen szám"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Érvénytelen tulajdonos"
+
+#: src/tar.c:1964
+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:1975
+msgid "Invalid record size"
+msgstr "Érvénytelen rekordméret"
+
+#: src/tar.c:1978
+#, 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:2019
+msgid "Invalid number of elements"
+msgstr "Érvénytelen elemszám"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Csak egy --to-command kapcsoló engedélyezett"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Rosszul formázott sűrűségargumentum: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Ismeretlen sűrűség: „%c”"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[FÁJL]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "A régi „%c” kapcsoló paramétert igényel."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "a --occurrence értelmetlen fájllista nélkül"
+
+#: src/tar.c:2380
+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:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Több archívumfájl esetén szükséges a „-M” kapcsoló"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "A --listed-incremental és a --newer kapcsolók nem használhatók egyszerre"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "a --level értelmetlen a --listed-incremental nélkül"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "A többkötetes archívumok nem ellenőrizhetők"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "A tömörített archívumok nem ellenőrizhetők"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Nem használhatók többkötetes tömörített archívumok"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Tömörített archívumok nem fűzhetők össze"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "a --pax kapcsoló csak POSIX archívumokon használható"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "A kötet hossza nem lehet kisebb a rekord méreténél"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "a --preserve-order nem kompatibilis a --listed-incremental kapcsolóval"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Üres archívum létrehozása visszautasítva"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Az „-Aru” kapcsolók összeférhetetlenek a „-f” kapcsolóval"
+
+#: src/tar.c:2621
+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:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Kilépés hibaállapottal a korábbi hibák miatt"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, 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:174
+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:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "A(z) %s minta nem használható"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "A(z) %s minta nem bírálható felül"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Rosszul formázott kiterjesztett fejléc: a hossz hiányzik"
+
+#: src/xheader.c:550
+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:557
+#, 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:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Rosszul formázott kiterjesztett fejléc: a hossz után hiányzik egy üres hely karakter"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "A kiterjesztett fejléc hibás: egy egyenlőségjel hiányzik"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Rosszul formázott kiterjesztett fejléc: az újsor hiányzik"
+
+#: src/xheader.c:621
+#, 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:831
+#, 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:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Rosszul formázott kiterjesztett fejléc: érvénytelen %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Rosszul formázott kiterjesztett fejléc: többlet %s=%s"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Rosszul formázott kiterjesztett fejléc: érvénytelen %s: az értékek száma páratlan"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: érvénytelen időtúllépés"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: ismeretlen ellenőrzőpont-művelet"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "írás"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "olvasás"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "%u. írási ellenőrzőpont"
+
+#. 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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "%u. olvasási ellenőrzőpont"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"a genfiles adatfájlokat kezel a GNU paxutils tesztcsomag számára.\n"
+"A KAPCSOLÓK:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Fájllétrehozási kapcsolók:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "MÉRET"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Az adott MÉRETŰ fájl létrehozása"
+
+#: tests/genfile.c:131
+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:133
+msgid "Read file names from FILE"
+msgstr "Fájlnevek beolvasása a FÁJLBÓL"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "a -T nullal lezárt neveket olvas"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Egy blokk mérete ritka fájlhoz"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "ELTOLÁS"
+
+#: tests/genfile.c:145
+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:151
+msgid "File statistics options:"
+msgstr "Fájlstatisztika kapcsolói:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Szinkron végrehajtási kapcsolók:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "KAPCSOLÓ"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Az adott ARGS végrehajtása. Hasznos a --checkpoint és a --cut, --append, --touch vagy --unlink egyikével"
+
+#: tests/genfile.c:167
+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:170
+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:173
+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:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "A FÁJL csonkolása az előző --length kapcsoló által megadott méretre (vagy nullára, ha nincs megadva)"
+
+#: tests/genfile.c:185
+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:188
+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:191
+msgid "Execute COMMAND"
+msgstr "A PARANCS végrehajtása"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "A FÁJL törlése"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Érvénytelen méret: %s"
+
+#: tests/genfile.c:249
+#, 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:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negatív méret: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "a stat(%s) meghiúsult"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "a kért fájlhossz %lu, a tényleges %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "a létrehozott fájl nem ritka"
+
+#: tests/genfile.c:361
+#, 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:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Ismeretlen dátumformátum"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENTUMOK...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "a(z) „%s” nem nyitható meg"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "Nem lehet pozicionálni"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "a fájlnév null karaktert tartalmaz"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "helytelen maszk (a(z) „%s” közelében)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Ismeretlen mező: „%s”"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "nem állítható be az idő a következőn: „%s”"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "a(z) „%s” nem törölhető"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "A parancs sikeresen befejeződött\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "A parancs meghiúsult a következő állapottal: %d\n"
+
+#: tests/genfile.c:831
+#, 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:833
+#, 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:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "A parancs hibakeresési kimenetet adott vissza\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "A parancs befejeződött\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "a --stat fájlneveket igényel"
diff --git a/po/id.po b/po/id.po
new file mode 100644
index 00000000..684b1580
--- /dev/null
+++ b/po/id.po
@@ -0,0 +1,3071 @@
+# Pesan bahasa indonesia untuk tar
+# 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, 2009, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.23.90\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2010-07-11 22:57+0300\n"
+"PO-Revision-Date: 2010-07-14 10: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"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumen %s untuk %s tidak valid"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argumen %s untuk %s ambigu"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Argumen yang valid adalah:"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT parameter harus positif"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Parameter ARGP_HELP_FMT tidak diketahui"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Sampah dalam ARGP_HELP_FMT: %s"
+
+#: 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 pilihan panjang juga wajib atau opsional untuk argumen pendek yang berkorespondennya."
+
+#: gnu/argp-help.c:1639
+msgid "Usage:"
+msgstr "Penggunaan:"
+
+#: gnu/argp-help.c:1643
+msgid " or: "
+msgstr " atau: "
+
+#: gnu/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [PILIHAN...]"
+
+#: 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"
+
+#: gnu/argp-help.c:1710
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Laporkan bug ke %s.\n"
+
+#: gnu/argp-help.c:1929 gnu/error.c:155
+msgid "Unknown system error"
+msgstr "Kesalahan sistem tidak dikenal"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "berikan daftar bantuan ini"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "berikan sebuah pesan penggunaan singkat"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:131
+msgid "NAME"
+msgstr "NAMA"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "set nama aplikasi"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SECS"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "berhenti untuk DETIK detik (baku 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "tampilkan versi aplikasi"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(APLIKASI ERROR) Tidak ada versi yang dikenal!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Terlalu banyak argumen\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(APLIKASI ERROR) Pilihan seharusnya telah dikenali!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "error menulis"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: pilihan '%s' ambigu\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: pilihan '--%s' tidak mengijinkan sebuah argumen\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: pilihan '%c%s' tidak mengijinkan sebuah argumen\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: pilihan '--%s' membutuhkan sebuah argumen\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: pilihan tidak dikenal '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: pilihan tidak dikenal '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: pilihan -- '%c' tidak valid\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: pilihan membutuhkan sebuah argumen -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: pilihan '-W %s' ambigu\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: pilihan '-W %s' tidak mengijinkan sebuah argumen\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: pilihan '-W %s' membutuhkan sebuah argumen\n"
+
+#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "kehabisan memori"
+
+#: gnu/openat-die.c:36
+#, c-format
+msgid "unable to record current working directory"
+msgstr "tidak dapat menyimpan direktori kerja sekarang"
+
+#: gnu/openat-die.c:54
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "gagal untuk kembali ke direktori kerja inisial"
+
+#. 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.
+#: gnu/quotearg.c:274
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:275
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Dibungkus oleh %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\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 berlaku.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Ditulis oleh %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Ditulis oleh %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Ditulis oleh %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s, dan yang lainnya.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Laporkan bug ke: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Laporkan %s bug ke: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "%s halaman rumah: <%s>\n"
+
+#: 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"
+
+#: 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"
+
+#. 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"
+
+#: 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 "Tidak dapat menghubungi ke %s: penelusuran gagal"
+
+#: 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: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: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:617 rmt/rmt.c:661
+msgid "Operation not supported"
+msgstr "Operasi tidak didukung"
+
+#: 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:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 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:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: 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:803
+msgid "Garbage command"
+msgstr "Perintah sampah"
+
+#: src/buffer.c:386 src/buffer.c:391 src/buffer.c:635 src/buffer.c:1250
+#: src/buffer.c:1296 src/buffer.c:1325 src/delete.c:211 src/list.c:170
+#: src/update.c:189
+msgid "This does not look like a tar archive"
+msgstr "Ini sepertinya bukan sebuah tar archive"
+
+#: src/buffer.c:450 src/buffer.c:459
+msgid "Total bytes written"
+msgstr "Total byte ditulis"
+
+#: src/buffer.c:457 src/buffer.c:471
+msgid "Total bytes read"
+msgstr "Total byte dibaca"
+
+#: src/buffer.c:461
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Total byte dihapus: %s\n"
+
+#: src/buffer.c:550
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:573
+msgid "Invalid value for record_size"
+msgstr "Nilai record_size tidak valid"
+
+#: src/buffer.c:576
+msgid "No archive name given"
+msgstr "Tidak diberikan nama archive"
+
+#: src/buffer.c:618
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Tidak dapat memverifikasi stdin/stdout archive"
+
+#: src/buffer.c:632
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Archive terkompres. Gunakan %s pilihan"
+
+#: src/buffer.c:689 src/tar.c:2440
+msgid "Cannot update compressed archives"
+msgstr "Tidak dapat update compressed archives"
+
+#: src/buffer.c:782
+msgid "At beginning of tape, quitting now"
+msgstr "Berada pada awal tape, berhenti sekarang"
+
+#: src/buffer.c:788
+msgid "Too many errors, quitting"
+msgstr "Terlalu banyak errors, berhenti"
+
+#: src/buffer.c:821
+#, 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:842
+#, 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:919
+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:951
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek tidak dapat berhenti di sebuah batas rekaman"
+
+#: src/buffer.c:1002
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: berisi nomor volum yang tidak valid"
+
+#: src/buffer.c:1037
+msgid "Volume number overflow"
+msgstr "Nomor volum overflow"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Mempersiapkan volume #%d untuk %s dan tekan return: "
+
+#: src/buffer.c:1058
+msgid "EOF where user reply was expected"
+msgstr "EOF pada saat user reply diharapkan"
+
+#: src/buffer.c:1063 src/buffer.c:1095
+msgid "WARNING: Archive is incomplete"
+msgstr "PERINGATAN: Archive tidak lengkap"
+
+#: src/buffer.c:1077
+#, 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 nama Memberi sebuah nama berkas baru untuk volume selanjutnya (dan seterusnya)\n"
+" q Batalkan tar\n"
+" y or newline Lanjutkan operasi\n"
+
+#: src/buffer.c:1082
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Spawn sebuah subshell\n"
+
+#: src/buffer.c:1083
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Tampilkan daftar ini\n"
+
+#: src/buffer.c:1090
+msgid "No new volume; exiting.\n"
+msgstr "Tidak ada new volume; keluar.\n"
+
+#: src/buffer.c:1123
+msgid "File name not specified. Try again.\n"
+msgstr "Nama berkas tidak dispesifikasikan. Coba lagi.\n"
+
+#: src/buffer.c:1136
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Masukan tidak valid. Ketik ? untuk bantuan.\n"
+
+#: src/buffer.c:1187
+#, c-format
+msgid "%s command failed"
+msgstr "Perintah %s gagal"
+
+#: src/buffer.c:1368
+#, 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:1372
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s tidak dilanjutkan di volume ini"
+
+#: src/buffer.c:1386
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s adalah ukuran yang salah (%s != %s + %s)"
+
+#: src/buffer.c:1401
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Volume ini di luar urutan (%s - %s != %s)"
+
+#: src/buffer.c:1479 src/buffer.c:1505
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Label archive tidak cocok dengan %s"
+
+#: src/buffer.c:1509
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Volume %s tidak sesuai dengan %s"
+
+#: src/buffer.c:1603
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: nama berkas terlalu panjang untuk diurutkan dalam sebuah GNU multivolume header, dipotong"
+
+#: src/buffer.c:1794
+msgid "write did not end on a block boundary"
+msgstr "tulis tidak berhenti di batas blok"
+
+#: 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:105 src/compare.c:388
+msgid "Contents differ"
+msgstr "Isi berbeda"
+
+#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:383
+#: src/list.c:1373 src/xheader.c:710
+msgid "Unexpected EOF in archive"
+msgstr "Unexpected EOF dalam archive"
+
+#: 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:182 src/compare.c:202 src/compare.c:327
+msgid "Mode differs"
+msgstr "Mode berbeda"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Uid berbeda"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gid berbeda"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Mod time berbeda"
+
+#: src/compare.c:215 src/compare.c:420
+msgid "Size differs"
+msgstr "Ukuran berbeda"
+
+#: src/compare.c:269
+#, c-format
+msgid "Not linked to %s"
+msgstr "Tidak dilink ke %s"
+
+#: src/compare.c:292
+msgid "Symlink differs"
+msgstr "Symlink berbeda"
+
+#: src/compare.c:321
+msgid "Device number differs"
+msgstr "Nomor perangkat berbeda"
+
+#: src/compare.c:461
+#, c-format
+msgid "Verify "
+msgstr "Verifikasi "
+
+#: src/compare.c:468
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Tipe berkas '%c' tidak dikenal, lakukan diff sebagai berkas normal"
+
+#: src/compare.c:523
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Archive berisi nama berkas dengan awalan dihapus."
+
+#: src/compare.c:525
+msgid "Verification may fail to locate original files."
+msgstr "Verifikasi mungkin gagal untuk menemukan berkas orisinil."
+
+#: src/compare.c:598
+#, 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:616 src/list.c:147
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Sebuah lone blok nol di %s"
+
+#: 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: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: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:339
+msgid "Generating negative octal headers"
+msgstr "Membuat header oktal negatif"
+
+#: src/create.c:624 src/create.c:687
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: nama berkas terlalu panjang (maksimal %d); tidak di-dump"
+
+#: src/create.c:634
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: nama berkas terlalu panjang (tidak dapat memisahkan); tidak di-dump"
+
+#: src/create.c:661
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: nama link terlalu panjang; tidak di-dump"
+
+#: src/create.c:1075
+#, 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: Berkas diperkecil %s byte; dipadding dengan nol"
+msgstr[1] "%s: Berkas diperkecil %s byte; dipadding dengan nol"
+
+#: src/create.c:1169
+#, 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:1213 src/create.c:1224 src/incremen.c:590 src/incremen.c:596
+msgid "contents not dumped"
+msgstr "isi tidak didump"
+
+#: src/create.c:1356
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipe file tidak dikenal; file diabaikan"
+
+#: src/create.c:1466
+#, c-format
+msgid "Missing links to %s."
+msgstr "Hilang hubungan ke %s."
+
+#: src/create.c:1537
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: berkas tidak berubah; tidak di-dump"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: berkas adalah archive; tidak di-dump"
+
+#: src/create.c:1587 src/incremen.c:583
+msgid "directory not dumped"
+msgstr "direktori tidak didump"
+
+#: src/create.c:1657
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: berkas berubah saat kita membacanya"
+
+#: src/create.c:1724
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: soket diabaikan"
+
+#: src/create.c:1730
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door diabaikan"
+
+#: src/delete.c:217 src/list.c:184 src/update.c:194
+msgid "Skipping to next header"
+msgstr "Skip ke header berikutnya"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Menghapus non-header dari archive"
+
+#: src/extract.c:211
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: implausibly penanda waktu lama %s"
+
+#: 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:409
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inkonsistensi tidak diharapkan ketika membuat direktori"
+
+#: 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:759
+msgid "Extracting contiguous files as regular files"
+msgstr "Sedang extract contiguous file sebagai regular file"
+
+#: src/extract.c:1058
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Mencoba extract symbolic link sebagai hard link"
+
+#: src/extract.c:1215
+#, 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:1222 src/list.c:1106
+msgid "Unexpected long name header"
+msgstr "Tidak terduga nama header panjang"
+
+#: src/extract.c:1229
+#, 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:1255
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Saat ini %s adalah lebih baru atau berumuran sama"
+
+#: src/extract.c:1306
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Tidak dapat melakukan backup berkas ini"
+
+#: src/extract.c:1434
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Tidak dapat mengubah nama %s ke %s"
+
+#: 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:494
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktori telah diganti nama"
+
+#: src/incremen.c:539
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Direktori adalah baru"
+
+#: src/incremen.c:956 src/incremen.c:973
+msgid "Invalid time stamp"
+msgstr "Time stamp tidak valid"
+
+#: src/incremen.c:1012
+msgid "Invalid modification time (seconds)"
+msgstr "Waktu modifikasi (detik) tidak valid"
+
+#: src/incremen.c:1027
+msgid "Invalid modification time (nanoseconds)"
+msgstr "waktu modifikasi (nano detik) tidak valid"
+
+#: src/incremen.c:1047
+msgid "Invalid device number"
+msgstr "Nomor perangkat tidak valid"
+
+#: src/incremen.c:1062
+msgid "Invalid inode number"
+msgstr "Nomor inode tidak valid"
+
+#: 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:1120 src/incremen.c:1158
+msgid "Read error in snapshot file"
+msgstr "Pembacaan error dalam berkas snapshot"
+
+#: 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:1129 src/incremen.c:1169
+msgid "Unexpected field value in snapshot file"
+msgstr "Tidak terduga nilai field dalam berkas snapshot"
+
+#: src/incremen.c:1264
+msgid "Missing record terminator"
+msgstr "Hilang pengakhir rekaman"
+
+#: src/incremen.c:1325 src/incremen.c:1328
+msgid "Bad incremental file format"
+msgstr "Format berkas incremental buruk"
+
+#: src/incremen.c:1347
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Versi format incremental tidak didukung: %<PRIuMAX>"
+
+#: 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:1512
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Salah bentuk dumpdir: 'X' terduplikasi"
+
+#: src/incremen.c:1525
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Salah bentuk dumpdir: nama kosong dalam 'R'"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Salah bentuk dumpdir: 'T' tidak diawali oleh 'R'"
+
+#: src/incremen.c:1544
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Salah bentuk dumpdir: nama kosong dalam 'T'"
+
+#: 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:1571
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Salah bentuk dumpdir: 'X' tidak pernah digunakan"
+
+#: 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:1677
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Tidak menghapus direktori: tidak dapat memperoleh statistik"
+
+#: 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:1698
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Menghapus %s\n"
+
+#: src/incremen.c:1703
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Tidak dapat menghapus"
+
+#: src/list.c:116
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Mengabaikan"
+
+#: src/list.c:132
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok dari KOSONG **\n"
+
+#: src/list.c:158
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Akhir dari Berkas **\n"
+
+#: src/list.c:181 src/list.c:1078 src/list.c:1341
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:686
+#, 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:741
+#, 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:752
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Nilai oktal arsip %.*s di luar batasan %s"
+
+#: src/list.c:773
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arsip berisikan header base-64 yang kadaluarsas"
+
+#: src/list.c:787
+#, 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:818
+#, 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:847
+#, 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:869
+#, 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:1242
+#, c-format
+msgid " link to %s\n"
+msgstr " link ke %s\n"
+
+#: src/list.c:1250
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tipe file tidak dikenal %s\n"
+
+#: src/list.c:1268
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Link Panjang--\n"
+
+#: src/list.c:1272
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nama Panjang--\n"
+
+#: src/list.c:1276
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Volume Header--\n"
+
+#: src/list.c:1284
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Diteruskan pada byte %s--\n"
+
+#: src/list.c:1346
+msgid "Creating directory:"
+msgstr "Membuat direktori:"
+
+#: src/misc.c:594
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Mengganti nama %s ke %s\n"
+
+#: src/misc.c:603 src/misc.c:621
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s:Tidak dapat mengganti nama ke %s"
+
+#: src/misc.c:626
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Mengganti nama %s kembali ke %s\n"
+
+#: src/misc.c:761
+msgid "Cannot save working directory"
+msgstr "Tidak dapat menyimpan direktori kerja"
+
+#: src/misc.c:767
+msgid "Cannot change working directory"
+msgstr "Tidak bisa pindah direktori kerja"
+
+#: src/misc.c:851
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Berkas dihapus sebelum kita membacanya"
+
+#: src/misc.c:866
+#, c-format
+msgid "%s: Directory removed before we read it"
+msgstr "%s: Direktori dihapus sebelum kita membacanya"
+
+#: src/misc.c:887
+msgid "child process"
+msgstr "proses anak"
+
+#: src/misc.c:896
+msgid "interprocess channel"
+msgstr "saluran interproses"
+
+#: src/names.c:592
+msgid "Pattern matching characters used in file names"
+msgstr "Pola pencocokan karakter digunakan dalam nama berkas."
+
+#: src/names.c:594
+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 menekan peringatan ini"
+
+#: src/names.c:612 src/names.c:628
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Tidak ditemukan dalam archive"
+
+#: src/names.c:613
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Kejadian yang diinginkan tidak ditemukan dalam archive"
+
+#: src/names.c:647
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Label archive tidak cocok"
+
+#: src/names.c:921
+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:927
+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 "Pilihan `-%s' dan `-%s' membutuhkan standard masukan"
+
+#: src/tar.c:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Format archive tidak valid"
+
+#: 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:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Gaya quoting `%s' tidak diketahui. Coba `%s --quoting-style=help' untuk memperoleh daftar."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' menyimpan beberapa berkas bersama dalam sebuah tape tunggal atau disk archive, dan dapat dikembalikan ke berkas individu dari archive tersebut.\n"
+"\n"
+"Contoh:\n"
+" tar -cf archive.tar foo bar # Buat archive.tar dari berkas foo dan bar.\n"
+" tar -tvf archive.tar # Tampilkan semua berkas dalam archive.tar secara rinci.\n"
+" tar -xf archive.tar # Bongkar semua berkas dari archive.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Akhiran dari backup adalah `~', kecuali bila diset dengan --suffix atau SIMPLE_BACKUP_SUFFIX.\n"
+"Version control dapat diset dengan --backup atau VERSION_CONTROL, nilainya:\n"
+"\n"
+" none, off tidak pernah membuat backups\n"
+" t, numbered membuat backups bernomor\n"
+" nil, existing beri nomor bila nomor backup telah ada, sederhana sebaliknya\n"
+" never, simple selalu buat cadangan sederhana\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Mode operasi utama:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "daftar isi dari sebuah archive"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "ekstrak berkas dari sebuah archive"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "buat sebuah archive baru"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "cari perbedaan diantara archive dan sistem berkas"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "tambahkan berkas ke akhir dari sebuah archive"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "hanya tambahkan berkas yang lebih bari dari salinan dalam archive"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "tambahkan berkas tar ke sebuah archive"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "hapus dari archive (bukan dalam pita mag!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "test label volume archive dan keluar"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Pemodifikasi operasi:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "tangani berkas sparse secara efisien"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "set versi dari format sparse untuk digunakan (mengimplikasikan --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "tangani format GNU lama incremental backup"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "tangani format GNU barus incremental backup"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "tingkat `dump' untuk pembuatan `listed-incremental archive'"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "jangan keluar dengan bukan nol dalam berkas tidak dapat dibaca"
+
+#: src/tar.c:429
+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; 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 pilihan -T; JUMLAH baku ke 1"
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "pencarian tidak dapat dilakukan dalam archive"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "pencarian tidak dapat dilakukan dalam archive"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "tidak dapat memeriksa nomor perangkat ketika membuat archive incremental"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "periksa nomor perangkat ketika membuat incremental archive (baku)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Overwrite kontrol:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "mencoba untuk memverifikasi archive setelah menulisnya"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "hapus berkas setelah menambahkannya ke archive"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "jangan timpa berkas yang sudah ada ketika mengekstrak"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "overwrite berkas yang sudah ada ketika mengekstrak"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "hapus setiap berkas sebelum mengekstrak diatasnya"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "kosongkan susunan sebelum mengekstrak ke direktori"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "jaga metadata dari direktori yang sudah ada"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "overwrite metadata dari direktori yang sudah ada ketika mengekstrak (baku)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Pilih stream keluaran:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "ekstrak berkas ke standar keluaran"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:191
+msgid "COMMAND"
+msgstr "PERINTAH"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "pipe berkas terekstrak ke aplikasi lain"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "abaikan kode keluaran dari anak"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "perlakukan kode keluaran bukan nol dari anak sebagai error"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Penanganan dari atribut berkas:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "paksa NAMA sebagai pemilik untuk berkas yang ditambahkan"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "paksa NAMA sebagai grup untuk berkas yang ditambahkan"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATE-ATAU-BERKAS"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "set mtime untuk berkas yang ditambahkan dari DATE-OR-FILE"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "PERUBAHAN"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "paksa PERUBAHAN (simbolik) mode untuk berkas yang ditambahkan"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODE"
+
+#: src/tar.c:499
+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 "jaga waktu akses di berkas yang didump, baik dengan mengembalikan waktu setelah membaca (METODE='replace'; baku) atau dengan tidak menset waktu di tempat pertama (METODE='system')"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "jangan ekstrak waktu modifikasi berkas"
+
+#: src/tar.c:505
+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:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "ekstrak berkas seperti dirimu (baku untuk pengguna biasa)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "selalu gunakan nomor untuk nama pengguna/grup"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "ekstrak informasi mengenai ijin berkas (baku untuk superuser)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "aplikasikan umask pengguna ketika mengekstrak ijin dari archive (baku untuk pengguna biasa)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "urutkan nama untuk mengekstrak supaya cocok dengan archive"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "sama seperti baik -p dan -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "tunda konfigurasi waktu modifikasi dan ijin untuk direktori terekstrak sampai akhir dari ekstrasi"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "batalkan efek dari pilihan --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Pemilihan dan pengubahan perangkat:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIVE"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "gunakan berkas archive atau perangkat ARCHIVE"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "berkas archive adalah lokal walaupun ini memiliki sebuah kolon"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "gunakan PERINTAH rmt yang diberikan daripad rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "gunakan PERINTAH remote daripada rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "spesifikasikan drive dan kepadatan"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "buat/daftar/ekstrak multi-volume archive"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "ubah pita setelah menulis ANGKA x 1024 bytes"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "jalankan script di akhir dari setiap pite (mengimplikasikan -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "gunakan/update jumlah volume dalam BERKAS"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Bloking perangkat:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOK"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOK x 512 byte per detik"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "JUMLAH dari byte per rekaman, kelipatan dari 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "abaikan blok yang dinolkan dalam archive (berarti EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "reblok saat kita baca (untuk 4.2BSD pipes)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Pemilihan format archive:"
+
+#: src/tar.c:585 tests/genfile.c:154
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "buat archive dari format yang diberikan"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT adalah satu dari berikut:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "format tar lama V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "format gnu tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "format GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "format POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "format POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "sama seperti pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "sama seperti --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "sama seperti --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "kata kunci[[:]=nilai][,kata kunci[[:]=nilai]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "kontrol kata kunci pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEKS"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "buat archive dengan nama volume TEKS; di waktu daftar/ekstrak, gunakan TEKS sebagai sebuah pola globbing untuk nama volume"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Pilihan kompresi:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "gunaka nama akhiran archive untuk menentukan aplikasi kompresi"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "jangan gunakan nama akhiran archive untuk menentukan aplikasi kompresi"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "saring melalui PROG (harus menerima -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Pemilihan berkas lokal:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "pindah ke direktori DIR"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "dapatkan nama untuk ekstrak atau buat dari BERKAS"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T baca nama berakhiran kosong, non-aktifkan -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "non-aktifkan efek dari pilihan --null sebelumnya"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "unquote nama berkas baca dengan -T (baku)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "jangan unquote nama berkas baca dengan -T"
+
+#: src/tar.c:653 tests/genfile.c:137
+msgid "PATTERN"
+msgstr "POLA"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "jangan masukan berkas, berikan sebagai sebuah POLA"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "jangan masukan pola yang terdaftar dalam BERKAS"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "jangan masukan isi dari direktori berisi CACHEDIR.TAG, kecuali untuk berkas tag itu sendiri"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "jangan masukan apapun dibawah direktori berisi CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "jangan masukan direktori berisi CACHEDIR.TAG"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "jangan masukan apapun dibawah direktori berisi BERKAS"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "jangan masukan direktori berisi BERKAS"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "jangan masukan direktori sistem pengontrol direktori"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "abaikan berkas cadangan dan berkas kunci"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "hindari penurunan secara otomatis dalam direktori"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "tetap dalam sistem berkas lokal ketika membuat archive"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "rekursif kedalam direktori (baku)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "jangan hilangkan awalan `/' dari nama berkas"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "NAMA-ANGGOTA"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "berawal di anggota NAMA-ANGGOTA dalam archive"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "hanya simpan berkas lebih baru dari DATE-OR-FILE"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "TANGGAL"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "bandingkan tanggal dan waktu hanya ketika data berubah"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "KONTROL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "backup sebelum penghapusan, pilih PENGONTROL versi"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:170
+msgid "STRING"
+msgstr "STRING"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "backup sebelum penghapusan, override akhiran biasa ('~' kecuali di override oleh variabel lingkungan SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Transformasi nama berkas:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "EKSPRESI"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "gunakan sed EKSPRESI replace untuk mengubah nama berkas"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Pilihan nama berkas cocok (mempengaruhi baik pola exclude dan include):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "abaikan perbedaan huruf besar dan huruf kecil"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "pencocokan pola nama berkas mulai"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "pencocokan polah setelah `/' apapun (baku untuk exclusion)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "pencocokan dengan memperhatikan huruf besar dan huruf kecil (baku)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "gunakan wildcards (baku untuk exclusion)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "pencocok verbatim string"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "wildcards tidak cocok `/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "wildcards cocok `/' (baku untuk exclusion)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Keluaran informative:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "proses daftar berkas secara verbose"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KATA KUNCI"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "pengendali peringatan"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "tampilkan pesan perkembangan setiap rekaman ke ANGKA (baku 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "AKSI"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "jalankan AKSI disetiap titik pemeriksaan"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "tampilkan sebuah pesan jika tidak seluruh link didump"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SINYAL"
+
+#: src/tar.c:751
+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 "tampilkan total bytes setelah memproses archive; dengan sebuah archive - tampilkan total bytes ketika SINYAL ini dikirimkan; Sinyal yang diijinkan adalah: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 dan SIGUSR2; nama tanpa awalah SIG juga diterima"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "tampilkan waktu modifikasi berkas dalam UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "tampilkan waktu berkas sampai ke resolusi penuh"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "kirim keluaran verbose ke BERKAS"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "tampilkan jumlah blok didalam archive dengan setiap pesan"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "minta konfirmasi untuk setiap aksi"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "tampilkan tar baku"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "ketika mendaftar atau mengekstrak, daftar setiap direktori yang tidak cocok dengan kriteria pencarian"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "tampilkan berkas atau nama berkas setelah transformasi"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "GAYA"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "sebagai tambahan karakter quote dari STRING"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "non-aktifkan quoting untuk karakter dari STRING"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Pilihan yang kompatibel:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "ketika membuat, sama seperti --old-archive; ketika mengekstrak, sama seperti --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Pilihan lain:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "non-aktifkan penggunaan dari pilihan berbahaya yang berpotensial"
+
+#: src/tar.c:930
+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:940
+msgid "Conflicting compression options"
+msgstr "Pilihan kompresi konflik"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Nama sinyal: %s tidak dikenal"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Tanggal contoh berkas tidak ditemukan"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Menggantikan %s untuk format tanggal tidak dikenal %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Pilihan %s: memperlakukan tanggal `%s' sebagai %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: daftar berkas telah dibaca"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: nama berkas yang dibaca berisi karakter nul"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "saring archive melalui %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Argumen yang valid untuk pilihan --quoting-style adalah:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Ini* tar baku ke:\n"
+
+#: src/tar.c:1400
+msgid "Invalid blocking factor"
+msgstr "Faktor bloking tidak valid"
+
+#: src/tar.c:1511
+msgid "Invalid tape length"
+msgstr "Panjang tape tidak valid"
+
+#: src/tar.c:1522
+msgid "Invalid incremental level value"
+msgstr "Nilai tingkat peningkatan tidak valid"
+
+#: src/tar.c:1568
+msgid "More than one threshold date"
+msgstr "Lebih dari satu treshold date"
+
+#: src/tar.c:1623 src/tar.c:1626
+msgid "Invalid sparse version value"
+msgstr "Nilai versi sparse tidak valid"
+
+#: src/tar.c:1711
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "pilihan --atime-preserve='system' tidak didukung di platform ini"
+
+#: src/tar.c:1736
+msgid "--checkpoint value is not an integer"
+msgstr "nilai --checkpoint bukan sebuah integer"
+
+#: src/tar.c:1841
+msgid "Invalid group"
+msgstr "Grup tidak valid"
+
+#: src/tar.c:1848
+msgid "Invalid mode given on option"
+msgstr "Mode tidak tepat diberikan pada pilihan"
+
+#: src/tar.c:1905
+msgid "Invalid number"
+msgstr "Nomor tidak valid"
+
+#: src/tar.c:1927
+msgid "Invalid owner"
+msgstr "Pemilik tidak valid"
+
+#: src/tar.c:1957
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Pilihan --preserve sudah ditinggalkan, lebih baik gunakan --preserve-permissions --preserve-order"
+
+#: src/tar.c:1967
+msgid "Invalid record size"
+msgstr "Ukuran record tidak valid"
+
+#: src/tar.c:1970
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Jumlah record harus kelipatan dari %d."
+
+#: src/tar.c:2011
+msgid "Invalid number of elements"
+msgstr "Jumlah dari elemen tidak valid"
+
+#: src/tar.c:2031
+msgid "Only one --to-command option allowed"
+msgstr "Hanya satu pilihan --to-command yang diijinkan"
+
+#: src/tar.c:2111
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Salah bentuk kepadatan argumen: %s"
+
+#: src/tar.c:2137
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Kepadatan tidak diketahui: `%c'"
+
+#: src/tar.c:2154
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Pilihan `-[0-7][lmh]' tidak didukung oleh tar *ini*"
+
+#: src/tar.c:2167
+msgid "[FILE]..."
+msgstr "[BERKAS]..."
+
+#: src/tar.c:2285
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Pilihan 'lama' `%c' membutuhkan argument."
+
+#: src/tar.c:2366
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence tidak berarti tanpa sebuah daftar berkas"
+
+#: src/tar.c:2372
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence tidak dapat digunakan dalam mode operasi yang diminta"
+
+#: src/tar.c:2390
+msgid "Multiple archive files require `-M' option"
+msgstr "Berkas multiple archive membutuhkan pilihan '-M'"
+
+#: src/tar.c:2395
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Tidak dapat menggabungkan --listed-incremental dengan --newer"
+
+#: src/tar.c:2398
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level tidak berarti tanpa --listed-incremental"
+
+#: src/tar.c:2415
+#, 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:2428
+msgid "Cannot verify multi-volume archives"
+msgstr "Tidak dapat verifikasi multi-volume archives"
+
+#: src/tar.c:2430
+msgid "Cannot verify compressed archives"
+msgstr "Tidak dapat verify compressed archives"
+
+#: src/tar.c:2436
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Tidak dapat menggunakan multi-volume compressed archives"
+
+#: src/tar.c:2442
+msgid "Cannot concatenate compressed archives"
+msgstr "Tidak dapat update compressed archives"
+
+#: src/tar.c:2454
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option hanya dapat digunakan dalam archive POSIX"
+
+#: src/tar.c:2472
+msgid "Volume length cannot be less than record size"
+msgstr "Panjang volume tidak dapat lebih kecil dari ukuran rekaman"
+
+#: src/tar.c:2475
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order tidak kompatibel dengan --listed-incremental"
+
+#: src/tar.c:2486
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Secara takut menolak untuk membuat sebuah archive kosong"
+
+#: src/tar.c:2512
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Pilihan '-Aru' tidak kompatibel dengan `-f -'"
+
+#: src/tar.c:2601
+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:2655
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Keluar dengan status gagal karena error error sebelumnya"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: Berkas mengecil sebanyak %s byte"
+msgstr[1] "%s: Berkas mengecil sebanyak %s byte"
+
+#: 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: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:218
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Kata kunci %s tidak dapat dioverride"
+
+#: src/xheader.c:541
+msgid "Malformed extended header: missing length"
+msgstr "Salah bentuk ekstensi header: hilang panjang"
+
+#: 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:556
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Ekstensi panjang header %*s diluar dari jangkauan"
+
+#: src/xheader.c:568
+msgid "Malformed extended header: missing blank after length"
+msgstr "Salah bentuk ekstensi header: hilang blank setelah panjang"
+
+#: src/xheader.c:576
+msgid "Malformed extended header: missing equal sign"
+msgstr "Salah bentuk ekstensi header: hilang tanda sama dengan"
+
+#: src/xheader.c:582
+msgid "Malformed extended header: missing newline"
+msgstr "Salah bentuk ekstensi header: hilang baris baru"
+
+#: 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:830
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Pasangan kata kunci/nilai yang dihasilkan terlalu panjang (kata kunci=%s, panjang=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: 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: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: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: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: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"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: bukan sebuah kehabisan waktu yang valid"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: aksi titik pemeriksaan tidak diketahui"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "tulis"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "baca"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Menulis titik pemeriksaan %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Membaca titik pemeriksaan %u"
+
+#: 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"
+"PILIHAN adalah:\n"
+
+#: tests/genfile.c:128
+msgid "File creation options:"
+msgstr "Pilihan pembuatan berkas:"
+
+#: tests/genfile.c:129 tests/genfile.c:140
+msgid "SIZE"
+msgstr "UKURAN"
+
+#: tests/genfile.c:130
+msgid "Create file of the given SIZE"
+msgstr "Buat berkas dari UKURAN yang diberikan"
+
+#: 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:134
+msgid "Read file names from FILE"
+msgstr "Baca nama berkas dari BERKAS"
+
+#: tests/genfile.c:136
+msgid "-T reads null-terminated names"
+msgstr "-T baca nama berakhiran null"
+
+#: 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:141
+msgid "Size of a block for sparse file"
+msgstr "Ukuran dari sebuah blok untuk berkas sparse"
+
+#: 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:145
+msgid "OFFSET"
+msgstr "OFSET"
+
+#: 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:152
+msgid "File statistics options:"
+msgstr "Pilihan statistik berkas:"
+
+#: 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:162
+msgid "Synchronous execution options:"
+msgstr "pilihan eksekusi synchronous:"
+
+#: tests/genfile.c:164
+msgid "OPTION"
+msgstr "PILIHAN"
+
+#: tests/genfile.c:165
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Jalankan ARG. Berguna dengan --checkpoint dan satu dari --cut, --append, --touch, --unlink"
+
+#: 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:171
+msgid "Set date for next --touch option"
+msgstr "Set tanggal untuk pilihan --touch selanjutnya"
+
+#: 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: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 pilihan --checkpoint dicapai."
+
+#: 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 pilihan --length sebelumnya (atau 0, jika ini tidak diberikan)"
+
+#: 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 pilihan --length sebelumnya."
+
+#: tests/genfile.c:189
+msgid "Update the access and modification times of FILE"
+msgstr "Update waktu akses dan modifikasi dari BERKAS"
+
+#: tests/genfile.c:192
+msgid "Execute COMMAND"
+msgstr "Jalankan PERINTAH"
+
+#: 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:250
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Jumlah diluar dari jangkauan yang diijinkan: %s"
+
+#: tests/genfile.c:253
+#, c-format
+msgid "Negative size: %s"
+msgstr "Ukuran negatif: %s"
+
+#: tests/genfile.c:266 tests/genfile.c:568
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) gagal"
+
+#: tests/genfile.c:269
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "panjang berkas yang diminta %lu, sebenernya %lu"
+
+#: tests/genfile.c:273
+#, c-format
+msgid "created file is not sparse"
+msgstr "pembuatan berkas tidak sparse"
+
+#: tests/genfile.c:362
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Error parsing nomor didekat `%s'"
+
+#: tests/genfile.c:368
+#, c-format
+msgid "Unknown date format"
+msgstr "Format tanggal tidak diketahui"
+
+#: tests/genfile.c:392
+msgid "[ARGS...]"
+msgstr "[ARG...]"
+
+#: 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:435
+msgid "cannot seek"
+msgstr "Tidak dapat mencari"
+
+#: tests/genfile.c:452
+#, c-format
+msgid "file name contains null character"
+msgstr "nama berkas berisi karakter null"
+
+#: 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 pilihan --file"
+
+#: tests/genfile.c:595
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "mask tidak benar (didekat `%s')"
+
+#: tests/genfile.c:601 tests/genfile.c:634
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Field `%s' tidak diketahui"
+
+#: tests/genfile.c:661
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "tidak dapat menset waktu di `%s'"
+
+#: 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:828
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Perintah gagal dengan status %d\n"
+
+#: tests/genfile.c:832
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Perintah berakhir di sinyal %d\n"
+
+#: tests/genfile.c:834
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Perintah berhenti di sinyal %d\n"
+
+#: tests/genfile.c:837
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Perintah memberika core dump\n"
+
+#: tests/genfile.c:840
+#, c-format
+msgid "Command terminated\n"
+msgstr "Perintah berakhir\n"
+
+#: tests/genfile.c:872
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat membutuhkan nama berkas"
+
+#~ 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 "Peringatan: option -l tidak didukung; mungkin maksud anda -j atau -T?"
+
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "Kesalahan exit ditunda dari error sebelumnya"
+
+#~ msgid "block size"
+#~ msgstr "ukuran blok"
+
+#~ msgid "Cannot dup"
+#~ msgstr "Tidak dapat melakukan dup"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "Tidak dapat menggunakan compressed atau remote archives"
+
+#~ msgid "tar (child)"
+#~ msgstr "tar (child)"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (grandchild)"
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "PERINGATAN: Tidak ada volume header"
+
+#~ msgid "Child returned status %d"
+#~ msgstr "Child mengembalikan status %d"
+
+#~ msgid "Member names contain `..'"
+#~ msgstr "Nama anggota mengandung `..'"
+
+#~ msgid "%s: Member name contains `..'"
+#~ msgstr "%s: Nama anggota berisikan `..'"
+
+#~ msgid "Visible long name error"
+#~ msgstr "Kesalahan visible long file name"
+
+#~ msgid "Device number out of range"
+#~ msgstr "Nomor device di luar batasan"
+
+#~ msgid "Visible longname error"
+#~ msgstr "Kesalahan visible longname"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "Berganti nama dari %s ke %s"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ msgstr "%s: Tidak dapat symlink ke %s"
+
+#~ msgid "Symlinked %s to %s"
+#~ msgstr "Symlink %s ke %s"
+
+#~ msgid "Unknown demangling command %s"
+#~ msgstr "Perintah demangling %s tidak dikenal"
+
+#~ msgid "Missing file name after -C"
+#~ msgstr "File name tidak ditemukan setelah -C"
+
+#~ 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 ""
+#~ "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."
+
+#~ msgid "rmtd: Garbage command %c\n"
+#~ msgstr "rmtd: Command tidak terpakai %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' menyimpan sejumlah file dalam sebuah tape atau disk archive, dan\n"
+#~ "dapat restore sebuah file dari archive.\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"
+#~ "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"
+
+#~ 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"
+#~ "Modus operasi utama:\n"
+#~ " -t, --list melihat isi archive\n"
+#~ " -x, --extract, --get mengekstrak file archive\n"
+#~ " -c, --create membuat archive baru\n"
+#~ " -d, --diff, --compare mencari beda antara archive dan file system\n"
+#~ " -r, --append menambahkan file pada bagian akhir archive\n"
+#~ " -u, --update hanya menambahkan file yang lebih baru daripada yang ada di archive\n"
+#~ " -A, --catenate append file tar ke dalam archive\n"
+#~ " --concatenate sama seperti -A\n"
+#~ " --delete menghapus dari archive (tidak berlaku untuk mag tapes!)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Operation modifiers:\n"
+#~ " -W, --verify attempt to verify the archive after writing it\n"
+#~ " --remove-files remove files after adding them to the archive\n"
+#~ " -k, --keep-old-files don't replace existing files when extracting\n"
+#~ " --overwrite overwrite existing files when extracting\n"
+#~ " --overwrite-dir overwrite directory metadata when extracting\n"
+#~ " -U, --unlink-first remove each file prior to extracting over it\n"
+#~ " --recursive-unlink empty hierarchies prior to extracting directory\n"
+#~ " -S, --sparse handle sparse files efficiently\n"
+#~ " -O, --to-stdout extract files to standard output\n"
+#~ " -G, --incremental handle old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " handle new GNU-format incremental backup\n"
+#~ " --ignore-failed-read do not exit with nonzero on unreadable files\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Modifier operasi:\n"
+#~ " -W, --verify berusaha verifikasi archive setelah menulisnya\n"
+#~ " --remove-files hapus file setelah menambahkannya ke dalam archive\n"
+#~ " -k, --keep-old-files tidak menimpa file yang telah ada ketika membongkar\n"
+#~ " --overwrite timpa file yang ada ketika membongkar\n"
+#~ " --overwrite-dir timpa metadata direktori ketika membongkar\n"
+#~ " -U, --unlink-first hapus setiap file sebelum membongkar kepadanya\n"
+#~ " --recursive-unlink mengosongkan hierarchies sebelum membongkar direktori\n"
+#~ " -S, --sparse menangani file sparse dengan efisien\n"
+#~ " -O, --to-stdout extract file ke standard output\n"
+#~ " -G, --incremental menangani old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " menangani new GNU-format incremental backup\n"
+#~ " --ignore-failed-read tidak keluar dengan nonzero pada file yang tidak terbaca\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --preserve same as both -p and -s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Menangani atribut file:\n"
+#~ " --owner=NAME paksa NAME sebagai owner file yang ditambahkan\n"
+#~ " --group=NAME paksa NAME sebagai group file yang ditambahkan\n"
+#~ " --mode=CHANGES paksa modus (symbolic) CHANGES untuk file yang ditambahkan\n"
+#~ " --atime-preserve tidak mengganti access time pada dumped file\n"
+#~ " -m, --modification-time tidak extract modification time dari file\n"
+#~ " --same-owner mencoba extract file dengan ownership yang sama\n"
+#~ " --no-same-owner extract file sebagai anda sendiri\n"
+#~ " --numeric-owner selalu gunakan angka untuk nama user/group\n"
+#~ " -p, --same-permissions extract semua informasi protection\n"
+#~ " --no-same-permissions jangan bongkar informasi permisi\n"
+#~ " --preserve-permissions sama seperti -p\n"
+#~ " -s, --same-order sort name yang akan diextract sesuai dengan archive\n"
+#~ " --preserve-order sama seperti -s\n"
+#~ " --preserve sama seperti -p dan -s\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device selection and switching:\n"
+#~ " -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+#~ " --force-local archive file is local even if has a colon\n"
+#~ " --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+#~ " -[0-7][lmh] specify drive and density\n"
+#~ " -M, --multi-volume create/list/extract multi-volume archive\n"
+#~ " -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+#~ " --new-volume-script=FILE same as -F FILE\n"
+#~ " --volno-file=FILE use/update the volume number in FILE\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Pemilihan dan penggantian device:\n"
+#~ " -f, --file=ARCHIVE gunakan file atau device ARCHIVE\n"
+#~ " --force-local file archive local, walaupun memiliki colon\n"
+#~ " --rsh-command=COMMAND gunakan COMMAND remote selain rsh\n"
+#~ " -[0-7][lmh] menentukan drive dan density\n"
+#~ " -M, --multi-volume buat/lihat/extract archive multi-volume\n"
+#~ " -L, --tape-length=NUM ganti tape setelah menulis NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE jalankan script pada akhir setiap tape (berlaku untuk -M)\n"
+#~ " --new-volume-script=FILE sama seperti -F FILE\n"
+#~ " --volno-file=FILE gunakan/update volume number dalam FILE\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device blocking:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+#~ " --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+#~ " -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+#~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Device blok:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes setiap record\n"
+#~ " --record-size=SIZE SIZE bytes setiap record, kelipatan dari 512\n"
+#~ " -i, --ignore-zeros abaikan zeroed blocks dalam archive (berarti EOF)\n"
+#~ " -B, --read-full-records block ulang pada saat baca (untuk 4.2BSD pipes)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -o, --old-archive, --portability write a V7 format archive\n"
+#~ " --posix write a POSIX format archive\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -d)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Pilihan format archive:\n"
+#~ " -V, --label=NAME buat archive dengan volume name NAME\n"
+#~ " PATTERN saat list/extract, globbing PATTERN\n"
+#~ " -o, --old-archive, --portability tulis dalam format archive V7\n"
+#~ " --posix tulis dalam format archive POSIX\n"
+#~ " -j, --bzip2 filter arsip menggunakan bzip2\n"
+#~ " -z, --gzip, --ungzip filter archive menggunakan gzip\n"
+#~ " -Z, --compress, --uncompress filter archive menggunakan compress\n"
+#~ " --use-compress-program=PROG filter menggunkan PROG (harus menggunakan -d)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -K, --starting-file=NAME begin at file NAME in the archive\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Pilihan local file:\n"
+#~ " -C, --directory=DIR pindah ke directory DIR\n"
+#~ " -T, --files-from=NAME gunakan NAME untuk extract atau buat dari file\n"
+#~ " --null -T membaca null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN abaikan file dengan pola PATTERN\n"
+#~ " -X, --exclude-from=FILE abaikan pola yang ada dalam file FILE\n"
+#~ " --anchored abaikan pola yang cocok dengan awal nama file (default)\n"
+#~ " --no-anchored abaikan pola yang cocok setelah sembarang /\n"
+#~ " --ignore-case abaikan ignore-case\n"
+#~ " --no-ignore-case pengabaian adalah case sensitive (default)\n"
+#~ " --wildcards abaikan pola yang menggunakan wildcards (default)\n"
+#~ " --no-wildcards abaikan pola yang string biasa\n"
+#~ " --wildcards-match-slash abaikan pola wildcard yang cocok dengan '/' (default)\n"
+#~ " --no-wildcards-match-slash abaikan pola wildcard yang tidak cocok dengan '/'\n"
+#~ " -P, --absolute-names tidak menghilangkan awalan `/'s dari nama file\n"
+#~ " -h, --dereference dump file yang ditunjuk oleh symlink\n"
+#~ " --no-recursion tidak otomatis menyertakan sub directory\n"
+#~ " -l, --one-file-system tetap pada local file system saat membuat archive\n"
+#~ " -K, --starting-file=NAME mulai dengan file NAME dalam archive\n"
+
+#~ msgid ""
+#~ " -N, --newer=DATE only store files newer than DATE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed only\n"
+#~ " --after-date=DATE same as -N\n"
+#~ msgstr ""
+#~ " -N, --newer=DATE hanya simpan files yang lebih baru dari DATE\n"
+#~ " --newer-mtime bandingkan date dan time hanya saat data berubah\n"
+#~ " --after-date=DATE sama seperti -N\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --suffix=SUFFIX backup before removal, override usual suffix\n"
+#~ msgstr ""
+#~ " --backup[=CONTROL] backup sebelum menghapus, pilih version control\n"
+#~ " --suffix=SUFFIX backup sebelum menghapus, ganti akhiran SUFFIX\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --confirmation same as -w\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Output informasi:\n"
+#~ " --help menampilkan help ini dan keluar\n"
+#~ " --version menampilkan versi program tar dan keluar\n"
+#~ " -v, --verbose menampilkan keterangan file yang sedang diproses\n"
+#~ " --checkpoint menampilkan nama directory names saat membaca archive\n"
+#~ " --totals menampilkan jumlah byte yang ditulis saat membuat archive\n"
+#~ " -R, --block-number menampilkan nomor blok dalam archive dengan setiap pesan\n"
+#~ " -w, --interactive interaktif, meminta konfirmasi untuk setiap tindakan\n"
+#~ " --confirmation sama seperti -w\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+#~ "is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+#~ "Support for POSIX is only partially implemented, don't count on it yet.\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*This* `tar' defaults to `-f%s -b%d'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "GNU tar tidak dapat membaca atau menghasilkan archive `--posix' archives.\n"
+#~ "Bila POSIXLY_CORRECT telah diset pada environment, GNU extensions diabaikan\n"
+#~ "dengan `--posix'.\n"
+#~ "Support untuk POSIX baru sebagian diimplementasi, jangan bergantung pada hal ini.\n"
+#~ "ARCHIVE dapat berupa FILE, HOST:FILE atau USER@HOST:FILE; DATE mungkin berupa \n"
+#~ "tanggal tekstual atau sebuah nama file yang dimulai dengan `/' atau `', yang akan digunakan tanggal file.\n"
+#~ "Default `tar' *ini* adalah `-f%s -b%d'.\n"
+
+#~ msgid "Obsolete option, now implied by --blocking-factor"
+#~ msgstr "Pilihan tidak berlaku lagi, gunakan --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --blocking-factor"
+#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --read-full-records"
+#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --read-full-records"
+
+#~ msgid "Obsolete option name replaced by --touch"
+#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --touch"
+
+#~ msgid "Obsolete option name replaced by --absolute-names"
+#~ msgstr "Pilihan tidak berlaku lagi, digantikan oleh --absolute-names"
+
+#~ msgid "Obsolete option name replaced by --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 "Pilihan tidak berlaku lagi, digantikan oleh --backup"
+
+#~ msgid "Written by John Gilmore and Jay Fenlason."
+#~ msgstr "Ditulis oleh John Gilmore dan Jay Fenlason."
+
+#~ msgid ""
+#~ "If a long option shows an argument as mandatory, then it is mandatory\n"
+#~ "for the equivalent short option also.\n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH of generated file\n"
+#~ " -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+#~ " --help display this help and exit\n"
+#~ " --version output version information and exit\n"
+#~ msgstr ""
+#~ "Bila long option menunjukkan argumen sebagai mandatory, maka pilihan tersebut\n"
+#~ "adalah mandatory juga untuk short option. \n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH dari file yang dihasilkan\n"
+#~ " -p, --pattern=PATTERN PATTERN adalah `default' atau `zeros'\n"
+#~ " --help menampilkan help ini dan keluar\n"
+#~ " --version menampilkan informasi versi dan keluar\n"
diff --git a/po/insert-header.sin b/po/insert-header.sin
new file mode 100644
index 00000000..b26de01f
--- /dev/null
+++ b/po/insert-header.sin
@@ -0,0 +1,23 @@
+# Sed script that inserts the file called HEADER before the header entry.
+#
+# At each occurrence of a line starting with "msgid ", we execute the following
+# commands. At the first occurrence, insert the file. At the following
+# occurrences, do nothing. The distinction between the first and the following
+# occurrences is achieved by looking at the hold space.
+/^msgid /{
+x
+# Test if the hold space is empty.
+s/m/m/
+ta
+# Yes it was empty. First occurrence. Read the file.
+r HEADER
+# Output the file's contents by reading the next line. But don't lose the
+# current line while doing this.
+g
+N
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/po/it.po b/po/it.po
new file mode 100644
index 00000000..ec2c567c
--- /dev/null
+++ b/po/it.po
@@ -0,0 +1,2636 @@
+# Italian translation of GNU tar.
+# Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+#
+# Lele Gaifax <lele@nautilus.eclipse.it>, 1996.
+# Marco d'Itri <md@linux.it>, 1998.
+#
+# Milo Casagrande <milo@casagrande.name>, 2008-2010, 2011.
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar-1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-13 12:09+0100\n"
+"Last-Translator: Milo Casagrande <milo@casagrande.name>\n"
+"Language-Team: Italian <tp@lists.linux.it>\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argomento %s non valido per %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argomento %s ambiguo per %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Gli argomenti validi sono:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: parametro ARGP_HELP_FMT sconosciuto"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Spazzatura in ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Gli argomenti obbligatori o facoltativi per le opzioni estese lo sono anche per le corrispondenti opzioni brevi."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Uso:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " o: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [OPZIONE...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Usare \"%s --help\" o \"%s --usage\" per ulteriori informazioni.\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Segnalare i bug a %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Errore di sistema sconosciuto"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "Mostra questo aiuto"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "Mostra un breve messaggio sull'uso"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NOME"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "Imposta il nome del programma"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEC"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "Resta in attesa per SEC secondi (predefinito 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "Stampa la versione del programma"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ERRORE DEL PROGRAMMA) Nessuna versione conosciuta."
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: troppi argomenti\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ERRORE DEL PROGRAMMA) L'opzione dovrebbe essere stata riconosciuta."
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "Errore di scrittura"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: l'opzione \"%s\" è ambigua\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"--%s\" non accetta un argomento\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"%c%s\" non accetta un argomento\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: l'opzione \"--%s\" richiede un argomento\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: opzione \"--%s\" non riconosciuta\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: opzione \"%c%s\" non riconosciuta\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: opzione non valida -- \"%c\"\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: l'opzione richiede un argomento -- \"%c\"\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: l'opzione \"-W %s\" è ambigua\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: l'opzione \"-W %s\" non accetta un argomento\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: l'opzione \"-W %s\" richiede un argomento\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "memoria esaurita"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "Impossibile registrare la directory di lavoro corrente"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "Impossibile ritornare alla directory di lavoro iniziale"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "\""
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "\""
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[sSyY].*"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN].*"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Pacchetto creato da %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Pacchetto creato da %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Licenza GPLv3+: GNU GPL versione 3 o successiva <http://gnu.org/licenses/gpl.html>\n"
+"Questo programma è software libero: siete liberi di modificarlo e ridistribuirlo.\n"
+"Non c'è ALCUNA GARANZIA, per quanto consentito dalle vigenti normative.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Scritto da %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Scritto da %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Scritto da %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s e altri.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Segnalare i bug a: %s\n"
+"Segnalare i bug di traduzione a: <tp@lists.linux.it>\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Segnalare i bug di %s a: %s\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Sito web di %s: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, 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
+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"
+
+#. 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Rimozione di \"%s\" iniziale dai nomi dei membri"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Rimozione di \"%s\" iniziale dagli obiettivi dei collegamenti fisici"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Sostituzione di \".\" al nome vuoto di un membro"
+
+#: lib/paxnames.c:155
+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 "Impossibile connettersi a %s: \"resolve\" non riuscita"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Impossibile eseguire la shell remota"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Direzione di seek fuori dell'intervallo"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Direzione di seek non valida"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Offset di seek non valido"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Offset di seek fuori dell'intervallo"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Conteggio byte non valido"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Conteggio byte fuori dell'intervallo"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "EOF prematuro"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Codice d'operazione non valido"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operazione non supportata"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Argomenti non attesi"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Manipola un dispositivo a nastro, accettando comandi da un processo remoto"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NUMERO"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "Imposta il livello di debug"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FILE"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "Imposta il nome del file di output per il debug"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "impossibile aprire %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "troppi argomenti"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Comando spazzatura"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Questo non sembra un archivio tar"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Byte totali scritti"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Byte totali letti"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Byte totali eliminati: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Valore di record_size non valido"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Non è stato indicato il nome di un archivio"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Impossibile verificare archivi su stdin/stdout"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "L'archivio è compresso. Usare l'opzione %s."
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Impossibile aggiornare archivi compressi"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "All'inizio del nastro, uscita immediata"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Troppi errori, uscita"
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek non si è fermata al limite di un record"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: contiene un numero di volume non valido"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Overflow del numero di volume"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Preparare il volume #%d per %s e premere Invio: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "Ricevuto EOF quando era attesa la risposta dell'utente"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "Attenzione: l'archivio non è completo"
+
+#: src/buffer.c:1148
+#, 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 nome Cambia il nome del file per il prossimo volume (e i successivi)\n"
+" q Termina tar\n"
+" y o Invio Continua l'operazione\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Esegue una subshell\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Stampa questo elenco\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Nessun nuovo volume; uscita.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Nome file non specificato. Riprovare.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Input non valido. Premere ? per l'aiuto.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "comando \"%s\" non riuscito"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s non continua su questo volume"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s è la dimensione sbagliata (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Questo volume è fuori sequenza (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "L'archivio non ha un'etichetta corrispondente a %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Il volume %s non corrisponde a %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: il nome del file è troppo lungo per essere scritto in un'intestazione GNU multi-volume, troncato"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "write non si è fermata al limite di un record"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "I contenuti sono differenti"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "EOF inatteso nell'archivio"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "I tipi dei file sono diversi"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "I modi sono diversi"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Gli UID sono diversi"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "I GID sono diversi"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Gli orari di modifica sono diversi"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Le dimensioni sono diverse"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Non è collegato a %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "I collegamenti simbolici sono diversi"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "I numeri dei device sono diversi"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Verifica "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: tipo di file \"%c\" sconosciuto, confrontato come un file normale"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "L'archivio contiene nomi di file con i prefissi iniziali rimossi."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "L'archivio contiene nomi di file trasformati."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "La verifica potrebbe non riuscire a trovare i file originali."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Un singolo blocco di zeri a %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: contiene un'etichetta di directory cache %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "valore %s fuori dall'intervallo (%s) %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Generazione delle intestazioni ottali negative"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: il nome del file è troppo lungo (max %d); non archiviato"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: il nome del file è troppo lungo (impossibile dividerlo); non archiviato"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: il nome del collegamento è troppo lungo; non archiviato"
+
+#: src/create.c:1064
+#, 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "contenuti non archiviati"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: tipo di file sconosciuto; file ignorato"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Collegamenti mancanti a %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: il file non è modificato; non archiviato"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: il file è l'archivio; non archiviato"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "directory non archiviata"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: file modificato mentre era in lettura"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket ignorato"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door ignorata"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Passaggio alla prossima intestazione"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Eliminazione non-intestazione dall'archivio"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: orario %s inverosimilmente vecchio"
+
+# (ndt) problema del plurale...
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: incoerenza inaspettata nel creare la directory"
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Estrazione file contigui come file normali"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Tentativo di estrazione dei collegamenti simbolici come collegamenti fisici"
+
+#: src/extract.c:1365
+#, 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:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Intestazione di nome lungo inattesa"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: tipo di file \"%c\" sconosciuto, estratto come file normale"
+
+# (ndt) questo è il pezzo di codice
+# if (file_newer_p (file_name, &current_stat_info))
+# {
+# WARN ((0, 0, _("Current %s is newer or same age"),
+# quote (file_name)));
+# return 0;
+# }
+#: src/extract.c:1405
+#, 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:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: impossibile eseguire il backup di questo file"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Impossibile rinominare %s in %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: directory rinominata da %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: directory rinominata"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: directory nuova"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Orario non valido"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Orario di modifica non valido (secondi)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Orario di modifica non valido (nanosecondi)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Numero di device non valido"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Numero dell'inode non valido"
+
+# (ndt) oppure rendere snapshot come istantanea?
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Campo troppo lungo nel leggere il file di snapshot"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Errore di lettura nel file di snapshot"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "EOF inatteso nel file di snapshot"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Valore del campo inatteso nel file di snapshot"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Record finale mancante"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Formato file incrementale errato"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Versione formato incrementale non supportata: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "dumpdir malformata: atteso \"%c\", ma trovato %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "dumpdir malformata: \"X\" duplicata"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "dumpdir malformata: nessun nome in \"R\""
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "dumpdir malformata: \"T\" non preceduta da \"R\""
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "dumpdir malformata: nessun nome in \"T\""
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "dumpdir malformata: \"X\" mai usata"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Impossibile creare la directory temporanea usando il modello %s"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: eliminazione directory non eseguita: impossibile fare stat"
+
+#: src/incremen.c:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: eliminazione di %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: impossibile rimuoverlo"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: omesso"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blocco %s: ** Blocco di NUL **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blocco %s: ** Fine del file **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blocco %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr ""
+"Il valore ottale %.*s dell'archivio è fuori dall'intervallo %s; si suppone\n"
+"che sia in complemento a due"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "L'archivio contiene intestazioni base-64 obsolete"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " collegamento a %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tipo di file sconosciuto %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Collegamento lungo--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nome lungo--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Intestazione del volume--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Continua al byte %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Creazione directory:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Impossibile recuperare la directory di lavoro"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Rinomina di %s in %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: impossibile rinominarlo in %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Rinomina di %s nuovamente in %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: file rimosso prima di poterlo leggere"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "il processo figlio"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "il canale tra processi"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Usati caratteri di corrispondenza nei nomi dei file."
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Usare --wildcards per abilitare la corrispondenza o --no-wildcards per disabilitare l'avviso"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: non trovato nell'archivio"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: occorrenza richiesta non trovata nell'archivio"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Etichetta dell'archivio non corrispondente"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "L'utilizzo dell'opzione -C all'interno dell'elenco dei file non è consentita con --listed-incremental"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Solo un'opzione -C è consentita 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: formato dell'archivio non valido"
+
+#: 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:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Stile di citazione \"%s\" non conosciuto. Provare \"%s --quoting-style=help\" per visualizzarne un elenco."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"La versione GNU di \"tar\" è in grado di salvare molti file in un solo archivio su nastro o su disco e può ripristinare singoli file dall'archivio.\n"
+"\n"
+"Esempi:\n"
+" tar -cf archivio.tar foo bar # Crea archivio.tar dai file foo e bar\n"
+" tar -tvf archivio.tar # Elenca prolissamente i file in archivio.tar\n"
+" tar -xf archivio.tar # Estrae tutti i file da archivio.tar\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Il suffisso dei backup è \"~\" a meno che non sia impostato con --suffix oppure\n"
+"SIMPLE_BACKUP_SUFFIX.\n"
+"Il controllo di versione può essere impostato con --backup oppure VERSION_CONTROL,\n"
+"i valori possibili sono:\n"
+"\n"
+" none, off Non esegue mai i backup\n"
+" t, numbered Esegue backup numerati\n"
+" nil, existing Numerati se esistono backup numerati, altrimenti semplici\n"
+" never, simple Esegue sempre backup semplici\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Modi operativi principali:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "Elenca i contenuti dell'archivio"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "Estrae file da un archivio"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "Crea un nuovo archivio"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "Trova differenze tra l'archivio e il file system"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "Accoda i file alla fine di un archivio"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "Accoda solo i file più recenti della copia nell'archivio"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "Aggiunge il contenuto di un altro archivio"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "Elimina dall'archivio (non su nastri magnetici)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "Verifica l'etichetta di volume dell'archivio ed esce"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Modificatori delle operazioni:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "Gestisce efficientemente i file sparsi"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+# (ndt) hmmm... formato sparso...
+#: src/tar.c:419
+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:421
+msgid "handle old GNU-format incremental backup"
+msgstr "gestisce i vecchi backup incrementali GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "Gestisce il nuovo formato di backup incrementali GNU"
+
+# (ndt) suggerimenti?
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "Livello di dump per l'archivio a lista incrementale creato"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "Non esce con non-zero quando ci sono file non leggibili"
+
+#: src/tar.c:429
+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 "Elabora solo la NUMERO-esima occorrenza di ogni file nell'archivio; quest'opzione è valida solo se usata insieme a uno dei sottocomandi --delete, --diff, --extract o --list e quando viene fornito un elenco di file sulla riga di comando o attraverso l'opzione -T; il valore predefinito di NUMERO è 1"
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "L'archivio è posizionabile"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "L'archivio non è posizionabile"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "Non controlla i numeri del device quando crea archivi incrementali"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "Controlla i numeri del device quando crea archivi incrementali (predefinito)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Controlli di sovrascrittura:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "Tenta di verificare l'archivio dopo averlo scritto"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "Rimuove i file dopo averli aggiunti all'archivio"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "Durante l'estrazione non sovrascrive i file esistenti"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "Sovrascrive i file esistenti durante l'estrazione"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "Rimuove ogni file prima di estrarre su di esso"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "Svuota le directory prima di estrarle"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "Preserva i metadati delle directory esistenti"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "Sovrascrive i metadati delle directory esistenti durante l'estrazione (predefinito)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Selezione stream di output:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "Estrae i file sullo standard output"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "COMANDO"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "Invia in pipe i file estratti a un altro programma"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "Ignora il codice di uscita dei figli"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "Considera i codici di uscita non-zero come un errore"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Gestione degli attributi dei file:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "Forza NOME come proprietario per i file aggiunti"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "Forza NOME come gruppo per i file aggiunti"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATA-O-FILE"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "Imposta mtime per i file aggiunti da DATA-O-FILE"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "CAMBI"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "Forza il modo CAMBI (simbolico) per i file aggiunti"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODO"
+
+#: src/tar.c:499
+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 "Preserva l'orario di accesso sui file archiviati, ripristinando l'orario dopo la lettura (METODO=\"replace\"; predefinito) o impostando l'orario all'inizio (METODO=\"system\")"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "Non estrae l'orario di ultima modifica del file"
+
+#: src/tar.c:505
+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 come presente nell'archivio (predefinito per il super utente)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "Estrae i file come l'utente attuale (predefinito per gli utenti normali)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "Usa sempre i numeri per i nomi di utente/gruppo"
+
+#: src/tar.c:511
+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:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "Applica la umask dell'utente nell'estrarre i permessi dall'archivio (predefinito per gli utenti normali)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "Ordina i nomi da estrarre come nell'archivio"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "Come -p e -s assieme"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "Ritarda l'impostazione dei tempi di modifica e dei permessi delle directory estratte al termine dell'estrazione"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "Annulla l'effetto dell'opzione --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Selezione e cambio del device:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIVIO"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "Usa come archivio il file o il dispositivo ARCHIVIO"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "L'archivio è locale anche se contiene \":\""
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "Usa il COMANDO rmt indicato invece di rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "Usa il COMANDO remoto invece di rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "Indica drive e densità"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "Crea, elenca, estrae archivi multi-volume"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "Cambia il nastro dopo avere scritto NUMERO × 1024 byte"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "Esegue lo script alla fine di ogni nastro (implica -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "Usa/aggiorna il numero del volume nel FILE"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blocchi del device:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCCHI"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "Usa record di BLOCCHI × 512 byte"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "NUMERO di byte per record, multiplo di 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "Ignora i blocchi a zero nell'archivio (significa EOF)"
+
+#: src/tar.c:578
+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:583
+msgid "Archive format selection:"
+msgstr "Selezione formato di archiviazione:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMATO"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "Crea archivi nel formato indicato"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMATO è uno dei seguenti:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "Vecchio formato di tar V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "Formato GNU di tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "Formato GNU di tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "Formato POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "Formato POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "Come pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "Come --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "Come --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "PAROLA_CHIAVE[[:]=VALORE][,PAROLA_CHIAVE[[:]=VALORE], ...]"
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "Controlla le parole chiavi di pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TESTO"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+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:614
+msgid "Compression options:"
+msgstr "Opzioni di compressione:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "Usa il suffisso dell'archivio per determinare il programma di compressione"
+
+#: src/tar.c:618
+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:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "Filtra attraverso PROG (deve accettare -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Selezione dei file locali:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "Passa alla directory DIR"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "Prende i nomi da estrarre o creare dal file FILE"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T legge nomi terminati da NULL, disabilita -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "Disabilita l'effetto dell'opzione --null precedente"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "Toglie i caratteri di citazione dai nomi dei file letti con -T (predefinito)"
+
+#: src/tar.c:652
+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:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MODELLO"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "Esclude i file i cui nomi corrispondono a MODELLO"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "Esclude i modelli elencati in FILE"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "Esclude i contenuti delle directory contenenti CACHEDIR.TAG, a parte il file .TAG stesso"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "Esclude tutto quanto all'interno di directory contenenti CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "Esclude le directory contenenti CACHEDIR.TAG"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "Esclude tutto quanto all'interno di directory contenenti FILE"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "Esclude le directory contenenti FILE"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "Esclude le directory dei sistemi di controllo della versione"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "Esclude i file di backup e di blocco"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "Non entra automaticamente nelle directory"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "Resta nel file system locale durante la creazione dell'archivio"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "Entra ricorsivamente nelle directory (predefinito)"
+
+#: src/tar.c:683
+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:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "NOME"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "Inizia dal membro NOME nell'archivio"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "Archivia solo i file più recenti di DATA-O-FILE"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATA"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "Confronta data e ora solo quando il contenuto è cambiato"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "CONTROLLO"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "Esegue un backup prima di rimuovere, usando il CONTROLLO di versione"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRINGA"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+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:703
+msgid "File name transformations:"
+msgstr "Trasformazioni dei nomi di file:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "ESPRESSIONE"
+
+#: src/tar.c:708
+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:714
+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:717
+msgid "ignore case"
+msgstr "Non fa differenza tra maiuscole e minuscole"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "I modelli corrispondono all'inizio del nome del file"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "I modelli corrispondono dopo ogni \"/\" (predefinito per le esclusioni)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "Considera diverse le maiuscole e le minuscole (predefinito)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "Utilizza i metacaratteri (predefinito per le esclusioni)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "Corrispondenza letterale della stringa"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "I metacaratteri non corrispondono \"/\""
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "I metacaratteri corrispondono \"/\" (predefinito per le esclusioni)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Output informativo:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "Elenca prolissamente i file elaborati"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "PAROLACHIAVE"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "Controllo di avviso"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "Visualizza un messaggio di avanzamento ogni NUMERO-esimo record (predefinito 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "AZIONE"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "Esegue l'azione a ogni punto di controllo"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "Stampa un messaggio se non tutti i collegamenti sono archiviati"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SEGNALE"
+
+#: src/tar.c:751
+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 "Stampa i byte totali dopo l'elaborazione dell'archivio; con un argomento - stampa i byte totali quando viene inviato il SEGNALE. I segnali consentiti sono: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 e SIGUSR2; sono accettati anche i nomi senza il prefisso SIG"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "Stampa le date di modifica del file in formato UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "Stampa la data del file in tutti i suoi dettagli"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "Invia l'output prolisso al FILE"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "Mostra il numero di blocco nell'archivio con ogni messaggio"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "Chiede conferma per ogni azione"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "Mostra le impostazioni predefinite di tar"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "All'elencazione o all'estrazione, elenca ogni directory che non corrisponde al criterio di ricerca"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "Mostra il nome del file o dell'archivio dopo la trasformazione"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STILE"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "Caratteri di citazione aggiuntivi da STRINGA"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "Disabilita la citazione per i caratteri dalla STRINGA"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Opzioni di compatibilità:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "Alla creazione, uguale a --old-archive; all'estrazione, uguale a --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Altre opzioni:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "Disabilita l'uso di alcune opzioni potenzialmente dannose"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Non è possibile indicare più di un'opzione \"-Acdtrux\" o \"--test-label\""
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Conflitto tra le opzioni di compressione"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Nome del segnale sconosciuto: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "File campione della data non trovato"
+
+#: src/tar.c:1028
+#, 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:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Opzione %s: la data \"%s\" viene considerata come %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: elenco file già letto"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: il nome di file letto contiene un carattere NULL"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "Filtra l'archivio attraverso %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Argomenti validi per l'opzione --quoting-style sono:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Questa versione di tar ha le seguenti impostazioni predefinite:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Fattore del blocco non valido"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Lunghezza del nastro non valida"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Valore del livello incrementale non valido"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Più di una data di soglia"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Valore versione sparsa non valido"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve=\"system\" non è supportato su questa piattaforma"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "Il valore --checkpoint non è un intero"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Gruppo non valido"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Modo fornito sull'opzione non valido"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Numero non valido"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Proprietario non valido"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "L'opzione --preserve è deprecata, usare --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Dimensione del record non valida"
+
+#: src/tar.c:1978
+#, 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:2019
+msgid "Invalid number of elements"
+msgstr "Numero di elementi non valido"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Consentita solo un'opzione --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Argomento densità non corretto: \"%s\""
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Densità sconosciuta: \"%c\""
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Le opzioni \"-[0-7][lmh]\" non sono gestite da questa versione di tar"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[FILE]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "La vecchia opzione \"%c\" richiede un argomento."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence non ha senso senza un elenco di file"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence non può essere usata nel modo di operazioni richiesto"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Archivi multipli richiedono l'opzione \"-M\""
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Impossibile combinare --listed-incremental e --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "L'opzione --level non è utilizzabile senza --listed-incremental"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Impossibile verificare archivi multi-volume"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Impossibile verificare archivi compressi"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Impossibile usare archivi multi-volume compressi"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Impossibile concatenare archivi compressi"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option può essere usata solo su archivi POSIX"
+
+#: src/tar.c:2492
+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:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order non è compatibile con --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Rifiuto totale di creare un archivio vuoto"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Le opzioni \"-Aru\" sono incompatibili con \"-f -\""
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "È necessario specificare una delle opzioni \"-Acdtrux\" o \"--test-label\""
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Uscita con stato di fallimento in base agli errori precedenti"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "La parola chiave %s è sconosciuta o non ancora implementata"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Orario fuori dall'intervallo consentito"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Il modello %s non può essere usato"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "La parola chiave %s non può essere sostituita"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Intestazione estesa malformata: manca la lunghezza"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "La lunghezza intestazione estesa è fuori dall'intervallo consentito"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "La lunghezza dell'intestazione estesa %*s è fuori dall'intervallo"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Intestazione estesa malformata: manca lo spazio dopo la lunghezza"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Intestazione estesa malformata: manca il segno di uguale"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Intestazione estesa malformata: manca un newline"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Parola chiave sconosciuta \"%s\" dell'intestazione estesa ignorata"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "La coppia parola chiave/valore generata è troppo lunga (parola chiave=%s, lunghezza=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Intestazione estesa malformata: %s=%s non valido"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Intestazione estesa malformata: %s=%s in eccesso"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Intestazione estesa malformata: %s non valido: numero dispari di valori"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: timeout non valido"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: azione di punto di controllo sconosciuta"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "lettura"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "scrittura"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Punto di controllo di scrittura %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Punto di controllo di lettura %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile manipola i file per la suite di test GNU paxutils.\n"
+"Le opzioni sono:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Opzioni di creazione file:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "DIMENSIONE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Crea file della DIMENSIONE indicata"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Scrive sul file NOME invece dello standard output"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Legge i nomi dei file da FILE"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T legge nomi terminati da NULL"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Dimensione del blocco per il file sparso"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "OFFSET"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Si posiziona all'OFFSET indicato prima di scrivere i dati"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Opzioni per le statistiche:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Opzioni di esecuzione sincrona:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPZIONE"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Esegue ARGOMENTI. Utile con --checkpoint e uno tra --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Imposta la data per l'opzione --touch successiva"
+
+#: tests/genfile.c:173
+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:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Azioni di esecuzione sincrona. Queste sono eseguite quando viene raggiunto il punto di controllo fornito dall'opzione --checkpoint."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Tronca il FILE alla dimensione specificata dall'opzione --length precedente (0 se non viene fornita)"
+
+#: tests/genfile.c:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "Aggiorna l'orario di accesso e modifica del FILE"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Esegue il COMANDO"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Esegue l'unlink di FILE"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Dimensione non valida: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Numero fuori dall'intervallo consentito: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Dimensione negativa: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) non riuscita"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "lunghezza file richiesta %lu, effettiva %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "il file creato non è sparso"
+
+# (ndt) ?
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Errore nell'analizzare il numero vicino a \"%s\""
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Formato data non conosciuto"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGOMENTI...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "impossibile aprire \"%s\""
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "impossibile eseguire seek"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "il nome del file contiene caratteri NULL"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "impossibile generare file sparsi sullo standard output, usare l'opzione --file"
+
+# (ndt) ?
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "maschera non corretta (vicino a \"%s\")"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Campo \"%s\" sconosciuto"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "impossibile impostare l'orario su \"%s\""
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "impossibile eseguire l'unlink di %s"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Comando eseguito con successo\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Comando non riuscito con lo stato %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Comando terminato al segnale %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Comando fermato al segnale %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Il comando ha fatto un dump del core\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Comando terminato\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat richiede i nomi dei file"
diff --git a/po/ja.po b/po/ja.po
new file mode 100644
index 00000000..1aa88e86
--- /dev/null
+++ b/po/ja.po
@@ -0,0 +1,2620 @@
+# Japanese messages for GNU tar 1.26
+# Copyright (C) 1999, 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+# Masahito Yamaga <ma@yama-ga.com>, 2011.
+# derived from the version by
+# Daisuke Yamashita <yamad@mb.infoweb.ne.jp>, 1999-2001.
+# Masahito Yamaga <yamaga@ipc.chiba-u.ac.jp>, 2007.
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-08-26 23:42+0900\n"
+"Last-Translator: Masahito Yamaga <ma@yama-ga.com>\n"
+"Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-JP\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=0;\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr " %s %s Ф̵Ǥ"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr " %s %s ФƤޤǤ"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr ":"
+
+#: 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 꾮"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT ѥ᡼ͤɬ"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT ѥ᡼ͤǤʤФʤޤ"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: ̤Τ ARGP_HELP_FMT ѥ᡼"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "ARGP_HELP_FMT ˥: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "ĹץФɬܤޤǤդΰбûץФƤɬܤޤǤդǤ."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "ˡ:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " ޤ: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [ץ...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "ܤ `%s --help' ޤ `%s --usage' .\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "ХݡȤ %s ޤ.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "ʥƥ२顼"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "Υإװɽ"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "ûˡåɽ"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAME"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "ץ̾"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SECS"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "SECS (ɸ 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "ץСɽ"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ץ२顼) С!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: ¿ޤ\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ץ२顼) ץǧǽ!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "񤭹ߥ顼"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: ץ '%s' ϤޤǤ\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: ץ '--%s' ˰Ϥޤ\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: ץ '%c%s' ˰Ϥޤ\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: ץ '--%s' ˤϰɬפǤ\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: ̤ΤΥץ '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: ̤ΤΥץ '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: ̵ʥץ -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: ץˤϰɬפǤ -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: ץ '-W %s' ϤޤǤ\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: ץ '-W %s' ˰Ϥޤ\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: ץ '-W %s' ˤϰɬפǤ\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "Ȥڤޤ"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "ߤΥǥ쥯ȥϿǤޤ"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "ǥ쥯ȥΤ˼Ԥޤ"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "ѥå: %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"ѵ GPLv3+: GNU GPL version 3 ޤϤʹ <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"
+"[]\n"
+"ϥե꡼եȥǤ. ѹȺۤϼͳǤ.\n"
+"ˡΧǧϰϤǡ̵ݾڡפǤ.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr ": %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+": by %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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"ХݡȰ: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: 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 ѹǤޤ"
+
+#: 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "̾Ƭ `%s' ޤ"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "ϡɥ褫Ƭ `%s' ޤ"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Υ̾ `.' ޤ"
+
+#: lib/paxnames.c:155
+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 ³Ǥޤ: ̾輺"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "֥뤬¹ԤǤޤ"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "ϰϳ"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "̵ʸ"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "̵ʸեå"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "եåȤϰϳ"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "̵ʥХȿ"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Хȿϰϳ"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "ե潪λ"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "̵"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Ƥʤ"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "ͽ̰"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "֥ץ̿դƥơץɥ饤֤"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NUMBER"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "ǥХå٥"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FILE"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "ǥХåϥե̾"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "%s 򳫤ޤ"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "¿ޤ"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "פʥޥ"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr " tar ֤ǤϤʤ褦Ǥ"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "񤭽ФХȿ"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "ɤ߹ߥХȿ"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Хȿ: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(ѥ)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "record_size ̵ͤǤ"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "̾ꤵƤޤ"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "ɸϤΥ֤ϸڤǤޤ"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "֤ϰ̤Ƥޤ. %s ץȤäƤ"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "̤줿֤ϥåץǡȤǤޤ"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "ơפƬǤ. ߤޤ"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "顼¿ޤ. ߤޤ"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Ͽ = %lu ֥å"
+msgstr[1] "Ͽ = %lu ֥å"
+
+#: src/buffer.c:913
+#, 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:990
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "֥ե᤻ޤ. -i ʤǤɤʤΤޤ."
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek Ͽζǻߤޤ"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: ̵ʥܥ塼ֹޤǤޤ"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "ܥ塼ֹ椬Сեޤ"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "ܥ塼 #%d (%s) ޤ. ꥿󥭡򲡤Ƥ: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "桼 EOF ɬפȤʤޤ"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "ٹ: ֤ԴǤ"
+
+#: src/buffer.c:1148
+#, 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] (Ӥ³) Υܥ塼Ф뿷ե̾\n"
+" q tar λ\n"
+" y ޤϲ ³\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! ֥ư\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? ΥꥹȤɽ\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "ܥ塼बޤ. λޤ.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "ե̾ꤵƤޤ. ⤦.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr ". ? ǥإפɽ\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "%s ޥɤԤޤ"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s ϤΥܥ塼Ǥ餯Ϣ³Ƥޤ: إåϾά줿̾ޤǤޤ"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s ϤΥܥ塼Ϣ³Ƥޤ"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s ʥǤ (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Υܥ塼Ϣ³Ƥޤ (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "֤ %s ˰פ٥뤬դƤޤ"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "ܥ塼 %s %s ˰פޤ"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: ե̾Ĺ᤮ GNU ޥܥ塼إå¸ǤʤΤڤΤƤޤ"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "񤭹ߤ֥åǽäƤޤ"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Ƥۤʤޤ"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "ͽ EOF ޤ"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "ե륿פۤʤޤ"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "⡼ɤۤʤޤ"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "桼 ID ۤʤޤ"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "롼 ID ۤʤޤ"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "ǽ郎ۤʤޤ"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "ۤʤޤ"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "%s ˥󥯤Ƥޤ"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "ܥå󥯤ۤʤޤ"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "ǥХֹ椬㤤ޤ"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr ""
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: ̤ΤΥե륿 `%c', ̾եȺʬޤ"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Ƭ줿ե̾ޤ."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "֤Ѵ줿ե̾ޤޤƤޤ"
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Υեν߳ǧ˼Ԥǽޤ."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "%s ˸Ω֥å"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: å ǥ쥯ȥ %s ޤǤޤ; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr " %s %s ϰ %s..%s ˤޤ -- %s "
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr " %s %s ϰ %s..%s ˤޤ"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr " 8 ʥإåޤ"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: ե̾Ĺ᤮ ( %d) Τǥפޤ"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: ե̾Ĺ᤮ (ʬǽ) Τǥפޤ"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: ̾Ĺ᤮Τǥפޤ"
+
+#: src/create.c:1064
+#, 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:1160
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: եϰۤʤե륷ƥˤΤǥפޤ"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "Ƥפޤ"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: ̤ΤΥե; ե̵뤵ޤ"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "%s ؤΥ󥯤ޤ."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: ѹƤʤΤǥפޤ"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: ϥ֤ʤΤǥפޤ"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "ǥ쥯ȥפޤ"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: ɤ߹ե뤬ѹƤޤ"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: åȤ̵뤷ޤ"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door ̵뤷ޤ"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Υإå򥹥åפޤ"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "֤إåǤʤΤޤ"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: 餯Ťॹ %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: ॹ %s %s 򼨤Ƥޤ"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: ǥ쥯ȥ¬̷⤬ޤ"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: ǥ쥯ȥϾ֤ŸǤ褦ˤʤ̾ѹޤ"
+
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Ϣ³եʥեȤƼФޤ"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "ܥå󥯤ϡɥ󥯤ȤƼФƤߤޤ"
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Фޤ -- ե̤Υܥ塼फ³Ƥޤ"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "ͽĹ̾إå"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: ̤ΤΥե륿 '%c', ̾եȤ"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "ߤ %s Ʊ"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: ΥեΥХååפ뤳ȤǤޤǤ"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s ̾ %s ѹǤޤ"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: ǥ쥯ȥ̾ %s ѹޤ"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: ǥ쥯ȥ̾ѹޤ"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: ǥ쥯ȥϿޤ"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "̵ʥॹ"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "ʺǽ ()"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "ʺǽ (ʥ)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "̵ʥǥХֹǤ"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "̵ inode ֹ"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "ʥåץåȥեɤ߹˥եɤĹ᤮ޤ"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "ʥåץåȥեɤ߹ߥ顼"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "ʥåץåȥեͽ EOF"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "ʥåץåȥեͽ̥ե"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "üϿʤ"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "ʬե"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "̤ʬС: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr " dumpdir: '%c' ٤Ȥ %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr " dumpdir: 'X' ʣ"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr " dumpdir: 'R' ˶̾"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr " dumpdir: 'T' 'R' ˤʤ"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr " dumpdir: 'T' ˶̾"
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr " dumpdir: '%c' ٤Ȥ˥ǡνü"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr " dumpdir: 'X' ̤"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "ƥץ졼 %s Ȥäưǥ쥯ȥޤ"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: ǥ쥯ȥޤ: ֤ʬޤ"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: ǥ쥯ȥϰۤʤǥХˤΤǾõޤ"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s \n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ǥޤ"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: άޤ"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "֥å %s: ** NUL Υ֥å **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "֥å %s: ** եνü **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "֥å %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, 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:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "8 ʿ %.*s %s ϰϳǤ"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "֤Ѥ줿 base-64 إåޤޤƤޤ"
+
+#: src/list.c:809
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "դ base-64 ʸ %s %s ϰϳǤ"
+
+#: src/list.c:840
+#, 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:869
+#, 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:891
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "֤ %s %s ϰ %s..%s ˤޤ"
+
+#: src/list.c:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " %s ؤΥ\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " ʥե륿 %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Ĺ--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Ĺ̾--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--ܥ塼إå--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Х %s Ϣ³--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "ǥ쥯ȥ:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "ǥ쥯ȥǤޤ"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "̾ %s %s ѹޤ\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: ̾ %s ѹǤޤ"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "̾ %s %s ᤷޤ\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: ɤ߹߰˺ޤ"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "ҥץ"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "ץ֥ͥ"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "ѥޥåʸե̾˻ȤƤޤ"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "ѥޥåͭˤʤ --wildcards, ηٹ޻ߤʤ --no-wildcards ȤäƤ"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: ˸Ĥޤ"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: ˸Ĥޤ"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "֥٥뤬פޤ"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "եꥹ -C ץ --listed-incremental Ȱ˻Ȥޤ"
+
+#: src/names.c:955
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: ̵ʥַ"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU ͭεǽϡߴʷɬפȤޤ"
+
+#: 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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"\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:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"--suffix SIMPLE_BACKUP_SUFFIX ǻꤵʤ¤, Хååפ\n"
+" `~' Ǥ. ޤ, С --backup VERSION_CONTROL ˼Τ褦\n"
+"ͤꤹ뤳ȤǤޤ.\n"
+"\n"
+" none, off Хååפʤ\n"
+" t, numbered Хååפֹդ\n"
+" nil, existing ֹ椬դ줿Хååפֹդ,\n"
+" Ǥʤñ˥Хååפ\n"
+" never, simple ñʥХååפ\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "⡼:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "֤Ƥɽ"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "֤ե"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "֤"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "֤ȥե륷ƥȤΰ㤤դ"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "֤˥եɲ"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "ˤե꿷եΤߤɲ"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "֤ tar եɲ"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "֤ (ơ׾Ǥϥ!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "֤Υܥ塼٥ƥȤƽλ"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "ץФղõǽ:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "ޤФ¸ߤեŪ˽"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "ޤФ (sparse) ΥС (--sparse ΰ̣ޤ)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "Ť GNU Υ󥯥󥿥Хååפ"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr " GNU Υ󥯥󥿥Хååפ"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "줿 listed-incremental ֤Фץ٥"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "ɤ߹ʤե󥼥ξ֤¸ߤޤ"
+
+#: src/tar.c:429
+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 "γƥե NUMBERܤ¸ߤΤ߽. Υץϥ֥ޥ --delete, --diff, --extract ޤ --list Τ 1ĤȤ߹碌Ƴĥեޥɥ饤 -T ץͳΤɤ餫ǻꤵ줿Τͭ. NUMBER ɸ 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "֤ϸǽ"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "֤ϸǽǤϤޤ"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "󥯥󥿥륢ֺ˥ǥХֹåʤ"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "󥯥󥿥륢ֺ˥ǥХֹå (ɸ)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr ":"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "֤񤭽Ф˸"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "ե򥢡֤˲äǺ"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "Фݤ˴¸Υե֤ʤ"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "֥ԡ꿷¸ե֤ʤ"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "Фݤ˴¸ե"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "ơΥեФƾ񤭤˺"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "ǥ쥯ȥФ˳ؤ"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "¸ǥ쥯ȥΥ᥿ǡ¸"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "Фݤ˴¸ǥ쥯ȥΥ᥿ǡ (ɸ)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "ϥȥ꡼"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "եФɸϤ˽"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "COMMAND"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "եФ̤Υץ˽"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ҥץνλɤ̵"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "ҥץ󥼥λɤ򥨥顼Ȥƽ"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "ե°ν"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "äեνͭԤ NAME ѹ"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "äեΥ롼פ NAME ѹ"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATE-OR-FILE"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "DATE-OR-FILE ɲåե mtime "
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "CHANGES"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "äե (ܥå) ⡼ɤ CHANGES ѹ"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METHOD"
+
+#: src/tar.c:499
+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 "ǽ, ɤ߹߸ (METHOD='replace'; ɸ) ǽꤷʤ (METHOD='system') Τɤ餫ˡǥץեǰݻ"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "եιФʤ"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "ƱͭԤΤޤޤǥեФƤߤ (ѡ桼Ǥϥǥե)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "ʤȤΥեȤƼФ (̥桼Ǥϥǥե)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "桼̾/롼̾Ȥƾ˿Ȥ"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "ե°ˤĤƤξ (superuser Ǥɸ)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "֤°Фݤ˥桼 umask Ŭ (̥桼Ǥɸ)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "֤ȥޥå뤿˼Ф̾¤ؤ"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "-p -s ξꤷΤƱ"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "ФλޤФ줿ǥ쥯ȥκǽ°٤餻"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "--delay-directory-restore ץθ̤ä"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "ǥХ:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIVE"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "֥եޤϥǥХ ARCHIVE "
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "֥եϥޤǤƤ"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "ꤵ줿 rmt COMMAND rmt ˻"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "rsh COMMAND "
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "ɥ饤֤̩٤"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "ޥܥ塼Υ֤//"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "NUMBER x 1024 ХȤ񤭽Фǥơפѹ"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "ơΥơפκǸǥץȤ¹ (-M ɬ)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "FILE Υܥ塼ֹ/"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "ǥХ֥å:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCKS"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "쥳ɤ BLOCKS x 512 Х"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "쥳ɤ NUMBER Х. 512 ܿ"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "Υ֥å (Ĥޤ EOF) ̵"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "ɤ߽Ф褦˺ƥ֥å (4.2BSD ѥ)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "ַ"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "ꤵ줿Υ֤"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT ϼΤ 1:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "Ť V7 tar "
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU tar 1.12 η"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x "
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) "
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) "
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "pax Ʊ"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "--format=v7 Ʊ"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "--format=posix Ʊ"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "keyword[[:]=value][,keyword[[:]=value]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "pax ɤ"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:609
+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:614
+msgid "Compression options:"
+msgstr "̥ץ:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "̥ץΤ˥Ѥ"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "̥ץΤ˥Ѥʤ"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "PROG ͳǥե륿 (-d դɬפ)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "ե:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "ꤵ줿 FILE 򥢡֤ɲ (å ' ǻϤޤե̾ξ)"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "ǥ쥯ȥ DIR ذư"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "ФޤϺ̾ե FILE "
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T null ǽ̾ɤ߹, -C ̵"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr " --null ץθ̵̤"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "-T ɤ߹ե̾ѽλ (ɸ)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "-T ɤ߹󤿥ե̾ѽλʤ"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "PATTERN"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "PATTERN ˰פե"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "FILE 󤵤줿ѥ"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "ե뼫Ȥ CACHEDIR.TAG ޤǥ쥯ȥƤ"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG ޤǥ쥯ȥʲƤ"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG ޤǥ쥯ȥ"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "FILE Ȥ FILE ޤǥ쥯ȥƤ"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "FILE ޤǥ쥯ȥʲƤ"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "FILE ޤǥ쥯ȥ"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "СƥΥǥ쥯ȥ"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "Хååפƥեå"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "ǥ쥯ȥưŪ˲äƤʤ"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "ֺ˥ե륷ƥ˸"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "ǥ쥯ȥ緫˲äƤ (default)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "ե̾Ƭ `/' ʤ"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "ܥå󥯤򤿤ɤ; 餬ؤե򥢡֤ƥ"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "ϡɥ󥯤򤿤ɤ; 餬ؤե򥢡֤ƥ"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "MEMBER-NAME"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "ΥС MEMBER-NAME dz"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "DATE-OR-FILE 뿷եΤߤǼ"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATE"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "ǡѹ줿դӻ"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "˥С CONTROL ˤƥХåå"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRING"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "˥Хåå, ̾ (Ķѿ SIMPLE_BACKUP_SUFFIX ̤ʤ '~') "
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "ե̾Ѵ:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "л˥ե̾Ƭ NUMBER ĤΥݥͥȤ"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "EXPRESSION"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "ե̾Ѵ sed ִ EXPRESSION "
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "ե̾ץץ (/ޤξѥ˺):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "ʸʸ̵"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "ե̾Ƭȥѥ󤬰"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "Ǥդ `/' ʹߤ˥ѥ󤬰 (ɸǽ)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "ʸʸθư (ɸ)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "磻ɥɤ (ɸǽ)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "Ūʸ"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "磻ɥɤ `/' ˰פʤ"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "磻ɥɤ `/' ˰ (ɸǽ)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr ":"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "ƤեΰĹɽ"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KEYWORD"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "ٲ"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "NUMBER (ɸ 10) ܤεϿȤ˿Ľåɽ"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ACTION"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "Ƹ ACTION ¹"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "ƤΥ󥯤פʤåɽ"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "֤νХȿɽ. - SIGNAL ȯХȿɽ. Ĥ줿 SIGNAL : SIGHUP, SIGQUIT, SIGINT, SIGUSR1 SIGUSR2. SIG Ƭʤ̾Ǥ"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "եι UTC ɽ"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "եλɽ"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "ĹϤ FILE "
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "Υ֥åơåդɽ"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "Ƥưǧ"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "tar δͤɽ"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "л, ˰פʤǥ쥯ȥơɽ"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "Ѵ˥ե̾ޤϥ̾ɽ"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STYLE"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "̾ѷ. ͭ STYLE ͤϲ."
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr " STRING ʸ"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "STRING ʸѤ̵"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "ߴץ:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr " --old-archive Ʊ. л --no-same-owner Ʊ"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "¾ץ:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "Ū˳ˤʤ륪ץλѤ̵"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "`-Acdtrux' ޤ `--test-label' ץΤ 2İʾꤹ뤳ȤϤǤޤ"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "̥ץ󤬿äƤޤ"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "̤ΤΥʥ̾: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "եץե뤬Ĥޤ"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "̤ΤեեޥåȤ %2$s %1$s Ȥޤ"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "ץ %s: `%s' %s Ȥư"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: եϴɤ߹ߺѤ"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: ɤ߹ޤ줿ե̾˥̥ʸ"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "%s ͳǥ֤ե륿"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "--quoting-style ץФͭʰ:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"֤Ρtar ε:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "̵ʥ֥å󥰰"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "̵ʥơפĹ"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "̵ʬ٥"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "1İʾߵȤʤ"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "̵ʤޤФ (sparse) С"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' ϤΥץåȥեǤϼƤޤ"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint ͤǤϤޤ"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "̵ʥ롼"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "ץǻꤵ줿⡼ɤ̵Ǥ"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "̵ʿ"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "̵ʽͭ"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "--preserve ץѻͽʤΤ, --preserve-permissions --preserve-order ȤäƤ"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "̵ʵϿ"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Ͽ %d ܿǤʤФޤ"
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "̵ʥȿ"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "--to-command ץ 1Ĥ"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "ٰ̩: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "̤Τ̩: `%c'"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "ץ `-[0-7][lmh]' ϡ֤Ρtar ǤϼƤޤ"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[ե]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Ťץ `%c' ϰɬפȤޤ"
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence ϥեʤ̵̣"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence ׵ᤵ줿⡼ɤǤϻȤޤ"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "ʬ䷿Υ֥եˤ `-M' ץɬפǤ"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental --newer ȤǤޤ"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--listed-incremental ʤ --level ̵̣Ǥ"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "ޥܥ塼ॢ֤ǧǤޤ"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "̤줿֤ϳǧǤޤ"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "ޥܥ塼˰̤줿֤ϻȤޤ"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "̤줿֤ϢǤޤ"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option POSIX ֤ǤΤ߻Ȥޤ"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "ܥ塼Ĺϥ쥳ɥ꾮ƤϤޤ"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order --listed-incremental ξΩޤ"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "ΥֺϤƼϴꤤޤ"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "ץ `-Aru' `-f -' ȤƤޤ"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "`-Acdtrux' ޤ `--test-label' ץΤ줫 1ĤꤷʤФʤޤ"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+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 ХȾʤäƤޤ"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr " %s ̤Τޤ̤"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "ॹפĤ줿ϰϳǤ"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "ѥ %s ϻȤޤ"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr " %s ʤޤ"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "γĥإå: Ĺλ꤬ޤ"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "ĥإåĹϵĤ줿ϰϳǤ"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "ĥإåĹ %*s ϰϳǤ"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "γĥإå: Ĺθ˥֥󥯤ޤ"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "γĥإå: = () 椬ޤ"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "γĥإå: Ԥޤ"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "̤Τγĥإå `%s' ̵"
+
+#: src/xheader.c:831
+#, 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:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "ĥإå %s=%s %s..%s ϰˤޤ"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "γĥإå: %s=%s "
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "γĥإå: %s=%s ;ʬ"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "γĥإå: %s ̵: ͽ̶ڤʸ %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "γĥإå: %s ̵: "
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: ̵ʥॢ"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: ̤Τθ"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "񤭹"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "åݥ %u ɤ߹ߤޤ"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile GNU paxutils ƥȥåȤФƥǡեޤ.\n"
+"ץ:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "եץ:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "SIZE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "ꤵ줿 SIZE Υե"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "ɸϤ˥ե NAME ˽"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "FILE ե̾ɤ߹"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T null ǽ̾ɤ߹ߤޤ"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "ꤵ줿 PATTERN ǥեޤ. PATTERN 'default' ޤ 'zeros'"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "ޤФ (sparse) եΥ֥å"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "ޤФ (sparse) ե. ĤΥޥɥ饤ǥեޥåפ."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "եå"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "ǡ񤭽Ф˻ꤵ줿եåȤޤǸ"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "եץץ:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "ơλեФ struct stat Ƥɽ. ɸ FORMAT : "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Ʊ¹ԥץ:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPTION"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "ARGS ¹. --checkpoint --cut, --append, --touch, --unlink 1ĤȤȤ˻ѤȤ褤"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "åݥ NUMBER ã˻ꤵ줿 () ¹"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr " --touch ץդ"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "¹Ԥ줿åݥȤ COMMAND νλơɽ"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Ʊ¹ԥ. --checkpoint option ǻꤵ줿åݥֹãȤ˼¹Ԥ."
+
+#: tests/genfile.c:181
+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:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "FILE SIZE Хɵ. SIZE --length ץǻ."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "FILE κǽȺǽ򹹿"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "COMMAND ¹"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "FILE unlink"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "̵ʥ: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "ֹ椬Ĥ줿ϰϳ: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Υ: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) "
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "׵ᤵ줿եĹ %lu, ºݤ %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "줿եϥѡǤϤޤ"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "`%s' ζ᤯ǿʸʬϻ˥顼"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "̤Τշ"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGS...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "`%s' 򳫤ޤ"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "ܤФޤ"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "ե̥̾ʸޤǤޤ"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "ޤФ (sparse) եɸϤ˽񤭽Фޤ. --file ץ"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "ʥޥ (`%s' ˶ᤤ)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "̤ΤΥե `%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "`%s' ˻Ǥޤ"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "`%s' unlink Ǥޤ"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "ޥɤェλ\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "ޥɤơ %d Ǽ\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "ޥɤʥ %d ǽλ\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "ޥɤʥ %d \n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "ޥɤ\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "ޥɤλ\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat ˤϥե̾ɬ"
diff --git a/po/ko.po b/po/ko.po
new file mode 100644
index 00000000..91b926ef
--- /dev/null
+++ b/po/ko.po
@@ -0,0 +1,1454 @@
+# Korean messages for GNU tar
+# Copyright (C) 1996 Free Software Foundation, Inc.
+# Bang Jun-Young <bangjy@nownuri.net>, 1996-1997.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.12\n"
+"POT-Creation-Date: 1997-04-25 16:58-0400\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=EUC-KR\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#
+#: src/buffer.c:160
+msgid "Total bytes written: "
+msgstr " Ʈ: "
+
+#: src/buffer.c:255
+#, c-format
+msgid "Cannot close file #%d"
+msgstr " #%d ϴ"
+
+#
+#: src/buffer.c:271
+#, c-format
+msgid "Cannot close descriptor %d"
+msgstr " %d ϴ"
+
+#: src/buffer.c:274
+#, c-format
+msgid "Cannot properly duplicate %s"
+msgstr "%s ϴ"
+
+#
+#: src/buffer.c:288 src/buffer.c:298
+msgid "Cannot use compressed or remote archives"
+msgstr " ī̺곪 ī̺긦 ϴ"
+
+#: src/buffer.c:334 src/buffer.c:391 src/buffer.c:498 src/buffer.c:547
+msgid "Cannot open pipe"
+msgstr " ϴ"
+
+#
+#: src/buffer.c:338 src/buffer.c:502
+msgid "Cannot fork"
+msgstr "fork ϴ"
+
+#. The new born child tar is here!
+#: src/buffer.c:351 src/buffer.c:516
+msgid "tar (child)"
+msgstr "tar (ڽ)"
+
+#
+#: src/buffer.c:353
+msgid "(child) Pipe to stdin"
+msgstr "(ڽ) ǥԷ¿ "
+
+#
+#: src/buffer.c:378 src/buffer.c:423 src/buffer.c:535 src/buffer.c:580
+#, c-format
+msgid "Cannot open archive %s"
+msgstr "%s ī̺긦 ϴ"
+
+#
+#: src/buffer.c:381
+msgid "Archive to stdout"
+msgstr "ǥ¿ ī̺"
+
+#
+#: src/buffer.c:384 src/buffer.c:405 src/buffer.c:540 src/buffer.c:561
+#, c-format
+msgid "Cannot exec %s"
+msgstr "%s ϴ"
+
+#
+#: src/buffer.c:395 src/buffer.c:551
+msgid "Child cannot fork"
+msgstr "ڽ fork ϴ"
+
+#
+#. The child tar is still here! Launch the compressor.
+#: src/buffer.c:401
+msgid "((child)) Pipe to stdout"
+msgstr "((ڽ)) ǥ¿ "
+
+#. The new born grandchild tar is here!
+#: src/buffer.c:411 src/buffer.c:567
+msgid "tar (grandchild)"
+msgstr "tar ()"
+
+#. Prepare for reblocking the data from the compressor into the archive.
+#: src/buffer.c:415
+msgid "(grandchild) Pipe to stdin"
+msgstr "() ǥԷ¿ "
+
+#
+#: src/buffer.c:450
+msgid "Cannot read from compression program"
+msgstr " α׷κ о ϴ"
+
+#
+#: src/buffer.c:518
+msgid "(child) Pipe to stdout"
+msgstr "(ڽ) ǥ¿ "
+
+#
+#: src/buffer.c:537
+msgid "Archive to stdin"
+msgstr "ǥԷ¿ ī̺"
+
+#
+#. The child tar is still here! Launch the uncompressor.
+#: src/buffer.c:557
+msgid "((child)) Pipe to stdin"
+msgstr "((ڽ)) ǥԷ¿ "
+
+#. Prepare for unblocking the data from the archive into the uncompressor.
+#: src/buffer.c:571
+msgid "(grandchild) Pipe to stdout"
+msgstr "() ǥ¿ "
+
+#: src/buffer.c:611
+msgid "Cannot write to compression program"
+msgstr " α׷ ϴ"
+
+#: src/buffer.c:616
+#, c-format
+msgid "Write to compression program short %d bytes"
+msgstr ""
+
+#: src/buffer.c:675
+msgid "Invalid value for record_size"
+msgstr "record_size "
+
+#
+#: src/buffer.c:678
+msgid "No archive name given"
+msgstr "ī̺ ̸ ־ ʾҽϴ"
+
+#
+#: src/buffer.c:705
+#, c-format
+msgid "Could not allocate memory for blocking factor %d"
+msgstr " %d ϴ ޸𸮸 Ҵ ϴ"
+
+#
+#: src/buffer.c:714
+msgid "Cannot verify multi-volume archives"
+msgstr "- ī̺긦 ϴ"
+
+#
+#: src/buffer.c:719
+msgid "Cannot use multi-volume compressed archives"
+msgstr " - ī̺긦 ϴ"
+
+#
+#: src/buffer.c:721
+msgid "Cannot verify compressed archives"
+msgstr " ī̺긦 ϴ"
+
+#
+#: src/buffer.c:734
+msgid "Cannot update compressed archives"
+msgstr " ī̺긦 ϴ"
+
+#
+#: src/buffer.c:745
+msgid "Cannot verify stdin/stdout archive"
+msgstr "ǥ/ ī̺긦 ϴ"
+
+#
+#: src/buffer.c:797 src/buffer.c:1673 src/compare.c:522 src/incremen.c:456
+#: src/names.c:861
+#, c-format
+msgid "Cannot open %s"
+msgstr "%s ϴ"
+
+#: src/buffer.c:838
+#, c-format
+msgid "Archive not labelled to match `%s'"
+msgstr "`%s' ġϵ ī̺"
+
+#: src/buffer.c:841 src/buffer.c:1172
+#, c-format
+msgid "Volume `%s' does not match `%s'"
+msgstr " `%s' `%s' ġ ʽϴ"
+
+#
+#: src/buffer.c:880
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "˻ %d "
+
+#
+#: src/buffer.c:1049 src/incremen.c:513
+#, c-format
+msgid "Cannot write to %s"
+msgstr "%s ϴ"
+
+#
+#: src/buffer.c:1052
+#, c-format
+msgid "Only wrote %u of %u bytes to %s"
+msgstr "%u Ʈ(%u Ʈ ) %s ϴ"
+
+#
+#: src/buffer.c:1064
+#, c-format
+msgid "Read error on %s"
+msgstr "%s б "
+
+#
+#: src/buffer.c:1067
+msgid "At beginning of tape, quitting now"
+msgstr " κп "
+
+#
+#: src/buffer.c:1073
+msgid "Too many errors, quitting"
+msgstr " ʹ Ƽ մϴ"
+
+#
+#: src/buffer.c:1089
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "˻ %d "
+
+#
+#: src/buffer.c:1180 src/extract.c:965
+#, c-format
+msgid "Reading %s\n"
+msgstr "%s д \n"
+
+#
+#: src/buffer.c:1184
+msgid "WARNING: No volume header"
+msgstr ": "
+
+#
+#: src/buffer.c:1191
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s ӵǾ ʽϴ"
+
+#
+#: src/buffer.c:1201
+#, c-format
+msgid "%s is the wrong size (%ld != %ld + %ld)"
+msgstr "%s ߸ ũԴϴ (%ld != %ld + %ld)"
+
+#
+#: src/buffer.c:1212
+msgid "This volume is out of sequence"
+msgstr " ϴ"
+
+#: src/buffer.c:1240
+#, c-format
+msgid "Record size = %d blocks"
+msgstr "ڵ ũ = %d "
+
+#
+#: src/buffer.c:1261
+#, c-format
+msgid "Archive %s EOF not on block boundary"
+msgstr " 谡 ƴ κп ī̺ %s EOF "
+
+#
+#: src/buffer.c:1269
+#, c-format
+msgid "Only read %d bytes from archive %s"
+msgstr "%d Ʈ ī̺ %s оϴ"
+
+#
+#: src/buffer.c:1294 src/buffer.c:1403 src/buffer.c:1517
+#, c-format
+msgid "WARNING: Cannot close %s (%d, %d)"
+msgstr ": %s ϴ (%d, %d)"
+
+#. Lseek failed. Try a different method.
+#: src/buffer.c:1350
+msgid "Could not backspace archive file; it may be unreadable without -i"
+msgstr ""
+
+#
+#: src/buffer.c:1430
+#, c-format
+msgid "Child died with signal %d%s"
+msgstr "ڽ ȣ %d%s Բ ׾"
+
+#
+#: src/buffer.c:1432
+msgid " (core dumped)"
+msgstr " (ھ µ)"
+
+#
+#: src/buffer.c:1441
+#, c-format
+msgid "Child returned status %d"
+msgstr "ڽ %d ǵ ־ϴ"
+
+#
+#: src/buffer.c:1546
+#, fuzzy, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr " #%d(%s ) غϰ ġ: "
+
+#: src/buffer.c:1552
+msgid "EOF where user reply was expected"
+msgstr " ʿ EOF "
+
+#
+#: src/buffer.c:1557 src/buffer.c:1586
+msgid "WARNING: Archive is incomplete"
+msgstr ": ī̺갡 ҿմϴ"
+
+#: src/buffer.c:1570
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [̸] ( ) ̸ մϴ\n"
+" q tar ߴմϴ\n"
+" ! մϴ\n"
+" ? μմϴ\n"
+
+#
+#. Quit.
+#: src/buffer.c:1581
+msgid "No new volume; exiting.\n"
+msgstr " ƴ; .\n"
+
+#
+#: src/buffer.c:1616
+msgid "Cannot fork!"
+msgstr "fork ϴ!"
+
+#
+#: src/buffer.c:1626
+#, c-format
+msgid "Cannot exec a shell %s"
+msgstr "%s ϴ"
+
+#
+#: src/create.c:188
+msgid "Removing drive spec from names in the archive"
+msgstr "ī̺꿡 ִ ̸鿡 ̺ "
+
+#: src/create.c:199 src/extract.c:415
+msgid "Removing leading `/' from absolute path names in the archive"
+msgstr "ī̺ ȿ ִ θ տ `/' "
+
+#
+#. We blew it, maybe.
+#: src/create.c:532
+#, c-format
+msgid "Wrote %ld of %ld bytes to file %s"
+msgstr "%ld Ʈ(%ld Ʈ ) %s ϴ"
+
+#
+#: src/create.c:560 src/create.c:584 src/create.c:1083
+#, c-format
+msgid "Read error at byte %ld, reading %d bytes, in file %s"
+msgstr "%ld Ʈ° б , %d Ʈ , %s"
+
+#
+#: src/create.c:596 src/create.c:1096
+#, c-format
+msgid "File %s shrunk by %d bytes, padding with zeros"
+msgstr ""
+
+#
+#: src/create.c:612
+#, c-format
+msgid "Amount actually written is (I hope) %d.\n"
+msgstr " (ٶǴ) %dԴϴ.\n"
+
+#
+#: src/create.c:712 src/create.c:973 src/create.c:1149
+#, c-format
+msgid "Cannot add file %s"
+msgstr " %s ߰ ϴ"
+
+#
+#: src/create.c:742
+#, c-format
+msgid "%s: is unchanged; not dumped"
+msgstr "%s: ʾҽϴ; "
+
+#
+#: src/create.c:752
+#, c-format
+msgid "%s is the archive; not dumped"
+msgstr "%s ī̺Դϴ; "
+
+#
+#: src/create.c:797
+msgid "Removing leading `/' from absolute links"
+msgstr " ũ鿡 տ `/' "
+
+#
+#: src/create.c:827 src/create.c:1113 src/create.c:1173 src/create.c:1427
+#, c-format
+msgid "Cannot remove %s"
+msgstr "%s ϴ"
+
+#
+#: src/create.c:1197
+#, c-format
+msgid "Cannot add directory %s"
+msgstr "%s 丮 ߰ ϴ"
+
+#
+#: src/create.c:1322
+#, c-format
+msgid "%s: On a different filesystem; not dumped"
+msgstr "%s: ٸ Ͻý ; "
+
+#
+#: src/create.c:1333 src/incremen.c:186
+#, c-format
+msgid "Cannot open directory %s"
+msgstr "%s 丮 ϴ"
+
+#
+#: src/create.c:1357
+#, c-format
+msgid "File name %s%s too long"
+msgstr " ̸ %s%s ʹ ϴ"
+
+#
+#: src/create.c:1432
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Ÿ; õ"
+
+#
+#: src/compare.c:50
+#, c-format
+msgid "Could not allocate memory for diff buffer of %d bytes"
+msgstr "%d Ʈ diff ۿ ޸𸮸 Ҵ ϴ"
+
+#
+#: src/compare.c:96 src/compare.c:317 src/compare.c:347
+#, c-format
+msgid "Cannot read %s"
+msgstr "%s ϴ"
+
+#
+#: src/compare.c:101 src/compare.c:324 src/compare.c:354
+#, c-format
+msgid "Could only read %d of %ld bytes"
+msgstr "%d Ʈ(%ld Ʈ ) ֽϴ"
+
+#
+#: src/compare.c:110 src/compare.c:130 src/compare.c:392
+msgid "Data differs"
+msgstr "ڷᰡ ٸϴ"
+
+#
+#: src/compare.c:159 src/extract.c:329 src/extract.c:630 src/list.c:380
+#: src/list.c:872
+msgid "Unexpected EOF on archive file"
+msgstr "ī̺ Ͽ ġ EOF"
+
+#
+#: src/compare.c:411
+msgid "File does not exist"
+msgstr " ʽϴ"
+
+#
+#: src/compare.c:414 src/compare.c:574
+#, c-format
+msgid "Cannot stat file %s"
+msgstr ""
+
+#
+#: src/compare.c:448
+msgid "Verify "
+msgstr " "
+
+#
+#: src/compare.c:455
+#, c-format
+msgid "Unknown file type '%c' for %s, diffed as normal file"
+msgstr ""
+
+#
+#: src/compare.c:480 src/compare.c:737
+msgid "Not a regular file"
+msgstr "Ϲ ƴ"
+
+#: src/compare.c:487 src/compare.c:718
+msgid "Mode differs"
+msgstr "尡 ٸϴ"
+
+#
+#: src/compare.c:494
+msgid "Uid differs"
+msgstr "uid ٸϴ"
+
+#
+#: src/compare.c:496
+msgid "Gid differs"
+msgstr "gid ٸϴ"
+
+#
+#: src/compare.c:500
+msgid "Mod time differs"
+msgstr " ð ٸϴ"
+
+#
+#: src/compare.c:504 src/compare.c:746
+msgid "Size differs"
+msgstr "ũⰡ ٸϴ"
+
+#
+#: src/compare.c:551 src/compare.c:784
+#, c-format
+msgid "Error while closing %s"
+msgstr "%s ݴ ߻"
+
+#
+#: src/compare.c:571
+msgid "Does not exist"
+msgstr " ʽϴ"
+
+#
+#: src/compare.c:585
+#, c-format
+msgid "Not linked to %s"
+msgstr "%s "
+
+#
+#: src/compare.c:605
+msgid "No such file or directory"
+msgstr "׷ ̳ 丮 "
+
+#
+#: src/compare.c:608
+#, c-format
+msgid "Cannot read link %s"
+msgstr "ũ %s ϴ"
+
+#
+#: src/compare.c:616
+msgid "Symlink differs"
+msgstr "ȣũ ٸϴ"
+
+#
+#: src/compare.c:655
+msgid "Device numbers changed"
+msgstr "ġ ȣ ٲ"
+
+#
+#: src/compare.c:668
+msgid "Mode or device-type changed"
+msgstr " Ǵ ġ Ÿ "
+
+#
+#: src/compare.c:713
+msgid "No longer a directory"
+msgstr " ̻ 丮 ƴ"
+
+#
+#: src/compare.c:755 src/names.c:225 src/update.c:55
+#, c-format
+msgid "Cannot open file %s"
+msgstr "%s ϴ"
+
+#
+#: src/compare.c:764
+#, c-format, fuzzy
+msgid "Cannot seek to %ld in file %s"
+msgstr " %s %ld Ž ϴ"
+
+#
+#: src/compare.c:837
+msgid "Could not rewind archive file for verify"
+msgstr " ī̺ ǰ ϴ"
+
+#
+#: src/compare.c:864
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr " : %d "
+
+#
+#: src/delete.c:81
+msgid "Could not re-position archive file"
+msgstr "ī̺ ġų ϴ"
+
+#
+#: src/delete.c:177 src/update.c:156
+msgid "This does not look like a tar archive"
+msgstr "̰ tar ī̺ó ʽϴ"
+
+#
+#: src/delete.c:182 src/update.c:161
+msgid "Skipping to next header"
+msgstr " dz "
+
+#
+#: src/delete.c:260
+msgid "Deleting non-header from archive"
+msgstr "ī̺꿡 κ "
+
+#: src/extract.c:107
+#, c-format
+msgid "%s: Cannot change mode to %0.4o"
+msgstr "%s: 带 %0.4o ٲ ϴ"
+
+#: src/extract.c:149
+#, c-format
+msgid "%s: Could not change access and modification times"
+msgstr "%s: ð ð ٲ ϴ"
+
+#: src/extract.c:176
+#, c-format
+msgid "%s: Cannot lchown to uid %d gid %d"
+msgstr "%s: ڸ uid %d gid %d ٲ ϴ"
+
+#: src/extract.c:182 src/extract.c:191
+#, c-format
+msgid "%s: Cannot chown to uid %d gid %d"
+msgstr "%s: ڸ uid %d gid %d ٲپϴ"
+
+#: src/extract.c:245
+#, c-format
+msgid "%s: Cannot change owner to uid %d, gid %d"
+msgstr "%s: ڸ uid %d, gid %d ٲ ϴ"
+
+#: src/extract.c:338 src/extract.c:348 src/extract.c:665
+#, c-format
+msgid "%s: Could not write to file"
+msgstr "%s: Ͽ ϴ"
+
+#: src/extract.c:351 src/extract.c:668
+#, c-format
+msgid "%s: Could only write %d of %d bytes"
+msgstr "%s: %d Ʈ(%d Ʈ ) ϴ"
+
+#: src/extract.c:425
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: ϴ"
+
+#: src/extract.c:568
+msgid "Extracting contiguous files as regular files"
+msgstr "ӵǾ ִ Ϲ Ϸ "
+
+#: src/extract.c:580
+#, c-format
+msgid "%s: Could not create file"
+msgstr "%s: ϴ"
+
+#
+#: src/extract.c:644
+#, c-format
+msgid "%d at %d\n"
+msgstr ""
+
+#: src/extract.c:707
+#, c-format
+msgid "%s: Error while closing"
+msgstr "%s: ݴ ߻"
+
+#: src/extract.c:739
+#, c-format
+msgid "%s: Could not create symlink to `%s'"
+msgstr "%s: `%s' ȣũ ϴ"
+
+#: src/extract.c:753
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "ȣ ũ ϵ ũ ϰ ֽϴ"
+
+#: src/extract.c:789
+#, c-format
+msgid "%s: Could not link to `%s'"
+msgstr "%s: `%s' ũ ϴ"
+
+#: src/extract.c:822
+#, c-format
+msgid "%s: Could not make node"
+msgstr "%s: 带 ϴ"
+
+#: src/extract.c:848
+#, c-format
+msgid "%s: Could not make fifo"
+msgstr "%s: fifo ϴ"
+
+#: src/extract.c:924
+#, c-format
+msgid "%s: Could not create directory"
+msgstr "%s: 丮 ϴ"
+
+#
+#: src/extract.c:935
+#, c-format
+msgid "Added write and execute permission to directory %s"
+msgstr "%s 丮 ΰ߽ϴ"
+
+#: src/extract.c:973
+#, c-format
+msgid "Cannot extract `%s' -- file is continued from another volume"
+msgstr "`%s' ϴ -- ٸ ӵǾ ֽϴ"
+
+#
+#: src/extract.c:983
+msgid "Visible long name error"
+msgstr " ̸ "
+
+#
+#: src/extract.c:991
+#, c-format
+msgid "Unknown file type '%c' for %s, extracted as normal file"
+msgstr ""
+
+#
+#: src/incremen.c:231 src/incremen.c:598 src/update.c:131
+#, c-format
+msgid "Cannot stat %s"
+msgstr "%s stat ϴ"
+
+#
+#: src/incremen.c:268
+#, c-format
+msgid "Directory %s has been renamed"
+msgstr "%s 丮 ̸ ٲϴ"
+
+#
+#: src/incremen.c:279
+#, c-format
+msgid "Directory %s is new"
+msgstr "%s 丮Դϴ"
+
+#
+#: src/incremen.c:437 src/names.c:461
+msgid "Could not get current directory"
+msgstr " 丮 ϴ"
+
+#
+#: src/incremen.c:442 src/names.c:466
+#, c-format
+msgid "Could not get current directory: %s"
+msgstr " 丮 ϴ: %s"
+
+#
+#: src/incremen.c:446
+#, c-format
+msgid "File name %s/%s too long"
+msgstr " ̸ %s/%s ʹ ϴ"
+
+#
+#: src/incremen.c:586
+#, c-format
+msgid "Cannot chdir to %s"
+msgstr "%s 丮 ٲ ϴ"
+
+#
+#: src/incremen.c:675
+msgid "Unexpected EOF in archive"
+msgstr "ī̺꿡 ġ EOF"
+
+#
+#: src/incremen.c:704
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s \n"
+
+#
+#: src/incremen.c:706
+#, c-format
+msgid "Error while deleting %s"
+msgstr "%s ߻"
+
+#
+#: src/list.c:84
+#, c-format
+msgid "Omitting %s"
+msgstr "%s "
+
+#: src/list.c:123
+#, c-format
+msgid "block %10ld: ** Block of NULs **\n"
+msgstr " %10ld: ** NUL **\n"
+
+#: src/list.c:134
+#, c-format
+msgid "block %10ld: ** End of File **\n"
+msgstr " %10ld: ** **\n"
+
+#
+#: src/list.c:145
+msgid "Hmm, this doesn't look like a tar archive"
+msgstr ", ̰ tar ī̺ó ʴ±"
+
+#
+#: src/list.c:150
+msgid "Skipping to next file header"
+msgstr " dz "
+
+#
+#: src/list.c:204
+msgid "EOF in archive file"
+msgstr "ī̺ Ͽ EOF"
+
+#
+#: src/list.c:216
+#, c-format
+msgid "Only wrote %ld of %ld bytes to file %s"
+msgstr "%ld Ʈ(%ld Ʈ ) %s ϴ"
+
+#: src/list.c:617 src/list.c:839
+#, c-format
+msgid "block %10ld: "
+msgstr " %10ld: "
+
+#
+#: src/list.c:654
+msgid "Visible longname error"
+msgstr " ̸ "
+
+#
+#: src/list.c:780 src/list.c:784
+#, c-format
+msgid " link to %s\n"
+msgstr " %s ũ\n"
+
+#
+#: src/list.c:788
+#, c-format
+msgid " unknown file type `%c'\n"
+msgstr " Ÿ `%c'\n"
+
+#
+#: src/list.c:805
+msgid "--Volume Header--\n"
+msgstr "-- --\n"
+
+#
+#: src/list.c:809
+#, c-format
+msgid "--Continued at byte %ld--\n"
+msgstr "--%ld Ʈ ° ӵ--\n"
+
+#
+#: src/list.c:814
+msgid "--Mangled file names--\n"
+msgstr ""
+
+#
+#: src/list.c:844 src/list.c:849
+msgid "Creating directory:"
+msgstr "丮 :"
+
+#
+#: src/mangle.c:61
+msgid "Unexpected EOF in mangled names"
+msgstr ""
+
+#
+#: src/mangle.c:97
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s %s ̸ ٲ ϴ"
+
+#
+#: src/mangle.c:99
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "%s %s ̸ ٲ"
+
+#
+#: src/mangle.c:116
+#, c-format
+msgid "Cannot symlink %s to %s"
+msgstr "%s %s ȣũ ϴ"
+
+#
+#: src/mangle.c:119
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s %s ȣũǾ"
+
+#
+#: src/mangle.c:123
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr ""
+
+#
+#: src/names.c:332 src/names.c:530 src/names.c:556 src/names.c:582
+#: src/names.c:735
+#, c-format
+msgid "Cannot change to directory %s"
+msgstr "%s 丮 ٲ ϴ"
+
+#
+#: src/names.c:351 src/names.c:407 src/names.c:452
+msgid "Missing file name after -C"
+msgstr "-C ڿ ̸ "
+
+#
+#: src/names.c:620 src/names.c:639
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: ī̺꿡 "
+
+#: src/rmt.c:89
+msgid "Unknown system error"
+msgstr " ý "
+
+#
+#: src/rmt.c:157
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Ҵ ϴ\n"
+
+#
+#: src/rmt.c:159
+msgid "Cannot allocate buffer space"
+msgstr " Ҵ ϴ"
+
+#
+#: src/rmt.c:308
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: ߸ eof\n"
+
+#
+#: src/rmt.c:310
+msgid "Premature end of file"
+msgstr "߸ "
+
+#
+#: src/rmt.c:382
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: %c\n"
+
+#
+#: src/rmt.c:384
+msgid "Garbage command"
+msgstr " "
+
+#
+#: src/rtapelib.c:247
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: "
+
+#: src/rtapelib.c:252
+msgid "stdin"
+msgstr "ǥԷ"
+
+#: src/rtapelib.c:255
+msgid "stdout"
+msgstr "ǥ"
+
+#
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:415
+msgid "Cannot execute remote shell"
+msgstr " ϴ"
+
+#: src/tar.c:97
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "`-%s' `-%s' ɼ ǥ Է ʿմϴ"
+
+#
+#: src/tar.c:123
+msgid "Cannot read confirmation from user"
+msgstr " Ȯ ϴ"
+
+#
+#: src/tar.c:290 tests/genfile.c:60
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr " `%s --help' Ͻʽÿ.\n"
+
+#: src/tar.c:294
+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 ""
+
+#
+#: src/tar.c:298
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+msgstr ""
+"\n"
+": %s [ɼ]... []...\n"
+
+#: src/tar.c:299
+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 ""
+
+#: src/tar.c:304
+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 ī̺ ͺ ο ϸ ߰մϴ\n"
+" -A, --catenate ī̺꿡 tar ߰մϴ\n"
+" --concatenate -A \n"
+" --delete ī̺κ մϴ (ڱ ȵ!)\n"
+
+#: src/tar.c:317
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't overwrite existing files when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting "
+"directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+" :\n"
+" -W, --verify ī̺긦 ϵ մϴ\n"
+" --remove-files ī̺꿡 ߰ ϴ\n"
+" -k, --keep-old-files ̹ ϴ  "
+"ʽϴ\n"
+" -U, --unlink-first ϱ⿡ ռ ϴ\n"
+" --recursive-unlink 丮 ϱ⿡ ռ ü踦 ϴ\n"
+" -S, --sparse Ľ ȿ óմϴ\n"
+" -O, --to-stdout ǥ մϴ\n"
+" -G, --incremental GNU óմϴ\n"
+" -g, --listed-incremental ο GNU óմϴ\n"
+" --ignore-failed-read Ͽ ƴ \n"
+" ʽϴ\n"
+
+#: src/tar.c:331
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added "
+"files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract all protection information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+
+#: src/tar.c:347
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies "
+"-M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"ġ ð ȯ:\n"
+" -f, --file=ARCHIVE ī̺ Ǵ ARCHIVE ġ "
+"մϴ\n"
+" --force-local ̸ ݷ ִ ī̺ ϵ "
+"Ϸ\n"
+" νմϴ\n"
+" --rsh-command=COMMAND rsh COMMAND մϴ\n"
+" -[0-7][lmh] ̺ е մϴ\n"
+" -M, --multi-volume ī̺긦 //մϴ\n"
+" -L, --tape-length=NUM NUM x 1024 Ʈ ڿ "
+"ٲߴϴ\n"
+" -F, --info-script=FILE ũƮ մϴ\n"
+" (-M )\n"
+" --new-volume-script=FILE -F FILE \n"
+" --volno-file=FILE FILE ȿ ִ ȣ /մϴ\n"
+
+#: src/tar.c:360
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means "
+"EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"ġ :\n"
+" -b, --blocking-factor=BLOCK ڵ BLOCK x 512 Ʈ\n"
+" --record-size=SIZE ڵ SIZE Ʈ, 512 \n"
+" -i, --ignore-zeros ī̺꿡 մϴ\n"
+" (EOF ǹ)\n"
+" -B, --read-full-records ȭմϴ (4.2BSD "
+")\n"
+
+#: src/tar.c:368
+#, fuzzy
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing "
+"PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX conformant archive\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"ī̺ :\n"
+" -V, --label=NAME NAME ī̺긦 ϴ\n"
+" PATTERN at list/extract time, a globbing "
+"PATTERN\n"
+" -o, --old-archive, --portability V7 ī̺긦 ϴ\n"
+" --posix POSIX ī̺긦 ϴ\n"
+" -z, --gzip, --ungzip ī̺긦 gzip մϴ\n"
+" -Z, --compress, --uncompress ī̺긦 compress մϴ\n"
+" --use-compress-program=PROG PROG(-d νؾ ) մϴ\n"
+
+#: src/tar.c:379
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file "
+"NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a globbing PATTERN\n"
+" -X, --exclude-from=FILE exclude globbing patterns listed in FILE\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in "
+"directories\n"
+" -l, --one-file-system stay in local file system when creating "
+"archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+
+#: src/tar.c:394
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATE DATE ϵ鸸 մϴ\n"
+" --newer-mtime Ͱ ٲ ¥ ð "
+"մϴ\n"
+" --after-date=DATE -N \n"
+
+#: src/tar.c:400
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version "
+"control\n"
+" --suffix=SUFFIX backup before removel, override usual suffix\n"
+msgstr ""
+
+#: src/tar.c:404
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+" ¿ ɼ:\n"
+" --help μϰ ϴ\n"
+" --version tar α׷ ȣ μϰ ϴ\n"
+" -v, --verbose óǴ մϴ\n"
+" --checkpoint ī̺긦 丮 ̸ μմϴ\n"
+" --totals ī̺긦 Ʈ "
+"μմϴ\n"
+" -R, --block-number ޽ ī̺곻 ȣ ǥմϴ\n"
+" -w, --interactive ൿ Ȯ 䱸մϴ\n"
+" --confirmation -w \n"
+
+#: src/tar.c:416
+msgid ""
+"\n"
+"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 "
+"are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+
+#: src/tar.c:425
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; and FILE may be a file\n"
+"or a device. *This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"GNU tar `--posix' ī̺긦 аų ϴ. \n"
+"POSIXLY_CORRECT ȯ濡 Ǿ ִٸ, GNU Ȯ `--posix' \n"
+"Ȱȭ˴ϴ. POSIX ܿ κθ ǾǷ ŷ\n"
+" ʽÿ. ARCHIVE FILE, HOST:FILE, Ǵ USER@HOST:FILE \n"
+", ⼭ FILE ̳ ġ ֽϴ. `tar'\n"
+" `-f%s -b%d'Դϴ.\n"
+
+#: src/tar.c:433
+msgid ""
+"\n"
+"Report bugs to <tar-bugs@gnu.ai.mit.edu>.\n"
+msgstr ""
+"\n"
+"<tar-bugs@gnu.ai.mit.edu> ׸ ֽʽÿ.\n"
+
+#: src/tar.c:459
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "`-Acdtrux' ɼ ϳ ̻ ϸ ˴ϴ"
+
+#: src/tar.c:468
+msgid "Conflicting compression options"
+msgstr "򰥸 ɼ"
+
+#: src/tar.c:532
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr " ɼ `%c' μ ʿմϴ."
+
+#: src/tar.c:574
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "--blocking-factor ԵǾ ɼ"
+
+#: src/tar.c:578
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "--block-factor üǾ ɼ ̸"
+
+#: src/tar.c:588
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "--read-full-records üǾ ɼ ̸"
+
+#: src/tar.c:686
+msgid "Obsolete option name replaced by --touch"
+msgstr "--touch üǾ ɼ ̸"
+
+#: src/tar.c:707
+msgid "More than one threshold date"
+msgstr ""
+
+#: src/tar.c:711
+#, c-format
+msgid "Invalid date format `%s'"
+msgstr " ¥ `%s'"
+
+#: src/tar.c:720 src/tar.c:876 src/tar.c:881
+msgid "Conflicting archive format options"
+msgstr "򰥸 ī̺ ɼ"
+
+#: src/tar.c:732
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "--absolute-names üǾ ɼ ̸"
+
+#: src/tar.c:744
+msgid "Obsolete option name replaced by --block-number"
+msgstr "--block-number üǾ ɼ ̸"
+
+#: src/tar.c:819
+msgid "Obsolete option name replaced by --backup"
+msgstr "--backup üǾ ɼ ̸"
+
+#: src/tar.c:840
+msgid "Invalid group given on option"
+msgstr "ɼǿ ׷ ־"
+
+#: src/tar.c:850
+msgid "Invalid mode given on option"
+msgstr "ɼǿ 尡 ־"
+
+#: src/tar.c:852
+msgid "Memory exhausted"
+msgstr "޸𸮰 ٴڳ"
+
+#: src/tar.c:866
+msgid "Invalid owner given on option"
+msgstr "ɼǿ ڰ ־"
+
+#: src/tar.c:893
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "ڵ ũ %d Ǿ մϴ."
+
+#: src/tar.c:989
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "`-[0-7][lmh]' ɼ tar ʽϴ"
+
+#: src/tar.c:999
+msgid ""
+"\n"
+"Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"۱ (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+
+#: src/tar.c:1003 tests/genfile.c:161
+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 ""
+
+#: src/tar.c:1007
+msgid ""
+"\n"
+"Written by John Gilmore and Jay Fenlason.\n"
+msgstr ""
+"\n"
+"John Gilmore Jay Fenlason ϴ.\n"
+
+#: src/tar.c:1035
+msgid "GNU features wanted on incompatible archive format"
+msgstr ""
+
+#: src/tar.c:1052
+msgid "Multiple archive files requires `-M' option"
+msgstr " ī̺ `-M' ɼ ʿմϴ"
+
+#: src/tar.c:1066
+msgid "Cowardly refusing to create an empty archive"
+msgstr ""
+
+#: src/tar.c:1087
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "`-Aru' ɼ `-f -' ÿ ϴ"
+
+#: src/tar.c:1144
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "`-Acdtrux' ɼǵ ϳ ؾ մϴ"
+
+#: src/tar.c:1191
+msgid "Error exit delayed from previous errors"
+msgstr ""
+
+#
+#: src/update.c:79
+#, c-format
+msgid "Read error at byte %ld reading %d bytes in file %s"
+msgstr ""
+
+#
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrunk by %d bytes, (yark!)"
+msgstr "%s: %d Ʈ پ, (Ϳ!)"
+
+#: tests/genfile.c:64
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "GNU tar մϴ.\n"
+
+#: tests/genfile.c:65
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+": %s [ɼ]...\n"
+"\n"
+
+#: tests/genfile.c:68
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+" ɼǿ ΰǴ μ , ̴ ǹ ª ɼǿ\n"
+"˴ϴ.\n"
+"\n"
+" -l, --file-length= Ǵ \n"
+" -p, --pattern= `default' `zeros'Դϴ\n"
+" --help ְ Ĩϴ\n"
+" --version ϰ Ĩϴ\n"
+
+#: tests/genfile.c:134
+#, c-format
+msgid "Ambiguous pattern `%s'"
+msgstr "ȣ `%s'"
+
+#: tests/genfile.c:138
+#, c-format
+msgid "Unknown pattern `%s'"
+msgstr " `%s'"
+
+#: tests/genfile.c:157
+msgid ""
+"\n"
+"Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"۱ (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+
+# fake msgid -ke-
+#: tests/genfile.c:165
+msgid ""
+"\n"
+"Written by Fran,cois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Fran,cois Pinard <pinard@iro.umontreal.ca> ϴ.\n"
diff --git a/po/ky.po b/po/ky.po
new file mode 100644
index 00000000..332f1892
--- /dev/null
+++ b/po/ky.po
@@ -0,0 +1,2319 @@
+# Translation of tar-1.18 messages to Kirghiz/Kyrgyz
+# Copyright (C) 2007 Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# Azilet Beishenaliev <aziletb@gmail.com>, 2007.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.18\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2007-06-28 19:56+0300\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"
+"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"
+"X-Poedit-Language: Kyrgyz\n"
+"X-Poedit-Country: KYRGYZSTAN\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "%2$s үчүн %1$s аргументи жарабайт"
+
+#: lib/argmatch.c:135
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "%2$s үчүн %1$s аргументи так эмес"
+
+#: lib/argmatch.c:154
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Жарактуу аргументтер мындай:"
+
+#: lib/argp-help.c:148
+#, 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:221
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT параметринин мааниси болуш керек"
+
+# положительный кыргызча кандайле?
+#: lib/argp-help.c:227
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT параметринин мааниси оң болуш керек"
+
+#: lib/argp-help.c:236
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: ARGP_HELP_FMT параметри белгисиз"
+
+#: lib/argp-help.c:248
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "ARGP_HELP_FMT параметри бузук: %s"
+
+#: lib/argp-help.c:1247
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Толук жазылган опцияларда колдонулган аргументтер сөзсүз түрдө же тилекке жараша жазылса, кыска жазылган опциялар менен да сөзсүз түрдө же тилекке жараша жазылат."
+
+#: lib/argp-help.c:1640
+msgid "Usage:"
+msgstr "Колдонулушу:"
+
+#: lib/argp-help.c:1644
+msgid " or: "
+msgstr " же: "
+
+#: lib/argp-help.c:1656
+msgid " [OPTION...]"
+msgstr " [ОПЦИЯ...]"
+
+#: lib/argp-help.c:1683
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Толук маалымат үчүн `%s --help' же `%s --usage' деп жазгыла.\n"
+
+#: lib/argp-help.c:1711 src/tar.c:1169
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Каталарды бул жерге билдиргиле %s.\n"
+
+#: lib/argp-help.c:1930 lib/error.c:125
+msgid "Unknown system error"
+msgstr "Белгисиз система катасы"
+
+#: lib/argp-parse.c:82 src/tar.c:736
+msgid "give this help list"
+msgstr "Бул жардам тизмесин көрсөтөт"
+
+#: lib/argp-parse.c:83 src/tar.c:737
+msgid "give a short usage message"
+msgstr "Колдонуу жөнүндө кыска маалымат көрсөтөт"
+
+#: lib/argp-parse.c:84 src/tar.c:456 src/tar.c:458 src/tar.c:527
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "АТЫ"
+
+#: lib/argp-parse.c:84
+msgid "set the program name"
+msgstr "Программага ат кой"
+
+#: lib/argp-parse.c:85
+msgid "SECS"
+msgstr "СЕК"
+
+#: lib/argp-parse.c:86 src/tar.c:742
+msgid "hang for SECS seconds (default 3600)"
+msgstr "СЕК секунда күтүңүз (алдынала - 3600)"
+
+#: lib/argp-parse.c:143 src/tar.c:738
+msgid "print program version"
+msgstr "программанын версиясын көрсөтөт"
+
+#: lib/argp-parse.c:159
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ПРОГРАММАДА КАТА) Версиясы белгисиз!?"
+
+#: lib/argp-parse.c:612
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Аргументтердин саны көп\n"
+
+#: lib/argp-parse.c:755
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ПРОГРАММАДА КАТА) Опция билиниш керек болчу!?"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: `%s' опциясы так эмес\n"
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: `--%s' опциясы менен аргумент колдонулбайт\n"
+
+#: lib/getopt.c:593 lib/getopt.c:598
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: `%c%s' опциясы менен аргумент колдонулбайт\n"
+
+#: lib/getopt.c:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: `%s' опциясы менен аргумент болуш керек\n"
+
+#: lib/getopt.c:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: бул опция түшүнүксүз `--%s'\n"
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: бул опция түшүнүксүз `%c%s'\n"
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: мындай опция колдонулбайт -- %c\n"
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: жараксыз опция -- %c\n"
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: бул опциянын аргументи болуш керек -- %c\n"
+
+#: lib/getopt.c:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: `-W %s' опциясы так эмес\n"
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: `-W %s' опциясы менен аргумент колдонулбайт\n"
+
+#: lib/human.c:477
+msgid "block size"
+msgstr "бир блоктун көлөмү"
+
+# Памятты эмне дейбиз яя? ;)
+#: lib/obstack.c:424 lib/obstack.c:426 lib/xalloc-die.c:35 src/extract.c:1377
+msgid "memory exhausted"
+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:132
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Мүчө аттарынын башындагы `%s' алынып салды"
+
+#: lib/paxnames.c:133
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Түз шилтемелер көрсөтүп турган файлдардын башындагы `%s' алынып салды"
+
+#: lib/paxnames.c:146
+msgid "Substituting `.' for empty member name"
+msgstr "Бош болгон мүчө аттын ордуна `.' коюлду"
+
+#: lib/paxnames.c:147
+msgid "Substituting `.' for empty hard link target"
+msgstr "Түз шилтеме көрсөтүп турган бош файлдын ордуна `.' коюлду"
+
+#. 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.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr "„"
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr "“"
+
+# Ооба/ооба
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr "^[оО]"
+
+# жок/Жок
+#: lib/rpmatch.c:73
+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
+#, c-format
+msgid "stdout"
+msgstr "stdout"
+
+#: lib/rtapelib.c:512
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Алыстагы команда процессору иштетилген жок"
+
+# Input string дегендин ордуна жакшы нерсе билсеңер алмаштырсаңар болот
+#: rmt/rmt.c:142
+msgid "Input string too long"
+msgstr "Жазылган сүйлөм өтө узун"
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr "Номердин жазуусунда ката бар"
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Буфер үчүн жер алыналган жок\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr " Буфер үчүн жер алыналган жок"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Толук маалымат үчүн `%s --help' деп жазгыла.\n"
+
+#: rmt/rmt.c:308
+#, 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"
+
+#: rmt/rmt.c:315
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Каталарды бул жерге билдиргиле <%s>.\n"
+
+#: rmt/rmt.c:397
+msgid "Seek offset error"
+msgstr "Издөө даражасы туура эмес"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+msgid "Seek offset out of range"
+msgstr "Издөө даражасы диапазондун тышында"
+
+#: rmt/rmt.c:428
+msgid "Seek direction out of range"
+msgstr "Издөө жолу диапазондун тышында"
+
+#: rmt/rmt.c:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Файлдын соңу эрте келди\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "Файлдын соңу эрте келди"
+
+#: rmt/rmt.c:672
+msgid "Garbage command"
+msgstr "Туура эмес команда"
+
+#: src/buffer.c:326 src/buffer.c:335
+msgid "Total bytes written"
+msgstr "Жазылган жалпы байт"
+
+#: src/buffer.c:333 src/buffer.c:347
+msgid "Total bytes read"
+msgstr "Алынган жалпы байт"
+
+#: src/buffer.c:337
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Өчүрүлгөн жалпы байт: %s\n"
+
+#: src/buffer.c:426
+msgid "(pipe)"
+msgstr "(канал)"
+
+#: src/buffer.c:449
+msgid "Invalid value for record_size"
+msgstr "record_size мааниси жарабайт"
+
+#: src/buffer.c:452
+msgid "No archive name given"
+msgstr "Архивдин аты берилген жок"
+
+#: src/buffer.c:496
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Архивдин stdin/stdout текшерүүсү болбой жатат"
+
+#: src/buffer.c:509
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Архив кысыштырылган абалда. %s опциясын колдонгула"
+
+#: src/buffer.c:556 src/tar.c:2187
+msgid "Cannot update compressed archives"
+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/buffer.c:606
+#, c-format
+msgid "Write checkpoint %u"
+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/buffer.c:612
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Окуунун текшерүү жери: %u"
+
+#: src/buffer.c:664
+msgid "At beginning of tape, quitting now"
+msgstr "Лентанын башына келди, иш бүттү"
+
+#: src/buffer.c:670
+msgid "Too many errors, quitting"
+msgstr "Өтө көп ката бар, иш бүттү"
+
+#: src/buffer.c:698
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Архивде түз жайлашпаган блок бар (%lu байт)"
+
+#: src/buffer.c:718
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Маалыматтын көлөмү = %lu блок"
+
+#: src/buffer.c:791
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Архивдеги файл өчпөй калды; архив ачылбаса -i деп колдонгула"
+
+#: src/buffer.c:823
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek маалыматтын чегинде токтогон жок"
+
+#: src/buffer.c:879
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: жараксыз том номери бар"
+
+#: src/buffer.c:914
+msgid "Volume number overflow"
+msgstr "Томдун номери батпай калды"
+
+#: src/buffer.c:929
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "%2$s үчүн %1$d-томду даярдап Enter'ди басыңыз: "
+
+#: src/buffer.c:935
+msgid "EOF where user reply was expected"
+msgstr "Колдонуучудан жооп күтүбатканда файлдын соңу келип калды"
+
+#: src/buffer.c:940 src/buffer.c:972
+msgid "WARNING: Archive is incomplete"
+msgstr "ЭСКЕРТҮҮ: Архив толук эмес"
+
+#: src/buffer.c:954
+#, 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 аты\tЭмики (жана андан кийинки) томдорго жаңы ат жазыңыз\n"
+" q\t\ttar программасынын ишин бүтүр\n"
+"y же Ввод\t\tИшти улант\n"
+
+#: src/buffer.c:959
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Команда строкасын ач\n"
+
+#: src/buffer.c:960
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Бул тизмени жаз\n"
+
+#: src/buffer.c:967
+msgid "No new volume; exiting.\n"
+msgstr "Жаңы том жок; иш бүттү.\n"
+
+#: src/buffer.c:1000
+msgid "File name not specified. Try again.\n"
+msgstr "Файлдын аты берилген жок. Кайра жазып көргүлө.\n"
+
+#: src/buffer.c:1013
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Туура эмес ввод. Жардам үчүн ? жазгыла.\n"
+
+#: src/buffer.c:1064
+#, c-format
+msgid "%s command failed"
+msgstr "%s командасы аткарылбай калды"
+
+#: src/buffer.c:1126 src/delete.c:210 src/list.c:167 src/update.c:165
+msgid "This does not look like a tar archive"
+msgstr "Бул tar-архиви эмес окшойт"
+
+#: src/buffer.c:1219
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s бул томдо уланса керек: башкы-маалыматта аты кыскартылыптыр"
+
+#: src/buffer.c:1223
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s мунун бул томдо уландысы жок"
+
+#: src/buffer.c:1237
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s көлөмү туура эмес (%s != %s + %s)"
+
+#: src/buffer.c:1247
+msgid "This volume is out of sequence"
+msgstr "Бул том иретте эмес"
+
+#: src/buffer.c:1293
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Архивдин тамгасы %s менен келишпей жатат"
+
+#: src/buffer.c:1296
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "%s тому %s менен келишпей жатат"
+
+#: src/buffer.c:1392
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: файлдын аты көп-томдук GNU башкы-маалымат үчүн өтө узун, кыскартылды"
+
+#: src/compare.c:96
+#, 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
+msgid "Contents differ"
+msgstr "Мазмундары окшобойт"
+
+#: src/compare.c:132 src/extract.c:790 src/incremen.c:1193 src/list.c:372
+#: src/list.c:1314
+msgid "Unexpected EOF in archive"
+msgstr "Архивде күтүлбөгөн жерде файлдын соңу бар"
+
+#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412
+msgid "File type differs"
+msgstr "Файл түрү окшошпойт"
+
+#: src/compare.c:183 src/compare.c:203 src/compare.c:328
+msgid "Mode differs"
+msgstr "Укук абалдары окшошпойт"
+
+#: src/compare.c:206
+msgid "Uid differs"
+msgstr "Uid окшошпойт"
+
+#: src/compare.c:208
+msgid "Gid differs"
+msgstr "Gid окшошпойт"
+
+#: src/compare.c:212
+msgid "Mod time differs"
+msgstr "Алмаштыруу убактылары окшошпойт"
+
+#: src/compare.c:216 src/compare.c:420
+msgid "Size differs"
+msgstr "Көлөмү окшошпойт"
+
+#: src/compare.c:270
+#, c-format
+msgid "Not linked to %s"
+msgstr "%s жака шилтенген эмес"
+
+#: src/compare.c:293
+msgid "Symlink differs"
+msgstr "Символикалык шилтеме окшошпойт"
+
+#: src/compare.c:322
+msgid "Device number differs"
+msgstr "Аспап номери окшошпойт"
+
+#: src/compare.c:462
+#, c-format
+msgid "Verify "
+msgstr "Текшерүү "
+
+#: src/compare.c:469
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: `%c' файл түрү бүлгисиз, жөнөкөй файл катары салыштырды"
+
+#: src/compare.c:524
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Архивдин ичинде префикстери алынган файл аттары бар."
+
+#: src/compare.c:526
+msgid "Verification may fail to locate original files."
+msgstr "Текшерүү учурунда алгачкы файлдар табылбай калышы мүмкүн."
+
+#: src/compare.c:596
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "ТЕКШЕРҮҮ КАТАСЫ: %d жараксыз башкы маалымат табылды"
+
+#: src/create.c:67
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: мунун ичинде %s деген кэш-папка белгиси бар; %s"
+
+#: src/create.c:270
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "%s мааниси %s диапазонунун тышында %s..%s; ордуна %s коюлат"
+
+#: src/create.c:276
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "%s мааниси %s диапазонунун тышында %s..%s"
+
+#: src/create.c:336
+msgid "Generating negative octal headers"
+msgstr "Терс сегиздик системасында башкы маалыматтар даярдалууда"
+
+#: src/create.c:622 src/create.c:685
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: файлдын аты өтө узун (эң көп %d болот); кошулбайт"
+
+#: src/create.c:632
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: файлдын аты өтө узун (бөлүнбөйт); кошулбайт"
+
+#: src/create.c:659
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: шилтеменин аты өтө узун; кошулбайт"
+
+#: src/create.c:1075
+#, 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:1176
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: файл башка файл-системасында; кошулбайт"
+
+#: src/create.c:1217 src/create.c:1228
+msgid "contents not dumped"
+msgstr "астындагылар кошулган жок"
+
+#: src/create.c:1357
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Файлдын түрү белгисиз; файл каралбайт"
+
+#: src/create.c:1458
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "%s жака шилтемелер жок.\n"
+
+#: src/create.c:1529
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: файл алмашкан жок; кошулбайт"
+
+#: src/create.c:1537
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: файл архив экен; кошулбайт"
+
+#: src/create.c:1567
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Файл окулганча өчүрүлүп кетти"
+
+#: src/create.c:1585
+msgid "directory not dumped"
+msgstr "папка кошулган жок"
+
+#: src/create.c:1654
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: файлды окуу учурунда файл алмашты"
+
+#: src/create.c:1733
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: сокет каралбайт"
+
+#: src/create.c:1738
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door каралбайт"
+
+#: src/delete.c:216 src/list.c:181 src/update.c:170
+msgid "Skipping to next header"
+msgstr "Эмики башкы-маалыматка өттү"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "Архивде башкы-маалымат болбогондор өчүрүлөт"
+
+#: src/extract.c:198
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: %s убакыт тамгасы өтө эски"
+
+#: src/extract.c:215
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: %s убакыт тамгасы %s сек. келечекте"
+
+#: src/extract.c:395
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Папка ачыбатканда күтүлбөгөн нерселер болду"
+
+#: src/extract.c:588
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Папканын статусу билинелектен мурун аты алмашып кетти"
+
+#: src/extract.c:724
+msgid "Extracting contiguous files as regular files"
+msgstr "Удаа болгон файлдар жөнөкөй файл катары чыгарылып жатат"
+
+#: src/extract.c:1000
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Символикалык шилтемелерди түз шилтеме катары чыгарууга аракет кылынат"
+
+#: src/extract.c:1057
+#, c-format
+msgid "Reading %s\n"
+msgstr "%s жактан окуп жатат\n"
+
+#: src/extract.c:1146
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Чыгарылган жок -- файл башка томдон уланып келиптир"
+
+#: src/extract.c:1153 src/list.c:1081
+msgid "Unexpected long name header"
+msgstr "Башкы-маалымат узун"
+
+#: src/extract.c:1159
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: `%c' файл түрү бүлгисиз, жөнөкөй файл катары чыгарылды"
+
+#: src/extract.c:1184
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Азыркы %s жаңыраак же бирдей"
+
+#: src/extract.c:1230
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Бул файлдын резерв копиясы алыналбай калды"
+
+#: src/extract.c:1358
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s файлы %s деп алмаштыралбай калды"
+
+#: src/extract.c:1370
+#, c-format
+msgid "Error is not recoverable: exiting now"
+msgstr "Оңолбогон ката: иш бүттү "
+
+#: src/incremen.c:260 src/incremen.c:300
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Папканын эски аты %s эле"
+
+#: src/incremen.c:270
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Папка алмаштырылды"
+
+#: src/incremen.c:311
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Папка жаңы"
+
+#: src/incremen.c:699 src/incremen.c:716
+msgid "Invalid time stamp"
+msgstr "Жараксыз убакыт тамгасы"
+
+#: src/incremen.c:755
+msgid "Invalid modification time (seconds)"
+msgstr "Алмашуу убагы туура эмес (секундалары)"
+
+#: src/incremen.c:770
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Алмашуу убагы туура эмес (нано-секундалары)"
+
+#: src/incremen.c:790
+msgid "Invalid device number"
+msgstr "Аспаптын номери жараксыз "
+
+#: src/incremen.c:805
+msgid "Invalid inode number"
+msgstr "Inode номери жараксыз"
+
+# фиелд, снэпшот дегендер кандай болот?
+#: src/incremen.c:856 src/incremen.c:893
+msgid "Field too long while reading snapshot file"
+msgstr "Снэпшот файлды окубатканда ото узун поле чыкты"
+
+# snapshot?
+#: src/incremen.c:863 src/incremen.c:901
+msgid "Read error in snapshot file"
+msgstr "Снэпшот файлды окубатканда ката болду"
+
+# snapshot?
+#: src/incremen.c:865 src/incremen.c:905 src/incremen.c:957
+#: src/incremen.c:1015
+msgid "Unexpected EOF in snapshot file"
+msgstr "Снэпшот файлда күтүлбөгөн жерде файлдын соңу (EOF) бар"
+
+# фиелд кандай болот? snapshot?
+#: src/incremen.c:872 src/incremen.c:912
+msgid "Unexpected field value in snapshot file"
+msgstr "Снэпшот файлда күтүлбөгөн поле(фиелд) бар"
+
+#: src/incremen.c:1007
+msgid "Missing record terminator"
+msgstr "Записьтерди бөлүүчү символ жок"
+
+#: src/incremen.c:1058 src/incremen.c:1061
+msgid "Bad incremental file format"
+msgstr "Файлдын форматы туура эмес"
+
+#: src/incremen.c:1080
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Форматтын бул версиясы иштетиле албайт: %<PRIuMAX>"
+
+#: src/incremen.c:1233
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Кошулуучу папка бузук: '%c' күтүлгөн бирок %#3o келди"
+
+#: src/incremen.c:1243
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Кошулуучу папка бузук: 'X' копиялары бар"
+
+#: src/incremen.c:1256
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Кошулуучу папка бузук: 'R' менен берилген ат бош"
+
+#: src/incremen.c:1269
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Кошулуучу папка бузук: 'T'дан мурун 'R' жок"
+
+#: src/incremen.c:1275
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Кошулуучу папка бузук: 'T' менен берилген ат бош"
+
+#: src/incremen.c:1295
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Кошулуучу папка бузук: '%c' күтүлгөн бирок датанын соңу келди"
+
+#: src/incremen.c:1301
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Кошулуучу папка бузук: 'X' эч колдонулган жок"
+
+#: src/incremen.c:1344
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "%s шаблонун колдонуп убактылуу жаңы папка ачылган жок"
+
+#: src/incremen.c:1392
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Папка өчүрүлгөн жок: stat иштебей койду"
+
+#: src/incremen.c:1405
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: бул папка башка аспапта жайгашкан: өчүрүлбөйт"
+
+#: src/incremen.c:1413
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s өчүрүлүп жатат\n"
+
+#: src/incremen.c:1418
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Өчүрүлбөй жатат"
+
+#: src/list.c:113
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Муну аттады"
+
+#: src/list.c:131
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "блок %s: ** нөлдөр болгон блок **\n"
+
+#: src/list.c:144
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "%s болгон жерде нөлдүк блок бар"
+
+#: src/list.c:155
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "блок %s: ** Файлдын соңу **\n"
+
+#: src/list.c:178 src/list.c:1054 src/list.c:1282
+#, c-format
+msgid "block %s: "
+msgstr "блок %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:662
+#, 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:717
+#, 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:728
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Архивдин сегиздик системадагы мааниси болгон %.*s %s диапазонунун тышында"
+
+#: src/list.c:749
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Архивде эски түрдөгү base-64 башкы-маалымат бар"
+
+#: src/list.c:763
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Архивдеги base-64 түрүндөгү %s сөзү %s диапазонунун тышында"
+
+#: src/list.c:794
+#, 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:823
+#, 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:845
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Архивдин %s мааниси %s түрүнүн %s..%s диапазонунда эмес"
+
+#: src/list.c:1217
+#, c-format
+msgid " link to %s\n"
+msgstr " %s жака шилтеме\n"
+
+#: src/list.c:1225
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " белгисиз файл түрү %s\n"
+
+#: src/list.c:1243
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Узун шилтеме--\n"
+
+#: src/list.c:1247
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Узун ат--\n"
+
+#: src/list.c:1251
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Томдун башкы-маалыматы--\n"
+
+#: src/list.c:1259
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--%s-байттан баштап уланды--\n"
+
+#: src/list.c:1287
+msgid "Creating directory:"
+msgstr "Жаңы папка ачылыбатат:"
+
+#: src/misc.c:456
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s'тин атын %s деп алмаштырды\n"
+
+#: src/misc.c:465 src/misc.c:483
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Аты %s деп алмаштыралбай калды"
+
+#: src/misc.c:488
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "%s'тин атын кайра %s деп алмаштырды\n"
+
+#: src/misc.c:615
+msgid "Cannot save working directory"
+msgstr "Учурдагы папка сакталбайтат"
+
+#: src/misc.c:621
+msgid "Cannot change working directory"
+msgstr "Учурдагы папка алмаштырылбайтат"
+
+# орусчада дочерный процесс, бир процесс өз ичинен жаңы бир
+# процесс жаратканда ошол чайлд процесс болот. Биз эмне дейбиз?
+# Мен туулган процесс дейм.
+#: src/misc.c:711
+msgid "child process"
+msgstr "туулган процесс"
+
+#: src/misc.c:720
+msgid "interprocess channel"
+msgstr "процесс-аралык канал"
+
+#. TRANSLATORS: The following three msgids form a single sentence.
+#.
+#: src/names.c:599
+msgid "Pattern matching characters used in file names. Please,"
+msgstr "Файлдын аттарында уйкаштарды издөө үчүн колдонулган тамгалар бар."
+
+#: src/names.c:601
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+msgstr "Уйкаштарды издөө үчүн --wildcards опциясын колдонуңуз, же --no-wildcards"
+
+#: src/names.c:603
+msgid "suppress this warning."
+msgstr "опциясы менен бул эскертүүнү көрсөтпөс кыл."
+
+#: src/names.c:618 src/names.c:636
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Архивде табылган жок"
+
+#: src/names.c:621
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Керектүү нерселер архивде табылган жок"
+
+#: src/tar.c:80
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "`-%s' жана `-%s' опцияларына стандарт кирүү(input) керек"
+
+#: src/tar.c:157
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Архивдин форматы жарабайт"
+
+#: src/tar.c:181
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Бул форматтагы архив үчүн жарабаган GNU өзгөчөлүктөрү суралууда"
+
+#: src/tar.c:242
+#, 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:329
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"Мисал үчүн:\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:338
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Резерв копиясы, эгер --suffix же SIMPLE_BACKUP_SUFFIX менен алмаштырылбаган болсо, `~' суффикси менен сакталат.\n"
+"Версияларды контролдоо --backup же VERSION_CONTROL менен баштатылат, мындай варианттар бар:\n"
+"\n"
+" none, off резерв копиялар эч качан сакталбайт\n"
+" t, numbered резерв копиялар номердүү болуп сакталат\n"
+" nil, existing номердүү резерв копиялар бар болсо номердүү, болбосо жөнөкөй вариант\n"
+" never, simple ар дайым жөнөкөй резерв копиялар сакталат\n"
+
+#: src/tar.c:364
+msgid "Main operation mode:"
+msgstr "Негизги иштөө абалы:"
+
+#: src/tar.c:367
+msgid "list the contents of an archive"
+msgstr "архивдин ичиндеги файлдарды тизмелейт"
+
+#: src/tar.c:369
+msgid "extract files from an archive"
+msgstr "архивден файлдарды чыгарат"
+
+#: src/tar.c:372
+msgid "create a new archive"
+msgstr "жаңы архив жаратат"
+
+#: src/tar.c:374
+msgid "find differences between archive and file system"
+msgstr "архив менен файл система айырмаларын табат"
+
+#: src/tar.c:377
+msgid "append files to the end of an archive"
+msgstr "файлдарды архивдин аягына кошот"
+
+#: src/tar.c:379
+msgid "only append files newer than copy in archive"
+msgstr "архивдин ичиндегилерден жаңы болгон файлдарды гана кошот"
+
+#: src/tar.c:381
+msgid "append tar files to an archive"
+msgstr "tar файлын архивге кошот"
+
+#: src/tar.c:384
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "архивден өчүрөт (магниттик ленталарда жарабайт!)"
+
+#: src/tar.c:386
+msgid "test the archive volume label and exit"
+msgstr "архивдик томдун атын текшерет анан бүтүрөт"
+
+#: src/tar.c:391
+msgid "Operation modifiers:"
+msgstr "Иштөөнүн модификаторлору:"
+
+#: src/tar.c:394
+msgid "handle sparse files efficiently"
+msgstr "кеңири жайлашкан файлдарды эфектүү түрдө колго ал"
+
+# major, minor
+#: src/tar.c:395
+msgid "MAJOR[.MINOR]"
+msgstr "БАШКЫ[.КИЙИНКИ]"
+
+#: src/tar.c:396
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "кеңири жайлаштыруу форматынын версиясын тандайт (--sparce опциясы кошулган болот)"
+
+#: src/tar.c:398
+msgid "handle old GNU-format incremental backup"
+msgstr "эски GNU форматындагы резервдөө методун колго ал"
+
+#: src/tar.c:399 src/tar.c:530 src/tar.c:594 src/tar.c:598 src/tar.c:608
+#: src/tar.c:618 src/tar.c:621 src/tar.c:623 src/tar.c:698 tests/genfile.c:132
+#: tests/genfile.c:180 tests/genfile.c:184 tests/genfile.c:187
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: src/tar.c:400
+msgid "handle new GNU-format incremental backup"
+msgstr "жаңы GNU форматындагы резервдөө методун колго ал"
+
+#: src/tar.c:402
+msgid "do not exit with nonzero on unreadable files"
+msgstr "окулбаган файлдар келгенде нөл болбогон статус менен ишти бүтүрбө"
+
+#: src/tar.c:403 src/tar.c:525 src/tar.c:540 src/tar.c:651 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "N"
+
+#: src/tar.c:404
+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 "архивдеги ар бир файлдын N-чи копиясын гана ишке алат. Бул опция --delete, --diff, --extract же --list опциялардын бирөөсү менен кошо жазылганда жана файлдардын аттары команда строкасында же -T опциясы менен берилгенде гана жарактуу болот. N-дин мааниси алдынала 1ге барабар."
+
+#: src/tar.c:410
+msgid "archive is seekable"
+msgstr "Архивдин ичиндегилерди издесе болот"
+
+#: src/tar.c:415
+msgid "Overwrite control:"
+msgstr "үстүнө көчүрүү контролу:"
+
+#: src/tar.c:418
+msgid "attempt to verify the archive after writing it"
+msgstr "архивди сактагандан кийин текшерүүгө аракет кылат"
+
+#: src/tar.c:420
+msgid "remove files after adding them to the archive"
+msgstr "файлдарды архивге кошулгандан кийин өчүрөт"
+
+#: src/tar.c:422
+msgid "don't replace existing files when extracting"
+msgstr "файлдарды чыгаруу учурунда мурун бар болгон файлдардын ордуна көчүрбө"
+
+#: src/tar.c:424
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "мурун бар болгон файл архивдеги копиясындан жаңы болсо аны алмаштырба"
+
+#: src/tar.c:426
+msgid "overwrite existing files when extracting"
+msgstr "чыгаруу учурунда мурун бар болгон файлдардын ордуна көчүрөт"
+
+#: src/tar.c:428
+msgid "remove each file prior to extracting over it"
+msgstr "бар болгон файлдын ордуна көчүрүүдөн мурун ал файлды өчүрөт"
+
+#: src/tar.c:430
+msgid "empty hierarchies prior to extracting directory"
+msgstr "папканы чыгарардан мурун баардык иерархияларды өчүрөт"
+
+#: src/tar.c:432
+msgid "preserve metadata of existing directories"
+msgstr "мурун бар болгон папкалардын мета-касиеттерин корго"
+
+#: src/tar.c:434
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "чыгаруу учурунда бар болгон папкалардын мета-даталардын үстүнө жазылат (алдынала тандалат)"
+
+#: src/tar.c:440
+msgid "Select output stream:"
+msgstr "Чыгаруу() жолун танда:"
+
+#: src/tar.c:443
+msgid "extract files to standard output"
+msgstr "файлдарды стандарт чыгарууга (output) жөнөт"
+
+#: src/tar.c:444 src/tar.c:503 src/tar.c:505 tests/genfile.c:163
+#: tests/genfile.c:190
+msgid "COMMAND"
+msgstr "КОМАНДА"
+
+#: src/tar.c:445
+msgid "pipe extracted files to another program"
+msgstr "архивден чыккан файлдарды канал(pipe) жолу менен башка программага жөнөтөт"
+
+#: src/tar.c:447
+msgid "ignore exit codes of children"
+msgstr "туулган процесстердин бүтүрүү кодторуна караба"
+
+#: src/tar.c:449
+msgid "treat non-zero exit codes of children as error"
+msgstr "туулган процесстердин нөл болбогон бүтүрүү кодторун ката деп ишке ал"
+
+#: src/tar.c:454
+msgid "Handling of file attributes:"
+msgstr "Файлдын өзгөчөлүктөрүн колго алууда:"
+
+#: src/tar.c:457
+msgid "force NAME as owner for added files"
+msgstr "кошулган файлдардын ээсин АТЫ деп кой"
+
+#: src/tar.c:459
+msgid "force NAME as group for added files"
+msgstr "кошулган файлдардын группасын АТЫ деп кой"
+
+#: src/tar.c:460 src/tar.c:637
+msgid "DATE-OR-FILE"
+msgstr "ДАТА-ЖЕ-ФАЙЛ"
+
+#: src/tar.c:461
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "кошулган файлдардын алмашуу убактысын ДАТА-ЖЕ-ФАЙЛ дан ал"
+
+#: src/tar.c:462
+msgid "CHANGES"
+msgstr "УКУК"
+
+#: src/tar.c:463
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "кошулган файлдардын укук абалын УКУК деп кой"
+
+#: src/tar.c:465
+msgid "METHOD"
+msgstr "МЕТОД"
+
+#: src/tar.c:466
+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:470
+msgid "don't extract file modified time"
+msgstr "файлдын алмаштыруу убактын чыгарбайт"
+
+#: src/tar.c:472
+msgid "try extracting files with the same ownership"
+msgstr "ээсин ошол бойдон калтырып файлдарды чыгарууга аракет кылат"
+
+#: src/tar.c:474
+msgid "extract files as yourself"
+msgstr "файлдарды өзүңдүкү катары чыгарат"
+
+#: src/tar.c:476
+msgid "always use numbers for user/group names"
+msgstr "ээси/группа аттарын ардайым номерлер менен көрсөтөт"
+
+#: src/tar.c:478
+msgid "extract information about file permissions (default for superuser)"
+msgstr "файлдын уруксат маалыматын да чыгар (суперколдонуучуга алдынала тандалат)"
+
+#: src/tar.c:482
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "архивден уруксат маалыматын чыгарыбатканда колдонуучунун umask'ын колдон (жөн колдонуучуларга алдынала тандлат)"
+
+#: src/tar.c:484
+msgid "sort names to extract to match archive"
+msgstr "чыгатурган файлдарды архивдегидей кылып сортто"
+
+#: src/tar.c:487
+msgid "same as both -p and -s"
+msgstr "-p жана -s менен бирдей"
+
+#: src/tar.c:489
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "чыгарылган папкалардын колдонуу убакыттарын жана уруксаттарын чыгаруу иши бүткөндөн кийин коёт"
+
+#: src/tar.c:492
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "--delay-directory-restore опциясынын эффектин токтотот"
+
+#: src/tar.c:497
+msgid "Device selection and switching:"
+msgstr "Аспапты тандоо жана ага өтүү:"
+
+#: src/tar.c:499
+msgid "ARCHIVE"
+msgstr "АРХИВ"
+
+#: src/tar.c:500
+msgid "use archive file or device ARCHIVE"
+msgstr "АРХИВ деген архивдик файлды же аспапты колдонот"
+
+#: src/tar.c:502
+msgid "archive file is local even if it has a colon"
+msgstr "архивдик файлда эки точка болушуна карабастан ал локалдуу"
+
+#: src/tar.c:504
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "rmt'нин ордуна КОМАНДА колдонулат"
+
+#: src/tar.c:506
+msgid "use remote COMMAND instead of rsh"
+msgstr "rsh'тын ордуна КОМАНДА колдонулат"
+
+#: src/tar.c:510
+msgid "specify drive and density"
+msgstr "драйв жана анын тыгыздыгын белгиле"
+
+#: src/tar.c:524
+msgid "create/list/extract multi-volume archive"
+msgstr "көп томдуу архивди жарат/тизмеле/чыгар"
+
+#: src/tar.c:526
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "N x 1024 байт жазгандан кийин лентаны алмаштыр"
+
+#: src/tar.c:528
+msgid "run script at end of each tape (implies -M)"
+msgstr "ар лентанын аягында скриптти иштет (-M опциясы колдонулат)"
+
+#: src/tar.c:531
+msgid "use/update the volume number in FILE"
+msgstr "ФАЙЛ файлынын ичиндеги том номерин колдон/жаңырт"
+
+#: src/tar.c:536
+msgid "Device blocking:"
+msgstr "Аспаптын блоктолушу:"
+
+#: src/tar.c:538
+msgid "BLOCKS"
+msgstr "БЛОК"
+
+#: src/tar.c:539
+msgid "BLOCKS x 512 bytes per record"
+msgstr "ар маалыматка БЛОК x 512 байт түшөт"
+
+#: src/tar.c:541
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "Ар маалыматка N байт түшөт, 512 көбөйтүндүсү"
+
+#: src/tar.c:543
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "архивдеги нөлдүү блокторду өтүп кетет (EOF жөнүндө)"
+
+#: src/tar.c:545
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "окубатканда кайрадан блокторго бөлүп чык (4.2BSD каналдары үчүн)"
+
+#: src/tar.c:550
+msgid "Archive format selection:"
+msgstr "Архивдин форматын тандоо:"
+
+#: src/tar.c:552 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "ФОРМАТ"
+
+#: src/tar.c:553
+msgid "create archive of the given format"
+msgstr "тандалган форматта архив жаратат"
+
+#: src/tar.c:555
+msgid "FORMAT is one of the following:"
+msgstr "ФОРМАТ булардан бирөө болот:"
+
+#: src/tar.c:556
+msgid "old V7 tar format"
+msgstr "эски V7 tar форматы"
+
+#: src/tar.c:559
+msgid "GNU format as per tar <= 1.12"
+msgstr "tar <= 1.12 версиясында болгондой GNU форматы"
+
+#: src/tar.c:561
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x форматы"
+
+#: src/tar.c:563
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) форматы"
+
+#: src/tar.c:565
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) форматы"
+
+# pax деген gid,atime сияктуу нерселер
+#: src/tar.c:566
+msgid "same as pax"
+msgstr "pax менен бирдей"
+
+#: src/tar.c:569
+msgid "same as --format=v7"
+msgstr "--format=v7 менен бирдей"
+
+#: src/tar.c:572
+msgid "same as --format=posix"
+msgstr "--format=posix менен бирдей"
+
+# keyword эмне болот?
+#: src/tar.c:573
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "ачкыч-сөз[[:]=мааниси][,ачкыч-сөз[[:]=мааниси]]..."
+
+#: src/tar.c:574
+msgid "control pax keywords"
+msgstr "контролдоо үчүн pax ачкыч сөздөрү"
+
+#: src/tar.c:575
+msgid "TEXT"
+msgstr "ТЕКСТ"
+
+#: src/tar.c:576
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "том аты ТЕКСТ болгон архив жарат; тизмелөө/чыгаруу учурунда, ТЕКСТ дегенди том атынын глоб шаблону катары колдон"
+
+#: src/tar.c:578
+msgid "filter the archive through bzip2"
+msgstr "архивди bzip2 менен ишке ал"
+
+#: src/tar.c:580
+msgid "filter the archive through gzip"
+msgstr "архивди gzip менен ишке ал"
+
+#: src/tar.c:584
+msgid "filter the archive through compress"
+msgstr "архивди compress менен ишке ал"
+
+#: src/tar.c:586
+msgid "PROG"
+msgstr "ПРОГ"
+
+#: src/tar.c:587
+msgid "filter through PROG (must accept -d)"
+msgstr "ПРОГ менен ишке ал (-d опциясы болушу керек)"
+
+#: src/tar.c:592
+msgid "Local file selection:"
+msgstr "Локалдуу файлдарды тандоо:"
+
+#: src/tar.c:595
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "ФАЙЛды архивге кош (файлдын аты тире менен баштаган учурда пайдалуу)"
+
+#: src/tar.c:596
+msgid "DIR"
+msgstr "ПАПКА"
+
+#: src/tar.c:597
+msgid "change to directory DIR"
+msgstr "ПАПКА папкасына өт"
+
+#: src/tar.c:599
+msgid "get names to extract or create from FILE"
+msgstr "чыгарылатурган же жаңы ачылатурган файлдарды АТЫ деген файлдан кара"
+
+#: src/tar.c:601
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T опциясы нөл менен бүткөн аттарды окуйт, -C опциясы өчүрүлөт"
+
+#: src/tar.c:603
+msgid "unquote filenames read with -T (default)"
+msgstr "-T менен алынган файлдардын аттарындагы ковычкалар өчүрүлөт (алдынала тандалат)"
+
+#: src/tar.c:605
+msgid "do not unquote filenames read with -T"
+msgstr "-T менен алынган файлдардын аттарындагы ковычкалар калаберет"
+
+#: src/tar.c:606 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "ШАБЛОН"
+
+#: src/tar.c:607
+msgid "exclude files, given as a PATTERN"
+msgstr "ШАБЛОН менен уйкаш файлдар ишке алынбайт"
+
+#: src/tar.c:609
+msgid "exclude patterns listed in FILE"
+msgstr "ФАЙЛда тизмеленген шаблондор менен уйкаш файлдар ишке алынбайт"
+
+#: src/tar.c:611
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "CACHEDIR.TAG файлы болгон папкалардын астындагылары тэг файлдан тышкарысы кошулбайт"
+
+#: src/tar.c:614
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG файлы болгон папкалардын астындагыларынын баары кошулбайт"
+
+#: src/tar.c:617
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG файлы болгон папкалар кошулбайт"
+
+#: src/tar.c:619
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "ФАЙЛ файлы болгон папкалардын астындагылары ФАЙЛ файлындан тышкарысы кошулбайт"
+
+#: src/tar.c:622
+msgid "exclude everything under directories containing FILE"
+msgstr "ФАЙЛ файлы болгон папкалардын астындагыларынын баары кошулбайт"
+
+#: src/tar.c:624
+msgid "exclude directories containing FILE"
+msgstr "ФАЙЛ файлы болгон папкалар кошулбайт"
+
+#: src/tar.c:626
+msgid "avoid descending automatically in directories"
+msgstr "папкалардын тереңине кирип кетүүнү токтот"
+
+#: src/tar.c:628
+msgid "stay in local file system when creating archive"
+msgstr "архивди жасабатканда локалдуу файл системасында кал"
+
+#: src/tar.c:630
+msgid "recurse into directories (default)"
+msgstr "папкалардын тереңине кирет (алдынала тандалган)"
+
+#: src/tar.c:632
+msgid "don't strip leading `/'s from file names"
+msgstr "файл аттарынын башындагы '/'терди өчүрбө"
+
+#: src/tar.c:634
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "символикалык шилтемелерге барат; алар көрсөткөн файлдарды архивге кошот"
+
+#: src/tar.c:635
+msgid "MEMBER-NAME"
+msgstr "МҮЧӨНҮН-АТЫ"
+
+#: src/tar.c:636
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "архивдеги МҮЧӨНҮН-АТЫ мүчөсүнөн башта"
+
+#: src/tar.c:638
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "ДАТА-ЖЕ-ФАЙЛ'дан жаңы болгон файлдарды гана сакта"
+
+#: src/tar.c:640
+msgid "DATE"
+msgstr "ДАТА"
+
+#: src/tar.c:641
+msgid "compare date and time when data changed only"
+msgstr "датасы алмашканда гана дата жана убактысын салыштыр"
+
+#: src/tar.c:642
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:643
+msgid "backup before removal, choose version CONTROL"
+msgstr "өчүрөрдөн мурун копиясын сактап кал, CONTROL версиясын танда"
+
+#: src/tar.c:644 src/tar.c:715 src/tar.c:717 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRING"
+
+#: src/tar.c:645
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "өчүрөрдөн мурун копиясын сактап калат, жалпы колдонулган суфикс кошулат (бул суфикс SIMPLE_BACKUP_SUFFIX жолу менен алмаштырылбаган болсо '~' болот)"
+
+#: src/tar.c:650
+msgid "File name transformations:"
+msgstr "Файлдын атынын алмашуулары:"
+
+#: src/tar.c:652
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "чыгаруу учурунда файл аттарынын башындагы N компонентти алып салат"
+
+# выражение кыргызча кандай? СҮЙЛӨМ башка жерде да бар
+#: src/tar.c:654
+msgid "EXPRESSION"
+msgstr "СҮЙЛӨМ"
+
+#: src/tar.c:655
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "файлдардын аттарын алмаштыруу үчүн sed replace EXPRESSION колдонгула"
+
+# inclusion, exclusion - Kyrgyz equiv?
+#: src/tar.c:660
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Файлдын атына уйкаштыруу опциялары (бардык шаблондорго тиешелүү):"
+
+#: src/tar.c:663
+msgid "ignore case"
+msgstr "тамгалардын чоң-кичинесине каралбайт"
+
+#: src/tar.c:665
+msgid "patterns match file name start"
+msgstr "шаблондор файлдын атынын башталышы менен уйкаштырылат"
+
+#: src/tar.c:667
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "шаблондор `/' символунан кийин келген ар жерде уйкашына каралат (алдынала тандалган)"
+
+#: src/tar.c:669
+msgid "case sensitive matching (default)"
+msgstr "уйкаштырууда тамгалардын чоң-кичинесине каралат (алдынала тандалган)"
+
+#: src/tar.c:671
+msgid "use wildcards (default for exclusion)"
+msgstr "шаблондор колдонулат (иштен алынбаган файлдарга алдынала тандалат)"
+
+#: src/tar.c:673
+msgid "verbatim string matching"
+msgstr "кандай жазылса ошондой колдонулат"
+
+#: src/tar.c:675
+msgid "wildcards do not match `/'"
+msgstr "шаблондор `/' символун издебейт"
+
+#: src/tar.c:677
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "шаблондор `/' символун издейт (алдынала тандалган)"
+
+#: src/tar.c:682
+msgid "Informative output:"
+msgstr "Маалыматтандыруу:"
+
+#: src/tar.c:685
+msgid "verbosely list files processed"
+msgstr "ишке алынган файлдарды кеңири маалыматы менен тизмеле"
+
+#: src/tar.c:686
+msgid "[.]NUMBER"
+msgstr "[.]N"
+
+# Ушу 'record' сөзүнө жакшы котормо табалбай койдум
+# 'маалымат' деп жазыбаттым эле, бул жерде келишпей калаткен
+#: src/tar.c:687
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "ар N записьтен кийин маалымат берип турат (алдынала 10 болот)"
+
+#: src/tar.c:690
+msgid "print a message if not all links are dumped"
+msgstr "баардык шилтемелер кошулбай калса билдирүү жазып чыгар"
+
+#: src/tar.c:691
+msgid "SIGNAL"
+msgstr "СИГНАЛ"
+
+#: src/tar.c:692
+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:697
+msgid "print file modification dates in UTC"
+msgstr "файлды алмаштыруу датасын UTC түрүндө көрсөт"
+
+#: src/tar.c:699
+msgid "send verbose output to FILE"
+msgstr "чыккан кеңири маалыматты ФАЙЛ файлына жибер"
+
+#: src/tar.c:701
+msgid "show block number within archive with each message"
+msgstr "ар билдирүүдө архивдин ичиндеги блок номерин көрсөт"
+
+#: src/tar.c:703
+msgid "ask for confirmation for every action"
+msgstr "ар ишти аткарууга макулдук сурап тур"
+
+#: src/tar.c:706
+msgid "show tar defaults"
+msgstr "tar'да алдынала коюлган опцияларды көрсөтөт"
+
+#: src/tar.c:708
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "тизмелөө же чыгаруу учурунда издөө критериясына жатпаган папкаларды да тизмелейт"
+
+#: src/tar.c:710
+msgid "show file or archive names after transformation"
+msgstr "алмаштыруудан кийин файлдын же архивдин аттарын көрсөтөт"
+
+#: src/tar.c:713
+msgid "STYLE"
+msgstr "СТИЛЬ"
+
+#: src/tar.c:714
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "аттарга ковычка кошуу стилин тандаңыз; жарактуу СТИЛЬ түрдөрү төмөндө көрсөтүлөт."
+
+#: src/tar.c:716
+msgid "additionally quote characters from STRING"
+msgstr "STRING ичинде болгон тамгаларга кошумча ковычка кошот"
+
+#: src/tar.c:718
+msgid "disable quoting for characters from STRING"
+msgstr "STRING ичинде болгон тамгаларга ковычка кошпойт"
+
+#: src/tar.c:723
+msgid "Compatibility options:"
+msgstr "Келишүү опциялары:"
+
+#: src/tar.c:726
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "жаңы архив жасабатканда --old-archive менен бирдей; чыгарыбатканда --no-same-owner менен бирдей"
+
+#: src/tar.c:731
+msgid "Other options:"
+msgstr "Башка опциялар:"
+
+#: src/tar.c:734
+msgid "disable use of some potentially harmful options"
+msgstr "зыяндуу көрүнгөн опцияларды колдонууга тыюуу салат"
+
+#: src/tar.c:838
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "`-Acdtrux' опцияларынан бирөөнү гана колдоно аласыңар"
+
+#: src/tar.c:848
+msgid "Conflicting compression options"
+msgstr "Бирбирине келишпеген кысыштыруу опциялары берилди"
+
+#: src/tar.c:904
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Сигналдын аты белгисиз: %s"
+
+#: src/tar.c:928
+msgid "Date sample file not found"
+msgstr "Датанын шаблон файлы табылган жок"
+
+#: src/tar.c:936
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Белгисиз %1$s дата форматынын ордуна %2$s коюлат"
+
+#: src/tar.c:961
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "%s опциясы: `%s' датасын %s деп алды"
+
+#: src/tar.c:1035
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: файл тизмеси окулган"
+
+#: src/tar.c:1098
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: алынган файлдын атында бош тамгалар бар"
+
+#: src/tar.c:1163
+msgid "Valid arguments for --quoting-style options are:"
+msgstr "--quoting-style опциясы үчүн мындай аргументтер бар:"
+
+#: src/tar.c:1166
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Бул* tar алдынала мындай иштетилет:\n"
+
+#: src/tar.c:1199
+msgid "Invalid blocking factor"
+msgstr "Блок көлөмү жараксыз"
+
+#: src/tar.c:1271
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Эскертүү: -I опциясы иштетилбейт; балким -j же -T дегиңиз келди эле?"
+
+#: src/tar.c:1304
+msgid "Invalid tape length"
+msgstr "Лентанын узундугу жараксыз"
+
+#: src/tar.c:1336
+msgid "More than one threshold date"
+msgstr "Бирден көп ченемдөөчү дата бар"
+
+#: src/tar.c:1391 src/tar.c:1394
+msgid "Invalid sparse version value"
+msgstr "кеңири жайлаштыруу форматынын версиясы жарактуу эмес"
+
+#: src/tar.c:1479
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "Бул платформада --atime-preserve='system' опциясы иштебейт"
+
+#: src/tar.c:1496
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint опциясына жазылган аргумент сан эмес"
+
+#: src/tar.c:1589
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Жараксыз группа"
+
+#: src/tar.c:1596
+msgid "Invalid mode given on option"
+msgstr "Опцияда жарабаган укук абалы берилди"
+
+#: src/tar.c:1649
+msgid "Invalid number"
+msgstr "Жарабаган номер"
+
+#: src/tar.c:1671
+msgid "Invalid owner"
+msgstr "Ээси жарабайт"
+
+#: src/tar.c:1705
+msgid "Invalid record size"
+msgstr "Маалымат көлөмү жарабайт"
+
+#: src/tar.c:1708
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Маалыматтын көлөмү %d көбөйтүндүсү болушу керек."
+
+#: src/tar.c:1745
+msgid "Invalid number of elements"
+msgstr "Элементтердин саны жарабайт"
+
+#: src/tar.c:1765
+msgid "Only one --to-command option allowed"
+msgstr "--to-command опциясы бир эле жолу жазылыш керек"
+
+#: src/tar.c:1841
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Тыгыздык аргументи туура эмес: %s"
+
+#: src/tar.c:1867
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Түшүнүксүз тыгыздык: `%c'"
+
+#: src/tar.c:1884
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "*Бул* tar `-[0-7][lmh]' опцияларын иштетпейт"
+
+#: src/tar.c:1919
+msgid "[FILE]..."
+msgstr "[ФАЙЛ]..."
+
+#: src/tar.c:2022
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Эски болгон `%c' опциясына параметр керек."
+
+#: src/tar.c:2104
+msgid "--occurrence is meaningless without a file list"
+msgstr "Файл тизмеси болбосо --occurrence дегендин мааниси болбойт"
+
+#: src/tar.c:2110
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "Колдонулган иштетүү абалда --occurrence колдонулбайт"
+
+#: src/tar.c:2140
+msgid "Multiple archive files require `-M' option"
+msgstr "Бир нече архив файлы болсо `-M' опциясы колдонулушу керек"
+
+#: src/tar.c:2145
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental менен --newer чогу колдонулбайт"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "Cannot verify multi-volume archives"
+msgstr "Көп-томдуу архивдерди текшералбай калды"
+
+#: src/tar.c:2177
+msgid "Cannot verify compressed archives"
+msgstr "Кысыштырылган архивдерди текшералбай калды"
+
+#: src/tar.c:2183
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Көп-томдуу кысыштырылган архивдерди колдоналбай калды"
+
+#: src/tar.c:2189
+msgid "Cannot concatenate compressed archives"
+msgstr "Кысыштырылган архивдер кошулалбайт"
+
+#: src/tar.c:2201
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option POSIX архивдеринде гана колдонула алат"
+
+#: src/tar.c:2226
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Бош архив жаратуудан уялып баш тартып жатат"
+
+#: src/tar.c:2247
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "`-Aru' опциялары `-f -' менен келишпейт"
+
+#: src/tar.c:2334
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "`-Acdtrux' опцияларынан бирөөнү тандап колдонуңуз"
+
+#: src/tar.c:2385
+#, c-format
+msgid "Error exit delayed from previous errors"
+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 байтка азайды"
+
+#: src/xheader.c:158
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "%s сөзү белигсиз же азырынча киргизилген эмес"
+
+#: src/xheader.c:184
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "%s шаблону колдонулбайт"
+
+#: src/xheader.c:194
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "%s ачкыч сөзү алмаштырылбайт"
+
+#: src/xheader.c:498
+msgid "Malformed extended header: missing length"
+msgstr "Кеңейтилген башкы-маалымат бузук: узундук жок"
+
+#: src/xheader.c:506
+msgid "Extended header length is out of allowed range"
+msgstr "Кеңейтилген башкы-маалыматтын узундугу жарактуу маанилердин тышында"
+
+#: src/xheader.c:513
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Кеңейтилген башкы-маалыматтын узундугу - %*s - диапазондун тышында"
+
+#: src/xheader.c:525
+msgid "Malformed extended header: missing blank after length"
+msgstr "Кеңейтилген башкы-маалымат бузук: узундуктан кийин бош жер (пробел) жок"
+
+#: src/xheader.c:533
+msgid "Malformed extended header: missing equal sign"
+msgstr "Кеңейтилген башкы-маалымат бузук: барабар символу жок"
+
+# newline эмне болот?
+#: src/xheader.c:539
+msgid "Malformed extended header: missing newline"
+msgstr "Кеңейтилген башкы-маалымат бузук: жаңы сап жок"
+
+#: src/xheader.c:576
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Кеңейтилген башкы-маалыматта белгисиз `%s' сөзү каралбайт"
+
+#: src/xheader.c:780
+#, 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:812
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "%s=%s түрүндөгү кеңейтилген башкы-маалымат %s..%s диапазондун тышында"
+
+#: src/xheader.c:943 src/xheader.c:973 src/xheader.c:1287
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Кеңейтилген башкы-маалымат бузук: %s=%s туура эмес"
+
+#: src/xheader.c:1240 src/xheader.c:1265 src/xheader.c:1315
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Кеңейтилген башкы-маалымат бузук: %s=%s ашыкча көп"
+
+#: src/xheader.c:1328
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Кеңейтилген башкы-маалымат бузук: туура эмес %s: күтүлбөгөн жерде бул - %c - бөлүүчү символ бар"
+
+#: src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Кеңейтилген башкы-маалымат бузук: туура эмес %s: так санда маани бар"
+
+#: 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:127
+msgid "File creation options:"
+msgstr "Жаңы файл ачуу опциялары:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "КӨЛӨМ"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Көсөтүлгөн КӨЛӨМдө жаңы файл ач"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Стандарт чыгарууга жазбай, АТЫ деген файлга жаз"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Файлдын аттарын ФАЙЛдан ал"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T опциясы бош/нөл (null) менен бүткөн аттарды окуйт"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Файлды тандалган ШАБЛОН менен толтурат. ШАБЛОН 'default' же 'zeros' болот"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Кеңири жайлашкан файлдын блок көлөмү"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Файлды кеңири жайлаштыр. Кийинки команда строкаларында файлдын картасы бар."
+
+#: tests/genfile.c:144
+#, fuzzy
+msgid "OFFSET"
+msgstr "ОРУН"
+
+# seek the given offset - orunga jyl
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "данный(data) жазаардан мурун айтылган орунга жыл"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Файлдын статистикасынын опциялары:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Алынган ар бир файл үчүн struct stat курамын көрсөтөт. Алдынала тандалган ФОРМАТ мындай: "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Синхрондуу иштетүүнүн опциялары:"
+
+#: tests/genfile.c:164
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr "Жазылган КОМАНДАны иштет. Бул --checkpoint жана --cut, --append, --touch бирөөсү менен колдонулганда пайдалуу"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "N текшерүү жерине жеткенде буларды (төмөндү карагыла) аткар"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Эмики --touch опциясы үчүн дата жазгыла"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Өтүлгөн текшерүү жердерди жана КОМАНДАнын бүтүрүү статусун көрсөтөт"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Синхрондуу аткаруу иштери. Булар --checkpoint опциясы менен берилгенн текшерүү жерине жеткенде аткарылат."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "ФАЙЛды --length опциясы менен берилген көлөмгө кыскартат (берилбеген болсо 0 болот)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "ФАЙЛга КӨЛӨМ байт кошот. КӨЛӨМ --length опциясы менен берилет."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "ФАЙЛдын колдонуу жана алмашуу убакыттарын жаңылайт."
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Бул команданы иштеткиле - КОМАНДА"
+
+#: tests/genfile.c:241
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Жараксыз көлөм: %s"
+
+#: tests/genfile.c:246
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Сан жарактуу маанилердин тышында: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Negative size: %s"
+msgstr "Көлөмү терс сан: %s"
+
+#: tests/genfile.c:262 tests/genfile.c:561
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) аткарылбай калды"
+
+#: tests/genfile.c:356
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "`%s' жанындагы санды окубатканда ката чыкты"
+
+#: tests/genfile.c:362
+#, c-format
+msgid "Unknown date format"
+msgstr "Датанын форматы түшүнүксүз"
+
+#: tests/genfile.c:385
+msgid "[ARGS...]"
+msgstr "[АРГУМЕНТТЕР...]"
+
+#: tests/genfile.c:422 tests/genfile.c:462 tests/genfile.c:515
+#: tests/genfile.c:665 tests/genfile.c:679
+#, c-format
+msgid "cannot open `%s'"
+msgstr "`%s' ачылбай жатат"
+
+#: tests/genfile.c:428
+msgid "cannot seek"
+msgstr "издөө болбой калды"
+
+#: tests/genfile.c:445
+#, c-format
+msgid "file name contains null character"
+msgstr "файлдын атында бош тамга бар"
+
+#: tests/genfile.c:510
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "кеңири(чоң) файлдарды стандарт чыгарууга жибералбайт, --file опциясын колдонуңуз"
+
+#: tests/genfile.c:588
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "туура эмес маска (`%s' жанында)"
+
+# фиелд деген кандай болот?
+#: tests/genfile.c:594 tests/genfile.c:627
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Белгисиз поле `%s'"
+
+#: tests/genfile.c:654
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "`%s'ке убакыт аталган жок"
+
+#: tests/genfile.c:808
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Команда толук аткарылды\n"
+
+#: tests/genfile.c:810
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Команда %d статусу менен аткарылбай калды\n"
+
+#: tests/genfile.c:814
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Команда %d сигналы менен жабылды\n"
+
+#: tests/genfile.c:816
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Команда %d сигналы менен токтотулду\n"
+
+#: tests/genfile.c:819
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Команда core dump менен бүттү\n"
+
+#: tests/genfile.c:822
+#, c-format
+msgid "Command terminated\n"
+msgstr "Команда жабылды\n"
+
+#: tests/genfile.c:854
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat опциясы менен файл аттары жазылыш керек"
+
+#: tests/genfile.c:867
+#, c-format
+msgid "too many arguments"
+msgstr "аргументтердин саны көп"
diff --git a/po/ms.po b/po/ms.po
new file mode 100644
index 00000000..2a52c688
--- /dev/null
+++ b/po/ms.po
@@ -0,0 +1,1271 @@
+# tar : Perisian membina arkib fail
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Hasbullah Bin Pit <sebol@ikhlas.com>, 2002.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.13.25\n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "hujah tidak sah %s bagi %s"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "hujah kabur %s bagi %s"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Hujah sah adalah:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Ralat sistem tidak diketahui"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opsyen `%s' adalah kabur\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opsyen `--%s' tidak mengizinkan hujah\n"
+
+#: lib/getopt.c:723
+#, 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:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: opsyen `%s' memerlukan hujah\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opsyen tidak dikenali `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opsyen tidak dikenali '%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opsyen salah -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opsyen tidak sah -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opsyen memerlukan hujah -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opsyen `-W %s' adalah kabur\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opsyen `-W %s' tidak mengizinkan hujah\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "saiz blok"
+
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "`"
+
+# ui/galeon.glade.h:3
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "'"
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "memori keletihan"
+
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Jumlah byte ditulis: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(paip)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Tak dapat tutup"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Tak dapat dup"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Tak dapat mengguna arkib dimampat atau jauh"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (anak)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (cucu)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Nilai tidak sah bagi record_size"
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Tiada nama arkib diberi"
+
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Tak dapat menentusah arkib multi-volume"
+
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Tak dapat memperuntukkan memori bagi faktor pemblokan %d"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Tak dapat menggunakan arkib multi-volume termampat"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Tak dapat menentusahkan arkib termampat"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Tak dapat mengemaskini arkib termampat"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Tak dapat menentusahkan arkib stdin/stdout"
+
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arkib tidak dilabelkan supaya memadan %s"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Volum %s tidak sepadan %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Menulis titiksemak %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "Pada permulaan pita, keluar sekarang"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Terlalu banyak ralat, keluar"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Membaca titiksemak %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "Membaca %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "AMARAN: Tiada pengepala volum"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s tidak bersambung pada volum ini"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s adalah salah saiz (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Volum ini tidak dalam turutan"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Blok tidak dijajar (%lu byte) pada arkib"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Saiz rekod = %lu blok"
+
+#: src/buffer.c:1308
+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:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "Anak mati dengan isyarat %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "Anak mengembalikan status %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: mengandungi nombor volum yg tidak sah"
+
+#: src/buffer.c:1440
+#, fuzzy
+msgid "Volume number overflow"
+msgstr "Nombor volum melimpah"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "Arahan '%s' gagal"
+
+#: src/buffer.c:1468
+#, 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:1474
+msgid "EOF where user reply was expected"
+msgstr "EOF dimana maklumbalas pengguna dijangka"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "AMARAN: Arkib tidak lengkap"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nama] Beri nama fail baru bagi volum berikutnya\n"
+" q Batal tar\n"
+" ! Spawn subshell\n"
+" ? Cetak senarai ini\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Tiada volum baru; keluar.\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "Hanya boleh membaca %lu drpd %lu byte"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "Kandungan berlainan"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339
+#: src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718
+#: src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367
+#: src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "EOF tanpa diduga pada arkib"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Tentusah"
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Jenis fail tak dikenali '%c', berlainan dengan fail normal"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "Jenis fail berbeza"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "Mod berbeza"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Uid berbeza"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "Gid berbeza"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "Masa mod berbeza"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "Saiz berbeza"
+
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "Tidak dipautkan ke %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "Symlink berbeza"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "Nombor beranti berbeza"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "GAGAL TENTUSAH: %d pengepala tak sah dikesan"
+
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Menjana pengepala oktal negatif"
+
+#: src/create.c:200
+#, 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:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "nilai %s diluar julat %s %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Nama ahli mengandungi '..'"
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Membuang awalan `%.*s' drpd nama ahli"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: fail tidak berubah; tidak dilonggokkan"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: fail adalah arkib; tidak dilonggokkan"
+
+#: src/create.c:1098
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: fail adalah pada sistemfail lain; tidak dilonggokkan"
+
+#: src/create.c:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fail dibuang sebelum kami membacanya"
+
+#: src/create.c:1399
+#, fuzzy, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: Fail mengucup sebanyak %s byte; pad dengan sifar"
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: fail berubah bila kami membacanya"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: soket diabaikan"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: pintu diabaikan"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Jenis fail tak dikenali; fail diabaikan"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Ia nampaknya bukan seperti arkib tar"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Melangkah ke pengepala berikut"
+
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Memadam bukan-pengepala drpd arkib"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: setem masa %s adalah %lu pada masa akan datang"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Ketidakkonsistenan luar dugaan bila membuat direktori"
+
+#: src/extract.c:578
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Direktori ditukarnama sebelum statusnya boleh diekstrak"
+
+#: src/extract.c:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: nama ahli mengandungi `..'"
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Tak dapat backup fail ini"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Mengekstrak fail bersambung sebagai fail biasa"
+
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Cuba mengekstrak pautan simbolik sebagai pautan keras"
+
+#: src/extract.c:1207
+#, 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:1216
+msgid "Visible long name error"
+msgstr "Ralat nama panjang boleh tampak"
+
+#: src/extract.c:1224
+#, 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:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "Ralat adalah tidak boleh dipulihkan: keluar sekarang"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Direktori telah ditukarnama"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Direktori adalah baru"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Setem masa tidak sah"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "Setem masa diluar julat"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Nombor peranti tidak sah"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "Nombor peranti diluar julat"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Nombot inod tidak sah"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "Nombor inod diluar julat"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Memadam %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: tak dapat buang"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr ""
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok TIADA **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Akhir Fail **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Pengepala kosong dimana nilai %s numerik dijangka"
+
+#: src/list.c:606
+#, 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"
+
+#: src/list.c:616
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Nilai oktal arkib %.*s diluar julat %s"
+
+#: src/list.c:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr ""
+
+#: src/list.c:645
+#, 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:676
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Nilai base-256 arkub adalah diluar julat %s"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Arkib mengandungi %.*s dimana nilai %s numerik dijangka"
+
+#: src/list.c:724
+#, 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:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#: src/list.c:946
+#, fuzzy
+msgid "Visible longname error"
+msgstr "Ralat nama panjang tampak"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr "Pautan ke %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr "jenis fail tak diketahui %s\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Pengepala Volum--\n"
+
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Bersambung pada byte %s--\n"
+
+#: src/list.c:1112
+#, fuzzy
+msgid "--Mangled file names--\n"
+msgstr "Nama fail modul"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Mencipta direktori:"
+
+#: src/mangle.c:54
+#, fuzzy
+msgid "Unexpected EOF in mangled names"
+msgstr "Penghujungan tanpa diduga data imej PNM"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Tak dapat menukarnama ke %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "%s ditukarnama ke %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Tak dapat symlink ke %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s disymlink ke %s"
+
+#: src/mangle.c:117
+#, fuzzy, c-format
+msgid "Unknown demangling command %s"
+msgstr "Pengkodan tidak diketahui: %s"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Menukarnama %s ke %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Menukarnama %s kembali ke %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Tak dapat simpan direktori kerja"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Tak dapat tukar direktori kerja"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Tak dapat %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Amaran: Tak dapat %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Tak dapat menukar mod ke %s"
+
+#: src/misc.c:562
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Tak dapat menukar pemilikan ke uid %lu, gid %lu"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Tak dapat memaut keras ke %s"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: ralat pembacaan pada byte %s, membaca %lu byte"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Amaran: Ralat pembacaan pada byte %s, membaca %lu byte"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Tak dapat rayau ke %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Amaran: tidak dapat rayau ke %s "
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Tak dapat mencipta symlink ke %s"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Ditulis hanya %lu drpd %lu byte"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "proses anak"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "saluran antaraproses"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Kehilangan nama fail selepas -C"
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Tak dijumpai pada arkib"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: tak dapat memperuntukkan ruang penimbal\n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Tak dapat memperuntukkan ruang penimbal"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Cuba '%s --help' untuk maklumat lanjut.\n"
+
+#: src/rmt.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"
+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"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid ""
+"\n"
+"Report bugs to <bug-tar@gnu.org>.\n"
+msgstr ""
+"\n"
+"Lapor pepijat ke <bug-tar@gnu.org>.\n"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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 ""
+"Program ini datang TANPA WARANTI, ke tahap yang diizinkan oleh undang-undang\n"
+"Anda boleh mengagihkan ia dibawah syarat Lesen Awam Umum GNU;\n"
+"lihat fail bernama COPYING untuk maklumat lanjut"
+
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Offset rayauan diluar julat"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Hala rayauan diluar julat"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: eof tak matang\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Akhir fail tak matang"
+
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Arahan Sampah %c\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Arahan sampah"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Tiada servis"
+
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "stdin"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "stdout"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Tak boleh laksanakan shell jauh"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Opsyen `-%s' dan `-%s' kedua-duanya memerlukan input piawai"
+
+#: src/tar.c:292
+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 menyimpan banyak fail bersama ke satu pita atak arkib cakera, dan\n"
+" boleh memulihkan fail secara individu daripada arkib.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Penggunaan: %s [OPSYEN]... [FAIL]...\n"
+"\n"
+"Contoh:\n"
+" %s -cf arkib.tar foo bar # Cipta arkib.tar drpd fail foo dan bar.\n"
+" %s -tvf arkib.tar # Senarai semua fail pada arkib secara verbose.\n"
+" %s -xf arkib.tar # Ekstrak semua fail drpd arkib.tar.\n"
+
+#: src/tar.c:303
+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"
+"Jika opsyen panjang menunjukkan hujah adalah mandatori, maka ianya mandatori\n"
+"bagi opsyen pendek juga. Sama juga dengan hujah opsyenal.\n"
+
+#: src/tar.c:308
+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"
+"Mod operasi utama:\n"
+" -t, --list senarai kandungan drpd satu arkib\n"
+" -x, --extract, --get ekstrak fail drpd satu arkib\n"
+" -c, --create cipta arkib baru\n"
+" -d, --diff, --compare cari perbezaan antara arkib dan sistem fail\n"
+" -r, --append tambah fail ke hujung arkib\n"
+" -u, --update hanya tambah fail lebih baru drpd salinan dlm arkib\n"
+" -A, --catenate tambah fail tar ke arkib\n"
+" --concatenate sama seperti -A\n"
+" --delete padam drpd arkib (bukan pada pita magnetik!)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+
+#: src/tar.c:418
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version control\n"
+" --suffix=SUFFIX backup before removal, override usual suffix\n"
+msgstr ""
+" --backup[=KAWALAN] backup sebelum buang, pilih versi kawalan\n"
+" --suffix=SUFFIKS backup sebelum buang, tindih suffiks biasa\n"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Output bermaklumat:\n"
+" --help cetak bantuan ini, kemudian keluar\n"
+" --version cetak nombor versi program tar, kemudian keluar\n"
+" -v, --verbose senarai fail diproses verbosely\n"
+" --checkpoint cetak nama direktori bila membaca arkib\n"
+" --totals cetak jumlah byte ditulis bila mencipta arkib\n"
+" -R, --block-number papar nombor blok di dalam arkib dengan setiap mesej\n"
+" -w, --interactive tanya kepastian untuk setipa aksi\n"
+" --confirmation sama seperti -w\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Anda tak boleh nyatakan lebih drpd satu opsyen `-Acdtrux'"
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Opsyen mampatan konflik"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "OPsyen lama `%c' memerlukan hujah."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Opsyen ditelan zaman, kini menggunakan --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Opsyen ditelan zaman diganti dengan --blocking-factor"
+
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Faktor pemblokan tidak sah"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Nama opsyen ditelan zaman diganti dengan --read-full-records"
+
+#: src/tar.c:696
+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?"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "panjang pita tidak sah"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Nama opsyen ditelan zaman diganti dengan --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr ""
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Fail tarikh tidak dijumpai"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Mengganti %s bagi format tarikh tak diketahui %s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "opsyen format arkib konflik"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Opsyen ditelan zaman diganti dengan --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Opsyen ditelan zaman diganti dengan --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Amaran: opsyen -y tidak disokong; mungkin anda maksudkan -j?"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Nama opsyen ditelan zaman diganti dengan --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Kumpulan tidak sah"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Mod tidak sah diberi pada opsyen"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Pemilik tidak sah"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Saiz rekod tidak sah"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Saiz rekod mesti dalam gandaan %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Opsyen `-[0-7][lmh]' tak disokong oleh tar *ini*"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Ditulis oleh John Gilmore dan Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr ""
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Fail akrib beraneka memerlukan opsyen `-M'"
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Tak boleh gabung --listed-incremental dengan --newer"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: Label volum adalah terlalu panjang (had adalah %lu byte)"
+
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Secara dayus enggan mencipta arkib kosong"
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Opsyen `-Aru' tak serasi dengan `-f -'"
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Anda mesti nyatakan satu drpd opsyen `-Acdtrux'"
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Ralat ketika menulis ke output piawai"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Ralat keluar dilewatkan drpd ralat terdahulu"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: Fail mengecil sebanyak %s byte"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Menjana fail data untuk suit ujian GNU tar.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Pengunaan : %s [OPSYEN]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Jika opsyen panjang memapar hujah sebagai mandatori, maka ianya mandatori\n"
+" bagi opsyen pendek yg setara juga\n"
+"\n"
+" -l, --file-length=PANJANG PANJANG bagi fail dijana\n"
+" -p, --pattern=CORAK CORAK adalah `default' atau `zeros'\n"
+" --help papar bantuan ini dan keluar\n"
+" --version output maklumat versi dan keluar\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr "Ditulis oleh F. Pinard."
diff --git a/po/nb.po b/po/nb.po
new file mode 100644
index 00000000..52b7ff78
--- /dev/null
+++ b/po/nb.po
@@ -0,0 +1,1376 @@
+# Norwegian messages for GNU tar. (bokml dialect)
+# Copyright (C) 1996 Free Software Foundation, Inc.
+# Karl Anders ygard <Karl.Oygard@fou.telenor.no>, 1996.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: GNU tar 1.12\n"
+"POT-Creation-Date: 1997-04-25 16:58-0400\n"
+"PO-Revision-Date: 1997-06-05 19:39 MET DST\n"
+"Last-Translator: Espen Skjelnes Johnsen <espejohn@sn.no>\n"
+"Language-Team: Norwegian-bokml <no@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#
+#: src/buffer.c:160
+msgid "Total bytes written: "
+msgstr "Totalt antall bytes skrevet: "
+
+#: src/buffer.c:255
+#, c-format
+msgid "Cannot close file #%d"
+msgstr "Kan ikke lukke fil #%d"
+
+#: src/buffer.c:271
+#, c-format
+msgid "Cannot close descriptor %d"
+msgstr "Kan ikke lukke fildeskriptor %d"
+
+#: src/buffer.c:274
+#, c-format
+msgid "Cannot properly duplicate %s"
+msgstr "Kan ikke duplisere %s"
+
+#: src/buffer.c:288 src/buffer.c:298
+msgid "Cannot use compressed or remote archives"
+msgstr "Kan ikke bruke komprimerte arkiver eller arkiver p en annen maskin"
+
+#: src/buffer.c:334 src/buffer.c:391 src/buffer.c:498 src/buffer.c:547
+msgid "Cannot open pipe"
+msgstr "Kan ikke lage en pipe"
+
+#: src/buffer.c:338 src/buffer.c:502
+msgid "Cannot fork"
+msgstr "Kan ikke lage ny prosess med fork"
+
+#
+#. The new born child tar is here!
+#: src/buffer.c:351 src/buffer.c:516
+msgid "tar (child)"
+msgstr "tar (barn)"
+
+#: src/buffer.c:353
+msgid "(child) Pipe to stdin"
+msgstr "(barn) Pipe til stdin"
+
+#: src/buffer.c:378 src/buffer.c:423 src/buffer.c:535 src/buffer.c:580
+#, c-format
+msgid "Cannot open archive %s"
+msgstr "Kan ikke pne arkivet %s"
+
+#: src/buffer.c:381
+msgid "Archive to stdout"
+msgstr "Arkivr til stdout"
+
+#: src/buffer.c:384 src/buffer.c:405 src/buffer.c:540 src/buffer.c:561
+#, c-format
+msgid "Cannot exec %s"
+msgstr "Kan ikke eksekvere %s"
+
+#: src/buffer.c:395 src/buffer.c:551
+msgid "Child cannot fork"
+msgstr "Barnet kan ikke gjre fork"
+
+#. The child tar is still here! Launch the compressor.
+#: src/buffer.c:401
+msgid "((child)) Pipe to stdout"
+msgstr "((barn)) Pipe til stdout"
+
+#. The new born grandchild tar is here!
+#: src/buffer.c:411 src/buffer.c:567
+msgid "tar (grandchild)"
+msgstr "tar (barnebarn)"
+
+#. Prepare for reblocking the data from the compressor into the archive.
+#: src/buffer.c:415
+msgid "(grandchild) Pipe to stdin"
+msgstr "(barnebarn) Pipe til stdin"
+
+#: src/buffer.c:450
+msgid "Cannot read from compression program"
+msgstr "Kan ikke lese fra komprimeringsprogrammet"
+
+#: src/buffer.c:518
+msgid "(child) Pipe to stdout"
+msgstr "(barn) Pipe til stdout"
+
+#: src/buffer.c:537
+msgid "Archive to stdin"
+msgstr "Arkivr til stdin"
+
+#. The child tar is still here! Launch the uncompressor.
+#: src/buffer.c:557
+msgid "((child)) Pipe to stdin"
+msgstr "((barn)) Pipe til stdin"
+
+#. Prepare for unblocking the data from the archive into the uncompressor.
+#: src/buffer.c:571
+msgid "(grandchild) Pipe to stdout"
+msgstr "(barnebarn) Pipe til stdout"
+
+#: src/buffer.c:611
+msgid "Cannot write to compression program"
+msgstr "Kan ikke skrive til komprimeringsprogrammet"
+
+#: src/buffer.c:616
+#, c-format
+msgid "Write to compression program short %d bytes"
+msgstr "Skrev %d bytes for lite til komprimeringsprogrammet"
+
+#: src/buffer.c:675
+msgid "Invalid value for record_size"
+msgstr "Ugyldig verdi for record_size"
+
+#
+#: src/buffer.c:678
+msgid "No archive name given"
+msgstr "Arkivnavn er ikke oppgitt"
+
+#: src/buffer.c:705
+#, c-format
+msgid "Could not allocate memory for blocking factor %d"
+msgstr "Kunne ikke allokere minne for blokk-faktor %d"
+
+#: src/buffer.c:714
+msgid "Cannot verify multi-volume archives"
+msgstr "Kan ikke verifisere arkiv som gr over flere volum"
+
+#: src/buffer.c:719
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Kan ikke bruke komprimerte arkiv som gr over flere volum"
+
+#
+#: src/buffer.c:721
+msgid "Cannot verify compressed archives"
+msgstr "Kan ikke verifisere komprimerte arkiver"
+
+#
+#: src/buffer.c:734
+msgid "Cannot update compressed archives"
+msgstr "Kan ikke oppdatere komprimerte arkiver"
+
+#: src/buffer.c:745
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Kan ikke verifisere stdin/stdout-arkiv"
+
+#: src/buffer.c:797 src/buffer.c:1673 src/compare.c:522 src/incremen.c:456
+#: src/names.c:861
+#, c-format
+msgid "Cannot open %s"
+msgstr "Kan ikke pne %s"
+
+#: src/buffer.c:838
+#, c-format
+msgid "Archive not labelled to match `%s'"
+msgstr "Arkivet er ikke navngitt for passe med %s"
+
+#: src/buffer.c:841 src/buffer.c:1172
+#, c-format
+msgid "Volume `%s' does not match `%s'"
+msgstr "Volumet %s stemmer ikke overens med %s"
+
+#: src/buffer.c:880
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Skriver kontrollpunkt %d"
+
+#: src/buffer.c:1049 src/incremen.c:513
+#, c-format
+msgid "Cannot write to %s"
+msgstr "Kan ikke skrive til %s"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Only wrote %u of %u bytes to %s"
+msgstr "Skrev bare %u av %u bytes til %s"
+
+#: src/buffer.c:1064
+#, c-format
+msgid "Read error on %s"
+msgstr "Lesefeil p %s"
+
+#: src/buffer.c:1067
+msgid "At beginning of tape, quitting now"
+msgstr "P begynnelsen av bndet, avslutter n"
+
+#: src/buffer.c:1073
+msgid "Too many errors, quitting"
+msgstr "For mange feil, avslutter"
+
+#: src/buffer.c:1089
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Leser kontrollpunkt %d"
+
+#: src/buffer.c:1180 src/extract.c:965
+#, c-format
+msgid "Reading %s\n"
+msgstr "Leser %s\n"
+
+#: src/buffer.c:1184
+msgid "WARNING: No volume header"
+msgstr "ADVARSEL: Manglende volumhode"
+
+#: src/buffer.c:1191
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s fortsetter ikke i dette volumet"
+
+#: src/buffer.c:1201
+#, c-format
+msgid "%s is the wrong size (%ld != %ld + %ld)"
+msgstr "%s har feil strrelse (%ld != %ld + %ld)"
+
+#: src/buffer.c:1212
+msgid "This volume is out of sequence"
+msgstr "Dette volumet kommer ute av rekkeflge"
+
+#: src/buffer.c:1240
+#, c-format
+msgid "Record size = %d blocks"
+msgstr "Blokkstrrelse = %d enheter"
+
+#: src/buffer.c:1261
+#, c-format
+msgid "Archive %s EOF not on block boundary"
+msgstr "Arkiv %s sluttet ikke ved en blokkgrense"
+
+#: src/buffer.c:1269
+#, c-format
+msgid "Only read %d bytes from archive %s"
+msgstr "Leste bare %d bytes fra arkivet %s"
+
+#: src/buffer.c:1294 src/buffer.c:1403 src/buffer.c:1517
+#, c-format
+msgid "WARNING: Cannot close %s (%d, %d)"
+msgstr "ADVARSEL: Kan ikke lukke %s (%d, %d)"
+
+#. Lseek failed. Try a different method.
+#: src/buffer.c:1350
+msgid "Could not backspace archive file; it may be unreadable without -i"
+msgstr "Kunne ikke g tilbake i arkivfilen. Den kan vre uleselig uten -i"
+
+#: src/buffer.c:1430
+#, c-format
+msgid "Child died with signal %d%s"
+msgstr "Barnet dde med signal %d%s"
+
+#: src/buffer.c:1432
+msgid " (core dumped)"
+msgstr " (minnet lagret)"
+
+#: src/buffer.c:1441
+#, c-format
+msgid "Child returned status %d"
+msgstr "Barnet avsluttet med status %d"
+
+#: src/buffer.c:1546
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Gjr klar volum nummer %d for %s og trykk return: "
+
+#: src/buffer.c:1552
+msgid "EOF where user reply was expected"
+msgstr "EOF der svar fra bruker var forventet"
+
+#: src/buffer.c:1557 src/buffer.c:1586
+msgid "WARNING: Archive is incomplete"
+msgstr "ADVARSEL: Arkivet er ufullstendig"
+
+#: src/buffer.c:1570
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [navn] Gi et filnavn for neste (og etterflgende) volum(er)\n"
+" q Avbryt tar\n"
+" ! Start et shell\n"
+" ? Skriv denne listen\n"
+
+#. Quit.
+#: src/buffer.c:1581
+msgid "No new volume; exiting.\n"
+msgstr "Ikke nytt volum; avslutter.\n"
+
+#: src/buffer.c:1616
+msgid "Cannot fork!"
+msgstr "Kan ikke lage ny prosess med fork!"
+
+#: src/buffer.c:1626
+#, c-format
+msgid "Cannot exec a shell %s"
+msgstr "Kan ikke eksekvere et shell %s"
+
+#: src/create.c:188
+msgid "Removing drive spec from names in the archive"
+msgstr "Tar bort enhetsnavn fra navn i arkivet"
+
+#
+#: src/create.c:199 src/extract.c:415
+msgid "Removing leading `/' from absolute path names in the archive"
+msgstr "Tar bort ledende / fra absolutte filnavn i arkivet"
+
+#. We blew it, maybe.
+#: src/create.c:532
+#, c-format
+msgid "Wrote %ld of %ld bytes to file %s"
+msgstr "Skrev %ld av %ld bytes til fil %s"
+
+#: src/create.c:560 src/create.c:584 src/create.c:1083
+#, c-format
+msgid "Read error at byte %ld, reading %d bytes, in file %s"
+msgstr "Lesefeil ved byte %ld ved lesing av %d bytes fra fil %s"
+
+#: src/create.c:596 src/create.c:1096
+#, c-format
+msgid "File %s shrunk by %d bytes, padding with zeros"
+msgstr "Filen %s krympet med %d bytes, fyller ut med nuller"
+
+#: src/create.c:612
+#, c-format
+msgid "Amount actually written is (I hope) %d.\n"
+msgstr "Faktisk skrevet mengde er %d (hper jeg).\n"
+
+#: src/create.c:712 src/create.c:973 src/create.c:1149
+#, c-format
+msgid "Cannot add file %s"
+msgstr "Kan ikke legge til fil %s"
+
+#: src/create.c:742
+#, c-format
+msgid "%s: is unchanged; not dumped"
+msgstr "%s: er uendret; ikke lagret"
+
+#: src/create.c:752
+#, c-format
+msgid "%s is the archive; not dumped"
+msgstr "%s er arkivet; ikke lagret"
+
+#
+#: src/create.c:797
+msgid "Removing leading `/' from absolute links"
+msgstr "Tar bort ledende / fra absolutte linker"
+
+#: src/create.c:827 src/create.c:1113 src/create.c:1173 src/create.c:1427
+#, c-format
+msgid "Cannot remove %s"
+msgstr "Kan ikke slette %s"
+
+#: src/create.c:1197
+#, c-format
+msgid "Cannot add directory %s"
+msgstr "Kan ikke legge til filkatalogen %s"
+
+#: src/create.c:1322
+#, c-format
+msgid "%s: On a different filesystem; not dumped"
+msgstr "%s: P et annet filesystem. Ikke lagret"
+
+#: src/create.c:1333 src/incremen.c:186
+#, c-format
+msgid "Cannot open directory %s"
+msgstr "Kan ikke pne filkatalogen %s"
+
+#: src/create.c:1357
+#, c-format
+msgid "File name %s%s too long"
+msgstr "Filnavnet %s%s er for langt"
+
+#: src/create.c:1432
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Ukjent filtype; filen ble ignorert"
+
+#: src/compare.c:50
+#, c-format
+msgid "Could not allocate memory for diff buffer of %d bytes"
+msgstr "Kunne ikke allokere minne for diff-buffer p %d bytes"
+
+#: src/compare.c:96 src/compare.c:317 src/compare.c:347
+#, c-format
+msgid "Cannot read %s"
+msgstr "Kan ikke lese %s"
+
+#: src/compare.c:101 src/compare.c:324 src/compare.c:354
+#, c-format
+msgid "Could only read %d of %ld bytes"
+msgstr "Kunne bare lese %d av %ld bytes"
+
+#: src/compare.c:110 src/compare.c:130 src/compare.c:392
+msgid "Data differs"
+msgstr "Data er ulike"
+
+#: src/compare.c:159 src/extract.c:329 src/extract.c:630 src/list.c:380
+#: src/list.c:872
+msgid "Unexpected EOF on archive file"
+msgstr "Uventet filslutt i arkivfilen"
+
+#: src/compare.c:411
+msgid "File does not exist"
+msgstr "Filen eksisterer ikke"
+
+#: src/compare.c:414 src/compare.c:574
+#, c-format
+msgid "Cannot stat file %s"
+msgstr "Kan ikke gjre stat p %s"
+
+#: src/compare.c:448
+msgid "Verify "
+msgstr "Verifisering "
+
+#: src/compare.c:455
+#, c-format
+msgid "Unknown file type '%c' for %s, diffed as normal file"
+msgstr "Ukjent filtype %c for %s, diffet som en vanlig fil"
+
+#: src/compare.c:480 src/compare.c:737
+msgid "Not a regular file"
+msgstr "Ikke en vanlig fil"
+
+#: src/compare.c:487 src/compare.c:718
+msgid "Mode differs"
+msgstr "Modus er ulik"
+
+#: src/compare.c:494
+msgid "Uid differs"
+msgstr "Uid er ulik"
+
+#: src/compare.c:496
+msgid "Gid differs"
+msgstr "Gid er ulik"
+
+#: src/compare.c:500
+msgid "Mod time differs"
+msgstr "Modifiseringstid er ulik"
+
+#: src/compare.c:504 src/compare.c:746
+msgid "Size differs"
+msgstr "Strrelse er ulik"
+
+#: src/compare.c:551 src/compare.c:784
+#, c-format
+msgid "Error while closing %s"
+msgstr "Feil ved lukking av %s"
+
+#: src/compare.c:571
+msgid "Does not exist"
+msgstr "Eksisterer ikke"
+
+#: src/compare.c:585
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ikke linket til %s"
+
+#: src/compare.c:605
+msgid "No such file or directory"
+msgstr "Fil eller filkatalog finnes ikke"
+
+#: src/compare.c:608
+#, c-format
+msgid "Cannot read link %s"
+msgstr "Kan ikke lese link %s"
+
+#: src/compare.c:616
+msgid "Symlink differs"
+msgstr "Symbolsk link er ulik"
+
+#: src/compare.c:655
+msgid "Device numbers changed"
+msgstr "Enhetsnummer er endret"
+
+#: src/compare.c:668
+msgid "Mode or device-type changed"
+msgstr "Modus eller enhetstype er endret"
+
+#: src/compare.c:713
+msgid "No longer a directory"
+msgstr "Ikke lenger en filkatalog"
+
+#: src/compare.c:755 src/names.c:225 src/update.c:55
+#, c-format
+msgid "Cannot open file %s"
+msgstr "Kan ikke pne filen %s"
+
+#: src/compare.c:764
+#, c-format
+msgid "Cannot seek to %ld in file %s"
+msgstr "Kan ikke ske til posisjon %ld i filen %s"
+
+#: src/compare.c:837
+msgid "Could not rewind archive file for verify"
+msgstr "Kunne ikke g til begynnelsen av arkivfilen for verifisering"
+
+#: src/compare.c:864
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "VERIFIKASJONSFEIL: %d ukjente arkivhoder funnet"
+
+#: src/delete.c:81
+msgid "Could not re-position archive file"
+msgstr "Kunne ikke endre posisjon i arkivfilen"
+
+#: src/delete.c:177 src/update.c:156
+msgid "This does not look like a tar archive"
+msgstr "Dette ser ikke ut som et tar-arkiv"
+
+#: src/delete.c:182 src/update.c:161
+msgid "Skipping to next header"
+msgstr "Hopper til neste startseksjon"
+
+#: src/delete.c:260
+msgid "Deleting non-header from archive"
+msgstr "Tar bort ikke-hodedata fra arkivet"
+
+#: src/extract.c:107
+#, c-format
+msgid "%s: Cannot change mode to %0.4o"
+msgstr "%s: Kan ikke endre modus til %0.4o"
+
+#: src/extract.c:149
+#, c-format
+msgid "%s: Could not change access and modification times"
+msgstr "%s: Kunne ikke endre aksess- og modifiseringstider"
+
+#: src/extract.c:176
+#, c-format
+msgid "%s: Cannot lchown to uid %d gid %d"
+msgstr "%s: Kan ikke endre eier til uid %d gid %d med lchown()"
+
+#: src/extract.c:182 src/extract.c:191
+#, c-format
+msgid "%s: Cannot chown to uid %d gid %d"
+msgstr "%s: Kan ikke endre eier til uid %d gid %d med chown()"
+
+#: src/extract.c:245
+#, c-format
+msgid "%s: Cannot change owner to uid %d, gid %d"
+msgstr "%s: Kan ikke endre eier til uid %d, gid %d"
+
+#: src/extract.c:338 src/extract.c:348 src/extract.c:665
+#, c-format
+msgid "%s: Could not write to file"
+msgstr "%s: Kunne ikke skrive til filen"
+
+#: src/extract.c:351 src/extract.c:668
+#, c-format
+msgid "%s: Could only write %d of %d bytes"
+msgstr "%s: Kunne bare skrive %d av %d bytes'"
+
+#: src/extract.c:425
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Kunne ikke lage sikkerhetskopi av denne filen"
+
+#: src/extract.c:568
+msgid "Extracting contiguous files as regular files"
+msgstr "Ekstraherer sammenhengende filer som vanlige filer"
+
+#: src/extract.c:580
+#, c-format
+msgid "%s: Could not create file"
+msgstr "%s: Kunne ikke lage fil"
+
+#: src/extract.c:644
+#, c-format
+msgid "%d at %d\n"
+msgstr "%d ved %d\n"
+
+#: src/extract.c:707
+#, c-format
+msgid "%s: Error while closing"
+msgstr "%s: Feil under lukking"
+
+#: src/extract.c:739
+#, c-format
+msgid "%s: Could not create symlink to `%s'"
+msgstr "%s: Kunne ikke lage symbolisk link til %s"
+
+#: src/extract.c:753
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Forsker ekstrahere symbolske linker som harde linker"
+
+#: src/extract.c:789
+#, c-format
+msgid "%s: Could not link to `%s'"
+msgstr "%s: Kunne ikke lage link til %s"
+
+#: src/extract.c:822
+#, c-format
+msgid "%s: Could not make node"
+msgstr "%s: Kunne ikke lage node"
+
+#: src/extract.c:848
+#, c-format
+msgid "%s: Could not make fifo"
+msgstr "%s: Kunne ikke lage fifo"
+
+#: src/extract.c:924
+#, c-format
+msgid "%s: Could not create directory"
+msgstr "%s: Kunne ikke lage filkatalog"
+
+#: src/extract.c:935
+#, c-format
+msgid "Added write and execute permission to directory %s"
+msgstr "Satte skrive- og eksekveringsrettigheter for filkatalog %s"
+
+#: src/extract.c:973
+#, c-format
+msgid "Cannot extract `%s' -- file is continued from another volume"
+msgstr "Kan ikke ekstrahere %s -- filen fortsetter fra et tidligere volum"
+
+#: src/extract.c:983
+msgid "Visible long name error"
+msgstr "Feil p et langt navn"
+
+#: src/extract.c:991
+#, c-format
+msgid "Unknown file type '%c' for %s, extracted as normal file"
+msgstr "Ukjent filtype %c for %s, ekstrahert som en vanlig fil"
+
+#: src/incremen.c:231 src/incremen.c:598 src/update.c:131
+#, c-format
+msgid "Cannot stat %s"
+msgstr "Kan ikke utfre stat p filen %s"
+
+#: src/incremen.c:268
+#, c-format
+msgid "Directory %s has been renamed"
+msgstr "Filkatalogen %s har endret navn"
+
+#: src/incremen.c:279
+#, c-format
+msgid "Directory %s is new"
+msgstr "Filkatalogen %s er ny"
+
+#: src/incremen.c:437 src/names.c:461
+msgid "Could not get current directory"
+msgstr "Kunne ikke finne navnet p aktiv filkatalog"
+
+#: src/incremen.c:442 src/names.c:466
+#, c-format
+msgid "Could not get current directory: %s"
+msgstr "Kunne ikke finne navnet p aktiv filkatalog: %s"
+
+#: src/incremen.c:446
+#, c-format
+msgid "File name %s/%s too long"
+msgstr "Filnavnet %s/%s er for langt"
+
+#: src/incremen.c:586
+#, c-format
+msgid "Cannot chdir to %s"
+msgstr "Kan ikke g til filkatalogen %s"
+
+#: src/incremen.c:675
+msgid "Unexpected EOF in archive"
+msgstr "Uventet filslutt i arkivet"
+
+#: src/incremen.c:704
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Sletter %s\n"
+
+#: src/incremen.c:706
+#, c-format
+msgid "Error while deleting %s"
+msgstr "Feil ved sletting av %s"
+
+#: src/list.c:84
+#, c-format
+msgid "Omitting %s"
+msgstr "Utelater %s"
+
+#: src/list.c:123
+#, c-format
+msgid "block %10ld: ** Block of NULs **\n"
+msgstr "blokk %10ld: ** Blokk med NUL-er **\n"
+
+#: src/list.c:134
+#, c-format
+msgid "block %10ld: ** End of File **\n"
+msgstr "blokk %10ld: ** Slutt p fil **\n"
+
+#: src/list.c:145
+msgid "Hmm, this doesn't look like a tar archive"
+msgstr "Hmm, dette ser ikke ut som et tar-arkiv"
+
+#: src/list.c:150
+msgid "Skipping to next file header"
+msgstr "Hopper til neste filhode"
+
+#: src/list.c:204
+msgid "EOF in archive file"
+msgstr "Filslutt i arkivfilen"
+
+#: src/list.c:216
+#, c-format
+msgid "Only wrote %ld of %ld bytes to file %s"
+msgstr "Skrev bare %ld av %ld bytes til filen %s"
+
+#: src/list.c:617 src/list.c:839
+#, c-format
+msgid "block %10ld: "
+msgstr "blokk %10ld: "
+
+#: src/list.c:654
+msgid "Visible longname error"
+msgstr "Feil p et langt navn"
+
+#: src/list.c:780 src/list.c:784
+#, c-format
+msgid " link to %s\n"
+msgstr " link til %s\n"
+
+#: src/list.c:788
+#, c-format
+msgid " unknown file type `%c'\n"
+msgstr " ukjent filtype %c\n"
+
+#: src/list.c:805
+msgid "--Volume Header--\n"
+msgstr "--Volumhode--\n"
+
+#: src/list.c:809
+#, c-format
+msgid "--Continued at byte %ld--\n"
+msgstr "--Fortsetter ved byte %ld--\n"
+
+#: src/list.c:814
+msgid "--Mangled file names--\n"
+msgstr "--delagte filnavn--\n"
+
+#: src/list.c:844 src/list.c:849
+msgid "Creating directory:"
+msgstr "Lager filkatalog:"
+
+#: src/mangle.c:61
+msgid "Unexpected EOF in mangled names"
+msgstr "Uventet filslutt i delagte navn"
+
+#: src/mangle.c:97
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Kan ikke endre navn p %s til %s"
+
+#: src/mangle.c:99
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Endret navn p %s til %s"
+
+#: src/mangle.c:116
+#, c-format
+msgid "Cannot symlink %s to %s"
+msgstr "Kan ikke lage en symbolisk link fra %s til %s"
+
+#: src/mangle.c:119
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s symbolsk linket til %s"
+
+#: src/mangle.c:123
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Ukjent kommando %s ved rekonstruering av navn"
+
+#: src/names.c:332 src/names.c:530 src/names.c:556 src/names.c:582
+#: src/names.c:735
+#, c-format
+msgid "Cannot change to directory %s"
+msgstr "Kan ikke g til filkatalogen %s"
+
+#: src/names.c:351 src/names.c:407 src/names.c:452
+msgid "Missing file name after -C"
+msgstr "Mangler filnavn etter -C"
+
+#: src/names.c:620 src/names.c:639
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Finnes ikke i arkivet"
+
+#: src/rmt.c:89
+msgid "Unknown system error"
+msgstr "Unkjent systemfeil"
+
+#: src/rmt.c:157
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Kan ikke allokere buffer\n"
+
+#: src/rmt.c:159
+msgid "Cannot allocate buffer space"
+msgstr "Kan ikke allokere plass til buffer"
+
+#: src/rmt.c:308
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: For tidlig filslutt\n"
+
+#: src/rmt.c:310
+msgid "Premature end of file"
+msgstr "For tidlig filslutt"
+
+#: src/rmt.c:382
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Ugyldig kommando %c\n"
+
+#: src/rmt.c:384
+msgid "Garbage command"
+msgstr "Ugyldig kommando"
+
+#: src/rtapelib.c:247
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Tjenesten er ikke tilgjengelig"
+
+#: src/rtapelib.c:252
+msgid "stdin"
+msgstr "stdin"
+
+#: src/rtapelib.c:255
+msgid "stdout"
+msgstr "stdout"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:415
+msgid "Cannot execute remote shell"
+msgstr "Kan ikke eksekvere \"remote shell\""
+
+#: src/tar.c:97
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Flaggene -%s and -%s vil begge ta standard inn"
+
+#: src/tar.c:123
+msgid "Cannot read confirmation from user"
+msgstr "Kan ikke lese bekreftelse fra brukeren"
+
+#: src/tar.c:290 tests/genfile.c:60
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Tast %s --help for mer informasjon.\n"
+
+#: src/tar.c:294
+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 lagrer mange filer i ett arkiv, og kan hente ut enkeltstende\n"
+"filer fra arkivet.\n"
+
+#: src/tar.c:298
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+msgstr ""
+"\n"
+"Bruk: %s [FLAGG]... [FIL]...\n"
+
+#: src/tar.c:299
+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"
+"Dersom et langt flagg har et obligatorisk argument, er argumentet ogs\n"
+"obligatorisk for det korte flagget. Tilsvarende gjelder dersom argumentet\n"
+"kan slyfes.\n"
+
+#: src/tar.c:304
+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"
+"Hovedoperasjonsmodi:\n"
+" -t, --list list innholdet av arkivet\n"
+" -x, --extract, --get ekstrahr filer fra arkivet\n"
+" -c, --create lage et nytt arkiv\n"
+" -d, --diff, --compare vise forskjeller mellom arkivet og filsystemet\n"
+" -r, --append legg til filer p slutten av arkivet\n"
+" -u, --update legg til bare filer som er nyere enn de i arkivet\n"
+" -A, --catenate legg en arkivfil sammen med arkivet\n"
+" --concatenate samme som -A\n"
+" --delete slett fra arkivet (ikke for arkiv p bnd!)\n"
+
+#: src/tar.c:317
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't overwrite existing files when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting "
+"directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Flagg for operasjonsmodi:\n"
+" -W, --verify forsk verifisere arkivet etter ha laget "
+"det\n"
+" --remove-files slett filer etter ha lagt dem til arkivet\n"
+" -k, --keep-old-files ikke overskriv eksisterende filer\n"
+" -U, --unlink-first slett alle filer fr ekstrahering til dem\n"
+" --recursive-unlink tm filkataloger fr ekstrahering\n"
+" -S, --sparse hndtr filer med hull mer effektivt\n"
+" -O, --to-stdout ekstrahr filer til stdout\n"
+" -G, --incremental bruk det gamle GNU formatet for inkrementell\n"
+" sikkerhetskopiering\n"
+" -g, --listed-incremental bruk det nye GNU-formatet for inkrementell\n"
+" sikkerhetskopiering\n"
+" --ignore-failed-read ignorr feil under lesing av filer\n"
+
+#: src/tar.c:331
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added "
+"files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract all protection information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Hndtering av filattributter:\n"
+" --owner=NAVN bruk NAVN som eier for nye filer\n"
+" --gruppe=NAVN bruk NAVN som gruppe for nye filer\n"
+" --mode=OKTAL bruk OKTAL som modus for nye filer\n"
+" --atime-preserve ikke endre aksesstider p lagrede filer\n"
+" -m, --modification-time ikke ekstrahr modifiseringstiden\n"
+" --same-owner forsk ekstrahere filer med samme eier\n"
+" --numeric-owner bruk nummer for bruker/gruppe-navn\n"
+" -p, --same-permissions forsk ekstrahere filer med samme\n"
+" filbeskyttelse\n"
+" --preserve-permissions samme som -p\n"
+" -s, --same-order sorter navn som skal ekstraheres slik at\n"
+" de passer med arkivet\n"
+" --preserve-order samme som -s\n"
+" --preserve samme som bde -p og -s\n"
+
+#: src/tar.c:347
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies "
+"-M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Enhetsvalg og enhetsskifte:\n"
+" -f, --file=ARKIV bruk arkivfil eller enhet ARKIV\n"
+" --force-local arkivfil er lokal selv om den har et kolon\n"
+" --rsh-command=KOMMANDO bruk KOMMANDO i stedet for rsh\n"
+" -[0-7][lmh] angi enhet og tetthet\n"
+" -M, --multi-volume behandle arkivet som et flervolumsarkiv\n"
+" -L, --tape-length=NUMMER bytt bnd etter at NUMMER x 1024 bytes er\n"
+" skrevet\n"
+" -F, --info-script=FIL kjr kommandofil FIL ved slutten av hvert\n"
+" bnd (setter -M automatisk)\n"
+" --new-volume-script=FIL samme som -F FIL\n"
+" --volno-file=FIL bruk/oppdater volumnummeret i FIL\n"
+
+#: src/tar.c:360
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means "
+"EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Blokkhndtering:\n"
+" -b, --blocking-factor=ENHETER sett blokkstrrelse ENHETER x 512 bytes\n"
+" --record-size=STRRELSE STRRELSE bytes per enhet (delbart p 512)\n"
+" -i, --ignore-zeros ignorr blokker som inneholder nuller\n"
+" (betyr filslutt)\n"
+" -B, --read-full-records blokk om ved lesing (for 4.2BSD pipes)\n"
+
+#
+#: src/tar.c:368
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing "
+"PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX conformant archive\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Valg av arkivformat:\n"
+" -V, --label=NAVN lag et arkiv med volumnavn NAVN\n"
+" MNSTER filer som skal tas med ved listing "
+"eller\n"
+" ekstrahering (tillatt med jokertegn)\n"
+" -o, --old-archive, --portability lag et arkiv i V7 format\n"
+" --posix lag et POSIX-konformt arkiv\n"
+" -z, --gzip, --ungzip send arkivet gjennom gzip\n"
+" -Z, --compress, --uncompress send arkivet gjennom compress\n"
+" --use-compress-program=PROG send arkivet gjennom PROG (m forst "
+"-d)\n"
+
+#
+#: src/tar.c:379
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file "
+"NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a globbing PATTERN\n"
+" -X, --exclude-from=FILE exclude globbing patterns listed in FILE\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in "
+"directories\n"
+" -l, --one-file-system stay in local file system when creating "
+"archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Valg av lokale filer:\n"
+" -C, --directory=KATALOG endre filkatalog til KATALOG\n"
+" -T, --files-from=FIL hent navn for ekstrahering eller arkivering\n"
+"\t\t\t fra filen FIL\n"
+" --null -T leser null-terminerte navn, tillater ikke "
+"-C\n"
+" --exclude=MNSTER ta ikke med filer (tillatt med jokertegn)\n"
+" -X, --exclude-from=FIL ta ikke med filer navngitte i filen FIL\n"
+" (tillatt med jokertegn)\n"
+" -P, --absolute-names ta ikke bort ledende / fra filnavn\n"
+" -h, --dereference arkivr det symboliske linker peker p\n"
+" --no-recurse ta ikke med filer i underkataloger\n"
+" -l, --one-file-system ta ikke med filer fra andre filsystemer\n"
+" -K, --starting-file=NAVN begynn med filen NAVN i arkivet\n"
+
+#
+#: src/tar.c:394
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATO arkivr bare filer som er nyere enn DATO\n"
+" --newer-mtime sammenlign tidsstempel bare nr data er "
+"endret\n"
+" --after-date=DATO samme som -N\n"
+
+#: src/tar.c:400
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version "
+"control\n"
+" --suffix=SUFFIX backup before removel, override usual suffix\n"
+msgstr ""
+" --backup[=KONTROLL] lag sikkerhetskopi fr sletting, med\n"
+" versjonskontroll\n"
+" --suffix=SUFFIKS lag sikkerhetskopi fr sletting, med\n"
+" overstyring av det vanlige suffikset\n"
+
+#: src/tar.c:404
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Utskrift av informasjon:\n"
+" --help vis denne hjelpeteksten og avslutt\n"
+" --version vis programversjon og avslutt\n"
+" -v, --verbose vis hver fil som behandles\n"
+" --checkpoint vis filkatalognavn nr arkivet leses\n"
+" --totals vis totalt antall bytes skrevet\n"
+" -R, --block-number vis enhetsnummer i arkivet sammen med alle "
+"meldinger\n"
+" -w, --interactive spr etter bekreftelse for hver operasjon\n"
+" --confirmation samme som -w\n"
+
+#: src/tar.c:416
+msgid ""
+"\n"
+"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 "
+"are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+"Suffikset for sikkerhetskopiering er ~, med mindre det er satt med --suffix\n"
+"eller SIMPLE_BACKUP_SUFFIX. Versjonskontroll kan settes med --backup eller\n"
+"VERSION_CONTROL. Gyldige verdier er:\n"
+"\n"
+" t, numbered lag nummererte sikkerhetskopier\n"
+" nil, existing nummererte, dersom nummererte sikkerhetskopier "
+"eksisterer,\n"
+" ellers enkle\n"
+" never, simple lag enkle sikkerhetskopier\n"
+
+#: src/tar.c:425
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; and FILE may be a file\n"
+"or a device. *This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"GNU tar kan hverken lese eller skrive --posix-arkiver. Dersom\n"
+"miljvariabelen POSIXLY_CORRECT er satt, er GNU-funksjoner ikke tillatt\n"
+"sammen med --posix. Sttte for POSIX er bare delvis implementert, s\n"
+"stol ikke p den enn.\n"
+"ARKIV kan vre FIL, MASKIN:FIL eller BRUKER@MASKIN:FIL; og FIL kan vre en\n"
+"fil eller en enhet. *Denne* versjonen av tar har -f%s -b%d som forvalg.\n"
+
+#: src/tar.c:433
+msgid ""
+"\n"
+"Report bugs to <tar-bugs@gnu.ai.mit.edu>.\n"
+msgstr ""
+"\n"
+"Rapporter feil til <tar-bugs@gnu.ai.mit.edu>.\n"
+
+#: src/tar.c:459
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Du kan ikke angi mer enn ett av -Acdtrux-flaggene"
+
+#: src/tar.c:468
+msgid "Conflicting compression options"
+msgstr "Konflikt i kompresjonsflagg"
+
+#: src/tar.c:532
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Gammelt flagg %c behver et argument."
+
+#: src/tar.c:574
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Utdatert flagg, n implisert av --blocking-factor"
+
+#: src/tar.c:578
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Utdatert flagg skiftet ut med --blocking-factor"
+
+#: src/tar.c:588
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Utdatert flagg skiftet ut med --read-full-records"
+
+#: src/tar.c:686
+msgid "Obsolete option name replaced by --touch"
+msgstr "Utdatert flagg skiftet ut med --touch"
+
+#: src/tar.c:707
+msgid "More than one threshold date"
+msgstr "Mer enn n grense-dato"
+
+#: src/tar.c:711
+#, c-format
+msgid "Invalid date format `%s'"
+msgstr "Ugyldig datoformat %s"
+
+#: src/tar.c:720 src/tar.c:876 src/tar.c:881
+msgid "Conflicting archive format options"
+msgstr "Konflikt i flaggene for arkiv-format"
+
+#: src/tar.c:732
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Utdatert flagg skiftet ut med --absolute-names"
+
+#: src/tar.c:744
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Utdatert flagg skiftet ut med --block-number"
+
+#
+#: src/tar.c:819
+msgid "Obsolete option name replaced by --backup"
+msgstr "Utdatert flagg skiftet ut med --backup"
+
+#: src/tar.c:840
+msgid "Invalid group given on option"
+msgstr "Ugyldig gruppe gitt i flagg"
+
+#: src/tar.c:850
+msgid "Invalid mode given on option"
+msgstr "Ugyldig modus gitt i flagg"
+
+#: src/tar.c:852
+msgid "Memory exhausted"
+msgstr "Minne oppbrukt"
+
+#: src/tar.c:866
+msgid "Invalid owner given on option"
+msgstr "Ugyldig eier gitt i flagg"
+
+#: src/tar.c:893
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Blokkstrrelse m vre delbart p %d."
+
+#: src/tar.c:989
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Flaggene -[0-7][lmh] stttes ikke av *denne* implementasjonen av tar"
+
+#: src/tar.c:999
+msgid ""
+"\n"
+"Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+
+#: src/tar.c:1003 tests/genfile.c:161
+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 ""
+"Dette er fri programvare. Se kildekoden for kopieringsbetingelser.\n"
+"Programvaren har ingen garanti, ikke en gang for SALGBARHET eller EGNETHET\n"
+"TIL NOEN SPESIELL OPPGAVE.\n"
+
+#: src/tar.c:1007
+msgid ""
+"\n"
+"Written by John Gilmore and Jay Fenlason.\n"
+msgstr ""
+"\n"
+"Skrevet av John Gilmore and Jay Fenlason.\n"
+
+#: src/tar.c:1035
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU-funksjoner forskt p inkompatibelt arkiv-format"
+
+#: src/tar.c:1052
+msgid "Multiple archive files requires `-M' option"
+msgstr "Ved flere arkivfiler behves -M-flagget"
+
+#: src/tar.c:1066
+msgid "Cowardly refusing to create an empty archive"
+msgstr "For feig til lage et tomt arkiv"
+
+#: src/tar.c:1087
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Flaggene -Aru er inkompatible med -f -"
+
+#: src/tar.c:1144
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Du m angi ett av -Acdtrux-flaggene"
+
+#: src/tar.c:1191
+msgid "Error exit delayed from previous errors"
+msgstr "Utsatt feil-avslutning for tidligere feil"
+
+#: src/update.c:79
+#, c-format
+msgid "Read error at byte %ld reading %d bytes in file %s"
+msgstr "Lesefeil ved byte %ld under lesing av %d bytes i fil %s"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrunk by %d bytes, (yark!)"
+msgstr "%s: Filen krympet med %d bytes, (h!)"
+
+#: tests/genfile.c:64
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Genrerer datafiler for GNU tar testpakke.\n"
+
+#: tests/genfile.c:65
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Bruk: %s [FLAGG]...\n"
+
+#: tests/genfile.c:68
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Obligatoriske argumenter for lange flagg er obligatoriske ogs for korte "
+"flagg.\n"
+"\n"
+" -l, --file-length=LENGDE lengde av generert fil\n"
+" -p, --pattern=MNSTER gyldige mnster er default eller zeros\n"
+" --help vis denne hjelpeteksten og avslutt\n"
+" --version vis programversjon og avslutt\n"
+
+#: tests/genfile.c:134
+#, c-format
+msgid "Ambiguous pattern `%s'"
+msgstr "Tvetydig mnster %s"
+
+#: tests/genfile.c:138
+#, c-format
+msgid "Unknown pattern `%s'"
+msgstr "Ukjent mnster %s"
+
+#: tests/genfile.c:157
+msgid ""
+"\n"
+"Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+msgstr ""
+"\n"
+"Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+
+#: tests/genfile.c:165
+msgid ""
+"\n"
+"Written by Franois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+"\n"
+"Skrevet av Franois Pinard <pinard@iro.umontreal.ca>\n"
diff --git a/po/nl.po b/po/nl.po
new file mode 100644
index 00000000..ef338bf5
--- /dev/null
+++ b/po/nl.po
@@ -0,0 +1,2632 @@
+# Dutch translations for GNU tar.
+# Copyright (C) 2011 Free Software Foundation, Inc.
+# This file is distributed under the same license as the tar package.
+#
+# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2010, 2011.
+# Erwin Poeze <erwin.poeze@gmail.com>, 2009.
+# Elros Cyriatan <cyriatan@fastmail.fm>, 2004.
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar-1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-12 17:27+0100\n"
+"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n"
+"Language-Team: Dutch <vertaling@vrijschrift.org>\n"
+"Language: nl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Lokalize 1.0\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "ongeldig argument %s van %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argument %s van %s is niet eenduidig"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Geldige argumenten zijn:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Onbekende parameter in ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Rommel in ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr ""
+"Een argument dat verplicht of optioneel is voor een lange optie, is dat\n"
+"ook voor de overeenkomstige korte optie."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Gebruik: "
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " of: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [OPTIE...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Typ '%s --help' of '%s --usage' voor meer informatie.\n"
+
+#: gnu/argp-help.c:1712
+#, 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"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Onbekende systeemfout"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "deze hulptekst tonen"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "een korte gebruikssamenvatting tonen"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAAM"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "de programmanaam instellen"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SECONDEN"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "dit aantal seconden pauzeren (standaard 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "programmaversie tonen"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "**Interne programmafout**: geen versie bekend!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Te veel argumenten\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "**Interne programmafout**: optie had herkend moeten worden!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "schrijffout"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: optie '%s' is niet eenduidig\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: optie '--%s' staat geen argument toe\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: optie '%c%s' staat geen argument toe\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: optie '--%s' vereist een argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: onbekende optie '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: onbekende optie '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: ongeldige optie -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: optie vereist een argument -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: optie '-W %s' is niet eenduidig\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: optie '-W %s' staat geen argument toe\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: optie '-W %s' vereist een argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "onvoldoende geheugen beschikbaar"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "kan de huidige werkmap niet vastleggen"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "kan niet terugkeren naar de oorspronkelijke werkmap"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "‘"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "’"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[jJyY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "In pakketvorm gebracht door %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "In pakketvorm gebracht door %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Dit is vrije software: u mag het vrijelijk wijzigen en verder verspreiden.\n"
+"De precieze licentie is GPL-3+: GNU General Public License versie 3 of later.\n"
+"Zie http://gnu.org/licenses/gpl.html voor de volledige (Engelse) tekst.\n"
+"Deze software kent GEEN GARANTIE, voor zover de wet dit toestaat.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Geschreven door %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Geschreven door %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Geschreven door %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s en anderen.\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).
+#: gnu/version-etc.c:247
+#, c-format
+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"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr ""
+"Rapporteer gebreken in het programma '%s' aan <%s>;\n"
+"meld fouten in de vertaling aan <vertaling@vrijschrift.org>.\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Webpagina van %s: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "Webpagina van %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 "Algemene hulp bij gebruik van 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: 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Leidende '%s' wordt uit lidnamen weggelaten"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Leidende '%s' wordt uit doelen van harde koppelingen weggelaten"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Lege lidnaam wordt vervangen door '.'"
+
+#: lib/paxnames.c:155
+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 "Kan geen verbinding maken met %s: herleiding is mislukt"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Kan gindse shell niet uitvoeren"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Sprongrichting valt buiten bereik"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Ongeldige sprongrichting"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Ongeldige sprongpositie"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Sprongpositie valt buiten bereik"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Ongeldig byte-aantal"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Byte-aantal valt buiten bereik"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Voortijdig einde van bestand"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Ongeldige bewerkingscode"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Bewerking wordt niet ondersteund"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Onverwachte argumenten"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Een magneetband manipuleren, en opdrachten accepteren van een ander proces."
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "AANTAL"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "debug-niveau instellen"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "BESTAND"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "naam van debug-uitvoerbestand instellen"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "kan %s niet openen"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "te veel argumenten"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Ongeldige opdracht"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Dit ziet er niet uit als een tar-archief"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Totaal aantal geschreven bytes"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Totaal aantal gelezen bytes"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Totaal aantal verwijderde bytes: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(pijp)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Ongeldige waarde voor recordgrootte"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Geen archiefnaam opgegeven"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Kan archieven op standaardinvoer of -uitvoer niet verifiëren"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Archief is gecomprimeerd. Gebruik optie '%s'."
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Kan ingepakte archieven niet bijwerken"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Aan het begin van de band -- tar sluit nu af."
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Te veel fouten -- tar sluit nu af."
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek() is niet gestopt op een recordgrens"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: bevat een ongeldig deelnummer"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Deelnummer-overloop"
+
+#: src/buffer.c:1123
+#, 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:1129
+msgid "EOF where user reply was expected"
+msgstr "een lege tekst, terwijl gebruikersinvoer werd verwacht"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "WAARSCHUWING: Archief is onvolledig"
+
+#: src/buffer.c:1148
+#, 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 naam een nieuwe bestandsnaam opgeven voor het volgende deel en de\n"
+" daarop volgende delen\n"
+" q tar afbreken\n"
+" y of Enter doorgaan\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! een subshell starten\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? dit lijstje tonen\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Geen nieuw deel -- tar sluit af.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Geen bestandsnaam opgegeven. Probeer het nog eens.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Ongeldige invoer. Typ ? voor hulp.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "Opdracht %s is mislukt"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s gaat niet verder in dit deel"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s heeft een verkeerde grootte (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, 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:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Archief bevat geen label, kan niet overeenkomen met %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Deel %s komt niet overeen met %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: bestandsnaam is te lang om opgeslagen te worden in een GNU-meerdelenkop; afgekapt"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "schrijven is niet gestopt op een recordgrens"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Inhouden verschillen"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Onverwacht einde-van-bestand in archief"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Bestandssoort verschilt"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Modus verschilt"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "UID verschilt"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "GID verschilt"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Wijzigingstijd verschilt"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Grootte verschilt"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Niet gekoppeld aan %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Symbolische koppeling verschilt"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Apparaatnummer verschilt"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Verifiëren "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Onbekende bestandssoort '%c'; gedifft als gewoon bestand"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Archief bevat bestandsnamen waarvan de prefixen verwijderd zijn."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Archief bevat getransformeerde bestandsnamen."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Een verificatie kan mogelijk de originele bestanden niet vinden."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Een los blok met nullen op %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: map bevat cache-markering %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "waarde %s valt buiten bereik voor %s (%s..%s)"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Er worden negatieve octale koppen gemaakt"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: bestandsnaam is te lang (max %d); niet gearchiveerd"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: bestandsnaam is te lang (kan niet worden gesplitst); niet gearchiveerd"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: koppelingsnaam is te lang; niet gearchiveerd"
+
+#: src/create.c:1064
+#, 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "inhoud niet gearchiveerd"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Onbekende bestandssoort; bestand genegeerd"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Ontbrekende koppelingen naar %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: bestand is ongewijzigd; niet gearchiveerd"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: bestand is het archief zelf; niet gearchiveerd"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "map is niet gearchiveerd"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: bestand is gewijzigd tijdens het lezen"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket genegeerd"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: deur genegeerd"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Alles tot aan volgende kop wordt overgeslagen"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Niet-kop wordt uit archief verwijderd"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: onwaarschijnlijk oude tijdsstempel %s"
+
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Onverwachte inconsistentie tijdens aanmaken van map"
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Aaneengesloten bestanden worden uitgepakt als gewone bestanden"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Poging om symbolische koppelingen als harde koppelingen uit te pakken..."
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Kan niet uitpakken -- bestand gaat door vanuit een ander deel"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Onverwachte langenaamkop"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Onbekende bestandssoort '%c'; uitgepakt als gewoon bestand"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Huidige %s is nieuwer of even oud"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Kan geen reservekopie van dit bestand maken"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Kan %s niet tot %s hernoemen"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Map is hernoemd van %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Map is hernoemd"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Map is nieuw"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Ongeldig tijdsstempel"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Ongeldige wijzigingstijd (seconden)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Ongeldige wijzigingstijd (nanoseconden)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Ongeldig apparaatnummer"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Ongeldig inode-nummer"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Veld is te lang, tijdens lezen van snapshot-bestand"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Leesfout tijdens lezen van snapshot-bestand"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Onverwacht einde-van-bestand in snapshot-bestand"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Onverwachte veldwaarde in snapshot-bestand"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Ontbrekende record-afsluiting"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Onjuiste incrementele bestandsindeling"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Niet-ondersteunde versie (%<PRIuMAX>) van incrementele bestandsindeling"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Onjuiste archiveringsmap: '%c' werd verwacht maar %#3o gevonden"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Onjuiste archiveringsmap: 'X' staat er dubbel"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Onjuiste archiveringsmap: lege naam in 'R'"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Onjuiste archiveringsmap: 'T' werd niet voorafgegaan door 'R'"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Onjuiste archiveringsmap: lege naam in 'T'"
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Onjuiste archiveringsmap: 'X' is nergens gebruikt"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Kan met sjabloon %s geen tijdelijke map aanmaken"
+
+#: src/incremen.c:1670
+#, 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:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Verwijderen van %s...\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Kan niet verwijderen"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Overgeslagen"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok van NUL-tekens **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Einde-van-bestand **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Octaalwaarde %.*s in archief valt buiten bereik voor %s; 2-complement wordt aangenomen"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Archief bevat ouderwetse grondtal-64 koppen"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " koppeling naar %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " onbekende bestandssoort %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Lange koppeling--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Lange naam--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Deelkop--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Verder bij byte %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Aanmaken van map:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Kan werkmap niet achterhalen"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Hernoemen van %s naar %s...\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "Kan %s niet naar %s hernoemen"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Hernoemen van %s terug naar %s...\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Bestand werd verwijderd voordat het gelezen kon worden"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "dochterproces"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "interproces-kanaal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Bestandsnamen bevatten jokertekens."
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr ""
+"Gebruik '--wildcards' om patroonovereenkomsten in te schakelen,\n"
+"of '--no-wildcards' om deze waarschuwing te onderdrukken."
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Komt niet voor in archief"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Is vereist maar komt niet voor in archief"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Archieflabel komt niet overeen"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "Met '--listed-incremental' is '-C' niet toegestaan binnen een bestandenlijst"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Met '--listed-incremental' is slechts één '-C' toegestaan"
+
+#: 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Ongeldige archiefindeling"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU-functies gevraagd bij een incompatibele archiefindeling"
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Onbekende aanhalingsstijl '%s'. Probeer '%s --quoting-style=help' voor een overzicht."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' bewaart veel bestanden samen op een enkele magneetband of in een enkel schijfarchief, en kan individuele bestanden uit het archief herstellen.\n"
+"\n"
+"Voorbeelden:\n"
+" tar -cf archief.tar foo bar # Bestand archief.tar aanmaken van foo en bar.\n"
+" 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:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Het reservekopie-achtervoegsel is '~', tenzij anders ingesteld met\n"
+"'--suffix' of met omgevingsvariabele SIMPLE_BACKUP_SUFFIX.\n"
+"Het versiebeheer kan worden ingesteld met '--backup' of met\n"
+"omgevingsvariabele VERSION_CONTROL; mogelijke waarden zijn:\n"
+"\n"
+" none, off nooit reservekopieën maken\n"
+" t, numbered genummerde reservekopieën maken\n"
+" nil, existing genummerd als ze al bestaan, anders simpel\n"
+" never, simple altijd simpele reservekopieën maken\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Hoofdbewerkingen:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "de inhoud van een archief opsommen"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "bestanden uit een archief uitpakken"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "een nieuw archief aanmaken"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "verschillen tussen archief en bestandssyteem vinden"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "bestanden aan het eind van een archief toevoegen"
+
+#: src/tar.c:402
+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:404
+msgid "append tar files to an archive"
+msgstr "tar-bestanden aan een archief toevoegen"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "uit het archief verwijderen (niet gebruiken bij magneetbanden!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "label van archiefdeel controleren en stoppen"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Werkingsaanpassers:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "luchtige bestanden efficiënt verwerken"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "HOOFD[.SUB]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "versie van te gebruiken luchtige indeling (impliceert '--sparse')"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "oude GNU-indeling van incrementeel archief verwerken"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "nieuwe GNU-indeling van incrementeel archief verwerken"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "dump-niveau voor aan te maken incrementeel archief"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "niet afsluiten met een foutcode bij onleesbare bestanden"
+
+#: src/tar.c:429
+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 "alleen het AANTALste voorkomen van elk bestand in het archief verwerken; deze optie is alleen geldig samen met een van de subopdrachten --delete, --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:435
+msgid "archive is seekable"
+msgstr "in archief kan worden gesprongen"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "in archief kan niet worden gesprongen"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "geen apparaatnummers controleren tijdens aanmaken van incrementele archieven"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "apparaatnummers controleren tijdens aanmaken van incrementele archieven (standaard)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Overschrijvingsopties:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "het archief na het schrijven proberen te verifiëren"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "bestanden na hun toevoeging aan het archief verwijderen"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "bij het uitpakken bestaande bestanden niet vervangen"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "bestaande bestanden bij het uitpakken overschrijven"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "elk bestand verwijderen alvorens eroverheen uit te pakken"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "bestaande mappen leegmaken alvorens eroverheen uit te pakken"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "metagegevens van bestaande mappen behouden"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "de metagegevens van bestaande mappen bij het uitpakken overschrijven (standaard)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Selecteren van uitvoerkanaal:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "bestanden uitpakken naar standaarduitvoer"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "OPDRACHT"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "uitgepakte bestanden via pijp naar gegeven programma sluizen"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "afsluitwaardes van dochterprocessen negeren"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "afsluitwaardes van dochterprocessen die niet nul zijn als fout behandelen"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Behandeling van bestandskenmerken:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "toegevoegde bestanden krijgen NAAM als eigenaar"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "toegevoegde bestanden krijgen NAAM als groep"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATUM-OF-BESTAND"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "wijzigingstijd zetten van bestanden die wegens DATUM-OF-BESTAND zijn toegevoegd"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "WIJZIGINGEN"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "toegevoegde bestanden krijgen (symbolische) WIJZIGINGEN in hun modus"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "MANIER"
+
+#: src/tar.c:499
+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 "toegangstijdsstempels van gearchiveerde bestanden behouden: door het herstellen van de tijdsstempels na het lezen (MANIER='replace'; standaard), of door de tijdsstempels met rust te laten (MANIER='system')"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "bestandswijzigingstijden niet uitpakken"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "bestanden proberen uit te pakken met dezelfde eigenaar als in het archief (standaard voor root)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "bestanden uitpakken als uzelf (standaard voor gewone gebruikers)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "altijd getallen gebruiken voor gebruikers- en groepsnamen"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "bestandspermissies ook uitpakken (standaard voor root)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "de umask van de gebruiker toepassen bij het uitpakken van bestandspermissies (standaard voor gewone gebruikers)"
+
+#: src/tar.c:517
+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:520
+msgid "same as both -p and -s"
+msgstr "hetzelfde als -p en -s samen"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "het zetten van permissies en tijdsstempels van mappen uitstellen tot na het uitpakken"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "het effect van de optie --delay-directory-restore ongedaan maken"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Apparaatselectie en -wisseling:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIEF"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "archiefbestand of apparaat ARCHIEF gebruiken"
+
+#: src/tar.c:535
+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:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "deze OPDRACHT gebruiken in plaats van 'rmt'"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "deze OPDRACHT gebruiken in plaats van 'rsh'"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "schijf en dichtheid opgeven"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "meerdelig archief aanmaken/opsommen/uitpakken"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "band wisselen na schrijven van AANTAL x 1024 bytes"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "script uitvoeren aan einde van elke band (impliceert '-M')"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "het deelnummer in BESTAND gebruiken/bijwerken"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blokverwerking:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKKEN"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOKKEN x 512 bytes per record"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "AANTAL bytes per record (een veelvoud van 512)"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "blokken met nullen in archief negeren (betekenen einde-van-bestand)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "doorgaan met lezen tot blok compleet is (voor 4.2BSD-pijpen)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Archiefindelingskeuze:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "INDELING"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "een archief maken in de gekozen indeling"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "INDELING is een van de volgende:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "oude V7 tar-indeling"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU-indeling van tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU-indeling van tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar-indeling)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax-indeling)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "hetzelfde als pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "hetzelfde als --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "hetzelfde als --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "sleutelwoord[[:]=waarde][,sleutelwoord[[:]=waarde]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "het aangeven van pax-sleutelwoorden"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEKST"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "een archief met deelnaam TEKST maken; bij opsommen/uitpakken TEKST als zoekpatroon voor de deelnaam gebruiken"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Compressie-opties:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "compressieprogramma afleiden uit bestandsachtervoegsel"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "compressieprogramma niet afleiden uit bestandsachtervoegsel"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROGRAMMA"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "het archief door dit programma filteren (moet '-d' accepteren)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Lokale bestandskeuze:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "MAP"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "naar MAP gaan"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "namen van in of uit te pakken bestanden uit BESTAND halen"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "'-T' leest met NUL afgesloten namen, schakelt '-C' uit"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "het resultaat van de vorige '--null'-optie ongedaan maken"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "aanhalingstekens verwijderen rond bestandsnamen gelezen met '-T' (standaard)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "aanhalingstekens niet verwijderen rond bestandsnamen gelezen met '-T'"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "PATROON"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "bestanden uitsluiten, gegeven als een PATROON"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "uitsluitingspatronen staan opgesomd in BESTAND"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "inhoud van mappen die CACHEDIR.TAG bevatten uitsluiten, behalve CACHEDIR.TAG zelf"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "alles onder mappen die CACHEDIR.TAG bevatten uitsluiten"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "mappen die CACHEDIR.TAG bevatten uitsluiten"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "alles onder mappen die BESTAND bevatten uitsluiten"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "mappen die BESTAND bevatten uitsluiten"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "systeemmappen van versiebeheer uitsluiten"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "reservekopieën en vergrendelingsbestanden uitsluiten"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "niet automatisch afdalen in mappen"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "in het lokale bestandssysteem blijven bij maken van archief"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "recursief in mappen afdalen (standaard)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "leidende '/' niet uit bestandsnamen verwijderen"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "LIDNAAM"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "beginnen bij lid LIDNAAM in het archief"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "alleen bestanden opslaan die nieuwer zijn dan DATUM-OF-BESTAND"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATUM"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "datum en tijd alleen vergelijken wanneer gegevens veranderd zijn"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "MANIER"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "voor verwijdering een reservekopie maken, op de aangegeven MANIER"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "TEKENREEKS"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "voor verwijdering een reservekopie maken, met TEKENREEKS als achtervoegsel (in plaats van '~', die standaard is tenzij door omgevingsvariable SIMPLE_BACKUP_SUFFIX veranderd)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Bestandsnaam-transformaties:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "dit AANTAL leidende componenten uit bestandsnamen verwijderen"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "EXPRESSIE"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "deze vervangings-EXPRESSIE gebruiken om bestandsnamen met 'sed' te transformeren"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Bestandsnaamselectie-opties (voor zowel in- als uitsluitingspatronen):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "verschil tussen hoofd- en kleine letters negeren"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "patronen komen overeen met begin van bestandsnaam"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "patronen komen overeen met alles na een '/' (is standaard bij uitsluiting)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "hoofdlettergevoelige vergelijking (standaard)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "jokertekens gebruiken (is standaard bij uitsluiting)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "exacte tekenreeksvergelijking"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "jokertekens komen niet overeen met '/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "jokertekens komen overeen met '/' (is standaard bij uitsluiting)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informatieve uitvoer:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "de verwerkte bestanden opsommen"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "SLEUTELWOORD"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "waarschuwingsbeleid"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "voortgangsberichten tonen voor elk AANTALste record (standaard 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ACTIE"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "bij elk controlepunt deze ACTIE uitvoeren"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "een bericht tonen als niet alle links gearchiveerd werden"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAAL"
+
+#: src/tar.c:751
+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 "na verwerking van het archief het totaal aantal bytes printen; als een argument gegeven is, dan het totaal aantal bytes printen als dit SIGNAAL ontvangen wordt; mogelijke signalen zijn: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 en SIGUSR2; de namen zonder het voorvoegsel SIG worden ook geaccepteerd"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "bestandswijzigingstijden in UTC tonen"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "bestandstijden in volledige resolutie tonen"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "gedetailleerde uitvoer naar BESTAND sturen"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "bloknummer binnen archief tonen bij elk bericht"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "bij elke actie om toestemming vragen"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "standaardinstellingen van 'tar' tonen"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "bij opsommen of uitpakken: elke map opsommen die niet aan zoekcriteria voldoet"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "bestands- of archiefnamen na transformatie tonen"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STIJL"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "ook de tekens in TEKENREEKS aanhalen"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "de tekens in TEKENREEKS niet aanhalen"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Compatibiliteitsopties:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "bij aanmaken hetzelfde als --old-archive; bij uitpakken hetzelfde als --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Andere opties:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "het gebruik van potentieel gevaarlijke opties of opdrachten uitschakelen"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Slechts één van de opties '-Acdtrux' of '--test-label' is mogelijk"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Conflicterende compressie-opties"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Onbekende signaalnaam: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Voorbeeldbestand voor tijdsstempel niet gevonden"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Onbekende datumopmaak %2$s wordt vervangen door %1$s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Optie %s: datum '%s' wordt begrepen als %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: bestandenlijst is al gelezen"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: gelezen bestandsnaam bevat een NUL-teken"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "het archief door '%s' filteren"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Geldige argumenten van de optie '--quoting-style' zijn:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Deze* tar gebruikt de volgende standaardwaarden:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Ongeldige blokkenfactor"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Ongeldige bandlengte"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Onjuiste waarde van incrementeel niveau"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Meerdere drempeldata"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Ongeldig versienummer voor luchtige indeling"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' is op dit platform niet mogelijk"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "Waarde van '--checkpoint' is geen geheel getal"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Ongeldige groep"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Ongeldige modus gegeven bij optie"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Ongeldig nummer"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Ongeldige eigenaar"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "De optie '--preserve' is vervallen; gebruik nu '--preserve-permissions --preserve-order'."
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Ongeldige recordgrootte"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Recordgrootte moet een veelvoud zijn van %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Ongeldig aantal elementen"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Slechts één optie '--to-command' is toegestaan"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Ongeldig dichtheidsargument: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Onbekende dichtheid: '%c'"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[BESTAND]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Oude optie '%c' vereist een argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "Optie '--occurrence' betekent niets zonder een bestandenlijst"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "Optie '--occurrence' kan niet worden gebruikt in de gevraagde werkingsmodus"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Voor meerdere archiefbestanden is de optie '-M' vereist"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Opties '--listed-incremental' en '--newer' gaan niet samen"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "Optie '--level' is betekenisloos zonder '--listed-incremental'"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Kan meerdelige archieven niet verifiëren"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Kan ingepakte archieven niet verifiëren"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Kan geen meerdelige ingepakte archieven verwerken"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Kan ingepakte archieven niet samenvoegen"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "Optie '--pax' kan alleen worden gebruikt bij POSIX-archieven"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Deellengte kan niet kleiner zijn dan de recordgrootte"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "Opties '--preserve-order' en '--listed-incremental' gaan niet samen"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Een geheel leeg archief wordt niet aangemaakt"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Opties '-Aru' gaan niet samen met '-f -'"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "U dient een van de opties '-Acdtrux' of '--test-label' op te geven"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Gestopt in fouttoestand vanwege eerdere fouten"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Sleutelwoord %s is onbekend of nog niet geïmplementeerd"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Tijdsstempel valt buiten toegestaan bereik"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Patroon %s kan niet worden gebruikt"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Sleutelwoord %s kan niet worden overstegen"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Onjuiste uitgebreide kop: ontbrekende lengte"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Lengte van uitgebreide kop valt buiten bereik"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Lengte %*s van uitgebreide kop valt buiten bereik"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Onjuiste uitgebreide kop: ontbrekende witruimte na de lengte"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Onjuiste uitgebreide kop: ontbrekend isgelijkteken"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Onjuiste uitgebreide kop: ontbrekend regeleinde"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Genegeerd: onbekend sleutelwoord '%s' in uitgebreide kop"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Aangemaakt paar van sleutelwoord en waarde is te lang (sleutelwoord=%s, lengte=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Onjuiste uitgebreide kop: ongeldige %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Onjuiste uitgebreide kop: overtollige %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Onjuiste uitgebreide kop: ongeldige %s: onverwacht scheidingsteken %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Onjuiste uitgebreide kop: ongeldige %s: oneven aantal waarden"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: ongeldige tijdswaarde"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: onbekende actie voor controlepunt"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "schrijven"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "lezen"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Schrijfcontrolepunt %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Leescontrolepunt %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"'genfile' manipuleert gegevensbestanden voor de testreeksen van GNU paxutils.\n"
+"OPTIES zijn:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Bestandsaanmaak-opties:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "GROOTTE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "een bestand van de gegeven GROOTTE aanmaken"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "naar het bestand NAAM schrijven i.p.v. naar standaarduitvoer"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "bestandsnamen uit BESTAND lezen"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T leest met NUL afgesloten namen"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "blokgrootte voor luchtig bestand"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "POSITIE"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "naar deze positie springen alvorens met schrijven te beginnen"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Bestandsstatistieken-opties:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Synchrone-uitvoer-opties:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPTIE"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "gegeven ARGUMENTEN uitvoeren; dit is nuttig bij '--checkpoint' samen met één van '--cut', '--append', '--touch', of '--unlink'"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "de datum voor de volgende '--touch'"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "de uitgevoerde controlepunten en de afsluitwaarde van OPDRACHT tonen"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Synchroon uit te voeren acties. Deze worden uitgevoerd bij het bereiken van het controlepunt opgegeven met de optie '--checkpoint'."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "BESTAND afkappen tot de grootte opgegeven met een voorafgaande optie '--length' (of 0 als niet gegeven)"
+
+#: tests/genfile.c:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "de toegangs- en wijzigingstijdsstempels van BESTAND bijwerken"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "OPDRACHT uitvoeren"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "BESTAND verwijderen"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Ongeldige grootte: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Getal valt buiten toegestaan bereik: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negatieve grootte: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "Kan status van %s niet bepalen"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "gevraagde bestandslengte is %lu, werkelijke is %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "aangemaakt bestand is niet luchtig"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Fout tijdens getalsontleding, nabij '%s'"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Onbekende datumopmaak"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENTEN]..."
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "Kan '%s' niet openen"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "Kan niet springen"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "Bestandsnaam bevat een NUL-teken"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "Onjuist masker (nabij '%s')"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Onbekend veld '%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "Kan tijdsstempel van '%s' niet zetten"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "Kan '%s' niet verwijderen"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Opdracht is succesvol afgesloten\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Opdracht is mislukt met afsluitwaarde %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Opdracht is afgebroken door signaal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Opdracht is gestopt door signaal %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Opdracht resulteerde in een core-dump\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Opdracht is afgebroken\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "Optie '--stat' vereist bestandsnamen"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: Map werd verwijderd voordat deze gelezen kon worden"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Kan werkmap niet opslaan"
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 00000000..7a874b70
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,2624 @@
+# Polish translation of GNU tar
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 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-2011. „”
+# Thanks to Jakub Bogusz for remarks and corrections, 2003, 2004, 2007, 2008, 2010.
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-12 18:25+0100\n"
+"Last-Translator: Rafał Maszkowski <rzm@icm.edu.pl>\n"
+"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "błędny argument %s opcji %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "niejednoznaczny argument %s opcji %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Prawidłowe argumenty to:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Nieznany parametr ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Śmieci w ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+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."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Składnia:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " albo: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr "[OPCJE...]"
+
+#: gnu/argp-help.c:1684
+#, 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"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Raporty o błędach należy wysyłać do %s .\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Nieznany błąd systemu"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "wyświetlenie tego opisu"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "krótka informacja o opcjach"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAZWA"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "ustawienie nazwy programu"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "poczekaj SEK sekund (domyślnie 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "informacja o wersji programu"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(BŁĄD PROGRAMU) Nieznana wersja!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Za dużo argumentów\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(BŁĄD PROGRAMU) Opcja powinna była być rozpoznana!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "błąd zapisu"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: opcja '%s' jest niejednoznaczna\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: opcja '--%s' nie może mieć argumentu\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: opcja '%c%s' nie może mieć argumentu\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: opcja '--%s' wymaga argumentu\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: nierozpoznana opcja '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: nierozpoznana opcja '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: błędna opcja -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: opcja wymaga argumentu -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: opcja '-W %s' jest niejednoznaczna\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: opcja '-W %s' nie może mieć argumentu\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: opcja '-W %s' wymaga argumentu\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "brak pamięci"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "nie udało się zapisać bieżącego katalogu"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "nie udało się powrócić do początkowego katalogu bieżącego"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yYtT]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Pakowane przez %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\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.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Napisany przez %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s i\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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s,\n"
+"%s, %s, %s, %s i\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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Napisany przez %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Napisany przez %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s i innych.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\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"
+
+#: gnu/version-etc.c:253
+#, c-format
+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"
+
+#. 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Usunięcie początkowego `%s' z nazw plików"
+
+#: lib/paxnames.c:141
+#, 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:154
+msgid "Substituting `.' for empty member name"
+msgstr "Podstawienie `.' zamiast pustej nazwy"
+
+#: lib/paxnames.c:155
+msgid "Substituting `.' for empty hard link target"
+msgstr "Podstawienie `.' zamiast pustej nazwy wskazywanej przez łącze zwykłe"
+
+#: 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
+#, c-format
+msgid "stdout"
+msgstr "stdout"
+
+#: lib/rtapelib.c:429
+#, c-format
+msgid "Cannot connect to %s: resolve failed"
+msgstr "Nie można połączyć się z %s: nie udało się przetłumaczyć nazwy na adres"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Nie można uruchomić zdalnego shella"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Sposób ustawiania pozycji w pliku spoza zakresu"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Błędne kierunek przesuwania wskaźnika pozycji"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Błędne przesunięcie wskaźnika pozycji"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Pozycja w pliku poza zakresem"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Błędna liczba bajtów"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Liczba bajtów poza zakresem"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Przedwczesny EOF"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Błędny kod operacji"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operacja nie przewidziana"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Nieoczekiwany argumenty"
+
+#: rmt/rmt.c:689
+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:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "LICZBA"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "ustawienie poziomu wypisywania informacji diagnostycznych"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "PLIK"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "plik do zapisywania informacji diagnostycznych"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "nie można otworzyć %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "za dużo argumentów"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Bezsensowna komenda"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "To nie wygląda jak archiwum tar"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Licza zapisanych bajtów"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Liczba przeczytanych bajtów"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Liczba skasowanych bajtów: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Błędna wartość record_size"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Nie podana nazwa archiwum"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Nie można zweryfikować archiwum z/do stdin/stdout"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Archiwum jest skompresowane. Należy użyć opcji %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Nie można uaktualnić archiwum skompresowanego"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Na początku taśmy, teraz kończę"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Za dużo błędów, kończę"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Rozmiar rekordu = %lu blok"
+msgstr[1] "Rozmiar rekordu = %lu bloki"
+msgstr[2] "Rozmiar rekordu = %lu bloków"
+
+#: src/buffer.c:913
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek nie zatrzymał się na granicy rekordów"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: zawiera błędny numer części"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Przepełnienie numeru części"
+
+#: src/buffer.c:1123
+#, 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:1129
+msgid "EOF where user reply was expected"
+msgstr "EOF kiedy była oczekiwana odpowiedź użytkownika"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+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:1148
+#, 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 nazwa Podanie nowej nazwy dla następnej (i kolejnych) części\n"
+" q Zakończenie programu tar\n"
+" y albo Enter Kontynuacja\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Uruchomienie powłoki\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Wypisanie tej listy\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Brak nowej części; zakończenie pracy.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Brak nazwy pliku. Spróbuj jeszcze raz.\n"
+
+#: src/buffer.c:1207
+#, 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:1258
+#, c-format
+msgid "%s command failed"
+msgstr "%s polecenie zwróciło błąd"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nie jest kontynuowany w tej części"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s to zły rozmiar (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, 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:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Etykieta archiwum nie pasuje do %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Część %s nie pasuje do %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: nazwa pliku jest za długa do zapisania w nagłówku wieloczęściowego archiwum GNU, zostanie skrócona"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "zapis nie zakończył się na granicy bloków"
+
+#: 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] "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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Zawartości się różnią"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Nieoczekiwany EOF w archiwum"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Różne typy plików"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Uprawnienia się różnią"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Uid się różni"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gid się różni"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Czas modyfikacji się różni"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Rozmiar się różni"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nie dołączony do %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Łącze symboliczne się różni"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Różnią się numery urządzeń"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Sprawdzanie "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Nieznany typ pliku `%c' porównywany jako zwykły plik"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Archiwum zawiera nazwy plików bez początkowych elementów ścieżek."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Archiwum zawiera zmienione nazwy plików."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Podczas weryfikacji mogą nie być znalezione pliki lokalne"
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Samotny blok zerowy przy %s"
+
+#: src/create.c:72
+#, 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:261
+#, 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:267
+#, 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:327
+msgid "Generating negative octal headers"
+msgstr "Tworzenie ujemnych nagłówków ósemkowych"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: nazwa pliku jest za długa (powyżej %d); nie została zapisana"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: nazwa pliku jest za długa (nie może być podzielona); nie została zapisana"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: nazwa łącza jest za długa; nie została zapisana"
+
+#: src/create.c:1064
+#, 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: 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "zawartość nie została zapisana"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Nieznany typ pliku; plik zignorowany"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Brakujące łącza do %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: plik jest niezmieniony; nie został zapisany"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: plik jest w tym archiwum; nie został zapisany"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "katalog nie został zapisany"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: plik zmienił się w trakcie czytania"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: zignorowane gniazdo z nazwą"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: zignorowany plik door"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Przeskoczenie do następnego nagłówka"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Kasowanie z archiwum nie-nagłówka"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: niemożliwie stara data %s"
+
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Nieoczekiwana niespójność przy zakładaniu katalogu"
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Odtwarzanie plików ciągłych (nie sparse) jako zwykłych"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Próba odtworzenia łącza symbolicznego jako zwykłego"
+
+#: src/extract.c:1365
+#, 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:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Niespodziewany nagłówek z długą nazwą"
+
+#: src/extract.c:1379
+#, 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:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Aktualny %s jest nowszy albo w tym samym wieku"
+
+#: src/extract.c:1457
+#, 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:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Nie można przemianować %s na %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Nazwa katalogu została zmieniona z %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Nazwa katalogu została zmieniona"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Katalog jest nowy"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Błędny czas pliku"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Błędny czas modyfikacji (sekundy)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Błędny czas modyfikacji (nanosekundy)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Błędny numer urządzenia"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Błędny numer inodu"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Za długie pole w pliku migawkowym"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Błąd czytania pliku migawkowego"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Nieoczekiwany EOF w pliku migawkowym"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Nieoczekiwana wartość pola w pliku migawkowym"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Brakujące zakończenie rekordu"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Zły format pliku przyrostowego"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Nie obsługiwana wersja formatu przyrostowego: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Zły format katalogu zrzutów: oczekiwano '%c', znaleziono %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Zły format katalogu zrzutów: powtórzone 'X'"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Zły format katalogu zrzutów: pusta nazwa w 'R'"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Zły format katalogu zrzutów: 'T' nie jest poprzedzone przez 'R'"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Zły format katalogu zrzutów: pusta nazwa w 'T'"
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Zły format katalogu zrzutów: nigdy nie użyte 'X'"
+
+#: src/incremen.c:1609
+#, 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:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Bez skasowania katalogu: nie można odczytać stanu"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: katalog na innym urządzeniu: bez skasowania"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Usunięcie %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Nie można usunąć"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Pominięty"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok zer **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok: %s: ** Koniec pliku **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Wartość ósemkowa %.*s w archiwum jest spoza zakresu %s; będzie traktowana jak uzupełnienie dwójkowe"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Archiwum zawiera przestarzałe nagłówki base64"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " łącze do %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " nieznany typ pliku %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Długie łącze--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Długa nazwa--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Nagłówek części--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Kontynuacja od bajtu %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Tworzony jest katalog:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Nie można odczytać bieżącego katalogu"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Nazwa %s zmieniona na %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Nie można przemianować na %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Nazwa zmieniona z %s z powrotem na %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Plik usunięty zanim został przeczytany"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "proces potomny"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "kanał między procesami"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "W nazwach plików użyto znaków dopasowania wzorców"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Użyj --wildcards aby włączyć porównywanie wzorców albo --no-wildcards żeby wyłączyć to ostrzeżenie"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Nie znalazłem w archiwum"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Brak podanego wystąpienia pliku w archiwum"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Nie pasująca etykieta archiwum"
+
+#: src/names.c:949
+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:955
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Błędny format archiwum"
+
+#: 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:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Nieznany styl cytowania `%s'. Użyj `%s --quoting-style=help' żeby zobaczyć listę."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"`tar' GNU zapisuje wiele plików razem na na jednej taśmie lub archiwum dyskowym i może odzyskać poszczególne pliki z archiwum.\n"
+"\n"
+"Przykłady:\n"
+" tar -cf archive.tar foo bar # utworzenie archive.tar z plików foo i bar.\n"
+" tar -tvf archive.tar # wypisanie szczegółowe plików w archive.tar.\n"
+" tar -xf archive.tar # rozpakowanie plików z archive.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Przyrostek kopii zapasowej to `~', jeżeli nie został zmieniony przez --suffix\n"
+"lub SIMPLE_BACKUP_SUFFIX. Sposób zarządzania wersjami może być zmieniony przez\n"
+"--backup lub VERSION_CONTROL, możliwe wartości:\n"
+"\n"
+" none, off bez kopii zapasowych\n"
+" t, numbered zrobienie numerowanych kopii zapasowych\n"
+" nil, existing numerowane jeżeli takie już są, w przeciwnym wypadku proste\n"
+" never, simple proste kopie zapasowe\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Podstawowe tryby działania:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "wypisanie zawartości archiwum"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "rozpakowanie plików z archiwum"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "utworzenie nowego archiwum"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "sprawdzenie różnic między archiwum i plikami na dysku"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "dołączenie plików na końcu archiwum"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "dołączenie tylko plików nowszych niż kopie w archiwum"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "dołączenie plików tar do archiwum"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "skasowanie plików z archiwum (nie na taśmie!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "przetestowanie etykiety archiwum i wyjście"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Modyfikatory działania:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "efektywne przetwarzanie plików rzadkich"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+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:421
+msgid "handle old GNU-format incremental backup"
+msgstr "backup przyrostowy w starym formacie GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "backup przyrostowy w nowym formacie GNU"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "numer poziomu tworzonej albo oglądanej przyrostowej kopii zapasowej"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "bez zakończenia błędem jeżeli niedostępne pliki"
+
+#: src/tar.c:429
+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 "przetwarzanie tylko co LICZBA wystąpienie każdego pliku w archiwum. Opcja działa tylko razem z --delete, --diff, --extract albo --list oraz gdy lista plików jest podana w linii poleceń albo przez opcję -T. LICZBA domyślnie wynosi 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "archiwum o swobodnym dostępie"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "archiwum bez swobodnego dostępu"
+
+#: src/tar.c:439
+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:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "ze sprawdzaniem numerów urządzeń przy tworzeniu archiwów przyrostowych"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Sterowanie zamazywaniem"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "próba weryfikacji archiwum po zapisaniu"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "usunięcie plików po dodaniu do archiwum"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "bez zamazania istniejących plików rozpakowanymi"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "nadpisywanie istniejących plików"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "usunięcie każdego pliku przed zamazaniem go rozpakowanym plikiem"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "opróżnianie starych katalogów przed rozpakowaniem kopii z archiwum"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "zachowanie metadanych istniejących katalogów"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "nadpisywanie metadanych istniejących katalogów przy rozpakowywaniu (domyslnie)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Wybór strumienia wyjściowego"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "rozpakowanie plików na standardowe wyjście"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "POLECENIE"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "przekazanie rozpakowywanych plików do innego programu"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "zignorowanie kodów wyjścia procesów potomnych"
+
+#: src/tar.c:482
+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:487
+msgid "Handling of file attributes:"
+msgstr "Przetwarzanie atrybutów plików:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "nadanie właściciela NAZWA dodanym plikom"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "nadanie grupy NAZWA dodanym plikom"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATA_ALBO_PLIK"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "ustawianie czasu modyfikacji dodanych plików z DATA_ALBO_PLIK"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "ZMIANY"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "ZMIANA uprawnień dodanych plików (podanych symbolicznie)"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODA"
+
+#: src/tar.c:499
+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 "zachowanie czasów dostępu archiwizowanych plików przez ich odtworzenie po czytaniu (METODA='replace'; domyślnie) albo przez nieustawianie czasu (METODA='system')"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "bez odtworzenia czasu modyfikacji rozpakowanego pliku"
+
+#: src/tar.c:505
+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:507
+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:509
+msgid "always use numbers for user/group names"
+msgstr "używanie numerów, nie nazw użytkowników/grup"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "odtworzenie informacji o uprawnieniach plików (domyślnie dla superusera)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "użycie umask użytkownika przy odtwarzaniu uprawnień z archiwum (domyślnie dla zwykłych użytkowników)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "pliki do rozpakowania posortowane jak w archiwum"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "to samo co równocześnie -p i -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "ustawianie czasów zmian i uprawnień odtworzonych katalogów opóźnione do końca rozpakowywania"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "wyłączenie efektu opcji --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Wybór i przełączanie urządzeń:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIWUM"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "użycie pliku lub urządzenia ARCHIWUM"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "plik archiwum lokalny, nawet jeżeli ma dwukropek"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "użyj POLECENIA zamiast /etc/rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "użyj POLECENIA zamiast rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "podanie napędu i gęstości"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "tworzenie/wypisanie/rozpakowanie archiwum wieloczęściowego"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "zmiana taśmy po zapisaniu LICZBA x 1024 bajtów"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "uruchomienie skryptu na końcu taśmy (włącza -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "użycie/uaktualnienie numeru części w PLIKU"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Parametry bloków:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKI"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOKI x 512 bajtów na rekord"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "LICZBA bajtów w rekordzie, wielokrotność 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignorowanie wyzerowanych bloków w archiwum (oznacza EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "podzielenie na bloki przy odczycie (dla pipe 4.2BSD)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Wybór formatu archiwum:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "utworzenie archiwum w danym formacie."
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT może być jednym z następujących:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "stary format tara z V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "format GNU dla tara <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "format tara GNU 1.13"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "format POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "format POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "to samo co pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "to samo co --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "to samo co --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "słowo_kluczowe[[:]=wartość][,słowo_kluczowe[[:]=wartość]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "ustawianie słów kluczowych formatu pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEKST"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "utworzenie archiwum z nazwą wolumenu TEKST. Przy wypisywaniu/rozpakowaniu TEKST będzie użyty jako wzorzec dopasowania dla nazwy"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Opcje kompresji"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "użycie przyrostka nazwy archiwum do ustalenia programu kompresującego"
+
+#: src/tar.c:618
+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:620
+msgid "PROG"
+msgstr "PROGRAM"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtrowanie przez PROGRAM (akceptujący -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Wybór plików lokalnych:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "KATALOG"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "przejście do KATALOGU"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "nazwy plików do rozpakowania lub spakowania z PLIKU"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T czyta nazwy zakończone zerem, wyłącz -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "wyłączenie efektu użycia opcji --null"
+
+#: src/tar.c:650
+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:652
+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:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "WZORZEC"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "wykluczenie nazw pasujących do WZORCA"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "wykluczenie nazw pasujących do wzorców w PLIKU"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "wykluczenie katalogów zawierających znacznik pamięci podręcznej CACHEDIR.TAG, oprócz samych plików znacznika"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "wykluczenie katalogów zawierających CACHEDIR.TAG i ich podkatalogów"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "wykluczenie katalogów zawierających CACHEDIR.TAG"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "wykluczenie katalogów zawierających PLIK i ich podkatalogów"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "wykluczenie katalogów zawierających PLIK"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "wykluczenie katalogów systemu administrowania wersjami"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "wykluczenie plików kopii zapasowych i rezerwacji zasobów"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "bez automatycznego zagłębiania się w katalogi"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "pozostanie w jednym systemie plików"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "zagłębianie się w podkatalogi (domyślnie)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "bez usuwania początkowego `/' z nazw plików"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "archiwizacja plików, na które wskazują łącza symboliczne"
+
+#: src/tar.c:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "NAZWA-PLIKU"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "zaczęcie od pliku NAZWA-PLIKU w archiwum"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "zapisanie tylko plików nowszych niż DATA albo data PLIKU"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATA"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "porównywanie daty i czasu tylko dla zmienionych danych"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "TRYB"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "kopia zapasowa przed usunięciem, wybranie TRYBU zarządzania wersjami"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "NAPIS"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "kopia zapasowa przed usunięciem, zmiana domyślnego przyrostka ('~', jeżeli nie zmieniony przez zmienną środowiska SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Zmiany nazwy plików:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "WYRAŻENIE"
+
+#: src/tar.c:708
+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:714
+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:717
+msgid "ignore case"
+msgstr "traktowanie tak samo małych i wielkich liter"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "nazwy porównywane od początków nazw plików"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "wzorce odnoszą się do nazw po każdym / (domyślnie)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "odróżnianie małych i wielkich liter (domyślnie)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "używanie wildcards (domyślnie dla wykluczania)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "dosłowne porównywanie napisów"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "wildcards nie są porównywane z `/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "wildcards są porównywane z '/' (domyślnie dla wykluczania)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informacje:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "wypisywanie szczegółów o przetwarzanych plikach"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "SŁOWO KLUCZOWE"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "sterowanie ostrzeżeniami"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "wypisywanie co ILE rekordów informacji o przetwarzaniu (domyslnie co 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "AKCJA"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "wykonanie AKCJI przy każdym punkcie kontrolnym"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "wypisanie komunikatu jeżeli nie wszytkie łącza zostały zapisane"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SYGNAŁ"
+
+#: src/tar.c:751
+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 "wypisanie całkowitej liczby bajtów po przetworzeniu archiwum; z argumentem - wypisanie całkowitej liczby bajtów kiedy zostanie wysłany SYGNAŁ; Dozwolone sygnały: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 i SIGUSR2; nazwy bez prefiksu SIG są też akceptowane"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "wypisanie czasów modyfikacji plików w UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "wypisanie czasu pliku z pełną dokładnością"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "zapisanie dokładnych informacji w PLIKU"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "pokazanie przy każdym komunikacie numeru bloku w archiwum"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "proszenie o potwierdzenie każdego działania"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "wypisanie domyślnych ustawień tar-a"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "wypisywanie każdego katalogu nie pasującego do kryteriów szukania przy wypisywaniu albo rozpakowywaniu archiwum"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "pokazanie nazw plików albo archiwów po przeszktałceniu"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STYL"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "dodatkowe ujmowanie w znaki cytowania znaków z ŁAŃCUCHA"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "wyłączenie ujmowania w znaki cytowania znaków z ŁAŃCUCHA"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Opcje kompatybilności:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "przy tworzeniu: to samo co --old-archive przy odtwarzaniu: to co --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Inne opcje:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "wyłączenie używania potencjalnie szkodliwych opcji"
+
+#: src/tar.c:930
+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:940
+msgid "Conflicting compression options"
+msgstr "Niezgodne opcje kompresji"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Nieznana nazwa sygnału: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Nie znaleziono pliku z datą"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Postawienie %s w miejscu nieznanego formatu daty %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Opcja %s: Potraktowanie daty `%s' jako %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: lista plików już przeczytana"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: przeczytana nazwa pliku zawiera znak NUL"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtrowanie archiwum przez %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Prawidłowe argumenty dla opcji --quoting-style:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Ten* tar ma domyślne parametry:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Błędny współczynnik łączenia w bloki"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Błędna długość taśmy"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Błędny numer poziomu przyrostowej kopii zapasowej"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Więcej niż jedna data graniczna"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Błędna wartość wersji plików rzadkich"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "ten system nie pozwala na użycie --atime-preserve='system'"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "wartość --checkpoint nie jest liczbą całkowitą"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Błędna grupa"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Błędne uprawnienia podane w opcji"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Błędny numer"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Błędny właściciel"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Opcja --preserve jest przestarzała, zamiast niej użyj --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Błędna wielkość rekordu"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Rozmiar rekordu musi być wielokrotnością %d"
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Błędna ilość elementów"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Wolno użyć tylko jednej opcji polecenia --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Błędna specyfikacja gęstości: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Nieznana gęstość: `%c'"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[PLIK]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Stara opcja `%c' wymaga argumentu."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence nie ma znaczenia bez listy plików"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence nie może być użyte w tym trybie"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Archiwum składające się z wielu plików wymaga opcji `-M'"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Nie można połączyć --listed-incremental z --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "opcja --level nic nie znaczy bez użycia --listed-incremental"
+
+#: src/tar.c:2423
+#, 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: 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Nie można zweryfikować archiwum wieloczęściowego"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Nie można zweryfikować archiwum skompresowanego"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Nie można używać wieloczęściowego archiwum skompresowanego"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Nie można połączyć skompresowanych archiwów"
+
+#: src/tar.c:2462
+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:2492
+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:2495
+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:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Tchórzliwie odmawiam utworzenia pustego archiwum"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Opcje `-Aru' są niekompatybilne z `-f -'"
+
+#: src/tar.c:2621
+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:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Zakończenie w stanie błędu z powodu uprzednich błędów"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+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:164
+#, 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:174
+msgid "Time stamp is out of allowed range"
+msgstr "Czas spoza dozwolonego zakresu"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Nie może być użyty wzorzec %s"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Słowo kluczowe %s nie może być zastąpione"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Błędny nagłówek rozszerzony: brakuje długości"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Długość nagłówka rozszerzonego jest poza dozwolonym zakresem"
+
+#: src/xheader.c:557
+#, 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:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Błędny nagłówek rozszerzony: brakuje odstępu po długości"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Błędny nagłówek rozszerzony: brakuje znaku równości"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Błędny nagłówek rozszerzony: brakuje znaku mowej linii"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Zignorowane nieznane słowo kluczowe nagłówka rozszerzonego `%s'"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Wygenerowana para słowo kluczowe/wartość jest za długa (słowo kluczowe=%s, długość=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Błędny nagłówek rozszerzony: błędny %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Błędny nagłówek rozszerzony: nadmiarowe %s=%s"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, 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"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: błędna specyfikacja ograniczenia czasu"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: nieznana akcja przy punkcie kontrolnym"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "zapis"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "odczyt"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Punkt kontrolny zapisu %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Punkt kontrolny czytania %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile służy do operacji na plikach w ramach zestawu testów GNU paxutils.\n"
+"OPCJE:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Opcje tworzenia plików:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "ROZMIAR"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Utworzenie pliku o podanym ROZMIARZE"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Pisanie na pliku NAZWA zamiast na standardowe wyjście"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Czytanie nazw plików z PLIKU"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T czyta nazwy zakończone zerem"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Rozmiar bloku pliku rzadkiego"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "POZYCJA"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Ustawienie pozycji zapisu przez zapisem danych"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Opcje statystyki plików"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Opcje równoczesnego wykonywania:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPCJA"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Wykonanie ARGUMENTÓW. Przydatne z --checkpoint i jednym z --cut, --append, --touch albo --unlink"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Ustaw datę następnej opcji --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Wypisanie wykonanych punktów kontrolnych i kodu wyjścia POLECENIA"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Akcje równoczesnego wykonania. Są podejmowane po osiągnięciu punktu kontrolnego o numerze podanym przez opcję --checkpoint"
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Obcięcie PLIKU do rozmiaru podanego przez poprzednia opcję --length (albo 0, jeżeli nie został podany)"
+
+#: tests/genfile.c:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "Uaktualnienie czasów dostepu i modyfikacji PLIKU"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Wykonanie POLECENIA"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Usunięcie PLIKU"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Błędny rozmiar: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Liczba spoza dozwolonego zakresu: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Ujemny rozmiar: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "błąd stat(%s)"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "żądana długość pliku %lu, faktyczna %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "utworzony plik nie jest rzadki"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Błąd przetwarzania liczby blisko `%s'"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Nieznany format daty"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENTY...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "nie można otworzyć `%s'"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "nie można ustawić pozycji"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "nazwa pliku zawiera znak NUL"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "nieprawidłowa maska (koło `%s')"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr " Nieznane pole `%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "nie można ustawić czasu na `%s'"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "nie można usunąć `%s'"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Polecenie zakończyło się poprawnie\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Polecenie zakończyło się niepoprawnie z kodem %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Polecenie zostało zakończone sygnałem %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Polecenie zostało zatrzymane sygnałem %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Został zapisany obraz pamięci (core dump) polecenia\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Polecenie zakończone\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat wymaga podania nazwy pliku"
diff --git a/po/pt.po b/po/pt.po
new file mode 100644
index 00000000..2407f5a6
--- /dev/null
+++ b/po/pt.po
@@ -0,0 +1,1606 @@
+# Portuguese translation of the "tar" messages
+# Copyright (1995) Free Software Foundation, Inc.
+# Antnio Jos Coutinho <ajc@di.uminho.pt>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.11.9\n"
+"POT-Creation-Date: 1997-04-25 16:58-0400\n"
+"PO-Revision-Date: 1996-04-20 21:50\n"
+"Last-Translator: Antnio Jos Coutinho <ajc@di.uminho.pt>\n"
+"Language-Team: Portuguese <pt@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: src/buffer.c:160
+#, fuzzy
+msgid "Total bytes written: "
+msgstr "Nmero total de de \"bytes\" escritos: %d\n"
+
+#: src/buffer.c:255
+#, c-format
+msgid "Cannot close file #%d"
+msgstr "No se consegue fechar o ficheiro #%d"
+
+#: src/buffer.c:271
+#, c-format
+msgid "Cannot close descriptor %d"
+msgstr "No se consegue fechar o ficheiro de descritor %d"
+
+#: src/buffer.c:274
+#, fuzzy, c-format
+msgid "Cannot properly duplicate %s"
+msgstr "No se consegue redireccionar %s"
+
+#: src/buffer.c:288 src/buffer.c:298
+msgid "Cannot use compressed or remote archives"
+msgstr "No se pode usar arquivos comprimidos ou remotos"
+
+#: src/buffer.c:334 src/buffer.c:391 src/buffer.c:498 src/buffer.c:547
+msgid "Cannot open pipe"
+msgstr "No se consegue abrir \"pipe\""
+
+#: src/buffer.c:338 src/buffer.c:502
+msgid "Cannot fork"
+msgstr "No se consegue criar processo ( \"fork\" )"
+
+#. The new born child tar is here!
+#: src/buffer.c:351 src/buffer.c:516
+msgid "tar (child)"
+msgstr "tar (filho)"
+
+#: src/buffer.c:353
+msgid "(child) Pipe to stdin"
+msgstr "(filho) \"pipe\" para \"stdin\""
+
+#: src/buffer.c:378 src/buffer.c:423 src/buffer.c:535 src/buffer.c:580
+#, c-format
+msgid "Cannot open archive %s"
+msgstr "No se consegue abrir o arquivo %s"
+
+#: src/buffer.c:381
+msgid "Archive to stdout"
+msgstr "Arquivo para stdout"
+
+#: src/buffer.c:384 src/buffer.c:405 src/buffer.c:540 src/buffer.c:561
+#, c-format
+msgid "Cannot exec %s"
+msgstr "No se consegue executar %s"
+
+#: src/buffer.c:395 src/buffer.c:551
+msgid "Child cannot fork"
+msgstr "Processo filho no consegue executar \"fork\""
+
+#. The child tar is still here! Launch the compressor.
+#: src/buffer.c:401
+msgid "((child)) Pipe to stdout"
+msgstr "((filho)) \"pipe\" para \"stdout\""
+
+#. The new born grandchild tar is here!
+#: src/buffer.c:411 src/buffer.c:567
+msgid "tar (grandchild)"
+msgstr "tar (neto)"
+
+#. Prepare for reblocking the data from the compressor into the archive.
+#: src/buffer.c:415
+msgid "(grandchild) Pipe to stdin"
+msgstr "(neto) \"Pipe\" para \"stdout\""
+
+#: src/buffer.c:450
+msgid "Cannot read from compression program"
+msgstr "No se consegue ler do programa de compresso"
+
+#: src/buffer.c:518
+msgid "(child) Pipe to stdout"
+msgstr "(filho) \"pipe\" para \"stdout\""
+
+#: src/buffer.c:537
+msgid "Archive to stdin"
+msgstr "Arquivo para stdin"
+
+#. The child tar is still here! Launch the uncompressor.
+#: src/buffer.c:557
+msgid "((child)) Pipe to stdin"
+msgstr "((filho)) \"pipe\" para \"stdin\""
+
+#. Prepare for unblocking the data from the archive into the uncompressor.
+#: src/buffer.c:571
+msgid "(grandchild) Pipe to stdout"
+msgstr "(neto) \"Pipe\" para \"stdout\""
+
+#: src/buffer.c:611
+msgid "Cannot write to compression program"
+msgstr "No se consegue escrever para o programa de compresso"
+
+#: src/buffer.c:616
+#, c-format
+msgid "Write to compression program short %d bytes"
+msgstr "Faltam %d bytes no que se escreveu para o programa de compresso"
+
+#: src/buffer.c:675
+msgid "Invalid value for record_size"
+msgstr "Valor invlido para tamanho de registo (record_size)"
+
+#: src/buffer.c:678
+#, fuzzy
+msgid "No archive name given"
+msgstr "No deram nome de arquivo, que fazer?"
+
+#: src/buffer.c:705
+#, c-format
+msgid "Could not allocate memory for blocking factor %d"
+msgstr "No se conseguiu reservar memria para um factor de bloco %d"
+
+#: src/buffer.c:714
+msgid "Cannot verify multi-volume archives"
+msgstr "No se pode verificar arquivos multi-volume"
+
+#: src/buffer.c:719
+msgid "Cannot use multi-volume compressed archives"
+msgstr "No se pode de usar arquivos multi-volume comprimidos"
+
+#: src/buffer.c:721
+#, fuzzy
+msgid "Cannot verify compressed archives"
+msgstr "No se pode actualizar o verificar um arquivo comprimido"
+
+#: src/buffer.c:734
+#, fuzzy
+msgid "Cannot update compressed archives"
+msgstr "No se pode actualizar o verificar um arquivo comprimido"
+
+#: src/buffer.c:745
+msgid "Cannot verify stdin/stdout archive"
+msgstr "No se pode de verificar arquivos stdin ou stdout"
+
+#: src/buffer.c:797 src/buffer.c:1673 src/compare.c:522 src/incremen.c:456
+#: src/names.c:861
+#, c-format
+msgid "Cannot open %s"
+msgstr "No se consegue abrir %s"
+
+#: src/buffer.c:838
+#, fuzzy, c-format
+msgid "Archive not labelled to match `%s'"
+msgstr "O arquivo no tem etiqueta e no condiz com %s"
+
+#: src/buffer.c:841 src/buffer.c:1172
+#, c-format
+msgid "Volume `%s' does not match `%s'"
+msgstr ""
+
+#: src/buffer.c:880
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Escreve-se o ponto de verificao %d"
+
+#: src/buffer.c:1049 src/incremen.c:513
+#, c-format
+msgid "Cannot write to %s"
+msgstr "No se consegue escrever em %s"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Only wrote %u of %u bytes to %s"
+msgstr "S se escreveram %u \"bytes\" de um total de %u em %s"
+
+#: src/buffer.c:1064
+#, c-format
+msgid "Read error on %s"
+msgstr "Erro de leitura sobre %s"
+
+#: src/buffer.c:1067
+msgid "At beginning of tape, quitting now"
+msgstr "No princpio da fita, pra-se imediatamente"
+
+#: src/buffer.c:1073
+msgid "Too many errors, quitting"
+msgstr "Erros de mais: termina-se"
+
+#: src/buffer.c:1089
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Leu-se o ponto de verificao %d"
+
+#: src/buffer.c:1180 src/extract.c:965
+#, c-format
+msgid "Reading %s\n"
+msgstr "Leitura de %s\n"
+
+#: src/buffer.c:1184
+msgid "WARNING: No volume header"
+msgstr "ATENO: No h cabealho de volume"
+
+#: src/buffer.c:1191
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s no tem continuidade neste volume"
+
+#: src/buffer.c:1201
+#, c-format
+msgid "%s is the wrong size (%ld != %ld + %ld)"
+msgstr "%s no a dimenso correcta (%ld != %ld + %ld)"
+
+#: src/buffer.c:1212
+msgid "This volume is out of sequence"
+msgstr "Este volume est fora da sequncia"
+
+#: src/buffer.c:1240
+#, fuzzy, c-format
+msgid "Record size = %d blocks"
+msgstr "Tamanho de bloco (blocksize) = blocos de %d"
+
+#: src/buffer.c:1261
+#, c-format
+msgid "Archive %s EOF not on block boundary"
+msgstr ""
+"O fim-de-ficheiro do arquivo %s no se encontra na fronteira de um bloco"
+
+#: src/buffer.c:1269
+#, c-format
+msgid "Only read %d bytes from archive %s"
+msgstr "S se leram %d \"bytes\" do arquivo %s"
+
+#: src/buffer.c:1294 src/buffer.c:1403 src/buffer.c:1517
+#, c-format
+msgid "WARNING: Cannot close %s (%d, %d)"
+msgstr "ATENO: No se consegue fechar %s (%d, %d)"
+
+#. Lseek failed. Try a different method.
+#: src/buffer.c:1350
+msgid "Could not backspace archive file; it may be unreadable without -i"
+msgstr "No se conseguiu recuar o arquivo; pode ser ilegvel sem -i"
+
+#: src/buffer.c:1430
+#, c-format
+msgid "Child died with signal %d%s"
+msgstr "Processo filho morreu com o sinal %d%s"
+
+#: src/buffer.c:1432
+msgid " (core dumped)"
+msgstr " (imagem da memria despejada \"core dumped\")"
+
+#: src/buffer.c:1441
+#, c-format
+msgid "Child returned status %d"
+msgstr "Processo filho terminou com estado %d"
+
+#: src/buffer.c:1546
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Preparar o volume no. %d para %s e premir \"Return\": "
+
+#: src/buffer.c:1552
+msgid "EOF where user reply was expected"
+msgstr ""
+
+#: src/buffer.c:1557 src/buffer.c:1586
+msgid "WARNING: Archive is incomplete"
+msgstr "ATENO: O arquivo est incompleto"
+
+#: src/buffer.c:1570
+#, fuzzy
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nome] Dar um novo nome para o prximo (e seguintes) volume(s)\n"
+" q Cancelar o tar\n"
+" ! Criar uma \"sub-shell\" (interpretador de comandos)\n"
+" ? Escrever esta lista\n"
+
+#. Quit.
+#: src/buffer.c:1581
+msgid "No new volume; exiting.\n"
+msgstr "No h novo volume; termina-se. \n"
+
+#: src/buffer.c:1616
+msgid "Cannot fork!"
+msgstr "No se consegue criar processo! ( \"fork\" )"
+
+#: src/buffer.c:1626
+#, c-format
+msgid "Cannot exec a shell %s"
+msgstr "No se consegue executar uma \"shell\" %s"
+
+#: src/create.c:188
+msgid "Removing drive spec from names in the archive"
+msgstr "Retira-se a especificao do \"drive\" aos nomes no arquivo"
+
+#: src/create.c:199 src/extract.c:415
+#, fuzzy
+msgid "Removing leading `/' from absolute path names in the archive"
+msgstr "Retira-se / dos caminhos dos ficheiros (path names), no arquivo"
+
+#. We blew it, maybe.
+#: src/create.c:532
+#, c-format
+msgid "Wrote %ld of %ld bytes to file %s"
+msgstr "Escreveram-se %ld \"bytes\" de um total de %ld, no ficheiro %s"
+
+#: src/create.c:560 src/create.c:584 src/create.c:1083
+#, c-format
+msgid "Read error at byte %ld, reading %d bytes, in file %s"
+msgstr ""
+"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do "
+"ficheiro %s"
+
+#: src/create.c:596 src/create.c:1096
+#, c-format
+msgid "File %s shrunk by %d bytes, padding with zeros"
+msgstr "O ficheiro %s diminuiu em %d \"bytes\", ser completado com zeros"
+
+#: src/create.c:612
+#, c-format
+msgid "Amount actually written is (I hope) %d.\n"
+msgstr "A quantidade realmente escrita %d (esperemos!).\n"
+
+#: src/create.c:712 src/create.c:973 src/create.c:1149
+#, c-format
+msgid "Cannot add file %s"
+msgstr "No possvel acrescentar o ficheiro %s"
+
+#: src/create.c:742
+#, c-format
+msgid "%s: is unchanged; not dumped"
+msgstr "%s: no foi modificado; no ser arquivado"
+
+#: src/create.c:752
+#, c-format
+msgid "%s is the archive; not dumped"
+msgstr "%s o arquivo; no ser arquivado"
+
+#: src/create.c:797
+#, fuzzy
+msgid "Removing leading `/' from absolute links"
+msgstr "Retira-se \"/\" das ligaes (\"links\") absolutas "
+
+#: src/create.c:827 src/create.c:1113 src/create.c:1173 src/create.c:1427
+#, c-format
+msgid "Cannot remove %s"
+msgstr "No se consegue apagar %s"
+
+#: src/create.c:1197
+#, fuzzy, c-format
+msgid "Cannot add directory %s"
+msgstr "No se consegue abrir a directoria %s"
+
+#: src/create.c:1322
+#, c-format
+msgid "%s: On a different filesystem; not dumped"
+msgstr "%s: Est num outro sistema de ficheiros; no ser arquivado"
+
+#: src/create.c:1333 src/incremen.c:186
+#, c-format
+msgid "Cannot open directory %s"
+msgstr "No se consegue abrir a directoria %s"
+
+#: src/create.c:1357
+#, c-format
+msgid "File name %s%s too long"
+msgstr "Nome de ficheiro %s%s longo demais"
+
+#: src/create.c:1432
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipo de ficheiro desconhecido; ficheiro ignorado"
+
+#: src/compare.c:50
+#, c-format
+msgid "Could not allocate memory for diff buffer of %d bytes"
+msgstr ""
+"No se conseguiu reservar memria para um \"buffer\" de comparao, de %d "
+"\"bytes\""
+
+#: src/compare.c:96 src/compare.c:317 src/compare.c:347
+#, c-format
+msgid "Cannot read %s"
+msgstr "No se consegue ler %s"
+
+#: src/compare.c:101 src/compare.c:324 src/compare.c:354
+#, fuzzy, c-format
+msgid "Could only read %d of %ld bytes"
+msgstr "%s: S se pde ler %d de um total de %ld \"bytes\"\n"
+
+#: src/compare.c:110 src/compare.c:130 src/compare.c:392
+#, fuzzy
+msgid "Data differs"
+msgstr "%s: Os dados so diferentes\n"
+
+#: src/compare.c:159 src/extract.c:329 src/extract.c:630 src/list.c:380
+#: src/list.c:872
+msgid "Unexpected EOF on archive file"
+msgstr "Fim de ficheiro inesperado no ficheiro de arquivo"
+
+#: src/compare.c:411
+#, fuzzy
+msgid "File does not exist"
+msgstr "%s: No existe\n"
+
+#: src/compare.c:414 src/compare.c:574
+#, c-format
+msgid "Cannot stat file %s"
+msgstr "No se consegue executar \"stat\" para o ficheiro %s"
+
+#: src/compare.c:448
+msgid "Verify "
+msgstr "Verificao"
+
+#: src/compare.c:455
+#, c-format
+msgid "Unknown file type '%c' for %s, diffed as normal file"
+msgstr ""
+"Tipo de ficheiro \"%c\" desconhecido para %s; comparado como um ficheiro "
+"normal"
+
+#: src/compare.c:480 src/compare.c:737
+#, fuzzy
+msgid "Not a regular file"
+msgstr "%s: No um ficheiro normal\n"
+
+#: src/compare.c:487 src/compare.c:718
+msgid "Mode differs"
+msgstr ""
+
+#: src/compare.c:494
+#, fuzzy
+msgid "Uid differs"
+msgstr "%s: %s diferente\n"
+
+#: src/compare.c:496
+#, fuzzy
+msgid "Gid differs"
+msgstr "%s: %s diferente\n"
+
+#: src/compare.c:500
+#, fuzzy
+msgid "Mod time differs"
+msgstr "Tempo de modificao"
+
+#: src/compare.c:504 src/compare.c:746
+#, fuzzy
+msgid "Size differs"
+msgstr "%s: Ligao (\"link\") simblica diferente\n"
+
+#: src/compare.c:551 src/compare.c:784
+#, c-format
+msgid "Error while closing %s"
+msgstr "Erro durante o fecho de %s"
+
+#: src/compare.c:571
+#, fuzzy
+msgid "Does not exist"
+msgstr "%s: No existe\n"
+
+#: src/compare.c:585
+#, fuzzy, c-format
+msgid "Not linked to %s"
+msgstr "%s: No est ligado a %s\n"
+
+#: src/compare.c:605
+#, fuzzy
+msgid "No such file or directory"
+msgstr "%s: Ficheiro, ou directoria, no existe\n"
+
+#: src/compare.c:608
+#, c-format
+msgid "Cannot read link %s"
+msgstr "No se consegue ler a ligao (\"link\") %s"
+
+#: src/compare.c:616
+#, fuzzy
+msgid "Symlink differs"
+msgstr "%s: Ligao (\"link\") simblica diferente\n"
+
+#: src/compare.c:655
+#, fuzzy
+msgid "Device numbers changed"
+msgstr "%s: Os nmeros do perifrico mudaram\n"
+
+#: src/compare.c:668
+#, fuzzy
+msgid "Mode or device-type changed"
+msgstr "%s: O modo ou o tipo de perifrico mudou\n"
+
+#: src/compare.c:713
+#, fuzzy
+msgid "No longer a directory"
+msgstr "%s: J no uma directoria\n"
+
+#: src/compare.c:755 src/names.c:225 src/update.c:55
+#, c-format
+msgid "Cannot open file %s"
+msgstr "No se consegue abrir o ficheiro %s"
+
+#: src/compare.c:764
+#, c-format
+msgid "Cannot seek to %ld in file %s"
+msgstr "No se consegue mudar (\"seek\") para a posio %ld do ficheiro %s"
+
+#: src/compare.c:837
+msgid "Could not rewind archive file for verify"
+msgstr "No se conseguiu rebobinar o arquivo para verificao"
+
+#: src/compare.c:864
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "ERRO DE VERIFICAO: Encontraram-se %d cabealhos invlidos"
+
+#: src/delete.c:81
+msgid "Could not re-position archive file"
+msgstr "No se conseguiu reposicionar o ficheiro arquivo"
+
+#: src/delete.c:177 src/update.c:156
+msgid "This does not look like a tar archive"
+msgstr "Isto no se parece a um arquivo \"tar\""
+
+#: src/delete.c:182 src/update.c:161
+msgid "Skipping to next header"
+msgstr "Salta para prximo cabealho"
+
+#: src/delete.c:260
+msgid "Deleting non-header from archive"
+msgstr "Apaga-se do arquivo um no-cabealho"
+
+#: src/extract.c:107
+#, c-format
+msgid "%s: Cannot change mode to %0.4o"
+msgstr "%s: No se pode mudar para o modo para %0.4o"
+
+#: src/extract.c:149
+#, c-format
+msgid "%s: Could not change access and modification times"
+msgstr "%s: No se conseguiu mudar os tempos de acesso e modificao"
+
+#: src/extract.c:176
+#, fuzzy, c-format
+msgid "%s: Cannot lchown to uid %d gid %d"
+msgstr "%s: No se pode fazer \"chown\" para \"uid\" %d \"gid\" %d"
+
+#: src/extract.c:182 src/extract.c:191
+#, c-format
+msgid "%s: Cannot chown to uid %d gid %d"
+msgstr "%s: No se pode fazer \"chown\" para \"uid\" %d \"gid\" %d"
+
+#: src/extract.c:245
+#, c-format
+msgid "%s: Cannot change owner to uid %d, gid %d"
+msgstr "%s: No se pode mudar o dono (owner) para \"uid\" %d, \"gid\" %d"
+
+#: src/extract.c:338 src/extract.c:348 src/extract.c:665
+#, c-format
+msgid "%s: Could not write to file"
+msgstr "%s: No se conseguiu escrever para o ficheiro"
+
+#: src/extract.c:351 src/extract.c:668
+#, c-format
+msgid "%s: Could only write %d of %d bytes"
+msgstr "%s: Apenas se conseguiu escrever %d de um total de %d bytes"
+
+#: src/extract.c:425
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr ""
+
+#: src/extract.c:568
+msgid "Extracting contiguous files as regular files"
+msgstr "Esto-se a extrair ficheiros contguos como sendo ficheiros normais"
+
+#: src/extract.c:580
+#, c-format
+msgid "%s: Could not create file"
+msgstr "%s: No foi possvel criar o ficheiro"
+
+#: src/extract.c:644
+#, c-format
+msgid "%d at %d\n"
+msgstr "%d em %d\n"
+
+#: src/extract.c:707
+#, c-format
+msgid "%s: Error while closing"
+msgstr "%s: Erro ao fechar"
+
+#: src/extract.c:739
+#, c-format
+msgid "%s: Could not create symlink to `%s'"
+msgstr "%s: No se conseguiu criar uma ligao simblica (link) para `%s'"
+
+#: src/extract.c:753
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr ""
+"Est-se a tentar extrair ligaes simblicas (sym. links) como ligaes "
+"fsicas (hard links)"
+
+#: src/extract.c:789
+#, c-format
+msgid "%s: Could not link to `%s'"
+msgstr "%s: No se pde fazer ligao (link) para `%s'"
+
+#: src/extract.c:822
+#, c-format
+msgid "%s: Could not make node"
+msgstr "%s: No se pde criar um nodo"
+
+#: src/extract.c:848
+#, c-format
+msgid "%s: Could not make fifo"
+msgstr "%s: No se pde criar um \"fifo\""
+
+#: src/extract.c:924
+#, c-format
+msgid "%s: Could not create directory"
+msgstr "%s: No se pde criar uma directoria"
+
+#: src/extract.c:935
+#, c-format
+msgid "Added write and execute permission to directory %s"
+msgstr "Acrescentaram-se permisses de escrita e de leitura directoria %s"
+
+#: src/extract.c:973
+#, c-format
+msgid "Cannot extract `%s' -- file is continued from another volume"
+msgstr ""
+"No se pode extrar `%s' -- a continuao de um ficheiro de outro volume"
+
+#: src/extract.c:983
+msgid "Visible long name error"
+msgstr "Erro evidente num nome longo"
+
+#: src/extract.c:991
+#, c-format
+msgid "Unknown file type '%c' for %s, extracted as normal file"
+msgstr ""
+"Tipo \"%c\" do ficheiro \"%s\" desconhecido; extrai-se como um ficheiro "
+"normal"
+
+#: src/incremen.c:231 src/incremen.c:598 src/update.c:131
+#, c-format
+msgid "Cannot stat %s"
+msgstr "No se consegue executar \"stat\" para %s"
+
+#: src/incremen.c:268
+#, c-format
+msgid "Directory %s has been renamed"
+msgstr "Mudou-se o nome do directoria %s"
+
+#: src/incremen.c:279
+#, c-format
+msgid "Directory %s is new"
+msgstr "O directoria %s novo"
+
+#: src/incremen.c:437 src/names.c:461
+msgid "Could not get current directory"
+msgstr "No se conseguiu determinar a directoria corrente"
+
+#: src/incremen.c:442 src/names.c:466
+#, c-format
+msgid "Could not get current directory: %s"
+msgstr "No se conseguiu determinar a directoria corrente: %s"
+
+#: src/incremen.c:446
+#, fuzzy, c-format
+msgid "File name %s/%s too long"
+msgstr "Nome de ficheiro %s%s longo demais"
+
+#: src/incremen.c:586
+#, c-format
+msgid "Cannot chdir to %s"
+msgstr "No se pode mudar para a directoria %s"
+
+#: src/incremen.c:675
+msgid "Unexpected EOF in archive"
+msgstr "Fim de ficheiro inesperado no arquivo"
+
+#: src/incremen.c:704
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Apaga-se %s\n"
+
+#: src/incremen.c:706
+#, c-format
+msgid "Error while deleting %s"
+msgstr "Erro quando se apagava %s"
+
+#: src/list.c:84
+#, c-format
+msgid "Omitting %s"
+msgstr "Omite-se %s"
+
+#: src/list.c:123
+#, c-format
+msgid "block %10ld: ** Block of NULs **\n"
+msgstr "bloco %10ld: ** Bloco de NULs **\n"
+
+#: src/list.c:134
+#, c-format
+msgid "block %10ld: ** End of File **\n"
+msgstr "bloco %10ld: ** Fim-de-ficheiro **\n"
+
+#: src/list.c:145
+msgid "Hmm, this doesn't look like a tar archive"
+msgstr "Pois ..., isto no parece ser um arquivo \"tar\""
+
+#: src/list.c:150
+msgid "Skipping to next file header"
+msgstr "Salta para o prximo cabealho de ficheiro"
+
+#: src/list.c:204
+msgid "EOF in archive file"
+msgstr "Fim-de-ficheiro no arquivo"
+
+#: src/list.c:216
+#, c-format
+msgid "Only wrote %ld of %ld bytes to file %s"
+msgstr "S se escreveram %ld \"bytes\" de um total de %ld no ficheiro %s"
+
+#: src/list.c:617 src/list.c:839
+#, c-format
+msgid "block %10ld: "
+msgstr "bloco %10ld: "
+
+#: src/list.c:654
+msgid "Visible longname error"
+msgstr "Erro evidente num nome longo"
+
+#: src/list.c:780 src/list.c:784
+#, c-format
+msgid " link to %s\n"
+msgstr " ligao para %s\n"
+
+#: src/list.c:788
+#, c-format
+msgid " unknown file type `%c'\n"
+msgstr " tipo de ficheiro desconhecido \"%c\"\n"
+
+#: src/list.c:805
+msgid "--Volume Header--\n"
+msgstr "--Cabealho de volume--\n"
+
+#: src/list.c:809
+#, c-format
+msgid "--Continued at byte %ld--\n"
+msgstr "--Continua no \"byte\" %ld--\n"
+
+#: src/list.c:814
+msgid "--Mangled file names--\n"
+msgstr "--Nomes de ficheiros truncados--\n"
+
+#: src/list.c:844 src/list.c:849
+msgid "Creating directory:"
+msgstr "Criao de directoria::"
+
+#: src/mangle.c:61
+msgid "Unexpected EOF in mangled names"
+msgstr "Fim de ficheiro inesperado nos nomes truncados"
+
+#: src/mangle.c:97
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "No se consegue mudar o nome de %s para %s"
+
+#: src/mangle.c:99
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Mudou-se o nome %s para %s"
+
+#: src/mangle.c:116
+#, c-format
+msgid "Cannot symlink %s to %s"
+msgstr "No se pode criar uma ligao (\"link\") simblica de %s para %s"
+
+#: src/mangle.c:119
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s ligado simbolicamente a %s (\"link\")"
+
+#: src/mangle.c:123
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Comando desconhecido \"%s\" para decifrar os nomes truncados"
+
+#: src/names.c:332 src/names.c:530 src/names.c:556 src/names.c:582
+#: src/names.c:735
+#, c-format
+msgid "Cannot change to directory %s"
+msgstr "No se pode mudar para a directoria %s"
+
+#: src/names.c:351 src/names.c:407 src/names.c:452
+msgid "Missing file name after -C"
+msgstr "Falta um nome de ficheiro aps \"-C\""
+
+#: src/names.c:620 src/names.c:639
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: No foi encontrado no arquivo"
+
+#: src/rmt.c:89
+msgid "Unknown system error"
+msgstr "Erro desconhecido, do sistema"
+
+#: src/rmt.c:157
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: No se consegue reservar espao temporrio (\"buffers\")\n"
+
+#: src/rmt.c:159
+msgid "Cannot allocate buffer space"
+msgstr "No se consegue reservar espao temporrio (\"buffer\")"
+
+#: src/rmt.c:308
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Fim de ficheiro prematuro\n"
+
+#: src/rmt.c:310
+msgid "Premature end of file"
+msgstr "Fim-de-ficheiro prematuro"
+
+#: src/rmt.c:382
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Comando \"%c\" no faz sentido\n"
+
+#: src/rmt.c:384
+msgid "Garbage command"
+msgstr "Comando desconhecido"
+
+#: src/rtapelib.c:247
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Servio indisponvel"
+
+#: src/rtapelib.c:252
+msgid "stdin"
+msgstr ""
+
+#: src/rtapelib.c:255
+msgid "stdout"
+msgstr ""
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:415
+msgid "Cannot execute remote shell"
+msgstr "No se consegue executar uma \"shell\" remota"
+
+#: src/tar.c:97
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Ambas as opes `-%s' e `-%s' precisam do \"standard input\""
+
+#: src/tar.c:123
+msgid "Cannot read confirmation from user"
+msgstr "No se consegue obter confirmao, do utilizador"
+
+#: src/tar.c:290 tests/genfile.c:60
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Para mais informao, tente \"%s --help\".\n"
+
+#: src/tar.c:294
+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 ""
+
+#: src/tar.c:298
+#, fuzzy, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+msgstr "Utilizao: %s [OPO]... [FICHEIRO]...\n"
+
+#: src/tar.c:299
+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 ""
+
+#: src/tar.c:304
+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"
+"Principal modo de funcionamento:\n"
+" -t, --list inventrio do arquivo\n"
+" -x, --extract, --get extrair ficheiros do arquivo\n"
+" -c, --create criar um novo arquivo\n"
+" -d, --diff, --compare comparar o arquivo com os actuais ficheiros \n"
+" -r, --append acrescentar os ficheiros no fim do arquivo\n"
+" -u, --update s acrescentar os ficheiros mais novos do que as "
+"verses presentes no arquivo\n"
+" -A, --catenate juntar outros arquivos \"tar\" ao arquivo\n"
+" --concatenate o mesmo que \"-A\"\n"
+" --delete apagar no arquivo (excepto para fitas "
+"magnticas!)\n"
+
+#: src/tar.c:317
+#, fuzzy
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't overwrite existing files when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting "
+"directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Modificadores do modo de funcionamento:\n"
+" -W, --verify tentar verificar o arquivo depois de o "
+"escrever\n"
+" --remove-files apagar os ficheiros depois de serem guardados "
+"no arquivo\n"
+" -k, --keep-old-files na extraco, no destruir nenhum ficheiro\n"
+" -U, --unlink-first remove cada ficheiro antes de extrair para cima "
+"dele\n"
+"\t\t\t (aparecendo duas vezes, at apaga directorias completas\n"
+" -S, --sparse tratar eficientemente ficheiros dispersos \n"
+" (os que tm buracos) \n"
+" -O, --to-stdout extrair os ficheiros para o \"stdout\" \n"
+" -G, --incremental tratar um arquivo no velho formato incremental "
+"GNU\n"
+" -g, --listed-incremental tratar arquivo no novo formato incremental GNU\n"
+" --ignore-failed-read ignorar os ficheiros que no se consegue ler.\n"
+"\n"
+
+#: src/tar.c:331
+#, fuzzy
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added "
+"files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract all protection information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Tratamento dos atributos dos ficheiros:\n"
+" --atime-preserve no alterar as datas de acesso dos ficheiros\n"
+" -m, --modification-time no extrair a data de modificao dos "
+"ficheiros\n"
+" --same-owner extrair os ficheiros tentando manter o mesmo "
+"\n"
+" dono (owner)\n"
+" --numeric-owner usar sempre nmeros para os nomes de \n"
+" utilizador/grupo \n"
+" -p, --same-permissions na extraco, manter as proteces do "
+"ficheiros\n"
+" --preserve-permissions o mesmo que -p\n"
+" -s, --same-order ordernar os nomes a extrair segundo a sua "
+"ordem\n"
+" no arquivo\n"
+" --preserve-order o mesmo que -s\n"
+" --preserve o mesmo que -p conjugado com -s\n"
+
+#: src/tar.c:347
+#, fuzzy
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies "
+"-M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Escolha do perifrico e mudanas de fita magntica:\n"
+" -f, --file=ARQ tratar o arquivo, ou perifrico ARQ\n"
+" --force-local o arquivo local, mesmo que tenha \":\"\n"
+" --rsh-command=COM usar o comando remoto COM, em vez de "
+"\"rsh\"\n"
+" -[0-7][lmh] escolher o perifrico e a densidade\n"
+" -M, --multi-volume tratar arquivos multi-volume\n"
+" -L, --tape-length=NUM tratar NUM x 1024 \"bytes\" por fita "
+"magntica\n"
+" -F, --info-script=FICH executar FICH nas mudanas de fita "
+"magntica\n"
+" (fora a escolha de \"-M\")\n"
+" --new-volume-script=FICH o mesmo que \"-F FICH\"\n"
+
+#: src/tar.c:360
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means "
+"EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Caractersticas dos blocos no perifrico (device):\n"
+" -b, --blocking-factor=BLOCOS BLOCOS x 512 \"bytes\" por registo\n"
+" --record-size=DIM DIM bytes por registo, mltiplo de 512\n"
+" -i, --ignore-zeros ignorar os blocos constitudos por zeros\n"
+" (implicam fim-de-ficheiro)\n"
+" -B, --read-full-records dividir a leitura em blocos \n"
+" (para os \"pipes\" 4.2BSD)\n"
+
+#: src/tar.c:368
+#, fuzzy
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing "
+"PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX conformant archive\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Seleco do formato do arquivo:\n"
+" -V, --label=NOME cria um aruivo com volume de nome NOME\n"
+" REGEXP ao extrair/listar, o nome uma "
+"expresso\n"
+" regular\n"
+" -o, --old-archive, --portability escreve um arquivo no formato V7\n"
+" --posix escreve um arquivo conforme com POSIX\n"
+" -z, --gzip, --ungzip filtra o arquivo atravs de \"gzip\"\n"
+" -Z, --compress, --uncompress filtra o arquivo atravs de "
+"\"compress\"\n"
+" --use-compress-program=PROG filtra o arquivo atravs de PROG \n"
+"\t\t\t\t (este tem que aceitar -d)\n"
+
+#: src/tar.c:379
+#, fuzzy
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file "
+"NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a globbing PATTERN\n"
+" -X, --exclude-from=FILE exclude globbing patterns listed in FILE\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in "
+"directories\n"
+" -l, --one-file-system stay in local file system when creating "
+"archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Seleco local de ficheiros:\n"
+" -C, --directory DIR mudar para a directoria DIR\n"
+" -T, --files-from=NOME obter do ficheiro NOME a lista de ficheiros a "
+"\n"
+" criar ou extrair\n"
+" --null faz com que \"-T\" leia nomes terminados por "
+"NULO,\n"
+" tambm inibe \"-C\"\n"
+" --exclude=PADRO excluir os ficheiros descritos pelo PADRO\n"
+" -X, --exclude-from=FICH excluir ficheiros, segundo os padres guardados "
+"em\n"
+"\t\t\t FICH\n"
+" -P, --absolute-names preservar os \"\\\" iniciais nos nomes dos "
+"ficheiros\n"
+" -h, --dereference usar os prprios ficheiros, em lugar das "
+"ligaes\n"
+" simblicas (symlinks) que os referenciam\n"
+" --no-recurse no descer pela rvore de directorias\n"
+" -l, --one-file-system no sair do sistema local de ficheiros, ao "
+"criar o\n"
+" arquivo\n"
+" -K, --starting-file=NOME comear pelo ficheiro NOME, no arquivo\n"
+
+#: src/tar.c:394
+#, fuzzy
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATA s guardar ficheiros mais recentes do que DATA\n"
+" --newer-mtime s comparar data e hora quando os dados "
+"mudarem\n"
+" --after-date=DATA o mesmo que \"-N\"\n"
+"),"
+
+#: src/tar.c:400
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version "
+"control\n"
+" --suffix=SUFFIX backup before removel, override usual suffix\n"
+msgstr ""
+
+#: src/tar.c:404
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Prestao de informaes:\n"
+" --help mostrar esta mensagem de ajuda e terminar\n"
+" --version indicar a verso do programa \"tar\" e terminar\n"
+" -v, --verbose escrever a lista dos ficheiros tratados\n"
+" --checkpoint indicar os nomes das directorias durante a leitura\n"
+" --totals indicar o nmero de \"bytes\" escritos durante a "
+"criao\n"
+" do arquivo\n"
+" -R, --block-number escrever o nmero de bloco, dentro do arquivo, \n"
+" em cada mensagem\n"
+" -w, --interactive pedir confirmao para todas as aces\n"
+" --confirmation o mesmo que \"-w\"\n"
+"\n"
+
+#: src/tar.c:416
+msgid ""
+"\n"
+"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 "
+"are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+
+#: src/tar.c:425
+#, fuzzy, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; and FILE may be a file\n"
+"or a device. *This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"O programa tar GNU anterior verso 1.12 no consegue ler arquivos "
+"\"--posix\".\n"
+"Se a varivel POSIXLY_CORRECT estiver definida no ambiente, as extenses "
+"GNU\n"
+"so inibidas com \"--posix\". O suporte para POSIX est apenas parcialmente "
+"\n"
+"implementado, pelo que no se fiem muito nele, por agora.\n"
+"ARQUIVO pode ser FICHEIRO, HOST:FICHEIRO ou UTILIZADOR@HOST:FICHEIRO; e \n"
+"FICHEIRO pode ser um ficheiro ou um perifrico.\n"
+"*Este* tar assume, por defeito, \"-f%s -b %d\".\n"
+
+#: src/tar.c:433
+msgid ""
+"\n"
+"Report bugs to <tar-bugs@gnu.ai.mit.edu>.\n"
+msgstr ""
+
+#: src/tar.c:459
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "No se pode especificar mais do que uma das opes \"-Acdtrux\""
+
+#: src/tar.c:468
+msgid "Conflicting compression options"
+msgstr "H conflitos entre as opes de compresso"
+
+#: src/tar.c:532
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "A antiga opo `%c' exige um argumento."
+
+#: src/tar.c:574
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Opo obsoleta, agora \"-blocking-factor\" implica-a"
+
+#: src/tar.c:578
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--blocking-factor\""
+
+#: src/tar.c:588
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--read-full-records\""
+
+#: src/tar.c:686
+msgid "Obsolete option name replaced by --touch"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--touch\""
+
+#: src/tar.c:707
+msgid "More than one threshold date"
+msgstr ""
+
+#: src/tar.c:711
+#, c-format
+msgid "Invalid date format `%s'"
+msgstr "Formato de data invlido \"%s\""
+
+#: src/tar.c:720 src/tar.c:876 src/tar.c:881
+msgid "Conflicting archive format options"
+msgstr "H conflitos entre as opes de formato do arquivo"
+
+#: src/tar.c:732
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--absolute-names\""
+
+#: src/tar.c:744
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--block-number\""
+
+#: src/tar.c:819
+#, fuzzy
+msgid "Obsolete option name replaced by --backup"
+msgstr "Nome de opo obsoleto, foi substitudo por \"--touch\""
+
+#: src/tar.c:840
+msgid "Invalid group given on option"
+msgstr ""
+
+#: src/tar.c:850
+msgid "Invalid mode given on option"
+msgstr ""
+
+#: src/tar.c:852
+msgid "Memory exhausted"
+msgstr ""
+
+#: src/tar.c:866
+msgid "Invalid owner given on option"
+msgstr ""
+
+#: src/tar.c:893
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "O tamanho dos registos tem que ser mltiplo de %d."
+
+#: src/tar.c:989
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "As opes \"-[0-7][lmh]\" no so suportadas por *este* tar"
+
+#: src/tar.c:999
+msgid ""
+"\n"
+"Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+msgstr ""
+
+#: src/tar.c:1003 tests/genfile.c:161
+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 ""
+
+#: src/tar.c:1007
+msgid ""
+"\n"
+"Written by John Gilmore and Jay Fenlason.\n"
+msgstr ""
+
+#: src/tar.c:1035
+msgid "GNU features wanted on incompatible archive format"
+msgstr ""
+"Esto-se a querer propriedades GNU num arquivo com formato incompatvel"
+
+#: src/tar.c:1052
+msgid "Multiple archive files requires `-M' option"
+msgstr "Para usar vrios arquivos necessria a opo \"-M\""
+
+#: src/tar.c:1066
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Recusa-se, covardemente, a criar um arquivo vazio"
+
+#: src/tar.c:1087
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "As opes \"-Aru\" so imcompatveis com \"-f -\""
+
+#: src/tar.c:1144
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Tem que se especificar uma das opes \"-Acdtrux\""
+
+#: src/tar.c:1191
+#, fuzzy
+msgid "Error exit delayed from previous errors"
+msgstr "Erro s assinalado no fim da execuo"
+
+#: src/update.c:79
+#, c-format
+msgid "Read error at byte %ld reading %d bytes in file %s"
+msgstr ""
+"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do "
+"ficheiro %s"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrunk by %d bytes, (yark!)"
+msgstr "%s: O ficheiro diminui em %d bytes, (desgraa!)"
+
+#: tests/genfile.c:64
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr ""
+
+#: tests/genfile.c:65
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Forma de usar: %s [OPO]...\n"
+
+#: tests/genfile.c:68
+#, fuzzy
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Os argumentos obrigatrios para as opes longas tambm o so para as "
+"curtas.\n"
+"\n"
+" --help mostra esta informao e termina\n"
+" --version identifica a verso e termina\n"
+
+#: tests/genfile.c:134
+#, c-format
+msgid "Ambiguous pattern `%s'"
+msgstr ""
+
+#: tests/genfile.c:138
+#, fuzzy, c-format
+msgid "Unknown pattern `%s'"
+msgstr "Opo \"%c\" desconhecida"
+
+#: tests/genfile.c:157
+msgid ""
+"\n"
+"Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc.\n"
+msgstr ""
+
+#: tests/genfile.c:165
+msgid ""
+"\n"
+"Written by Franois Pinard <pinard@iro.umontreal.ca>.\n"
+msgstr ""
+
+#~ msgid "Volume mismatch! %s!=%s"
+#~ msgstr "O volume no condiz! %s!=%s"
+
+#~ msgid "EOF? What does that mean?"
+#~ msgstr "Fim-de-ficheiro? Que significa isto?"
+
+#~ msgid "Mode"
+#~ msgstr "Modo"
+
+#~ msgid "Uid"
+#~ msgstr "\"Uid\""
+
+#~ msgid "Gid"
+#~ msgstr "\"Gid\""
+
+#~ msgid "Size"
+#~ msgstr "Tamanho"
+
+#~ msgid "Missing filename after -C"
+#~ msgstr "Falta um nome de ficheiro aps \"-C\""
+
+#~ msgid ""
+#~ "Mandatory or optional arguments to long options are mandatory or optional\n"
+#~ "for short options too.\n"
+#~ msgstr ""
+#~ "Os argumentos obrigatrios ou opcionais para as opes longas tambm\n"
+#~ "so obrigatrios ou opcionais para as correspondentes opes curtas.\n"
+
+#~ msgid "Invalid date format in `-N %s'"
+#~ msgstr "Formato invlido para data em \"-N %s\""
+
+#~ msgid "Bad regular expression: %s"
+#~ msgstr "Expresso regular errada: %s"
+
+#~ msgid "File %s\n"
+#~ msgstr "Ficheiro %s\n"
+
+#~ msgid "Junk files\n"
+#~ msgstr "Ficheiros de lixo\n"
+
+#~ msgid "file %s\n"
+#~ msgstr "ficheiro %s\n"
+
+#~ msgid "Skip %ld\n"
+#~ msgstr "Salta %ld\n"
+
+#~ msgid "Out of first loop\n"
+#~ msgstr "Fora do primeiro ciclo\n"
+
+#~ msgid "Saved %d blocks, need %d more\n"
+#~ msgstr "Guardaram-se %d blocos, ainda so precisos %d\n"
+
+#~ msgid "New record\n"
+#~ msgstr "Novo registo\n"
+
+#~ msgid "Header type %d\n"
+#~ msgstr "Tipo de cabealho %d\n"
+
+#~ msgid "File %s "
+#~ msgstr "Ficheiro %s"
+
+#~ msgid "Flush it\n"
+#~ msgstr "Esvazia-o\n"
+
+#~ msgid "Flushing %d blocks from %s\n"
+#~ msgstr "Esvaziam-se %d blocos de %s\n"
+
+#~ msgid "Block: %d <= %d "
+#~ msgstr "Bloco: %d <= %d "
+
+#~ msgid "Block %d left\n"
+#~ msgstr "Deixou-se o bloco %d \n"
+
+#~ msgid "Final %d\n"
+#~ msgstr "Final %d\n"
+
+#~ msgid "Need %d kept_in %d keep %d\n"
+#~ msgstr "Precisa %d mantem dentro %d mantem %d\n"
+
+#~ msgid "Flush...\n"
+#~ msgstr "Esvaziamento...\n"
+
+#~ msgid "Copying %d\n"
+#~ msgstr "Copia de %d\n"
+
+#~ msgid "Now new %d need %d keep %d keep_in %d block %d/%d\n"
+#~ msgstr ""
+#~ "Novos agora %d precisa %d mantem %d mantem dentro %d bloco %d/%d\n"
+#~ "(N.T. Isto tambm incompreensvel em Ingls)\n"
+
+#~ msgid "Write record\n"
+#~ msgstr "Escreve-se registo\n"
+
+#, fuzzy
+#~ msgid "Fore to %x\n"
+#~ msgstr "Fore to %x\n"
+
+#~ msgid "Write block\n"
+#~ msgstr "Escreve-se o bloco\n"
+
+#~ msgid "Could not make %s"
+#~ msgstr "No se conseguiu fazer %s"
+
+#~ msgid "Only one compression option permitted"
+#~ msgstr "S se permite uma opo de compresso"
+
+#~ msgid "Options [0-7][lmh] not supported by *this* tar"
+#~ msgstr "As opes [0-7][lmh] no funcionam neste \"tar\""
+
+#~ msgid "Cannot allocate %d bytes for restore"
+#~ msgstr "No se consegue reservar %d bytes para a recuperao"
+
+#~ msgid "Saved %d recs, need %d more\n"
+#~ msgstr "Guardaram-se %d registos, ainda so precisos %d\n"
+
+#~ msgid "Could not link %s to %s"
+#~ msgstr "No se conseguiu ligar %s a %s"
+
+#~ msgid "%c: Argument missing"
+#~ msgstr "%c: Falta argumento"
+
+#~ msgid "Cannot dup %s"
+#~ msgstr "No se consegue duplicar %s com \"dup\""
+
+#~ msgid "Could not create directory %s"
+#~ msgstr "No se conseguiu criar a directoria %s"
+
+#~ msgid "Cannot change to directory %d"
+#~ msgstr "No se pode mudar para a directoria %d"
+
+#~ msgid "rec %10ld: "
+#~ msgstr "reg %10ld: "
+
+#~ msgid "Flushing %d recs from %s\n"
+#~ msgstr "Esto-se a esvaziar %d registos de um total de %s\n"
+
+#~ msgid "Multiple archive files requires --multi-volume"
+#~ msgstr "Mltiplos ficheiros de arquivo exigem \"--multi-volume\""
+
+#~ msgid "Cannot change directory to %d"
+#~ msgstr "No se pode mudar de directoria para %d"
+
+#~ msgid "[child] Pipe to stdin"
+#~ msgstr "[filho] \"Pipe\" para o stdin"
+
+#~ msgid "Cannot change owner of %s to uid %d gid %d"
+#~ msgstr "No se pode mudar o dono de %s para \"uid\" %d \"gid\" %d"
+
+#~ msgid "Cannot change mode of file %s to %lo"
+#~ msgstr "No se pode mudar o modo do ficheiro %s para %lo"
+
+#~ msgid "[child] Pipe to stdout"
+#~ msgstr "[filho] \"Pipe\" para o stdout"
+
+#~ msgid "Could not write to file %s"
+#~ msgstr "No se conseguiu escrever no ficheiro %s"
+
+#~ msgid "Could not change access and modification times of %s"
+#~ msgstr "No se conseguiu modificar os tempos de acesso e modificao de %s"
+
+#~ msgid "Blocksize = %d records"
+#~ msgstr "Tamanho do bloco = %d registos"
+
+#~ msgid "%s: %s: Cannot link to %s, copying instead\n"
+#~ msgstr ""
+#~ "%s: %s: No possvel fazer ligao para %s, em vez disso, copia-se\n"
+
+#~ msgid "Cannot close a file #%d"
+#~ msgstr "No se consegue fechar o ficheiro de descritor %d"
+
+#~ msgid "Could not create symlink to %s"
+#~ msgstr "No se conseguiu criar uma ligao (\"link\") simblica para %s"
+
+#~ msgid "Now new %d need %d keep %d keep_in %d rec %d/%d\n"
+#~ msgstr ""
+#~ "Now new %d need %d keep %d keep_in %d rec %d/%d\n"
+#~ " (FIXME)"
+
+#~ msgid "Too many args with -T option"
+#~ msgstr "Argumentos demais para a opo \"-T\""
+
+#~ msgid "New block\n"
+#~ msgstr "Novo bloco\n"
+
+#~ msgid "Invalid value for blocksize"
+#~ msgstr "Valor invlido para o tamanho do bloco"
+
+#~ msgid "Cannot chown file %s to uid %d gid %d"
+#~ msgstr "No se pode mudar o dono de %s para \"uid\" %d \"gid\" %d"
+
+#~ msgid "Cannot open a pipe"
+#~ msgstr "No se consegue abrir um \"pipe\""
+
+#~ msgid "Could only write %d of %d bytes to file %s"
+#~ msgstr ""
+#~ "S se conseguiu escrever %d \"bytes\" de um total de %d, no ficheiro %s"
+
+#~ msgid "Could not create file %s"
+#~ msgstr "No se conseguiu criar o ficheiro %s"
+
+#~ msgid "Cannot keep old files on this system"
+#~ msgstr "No se consegue manter os ficheiros antigos neste sistema"
+
+#~ msgid ""
+#~ "Skip %ld\n"
+#~ " ##################"
+#~ msgstr "Salta %ld\n"
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 00000000..3eb18c94
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,1375 @@
+# tar: translation to Brazilian Portuguese (pt_BR)
+# Copyright (C) 1995, 2002 Free Software Foundation, Inc.
+# Alexandre Folle de Menezes <afmenez@terra.com.br>, 2002.
+# based on the previous translation to pt_BR (1.13.17) by
+# Joo Luiz Barbosa Silva <jl@conectiva.com.br>, 1997.
+# based on the translation to Portuguese (pt) by
+# Antnio Jos Coutinho <ajc@di.uminho.pt>, 1996.
+# Marcus Moreira de Souza <marcusms@frb.br>
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.13.25\n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8-bit\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argumento %s invlido para %s"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argumento %s ambguo para %s"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Os argumentos vlidos so:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Erro de sistema desconhecido"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: a opo `%s' ambgua\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: a opo `--%s' no admite um argumento\n"
+
+#: lib/getopt.c:723
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: a opo `%c%s' no admite um argumento\n"
+
+#: lib/getopt.c:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: a opo `%s' exige um argumento\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opo `--%s' no reconhecida\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opo `%c%s' no reconhecida\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opo ilegal -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opo invlida -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: a opo exige um argumento -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: a opo `-W %s' ambgua\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: a opo `-W %s' no aceita um argumento\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "tamanho de bloco"
+
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "'"
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "memria esgotada"
+
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Total de bytes escritos: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Impossvel fechar"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Impossvel duplicar (\"dup\")"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Impossvel usar arquivos-tar compactados ou remotos"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (filho)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (neto)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Valor invlido para \"record_size\""
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Nome de arquivo-tar no informado"
+
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Impossvel verificar arquivos-tar multi-volume"
+
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Impossvel alocar memria para um fator de bloco %d"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Impossvel usar arquivos-tar compactados multi-volume"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Impossvel verificar arquivos-tar compactados"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Impossvel atualizar arquivos-tar compactados"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Impossvel verificar arquivos-tar de entrada/sada padro (stdin/stdout)"
+
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "O arquivo-tar no rotulado para casar com %s"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "O volume %s no casa com %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Ponto de verificao de escrita %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "No princpio da fita, encerrando agora"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Muitos erros, encerrando"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Ponto de verificao de leitura %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "Lendo %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "AVISO: No h cabealho de volume"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s no continua neste volume"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s o tamanho errado (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Este volume est fora de sequncia"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Bloco desalinhado (%lu bytes) no arquivo-tar"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Tamanho de registro = %lu blocos"
+
+#: src/buffer.c:1308
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Impossvel recuar no arquivo-tar; pode estar ilegvel sem -i"
+
+#: src/buffer.c:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "O processo filho morreu com o sinal %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "O processo filho retornou estado %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: contm um nmero de volume invlido"
+
+#: src/buffer.c:1440
+msgid "Volume number overflow"
+msgstr "Sobrecarga de nmero de volumes"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "comando `%s' falhou"
+
+#: src/buffer.c:1468
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Prepare o volume #%d para %s e tecle Enter: "
+
+#: src/buffer.c:1474
+msgid "EOF where user reply was expected"
+msgstr "Fim-de-arquivo onde era esperado resposta do usurio"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "AVISO: O arquivo-tar est incompleto"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nome] Dar um novo nome para o prximo volume (e os subseqentes)\n"
+" q Abortar tar\n"
+" ! Criar um \"sub-shell\"\n"
+" ? Mostra esta lista\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Nenhum volume novo; encerrando.\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "S foi possvel ler %lu de %lu bytes"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "O contedo diferente"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339
+#: src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718
+#: src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367
+#: src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "Final-de-arquivo inesperado no arquivo-tar"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Verificar "
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Tipo de arquivo \"%c\" desconhecido, comparado como um arquivo normal"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "O tipo de arquivo diferente"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "Os modos so diferentes"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Os uid so diferentes"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "os gid so diferentes"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "Os horrios de modificao so diferentes"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "Os tamanhos so diferentes"
+
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "No est \"linkado\" a %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "O (\"Link\") simblico diferente"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "O nmero de dispositivo diferente"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "ERRO DE VERIFICAO: detectados %d cabealhos invlidos"
+
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Gerando cabealhos octais negativos"
+
+#: src/create.c:200
+#, 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:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "valor %s fora da faixa %s: %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Os nomes dos membros contm `..'"
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Removendo `%.*s' inicial dos nomes dos membros"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: arquivo sem alteraes; no ser arquivado"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: arquivo o arquivo-tar; no ser arquivado"
+
+#: src/create.c:1098
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: arquivo est em outro sistema de arquivos; no ser arquivado"
+
+#: src/create.c:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: arquivo removido antes de ser lido"
+
+#: src/create.c:1399
+#, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: o arquivo diminuiu %s bytes; completando com zeros"
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: arquivo alterado enquanto estava sendo lido"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: \"socket\" ignorado"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: porta ignorada"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tipo de arquivo desconhecido; arquivo ignorado"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Este no parece ser um arquivo-tar"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Pulando para o prximo cabealho"
+
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Removendo um no-cabealho do arquivo-tar"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: o carimbo de horrio %s est %lu s no futuro"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inconsistncia inesperada ao criar diretrio"
+
+#: src/extract.c:578
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Diretrio renomeado antes de se poder extrair seu estado"
+
+#: src/extract.c:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: O nome do membro contm `..'"
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Impossvel fazer backup deste arquivo"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Extraindo arquivos contguos como sendo arquivos normais"
+
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Tentativa de extrair \"links\" simblicos como \"links\" fsicos"
+
+#: src/extract.c:1207
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Impossvel extrair -- arquivo a continuao de outro volume"
+
+#: src/extract.c:1216
+msgid "Visible long name error"
+msgstr "Erro evidente de nome longo"
+
+#: src/extract.c:1224
+#, 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:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "Erro no recupervel: saindo agora"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Diretrio foi renomeado"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: O diretrio novo"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Carimbo de horrio invlido"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "Carimbo de horrio fora da faixa"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Nmero de dispositivo invlido"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "Nmero do dispositivo fora de faixa"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Nmero de inode invlido"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "Nmero do inode fora de faixa"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Removendo %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Impossvel remover"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Omitindo"
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloco %s: ** Bloco de NULs **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloco %s: ** Fim-de-arquivo **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Espao em branco no cabealho onde valor numrico `%s' era esperado"
+
+#: src/list.c:606
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "O valor octal do arquivo-tar %.*s est fora de faixa %s; assumindo complemento de dois"
+
+#: src/list.c:616
+#, 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:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "o arquivo-tar contm cabealhos base-64 obsoletos"
+
+#: src/list.c:645
+#, 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:676
+#, 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"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "O arquivo-tar contm %.*s onde valor numrico %s era esperado"
+
+#: src/list.c:724
+#, 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:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "bloco %s: "
+
+#: src/list.c:946
+msgid "Visible longname error"
+msgstr "Erro de nome longo evidente"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr " link para %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tipo de arquivo \"%s\" desconhecido\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Cabealho de volume--\n"
+
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Continua no byte %s--\n"
+
+#: src/list.c:1112
+msgid "--Mangled file names--\n"
+msgstr "--Nomes de arquivos truncados--\n"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Criando de diretrio:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Fim de arquivo inesperado nos nomes cifrados"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Impossvel renomear para %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Renomeado %s para %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Impossvel fazer link simblico para %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s ligado simbolicamente a %s (\"link\")"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Comando de decifragem \"%s\" desconhecido"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Renomeando %s para %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Renomeando %s de volta para %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Impossvel salvar diretrio de trabalho"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Impossvel mudar o diretrio de trabalho"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: No possvel %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Ateno: No possvel %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Impossvel mudar modo para %s"
+
+#: src/misc.c:562
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Impossvel alterar dono para uid %lu, gid %lu"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Impossvel fazer link para %s"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Erro de leitura no byte %s, lendo %lu bytes"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Aviso: Erro de leitura no byte %s, lendo %lu bytes"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Impossvel saltar para %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Aviso: No possvel saltar para %s"
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Impossvel criar link simblico para %s"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Gravados apenas %lu de um total de %lu bytes"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "processo filho"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "canal interprocesso"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Falta um nome de arquivo aps \"-C\""
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: No foi encontrado no arquivo-tar"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Impossvel alocar espao para buffer\n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Impossvel alocar espao para buffer"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Tente `%s --help' para mais informaes.\n"
+
+#: src/rmt.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"
+msgstr ""
+"Uso: %s [OPO]\n"
+"Manipula uma unidade de fita, aceitando comandos de um processo remoto.\n"
+"\n"
+" --version Mostra informaes de verso.\n"
+" --help Mostra esta ajuda.\n"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid ""
+"\n"
+"Report bugs to <bug-tar@gnu.org>.\n"
+msgstr ""
+"\n"
+"Informar erros no programa para <bug-tar@gnu.org>.\n"
+"Informar erros na traduo para <afmenez@terra.com.br>.\n"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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 ""
+"Esse programa no possui NENHUMA GARANTIA, at onde permitido pela lei.\n"
+"Pode ser redistribudo sob os termos da Licena Publica Geral GNU;\n"
+"veja o arquivo COPYING para maiores detalhes."
+
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Deslocamento de procura fora de faixa"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Direo de procura fora de faixa"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Fim de arquivo prematuro\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Fim de arquivo prematuro"
+
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Comando \"%c\" no faz sentido\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Comando sem sentido"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Servio no disponvel"
+
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "entrada padro (stdin)"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "sada padro (stdout)"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Impossvel executar um shell remoto"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Ambas as opes `-%s' e `-%s' exigem a entrada padro"
+
+#: src/tar.c:292
+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 ""
+"O GNU `tar' salva vrios arquivos em um nico arquivo-tar em fita ou disco,\n"
+"e pode restaurar arquivos individualmente.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Uso: %s [OPO]... [ARQUIVO]...\n"
+"\n"
+"Exemplos:\n"
+" %s -cf arquivo.tar foo bar # Cria arquivo.tar atravs dos arquivos foo e bar.\n"
+" %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:303
+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"
+"Se uma opo longa aparece como argumento obrigatrio, ento tambm o para a\n"
+"opo curta equivalente. Idem para argumentos opcionais.\n"
+
+#: src/tar.c:308
+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"
+"Modo de operao principal:\n"
+" -t, --list lista o contedo de um arquivo-tar\n"
+" -x, --extract, --get extrai arquivos do arquivo-tar\n"
+" -c, --create cria um novo arquivo-tar\n"
+" -d, --diff, --compare compara o arquivo-tar com arquivos atuais\n"
+" -r, --append anexa arquivos no fim do arquivo-tar\n"
+" -u, --update atualiza arquivos contidos no arquivo-tar\n"
+" -A, --catenate anexa outros arquivos-tar a um arquivo-tar\n"
+" --concatenate o mesmo que \"-A\"\n"
+" --delete remove do arquivo-tar (exceto para fitas)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Modificadores de operao:\n"
+" -W, --verify tenta verificar o arquivo-tar aps gravao\n"
+" --remove-files remove arquivos depois de inclu-los no arquivo-tar\n"
+" -k, --keep-old-files no sobrescreve arquivo existente ao extrair\n"
+" --overwrite sobrescreve arquivos existentes ao extrair\n"
+" --overwrite-dir sobrescreve dados sobre diretrios ao extrair\n"
+" -U, --unlink-first remove cada arquivo antes de extra-lo\n"
+" --recursive-unlink remove hierarquia antes de extrair diretrios\n"
+" -S, --sparse trata arquivos esparsos eficientemente\n"
+" -O, --to-stdout extrai os arquivos para stdout\n"
+" -G, --incremental trata antigo formato incremental GNU\n"
+" -g, --listed-incremental=ARQUIVO\n"
+" trata novo formato incremental GNU\n"
+" --ignore-failed-read no sai com erro em arquivos ilegveis.\n"
+
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Tratamento dos atributos dos arquivos:\n"
+" --owner=NOME fora NOME como dono dos arquivos adicionados\n"
+" --group=GRUPO fora GRUPO como grupo dos arquivos adicionados\n"
+" --mode=PERM fora permisses PERM para arquivos adicionados\n"
+" --atime-preserve no altera as datas de acesso dos arquivos\n"
+" -m, --modification-time no extrai a data de modificao dos arquivos\n"
+" --same-owner extrai os arquivos tentando manter o dono\n"
+" --no-same-owner extrai os arquivos com o usurio atual como dono\n"
+" --numeric-owner usa sempre nmeros para nomes de usurio e grupo\n"
+" -p, --same-permissions mantm as permisses dos arquivos na extrao\n"
+" --no-same-permissions no extrai as informaes de permisses\n"
+" --preserve-permissions o mesmo que -p\n"
+" -s, --same-order ordena os nomes a extrair segundo a ordem do arquivo-tar\n"
+" --preserve-order o mesmo que -s\n"
+" --preserve o mesmo que -p e -s juntos\n"
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Escolha e substituio de dispositivo:\n"
+" -f, --file=ARQ usa o arquivo ou dispositivo ARQ\n"
+" --force-local o arquivo local, mesmo que tenha \":\"\n"
+" --rsh-command=COM usar o comando remoto COM, em vez de \"rsh\"\n"
+" -[0-7][lmh] escolher o acionador e a densidade\n"
+" -M, --multi-volume tratar arquivos multi-volume\n"
+" -L, --tape-length=NUM tratar NUM x 1024 \"bytes\" por fita magntica\n"
+" -F, --info-script=ARQ executar ARQ no final de cada fita (implica em -M)\n"
+" --new-volume-script=ARQ o mesmo que \"-F ARQ\"\n"
+" --volno-file=ARQ usa/atualiza o nmero do volume em ARQ\n"
+
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Blocagem no dispositivo:\n"
+" -b, --blocking-factor=BLOCOS BLOCOS x 512 bytes por registro\n"
+" --record-size=TAM TAM bytes por registro, mltiplo de 512\n"
+" -i, --ignore-zeros ignorar os blocos zerados no arquivo-tar\n"
+" (significam fim-de-arquivo)\n"
+" -B, --read-full-records dividir leitura em blocos (para pipes 4.2BSD)\n"
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Seleo do formato do arquivo-tar:\n"
+" -V, --label=NOME cria um arquivo com nome de volume NOME\n"
+" REGEXP ao extrair/listar, NOME expresso regular\n"
+" -o, --old-archive, --portability gravar um arquivo no-tar formato V7\n"
+" --posix gravar um arquivo-tar conforme com POSIX\n"
+" -j, --bzip2 filtra o arquivo-tar atravs do bzip2\n"
+" -z, --gzip, --ungzip filtra o arquivo-tar atravs do gzip\n"
+" -Z, --compress, --uncompress filtra o arquivo-tar atravs do compress\n"
+" --use-compress-program=PROG filtra atravs de PROG (precisa aceitar -d)\n"
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Seleo local de arquivos:\n"
+" -C, --directory DIR mudar para diretrio DIR\n"
+" -T, --files-from=NOME obter do arquivo NOME a lista de arquivos a\n"
+" criar ou extrair\n"
+" --null faz com que \"-T\" leia nomes terminados por NULO,\n"
+" tambm inibe \"-C\"\n"
+" --exclude=PADRO excluir os arquivos descritos pelo PADRO\n"
+" -X, --exclude-from=ARQ excluir arquivos, segundo os padres em ARQ\n"
+" --anchored padres de excluso combinam com incio do nome do arquivo (padro)\n"
+" --no-anchored padres de excluso combinam depois de qualquer /\n"
+" --ignore-case excluso ignora maisculas/minsculas\n"
+" --no-ignore-case excluso considera maisculas/minsculas (padro)\n"
+" --wildcards padres de excluso usam coringas (padro)\n"
+" --no-wildcards padres de excluso so strings simples\n"
+" --wildcards-match-slash coringas dos padres de excluso combinam com '/' (default)\n"
+" --no-wildcards-match-slash coringas dos padres de excluso no combinam com '/'\n"
+" -P, --absolute-names preservar os \"\\\" iniciais nos nomes dos arquivos\n"
+" -h, --dereference usar os prprios arquivos, em lugar dos ligaes\n"
+" simblicas (symlinks) que os referenciam\n"
+" --no-recurse no descer pela rvore de diretrios\n"
+" -l, --one-file-system no sair do sistema local de arquivos, ao criar o\n"
+" arquivo-tar\n"
+" -K, --starting-file=NOME comear pelo arquivo NOME, no arquivo-tar\n"
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DATA guardar apenas arquivos mais recentes que DATA\n"
+" --newer-mtime=DATE comparar apenas data e hora quando os dados mudarem\n"
+" --after-date=DATA o mesmo que -N\n"
+
+#: src/tar.c:418
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version control\n"
+" --suffix=SUFFIX backup before removal, override usual suffix\n"
+msgstr ""
+" --backup[=CONTROL] copia antes de remover, possibilita escolha\n"
+" de controle de verso\n"
+" --suffix=SUFIXO copia antes de remover, ignora sufixo usual\n"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Prestao de informaes:\n"
+" --help mostra esta ajuda e sai\n"
+" --version mostra nmero da verso do programa tar e sai\n"
+" -v, --verbose mostra lista de arquivos processados\n"
+" --checkpoint indica os nomes dos diretrios ao ler o arquivo-tar\n"
+" --totals indica o total de bytes gravados ao criar o arquivo-tar\n"
+" -R, --block-number mostra o nmero de bloco do arquivo-tar, para cada mensagem\n"
+" -w, --interactive pede confirmao para cada ao\n"
+" --confirmation o mesmo que -w\n"
+"\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+"Sufixo do backup `~', a menos que usado --suffix ou SIMPLE_BACKUP_SUFFIX.\n"
+"Os controles de verso que podem ser usados com --backup ou VERSION_CONTROL,\n"
+"so:\n"
+"\n"
+" t, numbered faz backups numerados\n"
+" nil, existing numera se existe backup numerado, se no faz simples\n"
+" never, simple sempre faz backups simples\n"
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+"O programa tar GNU no consegue ler arquivos-tar \"--posix\". Se a varivel\n"
+"POSIXLY_CORRECT estiver definida no ambiente, as extenses GNU podem ser\n"
+"inibidas com \"--posix\". O suporte para POSIX est apenas parcialmente\n"
+"implementado, pelo que no se confie muito nele, por enquanto.\n"
+"ARQUIVO-TAR pode ser ARQUIVO, HOST:ARQUIVO ou USURIO@HOST:ARQUIVO; e \n"
+"ARQUIVO pode ser um arquivo ou um dispositivo.\n"
+"*Este* `tar' assume, por default, \"-f%s -b %d\".\n"
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "No possvel especificar mais do que uma das opes \"-Acdtrux\""
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Opes de compresso conflitantes"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "A opo antiga `%c' exige um argumento."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Opo obsoleta, agora subentendida por --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Nome de opo obsoleta substituda por --blocking-factor"
+
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Fator de blocagem invlido"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Nome de opo obsoleta substitudo por --read-full-records"
+
+#: src/tar.c:696
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Aviso: a opo -I no suportada; talvez a inteno fosse -j ou -T?"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "Tamanho da fita invlido"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Nome de opo obsoleta substitudo por --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr "Mais do que uma data limite"
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Arquivo de datas no encontrado"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Substituindo %s pelo formato de data desconhecido %s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "Opes de formato do arquivo-tar conflitantes"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Nome de opo obsoleta substituda por --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Nome de opo obsoleta substituda por --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Aviso: a opo -y no suportada; talvez a inteno fosse -j?"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Nome de opo obsoleta substituda por --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Grupo invlido"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Modo invlido informado na opo"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Dono invlido"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Tamanho de registro invlido"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "O tamanho dos registros tem que ser mltiplo de %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "As opes \"-[0-7][lmh]\" no so suportadas por *este* tar"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Escrito por John Gilmore e Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Desejadas caractersticas GNU num arquivo-tar com formato incompatvel"
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Mltiplos arquivos-tar exigem a opo \"-M\""
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Impossivel combinar --listed-incremental com --newer"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: O rtulo do volume longo demais (o limite %lu bytes)"
+
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Recusando a criar um arquivo-tar vazio"
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "As opes `-Aru' so incompatveis com `-f -'"
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Deve ser especificada uma das opes \"-Acdtrux\""
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Erro ao escrever para sada padro"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Sada por erro atrasada pelos erros anteriores"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: O arquivo encolheu %s bytes"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Gera arquivos de dados para pacote de testes GNU tar.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]...\n"
+msgstr ""
+"\n"
+"Uso: %s [OPO]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+"Os argumentos obrigatrios para as opes longas tambm so obrigatrios\n"
+"para as opes curtas equivalentes.\n"
+"\n"
+" -l, --file-length=TAM TAManho do arquivo gerando\n"
+" -p, --pattern=PADRO PADRO `default' ou `zeros'\n"
+" --help exibe esta ajuda e sai\n"
+" --version exibe informaes de verso e sai\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr "Escrito por Franois Pinard"
diff --git a/po/quot.sed b/po/quot.sed
new file mode 100644
index 00000000..0122c463
--- /dev/null
+++ b/po/quot.sed
@@ -0,0 +1,6 @@
+s/"\([^"]*\)"/“\1”/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“”/""/g
diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin
new file mode 100644
index 00000000..2436c49e
--- /dev/null
+++ b/po/remove-potcdate.sin
@@ -0,0 +1,19 @@
+# Sed script that remove the POT-Creation-Date line in the header entry
+# from a POT file.
+#
+# The distinction between the first and the following occurrences of the
+# pattern is achieved by looking at the hold space.
+/^"POT-Creation-Date: .*"$/{
+x
+# Test if the hold space is empty.
+s/P/P/
+ta
+# Yes it was empty. First occurrence. Remove the line.
+g
+d
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 00000000..6d34299c
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,1759 @@
+# Mesajele n limba romn pentru GNU tar
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# Laurentiu Buzdugan <lbuz@rolix.org>>, 2005.
+#
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.15.1\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2004-12-21 17:11+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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: lib/argmatch.c:137
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argument invalid %s pentru %s"
+
+#: lib/argmatch.c:138
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argument ambiguu %s pentru %s"
+
+#: lib/argmatch.c:157
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Argumente valide sunt:"
+
+#: lib/error.c:123 rmt/rmt.c:92
+msgid "Unknown system error"
+msgstr "Eroare sistem necunoscut"
+
+#: lib/getopt.c:551 lib/getopt.c:570
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: opiunea `%s' este ambigu\n"
+
+#: lib/getopt.c:603 lib/getopt.c:607
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: opiunea `--%s' nu permite un argument\n"
+
+#: lib/getopt.c:616 lib/getopt.c:621
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: opiunea `%c%s' nu permite un argument\n"
+
+#: lib/getopt.c:667 lib/getopt.c:689 lib/getopt.c:1020 lib/getopt.c:1042
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: opiunea `%s' necesit un argument\n"
+
+#: lib/getopt.c:727 lib/getopt.c:730
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opiunea `--%s' nu este recunoscut\n"
+
+#: lib/getopt.c:738 lib/getopt.c:741
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opiunea `%c%s' bu este recunoscut\n"
+
+#: lib/getopt.c:796 lib/getopt.c:799
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opiune ilegal -- %c\n"
+
+#: lib/getopt.c:805 lib/getopt.c:808
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opiune invalid -- %c\n"
+
+#: lib/getopt.c:863 lib/getopt.c:882 lib/getopt.c:1095 lib/getopt.c:1116
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: opiunea necesit un argument -- %c\n"
+
+#: lib/getopt.c:935 lib/getopt.c:954
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: opiunea `-W %s' este ambigu\n"
+
+#: lib/getopt.c:978 lib/getopt.c:999
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: opiunea `-W %s' nu permite un argument\n"
+
+#: lib/human.c:484
+msgid "block size"
+msgstr "dimensiune bloc"
+
+#: lib/quotearg.c:240
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:241
+msgid "'"
+msgstr "'"
+
+#: lib/rtapelib.c:297
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Serviciu indisponibil"
+
+#: lib/rtapelib.c:301
+msgid "stdin"
+msgstr "stdin"
+
+#: lib/rtapelib.c:304
+msgid "stdout"
+msgstr "stdout"
+
+#: lib/rtapelib.c:512
+msgid "Cannot execute remote shell"
+msgstr "Nu pot executa shell remote"
+
+#: lib/argp-help.c:194
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: parametrul ARGP_HELP_FMT necesit o valoare"
+
+#: lib/argp-help.c:203
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: parametru ARGP_HELP_FMT necunoscut"
+
+#: lib/argp-help.c:215
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Gunoi n ARGP_HELP_FMT: %s"
+
+#: lib/argp-help.c:1188
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Argumentele obligatorii sau opionale pentru opiunile lungi sunt obligatorii sau opionale i pentru opiunile corespunztoare scurte."
+
+#: lib/argp-help.c:1575
+msgid "Usage:"
+msgstr "Folosire:"
+
+#: lib/argp-help.c:1579
+msgid " or: "
+msgstr " sau: "
+
+#: lib/argp-help.c:1591
+msgid " [OPTION...]"
+msgstr " [OPIUNE...]"
+
+#: lib/argp-help.c:1618
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "ncercai `%s --help' sau `%s --usage' pentru informaii suplimentare.\n"
+
+#: lib/argp-help.c:1646 src/tar.c:1252
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Raportai bug-uri la %s.\n"
+
+#: rmt/rmt.c:144
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Nu pot aloca spaiu memorie intermediar\n"
+
+#: rmt/rmt.c:146
+msgid "Cannot allocate buffer space"
+msgstr "Nu pot aloca spaiu memorie intermediar"
+
+#: rmt/rmt.c:256
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "ncercai `%s --help' pentru informaii suplimentare.\n"
+
+#: rmt/rmt.c:260
+#, 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 ""
+"Folosire: %s [OPIUNE]\n"
+"Manipuleaz o unitate de band, acceptnd comenzi de la un proces remote.\n"
+"\n"
+" --version Afieaz informaii versiune.\n"
+" --help Afieaz acest mesaj.\n"
+
+#: rmt/rmt.c:267
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Raportai bug-uri la <%s>.\n"
+
+#: rmt/rmt.c:301
+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 ""
+"Acest program vine fr NICI O GARANIE, n conformitate cu sistemul legal.\n"
+"l putei redistribui conform termenilor din GNU General Public License;\n"
+"vedei fiierul numit COPYING pentru detalii."
+
+#: rmt/rmt.c:400 rmt/rmt.c:520 rmt/rmt.c:530
+msgid "Seek offset out of range"
+msgstr "Decalaj cutare (seek offset) n afara domeniului"
+
+#: rmt/rmt.c:413
+msgid "Seek direction out of range"
+msgstr "Direcie cutare (seek direction) n afara domeniului"
+
+#: rmt/rmt.c:452
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: eof prematur\n"
+
+#: rmt/rmt.c:454
+msgid "Premature end of file"
+msgstr "Sfrit de fiier prematur"
+
+#: rmt/rmt.c:562
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Comand gunoi %c\n"
+
+#: rmt/rmt.c:564
+msgid "Garbage command"
+msgstr "Comand gunoi"
+
+#: src/buffer.c:263
+#, c-format
+msgid "Total bytes written: %s (%s, %s/s)\n"
+msgstr "Numr total octei scrii: %s (%s, %s/s)\n"
+
+#: src/buffer.c:340
+msgid "(pipe)"
+msgstr "(pipe)"
+
+#: src/buffer.c:388
+msgid "Invalid value for record_size"
+msgstr "Valoare invalid pentru record_size"
+
+#: src/buffer.c:391
+msgid "No archive name given"
+msgstr "Nume arhiv nu a fost furnizat"
+
+#: src/buffer.c:441
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Nu pot verifica arhive atdin/stdout"
+
+#: src/buffer.c:454
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arhiva este compresat. Folosii opiunea %s."
+
+#: src/buffer.c:526
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arhiva nu este etichetat s se potriveasc cu %s"
+
+#: src/buffer.c:529 src/buffer.c:896
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Volumul %s nu se potrivete cu %s"
+
+#: src/buffer.c:567
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Scrie punct de verificare %d"
+
+#: src/buffer.c:654
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header"
+msgstr "%s: nume fiier prea lung pentru a fi storat ntr-un antet GNU multivolum"
+
+#: src/buffer.c:733
+msgid "At beginning of tape, quitting now"
+msgstr "La nceputul benzii, ieim acum"
+
+#: src/buffer.c:739
+msgid "Too many errors, quitting"
+msgstr "Prea multe erori, ieim"
+
+#: src/buffer.c:765
+#, c-format
+msgid "Read %s bytes from %s"
+msgstr "Am citit %s octei de la %s"
+
+#: src/buffer.c:777
+#, 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 octei) n arhiv"
+
+#: src/buffer.c:797
+#, 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:814
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "Citete punct de verificare %d"
+
+#: src/buffer.c:905 src/extract.c:1100
+#, c-format
+msgid "Reading %s\n"
+msgstr "Citesc %s\n"
+
+#: src/buffer.c:909
+msgid "WARNING: No volume header"
+msgstr "AVERTISMENT: Nici un antet de volum"
+
+#: src/buffer.c:917
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nu este continuat pe acest volum"
+
+#: src/buffer.c:931
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s este de dimensiune greit (%s != %s + %s)"
+
+#: src/buffer.c:943
+msgid "This volume is out of sequence"
+msgstr "Acest volum este n afara secvenei"
+
+#: src/buffer.c:1025
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Nu pot backspace fiierul arhiv; acesta ar putea fi de necitit fr -i"
+
+#: src/buffer.c:1057
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek nu s-a oprit la limita unei nregistrri"
+
+#: src/buffer.c:1108
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: conine numr volum invalid"
+
+#: src/buffer.c:1160
+msgid "Volume number overflow"
+msgstr "Depire domeniu numr volum"
+
+#: src/buffer.c:1179
+#, c-format
+msgid "`%s' command failed"
+msgstr "`%s' comanda a euat"
+
+#: src/buffer.c:1188
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Prepar volum #%d pentru %s i apas tasta return: "
+
+#: src/buffer.c:1194
+msgid "EOF where user reply was expected"
+msgstr "EOF unde era ateptat rspunsul utilizatorului"
+
+#: src/buffer.c:1199 src/buffer.c:1229
+msgid "WARNING: Archive is incomplete"
+msgstr "AVERTISMENT: Arhiva este incomplet"
+
+#: src/buffer.c:1213
+#, c-format
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [nume] Dai un nume de fiier nou pentru urmatoarele volume\n"
+" q Abandoneaz tar\n"
+" ! Lanseaz un subshell\n"
+" ? Afieaz aceast list de opiuni\n"
+
+#: src/buffer.c:1224
+msgid "No new volume; exiting.\n"
+msgstr "Nici un volum nou; terminm.\n"
+
+#: src/compare.c:105
+#, 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 octei"
+
+#: src/compare.c:116 src/compare.c:132
+msgid "Contents differ"
+msgstr "Coninuturile difer"
+
+#: src/compare.c:158 src/extract.c:763 src/incremen.c:496 src/list.c:235
+#: src/list.c:412 src/list.c:1282
+msgid "Unexpected EOF in archive"
+msgstr "EOF neateptat n arhiv"
+
+#: src/compare.c:212
+#, c-format
+msgid "Verify "
+msgstr "Verific "
+
+#: src/compare.c:219
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Tip de fiier necunoscut '%c', folosesc diff ca pentru un fiier normal"
+
+#: src/compare.c:242 src/compare.c:364 src/compare.c:416 src/compare.c:443
+msgid "File type differs"
+msgstr "Tipul fiierelor difer"
+
+#: src/compare.c:249 src/compare.c:378 src/compare.c:422
+msgid "Mode differs"
+msgstr "Modurile difer"
+
+#: src/compare.c:252
+msgid "Uid differs"
+msgstr "Uid difer"
+
+#: src/compare.c:254
+msgid "Gid differs"
+msgstr "Gid difer"
+
+#: src/compare.c:257
+msgid "Mod time differs"
+msgstr "Timp modificare difer"
+
+#: src/compare.c:261 src/compare.c:451
+msgid "Size differs"
+msgstr "Dimensiunea difer"
+
+#: src/compare.c:319
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nu este link-at ctre %s"
+
+#: src/compare.c:342
+msgid "Symlink differs"
+msgstr "Symlink difer"
+
+#: src/compare.c:372
+msgid "Device number differs"
+msgstr "Numr dispozitiv difer"
+
+#: src/compare.c:500
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arhiva conine nume de fiiere cu prefixele ndeprtate."
+
+#: src/compare.c:502
+msgid "Verification may fail to locate original files."
+msgstr "Verificare ar putea eua s gseasc fiierele originale."
+
+#: src/compare.c:572
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "VERIFIC EEC: detectat %d antet invalid"
+msgstr[1] "VERIFIC EEC: detectat %d antete invalide"
+
+#: src/create.c:145
+msgid "Generating negative octal headers"
+msgstr "Generez antete octale negative"
+
+#: src/create.c:196
+#, 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:202
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "valoarea %s n afara %s intervalului %s..%s"
+
+#: src/create.c:481 src/create.c:544
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: numele fiierul este prea lung (maxim %d); nimic generat"
+
+#: src/create.c:491
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: numele fiierul este prea lung (nu poate fi spart); nimic generat"
+
+#: src/create.c:518
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: numele link-ului este prea lung; nimic generat"
+
+#: src/create.c:884
+#, 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: Fiier scurtat cu %s octet; completat cu zerouri"
+msgstr[1] "%s: Fiier scurtat cu %s octei; completat cu zerouri"
+
+#: src/create.c:910
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: fiier schimbat n timp ce l citeam"
+
+#: src/create.c:1051
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: fiierul este pe un sistem de fiiere diferit; nimic generat"
+
+#: src/create.c:1061
+#, c-format
+msgid "%s: contains a cache directory tag; not dumped"
+msgstr "%s: conine o etichet de director cache; nimic generat"
+
+#: src/create.c:1221
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Tip de fiier necunoscut; fiier ignorat"
+
+#: src/create.c:1320
+#, c-format
+msgid "Missing links to '%s'.\n"
+msgstr "Link lips ctre '%s'.\n"
+
+#: src/create.c:1387
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: fiierul este neschimbat; nimic generat"
+
+#: src/create.c:1395
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: fiierul este n arhiv; nimic generat"
+
+#: src/create.c:1430
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fiier ters nainte de a-l putea citi"
+
+#: src/create.c:1523
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket ignorat"
+
+#: src/create.c:1528
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: u ignorat"
+
+#: src/delete.c:209 src/list.c:171 src/update.c:163
+msgid "This does not look like a tar archive"
+msgstr "Aceasta nu pare a fi o arhiv tar"
+
+#: src/delete.c:215 src/list.c:185 src/update.c:168
+msgid "Skipping to next header"
+msgstr "Srim la urmtorul antet"
+
+#: src/delete.c:280
+msgid "Deleting non-header from archive"
+msgstr "tergem non-antet din arhiv"
+
+#: src/extract.c:208
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: nregistrare de timp neverosimil %s"
+
+#: src/extract.c:211
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: nregistrare timp %s este %lu sec n viitor"
+
+#: src/extract.c:359
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Inconsisten neateptat cnd cream directorul"
+
+#: src/extract.c:478
+#, c-format
+msgid "Current `%s' is newer"
+msgstr "`%s' curent este mai nou"
+
+#: src/extract.c:590
+#, 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:655
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Nu am putut arhiva (backup) acest fiier"
+
+#: src/extract.c:722
+msgid "Extracting contiguous files as regular files"
+msgstr "Extragem fiiere contigue ca fiiere normale"
+
+#: src/extract.c:908
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "ncerc extragerea link-urilor simbolice ca link-uri hard"
+
+#: src/extract.c:1109
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Nu pot extrage -- fiierul este continuat din alt arhiv"
+
+#: src/extract.c:1118
+msgid "Visible long name error"
+msgstr "Eroare nume lung evident"
+
+#: src/extract.c:1126
+#, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
+msgstr "%s: Tip de fiier necunoscut '%c', extras ca fiier normal"
+
+#: src/extract.c:1211
+msgid "Error is not recoverable: exiting now"
+msgstr "Nu-mi pot reveni din eroare: termin acum"
+
+#: src/extract.c:1218
+msgid "memory exhausted"
+msgstr "memorie epuizat"
+
+#: src/incremen.c:193
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Directorul a fost redenumit"
+
+#: src/incremen.c:205
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Directorul este nou"
+
+#: src/incremen.c:354
+msgid "Invalid time stamp"
+msgstr "nregistrare timp invalid"
+
+#: src/incremen.c:357
+msgid "Time stamp out of range"
+msgstr "nregistrare timp n afara domeniului"
+
+#: src/incremen.c:381
+msgid "Invalid device number"
+msgstr "Numr dispozitiv invalid"
+
+#: src/incremen.c:385
+msgid "Device number out of range"
+msgstr "Numr dispozitiv n afara intervalului"
+
+#: src/incremen.c:393
+msgid "Invalid inode number"
+msgstr "Numr inode invalid"
+
+#: src/incremen.c:397
+msgid "Inode number out of range"
+msgstr "Numr inode n afara intervalului"
+
+#: src/incremen.c:524
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Nu cur director: nu pot determina statistici"
+
+#: src/incremen.c:531
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: directorul este pe un dispozitiv (device) diferit; necurat"
+
+#: src/incremen.c:539
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: tergem %s\n"
+
+#: src/incremen.c:544
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Nu pot terge"
+
+#: src/list.c:117
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Omis"
+
+#: src/list.c:135
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "bloc %s: ** Bloc de NUL-uri **\n"
+
+#: src/list.c:148
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Un bloc zero singuratic la %s"
+
+#: src/list.c:159
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "bloc %s: ** Sfrit de fiier **\n"
+
+#: src/list.c:182 src/list.c:1017 src/list.c:1244
+#, c-format
+msgid "block %s: "
+msgstr "bloc %s: "
+
+#: src/list.c:644
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Spaii libere n antet unde valoare %s numeric ateptat"
+
+#: src/list.c:698
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Valoare octal %.*s este n afara %s intervalului; presupunem complementul lui doi"
+
+#: src/list.c:708
+#, 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:725
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arhiva conine antete n baza-64 depite"
+
+#: src/list.c:738
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "ir n baza-64 (semntura arhivei) %s este n afara %s intervalului"
+
+#: src/list.c:769
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Valoare baza-256 a arhivei este n afara %s intervalului"
+
+#: src/list.c:797
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Arhiva conine %.*s unde valoare %s numeric ateptat"
+
+#: src/list.c:818
+#, 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:1048
+msgid "Visible longname error"
+msgstr "Eroare nume lung evident"
+
+#: src/list.c:1175
+#, c-format
+msgid " link to %s\n"
+msgstr " link ctre %s\n"
+
+#: src/list.c:1183
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " tip fiier necunoscut %s\n"
+
+#: src/list.c:1201
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Link Lung--\n"
+
+#: src/list.c:1205
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Nume Lung--\n"
+
+#: src/list.c:1209
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Antet Volum--\n"
+
+#: src/list.c:1217
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Continuat la octet %s--\n"
+
+#: src/list.c:1221
+#, c-format
+msgid "--Mangled file names--\n"
+msgstr "--Amestecat numele fiierelor--\n"
+
+#: src/list.c:1249
+msgid "Creating directory:"
+msgstr "Creez director:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "EOF neateptat n numele amestecate"
+
+#: src/mangle.c:90 src/misc.c:399 src/misc.c:417
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Nu pot redenumi ca %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Redenumit %s ca %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Nu pot crea symlink ctre %s"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "Creat symlink %s ctre %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Comanda de-amestecare necunoscut %s"
+
+#: src/misc.c:390
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Redenumesc %s ca %s\n"
+
+#: src/misc.c:422
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Redenumesc %s napoi ca %s\n"
+
+#: src/misc.c:502
+msgid "Cannot save working directory"
+msgstr "Nu pot salva directorul n care lucrez"
+
+#: src/misc.c:508
+msgid "Cannot change working directory"
+msgstr "Nu pot schimba directorul n care lucrez"
+
+#: src/misc.c:552 src/misc.c:561
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Nu pot %s"
+
+#: src/misc.c:570
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Avertisment: Nu pot %s"
+
+#: src/misc.c:585
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Nu pot schimba modul ca %s"
+
+#: src/misc.c:593
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Nu pot schimba proprietatea ctre uid %lu, gid %lu"
+
+#: src/misc.c:628
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Nu pot crea hard link ctre %s"
+
+#: src/misc.c:689 src/misc.c:730
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu byte"
+msgid_plural "%s: Read error at byte %s, reading %lu bytes"
+msgstr[0] "%s: Eroare citire la octet %s, citind %lu octet"
+msgstr[1] "%s: Eroare citire la octet %s, citind %lu octei"
+
+#: src/misc.c:702
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu byte"
+msgid_plural "%s: Warning: Read error at byte %s, 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 octei"
+
+#: src/misc.c:790
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Nu pot cuta (seek) ctre %s"
+
+#: src/misc.c:806
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Avertisment: Nu pot cuta (seek) ctre %s"
+
+#: src/misc.c:824
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Nu pot crea symlink ctre %s"
+
+#: src/misc.c:892
+#, 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 octei"
+
+#: src/misc.c:918
+msgid "child process"
+msgstr "proces copil"
+
+#: src/misc.c:927
+msgid "interprocess channel"
+msgstr "canal ntre-procese"
+
+#: src/names.c:372 src/names.c:421 src/names.c:465
+msgid "Missing file name after -C"
+msgstr "Nume fiier absent dup -C"
+
+#: src/names.c:642 src/names.c:658
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Nu a fost gsit n arhiv"
+
+#: src/names.c:645
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Lucrul cerut nu a fost gsit n arhiv"
+
+#: src/names.c:1093
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Eliminm primul `%s' din numele membrilor"
+
+#: src/names.c:1094
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Eliminm primul `%s' din destinaiile hard link"
+
+#: src/names.c:1107
+msgid "Substituting `.' for empty member name"
+msgstr "nlocuiesc `.' pentru nume de membrii goale"
+
+#: src/names.c:1108
+msgid "Substituting `.' for empty hard link target"
+msgstr "nlocuiesc `.' pentru destinaii hard link goale"
+
+#: src/tar.c:71
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Opiunile `-%s' i `-%s' vor amndou intrarea standard"
+
+#: src/tar.c:143
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Format arhiv invalid"
+
+#: src/tar.c:167
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Capabiliti GNU cerute pentru un format de arhiv incompatibil"
+
+#: src/tar.c:241
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" tar -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" tar -xf archive.tar # Extract all files from archive.tar.\n"
+" 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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"GNU tar salveaz mai multe fiiere mpreun ntr-o singur arhiv pe band sau disc i poate restaura fiiere individuale din arhiv.\n"
+"\n"
+"Exemple:\n"
+" tar -cf arhiva.tar foo bar # Creaz arhiva.tar din fiierele foo i bar.\n"
+" tar -tvf arhiva.tar # Listeaz cu amnunte toate fiierele din arhiva.tar.\n"
+" tar -xf arhiva.tar # Extrage toate fiierele din arhiva.tar.\n"
+" Sufixul pentru backup este `~', dac nu este setat cu --suffix sau SIMPLE_BACKUP_SUFFIX.\n"
+"Versiunea de control poate fi setat cu --backup sau VERSION_CONTROL, valorile permise sunt:\n"
+"\n"
+" t, numbered creaz backup numerotat\n"
+" nil, existing numeroteaz dac exist backup numerotat, altfel simplu\n"
+" never, simple ntotdeauna creaz backup simplu\n"
+
+#: src/tar.c:270
+msgid "Main operation mode:"
+msgstr "Mod de operare principal:"
+
+#: src/tar.c:273
+msgid "list the contents of an archive"
+msgstr "listeaz coninutul unei arhive"
+
+#: src/tar.c:275
+msgid "extract files from an archive"
+msgstr "extrage fiiere dintr-o arhiv"
+
+#: src/tar.c:278
+msgid "create a new archive"
+msgstr "creaz o nou arhiv"
+
+#: src/tar.c:280
+msgid "find differences between archive and file system"
+msgstr "gsete diferenele dintre arhive i sistemul de fiiere"
+
+#: src/tar.c:283
+msgid "append files to the end of an archive"
+msgstr "adaug fiiere la sfritul unei arhive"
+
+#: src/tar.c:285
+msgid "only append files newer than copy in archive"
+msgstr "adaug numai fiierele mai noi dect copia din arhiv"
+
+#: src/tar.c:287
+msgid "append tar files to an archive"
+msgstr "adaug fiiere tar la o arhiv"
+
+#: src/tar.c:290
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "terge din arhiv (nu pe benzi magnetice!)"
+
+#: src/tar.c:293
+msgid "Operation modifiers:"
+msgstr "Modificatori operaie:"
+
+#: src/tar.c:296
+msgid "attempt to verify the archive after writing it"
+msgstr "ncearc s verifici arhiva dup scrierea sa"
+
+#: src/tar.c:298
+msgid "remove files after adding them to the archive"
+msgstr "terge fiierele dup ce acestea sunt adugate la arhiv"
+
+#: src/tar.c:300
+msgid "don't replace existing files when extracting"
+msgstr "nu nlocui fiierele existente la extragere"
+
+#: src/tar.c:302
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "nu nlocui fiierele existente care sunt mai noi dect copiile acestora din arhiv"
+
+#: src/tar.c:304
+msgid "preserve metadata of existing directories"
+msgstr "pstraz metadata directoarelor existente"
+
+#: src/tar.c:306
+msgid "overwrite existing files when extracting"
+msgstr "supra-scrie fiierele existente la extragere"
+
+#: src/tar.c:308
+msgid "remove each file prior to extracting over it"
+msgstr "terge fiecare fiier nainte de a extrage peste acesta"
+
+#: src/tar.c:310
+msgid "empty hierarchies prior to extracting directory"
+msgstr "golete ierarhiile nainte de a extrage un director"
+
+#: src/tar.c:312
+msgid "handle sparse files efficiently"
+msgstr "manipuleaz eficient fiierele rerefiate (sparse)"
+
+#: src/tar.c:314
+msgid "extract files to standard output"
+msgstr "extrage fiierele la ieirea standard"
+
+#: src/tar.c:316
+msgid "handle old GNU-format incremental backup"
+msgstr "folosete vechiul format GNU pentru backup incremental"
+
+#: src/tar.c:317 src/tar.c:390 src/tar.c:455 src/tar.c:514
+msgid "FILE"
+msgstr "FIIER"
+
+#: src/tar.c:318
+msgid "handle new GNU-format incremental backup"
+msgstr "folosete noul format GNU pentru backup incremental"
+
+#: src/tar.c:320
+msgid "do not exit with nonzero on unreadable files"
+msgstr "nu termina cu non-zero pentru fiiere ce nu pot fi citite"
+
+#: src/tar.c:321 src/tar.c:385 src/tar.c:398 src/tar.c:484
+msgid "NUMBER"
+msgstr "NUMR"
+
+#: src/tar.c:322
+msgid "process only the NUMth 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 -T option. NUMBER defaults to 1."
+msgstr "proceseaz numai a NUM-ra apariie a fiecrui fiier n arhiv. Aceast opiune este valid numai n combinaie cu una dintre subcomenzile --delete, --diff, --extract sau --list i cnd o list de fiiere este dat fie n linia de comand sau folosind opiunea -T. Implicit, NUMBER=1."
+
+#: src/tar.c:324
+msgid "Archive is seekable"
+msgstr "Arhiva este cutabil"
+
+#: src/tar.c:327
+msgid "Handling of file attributes:"
+msgstr "Manipulare atribute fiiere:"
+
+#: src/tar.c:329 src/tar.c:331 src/tar.c:387
+msgid "NAME"
+msgstr "NUME"
+
+#: src/tar.c:330
+msgid "force NAME as owner for added files"
+msgstr "foreaz NUME ca proprietar pentru fiierele adugate"
+
+#: src/tar.c:332
+msgid "force NAME as group for added files"
+msgstr "foreaz NUME ca grup pentru fiierele adugate"
+
+#: src/tar.c:333
+msgid "CHANGES"
+msgstr "SCHIMBRI"
+
+#: src/tar.c:334
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "foreaz mod (simbolic) SCHIMBRI pentru fiierele adugate"
+
+#: src/tar.c:336
+msgid "don't change access times on dumped files"
+msgstr "nu schimba timpurile de acces pentru fiierele prelucrate"
+
+#: src/tar.c:338
+msgid "don't extract file modified time"
+msgstr "nu extrage timpul de modificare al fiierului"
+
+#: src/tar.c:340
+msgid "try extracting files with the same ownership"
+msgstr "ncearc extragerea fiierelor cu aceleai drepturi (ownership)"
+
+#: src/tar.c:342
+msgid "extract files as yourself"
+msgstr "extrage fiierele ca dvs. nsui"
+
+#: src/tar.c:344
+msgid "always use numbers for user/group names"
+msgstr "folosete ntotdeauna numere pentru numele utilizator/grup"
+
+#: src/tar.c:346
+msgid "extract permissions information"
+msgstr "extrage informaii permisiuni"
+
+#: src/tar.c:349
+msgid "do not extract permissions information"
+msgstr "nu extrage informaii permisiuni"
+
+#: src/tar.c:351
+msgid "sort names to extract to match archive"
+msgstr "sorteaz numele de extras s se potriveasc cu arhiva"
+
+#: src/tar.c:354
+msgid "same as both -p and -s"
+msgstr "la fel ca -p i -s"
+
+#: src/tar.c:357
+msgid "Device selection and switching:"
+msgstr "Selectare i schimbare unitate:"
+
+#: src/tar.c:359
+msgid "ARCHIVE"
+msgstr "ARHIV"
+
+#: src/tar.c:360
+msgid "use archive file or device ARCHIVE"
+msgstr "folosete fiier arhiv sau unitate ARHIV"
+
+#: src/tar.c:362
+msgid "archive file is local even if has a colon"
+msgstr "fiier arhiv este local chiar cnd are un :"
+
+#: src/tar.c:363 src/tar.c:365
+msgid "COMMAND"
+msgstr "COMAND"
+
+#: src/tar.c:364
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "folosete rmt COMAND n loc de rmt"
+
+#: src/tar.c:366
+msgid "use remote COMMAND instead of rsh"
+msgstr "folosete remote COMAND n loc de rsh"
+
+#: src/tar.c:370
+msgid "specify drive and density"
+msgstr "specific unitate i densitate"
+
+#: src/tar.c:384
+msgid "create/list/extract multi-volume archive"
+msgstr "creaz/listeaz/extrage arhiva pe volume multiple"
+
+#: src/tar.c:386
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "schimb banda dup scriere a NUMR x 1024 octei"
+
+#: src/tar.c:388
+msgid "run script at end of each tape (implies -M)"
+msgstr "ruleaz script la terminarea fiecrei benzi (implic -M)"
+
+#: src/tar.c:391
+msgid "use/update the volume number in FILE"
+msgstr "folosete/actualizeaz numrul de volum n FIIER"
+
+#: src/tar.c:394
+msgid "Device blocking:"
+msgstr "Blocuri unitate:"
+
+#: src/tar.c:396
+msgid "BLOCKS"
+msgstr "BLOCURI"
+
+#: src/tar.c:397
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOCURI x 512 octei pe ntregistrare"
+
+#: src/tar.c:399
+msgid "SIZE bytes per record, multiple of 512"
+msgstr "DIMENSIUNE octei pe nregistrare, multiplu de 12"
+
+#: src/tar.c:401
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignor blocuri zero-uate n arhiv (nseamn EOF)"
+
+#: src/tar.c:403
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "redimensioneaz bloc n timpul citirii (pentru pipe-uri BSD4.2"
+
+#: src/tar.c:406
+msgid "Archive format selection:"
+msgstr "Selecie format arhiv:"
+
+#: src/tar.c:408
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:409
+msgid "create archive of the given format."
+msgstr "creaz arhiva de formatul dat."
+
+#: src/tar.c:411
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT este unul din urmtoarele"
+
+#: src/tar.c:412
+msgid "old V7 tar format"
+msgstr "vechiul format tar V7"
+
+#: src/tar.c:414
+msgid "GNU format as per tar <= 1.12"
+msgstr "oldgnu formatul GNU format ca pentru tar <= 1.12"
+
+#: src/tar.c:416
+msgid "GNU tar 1.13.x format"
+msgstr "formatul GNU tar 1.13.x"
+
+#: src/tar.c:418
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "formatul POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:420
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "formatul POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:421
+msgid "Same as pax"
+msgstr "ca i pax"
+
+#: src/tar.c:424
+msgid "same as --format=v7"
+msgstr "ca i --format=v7"
+
+#: src/tar.c:427
+msgid "same as --format=posix"
+msgstr "ca i --format=posix"
+
+#: src/tar.c:428
+msgid "keyword[[:]=value][,keyword[[:]=value], ...]"
+msgstr "cuvnt_cheie[[:]=valoare][,cuvnt_cheie[[:]=valoare], ...]"
+
+#: src/tar.c:429
+msgid "control pax keywords"
+msgstr "controleaz cuvintele cheie pax"
+
+#: src/tar.c:430
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:431
+msgid "create archive with volume name NAME. At list/extract time, use TEXT as a globbing pattern"
+msgstr "creaz arhiv nu nume volum NUME. La listare/extragere, folosete TEXT ca pattern de globbing"
+
+#: src/tar.c:433
+msgid "filter the archive through bzip2"
+msgstr "filtraz arhiva prin bzip2"
+
+#: src/tar.c:435
+msgid "filter the archive through gzip"
+msgstr "filtreaz arhiva prin gzip"
+
+#: src/tar.c:439
+msgid "filter the archive through compress"
+msgstr "filtreaz arhiva prin compress"
+
+#: src/tar.c:441
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:442
+msgid "filter through PROG (must accept -d)"
+msgstr "filtreaz prin PROG (trebuie s accepte -d)"
+
+#: src/tar.c:445
+msgid "Local file selection:"
+msgstr "Selecie fiier local:"
+
+#: src/tar.c:447
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:448
+msgid "change to directory DIR"
+msgstr "schimb n directorul DIR"
+
+#: src/tar.c:449
+msgid "FILE-OF-NAMES"
+msgstr "FIIER-DE-NUME"
+
+#: src/tar.c:450
+msgid "get names to extract or create from file NAME"
+msgstr "obine numele de extras sau creat din fiierul NUME"
+
+#: src/tar.c:452
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T citete nume terminate cu null, deactiveaz cu -C"
+
+#: src/tar.c:453
+msgid "PATTERN"
+msgstr "PATTERN"
+
+#: src/tar.c:454
+msgid "exclude files, given as a PATTERN"
+msgstr "exclude fiiere, date ca un PATTERN"
+
+#: src/tar.c:456
+msgid "exclude patterns listed in FILE"
+msgstr "pattern-urile de excludere sunt listate n FIIER"
+
+#: src/tar.c:458
+msgid "exclude directories containing a cache tag"
+msgstr "exclude directoarele ce conin o etichet cache"
+
+#: src/tar.c:460
+msgid "exclusion ignores case"
+msgstr "n excluderi ignor cazul caracterelor (minuscule/majuscule)"
+
+#: src/tar.c:462
+msgid "exclude patterns match file name start"
+msgstr "pattern-urile de excludere potrivesc nceputul numelor de fiiere"
+
+#: src/tar.c:464
+msgid "exclude patterns match after any / (default)"
+msgstr "pattern-urile de excludere potrivesc dup orice / (implicit)"
+
+#: src/tar.c:466
+msgid "exclusion is case sensitive (default)"
+msgstr "excluderea depinde de caz (minuscule/majuscule) (implicit)"
+
+#: src/tar.c:468
+msgid "exclude patterns are plain strings"
+msgstr "pattern-urile de excludere sunt iruri simple"
+
+#: src/tar.c:470
+msgid "exclude pattern wildcards do not match '/'"
+msgstr "wildcard-urile n pattern-urile de excludere nu potrivesc '/'"
+
+#: src/tar.c:472
+msgid "avoid descending automatically in directories"
+msgstr "evit coborrea automat n directoare"
+
+#: src/tar.c:474
+msgid "stay in local file system when creating archive"
+msgstr "stai n sistemul de fiire local la creare arhivei"
+
+#: src/tar.c:477
+msgid "recurse into directories (default)"
+msgstr "coboar recursiv n directoare (implicit)"
+
+#: src/tar.c:479
+msgid "don't strip leading `/'s from file names"
+msgstr "nu elimina primul `/' din numele fiierelor"
+
+#: src/tar.c:481
+msgid "dump instead the files symlinks point to"
+msgstr "folosete n schimb fiierele ctre care point-eaz symlink-urile"
+
+#: src/tar.c:482
+msgid "MEMBER-NAME"
+msgstr "NUME-MEMBRU"
+
+#: src/tar.c:483
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "ncepe la membrul NUME-MEMBRU n arhiv"
+
+#: src/tar.c:485
+msgid "strip NUMBER leading components from file names"
+msgstr "elimin NUMR componente de la nceputul numelor fiierelor"
+
+#: src/tar.c:486
+msgid "DATE-OR-FILE"
+msgstr "DATA-FIIERULUI"
+
+#: src/tar.c:487
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "stocheaz numai fiiere mai noi dect DATA-FIIERULUI"
+
+#: src/tar.c:488 src/tar.c:490
+msgid "DATE"
+msgstr "DATA"
+
+#: src/tar.c:489
+msgid "compare date and time when data changed only"
+msgstr "compar data i timpul numai cnd a fost schimbat data"
+
+#: src/tar.c:491
+msgid "same as -N"
+msgstr "ca i -N"
+
+#: src/tar.c:492
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:493
+msgid "backup before removal, choose version CONTROL"
+msgstr "f backup nainte de tergere, alege CONTROL pentru versiuni"
+
+#: src/tar.c:494
+msgid "STRING"
+msgstr "IR"
+
+#: src/tar.c:495
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX"
+msgstr "f backup nainte de tergere, nlocuiete prefixul normal ('~' n afar de cazul cnd este determinat de variabila de mediu SIMPLE_BACKUP_SUFFIX"
+
+#: src/tar.c:497
+msgid "exclude patterns use wildcards (default)"
+msgstr "pattern-urile de excludere folosesc wildcard-uri (implicit)"
+
+#: src/tar.c:499
+msgid "exclude pattern wildcards match '/' (default)"
+msgstr "wildcard-urile din pattern-urile de excludere potrivesc '/' (implicit)"
+
+#: src/tar.c:502
+msgid "Informative output:"
+msgstr "Ieire informativ:"
+
+#: src/tar.c:505
+msgid "verbosely list files processed"
+msgstr "listeaz cu amnunte fiierele procesate"
+
+#: src/tar.c:507
+msgid "display progress messages every 10th record"
+msgstr "afieaz mesaje despre progres la fiecare al 10-a nregistrare"
+
+#: src/tar.c:509
+msgid "print a message if not all links are dumped"
+msgstr "afieaz un mesaj dac nu toate link-urile sunt prelucrate"
+
+#: src/tar.c:511
+msgid "print total bytes written while creating archive"
+msgstr "afieaz numrul total de octei scrii la crearea arhivei"
+
+#: src/tar.c:513
+msgid "print file modification dates in UTC"
+msgstr "afieaz datele de modificare a fiierelor n UTC"
+
+#: src/tar.c:515
+msgid "send verbose output to FILE"
+msgstr "trimite ieire detaliat n FIIER"
+
+#: src/tar.c:517
+msgid "show block number within archive with each message"
+msgstr "arat numrul blocului din arhiv pentru fiecare mesaj"
+
+#: src/tar.c:519
+msgid "ask for confirmation for every action"
+msgstr "cere confirmare pentru fiecare aciune"
+
+#: src/tar.c:522
+msgid "Show tar defaults"
+msgstr "Arat valorire implicite folosite de tar"
+
+#: src/tar.c:524
+msgid "When listing or extracting, list each directory that does not match search criteria"
+msgstr "La listare sau extragere, listeaz fiecare director care nu se potrivete cu criteriile de cutare"
+
+#: src/tar.c:527
+msgid "Compatibility options:"
+msgstr "Opiuni compatibilitate:"
+
+#: src/tar.c:530
+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:533
+msgid "Other options:"
+msgstr "Alte opiuni:"
+
+#: src/tar.c:535
+msgid "Give this help list"
+msgstr "Afieaz aceast list de ajutor"
+
+#: src/tar.c:536
+msgid "Give a short usage message"
+msgstr "Afieaz un scurt mesaj despre folosire"
+
+#: src/tar.c:537
+msgid "Print license and exit"
+msgstr "Afieaz licena i termin"
+
+#: src/tar.c:538
+msgid "Print program version"
+msgstr "Afieaz versiunea programului"
+
+#: src/tar.c:575
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Nu putei specifica mai mult de una dintre opiunile `-Acdtrux'"
+
+#: src/tar.c:585
+msgid "Conflicting compression options"
+msgstr "Opiunile de compresie sunt n conflict"
+
+#: src/tar.c:595
+msgid ""
+"Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n"
+"for complete list of authors.\n"
+msgstr ""
+"Bazat pe munca lui John Gilmore i Jay Fenlason. Vedei AUTHORS\n"
+"pentru o list complet a autorilor.\n"
+
+#: src/tar.c:597
+#, c-format
+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"
+msgstr ""
+" GNU tar este software liber (free software); l putei redistribui\n"
+" i/sau modifica conform termenilor licenei GNU General Public License\n"
+" publicat de Free Software Foundation; fie versiunea 2 a Licenei,\n"
+" fie (la latitudinea dvs.) orice versiune ulterioar.\n"
+"\n"
+" GNU tar este distribuit n sperana c va fi folositor,\n"
+" dar FR NICI O GARANIE; fr chiar garania implicit de\n"
+" VANDABILITATE sau POTRIVIRE PENTRU UN SCOP ANUME. Vedei\n"
+" licena GNU General Public License pentru detalii suplimentare.\n"
+"\n"
+" Ar fi trebuit s fi primit o copie a licenei GNU General Public License\n"
+" mpreun cu GNU tar; dac nu, scriei la Free Software Foundation, Inc.,\n"
+" 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA\n"
+"\n"
+
+#: src/tar.c:638
+msgid "Invalid blocking factor"
+msgstr "Factor blocuri invalid"
+
+#: src/tar.c:713
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Avertisment: opiunea -I nu este suportat; ai dorit cumva -j sau -T?"
+
+#: src/tar.c:738
+msgid "Semantics of -l option will change in the future releases."
+msgstr "Semantica opiunii -l se va schimba n versiunile viitoare."
+
+#: src/tar.c:740
+msgid "Please use --one-file-system option instead."
+msgstr "V rugm folosii opiunea --one-file-system n schimb."
+
+#: src/tar.c:753
+msgid "Invalid tape length"
+msgstr "Lungime de band invalid"
+
+#: src/tar.c:781
+msgid "More than one threshold date"
+msgstr "Mai mult de o singur dat limit"
+
+#: src/tar.c:791
+msgid "Date file not found"
+msgstr "Fiier date nu a fost gsit"
+
+#: src/tar.c:800
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "nlocuim %s pentru format de dat necunoscut %s"
+
+#: src/tar.c:905
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Avertisment: opiunea -y nu este suportat, ai dorit cumva -j?"
+
+#: src/tar.c:981
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Grup invalid"
+
+#: src/tar.c:990
+msgid "Invalid mode given on option"
+msgstr "Mod invalid furnizat ca opiune"
+
+#: src/tar.c:1033
+msgid "Invalid number"
+msgstr "Numr invalid"
+
+#: src/tar.c:1051
+msgid "Invalid owner"
+msgstr "Proprietar invalid"
+
+#: src/tar.c:1075
+msgid "Invalid record size"
+msgstr "Dimensiune nregistrare invalid"
+
+#: src/tar.c:1078
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Dimensiune nregistrare trebuie s fie un multiplu de %d."
+
+#: src/tar.c:1110
+msgid "Invalid number of elements"
+msgstr "Numr invalid de elemente"
+
+#: src/tar.c:1185
+#, c-format
+msgid "Malformed density argument: '%s'"
+msgstr "Argument densitate malformat: '%s'"
+
+#: src/tar.c:1221
+#, c-format
+msgid "Unknown density: '%c'"
+msgstr "Densitate necunoscut: '%c'"
+
+#: src/tar.c:1241
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Opiunile `-[0-7][lmh]' nu sunt suportate de *acest* tar"
+
+#: src/tar.c:1249
+#, c-format
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Acest* tar folosete implicit:\n"
+
+#: src/tar.c:1278
+msgid "[FILE]..."
+msgstr "[FIIER]..."
+
+#: src/tar.c:1375
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Vechea opiune `%c' necesit un argument."
+
+#: src/tar.c:1458
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence n-are sens fr o list de fiiere"
+
+#: src/tar.c:1464
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence nu poate fi folosit n modul de operare cerut"
+
+#: src/tar.c:1494
+msgid "Multiple archive files require `-M' option"
+msgstr "Fiiere de arhiv multiple necesit opiunea `-M'"
+
+#: src/tar.c:1499
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Nu putei combina --listed-incremental cu --newer"
+
+#: src/tar.c:1514
+#, 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 octei)"
+
+#: src/tar.c:1524
+msgid "Cannot verify multi-volume archives"
+msgstr "Nu pot verifica arhive pe volume multiple"
+
+#: src/tar.c:1526
+msgid "Cannot verify compressed archives"
+msgstr "Nu pot verifica arhive comprimate"
+
+#: src/tar.c:1532
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Nu pot folosi arhive comprimate pe volume multiple"
+
+#: src/tar.c:1534
+msgid "Cannot update compressed archives"
+msgstr "Nu pot actualiza arhive comprimate"
+
+#: src/tar.c:1546
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option poate fi folosit numai pentru arhive POSIX"
+
+#: src/tar.c:1563
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Refuz categoric s creez o arhiv goal"
+
+#: src/tar.c:1584
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Opiunile `-Aru' sunt incompatibile cu `-f -'"
+
+#: src/tar.c:1607
+#, c-format
+msgid "Treating date `%s' as %s + %ld nanosecond"
+msgid_plural "Treating date `%s' as %s + %ld nanoseconds"
+msgstr[0] "Tratez data `%s' ca %s + %ld nanosecund"
+msgstr[1] "Tratez data `%s' ca %s + %ld nanosecunde"
+
+#: src/tar.c:1663
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Trebuie s specificai una din opiunile `-Acdtrux'"
+
+#: src/tar.c:1715
+msgid "Error in writing to standard output"
+msgstr "Eroare de scriere la ieirea standard"
+
+#: src/tar.c:1717
+msgid "Error exit delayed from previous errors"
+msgstr "Terminare cu eroare ntrziat de erori precedente"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: Fiier scurtat cu %s octet"
+msgstr[1] "%s: Fiier scurtat cu %s octei"
+
+#: src/xheader.c:140
+#, c-format
+msgid "Keyword %s is unknown or not yet imlemented"
+msgstr "Cuvnt_cheie %s necunoscut sau nc neimplementat"
+
+#: src/xheader.c:166
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Pattern-ul %s nu poate fi folosit"
+
+#: src/xheader.c:176
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Cuvnt_cheie %s nu poate fi nlocuit (overridden)"
+
+#: src/xheader.c:490
+msgid "Malformed extended header: missing whitespace after the length"
+msgstr "Antet extins malformat: lipsete spaiu liber dup lungime"
+
+#: src/xheader.c:501
+msgid "Malformed extended header: missing equal sign"
+msgstr "Antet extins malformat: lipsete semnul egal"
+
+#~ msgid "Quitting now."
+#~ msgstr "Termin acum."
diff --git a/po/ru.po b/po/ru.po
new file mode 100644
index 00000000..45268583
--- /dev/null
+++ b/po/ru.po
@@ -0,0 +1,2695 @@
+# Translation of tar messages to Russian
+# 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.
+# Pavel Maryanov <acid@jack.kiev.ua>, 2010.
+#
+#: src/create.c:1550
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.24\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2010-10-24 23:08+0300\n"
+"PO-Revision-Date: 2010-10-25 12:19+0200\n"
+"Last-Translator: Pavel Maryanov <acid@jack.kiev.ua>\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=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "недопустимый аргумент %s для %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "неоднозначный аргумент %s для %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Допустимые аргументы:"
+
+#: 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"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: Для параметра ARGP_HELP_FMT требуется значение"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: Параметра ARGP_HELP_FMT должен быть положительным"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Неизвестный параметр ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Мусор в ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1246
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Обязательные или необязательные аргументы для длинных параметров также являются обязательными или необязательными для соответствующих коротких параметров."
+
+#: gnu/argp-help.c:1639
+msgid "Usage:"
+msgstr "Использование:"
+
+#: gnu/argp-help.c:1643
+msgid " or: "
+msgstr " или: "
+
+#: gnu/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [ПАРАМЕТР...]"
+
+#: gnu/argp-help.c:1682
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Попробуйте `%s --help' или `%s --usage' для получения дополнительных сведений.\n"
+
+#: gnu/argp-help.c:1710
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Отчёты об ошибках отправляйте по адресу: %s.\n"
+
+#: gnu/argp-help.c:1929 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Неизвестная системная ошибка"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "вывод этой справки"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "вывод короткого сообщения об использовании"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "ИМЯ"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "определяет название программы"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "СЕК"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "ожидание в течение заданных СЕКУНД (по умолчанию 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "вывод версии программы"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ОШИБКА ПРОГРАММЫ) Неизвестная версия?!"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Слишком много аргументов\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ОШИБКА ПРОГРАММЫ) Параметр должен был быть распознан?!"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "ошибка записи"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: параметр «%s» не однозначен\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: с параметром «--%s» нельзя использовать аргумент\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: с параметром «%c%s» нельзя использовать аргумент\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: для параметра «--%s» требуется аргумент\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: нераспознанный параметр «--%s»\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: нераспознанный параметр «%c%s»\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: недопустимый параметр -- «%c»\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: для параметра требуется аргумент -- «%c»\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: параметр «-W %s» неоднозначен\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: с параметром «-W %s» нельзя использовать аргумент\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: для параметра «-W %s» требуется аргумент\n"
+
+#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "недостаточно памяти"
+
+#: gnu/openat-die.c:36
+#, c-format
+msgid "unable to record current working directory"
+msgstr "невозможно зарегистрировать текущий рабочий каталог"
+
+#: gnu/openat-die.c:54
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "не удалось вернуться в первоначальный рабочий каталог"
+
+#. 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.
+#: gnu/quotearg.c:274
+msgid "`"
+msgstr "«"
+
+#: gnu/quotearg.c:275
+msgid "'"
+msgstr "»"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Упакован %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl.html>\n"
+"Это свободное ПО: вы можете продавать и распространять его.\n"
+"Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Автор: %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Отчёты об ошибках отправляйте по адресу: %s\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: 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"
+
+#: 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: Невозможно найти в %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: ошибка разрешения"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Не удаётся запустить удалённый командный процессор"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Направление поиска за пределами диапазона"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Недопустимое направление поиска"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Недопустимое смещение поиска"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Смещение поиска за пределами диапазона"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Недопустимое число байт"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Число байт за пределами диапазона"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Неожиданный конец файла"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Недопустимый код операции"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Операция не поддерживается"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Неожиданные аргументы"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Работа с накопителем на магнитной ленте с приёмом команд от удалённого процесса"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "N"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "задайте уровень отладки"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "задайте имя выходного файла отладки"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "не удаётся открыть %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "слишком много аргументов"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Неверная команда"
+
+#: src/buffer.c:386 src/buffer.c:391 src/buffer.c:635 src/buffer.c:1250
+#: src/buffer.c:1296 src/buffer.c:1325 src/delete.c:211 src/list.c:184
+#: src/update.c:198
+msgid "This does not look like a tar archive"
+msgstr "Это не похоже на tar-архив"
+
+#: src/buffer.c:450 src/buffer.c:459
+msgid "Total bytes written"
+msgstr "Всего записано байт"
+
+#: src/buffer.c:457 src/buffer.c:471
+msgid "Total bytes read"
+msgstr "Всего прочитано байт"
+
+#: src/buffer.c:461
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Всего удалено байт: %s\n"
+
+#: src/buffer.c:550
+msgid "(pipe)"
+msgstr "(канал)"
+
+#: src/buffer.c:573
+msgid "Invalid value for record_size"
+msgstr "Недопустимое значение для record_size"
+
+#: src/buffer.c:576
+msgid "No archive name given"
+msgstr "Не указано имя архива"
+
+#: src/buffer.c:618
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Не удаётся проверить архив на stdin/stdout"
+
+#: src/buffer.c:632
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Архив сжат. Используйте параметр %s"
+
+#: src/buffer.c:689 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Не удаётся обновить сжатые архивы"
+
+#: src/buffer.c:782
+msgid "At beginning of tape, quitting now"
+msgstr "Начало ленты, завершение работы"
+
+#: src/buffer.c:788
+msgid "Too many errors, quitting"
+msgstr "Слишком много ошибок, завершение работы"
+
+#: src/buffer.c:821
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Размер записи = %lu блок"
+msgstr[1] "Размер записи = %lu блока"
+msgstr[2] "Размер записи = %lu блоков"
+
+#: src/buffer.c:842
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Невыровненный блок (%lu байт) в архиве"
+msgstr[1] "Невыровненный блок (%lu байта) в архиве"
+msgstr[2] "Невыровненный блок (%lu байт) в архиве"
+
+#: src/buffer.c:919
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Невозможно вернуться назад на один архивный файл; он может быть нечитаемым без -i"
+
+#: src/buffer.c:951
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek не остановился на границе записи"
+
+#: src/buffer.c:1002
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: содержит неверный номер тома"
+
+#: src/buffer.c:1037
+msgid "Volume number overflow"
+msgstr "Переполнение номера тома"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Приготовьте том Номер %d для %s и нажмите Enter: "
+
+#: src/buffer.c:1058
+msgid "EOF where user reply was expected"
+msgstr "Конец файла вместо ожидаемого ответа пользователя"
+
+#: src/buffer.c:1063 src/buffer.c:1095
+msgid "WARNING: Archive is incomplete"
+msgstr "ПРЕДУПРЕЖДЕНИЕ: Архив не полный"
+
+#: src/buffer.c:1077
+#, 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"
+" y или [нов.строка] Продолжение операции\n"
+
+#: src/buffer.c:1082
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Порождение подпроцесса командного процессора\n"
+
+#: src/buffer.c:1083
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Вывод этого списка\n"
+
+#: src/buffer.c:1090
+msgid "No new volume; exiting.\n"
+msgstr "Нет нового тома, завершение работы.\n"
+
+#: src/buffer.c:1123
+msgid "File name not specified. Try again.\n"
+msgstr "Не указано имя имя файла. Попробуйте ещё раз.\n"
+
+#: src/buffer.c:1136
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Неверные входные данные. Наберите ? для получения справки.\n"
+
+#: src/buffer.c:1187
+#, c-format
+msgid "%s command failed"
+msgstr "Сбой команды %s"
+
+#: src/buffer.c:1368
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s, возможно, продолжается на этом томе - в заголовке находится усечённое имя"
+
+#: src/buffer.c:1372
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s не продолжается на этом томе"
+
+#: src/buffer.c:1386
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s является неверным размером (%s != %s + %s)"
+
+#: src/buffer.c:1401
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Этот том вне последовательности (%s - %s != %s)"
+
+#: src/buffer.c:1479 src/buffer.c:1505
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Метка архива не соответствует %s"
+
+#: src/buffer.c:1509
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Том %s не соответствует %s"
+
+#: src/buffer.c:1603
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: слишком длинное имя файла для сохранения в многотомном заголовке GNU; обрезано"
+
+#: src/buffer.c:1794
+msgid "write did not end on a block boundary"
+msgstr "запись не остановилась на границе блока"
+
+#: 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[2] "Можно было прочитать только %lu байт из %lu"
+
+#: src/compare.c:105 src/compare.c:382
+msgid "Contents differ"
+msgstr "Содержимое различно"
+
+#: src/compare.c:131 src/extract.c:958 src/incremen.c:1462 src/list.c:397
+#: src/list.c:1384 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Неожиданный конец файла в архиве"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:308 src/compare.c:406
+msgid "File type differs"
+msgstr "Типы файлов отличаются"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:322
+msgid "Mode differs"
+msgstr "Права доступа отличаются"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Uid отличаются"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gid отличаются"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Время изменения отличается"
+
+#: src/compare.c:215 src/compare.c:414
+msgid "Size differs"
+msgstr "Размеры отличаются"
+
+#: src/compare.c:263
+#, c-format
+msgid "Not linked to %s"
+msgstr "Не ссылается на %s"
+
+#: src/compare.c:287
+msgid "Symlink differs"
+msgstr "Символические ссылки отличаются"
+
+#: src/compare.c:316
+msgid "Device number differs"
+msgstr "Номера устройств отличаются"
+
+#: src/compare.c:456
+#, c-format
+msgid "Verify "
+msgstr "Проверка "
+
+#: src/compare.c:463
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Неизвестный тип файла `%c', сравнён как обычный файл "
+
+#: src/compare.c:518
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Архив содержит файлы с именами, из которых удалены префиксы."
+
+#: src/compare.c:520
+msgid "Verification may fail to locate original files."
+msgstr "При проверке оригинальные файлы могут быть не найдены."
+
+#: src/compare.c:593
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "СБОЙ ПРОВЕРКИ: обнаружен %d неверный заголовок"
+msgstr[1] "СБОЙ ПРОВЕРКИ: обнаружено %d неверных заголовка"
+msgstr[2] "СБОЙ ПРОВЕРКИ: обнаружено %d неверных заголовков"
+
+#: src/compare.c:611 src/list.c:161
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Нулевой блок в %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: содержит каталог с кэшем тегов %s; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "значение %s за пределами %s диапазона %s..%s; заменяется на %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "значение %s за пределами %s диапазона %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Создаются отрицательные восьмеричные заголовки"
+
+#: src/create.c:611 src/create.c:674
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: имя файла слишком длинное (максимум %d); не сброшено"
+
+#: src/create.c:621
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: имя файла слишком длинное (не может быть разделено); не сброшено"
+
+#: src/create.c:648
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: имя ссылки слишком длинное; не сброшено"
+
+#: src/create.c:1062
+#, 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[2] "%s: Файл урезан на %s байт; дополнен нулями"
+
+#: src/create.c:1158
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: файл находится на другой файловой системе; не сброшен"
+
+#: src/create.c:1201 src/create.c:1212 src/incremen.c:582 src/incremen.c:588
+msgid "contents not dumped"
+msgstr "содержимое не сброшено"
+
+#: src/create.c:1416
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Неизвестный тип файла; файл проигнорирован"
+
+#: src/create.c:1527
+#, c-format
+msgid "Missing links to %s."
+msgstr "Отсутствуют ссылки на %s."
+
+#: src/create.c:1688
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: файл не изменён; не сброшен"
+
+#: src/create.c:1697
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: файл является архивом; не сброшен"
+
+#: src/create.c:1721 src/incremen.c:575
+msgid "directory not dumped"
+msgstr "каталог не сброшен"
+
+#: src/create.c:1793
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: файл изменился во время чтения"
+
+#: src/create.c:1855
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: сокет проигнорирован"
+
+#: src/create.c:1861
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door проигнорирован"
+
+#: src/delete.c:217 src/list.c:198 src/update.c:203
+msgid "Skipping to next header"
+msgstr "Пропускается до следующего заголовка"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Удаляется не-заголовок из архива"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: невероятно старая временная метка %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: временная метка %s - %s с в будущем "
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Неожиданная противоречивость при создании каталога"
+
+#: src/extract.c:709
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Каталог переименован до того, как мог быть извлечен его статус"
+
+#: src/extract.c:863
+msgid "Extracting contiguous files as regular files"
+msgstr "Непрерывные файлы извлекаются как обычные"
+
+#: src/extract.c:1183
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Выполняется попытка извлечь символические ссылки как жесткие"
+
+#: src/extract.c:1339
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Невозможно извлечь -- файл продолжается с другого тома"
+
+#: src/extract.c:1346 src/list.c:1117
+msgid "Unexpected long name header"
+msgstr "Непредвиденный длинный заголовок имени"
+
+#: src/extract.c:1353
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Неизвестный тип файла `%c', извлечён как обычный файл"
+
+#: src/extract.c:1379
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Текущий %s более новый или такого же возраста"
+
+#: src/extract.c:1431
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Невозможно было выполнить резервное копирование этот файла"
+
+#: src/extract.c:1568
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Невозможно переименовать %s в %s"
+
+#: src/incremen.c:474 src/incremen.c:518
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Каталог был переименован из %s"
+
+#: src/incremen.c:486
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Каталог был переименован"
+
+#: src/incremen.c:531
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Каталог новый"
+
+#: src/incremen.c:956 src/incremen.c:973
+msgid "Invalid time stamp"
+msgstr "Неверная временная метка"
+
+#: src/incremen.c:1012
+msgid "Invalid modification time (seconds)"
+msgstr "Неверное время изменения (секунды) "
+
+#: src/incremen.c:1027
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Неверное время изменения (наносекунды)"
+
+#: src/incremen.c:1047
+msgid "Invalid device number"
+msgstr "Неверный номер устройства"
+
+#: src/incremen.c:1062
+msgid "Invalid inode number"
+msgstr "Неверный номер inode"
+
+#: src/incremen.c:1113 src/incremen.c:1150
+msgid "Field too long while reading snapshot file"
+msgstr "Слишком длинное поле при чтении из snapshot-файла"
+
+#: src/incremen.c:1120 src/incremen.c:1158
+msgid "Read error in snapshot file"
+msgstr "Ошибка чтения snapshot-файла"
+
+#: 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:1129 src/incremen.c:1169
+msgid "Unexpected field value in snapshot file"
+msgstr "Неожиданное значения поля в snapshot-файле"
+
+#: src/incremen.c:1264
+msgid "Missing record terminator"
+msgstr "Отсутствует указатель конца записи"
+
+#: src/incremen.c:1325 src/incremen.c:1328
+msgid "Bad incremental file format"
+msgstr "Неверный формат инкрементного файла"
+
+#: src/incremen.c:1347
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Неподдерживаемая версия инкрементного формата: %<PRIuMAX>"
+
+#: src/incremen.c:1502
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Неверно сформирован dump-каталог: ожидался '%c', а найден %#3o"
+
+#: src/incremen.c:1512
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Неверно сформирован dump-каталог: 'X' повторяется"
+
+#: src/incremen.c:1525
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Неверно сформирован dump-каталог: пустое имя в 'R'"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Неверно сформирован dump-каталог: перед 'T' не стоит 'R'"
+
+#: src/incremen.c:1544
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Неверно сформирован dump-каталог: пустое имя в 'T'"
+
+#: src/incremen.c:1564
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Неверно сформирован dump-каталог: ожидался '%c', а найден конец данных"
+
+#: src/incremen.c:1571
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Неверно сформирован dump-каталог: 'X' ни разу не использован"
+
+#: src/incremen.c:1615
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Невозможно создать временный каталог с помощью шаблона %s"
+
+#: src/incremen.c:1677
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Каталог не удалён: невозможно выполнить stat"
+
+#: src/incremen.c:1690
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: Каталог находится на другом устройстве: не удален"
+
+#: src/incremen.c:1698
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Удаляется %s\n"
+
+#: src/incremen.c:1703
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Невозможно удалить"
+
+#: src/list.c:130
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Пропускается"
+
+#: src/list.c:146
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "блок %s: ** Блок нулей **\n"
+
+#: src/list.c:172
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "блок %s: ** Конец файла **\n"
+
+#: src/list.c:195 src/list.c:1089 src/list.c:1352
+#, c-format
+msgid "block %s: "
+msgstr "блок %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:704
+#, 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:759
+#, 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:770
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Восьмеричное значение архива %.*s за пределами диапазона %s"
+
+#: src/list.c:791
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Архив содержит устаревающие заголовки base-64"
+
+#: src/list.c:805
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Архив подписан строкой base-64 %s за пределами диапазона %s"
+
+#: src/list.c:836
+#, 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:865
+#, 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:887
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Значение архива %s за пределами %s диапазона %s..%s"
+
+#: src/list.c:1253
+#, c-format
+msgid " link to %s\n"
+msgstr " ссылка на %s\n"
+
+#: src/list.c:1261
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " неизвестный тип файла %s\n"
+
+#: src/list.c:1279
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Длинная ссылка--\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Длинное имя--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Заголовок тома--\n"
+
+#: src/list.c:1295
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Продолжение с позиции %s--\n"
+
+#: src/list.c:1357
+msgid "Creating directory:"
+msgstr "Создание каталога:"
+
+#: src/misc.c:298
+msgid "Cannot get working directory"
+msgstr "Не удаётся получить рабочий каталог"
+
+#: src/misc.c:571
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s переименован в %s\n"
+
+#: src/misc.c:580 src/misc.c:599
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Невозможно переименовать в %s"
+
+#: src/misc.c:604
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "%s переименовывается назад в %s\n"
+
+#: src/misc.c:851
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Файла удален до его считывания"
+
+#: src/misc.c:866
+#, c-format
+msgid "%s: Directory removed before we read it"
+msgstr "%s: каталог удалён до его чтения"
+
+#: src/misc.c:887
+msgid "child process"
+msgstr "дочерний процесс"
+
+#: src/misc.c:896
+msgid "interprocess channel"
+msgstr "межпроцессорный канал"
+
+#: src/names.c:594
+msgid "Pattern matching characters used in file names"
+msgstr "В именах файлов используются символы подстановки"
+
+#: src/names.c:596
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Используйте --wildcards, чтобы задействовать эти символы, или --no-wildcards, чтобы убрать это предепреждение."
+
+#: src/names.c:614 src/names.c:630
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Не найден в архиве"
+
+#: src/names.c:615
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Требуемое вхождение не найдено в архиве"
+
+#: src/names.c:649
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Несоответствиве метки архива"
+
+#: src/names.c:953
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "Параметра -C в списке файлов нельзя Использовать с параметром --listed-incremental"
+
+#: src/names.c:959
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Неверный формат архива"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Запрошены расширения GNU для несовместимого формата архива"
+
+#: 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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"Примеры:\n"
+" tar -cf archive.tar foo bar # Создание archive.tar из файлов foo и bar.\n"
+" tar -tvf archive.tar # Вывод подробного списка всех файлов в архиве archive.tar.\n"
+" tar -xf archive.tar # Извлечение всех файлов из archive.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Суффикс для резервных копий - '~', если он не установлен через --suffix\n"
+"или SIMPLE_BACKUP_SUFFIX. Управление версиями может быть установлено\n"
+"через --backup или VERSION_CONTROL. Значениями могут быть:\n"
+"\n"
+" none, off не создавать резервные копии\n"
+" t, numbered создавать нумерованные резервные копии\n"
+" nil, existing нумерованные, если существуют нумерованные копии, иначе простые\n"
+" never, simple всегда создавать простые резервные копии\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Основной режим работы:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "вывод списка содержимого архива"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "извлечение файлов из архива"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "создание нового архива"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "поиск различий между архивом и файловой системой"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "добавление файлов в конец архива"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "добавление в архив только более новых файлов"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "присоединение tar-файлов к архиву"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "удаление из архива (не на магнитных лентах!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "проверка метки тома архива и выход"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Модификаторы:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "эффективная обработка разрежённых файлов"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "установить версию используемого формата разрежения (подразумевает --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "обработка добавочного резервирования старого формата GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "обработка добавочного резервирования нового формата GNU"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "уровень копирования для созданного разностного архива со списком"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "не завершать работу при ненулевом статусе для нечитаемых файлов"
+
+#: src/tar.c:429
+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 "обработка только N-ого вхождения для каждого файла в архиве. Эта опция верна только в сочетании с одной из подкоманд --delete, --diff, --extract или --list, и когда список файлов задан либо в командной строке, либо через опцию -T. По умолчанию N равен 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "доступен поиск по архиву"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "поиск по архиву недоступен"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "не проверять номера устройств при создании инкрементных архивов"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "проверять номера устройств при создании инкрементных архивов (по умолчанию)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Управление перезаписью:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "попытка проверить архив после его записи"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "удаление файлов после их добавления в архив"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "не перезаписывать существующие файлы при извлечении"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "не перезаписывать существующие файлы, которые более новые, чем их копии в архиве"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "перезапись существующих файлов при извлечении"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "удаление каждого файла до извлечения поверх него"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "очистка всей иерархии до извлечения каталога"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "сохранение метаданных существующих каталогов"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "перезапись существующих файлов при извлечении (по умолчанию)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Выбор выходного потока:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "извлекать файлы на стандартный вывод"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "КОМАНДА"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "перенаправлять извлечённые файлы в другую программу"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "игнорировать коды завершения дочерних процессов"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "считать ненулевые коды завершения дочерних процессов как ошибку"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Обработка атрибутов файлов:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "принудительно устанавливать ИМЯ в качестве владельца для добавленных файлов"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "принудительно устанавливать ИМЯ в качестве группы для добавленных файлов"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "ДАТА-ИЛИ-ФАЙЛ"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "устанавливать для добавленных файлов mtime из ДАТЫ-ИЛИ-ФАЙЛА"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "РЕЖИМ"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "принудительно устанавливать (символьный) РЕЖИМ доступа для добавляемых файлов"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "СПОСОБ"
+
+#: src/tar.c:499
+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:503
+msgid "don't extract file modified time"
+msgstr "не извлекать время изменения файла"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "попытаться извлечь файлы с тем же владельцем, что и в архиве (по умолчанию для супепользователя)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "извлекать файлы как свои собственные (по умолчанию для обычных пользователей)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "использовать числа вместо имён владельца/группы"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "извлекать информацию о правах доступа к файлу (по умолчанию для суперпользователя)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "применять umask пользователя при извлечении прав доступа из архива (по умолчанию для обычных пользователей)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "сортировать извлекаемые имена в том же порядке, что и в архиве"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "эквивалент -p и -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "не устанавливать время изменения и права доступа извлечённых каталогов до завершения процесса извлечения"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "отменить действие параметра --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Выбор и переключение устройств:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "АРХИВ"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "использовать файл или устройство АРХИВ"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "файл архива является локальным, даже если содержит двоеточие"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "использовать указанную КОМАНДУ rmt вместо rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "использовать удалённую КОМАНДУ вместо rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "указать устройство и плотность"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "создание/листинг/извлечение многотомных архивов"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "сменить ленту после записи ЧИСЛО x 1024 байт"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "запустить скрипт по окончании каждой ленты (подразумевается использование -М)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "использовать/обновлять номера тома в ФАЙЛЕ"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Разбиение на блоки:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "БЛОКИ"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "число БЛОКОВ x 512 байт на запись"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "ЧИСЛО байт на запись, кратное 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "игнорировать нулевые блоки в архиве (т.е. EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "заново разбивать на блоки при чтении (для каналов 4.2BSD)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Формата архива:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "ФОРМАТ"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "создать архив в указанном формате"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "ФОРМАТОМ может быть:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "старый формат tar V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "формат GNU как в tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "формат GNU tar 1.13.х"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "формат POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "формат POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "эквивалент pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "эквивалент --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "эквивалент --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "keyword[[:]=значение][,keyword[[:]=значение]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "управляющие ключевые слова pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "ТЕКСТ"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "создать архив с именем тома ТЕКСТ; при листинге/извлечении использовать ТЕКСТ в качестве шаблона подстановки"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Опции сжатия:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "использовать суффикс архива для определения программы сжатия"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "не использовать суффикс архива для определения программы сжатия"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "ПРОГ"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "пропустить архив через ПРОГ (должна поддерживать -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Выбор локальных файлов:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "добавить указанный ФАЙЛ в архив (полезно, если имя начинается с дефиса)"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "КАТАЛОГ"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "перейти в КАТАЛОГ"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "загрузить из ФАЙЛА имена для извлечения или создания"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T читает строки, оканчивающиеся нулём, отключает опцию -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "выключить воздействие предыдущей опции --null"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "убрать кавычки с имён файлов, прочитанных с опцией -T (по умолчанию)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "не убирать кавычки с имён файлов, прочитанных с опцией -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "ШАБЛОН"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "исключать файлы, определённые ШАБЛОНОМ"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "исключать шаблоны, перечисленных в ФАЙЛЕ"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "исключать содержимое каталогов с файлом CACHEDIR.TAG за исключением самого файла с тегами"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "исключать всё содержимое каталогов, содержащих файл CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "исключать каталоги, содержащие файл CACHEDIR.TAG"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "исключать каталоги, содержащие ФАЙЛ, за исключением самого ФАЙЛА"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "исключать всё содержимое каталогов, содержащих ФАЙЛ"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "исключать каталоги с ФАЙЛОМ"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "исключать каталоги CVS"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "исключать резервные файлы и файлы блокировки"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "отключить автоматический спуск в каталоги"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "оставаться в локальной файловой системе при создании архива"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "рекурсивный спуск по каталогам (по умолчанию)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "не удалять начальные `/' из имен файлов"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "следовать по символьным ссылкам и сохранять файлы, на которые они указывают"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "следовать по жёстким ссылкам и сохранять файлы, на которые они указывают"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "ИМЯ-ЧЛЕНА"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "начинать с члена ИМЯ-ЧЛЕНА в архиве"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "сохранять только те файлы, которые новее ДАТЫ-ИЛИ-ФАЙЛА"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "ДАТА"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "сравнивать дату и время, только если изменены данные"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "УПРАВЛЕНИЕ"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "делать копию перед удалением, УПРАВЛЕНИЕ выбора версий"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "СТРОКА"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "делать копию перед удалением, переопределяет обычный суффикс ('~', если только он не переопределён переменной окружения SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Преобразование имён файлов:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "удалять указанное ЧИСЛО начальных компонентов из имён файлов перед извлечением"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "РАСШИРЕНИЕ"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "использовать замену РАСШИРЕНИЯ sed'ом для преобразования имён файлов"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Опции шаблонов подстановки для имён файлов (влияют на шаблоны включения и исключения):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "игнорировать регистр"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "шаблоны начала имени файла"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "шаблоны после любого '/' (по умолчанию для исключаемых)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "с учётом регистра (по умолчанию)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "использовать маски (по умолчанию для исключаемых)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "точное соответствие строке"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "маски не соответствуют '/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "маски соответствуют '/' (по умолчанию для исключаемых)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Вывод информации:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "подробный листинг обрабатываемых файлов"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "КЛЮЧЕВОЕ СЛОВО"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "управление предупреждением"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "вывод сообщений о ходе выполнения через каждые ЧИСЛО записей (по умолчанию 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ДЕЙСТВИЕ"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "выполнять ДЕЙСТВИЕ на каждой контрольной точке"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "вывод сообщений, если сохранены не все ссылки"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "СИГНАЛ"
+
+#: src/tar.c:751
+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:756
+msgid "print file modification times in UTC"
+msgstr "вывод времени изменения файла в формате UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "вывод имени файла и его полного разрешения"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "отправить подробный вывод данных в FILE"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "выводить номера блоков архива в каждом сообщении"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "запрашивать подтверждение для каждого действия"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "показать значения tar по умолчанию"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "при выводе листинга или извлечении показывать все каталоги, не соответствующем условию поиска"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "показывать имена файлов или архивов после преобразования"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "СТИЛЬ"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "установить стиль цитирования имён. Значения для СТИЛЯ см. ниже"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "дополнительно цитировать символы из СТРОКИ"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "отключить цитирование символов из СТРОКИ"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Опции совместимости:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "при создании, эквивалент --old-archive; при извлечении, эквивалент --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Другие опции:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "отключить использование некоторых потенциально опасных опций"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Указать можно только один из параметров «-Acdtrux» или «--test-label»"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Конфликт опций сжатия"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Неизвестное название сигнала: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Файл с образцом даты не найден"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "%s заменяется на неизвестный формат даты %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Опция `%s': дата '%s' рассматривается как %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: список файлов уже прочитан"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: в прочитанном имени файла присутствует пустой символ"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "пропустить архив через %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Допустимые аргументы для параметра --quoting-style:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Значения по умолчанию *этого* tar:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Неверный размер ёмкости блока"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Неверная длина ленты"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Недопустимое значение добавочного уровня"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Больше одной пороговой даты"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Неверное значение версии разрежения"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' не поддерживается на этой платформе"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "значение --checkpoint не является целым числом"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Недопустимая группа"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "В опции указан неверный режим доступа"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Неверное число"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Неверный владелец"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Опция --preserve устарела, используйте --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Неверный размер записи"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Размер записи должен быть кратен %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Неверное число элементов"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Разрешается использовать только одну опцию --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Неверно сформирован аргумент плотности: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Неизвестная плотность: '%c'"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Опции `-[0-7][lmh]' не поддерживаются *этим* tar'ом"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[ФАЙЛ]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Для старой опции `%c' нужно указать аргумент."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence бесполезна без списка файлов"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence не может быть использована запрошенном режиме работы"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Для нескольких файлов архивов требуется опция `-M'"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Нельзя комбинировать --listed-incremental с --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "параметр --level не имеет смыла без --listed-incremental"
+
+#: src/tar.c:2423
+#, 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[2] "%s: Метка тома слишком длинная (максимум %lu байт)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Невозможно проверить многотомные архивы"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Невозможно проверить сжатые архивы"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Невозможно использовать многотомные сжатые архивы"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Невозможно объединить сжатые архивы"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option может быть использована только с архивами POSIX"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Размер тома не может быть меньше размера записи"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order несовместим с --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Робкий отказ от создания пустого архива"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Параметры «-Aru» не совместимы с «-f -»"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Необходимо указать один из параметров -Acdtrux или --test-label"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+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[2] "%s: Файл урезан на %s байт"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Неизвестное или ещё не реализованное ключевое слово %s"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Метка времени за пределами допустимого диапазона"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Шаблон %s не может быть использован"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Ключевое слово %s не может быть перекрыто"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Неверно сформирован расширенный заголовок: отсутствует длина"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Длина расширенного заголовка за пределами допустимого диапазона"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Длина расширенного заголовка %*s за пределами допустимого диапазона"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Неверно сформирован расширенный заголовок: после длины отсутствует пробел"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Неверно сформирован расширенный заголовок: отсутствует знак равенства "
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Неверно сформирован расширенный заголовок: отсутствует знак новой строки"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Игнорируется неизвестное ключевое слово расширенного заголовка `%s'"
+
+#: src/xheader.c:831
+#, 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:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Расширенный заголовок %s=%s за пределами диапазона %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Неверно сформирован расширенный заголовок: неверный %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Неверно сформирован расширенный заголовок: превышен %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Неверно сформирован расширенный заголовок: неверный %s: непредвиденный разделитель %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Неверно сформирован расширенный заголовок: неверный %s: нечётное число значений"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: недопустимое время ожидания"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: неизвестное действие контрольной точки"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "запись"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Контрольная точка чтения %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile используется для работы с файлами данных для пакета тестов paxutils от GNU.\n"
+"ОПЦИИ:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Опции создания файла:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "РАЗМЕР"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Создание файла указанного РАЗМЕРА"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Запись в файл с ИМЕНЕМ, а не на стандартный вывод"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Чтение имён файла из ФАЙЛА"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T читает строки, оканчивающиеся нулём"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Заполнение файла заданным ШАБЛОНОМ. ШАБЛОН - это 'default' или 'zeros'"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Размер блока для разрежённого файла"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Создание разрежённого файла. Остальная часть команды определяет карту файла."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "СМЕЩЕНИЕ"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Искать до указанного смещения перед записью данных"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Параметры статистики по файлам:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Вывод содержимого структуры stat для всех указанных файлов. ФОРМАТ по умолчанию:"
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Параметры синхронного выполнения:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "ПАРАМЕТР"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Выполнение АРГУМЕНТОВ. Полезно с параметром --checkpoint и одним из --cut, --append или --touch"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Выполнение указанного действия (см. ниже) до достижения контрольной точки с заданным НОМЕРОМ"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Указание даты для следующего параметра --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Показать выполненные контрольные точки и статус выхода КОМАНДЫ"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Синхронное выполнение действий. Они выполняются при достижении контрольной точки с номером, определённым опцией --checkpoint."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Усечь ФАЙЛ до размера, определённого предыдущей опцией --length (или 0, если не указан)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Добавить РАЗМЕР байт к ФАЙЛУ. РАЗМЕР определяется предыдущей опцией --length."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Обновить время последнего доступа и изменения ФАЙЛА."
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Выполнить КОМАНДУ"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Разорвать связь с ФАЙЛОМ"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Недопустимый размер: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Число за пределами допустимого диапазона: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Отрицательный размер: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "Сбой stat(%s)"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "запрошенная длина файла %lu, реальная %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "созданный файл не является разреженным"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Ошибка разбора числа возле `%s'"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Неизвестный формат даты"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[АРГУМЕНТЫ...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "невозможно открыть `%s'"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "невозможно найти"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "в имени файла присутствует пустой символ"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "невозможно вывести разрежённые файлы на стандартный вывод; используйте опцию --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "неверная маска (возле `%s')"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Неизвестное поле `%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "невозможно установить время в `%s'"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "не удаётся разорвать связь с «%s»"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Команда успешно выполнена\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Сбой команды; состояние: %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Команда завершена по сигналу %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Команда остановлена по сигналу %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Команда сбросила дамп памяти\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Команда завершена\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "для опции --stat нужны имена файлов"
+
+#~ msgid "Cannot save working directory"
+#~ 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 "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"
+
+#~ msgid "filter the archive through lzma"
+#~ msgstr "пропустить архив через lzma"
+
+#~ msgid "filter the archive through lzop"
+#~ msgstr "пропустить архив через lzop"
diff --git a/po/sk.po b/po/sk.po
new file mode 100644
index 00000000..05e127ea
--- /dev/null
+++ b/po/sk.po
@@ -0,0 +1,1382 @@
+# Slovak translations for GNU tar
+# Copyright (C) 1997 Free Software Foundation, Inc.
+# Martin Lacko <lacko@host.sk>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar- \n"
+"POT-Creation-Date: 2001-09-26 13:54-0700\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: KBabel 0.9.5\n"
+
+#: lib/argmatch.c:160
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "argument %s je pre %s neplatn"
+
+#: lib/argmatch.c:161
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "argument %s nie je pre %s jednoznan"
+
+#. We try to put synonyms on the same line. The assumption is that
+#. synonyms follow each other
+#: lib/argmatch.c:180
+msgid "Valid arguments are:"
+msgstr "Platn argumenty s:"
+
+#: lib/error.c:125 src/rmt.c:93
+msgid "Unknown system error"
+msgstr "Neznma systmov chyba"
+
+#: lib/getopt.c:693
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: prepna %s nie je jednoznan\n"
+
+#: lib/getopt.c:718
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: prepna `--%s' mus by zadan bez argumentov\n"
+
+#: lib/getopt.c:723
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: prepna `%c%s' mus by zadan bez argumentu\n"
+
+#: lib/getopt.c:741 lib/getopt.c:914
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: prepna `%s' vyaduje argument\n"
+
+#. --option
+#: lib/getopt.c:770
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: neznmy prepna `--%s'\n"
+
+#. +option or -option
+#: lib/getopt.c:774
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: neznmy prepna `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:800
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: neznmy prepna -- %c\n"
+
+#: lib/getopt.c:803
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: neznmy prepna -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: lib/getopt.c:833 lib/getopt.c:963
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: prepna vyaduje argument -- %c\n"
+
+#: lib/getopt.c:880
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: prepna `-W %s' nie je jednoznan\n"
+
+#: lib/getopt.c:898
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: prepna `-W %s' mus by zadan bez argumentu\n"
+
+#: lib/human.c:341
+msgid "block size"
+msgstr "vekos bloku"
+
+#. 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.
+#: lib/quotearg.c:268
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:269
+msgid "'"
+msgstr "'"
+
+#. If XALLOC_FAIL_FUNC is NULL, or does return, display this message
+#. before exiting when memory is exhausted. Goes through gettext.
+#: lib/xmalloc.c:66
+msgid "memory exhausted"
+msgstr "Pam vyerpan"
+
+#. Amanda 2.4.1p1 looks for "Total bytes written: [0-9][0-9]*".
+#: src/buffer.c:153
+#, c-format
+msgid "Total bytes written: %s (%sB, %sB/s)\n"
+msgstr "Celkom zapsan bajtov: %s (%sB, %sB/s)\n"
+
+#: src/buffer.c:231
+msgid "(pipe)"
+msgstr "(rra)"
+
+#: src/buffer.c:246
+msgid "Cannot close"
+msgstr "Ned sa zatvori"
+
+#: src/buffer.c:254
+msgid "Cannot dup"
+msgstr "Popisova sboru nie je mon duplikova"
+
+#: src/buffer.c:268 src/buffer.c:275
+msgid "Cannot use compressed or remote archives"
+msgstr "Komprimovan alebo vzdialen archvy nie je mon poui"
+
+#. The new born child tar is here!
+#: src/buffer.c:336 src/buffer.c:505
+msgid "tar (child)"
+msgstr "tar (potomok)"
+
+#. The newborn grandchild tar is here! Launch the compressor.
+#: src/buffer.c:381 src/buffer.c:540
+msgid "tar (grandchild)"
+msgstr "tar (prapotomok)"
+
+#: src/buffer.c:662
+msgid "Invalid value for record_size"
+msgstr "Chybn hodnota pre vekos zznamu"
+
+#: src/buffer.c:665
+msgid "No archive name given"
+msgstr "Meno archvu nebolo zadan"
+
+#: src/buffer.c:675
+msgid "Cannot verify multi-volume archives"
+msgstr "Vczvzkov archv nie je mon otvori"
+
+#: src/buffer.c:683
+#, c-format
+msgid "Cannot allocate memory for blocking factor %d"
+msgstr "Pre blokov faktor (blokov na zznam) %d nie je mon alokovat pam"
+
+#: src/buffer.c:694
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Viaczvzkov komprimovan archv nie je mon vytvori"
+
+#: src/buffer.c:696
+msgid "Cannot verify compressed archives"
+msgstr "Komprimovan archv nie je mon otvori"
+
+#: src/buffer.c:709
+msgid "Cannot update compressed archives"
+msgstr "Komprimovan archv nie je mon aktualizova"
+
+#: src/buffer.c:721
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Stdin/Stdout archv nie je mon otvori"
+
+#: src/buffer.c:823
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Pre vyhodnotenie vzorky `%s' mus by archv pomenovan"
+
+#: src/buffer.c:826 src/buffer.c:1137
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Zvzok %s nezodpoved vzorke %s"
+
+#: src/buffer.c:864
+#, c-format
+msgid "Write checkpoint %d"
+msgstr "Zapisujem testovac bod %d"
+
+#: src/buffer.c:1033
+msgid "At beginning of tape, quitting now"
+msgstr "Pska na zaiatku, konm"
+
+#: src/buffer.c:1039
+msgid "Too many errors, quitting"
+msgstr "Prli mnoho chb, konm"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Read checkpoint %d"
+msgstr "tanie testovacieho bodu %d"
+
+#: src/buffer.c:1146 src/extract.c:1198
+#, c-format
+msgid "Reading %s\n"
+msgstr "tanie z %s\n"
+
+#: src/buffer.c:1150
+msgid "WARNING: No volume header"
+msgstr "VAROVANIE: Chba hlavika zvzku"
+
+#: src/buffer.c:1158
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s nepokrauje na tomto zvzku"
+
+#: src/buffer.c:1172
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s je chybnej dky (%s != %s + %s)"
+
+#: src/buffer.c:1184
+msgid "This volume is out of sequence"
+msgstr "Tento zvzok nie je nslednkem predchdzajceho"
+
+#: src/buffer.c:1216
+#, c-format
+msgid "Unaligned block (%lu bytes) in archive"
+msgstr "Nezarovnan blok (%lu bajtov) v archve"
+
+#: src/buffer.c:1230
+#, c-format
+msgid "Record size = %lu blocks"
+msgstr "Vekos zznamu = %lu blokov"
+
+#: src/buffer.c:1308
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "V archve sa nie je mon vrti, bez -i me by neitaten"
+
+#: src/buffer.c:1360
+#, c-format
+msgid "Child died with signal %d"
+msgstr "Potomok bol ukonen signlom %d"
+
+#: src/buffer.c:1363
+#, c-format
+msgid "Child returned status %d"
+msgstr "Potomok vrtil status %d"
+
+#: src/buffer.c:1389
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: vracia chybn slo zvzku"
+
+#: src/buffer.c:1440
+msgid "Volume number overflow"
+msgstr "slo zvzku preteen"
+
+#: src/buffer.c:1459
+#, c-format
+msgid "`%s' command failed"
+msgstr "'%s' prkaz zlyhal"
+
+#: src/buffer.c:1468
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Pripravte zvzok #%d pre archv %s a stlate return:"
+
+#: src/buffer.c:1474
+msgid "EOF where user reply was expected"
+msgstr "Namiesto uvateskej odpovede bol zadan koniec sboru"
+
+#: src/buffer.c:1479 src/buffer.c:1508
+msgid "WARNING: Archive is incomplete"
+msgstr "VAROVANIE: Archiv je nekompletn"
+
+#: src/buffer.c:1492
+msgid ""
+" n [name] Give a new file name for the next (and subsequent) volume(s)\n"
+" q Abort tar\n"
+" ! Spawn a subshell\n"
+" ? Print this list\n"
+msgstr ""
+" n [name] Zadanie novho mena pre al (a nasleduj) zvzok(ky)\n"
+" q Ukonenie programu tar\n"
+" ! Vytvorenie podshellu\n"
+" ? Vypsanie tejto npovedy\n"
+
+#. Quit.
+#: src/buffer.c:1503
+msgid "No new volume; exiting.\n"
+msgstr "Nie je nov zvzok; konm.\n"
+
+#: src/compare.c:100 src/compare.c:321 src/compare.c:353
+#, c-format
+msgid "Could only read %lu of %lu bytes"
+msgstr "D sa ta iba %lu z %lu bajtov"
+
+#: src/compare.c:109 src/compare.c:125 src/compare.c:393
+msgid "Contents differ"
+msgstr "Obsah sa li"
+
+#: src/compare.c:151 src/compare.c:212 src/compare.c:285 src/compare.c:339
+#: src/compare.c:373 src/extract.c:497 src/extract.c:520 src/extract.c:718
+#: src/extract.c:861 src/incremen.c:542 src/list.c:205 src/list.c:367
+#: src/list.c:1160 src/list.c:1183
+msgid "Unexpected EOF in archive"
+msgstr "Neoekvan koniec archvu"
+
+#: src/compare.c:434
+msgid "Verify "
+msgstr "Overujem "
+
+#: src/compare.c:441
+#, c-format
+msgid "%s: Unknown file type '%c', diffed as normal file"
+msgstr "%s: Neznmy typ sboru '%c', porovnvan ako normlny sbor"
+
+#: src/compare.c:465 src/compare.c:602 src/compare.c:661 src/compare.c:689
+msgid "File type differs"
+msgstr "Typ sboru sa li"
+
+#: src/compare.c:471 src/compare.c:616 src/compare.c:667
+msgid "Mode differs"
+msgstr "Prva sa lia"
+
+#: src/compare.c:478
+msgid "Uid differs"
+msgstr "Uid sa li"
+
+#: src/compare.c:480
+msgid "Gid differs"
+msgstr "Gid sa li"
+
+#: src/compare.c:484
+msgid "Mod time differs"
+msgstr "as poslednej pravy sa li"
+
+#: src/compare.c:488 src/compare.c:697
+msgid "Size differs"
+msgstr "Vekos sa li"
+
+#: src/compare.c:551
+#, c-format
+msgid "Not linked to %s"
+msgstr "Nie je odkazom na %s"
+
+#: src/compare.c:580
+msgid "Symlink differs"
+msgstr "Symbolick odkaz sa li"
+
+#: src/compare.c:610
+msgid "Device number differs"
+msgstr "slo zariadenia sa li"
+
+#: src/compare.c:807
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header(s) detected"
+msgstr "CHYBN OVERENIE: njdench chybnch hlaviiek: %d"
+
+#: src/create.c:151
+msgid "Generating negative octal headers"
+msgstr "Generujem zporn osmikov hlaviky"
+
+#: src/create.c:200
+#, 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:206
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "hodnota %s typu %s je mimo rozsah %s..%s"
+
+#: src/create.c:406
+msgid "Member names contain `..'"
+msgstr "Nzvy sborov obsahuj `..'"
+
+#: src/create.c:422 src/extract.c:652
+#, c-format
+msgid "Removing leading `%.*s' from member names"
+msgstr "Odstraujem vodn `%.*s' z nzvov sborov"
+
+#: src/create.c:947
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: sbor nie je zmenen; neaktualizovan"
+
+#: src/create.c:958
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: sbor je archiv; nearchivovan"
+
+#: src/create.c:1098
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: sbor je na inom sborovom systme; nearchivovan"
+
+#: src/create.c:1299
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Sbor zmazan skr ako mohl by tan"
+
+#: src/create.c:1399
+#, c-format
+msgid "%s: File shrank by %s bytes; padding with zeros"
+msgstr "%s: Sbor je krat o : %s bajtov; Doplujem nulami."
+
+#: src/create.c:1424
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: sbor bol poas tania zmenen"
+
+#: src/create.c:1512
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: soket ignorovan"
+
+#: src/create.c:1517
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: dvere ignorovan"
+
+#: src/create.c:1546
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Neznmy typ sboru; sbor ignorovan"
+
+#: src/delete.c:190 src/list.c:151 src/update.c:152
+msgid "This does not look like a tar archive"
+msgstr "Toto pravdepodobne nie je tar archiv"
+
+#: src/delete.c:195 src/list.c:156 src/update.c:157
+msgid "Skipping to next header"
+msgstr "Preskakujem na aliu hlaviku"
+
+#: src/delete.c:258
+msgid "Deleting non-header from archive"
+msgstr "Z archvu je mazan to, o nie je hlavika"
+
+#: src/extract.c:193
+#, c-format
+msgid "%s: time stamp %s is %lu s in the future"
+msgstr "%s: asov nlepka %s je %lu z dtumu budcnosti"
+
+#: src/extract.c:340
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Neoakvan nekonzistencia, pri vytvren adresra"
+
+#: src/extract.c:578
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Prieinok bol premenovan predtm, ako mohol by extrahovan jeho stav"
+
+#: src/extract.c:635
+#, c-format
+msgid "%s: Member name contains `..'"
+msgstr "%s: Nzov sboru obsahuje `..'"
+
+#: src/extract.c:666
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Tento sbor nebolo mon zlohova"
+
+#: src/extract.c:806
+msgid "Extracting contiguous files as regular files"
+msgstr "Svisle uloen sbory rozbaujem ako obyajn sbory"
+
+#: src/extract.c:1007
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Skam rozbali symbolick odkazy ako pevn odkazy"
+
+#: src/extract.c:1207
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Ned sa rozbali -- sbor je pokraovanm inho zvzku"
+
+#: src/extract.c:1216
+msgid "Visible long name error"
+msgstr "Viditen chyba dlhho mena"
+
+#: src/extract.c:1224
+#, c-format
+msgid "%s: Unknown file type '%c', extracted as normal file"
+msgstr "%s: Neznmy typ sboru `%c', rozbalen ako normlny sbor"
+
+#: src/extract.c:1311
+msgid "Error is not recoverable: exiting now"
+msgstr "Z chyby sa nie je mon zotavi: ukonuje sa"
+
+#: src/incremen.c:252
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Adresr bol premenovan"
+
+#: src/incremen.c:264
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Adresr je nov"
+
+#: src/incremen.c:404
+msgid "Invalid time stamp"
+msgstr "Neplatn as sboru"
+
+#: src/incremen.c:407
+msgid "Time stamp out of range"
+msgstr "as sboru mimo rozsah"
+
+#: src/incremen.c:428
+msgid "Invalid device number"
+msgstr "Neplatn slo zariadenia"
+
+#: src/incremen.c:432
+msgid "Device number out of range"
+msgstr "slo zariadenia je mimo rozsah"
+
+#: src/incremen.c:440
+msgid "Invalid inode number"
+msgstr "Neplatn slo i-uzlu"
+
+#: src/incremen.c:444
+msgid "Inode number out of range"
+msgstr "slo i-uzlu mimo rozsah"
+
+#: src/incremen.c:568
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Maem %s\n"
+
+#: src/incremen.c:573
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Ned sa zmaza"
+
+#: src/list.c:109
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Vynechvam"
+
+#: src/list.c:125
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok NUL **\n"
+
+#: src/list.c:139
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Konec sboru **\n"
+
+#: src/list.c:553
+#, c-format
+msgid "Blanks in header where numeric %s value expected"
+msgstr "Medzery v hlavike na mieste, kde je oakvan seln hodnota typu %s"
+
+#: src/list.c:606
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Osmikov hodnota %.*s typu %s je mimo rozsah; priradzujem dvojkov complement"
+
+#: src/list.c:616
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Osmikov hodnota %.*s typu %s je mimo rozsah"
+
+#: src/list.c:632
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Archv obsahuje zastaral base-64 hlaviky"
+
+#: src/list.c:645
+#, 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:676
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+msgstr "Hodnota base-256 typu %s je mimo rozsah"
+
+#: src/list.c:703
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+msgstr "Archv obsahuje %.*s tam, kde je oakavn saln hodnota typu %s"
+
+#: src/list.c:724
+#, 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:916 src/list.c:1135
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#: src/list.c:946
+msgid "Visible longname error"
+msgstr "Viditen chyba dlhho mena"
+
+#: src/list.c:1074
+#, c-format
+msgid " link to %s\n"
+msgstr " odkaz na %s\n"
+
+#: src/list.c:1082
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " neznmy typ sboru %s\n"
+
+#: src/list.c:1100
+msgid "--Volume Header--\n"
+msgstr "--Hlavika zvzku--\n"
+
+#: src/list.c:1108
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Pokraovan od %s bajtu--\n"
+
+#: src/list.c:1112
+msgid "--Mangled file names--\n"
+msgstr "--Rozdelen meno sboru--\n"
+
+#: src/list.c:1140
+msgid "Creating directory:"
+msgstr "Vytvram adresr:"
+
+#: src/mangle.c:54
+msgid "Unexpected EOF in mangled names"
+msgstr "Neoakvan koniec v rozsekanom mene"
+
+#: src/mangle.c:90 src/misc.c:368 src/misc.c:386
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: nie je mon premenova na %s"
+
+#: src/mangle.c:93
+#, c-format
+msgid "Renamed %s to %s"
+msgstr "Sbor %s premenovan na %s"
+
+#: src/mangle.c:110
+#, c-format
+msgid "%s: Cannot symlink to %s"
+msgstr "%s: Odkaz na `%s' nie je mon vytvori"
+
+#: src/mangle.c:113
+#, c-format
+msgid "Symlinked %s to %s"
+msgstr "%s odkazuje na %s"
+
+#: src/mangle.c:117
+#, c-format
+msgid "Unknown demangling command %s"
+msgstr "Neznmy prkaz %s pre spojovanie rozsekanch mien"
+
+#: src/misc.c:359
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Premenovvam %s na %s\n"
+
+#: src/misc.c:391
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Premenovvm %s sp na %s\n"
+
+#: src/misc.c:471
+msgid "Cannot save working directory"
+msgstr "Pracovn adresr nie je mon uchova"
+
+#: src/misc.c:477
+msgid "Cannot change working directory"
+msgstr "Pracovn adresr nie je mon zmeni"
+
+#: src/misc.c:521 src/misc.c:530
+#, c-format
+msgid "%s: Cannot %s"
+msgstr "%s: Ned sa %s"
+
+#: src/misc.c:539
+#, c-format
+msgid "%s: Warning: Cannot %s"
+msgstr "%s: Varovanie: Ned sa %s"
+
+#: src/misc.c:554
+#, c-format
+msgid "%s: Cannot change mode to %s"
+msgstr "%s: Prva nie je mon zmeni na %s"
+
+#: src/misc.c:562
+#, c-format
+msgid "%s: Cannot change ownership to uid %lu, gid %lu"
+msgstr "%s: Vlastnctvo nie je mon zmeni na uid %lu, gid %lu"
+
+#: src/misc.c:594
+#, c-format
+msgid "%s: Cannot hard link to %s"
+msgstr "%s: Odkaz na %s nie je mon vytvori"
+
+#: src/misc.c:646 src/misc.c:674
+#, c-format
+msgid "%s: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Chyba pri tan na bajte %s, tanie %lu bajtov"
+
+#: src/misc.c:657
+#, c-format
+msgid "%s: Warning: Read error at byte %s, reading %lu bytes"
+msgstr "%s: Varovanie: Chyba pri tan na bajte %s, tanie %lu bajtov"
+
+#: src/misc.c:714
+#, c-format
+msgid "%s: Cannot seek to %s"
+msgstr "%s: Ned sa zmeni pozcia v sbore na %s"
+
+#: src/misc.c:730
+#, c-format
+msgid "%s: Warning: Cannot seek to %s"
+msgstr "%s: Varovanie: Ukazovate v sbore nie je mon premiestni na %s"
+
+#: src/misc.c:739
+#, c-format
+msgid "%s: Cannot create symlink to %s"
+msgstr "%s: Symbolick odkaz na `%s' nie je mon vytvori"
+
+#: src/misc.c:797
+#, c-format
+msgid "%s: Wrote only %lu of %lu bytes"
+msgstr "%s: Zapsan iba %lu z %lu bajtov"
+
+#: src/misc.c:821
+msgid "child process"
+msgstr "potomok"
+
+#: src/misc.c:830
+msgid "interprocess channel"
+msgstr "meziprocesov kanl"
+
+#: src/names.c:369 src/names.c:418 src/names.c:460
+msgid "Missing file name after -C"
+msgstr "Za -C chba meno sboru"
+
+#: src/names.c:604 src/names.c:616
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: V archve nenjden"
+
+#: src/rmt.c:145
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Miesto pre buffer nie je mon alokova\n"
+
+#: src/rmt.c:147
+msgid "Cannot allocate buffer space"
+msgstr "Miesto pre buffer nie je mon alokova"
+
+#: src/rmt.c:255 src/tar.c:288 tests/genfile.c:61
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Viac informci zskate prkazom `%s --help'.\n"
+
+#: src/rmt.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"
+msgstr ""
+"Pouitie: %s [PREPNA]\n"
+"Manipuluje s archvom, prjma prkazy vzdialenho procesu.\n"
+"\n"
+" --version Vype oznaenie verzie\n"
+" --help Vype tto npovedu\n"
+
+#: src/rmt.c:266 src/tar.c:452
+msgid "\nReport bugs to <bug-tar@gnu.org>.\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"
+
+#: src/rmt.c:299 src/tar.c:1135 tests/genfile.c:135
+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 ""
+" Toto je volne riten programov vybavenie, kter je celkom BEZ ZRUKY.\n"
+"Podmienky pre koprovanie a rozirovanie njdete vo Veobecnej verejnej licencii GNU\n"
+"(GNU General Public Licence). Viac informcizskate v zdrojovch textoch\n"
+"v sbore COPYING."
+
+#: src/rmt.c:398 src/rmt.c:518 src/rmt.c:528
+msgid "Seek offset out of range"
+msgstr "Vekos pozcie v sbore je mimo rozsah"
+
+#: src/rmt.c:411
+msgid "Seek direction out of range"
+msgstr "Smer posunu v sbore je mimo rozsah"
+
+#: src/rmt.c:450
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Predasn koniec sboru\n"
+
+#: src/rmt.c:452
+msgid "Premature end of file"
+msgstr "Predasn koniec sboru"
+
+#: src/rmt.c:560
+#, c-format
+msgid "rmtd: Garbage command %c\n"
+msgstr "rmtd: Neznmy prkaz %c\n"
+
+#: src/rmt.c:562
+msgid "Garbage command"
+msgstr "Neznmy prkaz"
+
+#: src/rtapelib.c:283
+msgid "exec/tcp: Service not available"
+msgstr "exec/tcp: Sluba nie je k dispozcii"
+
+#: src/rtapelib.c:287
+msgid "stdin"
+msgstr "stdin"
+
+#: src/rtapelib.c:290
+msgid "stdout"
+msgstr "stdout"
+
+#. Bad problems if we get here.
+#. In a previous version, _exit was used here instead of exit.
+#: src/rtapelib.c:500
+msgid "Cannot execute remote shell"
+msgstr "Vzdialen shell nie je mon spusti"
+
+#: src/tar.c:69
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "Prepnae `-%s' a `-%s' vyaduj tandardn vstup"
+
+#: src/tar.c:292
+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 archivan program. Uklad sbory do archvu na psku alebo \n"
+"disk. Z archvu doke rozbali tak cel hierarchie sborov, ako i jednotliv\n"
+"sbory.\n"
+
+#: src/tar.c:296
+#, c-format
+msgid ""
+"\n"
+"Usage: %s [OPTION]... [FILE]...\n"
+"\n"
+"Examples:\n"
+" %s -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" %s -tvf archive.tar # List all files in archive.tar verbosely.\n"
+" %s -xf archive.tar # Extract all files from archive.tar.\n"
+msgstr ""
+"\n"
+"Pouitie: %s [PREPNA]... [SBOR]...\n"
+"\n"
+"Prklady:\n"
+" %s -cf archv.tar foo bar # Vytvor archv.tar zo sboru foo a bar.\n"
+" %s -tvf archv.tar # Podrobne vype vetky sbory v archv.tar.\n"
+" %s -xf archv.tar # Rozbal vetky sbory z archv.tar.\n"
+
+#: src/tar.c:303
+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"
+" Ak dlh prepnae maj povinn argument, tak tento argument je\n"
+"povinn i u ich krtkych foriem. Obdobne je tomu v prpade, ke je argument\n"
+"nepovinn.\n"
+
+#: src/tar.c:308
+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"
+"Hlavn funkcie:\n"
+" -t, --list vype obsah archvu\n"
+" -x, --extract, --get vyberie sbor(y) z archvu\n"
+" -c, --create vytvor nov archv\n"
+" -d, --diff, --compare njde rozdiely medzi archvom a sborovm systmom\n"
+" -r, --append prid sbory na koniec archvu\n"
+" -u, --update prid iba sbory novie, ako s v archve\n"
+" -A, --catenate prid sbory z tar archvu do archvu\n"
+" --concatenate rovnak ako -A\n"
+" --delete mae z archvu (nefunguje na magnetickch pskch)\n"
+
+#: src/tar.c:321
+msgid ""
+"\n"
+"Operation modifiers:\n"
+" -W, --verify attempt to verify the archive after writing it\n"
+" --remove-files remove files after adding them to the archive\n"
+" -k, --keep-old-files don't replace existing files when extracting\n"
+" --overwrite overwrite existing files when extracting\n"
+" --overwrite-dir overwrite directory metadata when extracting\n"
+" -U, --unlink-first remove each file prior to extracting over it\n"
+" --recursive-unlink empty hierarchies prior to extracting directory\n"
+" -S, --sparse handle sparse files efficiently\n"
+" -O, --to-stdout extract files to standard output\n"
+" -G, --incremental handle old GNU-format incremental backup\n"
+" -g, --listed-incremental=FILE\n"
+" handle new GNU-format incremental backup\n"
+" --ignore-failed-read do not exit with nonzero on unreadable files\n"
+msgstr ""
+"\n"
+"Modifiktory operci:\n"
+" -W, --verify over archv po zpise na mdium\n"
+" --remove-files zmae originlne sbory po ich archivcii\n"
+" -k, --keep-old-files neprepisuje existujce sbory pri rozbaovan\n"
+" archvu\n"
+" --overwrite prepisuje existujce sbory pri rozbaovan\n"
+" --overwrite-dir ak existuj metadta adresra, tak ich prepe\n"
+" -U, --unlink-first mae sbory pred ich prepsanm\n"
+" --recursive-unlink zmae przdne hierarchie pred \n"
+" rozbaovanm adresrov\n"
+" -S, --sparsa sbory s dierami spracuje efektvnejie\n"
+" -O, --to-stdout rozbal archv na tandardn vstup\n"
+" -G, --incremental spracuje star GNU-formt inkrementlnej zlohy\n"
+" -g, --listed-incremental=SBOR\n"
+" spracuje nov GNU-formt inkrementlnej zlohy\n"
+" --ignore-failed-read ignoruje chyby pri tan sborov\n"
+
+#: src/tar.c:338
+msgid ""
+"\n"
+"Handling of file attributes:\n"
+" --owner=NAME force NAME as owner for added files\n"
+" --group=NAME force NAME as group for added files\n"
+" --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+" --atime-preserve don't change access times on dumped files\n"
+" -m, --modification-time don't extract file modified time\n"
+" --same-owner try extracting files with the same ownership\n"
+" --no-same-owner extract files as yourself\n"
+" --numeric-owner always use numbers for user/group names\n"
+" -p, --same-permissions extract permissions information\n"
+" --no-same-permissions do not extract permissions information\n"
+" --preserve-permissions same as -p\n"
+" -s, --same-order sort names to extract to match archive\n"
+" --preserve-order same as -s\n"
+" --preserve same as both -p and -s\n"
+msgstr ""
+"\n"
+"Spracovanie vlastnost sboru:\n"
+" --owner=MENO pouije MENO ako vlastnka pridvanch sborov\n"
+" --group=MENO pouije MENO ako skupinu pridvanch sborov\n"
+" --mode=ZMENY pouije ako prva (symbolick) pridvanch\n"
+" sborov\n"
+" --atime-presarve nemen prstupov as na spracovvanch\n"
+" sboroch\n"
+" -m, --modification-time u rozbaovavanch sborov nenastav as\n"
+" poslednej pravy sboru z archvu\n"
+" --same-owner u rozbalovvanch sborov ska nastavi\n"
+" toho istho vlastnka ako je v archve\n"
+" --no-same-owner rozbal sbory a vetky bud vlastnen Vami\n"
+" --numeric-owner vdy pouv sla pre men vlastnka/skupiny\n"
+" -p, --same-permissions u rozbaovanch sborov nastav rovnak\n"
+" prva, ak maj v archve\n"
+" --no-same-permissions pri rozbaovan nenastavuje prva\n"
+" --presarve-permissions rovnak ako -p\n"
+" -s, --same-order zoradenie mien sborov pre rozbalenie je\n"
+" zhodn s archvov\n"
+" --presarve-order rovnak ako -s\n"
+" --presarve rovnak ako zadan -p a -s\n"
+
+#: src/tar.c:356
+msgid ""
+"\n"
+"Device selection and switching:\n"
+" -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+" --force-local archive file is local even if has a colon\n"
+" --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+" -[0-7][lmh] specify drive and density\n"
+" -M, --multi-volume create/list/extract multi-volume archive\n"
+" -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+" -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+" --new-volume-script=FILE same as -F FILE\n"
+" --volno-file=FILE use/update the volume number in FILE\n"
+msgstr ""
+"\n"
+"Vber zariadenia:\n"
+" -f, --file=ARCHV pracuje s archivom alebo zariadeniami ARCHV\n"
+" --force-local archvny sbor je loklny, dokonca i kde\n"
+" obsahuje ve mene dvojbodku\n"
+" --rsh-command=PRKAZ pouije PRKAZ pre prihlsenie namiesto rsh\n"
+" -[0-7][lmh] zadanie zariadenia a hustoty\n"
+" -M, --multi-volume prca s viaczvzkovm archvom\n"
+" -L, --tape-length=SLO vymen psku po zapsan SLO x 1024 bajtov\n"
+" -F, --info-script=SBOR spust script na konci kadej psky\n"
+" (zahrnuje i -M)\n"
+" --new-volume-script=SBOR rovnak ako -F SBOR\n"
+" --volno-file=SBOR pouije/aktualizuje slo zvzku v SBORe\n"
+
+#: src/tar.c:369
+msgid ""
+"\n"
+"Device blocking:\n"
+" -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+" --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+" -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+" -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+msgstr ""
+"\n"
+"Bloky zariadenia:\n"
+" -b, --blocking-factor=BLOKOY BLOKY x 512 bajtov na zznam\n"
+" --record-size=VEKOS VEKOS bajtov na zznam, nsobok 512\n"
+" -i, --ignore-zeros ignoruje nulov bloky v archve,\n"
+" ktor normlne znamenaj EOF.\n"
+" -B, --read-full-records ke nie je pretan toko bajtov,\n"
+" koko je poadovan, ska dota zbostatok\n"
+" (vhodn pre rry)\n"
+
+#: src/tar.c:377
+msgid ""
+"\n"
+"Archive format selection:\n"
+" -V, --label=NAME create archive with volume name NAME\n"
+" PATTERN at list/extract time, a globbing PATTERN\n"
+" -o, --old-archive, --portability write a V7 format archive\n"
+" --posix write a POSIX format archive\n"
+" -j, --bzip2 filter the archive through bzip2\n"
+" -z, --gzip, --ungzip filter the archive through gzip\n"
+" -Z, --compress, --uncompress filter the archive through compress\n"
+" --use-compress-program=PROG filter through PROG (must accept -d)\n"
+msgstr ""
+"\n"
+"Vber formtu archvu:\n"
+" -V, --label=MENO vytvor archv s menom zvzku MENO\n"
+" VZOR v obsahu/rozbaovan globlny vzor\n"
+" pre men sborov\n"
+" -o, --old-archive, --portability zape archv vo formte V7\n"
+" --posix zape archv vo formte POSIX\n"
+" -I, --bzip2 komprimuje archv pomocou bzip2\n"
+" -z, --gzip, --ungzip komprimuje archv pomocou gzip\n"
+" -Z, --compress, --uncompress komprimuje archv pomocou compress\n"
+" --usa-compress-program=PROG komprimuje archv pomocou PROG\n"
+" (ktor mus akceptova -d)\n"
+
+#: src/tar.c:389
+msgid ""
+"\n"
+"Local file selection:\n"
+" -C, --directory=DIR change to directory DIR\n"
+" -T, --files-from=NAME get names to extract or create from file NAME\n"
+" --null -T reads null-terminated names, disable -C\n"
+" --exclude=PATTERN exclude files, given as a PATTERN\n"
+" -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+" --anchored exclude patterns match file name start (default)\n"
+" --no-anchored exclude patterns match after any /\n"
+" --ignore-case exclusion ignores case\n"
+" --no-ignore-case exclusion is case sensitive (default)\n"
+" --wildcards exclude patterns use wildcards (default)\n"
+" --no-wildcards exclude patterns are plain strings\n"
+" --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+" --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+" -P, --absolute-names don't strip leading `/'s from file names\n"
+" -h, --dereference dump instead the files symlinks point to\n"
+" --no-recursion avoid descending automatically in directories\n"
+" -l, --one-file-system stay in local file system when creating archive\n"
+" -K, --starting-file=NAME begin at file NAME in the archive\n"
+msgstr ""
+"\n"
+"Vber sborov:\n"
+" -C, --directory=ADRESR opercie vykonva v ADRESRi\n"
+" -T, --files-from=MENO pri rozbalovan alebo vytvren berie nzvy\n"
+" sborov zo sboru MENO\n"
+" --null -T ita nulou ukonen men, zakzan -C\n"
+" --exclude=VZOR nepracuje so sbormi odpovedajcim VZORu\n"
+" -X, --exclude-from=SBOR nepracuje sa so sbormi, ktor zodpovedaj\n"
+" niektormu vzoru v SBORe\n"
+" --anchored nepracuje sa so vzormi, ktorch zanaj ako nzov (predvolen)\n"
+" --no-anchored vynecha vzory za kadm /\n"
+" --ignore-case vynechvanie ignorujce vekosti psmen\n"
+" --no-ignore-case vynechvanie rozoznva vekosti psmen (predvolen)\n"
+" --wildcards vynecha vzory obsahujce wildcards (predvolen)\n"
+" --no-wildcards vynecha vzory obsahujce przdne reazce\n"
+" --wildcards-match-slash vynecha vzory, ktorch wildcards obsahuj '/' (predvolen)\n"
+" --no-wildcards-match-slash vynecha vzory, ktorch wildcards neobsahuj '/'\n"
+" -P, --absolute-names neodstrauje vodn `/' z mien sborov\n"
+" -h, --dereference namiesto symbolickch odkazov pouije sbory,\n"
+" na ktor odkazy ukazuj\n"
+" --no-recursion neprechdza adresre\n"
+" -l, --one-file-system pri vytvran archvu zostane v jednom\n"
+" sborovom systme\n"
+" -K, --starting-file=MENO zane od sboru MENO z archvu\n"
+
+#: src/tar.c:412
+msgid ""
+" -N, --newer=DATE only store files newer than DATE\n"
+" --newer-mtime=DATE compare date and time when data changed only\n"
+" --after-date=DATE same as -N\n"
+msgstr ""
+" -N, --newer=DTUM archvuje iba sbory novie ako DTUM\n"
+" --newer-mtime=DTUM archveje iba sbory, ktorch dtum ostatnej\n"
+" zmeny dt je novj ako DTUM\n"
+" --after-date=DTUM rovnak ako -N\n"
+
+#: src/tar.c:418
+msgid ""
+" --backup[=CONTROL] backup before removal, choose version control\n"
+" --suffix=SUFFIX backup before removal, override usual suffix\n"
+msgstr ""
+" --backup[=TYP] spsob zlohovania sborov, pred ich prepsanm\n"
+" --suffix=PRPONA zlohuje pred prepsanm (zmazanm), ako prponu\n"
+" u zlonch sborov pouije PRPONu\n"
+
+#: src/tar.c:422
+msgid ""
+"\n"
+"Informative output:\n"
+" --help print this help, then exit\n"
+" --version print tar program version number, then exit\n"
+" -v, --verbose verbosely list files processed\n"
+" --checkpoint print directory names while reading the archive\n"
+" --totals print total bytes written while creating archive\n"
+" -R, --block-number show block number within archive with each message\n"
+" -w, --interactive ask for confirmation for every action\n"
+" --confirmation same as -w\n"
+msgstr ""
+"\n"
+"Informatvny vstup:\n"
+" --help vype tto npovedu a skon\n"
+" --version vype oznaenie verzie programu tar a skon\n"
+" -v, --verbose. vypisuje spracovvan sbory\n"
+" --checkpoint vypisuje men adresrov pri tan archvu\n"
+" --totals vype celkom zapsanch bajtov pri tvorbe archvu\n"
+" -R, --block-number s kadou sprvou vype slo bloku v archve\n"
+" -w, --interactive iada potvrdenie kadej akcie\n"
+" --confirmation rovnak ako -w\n"
+
+#: src/tar.c:434
+msgid ""
+"\n"
+"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 are:\n"
+"\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"\n"
+" Prpona zlonch sborov bude `~', pokia nie je nastaven pomocou --suffix\n"
+"alebo premennej SIMPLE_BACKUP_SUFFIX. Ak sa maj tvori zlon kpie, me by\n"
+"nastaven pomocou prepnaa --backup alebo premennej VERSION_CONTROL. Hodnoty\n"
+"mu by:\n"
+"\n"
+" t, numbered tvoria slovan zlon kpie\n"
+" nil, existing slovan, ak u slovan zlon kpie\n"
+" existuj, inak tvor jednoduch\n"
+" never, simple tvor vdy jednoduch zlon kpie sborov\n"
+
+#: src/tar.c:443
+#, c-format
+msgid ""
+"\n"
+"GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+"is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+"Support for POSIX is only partially implemented, don't count on it yet.\n"
+"ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+"or a file name starting with `/' or `.', in which case the file's date is used.\n"
+"*This* `tar' defaults to `-f%s -b%d'.\n"
+msgstr ""
+"\n"
+" GNU tar nevie ta alebo produkova `--posix' archvy. Ak je\n"
+"v prostred nastaven POSIXLY_CORRECT, GNU rozrenie je zablokovan prepnaom\n"
+"`--posix'. Podpora POSIX formtu je iastene implementovan, preto s ou prli\n"
+"nepotajte.\n"
+" ARCHV me by SBOR, HOSTITEL:SBOR alebo UIVATEL@HOSTITEL:SBOR,\n"
+"SBOR me by sbor alebo zariadenie. Implicitn prepnae s `-f %s -b %d'.\n"
+
+#: src/tar.c:478
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "Viac ako jeden prepna `-Acdtrux' neme by zadanch"
+
+#: src/tar.c:487
+msgid "Conflicting compression options"
+msgstr "Odporujce si kompresn prepnae"
+
+#: src/tar.c:555
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Prepna `%c' vyaduje argument."
+
+#: src/tar.c:600
+msgid "Obsolete option, now implied by --blocking-factor"
+msgstr "Zastaral prepna, je teraz zahrnut v prepnai --blocking-factor"
+
+#: src/tar.c:604
+msgid "Obsolete option name replaced by --blocking-factor"
+msgstr "Zastaral prepna, nahraden prepnaom --blocking-factor"
+
+#: src/tar.c:615
+msgid "Invalid blocking factor"
+msgstr "Neplatn poet bajtov na zznam"
+
+#: src/tar.c:621
+msgid "Obsolete option name replaced by --read-full-records"
+msgstr "Zastaral prepna, nahraden prepnaom --read-full-records"
+
+#: src/tar.c:696
+msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?"
+msgstr "Varovanie: prepna -I nie je podporovan; pravdepodobne budete chcie poui -j alebo -T!"
+
+#: src/tar.c:726
+msgid "Invalid tape length"
+msgstr "Neplatn dka psky"
+
+#: src/tar.c:733
+msgid "Obsolete option name replaced by --touch"
+msgstr "Zastaral prepna, nahraden prepnaom --touch"
+
+#: src/tar.c:754
+msgid "More than one threshold date"
+msgstr "Viac ako jeden poiaton dtum"
+
+#: src/tar.c:764
+msgid "Date file not found"
+msgstr "Dtumov sbor nebol njden"
+
+#: src/tar.c:772
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Zamieam %s za neznmy dtumov formt %s"
+
+#: src/tar.c:783 src/tar.c:989 src/tar.c:994
+msgid "Conflicting archive format options"
+msgstr "Odporujce si archvne formty"
+
+#: src/tar.c:795
+msgid "Obsolete option name replaced by --absolute-names"
+msgstr "Zastaral prepna, nahraden prepnaom --absolute-names"
+
+#: src/tar.c:807
+msgid "Obsolete option name replaced by --block-number"
+msgstr "Zastaral prepna, nahraen prepnaom --block-number"
+
+#: src/tar.c:880
+msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+msgstr "Varovanie: prepna -y nie je podporovan; pravdepodobne budete chcie poui -j!"
+
+#: src/tar.c:893
+msgid "Obsolete option name replaced by --backup"
+msgstr "Zastaral prepna, nahraden prepnaom --backup"
+
+#: src/tar.c:928
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: Chybn skupina"
+
+#: src/tar.c:937
+msgid "Invalid mode given on option"
+msgstr "Zadn chybn prva"
+
+#: src/tar.c:980
+msgid "Invalid owner"
+msgstr "Neplatn vlastnk"
+
+#: src/tar.c:1009
+msgid "Invalid record size"
+msgstr "Chybn vekos zznamu"
+
+#: src/tar.c:1012
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Vekos zznamu mus by nsobok %d."
+
+#: src/tar.c:1117
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Prepna `-[0-7][lmh]' nie je podporovan tmto tarom"
+
+#: src/tar.c:1140
+msgid "Written by John Gilmore and Jay Fenlason."
+msgstr "Autori: John Gilmore a Jay Fenlason."
+
+#: src/tar.c:1166
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU rozrenia poadovan na nekompatibilnom formte archvu"
+
+#: src/tar.c:1183
+msgid "Multiple archive files requires `-M' option"
+msgstr "Viac archivanch sborov vyaduje prepna `-M'"
+
+#: src/tar.c:1188
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental a --newer nie je mon kombinova"
+
+#: src/tar.c:1203
+#, c-format
+msgid "%s: Volume label is too long (limit is %lu bytes)"
+msgstr "%s: Meno zvzku je prli dlh (limit je %lu bajtov)"
+
+#: src/tar.c:1220
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Vytvorenie przdneho archvu odmietnut."
+
+#: src/tar.c:1241
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Prepnae `-Aru' a `--delete' s nezliten s prepnaom `-f -'"
+
+#: src/tar.c:1305
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "Muste zada jeden z prepnaov `-Acdtrux'"
+
+#: src/tar.c:1350
+msgid "Error in writing to standard output"
+msgstr "Chyba pri zpise na tandardn vstup"
+
+#: src/tar.c:1352
+msgid "Error exit delayed from previous errors"
+msgstr "Za behu programu nastala chyba"
+
+#: src/update.c:83
+#, c-format
+msgid "%s: File shrank by %s bytes"
+msgstr "%s: Sbor skrten o bajtov: %s"
+
+#: tests/genfile.c:65
+msgid "Generate data files for GNU tar test suite.\n"
+msgstr "Generujem datov sbory pre testovanie GNU taru.\n"
+
+#: tests/genfile.c:66
+#, c-format
+msgid "\nUsage: %s [OPTION]...\n"
+msgstr "\nPouitie: %s [PREPNA]...\n"
+
+#: tests/genfile.c:69
+msgid ""
+"If a long option shows an argument as mandatory, then it is mandatory\n"
+"for the equivalent short option also.\n"
+"\n"
+" -l, --file-length=LENGTH LENGTH of generated file\n"
+" -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+" --help display this help and exit\n"
+" --version output version information and exit\n"
+msgstr ""
+" Povinn argumenty u dlhch prepnaov, s povinn tie u odpovedajcich \n"
+"krtkch prepnaov.\n"
+"\n"
+" -l, --file-length dka generovanho sboru\n"
+" --help vype tto npovedu a skon\n"
+" --version vype oznaenie verzie a skon\n"
+
+#. Note to translator: Please translate "F. Pinard" to "Franois
+#. Pinard" if "" (c-with-cedilla) is available in the
+#. translation's character set and encoding.
+#: tests/genfile.c:143
+msgid "Written by F. Pinard."
+msgstr "Written by F. Pinard."
diff --git a/po/sl.po b/po/sl.po
new file mode 100644
index 00000000..7bbd08b3
--- /dev/null
+++ b/po/sl.po
@@ -0,0 +1,3553 @@
+# -*- mode: po; coding: utf-8; -*- Slovenian message catalog for GNU Tar
+# Copyright (C) 1996, 1999, 2000, 2001, 2005, 2006, 2007, 2009, 2011 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, 2011.
+#
+# $Id: tar-1.26.sl.po,v 1.2 2011/03/12 16:30:39 peterlin Exp $
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-12 17:30+0100\n"
+"Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n"
+"Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
+"Language: sl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8-bit\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "neveljaven argument %s za %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "dvoumen argument %s za %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Veljavni argumenti so:"
+
+#: 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"
+
+#: 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"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: neznan parameter ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Smetje v ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Argumenti, ki so bodisi obvezni bodisi neobvezni za dolge oblike izbir, so obvezni/neobvezni tudi za kratke oblike."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Uporaba:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " ali: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [IZBIRA...]"
+
+#: gnu/argp-help.c:1684
+#, 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"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Poročila o napakah javite na %s.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Neznana sistemska napaka"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "poda ta seznam pomoči"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "poda kratka navodila za uporabo"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "IME"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "nastavi ime programa"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "premor SEK sekund (privzeto 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "izpis izdaje programa"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMSKA NAPAKA) Različica ni poznana?!"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Preveč argumentov\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMSKA NAPAKA) Izbira bi morala biti prepoznana?!"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "napaka pri pisanju"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: izbira »%s« ni enopomenska\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: izbira »--%s« ne dovoljuje argumenta\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: izbira »%c%s« ne dovoljuje argumenta\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: izbira »--%s« zahteva argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: neprepoznana izbira »--%s«\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: neprepoznana izbira »%c%s«\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: neveljavna izbira -- »%c«\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: izbira zahteva argument -- »%c«\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: izbira »-W %s« ni enopomenska\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: izbira »-W %s« ne dovoljuje argumenta\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: izbira »-W %s« zahteva argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "pomnilnik porabljen"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "ni mogoče zabeležiti trenutnega imenika"
+
+#: gnu/openat-die.c:59
+#, c-format
+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.
+#.
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "»"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "«"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[dDjJ]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Priprava paketa: %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+msgid "Packaged by %s\n"
+msgstr "Priprava paketa: %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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+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.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Avtor(ica): %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:108
+#, c-format
+msgid "Written by %s and %s.\n"
+msgstr "Avtorja %s in %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Poročila o napakah javite na %s.\n"
+"Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge.net>.\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr ""
+"Poročila o napakah %s javite na %s.\n"
+"Napake v prevodu sporočite na <translation-team-sl@lists.sourceforge.net>.\n"
+
+#: gnu/version-etc.c:253
+#, c-format
+msgid "%s home page: <%s>\n"
+msgstr "Spletna stran %s: <%s>\n"
+
+#: gnu/version-etc.c:255
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>\n"
+msgstr "Spletna stran %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 "Splošna pomoč za rabo programja 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: Klic funkcije %s ni uspel"
+
+# 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: Klic funkcije %s ni uspel"
+
+#: 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Odstranjujemo vodilne »%s« iz imen elementov"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Odstranjujemo vodilne »%s« iz imen trdih povezav"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "Nadomeščamo manjkajoča imena elementov s ».«"
+
+#: lib/paxnames.c:155
+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
+#, c-format
+msgid "Cannot connect to %s: resolve failed"
+msgstr "Priklop na %s ni mogoč: razrešitev ni uspela"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Ni mogoče pognati nelokalne ukazne lupine"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Smer iskanja izven obsega"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Neveljavna smer iskanja"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Neveljaven odmik pri seek"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Odmik pri seek izven obsega"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Neveljaven števec bajtov"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Prekoračitev števca bajtov"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Predčasen znak za konec datoteke"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Neveljavna koda operacije"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operacija ni podprta"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Nepričakovani argumenti"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Nadzor tračne enote, ki bere ukaze iz drugega procesa"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "N"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "nastavi raven iskanja napak"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "DATOTEKA"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "določi datoteko za izpis iskanja napak"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "ni mogoče odpreti %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "preveč argumentov"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Neveljaven ukaz"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "To ne deluje kot arhiv ,tar'"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Skupno zapisanih bajtov"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Skupno prebranih bajtov"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Skupno izbrisanih bajtov: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(cev)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Neveljavna vrednost za dolžino zapisa (record_size)"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Ime arhiva ni podano"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Arhivov na stdin/stdout ni mogoče preveriti"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arhiv je stisnjen. Uporabite izbiro %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Stisnjenega arhiva ni mogoče ažurirati"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Na začetku traku, končujem"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "Preveč napak, končujem"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Dolžina zapisa = %lu blokov"
+msgstr[1] "Dolžina zapisa = %lu blok"
+msgstr[2] "Dolžina zapisa = %lu bloka"
+msgstr[3] "Dolžina zapisa = %lu bloki"
+
+#: src/buffer.c:913
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Neporavnan blok (%lu bajtov) v arhivu"
+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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek se ni ustavil na meji zapisa"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: vsebuje neveljavno številko dela"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Prekoračitev številke dela"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Pripravite del #%d za %s in pritisnite Return: "
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "Znak EOF na mestu, kjer se pričakuje odgovor uporabnika"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "POZOR: Arhiv nepopoln"
+
+#: src/buffer.c:1148
+#, 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 [ime] Podamo novo ime datoteke za naslednji del (in vse nadaljnje)\n"
+" q Končamo tar\n"
+" y, newline Nadaljujemo z delovanjem\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Poženemo ukazno podlupino\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Ta seznam uzazov\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Novega dela ni, konec.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Ime datoteke ni določeno. Poskusite znova.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Neveljaven vnos. Vtipkajte ? za pomoč.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "ukaz %s neuspešen"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s se ne nadaljuje v tem delu"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s je napačne velikosti (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Ta del ne sodi v zaporedje (%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arhiv ni označen skladno z %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Del %s ne ustreza %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: ime datoteke je predolgo za zapis v zaglavje GNU večdelnega arhiva; porezano"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "pisanje se ni končalo s koncem bloka"
+
+#: 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] "Prebrati je bilo moč samo %lu od %lu bajtov"
+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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Vsebina se razlikuje"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Nepričakovan znak za konec datoteke v arhivu"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Zvrst datoteke se razlikuje"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Način se razlikuje"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Številka uporabnika (UID) se razlikuje"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Številka skupine (GID) se razlikuje"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Čas zadnje spremembe se razlikuje"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Velikost se razlikuje"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Ni povezana z %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Simbolna povezava se razlikuje"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Številka enote se razlikuje"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Preverjanje "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Neznana vrsta datoteke »%c«, diff kot na navadni datoteki"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arhiv vsebuje imena datotek z odstranjenimi vodilnimi predponami."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Arhiv vsebuje transformirana imena datotek."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Verifikacija morda ne bo uspela locirati izvornih datotek."
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "NAPAKA PRI PREVERJANJU: najdeno %d neveljavnih glav"
+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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Osamljeni ničelni blok pri %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: vsebuje značko medpomnilniškega imenika %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "vrednost %s od %s obseg %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Ustvarjanje negativnih osmiških glav"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: ime datoteke je predolgo (največ %d); brez iznosa"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: ime datoteke je predolgo (ni mogoče deliti); brez iznosa"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: ime povezave je predolgo; brez iznosa"
+
+#: src/create.c:1064
+#, 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 skrčena za %s bajtov; dopolnjeno z ničlami"
+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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "vsebina ni iznešena"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Neznan tip datoteke; datoteka ignorirana"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Manjkajo povezave na %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: datoteka je nespremenjena; brez iznosa"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: datoteka je arhiv; brez iznosa"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "imenik ni iznešen"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: Datoteka je bila spremenjena med branjem"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: vtičnica ignorirana"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: vrata ignorirana"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Preskok na naslednjo glavo"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Brisanje ne-glave iz arhiva"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: neverjetno stara časovna oznaka %s"
+
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Nepričakovana neskladnost pri ustvarjanju imenika"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Imenik preimenovan, preden je bilo moč restavrirati njegov status"
+
+# POZOR! "contiguous files" so datoteke, ki so zapisane na disku
+# na zaporednih sektorjih (na tistih OS, ki jih podpirajo).
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Neprekinjene datoteke restavriramo kot navadne"
+
+# POZOR! Grdo!
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Simbolne povezave poskusimo dearhivirati kot trde"
+
+#: src/extract.c:1365
+#, 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:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Nepričakovano zaglavje z dolgim imenom"
+
+#: src/extract.c:1379
+#, 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:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Obstoječa »%s« je novejša ali enako stara"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Varnostne kopije te datoteke ni moč napraviti"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Preimenovanje %s v %s ni mogoče"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Imenik je bil preimenovan z %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Imenik je bil preimenovan"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Imenik je nov"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Neveljavna oznaka časa"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Neveljaven čas spremembe (sekunde)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Neveljaven čas spremembe (nanosekunde)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Neveljavna številka enote"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Neveljavna številka inoda"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Predolgo polje pri branju trenutnega posnetka"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Napaka pri branju trenutnega posnetka"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Nepričakovan znak za konec datoteke v trenutnem posnetku"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Nepričakovana vrednost polja v trenutnem posnetku"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Manjkajoč zaključek zapisa"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Okvarjen inkrementalni zapis datoteke"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Nepodprta različica inkrementalnega zapisa: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Skladenjska napaka pri imeniku za iznos: pričakovan »%c«, najden %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Skladenjska napaka pri imeniku za iznos: »X« podvojen"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Skladenjska napaka pri imeniku za iznos: manjkajoče ime pri »R«"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Skladenjska napaka pri imeniku za iznos: polja »T« ne predhodi polje »R«"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Skladenjska napaka pri imeniku za iznos: manjkajoče ime pri »T«"
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Skladenjska napaka pri imeniku za iznos: pričakovan »%c«, najden konec podatkov"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Skladenjska napaka pri imeniku za iznos: »X« ni uporabljen"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Ni mogoče ustvariti začasnega imenika po šabloni %s"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Imenika ne čistimo: statistika zanj ni dosegljiva"
+
+#: src/incremen.c:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Brišemo %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Odstranitev ni mogoča"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Izpuščeno"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** Blok znakov NUL **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Konec datoteke **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, 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:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Osmiška vrednost arhiva %.*s izven obsega %s"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arhiv vsebuje zastarele glave oblike base-64"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " povezava na %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " neznan tip datoteke %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Dolga povezava--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Dolgo ime--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Glava dela--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Nadaljevanje pri bajtu %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Ustvarjamo imenik:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Delovnega imenika ni mogoče ugotoviti"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Preimenujemo %s v %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Preimenovanje v %s ni mogoče"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Preimenujemo %s nazaj v %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Datoteka je bila odstranjena, preden smo jo prebrali"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "proces naslednik"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "medprocesni kanal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Z vzorcem ujemajoči se znaki, uporabljeni v imenih datotek"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Uporabite --wildcards, da bi omogočili ujemanje vzorcev, ali --no-wildcards, da izklopite to opozorilo"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Ni najdeno v arhivu"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Zahtevane pojavitve ni moč najti v arhivu"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Neskladje v oznaki arhiva"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "Izbira -C znotraj seznama datotek pri --listed-incremential ni dovoljena"
+
+#: src/names.c:955
+msgid "Only one -C option is allowed with --listed-incremental"
+msgstr "Samo ena izbira -C je dovoljena pri --listed-incremential"
+
+#: 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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Neveljavna oblika arhiva"
+
+#: 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: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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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« shranjuje več datotek skupaj na trak ali v arhiv na disku ter lahko povrne posamezne datoteke iz arhiva.\n"
+"\n"
+"Zgledi:\n"
+" tar -cf arhiv.tar prva druga # Ustvarimo arhiv.tar z datotekama prva in druga.\n"
+" tar -tvf arhiv.tar # Izčrpen seznam datotek v arhivu arhiv.tar.\n"
+" tar -xf arhiv.tar # Restavriramo vse datoteke iz arhiva arhiv.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Pripona varnostne kopije je »~«, razen če ni drugače določeno z izbiro --suffix\n"
+"ali s spremenljivko SIMPLE_BACKUP_SUFFIX. Vrsto varnostne kopije lahko določimo\n"
+"z izbiro --backup ali s spremenljivko VERSION_CONTROL. Vrednosti so:\n"
+"\n"
+" none, off nikoli ne izdeluj varnostnih kopij\n"
+" t, numbered oštevilčene varnostne kopije\n"
+" nil, existing oštevilčene varnostne kopije, če take že obstajajo,\n"
+" sicer enostavne\n"
+" never, simple vedno enostavne varnostne kopije\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Glavni načini delovanja:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "izpiši vsebino arhiva"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "restavriraj datoteke iz arhiva"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "ustvarjanje novega arhiva"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "iskanje razlik med arhivom in datotečnim sistemom"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "dodajanje datotek na konec arhiva"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "dodajanje novih datotek, če so novejše od že arhiviranih"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "zlivanje arhivov"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "brisanje datotek iz arhiva (ne deluje na traku!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "preizkusi oznako dela arhiva in zaključi"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Določila delovanja:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "ekonomično ravnanje z razpršenimi datotekami"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "GLAVNI[.POMOŽNI]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "izberi uporabljeno različico razpršenega zapisa (implicira --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "stari zapis GNU za inkrementalne arhive"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "novi zapis GNU za inkrementalne arhive"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "raven izmeta za ustvarjene inkrementalne arhive"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "nadaljuj z branjem, tudi če datoteke ni moč prebrati"
+
+#: src/tar.c:429
+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 "obdelaj le vsako N-to pojavitev vsake datoteke v arhivu. Ta izbira je veljavna le v zvezi z enim od podukazov --delete, --diff, --extract ali --list, pri čemer je seznam datotek podan bodisi v ukazni vrstici, bodisi z izbiro -T. Privzeta vrednost N je 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "po arhivu je mogoče iskati"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "po arhivu ni mogoče iskati"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "pri izdelavi inkrementalnega arhiva ne preverjaj številke naprav"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "pri izdelavi inkrementalnega arhiva preverjaj številke naprav (privzeto)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Nadzor nad pisanjem prek:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "s poskusom preverjanja zapisanega arhiva"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "pobriši datoteke, potem ko so arhivirane"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "pri restavriranju ne piši prek obstoječih datotek"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "pri restavriranju piši prek obstoječih datotek"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "s poprejšnjim brisanjem obstoječih datotek pri restavriranju istoimenskih novih"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "izprazni hierarhije pred restavriranjem imenikov"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "ohrani metainformacije o obstoječih imenikih"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "pri restavriranju piši prek metapodatkov obstoječih imenikov (privzeto)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Izbira izhodnega toka:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "datoteke restavriraj na standardni izhod"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "UKAZ"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "datoteke napelji na vhod drugega programa"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "prezri izhodne kode hčerinskih procesov"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "obravnavaj neničelne izhodne kode hčerinskih procesov kot napako"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Ravnanje z atributi datotek:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "pri dodajanju datotek spremenimo lastnika v IME"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "pri dodajanju datotek spremenimo skupino v IME"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATUM-ČAS"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "nastavi mtime za dodane datoteke iz DATUM-ALI-DATOTEKA"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "SPREMEMBE"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "zahtevaj (simbolne) SPREMEMBE zaščite za dodane datoteke"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METODA"
+
+#: src/tar.c:499
+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 "ohrani čas dostopa na iznesenih datotekah, bodisi z restavriranjem časa po branju (METODA=replace, privzeto) ali tako, da se časa sploh ne nastavi (METODA=system)"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "brez restavriranja časa spremembe"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "skušaj restavrirati datoteke tako, da se ohrani njihov lastnik iz arhiva (privzeto za administratorja)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "restavriraj datoteke tako, da postanemo njihov lastnik (privzeto za navadne uporabnike)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "s številčnimi vrednostmi UID/GID namesto imen"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "restavriraj podatke o dovoljenjih za dostop do datotek (privzeto za administratorja)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "uporabi uporabnikovo masko umask pri restavriranju dovoljenj za dostop do datotek (privzeto za uporabnike)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "imena razvrstimo tako, da se ujemajo z arhivom"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "isto kot -p in -s skupaj"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "z nastavljanjem časa sprememb in dovoljenja za dostop za restavrirane imenike počakaj do zaključka restavriranja"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "prekliči učinek izbire --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Izbira enote in preklapljanje:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARHIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "uporabi datoteko ali enoto ARHIV"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "arhiv je lokalen kljub dvopičju v imenu datoteke"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "uporabi navedeni UKAZ rmt namesto rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "uporabi nelokalen UKAZ namesto rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "določi enoto in gostoto zapisa"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "ustvari/preglej/restavriraj arhiv v več delih"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "menjava traku po ŠT x 1024 zapisanih bajtih"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "poženi SKRIPT po koncu traku (privzema -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "uporabimo/ažuriramo število dela v DATOTEKI"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Bločna razdelitev enote:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOKI"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "dolžina zapisa BLOKI × 512 bajtov"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "ŠTEVILO bajtov v zapisu (večkratnik 512)"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ne meni se za bloke ničel (EOF)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "razdeli na bloke ob branju (cevovodi 4.2BSD)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Izbira oblike arhiva:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "OBLIKA"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "ustvari arhiv v navedeni obliki"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "OBLIKA je nekaj od naštetega:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "oblika starega V7 tar"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "stara oblika GNU tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "oblika GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "oblika POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "oblika POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "isto kot pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "isto kot --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "isto kot --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "ključ[[:]=vrednost][,ključ[[:]=vrednost]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "krmilni ključi pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "VZOREC"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "ustvari arhiv z imenom dela IME; pri izpisu seznama/restavriranju je lahko IME regularni izraz za ime dela"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Izbire glede stiskanja:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "program za stiskanje ugotovi iz pripone arhiva"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "ne ugotavljaj programa za stiskanje iz pripone arhiva"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROGRAM"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtriraj skozi PROGRAM (sprejemati mora izbiro -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Izbira lokalne datoteke:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "IMENIK"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "pomik v navedeni IMENIK"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "preberi seznam datotek z navedene DATOTEKE"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T prebere z \\000 terminirana imena; onemogoči -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "prekliči učinek prejšnje izbire --null"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "odstrani narekovaje iz imen datotek, prebranih s -T (privzeto)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "ne odstrani narekovajev iz imen datotek, prebranih s -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "VZOREC"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "brez datotek, ki jih opisuje VZOREC"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "brez datotek, ustrezajočim vzorcem, prebranih z DATOTEKE"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "brez vsebine imenikov, ki vsebujejo značko CACHEDIR.TAG, razen značke same"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "brez imenikov, ki vsebujejo značko CACHEDIR.TAG, in vseh njihovih podimenikov"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "brez imenikov, ki vsebujejo značko CACHEDIR.TAG"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "brez vsebine imenikov, ki vsebujejo DATOTEKO, razen DATOTEKE same"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "brez imenikov, ki vsebujejo DATOTEKO, in vseh njihovih podimenikov"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "brez imenikov, ki vsebujejo DATOTEKO"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "brez imenikov sistema za nadzor različic"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "brez varnostnih kopij in zaklepnih datotek"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "podimenikov ne vključujemo avtomatično"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "pri arhiviranju izpusti datoteke na nelokalnih datotečnih sistemih"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "rekurzivno vključi vse podimenike"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "ne odstrani vodilnih »/« iz imen datotek"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "sledi simbolnim povezavam; arhiviraj/iznesi ciljne datoteke"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "sledi trdim povezavam; arhiviraj/iznesi ciljne datoteke"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "IME"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "začenši z navedenim IMENOM v arhivu"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "shrani le datoteke, novejše od DATUM-ČAS"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATUM"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "primerjaj datum in uro le, kadar se podatki spremenijo"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "TIP"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "varnostna kopija pred brisanjem, z možnostjo izbire TIPA varnostne kopije"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "NIZ"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "varnostna kopija pred brisanjem; prekličemo običajno PRIPONO (»~«, razen če lupinska spremenljivka SIMPLE_BACKUP_SUFFIX določa drugače)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Pretvorbe imen datotek:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "pri restavriranju poreži ŠTEVILO vodilnih komponent iz imen datotek"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "IZRAZ"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "uporabi nadomestitveni IZRAZ programa sed za pretvorbo imen datotek"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Izbire ujemanja imen datotek (vpliva tako na vključitvene kot na izključitvene vzorce):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "brez razlike med malimi in velikimi črkami"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "vzorci se ujemajo z začetkom imena datoteke"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "vzorci se ujemajo od kateregakoli znaka »/« dalje (privzeto pri izključitvi)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "pri ujemanje se razlikuje med malimi in velikimi črkami (privzeto)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "uporabi nadomestne znake (privzeto za izključitvi)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "dobesedno ujemanje nizov"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "nadomestni znaki se ne ujemajo z »/«"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "nadomestni znaki se ujemajo z »/« (privzeto pri izključitvi)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informativni izpisi:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "z izčrpnim izpisom obdelanih datotek"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KLJUČ"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "nadzor opozorila"
+
+#: src/tar.c:743
+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:745
+msgid "ACTION"
+msgstr "DEJANJE"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "na vsaki kontrolni točki izvedi DEJANJE"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "izpiši sporočilo, če niso zapisane vse povezave"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "izpiši skupno število bajtov po obdelavi arhiva; skupaj z argumentom - izpiši skupno število bajtov do prejema SIGNALA; Dovoljeni signali so: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 in SIGUSR2, prepoznana so tudi imena signalov brez predpone SIG-"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "izpiši čase sprememb datotek v UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "izpiši čas datoteke v polni ločljivosti"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "zapiši izčrpno poročilo v DATOTEKO"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "z izpisom zaporednega bloka v arhivu ob vsakem sporočilu"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "vprašaj za potrditev pri vsakem koraku"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "prikaži privzete nastavitve"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "pri izpisu seznama ali restavriranju izpiši vsak imenik, ki ne ustreza iskalnim pogojem"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "prikaži imena datotek ali arhivov po pretvorbi"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "SLOG"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "nastavi slog navajanja imen; glej spodaj za veljavne SLOGE"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "dodatno navedi znake iz NIZA"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "onemogoči navajanje znakov iz NIZA"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Združljivostne izbire:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "ob ustvarjanju arhiva isto kot --old-archive; ob restavriranju isto kot --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Druge izbire:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "onemogoči rabo nekaterih potencialno škodljivih izbir"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Podate lahko največ eno od izbir »-Acdtrux« ali »--test-label«"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Nasprotujoče si izbire glede stiskanja arhiva"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Neznano ime signala: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Datoteke z vzorcem datuma ni najti"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Nadomeščamo %s za neznan format datuma %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Izbira %s: Datum »%s« obravnavamo kot %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: seznam datotek je že prebran"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: prebrano ime datoteke vsebuje znak \\0"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtriraj arhiv skozi %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Veljavni argumenti pri izbiri --quoting-style so:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Privzete vrednosti *tega* programa tar:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Neveljaven faktor blokiranja"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Neveljavna dolžina traku"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Okvarjena vrednost inkrementalne ravni"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Več kot en pražni podatek"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Neveljavna vrednost razpršene različice"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "izbira --atime-preserve='system' na tem sistemu ni podprta"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "vrednost --checkpoint ni celo število"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Neveljavna skupina"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Podana zaščita ni veljavna"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Neveljavno število"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Neveljaven lastnik"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Raba izbire --preserve je odsvetovana, uporabite --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Neveljavna dolžina zapisa"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Dolžina zapisa mora biti večkratnik %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Neveljavno število elementov"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Dovoljena je le ena izbira --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Okvarjen argument gostote: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Neznana gostota: »%c«"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[DATOTEKA]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Stara izbira »%c« zahteva argument."
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence nima pomena brez seznama datotek"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence ni mogoče uporabiti v zahtevanem načinu delovanja"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Več arhivskih datotek zahteva izbiro »-M«"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Izbire --listed-incremental ni mogoče kombinirati z --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "Izbira --level je brez pomena brez izbire --listed-incremential"
+
+#: src/tar.c:2423
+#, 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: Oznaka dela je predolga (omejitev je %lu bajtov)"
+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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Arhivov v več delih ni mogoče preveriti"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Stisnjenega arhiva ni mogoče preveriti"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Stisnjeni arhivi v več delih niso mogoči"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Stisnjenega arhiva ni mogoče združevati"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "izbira --pax-option je mogoča le na arhivih POSIX"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Dolžina dela ne more biti manjša od velikosti zapisa"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "Izbiri --preserve-order in --listed-incremential sta nezdružljivi"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Zahteva po odprtju praznega arhiva bojazljivo zavrnjena"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Izbire »-Aru« so nezdružljive z »-f -«"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Ena od izbir »-Acdtrux« ali »--test-label« je obvezna"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Zaradi predhodnih napak zaključujemo s statusom napake"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+msgid_plural "%s: File shrank by %s bytes"
+msgstr[0] "%s: Datoteka skrčena za %s bajtov"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Ključ %s je bodisi neznan, bodisi še ni izveden"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Oznaka časa izven obsega"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Vzorca %s ni mogoče uporabiti"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Ključa %s ni mogoče preklicati"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Poškodovana razširjena glava: manjka dolžina"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Dolžina razširjene glave je izven dovoljenega obsega"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Dolžina razširjene glave %*s je izven dovoljenega obsega"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Poškodovana razširjena glava: za dolžino manjka presledek"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Poškodovana razširjena glava: manjka enačaj"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Poškodovana razširjena glava: manjka znak za novo vrstico"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ne upoštevamo neznanega ključa razširjene glave »%s«"
+
+#: src/xheader.c:831
+#, c-format
+msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)"
+msgstr "Ustvarjeni par ključ/vrednost je predolg (ključ=%s, dolžina=%s)"
+
+#. TRANSLATORS: The first %s is the pax extended header keyword
+#. (atime, gid, etc.).
+#: src/xheader.c:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Par %s=%s v razširjeni glavi je izven obsega %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Poškodovana razširjena glava: neveljavni %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Poškodovana razširjena glava: odvečni %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Poškodovana razširjena glava: neveljavni %s: nepričakovani razmejilnik %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Poškodovana razširjena glava: neveljavni %s: liho število vrednosti"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: neveljaven čas preteka"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: neznano dejanje za kontrolno točko"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "zapiši"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "preberi"
+
+# POZOR Poglej v source!
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Oznaka pisanja %u"
+
+# POZOR Poglej v source!
+#. 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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Oznaka branja %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile pripravi datoteke za testno zbirko GNU paxutils.\n"
+"IZBIRE so:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Izbire ustvarjenja datotek:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "VELIKOST"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Ustvari arhiv z navedeno VELIKOSTJO"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Zapiši na podano DATOTEKO namesto na standardni izhod"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Preberi imena datotek iz podane DATOTEKE"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T prebere z \\000 terminirana imena"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Zapiše v datoteko dani VZOREC. VZOREC je lahko 'default' ali 'zeros'"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Velikost bloka za razpršeno datoteko"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Ustvari razpršeno datoteko. Preostanek ukazne vrstice podaja preslikavo datoteke."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "ODMIK"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "pomakni se na dani odmik pred pisanjem podatkov"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Izbire statistike datotek:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Izpiši vsebino strukture stat za vsako od datotek. Privzeti FORMAT je: "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Izbire za sinhrono izvajanje:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "IZBIRA"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Izvedi ARGUMENTE. Uporabno z izbiro --checkpoint in eno od naslednjih izbir: --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Ob dosegu kontrolne točke N izvedi dano dejanje (glejte spodaj)"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Nastavi datum za naslednjo izbiro --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Izpiši izvedene kontrolne točke in izhodni status UKAZA"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Dejanja sinhronega izvajanja. Izvedejo se, ko je dosežena ena od kontrolnih točk, podana z izbiro --checkpoint."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Skrajšaj DATOTEKO na dolžino, določeno s prejšnjo izbiro --length (ali 0, če ta ni podana)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Dodaj VELIKOST bajtov DATOTEKI. VELIKOST je podana s prejšnjo izbiro --length."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Posodobi čas dostopa in spremembe za DATOTEKO"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Izvedi UKAZ"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Odstrani DATOTEKO"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Neveljavna velikost: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Številka izven dovoljenega obsega: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negativna velikost: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "klic stat(%s) ni uspel"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "zahtevana dolžina datoteke %lu, dejanska %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "ustvarjena datoteka ni razpršena"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Napaka pri razčlembi števila pri »%s«"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Neznana format datuma"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENT...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "ni mogoče odpreti »%s«"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "klic seek() ni mogoč"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "datoteka vsebuje znak NUL"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "razpršenih datotek ni mogoče ustvariti na standardnem izhodu, uporabite izbiro --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "nepravilna maska (pri »%s«)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Neznano polje »%s«"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "ni mogoče nastaviti časa za »%s«"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "ni mogoče odstraniti »%s«"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Ukaz se je uspešno zaključil\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Ukaz se je zaključil neuspešno s statusom %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Ukaz je bil prekinjen s signalom %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Ukaz je bil ustavljen s signalom %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Ukaz je izvrgel pomnilniško sliko\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Ukaz je bil prekinjen\n"
+
+# POZOR Je to res to?
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat zahteva imena datotek"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: Imenik je bil odstranjen, preden smo ga prebrali"
+
+#~ msgid "%s: illegal option -- %c\n"
+#~ msgstr "%s: nedovoljena izbira -- %c\n"
+
+#~ 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 "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 "Reading %s\n"
+#~ msgstr "Branje %s\n"
+
+#~ msgid "Error is not recoverable: exiting now"
+#~ msgstr "Napake ni moč popraviti: zapuščamo"
+
+#~ msgid "Cannot save working directory"
+#~ msgstr "Delovnega imenika ni mogoče shraniti"
+
+#~ 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 "filter the archive through lzma"
+#~ msgstr "filtriraj arhiv skozi gzip"
+
+#, fuzzy
+#~ msgid "filter the archive through lzop"
+#~ msgstr "filtriraj arhiv skozi gzip"
+
+#~ 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"
+
+#~ msgid "block size"
+#~ msgstr "velikost bloka"
+
+#~ msgid "%s: Read error at byte %s, reading %lu byte"
+#~ msgid_plural "%s: Read error at byte %s, reading %lu bytes"
+#~ msgstr[0] "%s: Napaka pri branju pri bajtu %s, prebrano %lu bajtov"
+#~ msgstr[1] "%s: Napaka pri branju pri bajtu %s, prebran %lu bajt"
+#~ msgstr[2] "%s: Napaka pri branju pri bajtu %s, prebrana %lu bajta"
+#~ msgstr[3] "%s: Napaka pri branju pri bajtu %s, prebran %lu bajti"
+
+#~ msgid "rmtd: Garbage command %c\n"
+#~ msgstr "rmtd: Neveljaven ukaz %c\n"
+
+#~ msgid "Modification time (seconds) out of range"
+#~ msgstr "Čas spremembe (sekunde) izven obsega"
+
+#~ msgid "Modification time (nanoseconds) out of range"
+#~ msgstr "Čas spremembe (nanosekunde) izven obsega"
+
+#~ msgid "Device number out of range"
+#~ msgstr "Številka enote izven obsega"
+
+# POZOR Je to res to?
+#~ msgid "--Mangled file names--\n"
+#~ msgstr "--Predelana imena datotek--\n"
+
+#~ msgid "Renamed %s to %s"
+#~ msgstr "Datoteka %s preimenovana v %s"
+
+#~ msgid "%s: Cannot symlink to %s"
+#~ msgstr "%s: Simbolna povezava na %s ni mogoča"
+
+#~ msgid "Symlinked %s to %s"
+#~ msgstr "%s simbolno povezano z %s"
+
+#~ msgid "Unknown demangling command %s"
+#~ msgstr "Neznan ukaz %s za restavriranje izvornih imen"
+
+#~ msgid "Missing file name after -C"
+#~ msgstr "Za izbiro -C manjka ime datoteke"
+
+#~ msgid "exclude patterns are plain strings"
+#~ msgstr "izključitveni vzorci ne vsebujejo metaznakov"
+
+#~ msgid "same as -N"
+#~ msgstr "isto kot -N"
+
+#~ msgid "exclude patterns use wildcards (default)"
+#~ msgstr "izključitveni vzorci vsebujejo metaznake (privzeto)"
+
+#~ msgid "print total bytes written while creating archive"
+#~ msgstr "z izpisom celotne dolžine pri zapisu"
+
+#~ msgid "Semantics of -l option will change in the future releases."
+#~ msgstr "Pomen izbire -l se bo v prihodnjih izdajah spremenil"
+
+#~ msgid "Please use --one-file-system option instead."
+#~ msgstr "Prosimo, uporabite raje izbiro --one-file-system"
+
+#~ 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 ""
+#~ "Program je BREZ VSAKEGA JAMSTVA, do zakonsko dovoljene meje. Razširjate ga\n"
+#~ "lahko pod pogoji, določenimi v Splošni javni licenci GNU; za podrobnosti si\n"
+#~ "oglejte datoteko COPYING."
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "POZOR: Oznaka dela manjka"
+
+#~ msgid "Visible long name error"
+#~ msgstr "Opazna napaka zaradi dolgih imen"
+
+#~ msgid "Visible longname error"
+#~ msgstr "Opazna napaka zaradi dolgih imen"
+
+#~ msgid "don't change access times on dumped files"
+#~ msgstr "brez spreminjanja časa zadnjega dostopa"
+
+#~ msgid "extract permissions information"
+#~ msgstr "z ohranitvijo zaščite datotek"
+
+#~ msgid "do not extract permissions information"
+#~ msgstr "brez ohranjanja zaščite datotek"
+
+#~ msgid "FILE-OF-NAMES"
+#~ msgstr "DATOTEKA"
+
+#~ msgid "dump instead the files symlinks point to"
+#~ msgstr "shranimo datoteke, na katere kažejo simbolne povezave"
+
+#~ msgid "Print license and exit"
+#~ msgstr "Izpis dovoljenja za rabo in izhod"
+
+#~ msgid ""
+#~ "Based on the work of John Gilmore and Jay Fenlason. See AUTHORS\n"
+#~ "for complete list of authors.\n"
+#~ msgstr ""
+#~ "Osnovano na delu Johna Gilmora in Jaya Fenlasona. Celoten seznam sodelavcev\n"
+#~ "je v datoteki AUTHORS.\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"
+#~ msgstr ""
+#~ " GNU tar je prost program; lahko ga razširjate ali spreminjate pod pogoji,\n"
+#~ " skladnimi s drugo ali poznejšimi izdajami splošnega javnega dovoljenja GNU\n"
+#~ " (GNU General Public License), izdanem pri Fundaciji za prosto programje\n"
+#~ " (Free Software Foundation).\n"
+#~ "\n"
+#~ " GNU tar se razširja v upanju, da je koristen, vendar BREZ KAKRŠNEGAKOLI\n"
+#~ " JAMSTVA, niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA RABO.\n"
+#~ " Za podrobnosti si oglejte »GNU General Public License«.\n"
+#~ "\n"
+#~ " Izvod »GNU General Public License« bi moral biti priložen temu programu;\n"
+#~ " če ni, pišite Free Software Foundation, Inc., 59 Temple Place - Suite 330,\n"
+#~ " Boston, MA 02111-1307, USA.\n"
+
+#~ msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+#~ msgstr "Opozorilo: izbira -y ni podprta, morda ste želeli -j?"
+
+#~ msgid "Error in writing to standard output"
+#~ msgstr "Napaka pri pisanju na standardni izhod"
+
+#~ msgid "Cannot dup"
+#~ msgstr "Podvojitev ni mogoča"
+
+#~ msgid "Cannot use compressed or remote archives"
+#~ msgstr "Ni mogoče uporabiti stisnjenih ali ne-lokalnih arhivov"
+
+#~ msgid "tar (child)"
+#~ msgstr "tar (naslednik)"
+
+#~ msgid "tar (grandchild)"
+#~ msgstr "tar (pranaslednik)"
+
+#~ msgid "Child returned status %d"
+#~ msgstr "Naslednik vrnil status %d"
+
+#~ msgid "Member names contain `..'"
+#~ msgstr "Imena elementov vsebujejo ,..`"
+
+#~ msgid "%s: Member name contains `..'"
+#~ msgstr "%s: Ime elementa vsebuje ,..`"
+
+#~ 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` shranjuje več datotek skupaj na trak ali arhiv na disku, ter lahko\n"
+#~ "vrne posamezne datoteke iz arhiva.\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"
+#~ "Če je pri daljši obliki izbire napisano, da ta zahteva argument, je argument\n"
+#~ "obvezen tudi za kratko obliko. Podobno velja za neobvezne argumente.\n"
+
+#~ 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"
+#~ "Glavni načini delovanja:\n"
+#~ " -t, --list izpis vsebine arhiva\n"
+#~ " -x, --extract, --get izvlečenje datoteke iz arhiva\n"
+#~ " -c, --create ustvarjanje novega arhiva\n"
+#~ " -d, --diff, --compare iskanje razlik med arhivom in datotečnim sistemom\n"
+#~ " -r, --append dodajanje datotek na konec arhiva\n"
+#~ " -u, --update nadomestitev starih/dodajanje novih datotek\n"
+#~ " -A, --catenate zlivanje arhivov\n"
+#~ " --concatenate isto kot -A\n"
+#~ " --delete brisanje datotek iz arhiva (ne deluje na traku!)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Operation modifiers:\n"
+#~ " -W, --verify attempt to verify the archive after writing it\n"
+#~ " --remove-files remove files after adding them to the archive\n"
+#~ " -k, --keep-old-files don't replace existing files when extracting\n"
+#~ " --overwrite overwrite existing files when extracting\n"
+#~ " --overwrite-dir overwrite directory metadata when extracting\n"
+#~ " -U, --unlink-first remove each file prior to extracting over it\n"
+#~ " --recursive-unlink empty hierarchies prior to extracting directory\n"
+#~ " -S, --sparse handle sparse files efficiently\n"
+#~ " -O, --to-stdout extract files to standard output\n"
+#~ " -G, --incremental handle old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " handle new GNU-format incremental backup\n"
+#~ " --ignore-failed-read do not exit with nonzero on unreadable files\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Določila:\n"
+#~ " -W, --verify s poskusom preverjanja zapisanega arhiva\n"
+#~ " --remove-files z brisanjem datotek, dodanih v arhiv\n"
+#~ " -k, --keep-old-files brez brisanja obstoječih datotek pri izvlačenju\n"
+#~ " --overwrite s pisanjem prek obstoječih datotek pri izvlačenju \n"
+#~ " --overwrite-dir s pisanjem prek obstoječih imenikov pri izvlačenju\n"
+#~ " -U, --unlink-first s poprejšnjim brisanjem obstoječih datotek pri \n"
+#~ " izvlačenju istoimenskih novih\n"
+#~ " --recursive-unlink izpraznimo hierarhije pred izvlačenjem imenikov\n"
+#~ " -S, --sparse ekonomično ravnanje z razpršenimi datotekami\n"
+#~ " -O, --to-stdout izvlačenje na standardni izhod\n"
+#~ " -G, --incremental stari format GNU za inkrementalne arhive\n"
+#~ " -g, --listed-incremental=DATOTEKA\n"
+#~ " novi format GNU za inkrementalne arhive\n"
+#~ " --ignore-failed-read nadaljuj z branjem, tudi če datoteke ni moč prebrati\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --preserve same as both -p and -s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Ravnanje z atributi datotek:\n"
+#~ " --owner=IME pri dodajanju datotek spremenimo lastnika v IME\n"
+#~ " --group=IME pri dodajanju datotek spremenimo skupino v IME\n"
+#~ " --mode=ZAŠČITA pri dodajanju datotek nastavimo ZAŠČITO\n"
+#~ " --atime-preserve brez spreminjanja časa zadnjega dostopa\n"
+#~ " -m, --modification-time brez izvlačenja časa spremembe\n"
+#~ " --same-owner z ohranitvijo lastništva, če je mogoče\n"
+#~ " --no-same-owner pri izvlačenju prepišemo lastništvo nase\n"
+#~ " --numeric-owner s številčnimi vrednostmi UID/GID namesto imen\n"
+#~ " -p, --same-permissions z ohranitvijo zaščite datotek\n"
+#~ " --no-same-permissions brez ohranjanja zaščite datotek\n"
+#~ " --preserve-permissions isto kot -p\n"
+#~ " -s, --same-order imena razvrstimo tako, da se ujemajo z arhivom\n"
+#~ " --preserve-order isto kot -s\n"
+#~ " --preserve isto kot -p in -s skupaj\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device selection and switching:\n"
+#~ " -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+#~ " --force-local archive file is local even if has a colon\n"
+#~ " --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+#~ " -[0-7][lmh] specify drive and density\n"
+#~ " -M, --multi-volume create/list/extract multi-volume archive\n"
+#~ " -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+#~ " --new-volume-script=FILE same as -F FILE\n"
+#~ " --volno-file=FILE use/update the volume number in FILE\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Izbira enote:\n"
+#~ " -f, --file=ARHIV uporabi datoteko ali enoto ARHIV\n"
+#~ " --force-local arhiv je lokalen ne glede na dvopičje v imenu\n"
+#~ " --rsh-command=UKAZ uporabi nelokalen UKAZ namesto rsh\n"
+#~ " -[0-7][lmh] določi enoto in gostoto zapisa\n"
+#~ " -M, --multi-volume ustvarjanje/pregled/izvleček arhiva v več delih\n"
+#~ " -L, --tape-length=ŠT menjava traku po ŠT x 1024 zapisanih bajtih\n"
+#~ " -F, --info-script=SKRIPT poženi SKRIPT po koncu traku (privzema -M)\n"
+#~ " --new-volume-script=SKRIPT isto kot -F SKRIPT\n"
+#~ " --volno-file=DATOTEKA uporabimo/ažuriramo število dela v DATOTEKI\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device blocking:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+#~ " --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+#~ " -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+#~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Bločna razdelitev enote:\n"
+#~ " -b, --blocking-factor=BLOKI dolžina zapisa BLOKI x 512 bajtov\n"
+#~ " --record-size=DOLŽINA DOLŽINA zapisa v bajtih (večkratnik 512)\n"
+#~ " -i, --ignore-zeros ne meni se za bloke ničel (EOF)\n"
+#~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -o, --old-archive, --portability write a V7 format archive\n"
+#~ " --posix write a POSIX format archive\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -d)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Izbira oblike arhiva:\n"
+#~ " -V, --label=IME ustvarjanje arhiva z danim IMENOM\n"
+#~ " VZOREC pri pregledu vsebine/izvlečku je ime\n"
+#~ " lahko regularni izraz VZOREC\n"
+#~ " -o, --old-archive, --portability zapis arhiva v formatu V7\n"
+#~ " --posix zapis arhiva v formatu POSIX\n"
+#~ " -j, --bzip2 arhiv filtriramo skozi program bzip2\n"
+#~ " -z, --gzip, --ungzip arhiv filtriramo skozi program gzip\n"
+#~ " -Z, --compress, --uncompress arhiv filtriramo skozi program compress\n"
+#~ " --use-compress-program=PROGRAM arhiv filtriramo skozi PROGRAM (ki mora\n"
+#~ " sprejemati izbiro -d)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -K, --starting-file=NAME begin at file NAME in the archive\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Izbira lokalne datoteke:\n"
+#~ " -C, --directory=IMENIK prestavimo se v navedeni IMENIK\n"
+#~ " -T, --files-from=DATOTEKE seznam datotek preberemo z navedene DATOTEKE\n"
+#~ " --null -T prebere z \\000 terminirana imena; onemogoči -C\n"
+#~ " --exclude=VZOREC izključimo datoteke, ki jih opisuje VZOREC\n"
+#~ " -X, --exclude-from=DATOTEKA izključimo datoteke, ustrezajoče vzorcem,\n"
+#~ " prebranih z DATOTEKE\n"
+#~ " --anchored izključitveni vzorci opisujejo celotno ime\n"
+#~ " datoteke (privzeto)\n"
+#~ " --no-anchored izključitveni vzorci opisujejo ime datoteke od\n"
+#~ " znaka ,/` dalje\n"
+#~ " --ignore-case izključitveni vzorci ne razlikujejo med malimi\n"
+#~ " in velikimi črkami\n"
+#~ " --no-ignore-case izključitveni vzorci razlikujejo med malimi in\n"
+#~ " velikimi črkami (privzeto)\n"
+#~ " --wildcards izključ. vzorci vsebujejo metaznake (privzeto)\n"
+#~ " --no-wildcards izključitveni vzorci ne vsebujejo metaznakov\n"
+#~ " --wildcards-match-slash izključitveni vzorci opisujejo tudi ,/` (privzeto)\n"
+#~ " --no-wildcards-match-slash izključitveni vzorci ne opisujejo ,/`\n"
+#~ " -P, --absolute-names ohranimo vodilni ,/` pri imenih datotek\n"
+#~ " -h, --dereference shranimo datoteke, na katere kažejo simbolne\n"
+#~ " povezave\n"
+#~ " --no-recursion podimenikov ne vključujemo avtomatično\n"
+#~ " -l, --one-file-system izpustimo datotek na nelokalnih datotečnih sistemih\n"
+#~ " -K, --starting-file=IME začenši z navedenim IMENOM v arhivu\n"
+
+#~ msgid ""
+#~ " -N, --newer=DATE only store files newer than DATE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed only\n"
+#~ " --after-date=DATE same as -N\n"
+#~ msgstr ""
+#~ " -N, --newer=DATUM arhiviramo samo datoteke, mlajše od DATUMA\n"
+#~ " --newer-mtime=DATUM datum in čas primerjamo le ob spremembah podatkov\n"
+#~ " --after-date=DATUM isto kot -N\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --suffix=SUFFIX backup before removal, override usual suffix\n"
+#~ msgstr ""
+#~ " --backup[=TIP] varnostna kopija pred brisanjem, z možnostjo\n"
+#~ " izbire tipa varnostne kopije\n"
+#~ " --suffix=PRIPONA varnostna kopija pred brisanjem, določimo pripono\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --confirmation same as -w\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Informativni izpisi:\n"
+#~ " --help ta navodila\n"
+#~ " --version verzija programa\n"
+#~ " -v, --verbose z zgovornim izpisom obdelanih datotek\n"
+#~ " --checkpoint z izpisom imenikov pri branju arhiva\n"
+#~ " --totals z izpisom celotne dolžine pri zapisu\n"
+#~ " -R, --block-number z izpisom zaporednega bloka v arhivu ob vsakem sporočilu\n"
+#~ " -w, --interactive z uporabnikovo potrditvijo za vsako opravilo\n"
+#~ " --confirmation isto kot -w\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n"
+#~ "is set in the environment, GNU extensions are disallowed with `--posix'.\n"
+#~ "Support for POSIX is only partially implemented, don't count on it yet.\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*This* `tar' defaults to `-f%s -b%d'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "GNU tar ne zna ne prebrati in ne ustvariti arhivov ,--posix`. Pri nastavljeni\n"
+#~ "spremenljivki POSIXLY_CORRECT in uporabi izbire ,--posix` razširitve GNU niso\n"
+#~ "dovoljene. Podpora za POSIX še ni v celoti izvedena, ne zanašajte se nanjo.\n"
+#~ "ARHIV je lahko podan v obliki DATOTEKA, RAČUNALNIK:DATOTEKA ali\n"
+#~ "UPORABNIK@RAČUNALNIK:DATOTEKA; kjer je DATOTEKA lahko datoteka ali enota.\n"
+#~ "DATUM je lahko besedilni datum ali ime datoteke, ki se začne z ,/` ali ,.`; v\n"
+#~ "slednjem primeru se uporabi datum te datoteke.\n"
+#~ "\n"
+#~ "Privzeta izbira *tega* programa ,tar` je `-f%s -b%d'.\n"
+
+#~ msgid "Obsolete option, now implied by --blocking-factor"
+#~ msgstr "Zastarela izbira, zdaj privzeta z --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --blocking-factor"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --blocking-factor"
+
+#~ msgid "Obsolete option name replaced by --read-full-records"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --read-full-records"
+
+#~ msgid "Obsolete option name replaced by --touch"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --touch"
+
+#~ msgid "Conflicting archive format options"
+#~ msgstr "Nasprotujoče si izbire glede formata arhiva"
+
+#~ msgid "Obsolete option name replaced by --absolute-names"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --absolute-names"
+
+#~ msgid "Obsolete option name replaced by --block-number"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --block-number"
+
+#~ msgid "Obsolete option name replaced by --backup"
+#~ msgstr "Zastarela izbira, zdaj nadomeščena z --backup"
+
+#~ msgid "Written by John Gilmore and Jay Fenlason."
+#~ msgstr "Avtorja John Gilmore in Jay Fenlason."
+
+#~ msgid ""
+#~ "If a long option shows an argument as mandatory, then it is mandatory\n"
+#~ "for the equivalent short option also.\n"
+#~ "\n"
+#~ " -l, --file-length=LENGTH LENGTH of generated file\n"
+#~ " -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n"
+#~ " --help display this help and exit\n"
+#~ " --version output version information and exit\n"
+#~ msgstr ""
+#~ "Argumenti, ki so obvezni za dolge oblike izbire, so obvezni tudi za kratke.\n"
+#~ "\n"
+#~ " -l, --file-length=DOLŽINA DOLŽINA ustvarjene datoteke\n"
+#~ " -p, --pattern=VZOREC možnosti za VZOREC sta ,default` in ,zeros`\n"
+#~ " --help ta navodila\n"
+#~ " --version verzija programa\n"
+
+#~ msgid "Ambiguous pattern `%s'"
+#~ msgstr "Dvoumen vzorec ,%s`"
+
+#~ msgid "Copyright %d Free Software Foundation, Inc."
+#~ msgstr "Copyright %d Free Software Foundation, Inc."
+
+#~ 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 ""
+#~ "To je prost program; pogoji, pod katerimi ga lahko razmnožujete in\n"
+#~ "razširjate so navedeni v izvorni kodi. Za program ni NOBENEGA jamstva,\n"
+#~ "niti jamstev USTREZNOSTI ZA PRODAJO ali PRIMERNOSTI ZA UPORABO.\n"
+
+#~ msgid "Write to compression program short %lu bytes"
+#~ msgstr "Pisanje na vhod programa za stiskanje prekratko za %lu bajtov"
+
+#~ msgid "Removing `%.*s' prefix from member names"
+#~ msgstr "Odstranjujemo predpono ,%.*s` iz imen elementov"
+
+#~ msgid "%s: Cannot symlink %s %s"
+#~ msgstr "%s: Simbolna povezava %s %s ni mogoča"
+
+#~ msgid "Invalid group given on option"
+#~ msgstr "Podana skupina ni veljavna"
+
+#~ msgid "Invalid owner given on option"
+#~ msgstr "Podani uporabnik ni veljaven"
+
+#~ msgid "Cannot close file descriptor"
+#~ msgstr "Ni možno zapreti datotečnega deskriptorja"
+
+#~ msgid "Cannot properly duplicate %s"
+#~ msgstr "Ni mogoče pravilno podvojiti %s"
+
+#~ msgid "(child) Pipe to stdin"
+#~ msgstr "(naslednik) cev na stdin"
+
+#~ msgid "Archive to stdout"
+#~ msgstr "Arhiv na stdout"
+
+#~ msgid "((child)) Pipe to stdout"
+#~ msgstr "((naslednik)) cev na stdout"
+
+#~ msgid "(grandchild) Pipe to stdin"
+#~ msgstr "(pranaslednik) cev na stdin"
+
+#~ msgid "(child) Pipe to stdout"
+#~ msgstr "(naslednik) cev na stdout"
+
+#~ msgid "((child)) Pipe to stdin"
+#~ msgstr "((naslednik)) cev na stdin"
+
+#~ msgid "(grandchild) Pipe to stdout"
+#~ msgstr "(pranaslednik) cev na stdout"
+
+#~ msgid "Only wrote %lu of %lu bytes to %s"
+#~ msgstr "Samo %lu od %lu bajtov zapisanih na %s"
+
+#~ msgid "WARNING: %s: close (%d, %d)"
+#~ msgstr "OPOZORILO: %s: zapiramo (%d, %d)"
+
+#~ msgid "Cannot allocate memory for diff buffer of %lu bytes"
+#~ msgstr "Ni možno rezervirati pomnilnika za %lu bajtov medpomnilnika za diff"
+
+#~ msgid "Wrote %s of %s bytes to file %s"
+#~ msgstr "Zapisano %s od %s bajtov na datoteko %s"
+
+#~ msgid "lseek error at byte %s in file %s"
+#~ msgstr "Napaka pri lseek pri bajtu %s v datoteki %s"
+
+#~ msgid "File %s shrunk, padding with zeros"
+#~ msgstr "Datoteka %s skrčena, dopolnimo z ničlami"
+
+#~ msgid "Cannot reposition archive file"
+#~ msgstr "Repozicija arhivske datoteke neuspešna"
+
+#~ msgid "%s: Cannot lchown to uid %lu gid %lu"
+#~ msgstr "%s: Lastništva ni moč spremeniti z lchown na UID %lu GID %lu"
+
+#~ msgid "%s: Cannot chown to uid %lu gid %lu"
+#~ msgstr "%s: Lastništva ni moč spremeniti s chown na UID %lu GID %lu"
+
+#~ msgid "%s: lseek error at byte %s"
+#~ msgstr "%s: napaka lseek pri bajtu %s"
+
+#~ msgid "%s: Could only write %s of %s bytes"
+#~ msgstr "%s: Zapisanih samo %s od %s bajtov"
+
+#~ msgid "Error while deleting %s"
+#~ msgstr "Napaka pri brisanju %s"
+
+#~ msgid "EOF in archive file"
+#~ msgstr "Znak za konec datoteke v arhivu"
+
+#~ msgid "Only wrote %lu of %lu bytes to file %s"
+#~ msgstr "Zapisanih samo %lu od %lu bajtov na datoteko %s"
+
+#~ msgid "Renaming previous %s to %s\n"
+#~ msgstr "Prejšnja %s preimenovana v %s\n"
+
+#~ msgid "%s: Cannot rename for backup"
+#~ msgstr "%s: Ni možno preimenovati za pisanje varnostne kopije"
+
+#~ msgid "%s: Cannot rename from backup"
+#~ msgstr "%s: Ni možno preimenovati iz varnostne kopije"
+
+# POZOR -- oblike "to stat a file" slovenscina ne pozna
+#~ msgid "Cannot %s %s"
+#~ msgstr "Ni možno %s %s"
+
+#~ msgid "Read error at byte %s reading %lu bytes in file %s"
+#~ msgstr "Napaka pri branju pri bajtu %s, prebranih %lu bajtov datoteke %s"
+
+#~ msgid "Cannot open pipe"
+#~ msgstr "Ni mogoče odpreti cevi"
+
+#~ msgid "Cannot open archive %s"
+#~ msgstr "Ni mogoče odpreti arhiva %s"
+
+#~ msgid "Cannot exec %s"
+#~ msgstr "Ni mogoče pognati %s"
+
+#~ msgid "Child cannot fork"
+#~ msgstr "Vejitev naslednika ni možna"
+
+#~ msgid "Cannot read from compression program"
+#~ msgstr "Branje z izhoda programa za stiskanje ne gre"
+
+#~ msgid "Cannot write to %s"
+#~ msgstr "Pisanje na %s ni možno"
+
+#~ msgid "WARNING: Cannot truncate %s"
+#~ msgstr "OPOZORILO: Ni mogoče skrajšati %s"
+
+#~ msgid "While waiting for child"
+#~ msgstr "Med čakanjem na naslednika"
+
+#~ msgid "Cannot fork!"
+#~ msgstr "Vejitev ni možna!"
+
+#~ msgid "Cannot exec a shell %s"
+#~ msgstr "Ni mogoče pognati lupine %s"
+
+#~ msgid "Cannot read %s"
+#~ msgstr "Branje %s ni možno"
+
+#~ msgid "Error while closing %s"
+#~ msgstr "Napaka pri zapiranju %s"
+
+#~ msgid "Cannot read link %s"
+#~ msgstr "Ni mogoče prebrati povezave %s"
+
+#~ msgid "Could not rewind archive file for verify"
+#~ msgstr "Arhiva ni možno previti na začetek, preverjanje ni možno"
+
+#~ msgid "Removing leading `/' from archive names"
+#~ msgstr "Odstranjujemo vodilne ,/` iz imen arhivov"
+
+#~ msgid "Cannot add file %s"
+#~ msgstr "Ni mogoče dodati datoteke %s"
+
+#~ msgid "Cannot add directory %s"
+#~ msgstr "Ni mogoče dodati imenika %s"
+
+#~ msgid "Cannot open directory %s"
+#~ msgstr "Ni mogoče odpreti imenika %s"
+
+#~ msgid "%s: close"
+#~ msgstr "%s: zaprto"
+
+#~ msgid "%s: Could not write to file"
+#~ msgstr "%s: Zapis na datoteko ni mogoč"
+
+#~ msgid "%s: Could not create file"
+#~ msgstr "%s: Ni mogoče ustvariti datoteke"
+
+#~ msgid "%s: Error while closing"
+#~ msgstr "%s: Napaka pri zapiranju"
+
+#~ msgid "%s: Could not make node"
+#~ msgstr "%s: Ni možno ustvariti vozla"
+
+#~ msgid "%s: Could not make fifo"
+#~ msgstr "%s: Ni možno ustvariti FIFO"
+
+#~ msgid "%s: Could not create directory"
+#~ msgstr "%s: Ni možno ustvariti imenika"
+
+#~ msgid "Added write and execute permission to directory %s"
+#~ msgstr "Imeniku %s dodani dovoljenji za pisanje in izvajanje"
+
+#~ msgid "Cannot open file %s"
+#~ msgstr "Ni mogoče odpreti datoteke %s"
+
+#~ msgid "Only read %d bytes from archive %s"
+#~ msgstr "Prebrano samo %d zlogov z arhiva %s"
+
+#~ msgid "Removing leading `/' from absolute path names in the archive"
+#~ msgstr "Imena datotek v arhivu očistimo vodilnega ,/` pri absolutnih poteh"
+
+#~ msgid "Amount actually written is (I hope) %d.\n"
+#~ msgstr "Dejanska zapisana količina: %d (upajmo)\n"
+
+#~ msgid "File name %s%s too long"
+#~ msgstr "Ime datoteke %s%s predolgo"
+
+#~ msgid "Data differs"
+#~ msgstr "Podatki se razlikujejo"
+
+#~ msgid "File does not exist"
+#~ msgstr "Datoteka ne obstaja"
+
+#~ msgid "Not a regular file"
+#~ msgstr "Ni navadna datoteka"
+
+#~ msgid "Does not exist"
+#~ msgstr "Ne obstaja"
+
+#~ msgid "No such file or directory"
+#~ msgstr "Datoteka ali imenik s tem imenom ne obstaja"
+
+#~ msgid "Mode or device-type changed"
+#~ msgstr "Način ali tip enote je spremenjen"
+
+#~ msgid "No longer a directory"
+#~ msgstr "Ni več imenik"
+
+#~ msgid "%d at %d\n"
+#~ msgstr "%d pri %d\n"
+
+#~ msgid "Could not get current directory: %s"
+#~ msgstr "Ni mogoče izvedeti trenutnega imenika: %s"
+
+#~ msgid "File name %s/%s too long"
+#~ msgstr "Ime datoteke %s/%s je predolgo"
+
+#~ msgid "Cannot chdir to %s"
+#~ msgstr "Imenik %s ni dostopen"
+
+#~ msgid "Hmm, this doesn't look like a tar archive"
+#~ msgstr "Hmm, to ne izgleda kot arhiv tar"
+
+#~ msgid "Skipping to next file header"
+#~ msgstr "Preskočimo na naslednjo glavo datoteke"
+
+#~ msgid ""
+#~ "\n"
+#~ "Usage: %s [OPTION]... [FILE]...\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Uporaba: %s [IZBIRA]... [DATOTEKA]...\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Copyright (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "Avtorske pravice (C) 1988, 92, 93, 94, 95, 96, 97 Free Software Foundation, Inc.\n"
+
+#~ msgid "Volume mismatch! %s!=%s"
+#~ msgstr "Oznaka dela se ne ujema! %s != %s"
+
+#~ msgid "EOF? What does that mean?"
+#~ msgstr "Konec datoteke?"
+
+#~ msgid "Mode"
+#~ msgstr "Način"
+
+#~ msgid "Uid"
+#~ msgstr "UID"
+
+#~ msgid "Gid"
+#~ msgstr "GID"
+
+#~ msgid "Size"
+#~ msgstr "Velikost"
+
+#~ msgid "Missing filename after -C"
+#~ msgstr "Za izbiro -C manjka ime datoteke"
+
+#~ msgid "Bad regular expression: %s"
+#~ msgstr "Nepravilen regularen izraz: %s"
+
+#~ msgid "File %s\n"
+#~ msgstr "Datoteka %s\n"
+
+#~ msgid "Junk files\n"
+#~ msgstr "Poškodovane datoteke\n"
+
+#~ msgid "file %s\n"
+#~ msgstr "datoteka %s\n"
+
+#~ msgid "Skip %ld\n"
+#~ msgstr "Preskok %ld zlogov\n"
+
+#~ msgid "Out of first loop\n"
+#~ msgstr "Izven prve zanke\n"
+
+#~ msgid "Saved %d blocks, need %d more\n"
+#~ msgstr "Shranjenih %d blokov, potrebuje se jih še %d\n"
+
+#~ msgid "New record\n"
+#~ msgstr "Nov zapis\n"
+
+#~ msgid "Header type %d\n"
+#~ msgstr "Tip glave %d\n"
+
+#~ msgid "File %s "
+#~ msgstr "Datoteka %s "
+
+#~ msgid "Flush it\n"
+#~ msgstr "Izpraznitev medpomnilnika\n"
+
+#~ msgid "Flushing %d blocks from %s\n"
+#~ msgstr "Izpraznitev %d blokov iz %s\n"
+
+#~ msgid "Block: %d <= %d "
+#~ msgstr "Blok: %d <= %d "
+
+#~ msgid "Block %d left\n"
+#~ msgstr "Še %d blokov\n"
+
+#~ msgid "Final %d\n"
+#~ msgstr "Zadnjih %d\n"
+
+#~ msgid "Need %d kept_in %d keep %d\n"
+#~ msgstr "Potrebno %d shranjenih %d shranjujem %d\n"
+
+#~ msgid "Flush...\n"
+#~ msgstr "Izpraznitev...\n"
+
+#~ msgid "Copying %d\n"
+#~ msgstr "Kopiranje %d\n"
+
+#~ msgid "Now new %d need %d keep %d keep_in %d block %d/%d\n"
+#~ msgstr "Zdaj novih %d potrebnih %d shranjujem %d shranjenih %d blok %d/%d\n"
+
+#~ msgid "Fore to %x\n"
+#~ msgstr "Naprej na %x\n"
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 00000000..148e1636
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,2618 @@
+# Swedish messages for tar
+# Copyright © 1996, 2001, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 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, 2009, 2010, 2011
+# Revision: 1.107
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-03-13 19:23+0100\n"
+"Last-Translator: Jan Djärv <jan.h.d@swipnet.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"Language: sv\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "ogiltigt argument %s för %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "tvetydigt argument %s för %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Giltiga argument är:"
+
+#: 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"
+
+#: 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."
+
+#: 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."
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Okänd ARGP_HELP_FMT-parameter"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Skräp i ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Obligatoriska respektive valfria argument för långa flaggor är obligatoriska repektive valfria även för motsvarande korta."
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "Användning:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " eller: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [FLAGGA...]"
+
+#: gnu/argp-help.c:1684
+#, 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"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr ""
+"Rapportera fel till %s.\n"
+"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Okänt systemfel"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "visa denna hjälptext"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "ge ett kort hjälpmeddelande"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "NAMN"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "ange programnamnet"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "SEK"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "vänta i SEK sekunder (standardvärde 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "visa programversion"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(PROGRAMFEL) Ingen version känd!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: För många argument\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(PROGRAMFEL) Flagga borde ha känts igen!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "skrivfel"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: flaggan \"%s\" är tvetydig\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"--%s\" tar inget argument\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"%c%s\" tar inget argument\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: flaggan \"--%s\" kräver ett argument\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: okänd flagga \"--%s\"\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: okänd flagga \"%c%s\"\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: ogiltig flagga -- \"%c\"\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: flaggan kräver ett argument -- \"%c\"\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: flaggan \"-W %s\" är tvetydig\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: flaggan \"-W %s\" tar inget argument\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: flaggan \"-W %s\" kräver ett argument\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "minnet slut"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "kan inte lagra nuvarande arbetskatalog"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "kan inte gå tillbaka till initial arbetskatalog"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "\""
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "\""
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yYjJ]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Paketerad av %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl.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.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Skrivet av %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Skrivet av %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Skrivet av %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s och andra.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Rapportera fel till %s.\n"
+"Rapportera fel eller synpunkter på översättningen till <tp-sv@listor.tp-sv.se>.\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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 "hemsida för %s: <%s>\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 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 byte 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 byte 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Tar bort inledande \"%s\" från namnen i arkivet"
+
+#: lib/paxnames.c:141
+#, 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:154
+msgid "Substituting `.' for empty member name"
+msgstr "Ersätter tomma namn i arkivet med \".\""
+
+#: lib/paxnames.c:155
+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 "Kan inte ansluta till %s: namnuppslagning misslyckades"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Kan inte exekvera fjärrskal"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "Positioneringsriktning har ogiltigt värde"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Ogiltig sökriktning"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Ogiltigt positioneringsvärde"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Positioneringsvärde är utanför giltigt intervall"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Ogiltigt byte-antal"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Byte-antal är utanför giltigt intervall"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "För tidigt filslut"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Felaktig operationskod"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Operationsläge stöds inte"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Oväntade argument"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Styr en bandstation, acceptera kommandon från en fjärrprocess"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NUMMER"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "sätt felsökningsnivå"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FIL"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "sätt felsökningsfilnamn"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "kan inte öppna \"%s\""
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "för många argument"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Okänt kommando"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "Det här ser inte ut som ett tar-arkiv"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "Summa skrivna byte"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "Summa lästa byte"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Summa borttagna byte: %s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(rör)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "Ogiltigt värde på record_size"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "Arkivnamn saknas"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Kan inte verifiera standard in/ut-arkiv"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Arkivet är komprimerat. Använd flaggan %s"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Komprimerade arkiv kan inte uppdateras"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "Vid bandets början, avslutar nu"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "För många fel, avslutar"
+
+#: src/buffer.c:892
+#, 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:913
+#, 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:990
+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:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek stannade inte på en postgräns"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: innehåller ogiltigt volymnummer"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "Volymnummer flödade över"
+
+#: src/buffer.c:1123
+#, 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:1129
+msgid "EOF where user reply was expected"
+msgstr "Filslut vid förväntat användarsvar"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "VARNING: Arkivet är ofullständigt"
+
+#: src/buffer.c:1148
+#, 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 namn Ge ett nytt filnamn för nästa (och efterföljande) volym(er)\n"
+" q Avsluta programmet\n"
+" y eller nyrad Fortsätt\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Starta ett underskal\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Skriv denna lista\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "Ingen ny volym; avslutar.\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "Filnamn inte angivet, försök igen.\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Ogiltig indata. Skriv ? för hjälp.\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "kommandot \"%s\" misslyckades"
+
+#: src/buffer.c:1439
+#, 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:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s fortsätter inte i denna volym"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s har fel storlek (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, 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:1550 src/buffer.c:1576
+#, 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:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Volym %s överensstämmer inte med %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: filnamnet är för långt för att lagras i huvudet för ett GNU multivolymsarkiv, trunkerat"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "skrivning stannade inte på en blockgräns"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "Innehållet är olika"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Oväntat filslut i arkivet"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "Filtyper är olika"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "Rättigheterna är olika"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Uid är olika"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gid är olika"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Modifieringstiderna är olika"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "Storlekarna är olika"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "Inte länkad till %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "Symboliska länkar är olika"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "Enhetsnummer är olika"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "Verifierar "
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Okänd filtyp \"%c\" jämförd som en normal fil"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arkivet innehåller filnamn med inledande prefix borttaget."
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "Arkivet innehåller konverterade filnamn."
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "Verifiering kan misslyckas med att hitta originalfiler."
+
+#: src/compare.c:603
+#, 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:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Ett ensamt nollblock vid %s"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: innehåller en cachekatalog-tagg %s; %s"
+
+#: src/create.c:261
+#, 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:267
+#, 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:327
+msgid "Generating negative octal headers"
+msgstr "Genererar negativa oktala värden i arkivhuvudet"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: filnamnet är för långt (max %d); inte arkiverad"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: filnamnet är för långt (kan ej delas); inte arkiverad"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: länknamn är för långt; inte arkiverad"
+
+#: src/create.c:1064
+#, 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:1160
+#, 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:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "innehållet inte arkiverat"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Okänd filtyp; filen ignorerad"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "Det fattas länkar till %s."
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: filen är oförändrad; inte arkiverad"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: filen är själva arkivet; inte arkiverad"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "katalog inte arkiverad"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: fil ändrades under tiden vi läste den"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socketfil ignorerad"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: door-fil ignorerad"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "Hoppar till nästa filhuvud"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Tar bort icke-huvuddata från arkivet"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: orimligt gammal tidsstämpel %s"
+
+#: src/extract.c:295
+#, 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:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Oväntad inkonsistens när katalog skapades"
+
+#: src/extract.c:721
+#, 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:875
+msgid "Extracting contiguous files as regular files"
+msgstr "Extraherar sammanhängande filer som vanliga filer"
+
+#: src/extract.c:1209
+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:1365
+#, 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:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "Oväntat huvud för långt filnamn"
+
+#: src/extract.c:1379
+#, 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:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Nuvarade \"%s\" är nyare eller lika gammal"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Kunde inte säkerhetskopiera denna fil"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Kan inte byta namn på %s till %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Katalogen har bytt namn från %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Katalogen har bytt namn"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Katalogen är ny"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "Ogiltigt värde på tidsvärde"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "Ogiltig modifikationstid (sekunder)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Ogiltig modifikationstid (nanosekunder)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "Ogiltigt enhetsnummer"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "Ogiltigt inodnummer"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "Fält för långt när ögonblicksfil lästes"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "Läsfel i ögonblicksfil"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "Oväntat filslut i ögonblicksfil"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "Oväntat fältvärde i ögonblicksfil"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "Postavslutare fattas"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "Felaktigt filformat för inkrementell säkerhetskopiering"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Formatversion för inkrementell säkerhetskopiering stöds inte: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Felaktig dumpkatalog: förväntade \"%c\" men hittade %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Felaktig dumpkatalog: \"X\" duplicerad"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Felaktig dumpkatalog: tomt namn i \"R\""
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Felaktig dumpkatalog: \"T\" föregås inte av \"R\""
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Felaktig dumpkatalog: tomt namn i \"T\""
+
+#: src/incremen.c:1558
+#, 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:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Felaktig dumpkatalog: \"X\" används inte"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Kan inte skapa temporärkatalog med mall %s"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Rensar inte katalog: kunde inte ta status"
+
+#: src/incremen.c:1683
+#, 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:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Tar bort %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Kan inte ta bort"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Utelämnad"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "block %s: ** Block av nolltecken **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "block %s: ** Filslut **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "block %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Arkivets oktala värde %.*s är utanför intervallet för %s, antar två-komplement"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:774
+#, 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:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arkivet innehåller föråldrade \"base-64\"-huvuden"
+
+#: src/list.c:809
+#, 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:840
+#, 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:869
+#, 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:891
+#, 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:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " länk till %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " okänd filtyp \"%s\"\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Lång länk--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Långt namn--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Volymhuvud--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Fortsätter vid byte %s--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "Skapar katalog:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "Kan inte avgöra arbetskatalog"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Byter namn på %s till %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Kan inte byta namn till %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Byter namn på %s tillbaka till %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Fil borttagen innan vi läste den"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "barnprocess"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "interprocesskanal"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "Mönstermatchningstecken används i filnamn"
+
+#: src/names.c:592
+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 att undertrycka denna varning"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Fanns inte i arkivet"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Nödvändig förekomst hittades inte i arkivet"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Arkivmärkning stämmer inte överrens"
+
+#: src/names.c:949
+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:955
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Ogiltigt arkivformat"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU-tillägg önskade i ett inkompatibelt arkivformat"
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Okänd citeringsstil \"%s\". Gör \"%s --quoting-style=help för att få en lista."
+
+#: src/tar.c:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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 sparar många filer tillsammans i ett band- eller fil-arkiv och kan\n"
+"återskapa individuella filer från arkivet.\n"
+"\n"
+"Exempel:\n"
+" tar -cf arkiv.tar foo bar # Skapa arkiv.tar med filerna foo och bar.\n"
+" 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:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Säkerhetskopieändelse är \"~\", om den inte sätts med --suffix eller\n"
+"SIMPLE_BACKUP_SUFFIX.\n"
+"Versionshanteringen kan styras med --backup eller VERSION_CONTROL,\n"
+"där värdena kan vara:\n"
+"\n"
+" none, off gör aldrig säkerhetskopior\n"
+" t, numbered gör numrerade säkerhetskopior\n"
+" nil, existing numrerade säkerhetskopior om sådana redan finns, enkla annars\n"
+" never, simple gör alltid enkla säkerhetskopior\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Operationsläge:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "visa innehållet i arkivet"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "extrahera filer från arkivet"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "skapa ett nytt arkiv"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "visa skillnader mellan filsystemet och arkivet"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "lägg till filer på slutet av arkivet"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "lägg till filer som är nyare än de i arkivet"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "lägg till innehållet i en arkivfil till arkivet"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "ta bort från arkivet (inte för arkiv på magnetband!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "verifiera arkivets volymnamn och avsluta."
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Modifiera operationslägen:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "hantera filer med hål mer effektivt"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "ÖVRE[.UNDRE]"
+
+#: src/tar.c:419
+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:421
+msgid "handle old GNU-format incremental backup"
+msgstr "hantera gamla GNU-formatet för inkrementell säkerhetskopiering"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "hantera nya GNU-formatet för inkrementell säkerhetskopiering"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "dumpa nivå för \"listed-incremental\" arkiv"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "avsluta inte med felslutstatus p.g.a. oläsbara filer"
+
+#: src/tar.c:429
+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 "behandla endast förekomst NUMMER av varje fil i arkivet. Denna flagga är endast giltig med ett av underkommandona --delete, --diff, --extract eller --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:435
+msgid "archive is seekable"
+msgstr "arkivet är sökbart"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "arkivet är inte sökbart"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "kontrollera inte enhetsnummer när inkrementella arkiv skapas"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "kontrollera enhetsnummer när inkrementella arkiv skapas (standardvärde)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Kontrollera överskrivning:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "försök verifiera arkivet efter det skapats"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "ta bort filer efter de sparats i arkivet"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "ersätt inte befintliga filer vid extrahering"
+
+#: src/tar.c:457
+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:459
+msgid "overwrite existing files when extracting"
+msgstr "skriv över befintliga filer vid extrahering"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "ta bort befintliga filer innan de nya extraheras"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "töm kataloghierarkier före extrahering av katalog"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "bevara befintliga katalogers metadata"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "skriv över metadata för befintliga kataloger vid extrahering (standardvärde)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Välj utdataström:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "extrahera filer till standard ut"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "KOMMANDO"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "extrahera filer till standard in för ett annat program"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ignorera barnprocessers slutstatus"
+
+#: src/tar.c:482
+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:487
+msgid "Handling of file attributes:"
+msgstr "Hantering av filattribut:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "sätt NAMN som ägare för adderade filer"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "sätt NAMN som grupp för adderade filer"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATUM-ELLER-FIL"
+
+#: src/tar.c:494
+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:495
+msgid "CHANGES"
+msgstr "RÄTTIGHET"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "sätt (symbolisk) RÄTTIGHET för adderade filer"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METOD"
+
+#: src/tar.c:499
+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 "bevara accesstider på arkiverade filer, antingen genom att återställa tiderna efter läsning (METOD=\"replace\", standardvärde) eller genom att inte sätta tiderna alls (METOD=\"system\")"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "extrahera inte filers modifieringstid"
+
+#: src/tar.c:505
+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:507
+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:509
+msgid "always use numbers for user/group names"
+msgstr "använd alltid tal för användar- och gruppnamn"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "extrahera information om filrättigheter (standardvärde för superanvändare)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "applicera användarens umask när rättigheter extraheras från arkivet (standardvärde för vanliga användare)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "sortera namn som ska extraheras så de passar ihop med arkivet"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "samma som både -p och -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "fördröj sättandet av modifikationstider och rättigheter på extraherade kataloger till slutet på arkivextraheringen."
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "ta bort effekten av flaggan --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Enhetsval och enhetsbyte:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARKIV"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "använd arkivfil eller enhet ARKIV"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "arkivfilen är lokal även om namnet har kolon"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "använd KOMMANDO istället för rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "använd KOMMANDO istället för rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "ange enhet och densitet"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "skapa/visa/extrahera ett flervolymsarkiv"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "byt band efter det att NUMMER x 1024 byte skrivits"
+
+#: src/tar.c:561
+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:564
+msgid "use/update the volume number in FILE"
+msgstr "använd/uppdatera volymnummer i FIL"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Blockhantering:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCK"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "BLOCK x 512 byte per post"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "NUMMER byte per post, multipel av 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ignorera block med enbart nolltecken (betyder filslut)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "omblocka vid läsning (för 4.2BSD-rör)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Val av arkivformat:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "skapa ett arkiv med givet format"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT är ett av följande:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "gammalt V7 format"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU-format enligt tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "Format från GNU tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) format"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) format"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "samma som pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "samma som --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "samma som --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "nyckelord[[:]=värde][,nyckelord[[:]=värde], ...]"
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "ange nyckelord för pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "NAMN"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "skapa ett arkiv med volymnamnet NAMN. Vid visning/extrahering är NAMN ett skalmönster (\"globbing\")"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Komprimeringsflaggor:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "använd arkivsuffix för att bestämma komprimeringsprogram"
+
+#: src/tar.c:618
+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:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "filtrera genom PROG (måste förstå -d)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Filval:"
+
+#: src/tar.c:640
+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:641
+msgid "DIR"
+msgstr "KATALOG"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "byt katalog till KATALOG"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "hämta namn att extrahera eller skapa från FIL"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T läser namn åtskilda med nolltecken, -C obrukbar"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "ta bort effekten av föregående --null-flagga"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "avcitera filnamn som lästs med -T (standardvärde)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "avcitera inte filnamn som lästs med -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "MÖNSTER"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "utelämna filer som matchar MÖNSTER"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "utelämna filer som matchar mönster i FIL"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "utelämna innehållet i kataloger som innehåller CACHEDIR.TAG, förutom CACHEDIR.TAG själv"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "utelämna allt i kataloger som innehåller CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "utelämna kataloger som innehåller CACHEDIR.TAG"
+
+#: src/tar.c:666
+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:669
+msgid "exclude everything under directories containing FILE"
+msgstr "utelämna allting i kataloger som innehåller FIL"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "utelämna kataloger som innehåller FIL"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "uteslut kataloger från versionshanteringssystem"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "exkludera säkerhetskopior och låsfiler"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "gå inte automatiskt ned i kataloger"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "byt inte filsystem när arkivet skapas"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "gå rekursivt ned i kataloger (standardvärde)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "tag inte bort inledande \"/\" från namn"
+
+#: src/tar.c:685
+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:687
+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:688
+msgid "MEMBER-NAME"
+msgstr "NAMN"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "börja med fil NAMN i arkivet"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "arkivera bara filer nyare än DATUM-ELLER-FIL"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATUM"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "jämför datum och tid endast för dataändringar"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "KONTROLL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "gör säkerhetskopior före borttagning, välj typ av versionshantering"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRÄNG"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "gör säkerhetskopior före borttagning, ersätt den normala säkerhetskopieändelsen (\"~\" om inte ändrad med miljövariabeln SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Filnamnstransformationer:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "UTTRYCK"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "använd seds ersättnings-UTTRYCK för att transformera filnamn"
+
+#: src/tar.c:714
+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:717
+msgid "ignore case"
+msgstr "matcha gemener och versaler lika"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "mönster måste matcha i början på filnamn"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "mönster matchas efter \"/\" i filnamn (standardvärde vid uteslutning)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "matcha gemener och versaler olika (standardvärde)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "använd jokertecken (standardvärde för uteslutning)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "ordagrann strängjämförelse"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "jokertecken matchar inte \"/\""
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "jokertecken matchar \"/\" (standardvärde för uteslutning)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Informativ utskrift:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "visa namn på alla filer som behandlas"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "NYCKELORD"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "varningskontroll"
+
+#: src/tar.c:743
+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:745
+msgid "ACTION"
+msgstr "ÅTGÄRD"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "utför ÅTGÄRD vid vare kontrollpunkt"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "visa ett meddelande om inte alla länkar arkiverats"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "skriv totalt antal byte efter arkivet hanterats. Med ett argument skrivs 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:756
+msgid "print file modification times in UTC"
+msgstr "visa filers modifieringstid i UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "visa full upplösning på filtider"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "skicka informativa meddelanden till FIL"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "visa blocknummer inom arkivet för varje meddelande"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "fråga efter bekräftelse för varje steg"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "visa standardvärden för \"tar\""
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "vid visning eller extrahering, visa varje katalog som inte matchar sökkriterium"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "visa fil- eller arkivnamn efter transformering"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STIL"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "citera även tecken i STRÄNG"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "citera inte tecken i STRÄNG"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Kompatibilitetsflaggor:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "vid skapande, samma som --old-archive. Vid extrahering, samma som --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Andra flaggor:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "begränsa användningen av eventuellt farliga flaggor"
+
+#: src/tar.c:930
+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:940
+msgid "Conflicting compression options"
+msgstr "Motstridiga komprimeringsflaggor"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Okänt signalnamn: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Tidsfil hittades inte"
+
+#: src/tar.c:1028
+#, 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:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Flagga %s: Tolkar tidsangivelse \"%s\" som %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: fillistan redan läst"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: filnamnet som lästes innehåller nolltecken"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "filtrera arkivet genom %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Giltiga argument till flaggan --quoting-style är:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Denna* tar har standardvärdena:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Ogiltig blockfaktor"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Ogiltig bandlängd"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Felaktigt värde fär inkrementell nivå"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Mer än en datumgräns"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Ogiltig version för filer med hål"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve=\"system\" stöds inte på denna plattform"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint-värdet är inte ett heltal"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Ogiltig grupp"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Ogiltiga rättigheter givna för flagga"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Ogiltigt nummer"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Ogiltig ägare"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Flaggan --preserve är föråldrad, använd --preserve-permissions --preserve-order istället"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Ogiltig poststorlek"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Poststorlek måste vara en multipel av %d"
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Ogiltig antal element"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Endast en --to-command flagga tillåten"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Ogiltig densitetsangivelse: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Okänd densitet: \"%c\""
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "[FILE]..."
+msgstr "[FIL]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Gammal flagga \"%c\" kräver ett argument"
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence är meningslöst utan en fillista"
+
+#: src/tar.c:2380
+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:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Multipla arkivfiler kräver \"-M\" flaggan"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Kan inte kombinera --listed-incremental med --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "--level är meningslös utan --listed-incremental"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Flervolymsarkiv kan inte verifieras"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Komprimerade arkiv kan inte verifieras"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Kan inte använda komprimerade flervolymsarkiv"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Komprimerade arkiv kan inte slås samman"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option kan bara användas på POSIX-arkiv"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Volymlängden kan inte vara mindre än poststorleken"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order är inte kompatibel med --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Vägrar fegt att skapa ett tomt arkiv"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Flaggorna \"-Aru\" är inkompatibla med \"-f -\""
+
+#: src/tar.c:2621
+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:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+msgstr "Avslutar med felstatus på grund av tidigare fel"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Nyckelordet %s är okänt eller inte ännu implementerat"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Tidsstämpel är utanför giltigt intervall"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Mönster %s kan inte användas"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Nyckelord %s kan inte ersättas"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Felaktigt utökat huvud: längd saknas"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Längd på utökat huvud är utanför giltigt intervall"
+
+#: src/xheader.c:557
+#, 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:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Felaktigt utökat huvud: blanktecken efter längdangivelse saknas"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Felaktigt utökat huvud: likamedtecken saknas"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Felaktigt utökat huvud: nyrad saknas"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Ignorerar nykelord \"%s\" i utökat huvud"
+
+#: src/xheader.c:831
+#, 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:863
+#, 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:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Felaktigt utökat huvud: ogiltig %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Felaktigt utökat huvud: för många %s=%s"
+
+#: src/xheader.c:1379
+#, 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:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Felaktigt utökat huvud: ogiltigt %s: udda antal värden"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: ogiltig timeout"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: okänd kontrollpunktsåtgärd"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "skriv"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "läs"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Kontrollpunkt för skrivning %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Kontrollpunkt för läsning %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile bearbetar datafiler i testsviten för GNU paxutils.\n"
+"FLAGGOR är:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Flaggor för filskapande:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "STORLEK"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Skapa ett arkiv med given STORLEK"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Skriv till NAMN istället för till standard ut"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Läs filnamn från FIL"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T läser namn åtskilda med nolltecken"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Storlek för ett block för filer med hål"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "POSITION"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Flytta till given position innan data skrivs"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Flaggor för filstatistik:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "Flaggor för synkron exekvering:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "FLAGGA"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Kör ARGUMENT. Användbart med --checkpoint och en av --cut, --append, --touch, --unlink"
+
+#: tests/genfile.c:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Sätt datum för nästa --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Visa exekverade kontrollpunkter och slutstatus på KOMMANDO"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Synkront exekverade åtgärder. Dessa exekveras när kontrollpunktnumret givet av flaggan --checkpoint nås."
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Trunkera FIL till storleken given av föregående flaggan --length (eller 0 om den inte är given)"
+
+#: tests/genfile.c:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "Uppdatera access- och modifikationstider för FIL"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Exekvera KOMMANDO"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Ta bort (unlink) FIL"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Ogiltigt storlek: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Nummer utanför giltigt intervall: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negativ storlek: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "status (stat) kunde ej tas på %s"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "begärd fillängd %lu, verklig %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "skapad fil har inte hål"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Fel vid parsning av tal nära \"%s\""
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Okänt datumformat"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGUMENT...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "kan inte öppna \"%s\""
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "kan inte flytta (seek)"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "filnamnet innehåller nolltecken"
+
+#: tests/genfile.c:516
+#, 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:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "felaktig mask (nära \"%s\")"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Okänt fält \"%s\""
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "kan inte sätta tid på \"%s\""
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "kan inte ta bort \"%s\""
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Kommandot avslutades utan fel\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Kommandot misslyckades med slutstatus %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Kommandot terminerades av signal %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Kommandot stoppades av signal %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Kommandot dumpade minnet\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Kommandot avslutade\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat kräver filnamn"
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
index 00000000..758eb2da
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,2305 @@
+# Turkish translations for GNU tar messages.
+# Copyright (C) 2007 Free Software Foundation, Inc.
+#
+# Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001,..., 2007.
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.18\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2007-06-28 19:56+0300\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"
+"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"
+"X-Generator: KBabel 1.11.4\n"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "`%2$s' için %1$s argümanı geçersiz"
+
+#: lib/argmatch.c:135
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "`%2$s' için %1$s argümanı belirsiz"
+
+#: lib/argmatch.c:154
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Geçerli argümanlar:"
+
+#: lib/argp-help.c:148
+#, 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:221
+#, 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:227
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT parametresi pozitif olmalı"
+
+#: lib/argp-help.c:236
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: ARGP_HELP_FMT ile belirtilen parametre bilinmiyor"
+
+#: lib/argp-help.c:248
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "ARGP_HELP_FMT bozuk: %s"
+
+#: lib/argp-help.c:1247
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+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:1640
+msgid "Usage:"
+msgstr "Kullanımı:"
+
+#: lib/argp-help.c:1644
+msgid " or: "
+msgstr " veya: "
+
+#: lib/argp-help.c:1656
+msgid " [OPTION...]"
+msgstr " [SEÇENEK...]"
+
+#: lib/argp-help.c:1683
+#, 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:1711 src/tar.c:1169
+#, 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:1930 lib/error.c:125
+msgid "Unknown system error"
+msgstr "Bilinmeyen sistem hatası"
+
+#: lib/argp-parse.c:82 src/tar.c:736
+msgid "give this help list"
+msgstr "bu yardım iletisi gösterilir"
+
+#: lib/argp-parse.c:83 src/tar.c:737
+msgid "give a short usage message"
+msgstr "kısa bir kullanım iletisi gösterilir"
+
+#: lib/argp-parse.c:84 src/tar.c:456 src/tar.c:458 src/tar.c:527
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "İSİM"
+
+#: lib/argp-parse.c:84
+msgid "set the program name"
+msgstr "uygulama ismi"
+
+#: lib/argp-parse.c:85
+msgid "SECS"
+msgstr "SAN"
+
+#: lib/argp-parse.c:86 src/tar.c:742
+msgid "hang for SECS seconds (default 3600)"
+msgstr "SANİYE saniye bekler (öntanımlı 3600)"
+
+#: lib/argp-parse.c:143 src/tar.c:738
+msgid "print program version"
+msgstr "sürüm bilgisi gösterilir"
+
+#: lib/argp-parse.c:159
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(YAZILIM HATASI) Sürümünü bilmiyor!?"
+
+#: lib/argp-parse.c:612
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: argüman sayısı fazla\n"
+
+#: lib/argp-parse.c:755
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(YAZILIM HATASI) Seçenek tanınmak zorunda!?"
+
+#: lib/getopt.c:531 lib/getopt.c:547
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: `%s' seçeneği belirsiz\n"
+
+#: lib/getopt.c:580 lib/getopt.c:584
+#, 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:593 lib/getopt.c:598
+#, 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:641 lib/getopt.c:660 lib/getopt.c:976 lib/getopt.c:995
+#, 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:698 lib/getopt.c:701
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: `--%s' seçeneği bilinmiyor\n"
+
+#: lib/getopt.c:709 lib/getopt.c:712
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: `%c%s' seçeneği bilinmiyor\n"
+
+#: lib/getopt.c:764 lib/getopt.c:767
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: kuraldışı seçenek -- %c\n"
+
+#: lib/getopt.c:773 lib/getopt.c:776
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: geçersiz seçenek -- %c\n"
+
+#: lib/getopt.c:828 lib/getopt.c:844 lib/getopt.c:1048 lib/getopt.c:1066
+#, 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:897 lib/getopt.c:913
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: `-W %s' seçeneği belirsiz\n"
+
+#: lib/getopt.c:937 lib/getopt.c:955
+#, 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/human.c:477
+msgid "block size"
+msgstr "blok uzunluğu"
+
+#: lib/obstack.c:424 lib/obstack.c:426 lib/xalloc-die.c:35 src/extract.c:1377
+msgid "memory exhausted"
+msgstr "bellek tükendi"
+
+#. 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:132
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "Üye isimlerinden `%s' kaldırılıyor"
+
+#: lib/paxnames.c:133
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "Sabit bağ hedeflerinden `%s' kaldırılıyor"
+
+#: lib/paxnames.c:146
+msgid "Substituting `.' for empty member name"
+msgstr "Boş üye ismi için `.' ikamesi"
+
+#: lib/paxnames.c:147
+msgid "Substituting `.' for empty hard link target"
+msgstr "Boş sabit bağ hedefi için `.' ikamesi"
+
+#. 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.
+#: lib/quotearg.c:229
+msgid "`"
+msgstr "`"
+
+#: lib/quotearg.c:230
+msgid "'"
+msgstr "'"
+
+#: lib/rpmatch.c:70
+msgid "^[yY]"
+msgstr "^[eEyY]"
+
+#: lib/rpmatch.c:73
+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
+#, c-format
+msgid "stdout"
+msgstr "stdÇ"
+
+#: lib/rtapelib.c:512
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Uzak kabuk çalıştırılamıyor"
+
+#: rmt/rmt.c:142
+msgid "Input string too long"
+msgstr "Girdi dizgesi çok uzun"
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr "Sayısal sözdizimi hatası"
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd: Tampon alanı ayrılamıyor\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr "Tampon alanı ayrılamıyor"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "Daha fazla bilgi için `%s --help' yazın.\n"
+
+#: rmt/rmt.c:308
+#, 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 ""
+"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:315
+#, c-format
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"Yazılım hatalarını <%s> adresine,\n"
+"çeviri hatalarını <gnu-tr@belgeler.org> adresine bildiriniz.\n"
+
+#: rmt/rmt.c:397
+msgid "Seek offset error"
+msgstr "Arama başlangıcı hatası"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+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:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd: Dosya sonu belirsiz\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "Dosya sonu belirsiz"
+
+#: rmt/rmt.c:672
+msgid "Garbage command"
+msgstr "Bozuk komut"
+
+#: src/buffer.c:326 src/buffer.c:335
+msgid "Total bytes written"
+msgstr "Yazılan toplam bayt"
+
+#: src/buffer.c:333 src/buffer.c:347
+msgid "Total bytes read"
+msgstr "Okunan toplam bayt"
+
+#: src/buffer.c:337
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Silinen toplam bayt: %s\n"
+
+#: src/buffer.c:426
+msgid "(pipe)"
+msgstr "(boru)"
+
+#: src/buffer.c:449
+msgid "Invalid value for record_size"
+msgstr "record_size için geçersiz değer"
+
+#: src/buffer.c:452
+msgid "No archive name given"
+msgstr "Arşiv ismi verilmemiş"
+
+#: src/buffer.c:496
+msgid "Cannot verify stdin/stdout archive"
+msgstr "stdG/stdÇ arşivi doğrulanamaz"
+
+#: src/buffer.c:509
+#, 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:556 src/tar.c:2187
+msgid "Cannot update compressed archives"
+msgstr "Sıkıştırılmış arşivler güncellenemez"
+
+#. 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/buffer.c:606
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Yazma sınama yeri %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/buffer.c:612
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Okuma sınaması yeri %u"
+
+#: src/buffer.c:664
+msgid "At beginning of tape, quitting now"
+msgstr "Bandın başlangıcında, şimdilik çıkıyor"
+
+#: src/buffer.c:670
+msgid "Too many errors, quitting"
+msgstr "Çok hata var, çıkıyor"
+
+#: src/buffer.c:698
+#, 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:718
+#, 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:791
+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:823
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek bir kaydın sınırında durmadı"
+
+#: src/buffer.c:879
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: geçersiz bölüm numarası içeriyor"
+
+#: src/buffer.c:914
+msgid "Volume number overflow"
+msgstr "Bölüm numarası kapsamdışı"
+
+#: src/buffer.c:929
+#, 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:935
+msgid "EOF where user reply was expected"
+msgstr "Kullanıcı cevabı beklenirken dosya sonuna gelindi"
+
+#: src/buffer.c:940 src/buffer.c:972
+msgid "WARNING: Archive is incomplete"
+msgstr "UYARI: Arşiv eksik"
+
+#: src/buffer.c:954
+#, 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 isim Sonraki (ve peşisıra) bölüm(ler) için yeni dosya ismi\n"
+" q Uygulama sonlandırılır\n"
+" y veya <enter> İşlem sürdürülür\n"
+
+#: src/buffer.c:959
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! bir alt kabuk açılır\n"
+
+#: src/buffer.c:960
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Bu listeyi basar\n"
+
+#: src/buffer.c:967
+msgid "No new volume; exiting.\n"
+msgstr "Yeni bölüm yok; çıkıyor.\n"
+
+#: src/buffer.c:1000
+msgid "File name not specified. Try again.\n"
+msgstr "Dosya ismi belirtilmemiş. Tekrar deneyin.\n"
+
+#: src/buffer.c:1013
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Girdi geçersiz, Yardım için ? yazın.\n"
+
+#: src/buffer.c:1064
+#, c-format
+msgid "%s command failed"
+msgstr "%s komutu başarısız"
+
+#: src/buffer.c:1126 src/delete.c:210 src/list.c:167 src/update.c:165
+msgid "This does not look like a tar archive"
+msgstr "Bu bir tar arşivi gibi görünmüyor"
+
+#: src/buffer.c:1219
+#, 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:1223
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s bu bölümde devam etmiyor"
+
+#: src/buffer.c:1237
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s yanlış uzunluk (%s != %s + %s)"
+
+#: src/buffer.c:1247
+msgid "This volume is out of sequence"
+msgstr "Bu bölüm sıralama dışı"
+
+#: src/buffer.c:1293
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Arşiv etiketi %s ile eşleşmiyor"
+
+#: src/buffer.c:1296
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "%s bölümü %s ile eşleşmiyor"
+
+#: src/buffer.c:1392
+#, 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/compare.c:96
+#, 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
+msgid "Contents differ"
+msgstr "İçerikler farklı"
+
+#: src/compare.c:132 src/extract.c:790 src/incremen.c:1193 src/list.c:372
+#: src/list.c:1314
+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
+msgid "File type differs"
+msgstr "Dosya türleri farklı"
+
+#: src/compare.c:183 src/compare.c:203 src/compare.c:328
+msgid "Mode differs"
+msgstr "Kipleri farklı"
+
+#: src/compare.c:206
+msgid "Uid differs"
+msgstr "Kullanıcı-kimlikler farklı"
+
+#: src/compare.c:208
+msgid "Gid differs"
+msgstr "Grup-kimlikler farklı"
+
+#: src/compare.c:212
+msgid "Mod time differs"
+msgstr "Değişiklik zamanları farklı"
+
+#: src/compare.c:216 src/compare.c:420
+msgid "Size differs"
+msgstr "Uzunlukları farklı"
+
+#: src/compare.c:270
+#, c-format
+msgid "Not linked to %s"
+msgstr "%s'e bağlı değil"
+
+#: src/compare.c:293
+msgid "Symlink differs"
+msgstr "Sembolik bağlar farklı"
+
+#: src/compare.c:322
+msgid "Device number differs"
+msgstr "Aygıt numaraları farklı"
+
+#: src/compare.c:462
+#, c-format
+msgid "Verify "
+msgstr "Doğrulama "
+
+#: src/compare.c:469
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: '%c' dosya türü bilinmiyor, normal dosya olarak karşılaştırıldı"
+
+#: src/compare.c:524
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Arşivdeki dosya isimleri dosya yolu içermiyor."
+
+#: src/compare.c:526
+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
+#, 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/create.c:67
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: %s arabellekleme dizini yaftasını içeriyor; %s"
+
+#: src/create.c:270
+#, 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:276
+#, 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:336
+msgid "Generating negative octal headers"
+msgstr "Negatif sekizlik başlık üretiliyor"
+
+#: src/create.c:622 src/create.c:685
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: dosya ismi çok uzun (en çok %d olabilir); dökümlenmedi"
+
+#: src/create.c:632
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: dosya ismi çok uzun (parçalanamıyor); dökümlenmedi"
+
+#: src/create.c:659
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: bağ ismi çok uzun; dökümlenmedi"
+
+#: src/create.c:1075
+#, 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:1176
+#, 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:1217 src/create.c:1228
+msgid "contents not dumped"
+msgstr "içerik dökümlenmedi"
+
+#: src/create.c:1357
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Bilinmeyen dosya türü; dosya yoksayıldı"
+
+#: src/create.c:1458
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "%s için bağlar kayıp.\n"
+
+#: src/create.c:1529
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: dosya değişmedi; dökümlenmedi"
+
+#: src/create.c:1537
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: dosya arşivdir; dökümlenmedi"
+
+#: src/create.c:1567
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Dosya okunamadan kaldırıldı"
+
+#: src/create.c:1585
+msgid "directory not dumped"
+msgstr "dizin dökümlenmedi"
+
+#: src/create.c:1654
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: dosya okundu olarak imlendi"
+
+#: src/create.c:1733
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: soket yoksayıldı"
+
+#: src/create.c:1738
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: kapı yoksayıldı"
+
+#: src/delete.c:216 src/list.c:181 src/update.c:170
+msgid "Skipping to next header"
+msgstr "Sonraki başlığa atlanıyor"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "Arşivden başlık-olmayan siliniyor"
+
+#: src/extract.c:198
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: makul olmayan eski tarih damgası %s"
+
+#: src/extract.c:215
+#, 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
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Dizin oluşturulurken anlaşılamayan uyumsuzluk"
+
+#: src/extract.c:588
+#, 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
+msgid "Extracting contiguous files as regular files"
+msgstr "Bitişik dosyaları normal dosyalar olarak çıkarıyor"
+
+#: src/extract.c:1000
+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:1057
+#, c-format
+msgid "Reading %s\n"
+msgstr "%s okunuyor\n"
+
+#: src/extract.c:1146
+#, 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:1153 src/list.c:1081
+msgid "Unexpected long name header"
+msgstr "Umulmadık uzun isim başlığı"
+
+#: src/extract.c:1159
+#, 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:1184
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Mevcut %s daha yeni ya da yaşıt"
+
+#: src/extract.c:1230
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Bu dosyayı yedeklemek mümkün olmadı"
+
+#: src/extract.c:1358
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "%s ismi %s olarak değiştirilemez"
+
+#: src/extract.c:1370
+#, c-format
+msgid "Error is not recoverable: exiting now"
+msgstr "Hata kurtarılabilir değil: şimdilik çıkılıyor"
+
+#: src/incremen.c:260 src/incremen.c:300
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Dizinin eski adı %s idi"
+
+#: src/incremen.c:270
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Dizin adı değiştirilmişti"
+
+#: src/incremen.c:311
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Dizin yeni"
+
+#: src/incremen.c:699 src/incremen.c:716
+msgid "Invalid time stamp"
+msgstr "Geçersiz zaman damgası"
+
+#: src/incremen.c:755
+msgid "Invalid modification time (seconds)"
+msgstr "Değişiklik zamanı (saniye cinsinden) geçersiz"
+
+#: src/incremen.c:770
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Değişiklik zamanı (nanosaniye cinsinden) geçersiz"
+
+#: src/incremen.c:790
+msgid "Invalid device number"
+msgstr "Geçersiz aygıt numarası"
+
+#: src/incremen.c:805
+msgid "Invalid inode number"
+msgstr "Geçersiz düğüm numarası"
+
+#: src/incremen.c:856 src/incremen.c:893
+msgid "Field too long while reading snapshot file"
+msgstr "Anlık görüntü dosyası okunurken alan çok uzun"
+
+#: src/incremen.c:863 src/incremen.c:901
+msgid "Read error in snapshot file"
+msgstr "Anlık görüntü dosyasında okuma hatası"
+
+#: src/incremen.c:865 src/incremen.c:905 src/incremen.c:957
+#: src/incremen.c:1015
+msgid "Unexpected EOF in snapshot file"
+msgstr "Anlık görüntü dosyasında beklenmeyen dosya sonu"
+
+#: src/incremen.c:872 src/incremen.c:912
+msgid "Unexpected field value in snapshot file"
+msgstr "Anlık görüntü dosyasında beklenmeyen alan değeri"
+
+#: src/incremen.c:1007
+msgid "Missing record terminator"
+msgstr "Kayıt sonlandırıcı eksik"
+
+#: src/incremen.c:1058 src/incremen.c:1061
+msgid "Bad incremental file format"
+msgstr "Arttırımlı dosya biçimi hatalı"
+
+#: src/incremen.c:1080
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Desteklenmeyen arttırımlı biçim sürümü: %<PRIuMAX>"
+
+#: src/incremen.c:1233
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "dumpdir bozuk: umulan '%c' ama bulunan %#3o"
+
+#: src/incremen.c:1243
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "dumpdir bozuk: 'X' yinelenmiş"
+
+#: src/incremen.c:1256
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "dumpdir bozuk: 'R'deki isim boş"
+
+#: src/incremen.c:1269
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "dumpdir bozuk: 'T' 'R' ile öncelenmemiş"
+
+#: src/incremen.c:1275
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "dumpdir bozuk: 'T'deki isim boş"
+
+#: src/incremen.c:1295
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "dumpdir bozuk: umulan'%c' ama bulunan veri sonu"
+
+#: src/incremen.c:1301
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "dumpdir bozuk: 'X' hiç kullanılmamış"
+
+#: src/incremen.c:1344
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "%s şablonu kullanılarak geçici dizin oluşturulamıyor"
+
+#: src/incremen.c:1392
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: dizin temizlenmiyor: durumlama yapılamadı"
+
+#: src/incremen.c:1405
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: dizin farklı bir aygıtta: temizlenmiyor"
+
+#: src/incremen.c:1413
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: %s siliniyor\n"
+
+#: src/incremen.c:1418
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Kaldırılamaz"
+
+#: src/list.c:113
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Geçiliyor"
+
+#: src/list.c:131
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "blok %s: ** NUL bloku **\n"
+
+#: src/list.c:144
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "%s de tek başına sıfır bloğu"
+
+#: src/list.c:155
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "blok %s: ** Dosya Sonu **\n"
+
+#: src/list.c:178 src/list.c:1054 src/list.c:1282
+#, c-format
+msgid "block %s: "
+msgstr "blok %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:662
+#, 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:717
+#, c-format
+msgid "Archive octal value %.*s is out of %s range; assuming two's complement"
+msgstr "Arşiv sekizlik değeri %.*s aralığın %s dışında; ikinin tümleyeni kabul ediliyor"
+
+#. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.)
+#: src/list.c:728
+#, 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:749
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Arşiv atıl base-64 başlıklar içeriyor"
+
+#: src/list.c:763
+#, 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:794
+#, 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:823
+#, 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:845
+#, 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:1217
+#, c-format
+msgid " link to %s\n"
+msgstr " bağı -> %s \n"
+
+#: src/list.c:1225
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " bilinmeyen dosya türü %s\n"
+
+#: src/list.c:1243
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Uzun Bağ--\n"
+
+#: src/list.c:1247
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Uzun İsim--\n"
+
+#: src/list.c:1251
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Bölüm Başlığı--\n"
+
+#: src/list.c:1259
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Devamı bayt %s de--\n"
+
+#: src/list.c:1287
+msgid "Creating directory:"
+msgstr "Oluşturulan dizin:"
+
+#: src/misc.c:456
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "%s %s olarak değiştiriliyor\n"
+
+#: src/misc.c:465 src/misc.c:483
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: İsmi %s olarak değiştirilemez"
+
+#: src/misc.c:488
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Gerisin geriye %s %s olarak değiştiriliyor\n"
+
+#: src/misc.c:615
+msgid "Cannot save working directory"
+msgstr "Çalışılan dizin kaydedilemez"
+
+#: src/misc.c:621
+msgid "Cannot change working directory"
+msgstr "Çalışma dizini değiştirilemez"
+
+#: src/misc.c:711
+msgid "child process"
+msgstr "alt süreç"
+
+#: src/misc.c:720
+msgid "interprocess channel"
+msgstr "süreçlerarası kanal"
+
+#. TRANSLATORS: The following three msgids form a single sentence.
+#.
+#: src/names.c:599
+msgid "Pattern matching characters used in file names. Please,"
+msgstr "Kalıp eşleme karakterleri dosya isimlerinde kullanılmış. Lütfen,"
+
+#: src/names.c:601
+msgid "use --wildcards to enable pattern matching, or --no-wildcards to"
+msgstr "ya kalıp eşlemeyi etkin kılmak için --wildcards kullanın,"
+
+#: src/names.c:603
+msgid "suppress this warning."
+msgstr "ya da bu uyarıyı engellemek için --no-wildcards kullanın."
+
+#: src/names.c:618 src/names.c:636
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Arşivde yok"
+
+#: src/names.c:621
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Arşivde bulunması gerekirken yok"
+
+#: src/tar.c:80
+#, 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:157
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Geçersiz arşiv biçimi"
+
+#: src/tar.c:181
+msgid "GNU features wanted on incompatible archive format"
+msgstr "GNU özellikleri ile uyumsuz arşiv biçimi"
+
+#: src/tar.c:242
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+msgstr "Sarmalama şekli `%s' bilinmiyor. Listeyi almak için `%s --quoting-style=help' yazın."
+
+#: src/tar.c:329
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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' çok sayıda dosyayı birarada tek bir disk arşivi olarak veya teybe\n"
+" kaydeder ve böyle bir arşivden dosyaları tek tek çıkarabilir\n"
+"\n"
+"Örnekler:\n"
+" tar -cf arşiv.tar foo bar # foo ve bar dosyalarından arşiv.tar oluşturulur\n"
+" 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:338
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"--suffix veya SIMPLE_BACKUP_SUFFIX ile belirtilmedikçe yedek soneki '~' dir.\n"
+"Sürüm denetimi aşağıdaki değerler --backup veya VERSION_CONTROL ile\n"
+"kullanılarak yapılabilir:\n"
+"\n"
+" none, off yedekleme yapılmaz\n"
+" t, numbered numaralı yedekleme yapılır\n"
+" 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:364
+msgid "Main operation mode:"
+msgstr "Ana işlem kipi:"
+
+#: src/tar.c:367
+msgid "list the contents of an archive"
+msgstr "bir arşiv içeriğini listeler"
+
+#: src/tar.c:369
+msgid "extract files from an archive"
+msgstr "bir arşivdeki dosyaları çıkarır"
+
+#: src/tar.c:372
+msgid "create a new archive"
+msgstr "yeni bir arşiv oluşturur"
+
+#: src/tar.c:374
+msgid "find differences between archive and file system"
+msgstr "arşiv ile dosya sistemi arasındaki farklar bulunur"
+
+#: src/tar.c:377
+msgid "append files to the end of an archive"
+msgstr "dosyaları arşivin sonuna ekler"
+
+#: src/tar.c:379
+msgid "only append files newer than copy in archive"
+msgstr "sadece arşivdeki kopyasından daha yeni dosyalar eklenir"
+
+#: src/tar.c:381
+msgid "append tar files to an archive"
+msgstr "bir arşive tar dosyaları ekler"
+
+#: src/tar.c:384
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "arşivden siler (teyplerde değil!)"
+
+#: src/tar.c:386
+msgid "test the archive volume label and exit"
+msgstr "arşiv bölüm etiketini sınar ve çıkar"
+
+#: src/tar.c:391
+msgid "Operation modifiers:"
+msgstr "İşlem değiştiriciler:"
+
+#: src/tar.c:394
+msgid "handle sparse files efficiently"
+msgstr "seyrek dosyalar verimli şekilde elde edilir"
+
+#: src/tar.c:395
+msgid "MAJOR[.MINOR]"
+msgstr "ANA[.ALT]"
+
+#: src/tar.c:396
+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:398
+msgid "handle old GNU-format incremental backup"
+msgstr "GNU eski tarz arttırımlı yedekleme tanınır"
+
+#: src/tar.c:399 src/tar.c:530 src/tar.c:594 src/tar.c:598 src/tar.c:608
+#: src/tar.c:618 src/tar.c:621 src/tar.c:623 src/tar.c:698 tests/genfile.c:132
+#: tests/genfile.c:180 tests/genfile.c:184 tests/genfile.c:187
+msgid "FILE"
+msgstr "DOSYA"
+
+#: src/tar.c:400
+msgid "handle new GNU-format incremental backup"
+msgstr "GNU yeni tarz arttırımlı yedekleme tanınır"
+
+#: src/tar.c:402
+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:403 src/tar.c:525 src/tar.c:540 src/tar.c:651 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "SAYI"
+
+#: src/tar.c:404
+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 "her dosyanın arşivdeki sadece SAYI'ıncı kopyası işlenir; bu seçenek sadece --delete, --diff, --extract veya --list alt komutlarından biri ile geçerlidir 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:410
+msgid "archive is seekable"
+msgstr "arşiv arama yapılabilen türde"
+
+#: src/tar.c:415
+msgid "Overwrite control:"
+msgstr "Üsteyazma denetimi:"
+
+#: src/tar.c:418
+msgid "attempt to verify the archive after writing it"
+msgstr "yazdıktan sonra arşivi doğrulamaya çalışır"
+
+#: src/tar.c:420
+msgid "remove files after adding them to the archive"
+msgstr "arşive eklendikten sonra dosyalar silinir"
+
+#: src/tar.c:422
+msgid "don't replace existing files when extracting"
+msgstr "çıkarılırken mevcut dosyalar değiştirilmez"
+
+#: src/tar.c:424
+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:426
+msgid "overwrite existing files when extracting"
+msgstr "çıkarılırken mevcut dosyaların üzerine yazılır"
+
+#: src/tar.c:428
+msgid "remove each file prior to extracting over it"
+msgstr "çıkarılmadan önce mevcut dosya silinir"
+
+#: src/tar.c:430
+msgid "empty hierarchies prior to extracting directory"
+msgstr "dizin çıkarılmadan önce alt dizinleri silinir"
+
+#: src/tar.c:432
+msgid "preserve metadata of existing directories"
+msgstr "mevcut dizinlerin öznitelikleri korunur"
+
+#: src/tar.c:434
+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:440
+msgid "Select output stream:"
+msgstr "Çıktı akımını seçiniz:"
+
+#: src/tar.c:443
+msgid "extract files to standard output"
+msgstr "dosyalar standart çıktıya çıkarılır"
+
+#: src/tar.c:444 src/tar.c:503 src/tar.c:505 tests/genfile.c:163
+#: tests/genfile.c:190
+msgid "COMMAND"
+msgstr "KOMUT"
+
+#: src/tar.c:445
+msgid "pipe extracted files to another program"
+msgstr "çıkarılan dosyaları başka bir uygulamaya borular"
+
+#: src/tar.c:447
+msgid "ignore exit codes of children"
+msgstr "altsüreçlerin çıkış kodları yoksayılır"
+
+#: src/tar.c:449
+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:454
+msgid "Handling of file attributes:"
+msgstr "Dosya özniteliklerinin elde edilmesi:"
+
+#: src/tar.c:457
+msgid "force NAME as owner for added files"
+msgstr "İSİM eklenen dosyaların sahibi yapılır"
+
+#: src/tar.c:459
+msgid "force NAME as group for added files"
+msgstr "İSİM eklenen dosyaların grubu yapılır"
+
+#: src/tar.c:460 src/tar.c:637
+msgid "DATE-OR-FILE"
+msgstr "DOSYA-TARİHİ"
+
+#: src/tar.c:461
+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:462
+msgid "CHANGES"
+msgstr "KİP"
+
+#: src/tar.c:463
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "KİP eklenen dosyaların (sembolik) kipi yapılır"
+
+#: src/tar.c:465
+msgid "METHOD"
+msgstr "YÖNTEM"
+
+#: src/tar.c:466
+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 "dökümlenen dosyalarda erişim zamanları korunur; ya okuma sonrası eski değerine getirerek (YÖNTEM='replace' öntanımlıdır) ya da ilk yerindeki zamanı değiştirmeyerek (YÖNTEM='system')."
+
+#: src/tar.c:470
+msgid "don't extract file modified time"
+msgstr "dosya değişiklik zamanı çıkarılmaz"
+
+#: src/tar.c:472
+msgid "try extracting files with the same ownership"
+msgstr "sahibi aynı olan dosyalar çıkarılmaya çalışılır"
+
+#: src/tar.c:474
+msgid "extract files as yourself"
+msgstr "dosyalar sizin sahipliğinizde çıkarılır"
+
+#: src/tar.c:476
+msgid "always use numbers for user/group names"
+msgstr "kullanıcı/grup isimleri yerine daima numaraları kullanılır"
+
+#: src/tar.c:478
+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:482
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+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:484
+msgid "sort names to extract to match archive"
+msgstr "isimler arşivdeki sırasına göre çıkarılır"
+
+#: src/tar.c:487
+msgid "same as both -p and -s"
+msgstr "-p ve -s birlikte verilmiş gibi olur"
+
+#: src/tar.c:489
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "herşey çıkarılana kadar çıkarılan dizinlerin izinleri ve değişiklik zamanlarının değiştirilmesi geciktirilir"
+
+#: src/tar.c:492
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "--delay-directory-restore seçeneğinin etkisi iptal edilir."
+
+#: src/tar.c:497
+msgid "Device selection and switching:"
+msgstr "Aygıt seçimi ve aygıt değiştirme:"
+
+#: src/tar.c:499
+msgid "ARCHIVE"
+msgstr "ARŞİV"
+
+#: src/tar.c:500
+msgid "use archive file or device ARCHIVE"
+msgstr "arşiv dosyası ya da ARŞİV aygıtı kullanılır"
+
+#: src/tar.c:502
+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:504
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "rmt yerine rmt KOMUT kullanılır"
+
+#: src/tar.c:506
+msgid "use remote COMMAND instead of rsh"
+msgstr "rsh yerine uzak uçta KOMUT kullanılır"
+
+#: src/tar.c:510
+msgid "specify drive and density"
+msgstr "sürücü ve yoğunluk belirtilir"
+
+#: src/tar.c:524
+msgid "create/list/extract multi-volume archive"
+msgstr "çok bölümlü arşivi oluşturur/listeler/çıkarır"
+
+#: src/tar.c:526
+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:528
+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:531
+msgid "use/update the volume number in FILE"
+msgstr "DOSYAda bölüm numarası kullanılır/güncellenir"
+
+#: src/tar.c:536
+msgid "Device blocking:"
+msgstr "Aygıtın blok düzeni:"
+
+#: src/tar.c:538
+msgid "BLOCKS"
+msgstr "BLOK"
+
+#: src/tar.c:539
+msgid "BLOCKS x 512 bytes per record"
+msgstr "kayıt başına BLOK x 512 bayt"
+
+#: src/tar.c:541
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "512'nin katları olarak kayıt başına BOYUT bayt"
+
+#: src/tar.c:543
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "arşivdeki sıfırlı bloklar yoksayılır (dosyasonu anlamında)"
+
+#: src/tar.c:545
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "okunmuş olarak yeniden bloklanır (4.2 BSD boruları için)"
+
+#: src/tar.c:550
+msgid "Archive format selection:"
+msgstr "Arşiv biçimi seçimi:"
+
+#: src/tar.c:552 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "BİÇİM"
+
+#: src/tar.c:553
+msgid "create archive of the given format"
+msgstr "belirtilen biçimin arşivi oluşturulur."
+
+#: src/tar.c:555
+msgid "FORMAT is one of the following:"
+msgstr "BİÇİM şunlardan biri olabilir:"
+
+#: src/tar.c:556
+msgid "old V7 tar format"
+msgstr "eski V7 tar biçimi"
+
+#: src/tar.c:559
+msgid "GNU format as per tar <= 1.12"
+msgstr "tar <= 1.12 için GNU biçimi"
+
+#: src/tar.c:561
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x biçimi"
+
+#: src/tar.c:563
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) biçimi"
+
+#: src/tar.c:565
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) biçimi"
+
+#: src/tar.c:566
+msgid "same as pax"
+msgstr "pax ile aynı"
+
+#: src/tar.c:569
+msgid "same as --format=v7"
+msgstr " --format=v7 ile aynı"
+
+#: src/tar.c:572
+msgid "same as --format=posix"
+msgstr "--format=posix ile aynı"
+
+#: src/tar.c:573
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "isim[[:]=değer][,isim[[:]=değer]]..."
+
+#: src/tar.c:574
+msgid "control pax keywords"
+msgstr "pax anahtar sözcüklerini denetler"
+
+#: src/tar.c:575
+msgid "TEXT"
+msgstr "METİN"
+
+#: src/tar.c:576
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+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:578
+msgid "filter the archive through bzip2"
+msgstr "arşivi bzip2 üzerinden geçirir"
+
+#: src/tar.c:580
+msgid "filter the archive through gzip"
+msgstr "arşivi gzip üzerinden geçirir"
+
+#: src/tar.c:584
+msgid "filter the archive through compress"
+msgstr "arşivi compress üzerinden geçirir"
+
+#: src/tar.c:586
+msgid "PROG"
+msgstr "UYG"
+
+#: src/tar.c:587
+msgid "filter through PROG (must accept -d)"
+msgstr "arşivi UYG üzerinden geçirir (UYG -d kabul etmeli)"
+
+#: src/tar.c:592
+msgid "Local file selection:"
+msgstr "Yerel dosya seçimi:"
+
+#: src/tar.c:595
+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:596
+msgid "DIR"
+msgstr "DİZİN"
+
+#: src/tar.c:597
+msgid "change to directory DIR"
+msgstr "DİZİN dizinine geçilir"
+
+#: src/tar.c:599
+msgid "get names to extract or create from FILE"
+msgstr "çıkarılacak ya da oluşturulacak isimler DOSYAdan alınır"
+
+#: src/tar.c:601
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T boş karakter sonlandırmalı isimleri okur, -C iptal edilir"
+
+#: src/tar.c:603
+msgid "unquote filenames read with -T (default)"
+msgstr "-T ile okunan dosyaisimlerine tırnak ayıklama uygulanır"
+
+#: src/tar.c:605
+msgid "do not unquote filenames read with -T"
+msgstr "-T ile okunan dosyaisimlerine tırnak ayıklama uygulanmaz"
+
+#: src/tar.c:606 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "ŞABLON"
+
+#: src/tar.c:607
+msgid "exclude files, given as a PATTERN"
+msgstr "belirtilen ŞABLONa uyan dosyalar hariç tutulur"
+
+#: src/tar.c:609
+msgid "exclude patterns listed in FILE"
+msgstr "DOSYAdaki şablonlara uyan isimler hariç tutulur"
+
+#: src/tar.c:611
+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:614
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG içeren dizinlerin altındaki herşey hariç tutulur"
+
+#: src/tar.c:617
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "CACHEDIR.TAG içeren dizinler hariç tutulur"
+
+#: src/tar.c:619
+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:622
+msgid "exclude everything under directories containing FILE"
+msgstr "DOSYA içeren dizinlerin altındaki herşey hariç tutulur"
+
+#: src/tar.c:624
+msgid "exclude directories containing FILE"
+msgstr "DOSYA içeren dizinler hariç tutulur"
+
+#: src/tar.c:626
+msgid "avoid descending automatically in directories"
+msgstr "dizinlerde özdevinimli olarak azalan sıralamadan kaçınılır"
+
+#: src/tar.c:628
+msgid "stay in local file system when creating archive"
+msgstr "arşiv oluşturulurken yerel dosya sisteminde kalınır"
+
+#: src/tar.c:630
+msgid "recurse into directories (default)"
+msgstr "dizinlerin alt dizinlerine inilir (öntanımlı)"
+
+#: src/tar.c:632
+msgid "don't strip leading `/'s from file names"
+msgstr "dosya isimlerinin başındaki `/'lar ayrılmaz"
+
+#: src/tar.c:634
+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:635
+msgid "MEMBER-NAME"
+msgstr "ÜYE-İSMİ"
+
+#: src/tar.c:636
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "arşivin ÜYE-İSMİ üyesinden başlanır"
+
+#: src/tar.c:638
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "sadece DOSYA-TARİHİnden daha yeni dosyalar saklanır"
+
+#: src/tar.c:640
+msgid "DATE"
+msgstr "TARİH"
+
+#: src/tar.c:641
+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:642
+msgid "CONTROL"
+msgstr "DENETİM"
+
+#: src/tar.c:643
+msgid "backup before removal, choose version CONTROL"
+msgstr "kaldırılmadan önce DENETİM sürümü seçilerek yedeklenir"
+
+#: src/tar.c:644 src/tar.c:715 src/tar.c:717 tests/genfile.c:169
+msgid "STRING"
+msgstr "DİZGE"
+
+#: src/tar.c:645
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+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:650
+msgid "File name transformations:"
+msgstr "Dosya ismi dönüşümleri:"
+
+#: src/tar.c:652
+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:654
+msgid "EXPRESSION"
+msgstr "İFADE"
+
+#: src/tar.c:655
+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:660
+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:663
+msgid "ignore case"
+msgstr "harf büyüklükleri önemsenmez"
+
+#: src/tar.c:665
+msgid "patterns match file name start"
+msgstr "dosya isminin başlangıcına uyan kalıplar"
+
+#: src/tar.c:667
+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:669
+msgid "case sensitive matching (default)"
+msgstr "harf büyüklüklerine duyarlı eşleşme (öntanımlı)"
+
+#: src/tar.c:671
+msgid "use wildcards (default for exclusion)"
+msgstr "genelleme kalıpları kullanılır (dışlama için öntanımlı)"
+
+#: src/tar.c:673
+msgid "verbatim string matching"
+msgstr "birebir dizge eşleme"
+
+#: src/tar.c:675
+msgid "wildcards do not match `/'"
+msgstr "'/' ile eşleşmeyen genelleme kalıpları"
+
+#: src/tar.c:677
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "'/' ile eşleşen genelleme kalıpları (dışlama için öntanımlı)"
+
+#: src/tar.c:682
+msgid "Informative output:"
+msgstr "Bilgilendirme çıktısı:"
+
+#: src/tar.c:685
+msgid "verbosely list files processed"
+msgstr "işlenen dosyalar ayrıntılı listelenir"
+
+#: src/tar.c:686
+msgid "[.]NUMBER"
+msgstr "[.]SAYI"
+
+#: src/tar.c:687
+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:690
+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:691
+msgid "SIGNAL"
+msgstr "SiNYAL"
+
+#: src/tar.c:692
+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 "arşivi işledikten sonra bayt toplamını basar; bir - argümanla SiNYAL 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:697
+msgid "print file modification dates in UTC"
+msgstr "dosya değişiklik zamanları UTC'ye göre basılır"
+
+#: src/tar.c:699
+msgid "send verbose output to FILE"
+msgstr "ayrıntılı çıktı DOSYAya gönderilir"
+
+#: src/tar.c:701
+msgid "show block number within archive with each message"
+msgstr "her iletide arşiv içindeki blok sayısı gösterilir"
+
+#: src/tar.c:703
+msgid "ask for confirmation for every action"
+msgstr "her eylemden önce doğrulama istenir"
+
+#: src/tar.c:706
+msgid "show tar defaults"
+msgstr "tar öntanımlıları gösterilir"
+
+#: src/tar.c:708
+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:710
+msgid "show file or archive names after transformation"
+msgstr "dönüşümden sonra dosya ve arşiv isimlerini gösterir"
+
+#: src/tar.c:713
+msgid "STYLE"
+msgstr "ŞEKİL"
+
+#: src/tar.c:714
+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:716
+msgid "additionally quote characters from STRING"
+msgstr "DİZGEdeki sarmalama karakterlerine ek olarak"
+
+#: src/tar.c:718
+msgid "disable quoting for characters from STRING"
+msgstr "DİZGEdeki karakterler için sarmalamayı iptal eder"
+
+#: src/tar.c:723
+msgid "Compatibility options:"
+msgstr "Uyumluluk seçenekleri:"
+
+#: src/tar.c:726
+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:731
+msgid "Other options:"
+msgstr "Diğer seçenekler:"
+
+#: src/tar.c:734
+msgid "disable use of some potentially harmful options"
+msgstr "bozuculuk olasılığı olan bazı seçeneklerin kullanımı iptal edilir"
+
+#: src/tar.c:838
+msgid "You may not specify more than one `-Acdtrux' option"
+msgstr "`-Acdtrux' seçenekleri birden fazla belirtilemez"
+
+#: src/tar.c:848
+msgid "Conflicting compression options"
+msgstr "Sıkıştırma seçenekleri çelişiyor"
+
+#: src/tar.c:904
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Bilinmeyen sinyal ismi: %s"
+
+#: src/tar.c:928
+msgid "Date sample file not found"
+msgstr "Tarih örnekleri dosyası bulunamadı"
+
+#: src/tar.c:936
+#, 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:961
+#, 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:1035
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: dosya listesi zaten okundu"
+
+#: src/tar.c:1098
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: okunan dosya ismi boş karakter içeriyor"
+
+#: src/tar.c:1163
+msgid "Valid arguments for --quoting-style options are:"
+msgstr "--quoting-style seçeneği için geçerli değerler:"
+
+#: src/tar.c:1166
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*Bu* tar için öntanımlılar:\n"
+
+#: src/tar.c:1199
+msgid "Invalid blocking factor"
+msgstr "Bloklama çarpanı geçersiz"
+
+#: src/tar.c:1271
+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?"
+
+#: src/tar.c:1304
+msgid "Invalid tape length"
+msgstr "Kayıt ortamının uzunluğu geçersiz"
+
+#: src/tar.c:1336
+msgid "More than one threshold date"
+msgstr "Birden fazla eşik tarihi"
+
+#: src/tar.c:1391 src/tar.c:1394
+msgid "Invalid sparse version value"
+msgstr "Seyrek sürüm değeri geçersiz"
+
+#: src/tar.c:1479
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' seçeneği bu platformda desteklenmiyor"
+
+#: src/tar.c:1496
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint değeri bir tamsayı değil"
+
+#: src/tar.c:1589
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s: geçersiz grup"
+
+#: src/tar.c:1596
+msgid "Invalid mode given on option"
+msgstr "Seçenekte verilen kip geçersiz"
+
+#: src/tar.c:1649
+msgid "Invalid number"
+msgstr "Sayı geçersiz"
+
+#: src/tar.c:1671
+msgid "Invalid owner"
+msgstr "Sahip geçersiz"
+
+#: src/tar.c:1705
+msgid "Invalid record size"
+msgstr "Kayıt uzunluğu geçersiz"
+
+#: src/tar.c:1708
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Kayıt uzunluğu %d nin katları olmalı"
+
+#: src/tar.c:1745
+msgid "Invalid number of elements"
+msgstr "Elemen sayısı geçersiz"
+
+#: src/tar.c:1765
+msgid "Only one --to-command option allowed"
+msgstr "Sadece tek bir --to-command seçeneği kullanılabilir"
+
+#: src/tar.c:1841
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Hatalı yoğunluk argümanı: %s"
+
+#: src/tar.c:1867
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Bilinmeyen yoğunluk: '%c'"
+
+#: src/tar.c:1884
+#, 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:1919
+msgid "[FILE]..."
+msgstr "[DOSYA]..."
+
+#: src/tar.c:2022
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Eski seçenek `%c' bir argümanla kullanılır."
+
+#: src/tar.c:2104
+msgid "--occurrence is meaningless without a file list"
+msgstr "--occurrence bir dosya listesi olmaksızın anlamlı değil"
+
+#: src/tar.c:2110
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence istenen işlem kipinde kullanılamaz"
+
+#: src/tar.c:2140
+msgid "Multiple archive files require `-M' option"
+msgstr "Çok sayıda arşiv dosyası `-M' seçeneği gerektirir"
+
+#: src/tar.c:2145
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "--listed-incremental ile --newer birlikte kullanılamaz"
+
+#: src/tar.c:2162
+#, 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:2175
+msgid "Cannot verify multi-volume archives"
+msgstr "Çok sayıda bölüm içeren arşivler doğrulanamaz"
+
+#: src/tar.c:2177
+msgid "Cannot verify compressed archives"
+msgstr "Sıkıştırılmış arşivler doğrulanamaz"
+
+#: src/tar.c:2183
+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:2189
+msgid "Cannot concatenate compressed archives"
+msgstr "Sıkıştırılmış arşivler birleştirilemez"
+
+#: src/tar.c:2201
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option sadece POSIX arşivlerinde kullanılabilir"
+
+#: src/tar.c:2226
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Bir boş arşivin oluşturulması ister istemez reddediliyor"
+
+#: src/tar.c:2247
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "`-Aru' seçenekleri `-f -' ile uyumsuz"
+
+#: src/tar.c:2334
+msgid "You must specify one of the `-Acdtrux' options"
+msgstr "`-Acdtrux' seçeneklerinden biri belirtilmeli"
+
+#: src/tar.c:2385
+#, c-format
+msgid "Error exit delayed from previous errors"
+msgstr "Hata çıkışı önceki hatalardan dolayı gecikti"
+
+#: src/update.c:86
+#, c-format
+msgid "%s: File shrank by %s byte"
+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:158
+#, 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:184
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "%s şablonu kullanılamıyor"
+
+#: src/xheader.c:194
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "%s anahtar sözcüğü çakıştırılamaz"
+
+#: src/xheader.c:498
+msgid "Malformed extended header: missing length"
+msgstr "Ek başlık bozuk: uzunluk eksik"
+
+#: src/xheader.c:506
+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:513
+#, 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:525
+msgid "Malformed extended header: missing blank after length"
+msgstr "Ek başlık bozuk: uzunluktan sonra boşluk yok"
+
+#: src/xheader.c:533
+msgid "Malformed extended header: missing equal sign"
+msgstr "Ek başlık bozuk: eşit işareti eksik"
+
+#: src/xheader.c:539
+msgid "Malformed extended header: missing newline"
+msgstr "Ek başlık bozuk: satırsonu eksik"
+
+#: src/xheader.c:576
+#, 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:780
+#, 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:812
+#, 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:943 src/xheader.c:973 src/xheader.c:1287
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Ek başlık bozuk: %s=%s geçersiz"
+
+#: src/xheader.c:1240 src/xheader.c:1265 src/xheader.c:1315
+#, 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:1328
+#, 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:1338
+#, 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"
+
+#: tests/genfile.c:112
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile, GNU paxutils deneme araçları için veri dosyalarını işleme sokar.\n"
+"SEÇENEKLER:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Dosya oluşturma seçenekleri:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "BOYUT"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Dosya belirtilen BOYUTta oluşturulur"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Dosyalar standart çıktı yerine İSİM dosyasına yazılır"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Dosya isimleri DOSYAdan okunur"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T boş karakter sonlandırmalı isimleri okur"
+
+#: tests/genfile.c:137
+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:140
+msgid "Size of a block for sparse file"
+msgstr "Seyrek dosyalar için blok boyu"
+
+#: tests/genfile.c:142
+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:144
+msgid "OFFSET"
+msgstr "KONUM"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Veriyi yazmadan önce belirtilen konuma gider"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Dosya istatistikleri seçenekleri:"
+
+#: tests/genfile.c:154
+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:161
+msgid "Synchronous execution options:"
+msgstr "İcra eşzamanlama seçenekleri:"
+
+#: tests/genfile.c:164
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+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:167
+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:170
+msgid "Set date for next --touch option"
+msgstr "Sonraki --touch seçeneği için tarih ayarlanır"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "İcra edilen sınamalar ve KOMUTun çıkış durumu gösterilir"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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:181
+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:185
+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:188
+msgid "Update the access and modification times of FILE"
+msgstr "DOSYAnın değişiklik ve erişim zamanları güncellenir"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "KOMUT çalıştırılır"
+
+#: tests/genfile.c:241
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Geçersiz boyut: %s"
+
+#: tests/genfile.c:246
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Numara izin verilen aralığın dışında: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Negative size: %s"
+msgstr "Negatif boyut: %s"
+
+#: tests/genfile.c:262 tests/genfile.c:561
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) başarısız"
+
+#: tests/genfile.c:356
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Sayı çözümlenirken `%s' civarında hata"
+
+#: tests/genfile.c:362
+#, c-format
+msgid "Unknown date format"
+msgstr "Bilinmeyen tarih biçimi"
+
+#: tests/genfile.c:385
+msgid "[ARGS...]"
+msgstr "[ARGÜMANLAR...]"
+
+#: tests/genfile.c:422 tests/genfile.c:462 tests/genfile.c:515
+#: tests/genfile.c:665 tests/genfile.c:679
+#, c-format
+msgid "cannot open `%s'"
+msgstr "`%s' açılamıyor"
+
+#: tests/genfile.c:428
+msgid "cannot seek"
+msgstr "konumlanamıyor"
+
+#: tests/genfile.c:445
+#, c-format
+msgid "file name contains null character"
+msgstr "dosya ismi boş karakter içeriyor"
+
+#: tests/genfile.c:510
+#, 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:588
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "kalıp yanlış (`%s' yakınında)"
+
+#: tests/genfile.c:594 tests/genfile.c:627
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Bilinmeyen alan `%s'"
+
+#: tests/genfile.c:654
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "zaman `%s' olarak ayarlanamaz"
+
+#: tests/genfile.c:808
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Komut başarıyla sonlandı\n"
+
+#: tests/genfile.c:810
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Komut %d çıkış durumu ile başarısız oldu\n"
+
+#: tests/genfile.c:814
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Komut %d sinyali ile sonlandırıldı\n"
+
+#: tests/genfile.c:816
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Komut %d sinyali ile durduruldu\n"
+
+#: tests/genfile.c:819
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Komut bellek dökümü verdi\n"
+
+#: tests/genfile.c:822
+#, c-format
+msgid "Command terminated\n"
+msgstr "Komut sonlandı\n"
+
+#: tests/genfile.c:854
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat seçeneği dosya isimleri gerektirir"
+
+#: tests/genfile.c:867
+#, c-format
+msgid "too many arguments"
+msgstr "argüman sayısı çok fazla"
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 00000000..810a3991
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,2632 @@
+# Ukrainian messages for GNU tar
+# This file is distributed under the same license as the tar package.
+# Copyright (C) 2010 Free Software Foundation, Inc.
+# Sergey Poznyakoff <gray@gnu.org>, 2005, 2006, 2007, 2008, 2009, 2010.
+#
+#: src/create.c:1550
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.24\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2010-10-24 23:08+0300\n"
+"PO-Revision-Date: 2010-10-25 15:22+0300\n"
+"Last-Translator: Sergey Poznyakoff <gray@gnu.org>\n"
+"Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: uk\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "неправильний аргумент %s для %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "неоднозначний аргумент %s для %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Дозволені аргументи такі:"
+
+#: 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"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: параметр ARGP_HELP_FMT вимагає значення"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: параметр ARGP_HELP_FMT має бути додатнім"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Невідомий параметр ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Хибні дані в ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1246
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "Аргументи, обов'язкові для довгих ключів, є обов'язковими й для коротких."
+
+#: gnu/argp-help.c:1639
+msgid "Usage:"
+msgstr "Використання:"
+
+#: gnu/argp-help.c:1643
+msgid " or: "
+msgstr " чи: "
+
+#: gnu/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [ОПЦІЯ...]"
+
+#: gnu/argp-help.c:1682
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "Спробуйте `%s --help' або `%s --usage' для отримання докладнішого опису.\n"
+
+#: gnu/argp-help.c:1710
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Про помилки звітуйте на <%s>.\n"
+
+#: gnu/argp-help.c:1929 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "Невідома системна помилка"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "вивести цю довідку"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "вивести коротке повідомлення про використання"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "НАЗВА"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "встановити назву програми"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "СЕКУНДИ"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "зачекати вказану кількість секунд (типово 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "вивести версію програми"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Невідома версія!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Забагато аргументів\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(ПОМИЛКА ПРОГРАМУВАННЯ) Опція мала бути розпізнана!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "помилка запису"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: опція '%s' неоднозначна\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: опція '--%s' не може мати аргументу\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: опція '%c%s' не може мати аргументу\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, fuzzy, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: опція '%s' вимагає аргументу\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: невідома опція '--%s'\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: невідома опція '%c%s'\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: недійсна опція -- '%c'\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: опція вимагає аргументу -- '%c'\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: опція '-W %s' неоднозначна\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: опція '-W %s' не може мати аргументу\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, fuzzy, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: опція '%s' вимагає аргументу\n"
+
+#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "пам'ять вичерпана"
+
+#: gnu/openat-die.c:36
+#, c-format
+msgid "unable to record current working directory"
+msgstr "не вдається змінити поточний каталог"
+
+#: gnu/openat-die.c:54
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "не вдається зберегти поточний каталог"
+
+#. 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.
+#: gnu/quotearg.c:274
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:275
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yYтТ]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nNнН]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Пакував %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Ліцензія GPLv3+: GNU GPL версії 3 або пізнішої <http://gnu.org/licenses/gpl.html>\n"
+"Це є вільне програмне забезпечення: ви можете змінювати та розповсюджувати його.\n"
+"Немає ЖОДНИХ ГАРАНТІЙ, в межах дозволених правом.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "Автор: %s.\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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 та %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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"Про помилки звітуйте на %s\n"
+"Про помилки у перекладі звітуйте за адресою <translation-team-uk@lists.sourceforge.net>\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: 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"
+
+#: 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 "Підстановка `.' замість пустої назви цілі жорсткого посилання"
+
+#: 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:432
+msgid "Seek direction out of range"
+msgstr "Напрямок зміщення за межами діапазону"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "Помилковий напрям пошуку"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "Помилковий зсув у файлі"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "Зміщення за межами діапазону"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "Помилкова кількість байтів"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "Кількість байтів за межами діапазону"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "Передчасне закінчення файла"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "Недійсний код операції"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "Операція не підтримується"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "Неочікувані аргументи"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "Керує стрічковим пристроєм, отримуючи команди від віддаленого процесу"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "ЧИСЛО"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "встановити рівень налагоджування"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "ФАЙЛ"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "встановити назву файлу для виходу налагоджування"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "не вдається відкрити %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "забагато аргументів"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "Хибна команда"
+
+#: src/buffer.c:386 src/buffer.c:391 src/buffer.c:635 src/buffer.c:1250
+#: src/buffer.c:1296 src/buffer.c:1325 src/delete.c:211 src/list.c:184
+#: src/update.c:198
+msgid "This does not look like a tar archive"
+msgstr "Це не схоже на архів tar"
+
+#: src/buffer.c:450 src/buffer.c:459
+msgid "Total bytes written"
+msgstr "Записано загалом"
+
+#: src/buffer.c:457 src/buffer.c:471
+msgid "Total bytes read"
+msgstr "Прочитано байтів загалом"
+
+#: src/buffer.c:461
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Видалено загалом: %s\n"
+
+#: src/buffer.c:550
+msgid "(pipe)"
+msgstr "(канал)"
+
+#: src/buffer.c:573
+msgid "Invalid value for record_size"
+msgstr "Недійсне значення record_size"
+
+#: src/buffer.c:576
+msgid "No archive name given"
+msgstr "Не вказано назви архіву"
+
+#: src/buffer.c:618
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Неможливо перевіряти архів, записаний до stdout"
+
+#: src/buffer.c:632
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Архів стиснений. Використовуйте опцію %s"
+
+#: src/buffer.c:689 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "Не можна оновлювати стиснені архіви"
+
+#: src/buffer.c:782
+msgid "At beginning of tape, quitting now"
+msgstr "На початку стрічки, закінчуємо"
+
+#: src/buffer.c:788
+msgid "Too many errors, quitting"
+msgstr "Надто багато помилок, виконання перервано"
+
+#: src/buffer.c:821
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Розмір запису = %lu блок"
+msgstr[1] "Розмір запису = %lu блоки"
+msgstr[2] "Розмір запису = %lu блоків"
+
+#: src/buffer.c:842
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "Невірне вирівнювання блоку (%lu байт) в архіві"
+msgstr[1] "Невірне вирівнювання блоку (%lu байти) в архіві"
+msgstr[2] "Невірне вирівнювання блоку (%lu байтів) в архіві"
+
+#: src/buffer.c:919
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "Не вдалося переміститись назад у архіві; можливо архів не можна прочитати без опції -i"
+
+#: src/buffer.c:951
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek не зупинився на межі запису"
+
+#: src/buffer.c:1002
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: містить невірний номер тому"
+
+#: src/buffer.c:1037
+msgid "Volume number overflow"
+msgstr "Переповнення номера тому"
+
+#: src/buffer.c:1052
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "Підготуйте том #%d архіву %s ї натиснить return: "
+
+#: src/buffer.c:1058
+msgid "EOF where user reply was expected"
+msgstr "Кінець файлу, замість очікуваної відповіді"
+
+#: src/buffer.c:1063 src/buffer.c:1095
+msgid "WARNING: Archive is incomplete"
+msgstr "ПОПЕРЕДЖЕННЯ: Незавершений архів"
+
+#: src/buffer.c:1077
+#, 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 Перервати роботу\n"
+" у або новий рядок Продовжувати\n"
+
+#: src/buffer.c:1082
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Викликати оболонку\n"
+
+#: src/buffer.c:1083
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? Вивести цю довідку\n"
+
+#: src/buffer.c:1090
+msgid "No new volume; exiting.\n"
+msgstr "Новий том відсутній. Завершення.\n"
+
+#: src/buffer.c:1123
+msgid "File name not specified. Try again.\n"
+msgstr "Не вказано назви файлу. Спробуйте ще раз.\n"
+
+#: src/buffer.c:1136
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Недійсні вхідні дані. Наберіть ? щоб отримати підказку.\n"
+
+#: src/buffer.c:1187
+#, c-format
+msgid "%s command failed"
+msgstr "збій виконання `%s'"
+
+#: src/buffer.c:1368
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s можливо продовжується у цьому томі: заголовок містить обрізану назву"
+
+#: src/buffer.c:1372
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s не продовжується у цьому томі"
+
+#: src/buffer.c:1386
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s є неправильним розміром (%s != %s + %s)"
+
+#: src/buffer.c:1401
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "Цей том є за межами послідовності (%s - %s != %s)"
+
+#: src/buffer.c:1479 src/buffer.c:1505
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Назви тому відсутня в архіві. Не можна порівняти з %s"
+
+#: src/buffer.c:1509
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Етикетка тому %s не співпадає з %s"
+
+#: src/buffer.c:1603
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: назва файлу надто довга щоб зберегти її у заголовку тому GNU; назву обрізано"
+
+#: src/buffer.c:1794
+msgid "write did not end on a block boundary"
+msgstr "запис не закінчився на межі блоку"
+
+#: 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[2] "Вдалося прочитати тільки %lu з %lu байтів"
+
+#: src/compare.c:105 src/compare.c:382
+msgid "Contents differ"
+msgstr "Різниця у змісті"
+
+#: src/compare.c:131 src/extract.c:958 src/incremen.c:1462 src/list.c:397
+#: src/list.c:1384 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "Неочікуваний кінець файла в архіві"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:308 src/compare.c:406
+msgid "File type differs"
+msgstr "Різниця у типі файлу"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:322
+msgid "Mode differs"
+msgstr "Різниця у правах доступу"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Різниця у значенні UID"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Різниця у значенні GID"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Різниця у часі модифікації"
+
+#: src/compare.c:215 src/compare.c:414
+msgid "Size differs"
+msgstr "Різниця у розмірі"
+
+#: src/compare.c:263
+#, c-format
+msgid "Not linked to %s"
+msgstr "Не є посиланням до %s"
+
+#: src/compare.c:287
+msgid "Symlink differs"
+msgstr "Різниця у символічному посиланні"
+
+#: src/compare.c:316
+msgid "Device number differs"
+msgstr "Різниця у номері пристрою"
+
+#: src/compare.c:456
+#, c-format
+msgid "Verify "
+msgstr "Перевірка "
+
+#: src/compare.c:463
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: Невідомий тип файлу `%c', перевірюється як звичайний файл"
+
+#: src/compare.c:518
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Архів містить назви файлів без попереджуючих префіксів."
+
+#: src/compare.c:520
+msgid "Verification may fail to locate original files."
+msgstr "Перевірка може не знайти первинних файлів."
+
+#: src/compare.c:593
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірний заголовок"
+msgstr[1] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірних заголовки"
+msgstr[2] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірних заголовків"
+
+#: src/compare.c:611 src/list.c:161
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Самотній блок нулів, зсув %s"
+
+# Не подобається мені це "кешування"...
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: містить мітку каталогу кешування `%s'; %s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "Значення %s поза межами діапазону типа %s %s..%s; заміна на %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "значення %s за межами діапазону типа %s %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "Створення від'ємних вісімкових заголовків"
+
+#: src/create.c:611 src/create.c:674
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: назва файлу занадто довга (макс. %d); не архівується"
+
+#: src/create.c:621
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: назва файлу занадто довга (не вдається розділити); не архівується"
+
+#: src/create.c:648
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s: назва посилання занадто довга; не архівується"
+
+#: src/create.c:1062
+#, 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[2] "%s: Файл скоротився на %s байтів; заповнення нулями"
+
+#: src/create.c:1158
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s: файл знаходиться в іншої файлової системі; не архівується"
+
+#: src/create.c:1201 src/create.c:1212 src/incremen.c:582 src/incremen.c:588
+msgid "contents not dumped"
+msgstr "вміст не архівується"
+
+#: src/create.c:1416
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s: Невідомий тип файла; Файл проігноровано"
+
+#: src/create.c:1527
+#, c-format
+msgid "Missing links to %s."
+msgstr "Відсутні деякі посилання до %s."
+
+#: src/create.c:1688
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: файл не змінено; не архівується"
+
+#: src/create.c:1697
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: файл є архівом; не архівується"
+
+#: src/create.c:1721 src/incremen.c:575
+msgid "directory not dumped"
+msgstr "каталог не архівується"
+
+#: src/create.c:1793
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: файл змінився під час читання"
+
+#: src/create.c:1855
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: гніздо ігнорується"
+
+# FIXME: door?
+#: src/create.c:1861
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: двері ігноруються"
+
+#: src/delete.c:217 src/list.c:198 src/update.c:203
+msgid "Skipping to next header"
+msgstr "Перехід до наступного заголовка"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Видалення не-заголовка з архіву"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s: неймовірно стара дата %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s: мітка часу %s зсунута на %s сек. до майбутнього"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s: Неочікувана суперечність під час створення каталогу"
+
+#: src/extract.c:709
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s: Каталог перейменовано перед тим, як tar встиг витягнути його стан"
+
+#: src/extract.c:863
+msgid "Extracting contiguous files as regular files"
+msgstr "Витягування безперервних файлів у звичайні"
+
+#: src/extract.c:1183
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "Спроба перетворити символічні посилання на жорсткі"
+
+#: src/extract.c:1339
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s: Не вдається витягнути -- файл починається в іншому томі"
+
+#: src/extract.c:1346 src/list.c:1117
+msgid "Unexpected long name header"
+msgstr "Неочікуваний кінець файла у заголовку довгої назви"
+
+#: src/extract.c:1353
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s: Невідомий тип файлу `%c', спроба витягнути його як звичайний файл"
+
+# FIXME: або сучасний?
+#: src/extract.c:1379
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "Існуючий файл `%s' є новіший"
+
+#: src/extract.c:1431
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s: Не вдалося створити резервну копію цього файла"
+
+#: src/extract.c:1568
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Не вдається перейменувати %s на %s"
+
+#: src/incremen.c:474 src/incremen.c:518
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s: Каталог перейменовано з %s"
+
+#: src/incremen.c:486
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Каталог перейменовано"
+
+#: src/incremen.c:531
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Новий каталог"
+
+#: src/incremen.c:956 src/incremen.c:973
+msgid "Invalid time stamp"
+msgstr "Невірний час файлу"
+
+#: src/incremen.c:1012
+msgid "Invalid modification time (seconds)"
+msgstr "Невірна дата модифікації (секунди)"
+
+#: src/incremen.c:1027
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Недійсний час модифікації (наносекунди)"
+
+#: src/incremen.c:1047
+msgid "Invalid device number"
+msgstr "Невірний номер пристрою"
+
+#: src/incremen.c:1062
+msgid "Invalid inode number"
+msgstr "Невірний номер і-вузла"
+
+#: src/incremen.c:1113 src/incremen.c:1150
+msgid "Field too long while reading snapshot file"
+msgstr "З файла-знімка прочитано надто довге поле"
+
+#: src/incremen.c:1120 src/incremen.c:1158
+msgid "Read error in snapshot file"
+msgstr "Помилка читання файла-знімка"
+
+#: 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:1129 src/incremen.c:1169
+msgid "Unexpected field value in snapshot file"
+msgstr "Неочікуваний кінець файла-знімка"
+
+#: src/incremen.c:1264
+msgid "Missing record terminator"
+msgstr "Бракує ознаки кінця запису"
+
+#: src/incremen.c:1325 src/incremen.c:1328
+msgid "Bad incremental file format"
+msgstr "Неправильний формат файла знімку"
+
+#: src/incremen.c:1347
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "Такий інкрементний формат не підтримується: %<PRIuMAX>"
+
+#: src/incremen.c:1502
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "Неправильно сформований dumpdir: очікувалося '%c' натомість знайдено %#3o"
+
+#: src/incremen.c:1512
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Неправильно сформований dumpdir: 'X' вказаний двічі"
+
+#: src/incremen.c:1525
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "Невірний формат dumpdir: пуста назва у `R'"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "Невірний формат dumpdir: `T' без попереднього `R'"
+
+#: src/incremen.c:1544
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Невірний формат dumpdir: пуста назва у `T'"
+
+#: src/incremen.c:1564
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "Невірний формат dumpdir: очікувалося `%c', натомість знайдено кінець файла"
+
+#: src/incremen.c:1571
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Невірний формат dumpdir: `X' не використаний"
+
+#: src/incremen.c:1615
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "Не вдається створити тимчасовий каталог використовуючи шаблон %s"
+
+#: src/incremen.c:1677
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s: Каталог не очищується: не вдалося виконати stat"
+
+#: src/incremen.c:1690
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: Каталог знаходиться на іншому пристрої: не очищується"
+
+#: src/incremen.c:1698
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Стирання %s\n"
+
+#: src/incremen.c:1703
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Не вдається видалити"
+
+#: src/list.c:130
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Пропускається"
+
+#: src/list.c:146
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "блок %s: ** Містить нулі **\n"
+
+#: src/list.c:172
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "блок %s: ** Кінець файлу **\n"
+
+#: src/list.c:195 src/list.c:1089 src/list.c:1352
+#, c-format
+msgid "block %s: "
+msgstr "блок %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:704
+#, 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:759
+#, 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:770
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Вісімкове значення %.*s знаходиться поза межами діапазону типу %s"
+
+# FIXME: base=64?
+#: src/list.c:791
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Архів містить застарілі заголовки з основою 64"
+
+#: src/list.c:805
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Архів містить знакову строку з основою 64 %s, що є поза допустимими межами типу %s"
+
+# FIXME: base-256
+#: src/list.c:836
+#, 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:865
+#, 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:887
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Значення %s поза допустимими межами типу %s %s..%s"
+
+#: src/list.c:1253
+#, c-format
+msgid " link to %s\n"
+msgstr "посилання до %s\n"
+
+#: src/list.c:1261
+#, c-format
+msgid " unknown file type %s\n"
+msgstr "невідомий тип файла %s\n"
+
+#: src/list.c:1279
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Довге посилання--\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Довга назва--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Заголовок тому--\n"
+
+#: src/list.c:1295
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Продовжується з байту %s--\n"
+
+#: src/list.c:1357
+msgid "Creating directory:"
+msgstr "Створення каталогу:"
+
+#: src/misc.c:298
+msgid "Cannot get working directory"
+msgstr "Не вдається отримати поточний каталог"
+
+#: src/misc.c:571
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Перейменовано %s у %s\n"
+
+#: src/misc.c:580 src/misc.c:599
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Не вдається перейменувати на %s"
+
+#: src/misc.c:604
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "Перейменовано %s назад у %s\n"
+
+#: src/misc.c:851
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s: Файл було видалено перед тим як tar встиг його прочитати"
+
+#: src/misc.c:866
+#, c-format
+msgid "%s: Directory removed before we read it"
+msgstr "%s: Каталог було видалено перед тим як tar встиг його прочитати"
+
+#: src/misc.c:887
+msgid "child process"
+msgstr "процес-нащадок"
+
+#: src/misc.c:896
+msgid "interprocess channel"
+msgstr "канал між процесами"
+
+#: src/names.c:594
+msgid "Pattern matching characters used in file names"
+msgstr "Назви файлів містять символи-шаблони"
+
+#: src/names.c:596
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "Користайтеся опцією --wildcards аби увімкнути шаблони, або опцією --no-wildcards, щоб позбутися цього повідомлення"
+
+#: src/names.c:614 src/names.c:630
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Не знайдено в архіві"
+
+#: src/names.c:615
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s: Потрібну копію у архіві не знайдено"
+
+#: src/names.c:649
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Незгідність назви тому"
+
+#: src/names.c:953
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "Використання опції -C у переліку файлів разом з опцією --listed-incremental не дозволяється"
+
+#: src/names.c:959
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Невірний формат архіву"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "Формат архіву є несумісним з розширеними властивостями GNU"
+
+#: 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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"Приклади:\n"
+" tar -cf archive.tar foo bar # Створює archive.tar з файлів foo та bar.\n"
+" tar -tvf archive.tar # Виводить докладну інформацію про зміст\n"
+" # archive.tar\n"
+" tar -xf archive.tar # Витягує усі файли з archive.tar.\n"
+
+#: src/tar.c:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"Типовим суфіксом резервних копій є `~', його можна змінити за допомогою\n"
+"опції --suffix або змінної середовища SIMPLE_BACKUP_SUFFIX.\n"
+" \n"
+"Створення резервних копій вмикається через опцію --backup або змінну середовища VERSION_CONTROL. Можливі значення:\n"
+"\n"
+" t, numbered створювати резервні копії з номерами\n"
+" nil, existing створювати нумеровані копії, якщо такі вже існують,\n"
+" інакше - прості\n"
+" never, simple завжди створювати прості резервні копії\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "Режими роботи:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "вивести вміст архіву"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "витягнути файли з архіву"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "створити новий архів"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "порівняти файли в архіві з файлами у файлової системі"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "долучити файли до існуючого архіву"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "долучати тільки такі файли, що є новішими за їх копії в архіві"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "долучити архів до архіву"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "видалити файли з архіву (не на стрічці!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "перевірити мітку тому та вийти"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Модифікатори режиму роботи:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "заощаджувати простір під час зберігання розсіяних файлів"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "ГОЛОВНИЙ[.ДРУГОРЯДНИЙ]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "встановлює версію формату розсіяних файлів (вмикає --sparse)"
+
+# FIXME: incremental
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "обробка старого формату інкрементного архіву GNU"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "обробка нового формату інкрементного архіву GNU"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "рівень архівної копії для створення інкрементного архіву"
+
+# FIXME: хммм...
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "ігнорувати помилки читання файлів"
+
+#: src/tar.c:429
+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 "обробляти тільки вказане входження кожного файла в архіві. Ця опція є дійсною тільки разом з однією з опцій --delete, --diff, --extract, --list і з переліком файлів (у командному рядку або за допомогою опції -T). Типове ЧИСЛО: 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "архів підтримує операцію seek"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "архів не підтримує операцію seek"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "не перевіряти номери пристрою під час створювання інкрементних архівів"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "перевіряти номери пристрою під час створювання інкрементних архівів (типово)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "Керування перезаписом:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "перевірити архів після запису в нього"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "видаляти файли після додавання до архіву"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "не заміняти існуючи файли під час витягування"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "не заміняти існуючи файли що є новішими за їх копії у архіві"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "перезаписувати існуючі файли під час витягування"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "видаляти кожний файл перед витягуванням його копії"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "спорожняти старий каталог перед витягуванням його копії з архіву"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "зберігати мета-дані існуючих каталогів"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "перезаписувати метадані існуючих каталогів під час витягування (типово)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "Вибір вихідного потоку:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "витягувати файли у стандартний вивід"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "КОМАНДА"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "передавати витягнуті файли до стандартного вводу іншої програми"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "ігнорувати коди завершення процесів-нащадків"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "вважати ненульовий код завершення нащадка помилкою"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "Обробка атрибутів файлу:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "встановлення вказаного користувача власником доданих файлів"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "встановлення групи з вказаною назвою групою власника доданих файлів"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "ДАТА-АБО-ФАЙЛ"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "встановлення часу останньої зміни доданих файлів"
+
+# Ну, і чому це CHANGES??
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "ПРАВА"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "встановлення вказаних символічно прав доступу для доданих файлів"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "МЕТОД"
+
+#: src/tar.c:499
+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:503
+msgid "don't extract file modified time"
+msgstr "не витягувати час модифікації файлів"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "встановлювати власників файлів за даними з архіву (типово для супер-користувача)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "стати власником витягнутих файлів (типово для звичайного користувача)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "завжди використовувати числа замість назв власника/групи"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "встановлювати права доступу згідно з даними архіву (типово для супер-користувача)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "встановлювати права доступу згідно зі значенням umask (типово для звичайного користувача)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "витягувати файли у порядку їх з'явлення в архіві"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "те ж, що -p -s разом"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "затримати встановлення часу модифікації та прав доступу до каталогів до кінця витягування"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "відмінити дії опції --delay-directory-restore"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "Вибір та зміна пристрою:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "АРХІВ"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "використовувати вказаний файл або пристрій"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "файл архіву є локальним, навіть якщо його назва містить двокрапку"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "використовувати вказану команду замість rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "використовувати вказану команду замість rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "визначає пристрой та густину"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "створити, виводити зміст або витягувати файли з багатотомного архіву"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "змінити стрічку після запису ЧИСЛА x 1024 байтів"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "запускати сценарій наприкінці кожної стрічки (вмикає -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "використовувати/обновляти номер тому у ФАЙЛІ"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "Блокування пристрою:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "ЧИСЛО-БЛОКІВ"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "розмір запису ЧИСЛО-БЛОКІВ x 512 байтів"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "встановити розмір запису у блоках по 512 байтів"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "ігнорувати нульові блоки в архіві (звичайно вказують кінець файлу)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "розбивати на блоки під час читання (для каналів 4.2BSD)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "Вибір формату архіву:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "ФОРМАТ"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "створити архів у вказаному форматі"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "ФОРМАТ будь-який з наступних:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "старий формат V7"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "формат GNU, сумісний з версією tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "формат GNU, сумісний з версією tar 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "формат POSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "формат POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "те ж, що і pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "те ж, що і --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "те ж, що і --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "ключове_слово[[:]=значення][,ключове_слово[[:]=значення], ...]\""
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "керування ключовими словами pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "ТЕКСТ"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "створити архів з назвою тому \"ТЕКСТ\". Під час виводу змісту або витягування, використовувати ТЕКСТ як шаблон пошуку тому"
+
+#: src/tar.c:614
+msgid "Compression options:"
+msgstr "Опції стиснення:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "вибирати програму стиснення за суфіксом архіву"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "не використовувати суфікс для вибору програми стиснення"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "ПРОГРАМА"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "використовувати ПРОГРАМУ для стиснення/розтискання архіву"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "Вибір файлів:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "долучити ФАЙЛ до архіву (корисне, якщо його назва починається з -)"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "КАТАЛОГ"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "перейти до вказаного каталогу"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "читати назви файлів для додання/витягування з вказаного файла"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "файл, вказаний з опцією -T, містить назви, відокремлені нульовими символами. Ця опція вимикає -C"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "відмінити дію попередньої опції --null"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "усувати цитування з назв файлів прочитаних за допомогою -T (типово)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "не усувати цитування з назв файлів прочитаних за допомогою -T"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "ШАБЛОН"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "не обробляти файли, назви яких відповідають вказаному шаблону"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "виключити назви що відповідають шаблонам, вказаним у файлі"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "не архівувати файли в каталогах, що містять CACHEDIR.TAG, з винятком самого файлу"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "не архівувати жодні файли в каталогах, що містять CACHEDIR.TAG"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "не архівувати каталоги, що містять CACHEDIR.TAG"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "не архівувати файли в каталогах, що містять ФАЙЛ, з винятком самого файлу"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "не архівувати жодні файли в каталогах, що містять ФАЙЛ"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "не архівувати каталоги, що містять ФАЙЛ"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "не архівувати каталоги систем керування версіями"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "не архівувати резерві файли та файли блокування"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "не заходити автоматично у каталоги"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "залишатися у локальної файлової системі під час створення архіву"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "рекурсивно проходити каталоги (типово)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "не видаляти початкову косу риску `/' з назв файлів"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "Йти за символьними посиланнями: долучати файли, на яки вони вказують"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "Йти за жорсткими посиланнями: долучати файли, на яки вони вказують"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "НАЗВА-ФАЙЛУ"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "починати обслуговування архіву з вказаного файлу"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "долучати тільки такі файли, що є новіші за вказану дату або файл"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "ДАТА"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "порівнювати тільки дату і час зміни даних"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "РЕЖИМ"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "перед видаленням створювати резервні файли у вказаному режимі"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "РЯДОК"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "перед видаленням створювати резервні файли з указаним суфіксом (типово '~', якщо не перевизначено змінною середовища SIMPLE_BACKUP_SUFFIX)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "Перетворювання назв файлів:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "видаляти вказане ЧИСЛО компонентів з початку назв файлів"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "ВИРАЗ"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "перетворювати назви файлів за допомогою вказаного виразу заміни"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "Керування порівнюванням назв (впливає на взірці як вилучення, так і долучення):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "шаблони ігнорують відмінності у регістрі символів"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "порівнювати шаблони з назвами файлів починаючи від початку назви"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "порівнювати шаблони з назвами файлів починаючи від будь-якого / (типово)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "шаблони враховують регістр (типово)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "користатися шаблонами (типово для вилучення)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "порівнювати назви буквально"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "шаблони не стосуються до '/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "шаблони стосуються до '/' (типово)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Інформативний вивід:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "виводити докладну інформацію про оброблені файли"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "КЛ.-СЛОВО"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "керування попередженнями"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "виводити контрольне повідомлення кожне ЧИСЛО записів (типово 10)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ДІЯ"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "виконати вказану дію у контрольному пункті"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "виводити повідомлення якщо до архіву було додано не всі посилання"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "СИГНАЛ"
+
+#: src/tar.c:751
+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:756
+msgid "print file modification times in UTC"
+msgstr "друкувати час модифікації файлів у UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "друкувати час модифікації файлів у повній вирізняльної здатності"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "виводити детальну інформацію у ФАЙЛ"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "попереджувати кожне повідомлення номером блоку в архіві"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "Запитувати підтвердження кожної дії"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "вивести типові налаштування"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "під час виведення змісту або витягування файлів друкувати назви каталогів що не відповідають критеріям пошуку"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "показувати перетворені назви файлів"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "СТИЛЬ"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "встановити стиль цитування; дозволені стилі див. нижче"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "цитувати також вказані символи"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "вимкнути цитування вказаних символів"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "Опції сумісності:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "під час створення архіву, те ж саме, що і --old-archive. Під час витягування, те ж саме, що --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Інші опції:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "заборонити користування деякими потенційно небезпечними опціями"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "Не можна вказувати більш ніж одну з опцій `-Acdtrux' або `--test-label'"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "Опції стиснення конфліктують одна з другою"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Невідомий тип файла %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "Не знайдено файл-зразок дати"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "Використовується %s замість невідомого формату дати %s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "Опція %s: Дату `%s' сприйнято як %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: перелік файлів уже прочитано"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: прочитана назва файла містить нульовий символ"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "фільтрувати архів через %s"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "Допустимими аргументами опції --quoting-style є:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"Типові налаштування *цієї* копії програми:\n"
+
+#: src/tar.c:1402
+msgid "Invalid blocking factor"
+msgstr "Неправильний фактор блокування"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "Неправильна довжина стрічки"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "Недійсне значення для рівня архівації"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "Більш ніж одна гранична дата"
+
+#: src/tar.c:1630 src/tar.c:1633
+msgid "Invalid sparse version value"
+msgstr "Недійсна версія формату розсіяних файлів"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "опція --atime-preserve='system' не підтримується на цій платформі"
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "аргумент --checkpoint мусить бути цілим числом"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "Недійсна група"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "Невірний формат прав доступу"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "Невірне число"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "Невірний власник"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "Опція --preserve є застарілою, замість неї використовуйте --preserve-permissions --preserve-order"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "Невірний розмір запису"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "Розмір запису має ділитися на %d."
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "Невірна кількість елементів"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "Дозволяється лише одна опція --to-command"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Невірний аргумент вказання густини: `%s'"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Невідома густина: `%c'"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "Опції `-[0-7][lmh]' не підтримуються *цією* версією tar"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[ФАЙЛ]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "Стара опція `%c' потребує аргументу"
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "вказання --occurrence не має сенсу без вказання переліку файлів"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "опцію --occurrence не можна використовувати у зазначеному режимі роботи"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "Вказання декількох файлів потребує вказання опції `-M'"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Не можна використовувати --listed-incremental разом з --newer"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "Використання --level разом з --listed-incremental не має сенсу"
+
+#: src/tar.c:2423
+#, 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[2] "%s: Мітка тому є надто довга (обмеження в %lu байтів)"
+
+#: src/tar.c:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "Не можна перевіряти багатотомні архіви"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "Не можна перевіряти стиснені архіви"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Не можна використовувати стиснення багатотомних архівів"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "Не можна з'єднувати стиснені архіви"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "Опція --pax-option використовується тільки з архівами у форматі POSIX"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "Розмір тому не може бути більшим від розміру запису"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "Опція --preserve-order несумісна з --listed-incremental"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Полохливо відмовляюся створювати пустий архів"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "Опції `-Aru' несумісні з `-f -'"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "Необхідно вказати одну з опцій `-Acdtrux' або `--test-label'"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+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[2] "%s: Файл скоротився на %s байтів"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "Ключове слово %s не є відоме або ще не реалізоване"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "Значення позначки часу поза допустимими межами"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "Шаблон %s забороняється уживати"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "Не можна перевизначити ключове слово %s"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "Невірно сформований розширений заголовок: бракує довжини"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "Довжина розширеного заголовку є за межами діапазону"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "Довжина розширеного заголовку %*s є за межами діапазону"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "Невірно сформований розширений заголовок: відсутній пробіл після довжини"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "Невірно сформований розширений заголовок: відсутній знак рівняння"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "Невірно сформований розширений заголовок: відсутній знак нового рядка"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "Невідоме ключове слово `%s' іґнорується"
+
+#: src/xheader.c:831
+#, 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:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "Значення розширеного заголовку %s=%s лежить поза допустимими межами типу %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "Невірно сформований розширений заголовок: недійсна змінна %s=%s"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "Невірно сформований розширений заголовок: зайвий %s=%s"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "Невірно сформований розширений заголовок: змінна %s: неочікуваний розділювач %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "Невірно сформований розширений заголовок %s: непарна кількість значень"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: недійсний ліміт часу"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: незнана дія"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "запис"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Контрольна відмітка читання %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile - програма обробки файлів з набору перевірок пакету GNU paxutils\n"
+"Перелік опцій:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "Опції створювання файлів:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "РОЗМІР"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "Створити файл заданого розміру"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "Писати у вказаний файл, замість стандартного виводу"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "Читати назви файлів з вказаного файлу"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "файл, вказаний з опцією -T, містить назви, відокремлені нульовими символами"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "Взірець заповнення файла: 'default' (типовий) або 'zeros' (заповнення нулями)"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "Розмір блока розсіяного файла"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "Створити розсіяний файл. Решта аргументів дає мапу файла."
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "ЗСУВ"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "Перед записом даних перейти до вказаного зсуву в файлі"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "Статистика файлів:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "Виводити вміст структури stat для кожного файла. Типовий формат: "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "Синхронне виконання:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "ОПЦІЯ"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "Виконати вказану команду. Для використання з опціями --cut, --append, --touch або --unlink"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "Виконати вказану операцію (див. нижче) по досягненню контрольної відмітки"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "Встановлює дати для наступної опції --touch"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "Друкувати виконані операції і код завершення команди"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "Операції синхронного виконання. Виконуються по досягненню контрольної відмітки, вказаної опцією --checkpoint. "
+
+#: tests/genfile.c:181
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "Обрізати файл до розміру, вказаного попередньою опцією --length (до 0, якщо її не було вказано)"
+
+#: tests/genfile.c:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "Додати до файла кількість байтів, вказану попередньою опцією --length."
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "Поновити час доступу та модифікації файла"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "Виконати КОМАНДУ"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "Видалити файл"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "Невірний розмір: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "Число поза допустимими межами: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "Від'ємний розмір: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "збій виконання stat(%s)"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "замовлений розмір файлу %lu, справжній -- %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "створений файл не є розсіяним"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Помилка розбору числа біля `%s'"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "Невідомий формат дати"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[АРГУМЕНТИ...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "не вдається відкрити `%s'"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "не вдається виконати lseek"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "назва файла містить нульовий символ"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "неможливо створювати розсіяні файли на стандартному виводі; користайтеся опцією --file"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "недійсна маска (біля `%s')"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Невідоме поле `%s'"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "не вдається встановити час файла `%s'"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "не вдається видалити `%s'"
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "Команда завершилася успішно\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "Команда завершилася з кодом %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "Команда завершилася по сигналу %d\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "Команда зупинилася по сигналу %d\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Команда скинула відбиток пам'яті\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "Команда завершилася\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "опція --stat вимагає назв файлів"
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 00000000..b9ac83b3
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,2631 @@
+# Vietnamese translation for Tar.
+# 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-2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.23.90\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2010-07-11 22:57+0300\n"
+"PO-Revision-Date: 2010-10-03 18:13+1030\n"
+"Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
+"Language-Team: Vietnamese <vi-VN@googlegroups.com>\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"
+"X-Generator: LocFactoryEditor 1.8\n"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "tham số không thích hợp %s cho %s"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "tham số không rõ ràng %s cho %s"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "Các tham số đúng là:"
+
+#: 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"
+
+#: 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ị"
+
+#: 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"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: Tham số không rõ ARGP_HELP_FMT"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "Có rác trong ARGP_HELP_FMT: %s"
+
+#: gnu/argp-help.c:1246
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+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."
+
+#: gnu/argp-help.c:1639
+msgid "Usage:"
+msgstr "Sử dụng:"
+
+#: gnu/argp-help.c:1643
+msgid " or: "
+msgstr " hoặc: "
+
+#: gnu/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [TÙY CHỌN...]"
+
+#: 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"
+
+#: gnu/argp-help.c:1710
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "Báo cáo lỗi tới %s.\n"
+
+#: gnu/argp-help.c:1929 gnu/error.c:155
+msgid "Unknown system error"
+msgstr "Lỗi hệ thống không rõ"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "hiển thị trợ giúp này"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "hiển thị cách sử dụng ngắn gọn"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:131
+msgid "NAME"
+msgstr "TÊN"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "đặt tên chương trình"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "GIÂY"
+
+#: 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)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "In ra phiên bản chương trình"
+
+#: 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 !?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s: Quá nhiều đối số\n"
+
+#: 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 !?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "lỗi ghi"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: tùy chọn « %s » vẫn mơ hồ\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+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"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, 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 đối số\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: tùy chọn « --%s » yêu cầu một đối số\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: không nhận ra tuỳ chọn « --%s »\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: không nhận ra tuỳ chọn « %c%s »\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: tùy chọn sai -- « %c »\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: tùy chọn yêu cầu một đối số -- « %c »\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: tùy chọn « -W %s » vẫn mơ hồ\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+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"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: tùy chọn « -W %s » yêu cầu một đối số\n"
+
+#: gnu/obstack.c:425 gnu/obstack.c:427 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "cạn bộ nhớ"
+
+#: 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"
+
+#: 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:
+#. 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.
+#: gnu/quotearg.c:274
+msgid "`"
+msgstr "`"
+
+#: gnu/quotearg.c:275
+msgid "'"
+msgstr "'"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[cCyY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[kKnN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "Đóng gói bởi %s (%s)\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "©"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"Giấy phép GPL pb3+: Giấy phép Công cộng GNU phiên bản 3 và sau:\n"
+"<http://gnu.org/licenses/gpl.html>\n"
+"Đây là phần mềm tự do : bạn có quyền thay đổi và phát hành lại nó.\n"
+"KHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều kiện được pháp luật cho phép.\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: 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.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: gnu/version-etc.c:119
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:126
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:133
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s,\n"
+"%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.
+#: gnu/version-etc.c:141
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s,\n"
+"%s, %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.
+#: gnu/version-etc.c:149
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s,\n"
+"%s, %s, %s, %s\n"
+"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.
+#: gnu/version-etc.c:158
+#, c-format
+msgid ""
+"Written by %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, and %s.\n"
+msgstr ""
+"Tác giả: %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%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.
+#: 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 ""
+"Tác giả: %s, %s, %s,\n"
+"%s, %s, %s, %s,\n"
+"%s, %s và các người khác.\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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\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"
+
+#: gnu/version-etc.c:249
+#, c-format
+msgid "Report %s bugs to: %s\n"
+msgstr "Báo cáo lỗi %s nào cho: %s\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"
+
+#. 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"
+
+#: 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 "Không thể kết nối tới %s: lỗi giải quyết"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "Không thể chạy shell ở xa"
+
+#: 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: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:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 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:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: 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:696 rmt/rmt.c:764
+#, c-format
+msgid "cannot open %s"
+msgstr "không thể mở %s"
+
+#: 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:803
+msgid "Garbage command"
+msgstr "Câu lệnh rác"
+
+#: src/buffer.c:386 src/buffer.c:391 src/buffer.c:635 src/buffer.c:1250
+#: src/buffer.c:1296 src/buffer.c:1325 src/delete.c:211 src/list.c:170
+#: src/update.c:189
+msgid "This does not look like a tar archive"
+msgstr "Đây có vẻ không phải là một kho lưu tar"
+
+#: src/buffer.c:450 src/buffer.c:459
+msgid "Total bytes written"
+msgstr "Tổng số byte đã ghi"
+
+#: src/buffer.c:457 src/buffer.c:471
+msgid "Total bytes read"
+msgstr "Tổng số byte đã đọc"
+
+#: src/buffer.c:461
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "Tổng số byte đã xoá: %s\n"
+
+#: src/buffer.c:550
+msgid "(pipe)"
+msgstr "(đường ống)"
+
+#: src/buffer.c:573
+msgid "Invalid value for record_size"
+msgstr "Giá trị cho record_size không đúng"
+
+#: src/buffer.c:576
+msgid "No archive name given"
+msgstr "Không đưa ra tên kho lưu"
+
+#: src/buffer.c:618
+msgid "Cannot verify stdin/stdout archive"
+msgstr "Không kiểm tra được kho lưu stdin/stdout"
+
+#: src/buffer.c:632
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "Kho lưu được nén. Hãy sử dụng tùy chọn %s"
+
+#: src/buffer.c:689 src/tar.c:2440
+msgid "Cannot update compressed archives"
+msgstr "Không cập nhật được kho lưu đã nén"
+
+#: src/buffer.c:782
+msgid "At beginning of tape, quitting now"
+msgstr "Tại đầu băng ghi âm, thoát ra bây giờ"
+
+#: src/buffer.c:788
+msgid "Too many errors, quitting"
+msgstr "Quá nhiều lỗi, đang thoát"
+
+#: src/buffer.c:821
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "Kích cỡ mục ghi = %lu khối"
+
+#: src/buffer.c:842
+#, 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 kho lưu"
+
+#: src/buffer.c:919
+msgid "Cannot backspace archive file; it may be unreadable without -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:951
+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:1002
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s: chứa số thứ tự khối không đúng"
+
+#: src/buffer.c:1037
+msgid "Volume number overflow"
+msgstr "Số thứ tự khối thừa ra"
+
+#: src/buffer.c:1052
+#, 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:1058
+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:1063 src/buffer.c:1095
+msgid "WARNING: Archive is incomplete"
+msgstr "CẢNH BÁO: Kho lưu không hoàn thành"
+
+#: src/buffer.c:1077
+#, 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 TÊN Đưa ra tên tập tin mới cho (các) khối tin tiếp theo (và theo sau)\n"
+" 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:1082
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! Tạo một trình bao con\n"
+
+#: src/buffer.c:1083
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? In ra danh sách này\n"
+
+#: src/buffer.c:1090
+msgid "No new volume; exiting.\n"
+msgstr "Không có khối mới; đang thoát.\n"
+
+#: src/buffer.c:1123
+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:1136
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "Gõ sai. (Gỏ ? để xem trợ giúp.)\n"
+
+#: src/buffer.c:1187
+#, c-format
+msgid "%s command failed"
+msgstr "Câu lệnh %s không thành công"
+
+#: src/buffer.c:1368
+#, 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:1372
+#, 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:1386
+#, 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:1401
+#, 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:1479 src/buffer.c:1505
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "Kho lưu không có nhãn tương ứng với %s"
+
+#: src/buffer.c:1509
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "Khối %s không tương ứng %s"
+
+#: src/buffer.c:1603
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+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:1794
+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: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:105 src/compare.c:388
+msgid "Contents differ"
+msgstr "Diff nội dung"
+
+#: src/compare.c:131 src/extract.c:830 src/incremen.c:1462 src/list.c:383
+#: src/list.c:1373 src/xheader.c:710
+msgid "Unexpected EOF in archive"
+msgstr "Kết thúc tập tin không mong đợi trong kho lưu"
+
+#: 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:182 src/compare.c:202 src/compare.c:327
+msgid "Mode differs"
+msgstr "Diff chế độ"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Diff Uid"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Diff Gid"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "Diff thời gian sửa đổi"
+
+#: src/compare.c:215 src/compare.c:420
+msgid "Size differs"
+msgstr "Diff kích thước"
+
+#: src/compare.c:269
+#, c-format
+msgid "Not linked to %s"
+msgstr "Không liên kết tới %s"
+
+#: src/compare.c:292
+msgid "Symlink differs"
+msgstr "Diff liên kết mềm"
+
+#: src/compare.c:321
+msgid "Device number differs"
+msgstr "Diff số thứ tự của thiết bị"
+
+#: src/compare.c:461
+#, c-format
+msgid "Verify "
+msgstr "Kiểm tra "
+
+#: src/compare.c:468
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s: không rõ dạng tập tin '%c' nên khác biệt (diff) như tập tin thông thường"
+
+#: src/compare.c:523
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "Kho lưu chứa tên tập tin không có tiền tố ở đầu."
+
+#: src/compare.c:525
+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:598
+#, 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:616 src/list.c:147
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "Một khối không đơn lẻ tại %s"
+
+#: 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: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: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:339
+msgid "Generating negative octal headers"
+msgstr "Đang tạo phần đầu hệ tám âm"
+
+#: src/create.c:624 src/create.c:687
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s: tên tập tin quá dài (max %d); không được dump"
+
+#: src/create.c:634
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s: tên tập tin quá dài (không chia được); không được dump"
+
+#: src/create.c:661
+#, c-format
+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:1075
+#, 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:1169
+#, 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:1213 src/create.c:1224 src/incremen.c:590 src/incremen.c:596
+msgid "contents not dumped"
+msgstr "chưa đổ nội dung"
+
+#: src/create.c:1356
+#, 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:1466
+#, c-format
+msgid "Missing links to %s."
+msgstr "Thiếu liên kết tới %s."
+
+#: src/create.c:1537
+#, 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:1546
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: tập tin là kho lưu; không được đổ"
+
+#: src/create.c:1587 src/incremen.c:583
+msgid "directory not dumped"
+msgstr "chưa đổ thư mục"
+
+#: src/create.c:1657
+#, 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:1724
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: socket bị lờ đi"
+
+#: src/create.c:1730
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: cửa (door) bị lờ đi"
+
+#: src/delete.c:217 src/list.c:184 src/update.c:194
+msgid "Skipping to next header"
+msgstr "Nhảy tới phần đầu tiếp theo"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "Xóa không phải phần đầu từ kho lưu"
+
+#: 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: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: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: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: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:1058
+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:1215
+#, 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:1222 src/list.c:1106
+msgid "Unexpected long name header"
+msgstr "Phần đầu tên dài không mong đợi"
+
+#: src/extract.c:1229
+#, 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:1255
+#, 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:1306
+#, 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:1434
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "Không thể đổi tên %s thành %s"
+
+#: 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:494
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s: Đã đổi tên thư mục"
+
+#: src/incremen.c:539
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s: Thư mục là mới"
+
+#: src/incremen.c:956 src/incremen.c:973
+msgid "Invalid time stamp"
+msgstr "Tem thời gian không đúng"
+
+#: 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:1027
+msgid "Invalid modification time (nanoseconds)"
+msgstr "Thời gian sửa đổi không hợp lệ (nanô-giây)"
+
+#: src/incremen.c:1047
+msgid "Invalid device number"
+msgstr "Số thứ tự thiết bị không đúng"
+
+#: src/incremen.c:1062
+msgid "Invalid inode number"
+msgstr "Số thứ tự chỉ mục inode sai"
+
+#: 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: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: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: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:1264
+msgid "Missing record terminator"
+msgstr "Thiếu dấu giới hạn mục ghi"
+
+#: 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: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: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:1512
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "Thư mục đổ dạng sai: « X » đã nhân đôi"
+
+#: 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: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:1544
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "Thư mục đổ dạng sai: tên rỗng trong « T »"
+
+#: 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:1571
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "Thư mục đổ dạng sai: « X » không bao giờ dùng"
+
+#: 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: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: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:1698
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s: Đang xóa %s\n"
+
+#: src/incremen.c:1703
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s: Không thể xóa bỏ"
+
+#: src/list.c:116
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s: Đang bỏ đi"
+
+#: src/list.c:132
+#, 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:158
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "khối %s: ** Kết thúc tập tin **\n"
+
+#: src/list.c:181 src/list.c:1078 src/list.c:1341
+#, c-format
+msgid "block %s: "
+msgstr "khối %s: "
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:686
+#, 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:741
+#, 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 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:752
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "Giá trị hệ tám %.*s của kho lưu vượt ra phạm vi %s"
+
+#: src/list.c:773
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "Kho lưu chứa phần đầu base-64 không còn dùng nữa"
+
+#: src/list.c:787
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "Kho lưu ký chuỗi base-64 %s vượt ra ngoài vùng %s"
+
+#: src/list.c:818
+#, c-format
+msgid "Archive base-256 value is out of %s range"
+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:847
+#, c-format
+msgid "Archive contains %.*s where numeric %s value expected"
+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:869
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "Giá trị kho lưu %s vượt quá phạm vi %s (%s..%s)"
+
+#: src/list.c:1242
+#, c-format
+msgid " link to %s\n"
+msgstr " liên kết tới %s\n"
+
+#: src/list.c:1250
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " dạng tập tin không rõ %s\n"
+
+#: src/list.c:1268
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--Liên kết Dài--\n"
+
+#: src/list.c:1272
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--Tên Dài--\n"
+
+#: src/list.c:1276
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--Phần đầu Khối--\n"
+
+#: src/list.c:1284
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--Tiếp tục tại byte %s--\n"
+
+#: src/list.c:1346
+msgid "Creating directory:"
+msgstr "Đang tạo thư mục:"
+
+#: src/misc.c:594
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "Đang đổi tên %s thành %s\n"
+
+#: src/misc.c:603 src/misc.c:621
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s: Không thể đổi tên thành %s"
+
+#: src/misc.c:626
+#, 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:761
+msgid "Cannot save working directory"
+msgstr "Không thể ghi nhớ thư mục làm việc"
+
+#: src/misc.c:767
+msgid "Cannot change working directory"
+msgstr "Không thay đổi được thư mục làm việc"
+
+#: src/misc.c:851
+#, 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:866
+#, 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:887
+msgid "child process"
+msgstr "tiến trình con"
+
+#: src/misc.c:896
+msgid "interprocess channel"
+msgstr "kênh (channel) giữa các tiến trình"
+
+#: src/names.c:592
+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:594
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr ""
+"Dùng « --wildcards » (ký tự đặi diện) để hiệu lực chức năng khớp mẫu,\n"
+"hoặc « --no-wildcards » để thu hồi cảnh báo này."
+
+#: src/names.c:612 src/names.c:628
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s: Không tìm thấy trong kho lưu"
+
+#: src/names.c:613
+#, 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 kho lưu"
+
+#: src/names.c:647
+#, c-format
+msgid "Archive label mismatch"
+msgstr "Sai khớp nhãn kho lưu"
+
+#: src/names.c:921
+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:927
+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: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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s: Định dạng kho lưu không đúng"
+
+#: 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 kho lưu không tương thích"
+
+#: src/tar.c:250
+#, c-format
+msgid "Unknown quoting style `%s'. Try `%s --quoting-style=help' to get a list."
+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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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 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"
+" tar -tvf kho.tar # Liệt kê chi tiết tất cả các tập tin có trong 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:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"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 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:387
+msgid "Main operation mode:"
+msgstr "Chế độ thao tác chính:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "liệt kê nội dung của một kho lưu"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "giải phóng các tập tin từ một kho lưu"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "tạo một kho lưu mới"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "tìm sự khác nhau giữa kho lưu và hệ thống tập tin"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "thêm các tập tin vào cuối một kho lưu"
+
+#: src/tar.c:402
+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 kho lưu"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "thêm các tập tin tar vào một kho lưu"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "xóa từ kho lưu (không dùng trên các băng ghi âm mag!)"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "thử nhãn khối tin kho lưu rồi thoát"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "Từ khóa bổ nghĩa thao tác:"
+
+#: src/tar.c:417
+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:418
+msgid "MAJOR[.MINOR]"
+msgstr "CHÍNH[.PHỤ]"
+
+#: src/tar.c:419
+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:421
+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:423
+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:425
+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:427
+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:429
+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 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"
+" --extract \tgiải nén\n"
+" --list \t\tliệt kê\n"
+"và khi đưa ra một danh sách tập tin hoặc trên dòng lệnh hoặc qua tùy chọn « -T ».\n"
+"Mặc định SỐ có giá trị bằng 1."
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "có thể tìm nơi trong kho lưu"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "không thể tìm nơi trong kho lưu"
+
+#: src/tar.c:439
+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:442
+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:448
+msgid "Overwrite control:"
+msgstr "Điều khiển ghi đè:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "thử kiểm tra kho lưu sau khi ghi nó"
+
+#: src/tar.c:453
+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 kho lưu"
+
+#: src/tar.c:455
+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:457
+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 kho lưu"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "ghi đè lên những tập tin đã có khi giải phóng"
+
+#: src/tar.c:461
+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:463
+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:465
+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:467
+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:473
+msgid "Select output stream:"
+msgstr "Chọn luồng xuất:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "giải phóng tập tin ra đầu ra tiêu chuẩn"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:191
+msgid "COMMAND"
+msgstr "CÂU LỆNH"
+
+#: src/tar.c:478
+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:480
+msgid "ignore exit codes of children"
+msgstr "bỏ qua mã thoát của tiến trình con"
+
+#: src/tar.c:482
+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:487
+msgid "Handling of file attributes:"
+msgstr "Điều khiển thuộc tính tập tin:"
+
+#: src/tar.c:490
+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:492
+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:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "NGÀY-CỦA-TẬP-TIN"
+
+#: src/tar.c:494
+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:495
+msgid "CHANGES"
+msgstr "THAY ĐỔI"
+
+#: src/tar.c:496
+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:498
+msgid "METHOD"
+msgstr "PHƯƠNG PHÁP"
+
+#: src/tar.c:499
+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 "bảo tồn các thời gian truy cập của tập tin đã đổ, hoặc bằng cách phục hồi 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:503
+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:505
+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:507
+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:509
+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:511
+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:515
+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 (mặc định cho người dùng bình thường)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "sắp xếp tên để giải phóng tới kho lưu tương ứng"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "giống như khi có hai tùy chọn -p và -s"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+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:525
+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:530
+msgid "Device selection and switching:"
+msgstr "Lựa chọn và chuyển đổi thiết bị:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "LƯU TRỮ"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "sử dụng tập tin kho lưu hoặc thiết bị LƯU TRỮ"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+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:537
+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:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "sử dụng CÂU LỆNH từ xa thay cho rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "chỉ ra ổ và mật độ ghi dữ liệu"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "tạo/liệt kê/giải phóng kho lưu nhiều khối"
+
+#: src/tar.c:559
+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:561
+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:564
+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:569
+msgid "Device blocking:"
+msgstr "Khối của thiết bị:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "KHỐI"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "KHỐI X 512 byte cho mỗi bản ghi"
+
+#: src/tar.c:574
+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:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "lờ đi những khối không (zero) trong kho lưu (có nghĩa EOF)"
+
+#: src/tar.c:578
+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:583
+msgid "Archive format selection:"
+msgstr "Lựa chọn định dạng kho lưu:"
+
+#: src/tar.c:585 tests/genfile.c:154
+msgid "FORMAT"
+msgstr "ĐỊNH DẠNG"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "tạo lưư trữ với định dạng đưa ra"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "ĐỊNH DẠNG là một trong số sau:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "định dạng tar V7 cũ"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "định dạng GNU theo như tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "định dạng tar GNU 1.13.x"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "định dạng PoSIX 1003.1-1988 (ustar)"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "định dạng POSIX 1003.1-2001 (pax)"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "bằng pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "giống như --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "giống như --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "từ_khoá[[:]=giá_trị][,từ_khoá[[:]=giá_trị]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "từ khóa điều khiển pax"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "VĂN BẢN"
+
+#: src/tar.c:609
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "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:614
+msgid "Compression options:"
+msgstr "Tùy chọn nén:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "dùng hậu tố kho lưu để xác định chương trình nén"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+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:620
+msgid "PROG"
+msgstr "TRÌNH"
+
+#: src/tar.c:621
+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:637
+msgid "Local file selection:"
+msgstr "Lựa chọn tập tin nội bộ:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "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:641
+msgid "DIR"
+msgstr "THƯ MỤC"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "thay đổi tới thư mục THƯ MỤC"
+
+#: src/tar.c:644
+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:646
+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:648
+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:650
+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:652
+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:653 tests/genfile.c:137
+msgid "PATTERN"
+msgstr "MẪU"
+
+#: src/tar.c:654
+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:656
+msgid "exclude patterns listed in FILE"
+msgstr "loại trừ những mẫu liệt kê trong TẬP TIN"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+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:661
+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:664
+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:666
+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:669
+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:671
+msgid "exclude directories containing FILE"
+msgstr "loại trữ thư mục chứa TẬP TIN"
+
+#: src/tar.c:673
+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:675
+msgid "exclude backup and lock files"
+msgstr "loại trừ tập tin kiểu sao lưu và khoá"
+
+#: src/tar.c:677
+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:679
+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 kho lưu"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "đệ quy vào các thư mục (mặc định)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "đừng bỏ `/' ở đầu tên tập tin"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "theo liên kết tượng trưng; kho lưu và đổ tập tin tới đó nó chỉ"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "theo liên kết cứng; kho lưu và đổ tập tin tới đó nó chỉ"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "TÊN-THÀNH-VIÊN"
+
+#: src/tar.c:689
+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 kho lưu"
+
+#: src/tar.c:691
+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:693
+msgid "DATE"
+msgstr "NGÀY"
+
+#: src/tar.c:694
+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:695
+msgid "CONTROL"
+msgstr "ĐIỀU KHIỂN"
+
+#: src/tar.c:696
+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:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:170
+msgid "STRING"
+msgstr "CHUỖI"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+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:703
+msgid "File name transformations:"
+msgstr "Chuyển dạng tên tập tin:"
+
+#: src/tar.c:705
+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:707
+msgid "EXPRESSION"
+msgstr "BIỂU THỨC"
+
+#: src/tar.c:708
+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:714
+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:717
+msgid "ignore case"
+msgstr "không phân biệt chữ hoa/thường"
+
+#: src/tar.c:719
+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:721
+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:723
+msgid "case sensitive matching (default)"
+msgstr "khớp có phân biệt chữ hoa/ thường (mặc định)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "dùng ký tự đại diện (mặc định để loại trừ)"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "khớp chuỗi nghĩa chữ"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "ký tự đại diện không tương ứng '/'"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "ký tự đại diện tương ứng '/' (mặc định để loại trừ)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "Dữ liệu kết quả có tính thông tin:"
+
+#: src/tar.c:739
+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:740
+msgid "KEYWORD"
+msgstr "TỪ_KHOÁ"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "điều khiển cảnh báo"
+
+#: src/tar.c:743
+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:745
+msgid "ACTION"
+msgstr "HÀNH_ĐỘNG"
+
+#: src/tar.c:746
+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:749
+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:750
+msgid "SIGNAL"
+msgstr "TÍN HIỆU"
+
+#: src/tar.c:751
+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ố 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:756
+msgid "print file modification times in UTC"
+msgstr "in ra giờ sửa đổi tập tin theo UTC"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "in ra giờ tập tin đến độ phân giải đầy đủ"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "gửi kết quả chi tiết tới TẬP TIN"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "hiên thị số thứ tự khối trong kho lưu với mỗi thông báo"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "hỏi xác nhận trước mỗi hành động"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "hiển thị các giá trị mặc định của tar"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+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:771
+msgid "show file or archive names after transformation"
+msgstr "hiển thị các tên tập tin hay kho lưu sau khi chuyển dạng"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "KIỂU DÁNG"
+
+#: src/tar.c:775
+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:777
+msgid "additionally quote characters from STRING"
+msgstr "cũng trích dẫn các ký tự của CHUỖI"
+
+#: src/tar.c:779
+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:784
+msgid "Compatibility options:"
+msgstr "Tùy chọn tương thích:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr ""
+"khi tạo, giống như « --old-archive »\n"
+"khi giải phóng, giống như « --no-same-owner »"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "Những tùy chọn khác:"
+
+#: src/tar.c:795
+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:930
+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:940
+msgid "Conflicting compression options"
+msgstr "Mâu thuẫn giữa các tùy chọn nén"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "Không rõ tên tín hiệu : %s"
+
+#: src/tar.c:1020
+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:1028
+#, 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:1057
+#, 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:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: danh sách tập tin đã được đọc"
+
+#: src/tar.c:1201
+#, 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:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "lọc kho lưu qua %s"
+
+#: src/tar.c:1296
+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:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"tar *này* mặc định tới:\n"
+
+#: src/tar.c:1400
+msgid "Invalid blocking factor"
+msgstr "Nhân tố khối không đúng"
+
+#: src/tar.c:1511
+msgid "Invalid tape length"
+msgstr "Chiều dài băng ghi âm không đúng"
+
+#: src/tar.c:1522
+msgid "Invalid incremental level value"
+msgstr "Sai đặt giá trị cấp tăng dần"
+
+#: src/tar.c:1568
+msgid "More than one threshold date"
+msgstr "Có nhiều ngày bắt đầu"
+
+#: src/tar.c:1623 src/tar.c:1626
+msgid "Invalid sparse version value"
+msgstr "Giá trị phiên bản sparse không hợp lệ"
+
+#: src/tar.c:1711
+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:1736
+msgid "--checkpoint value is not an integer"
+msgstr "giá trị « --checkpoint » không phải số nguyên"
+
+#: src/tar.c:1841
+msgid "Invalid group"
+msgstr "Nhóm không đúng"
+
+#: src/tar.c:1848
+msgid "Invalid mode given on option"
+msgstr "Đưa ra chế độ không đúng trên tùy chọn"
+
+#: src/tar.c:1905
+msgid "Invalid number"
+msgstr "Số không đúng"
+
+#: src/tar.c:1927
+msgid "Invalid owner"
+msgstr "Chủ sở hữu không đúng"
+
+#: src/tar.c:1957
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+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:1967
+msgid "Invalid record size"
+msgstr "Kích thước bản ghi không đúng"
+
+#: src/tar.c:1970
+#, 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:2011
+msgid "Invalid number of elements"
+msgstr "Số thứ tự của nguyên tố không đúng"
+
+#: src/tar.c:2031
+msgid "Only one --to-command option allowed"
+msgstr "Cho phép chỉ một tùy chọn « --to-command »"
+
+#: src/tar.c:2111
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "Tham số mật độ dạng sai: %s"
+
+#: src/tar.c:2137
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "Mật độ không rõ : « %c »"
+
+#: src/tar.c:2154
+#, 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:2167
+msgid "[FILE]..."
+msgstr "[TẬP TIN]..."
+
+#: src/tar.c:2285
+#, 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:2366
+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:2372
+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:2390
+msgid "Multiple archive files require `-M' option"
+msgstr "Tập tin nhiều kho lưu yêu cầu tùy chọn `-M'"
+
+#: src/tar.c:2395
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "Không thể kết hợp --listed-incremental với --newer"
+
+#: src/tar.c:2398
+msgid "--level is meaningless without --listed-incremental"
+msgstr "Tùy chọn « --level » vô ích mà không có « --listed-incremental »"
+
+#: src/tar.c:2415
+#, 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:2428
+msgid "Cannot verify multi-volume archives"
+msgstr "Không thể kiểm tra kho lưu nhiều khối"
+
+#: src/tar.c:2430
+msgid "Cannot verify compressed archives"
+msgstr "Không thể kiểm tra kho lưu đã nén"
+
+#: src/tar.c:2436
+msgid "Cannot use multi-volume compressed archives"
+msgstr "Không thể sử dụng kho lưu nhiều khối đã nén"
+
+#: src/tar.c:2442
+msgid "Cannot concatenate compressed archives"
+msgstr "Không thể ghép nối các kho nén"
+
+#: src/tar.c:2454
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option chỉ dùng được trên kho lưu POSIX"
+
+#: src/tar.c:2472
+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:2475
+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:2486
+msgid "Cowardly refusing to create an empty archive"
+msgstr "Từ chối tạo một kho lưu trống rỗng"
+
+#: src/tar.c:2512
+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:2601
+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:2655
+#, 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"
+
+#: src/update.c:86
+#, c-format
+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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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: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ẻ"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: không phải quá hạn hợp lệ"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: không rõ hành động điểm kiểm"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "ghi"
+
+#: src/checkpoint.c:132
+msgid "read"
+msgstr "đọc"
+
+#. 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
+#, c-format
+msgid "Write checkpoint %u"
+msgstr "Điểm kiểm tra ghi %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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "Điểm kiểm tra đọc %u"
+
+#: tests/genfile.c:112
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+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:128
+msgid "File creation options:"
+msgstr "Tùy chọn tạo tập tin:"
+
+#: tests/genfile.c:129 tests/genfile.c:140
+msgid "SIZE"
+msgstr "KÍCH CỠ"
+
+#: 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: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:134
+msgid "Read file names from FILE"
+msgstr "Đọc các tên tập tin từ TẬP TIN"
+
+#: 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: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: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: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:145
+msgid "OFFSET"
+msgstr "HIỆU SỐ"
+
+#: 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:152
+msgid "File statistics options:"
+msgstr "Tùy chọn thống kê tập tin:"
+
+#: 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:162
+msgid "Synchronous execution options:"
+msgstr "Tùy chọn thực hiện đồng thời:"
+
+#: tests/genfile.c:164
+msgid "OPTION"
+msgstr "TÙY_CHỌN"
+
+#: tests/genfile.c:165
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr ""
+"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ờ\n"
+" • --unlink\tbỏ liên kết"
+
+#: 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: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: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:179
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+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:182
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+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: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: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:192
+msgid "Execute COMMAND"
+msgstr "Thực hiện LỆNH"
+
+#: 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: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:253
+#, c-format
+msgid "Negative size: %s"
+msgstr "Kích cỡ âm: %s"
+
+#: tests/genfile.c:266 tests/genfile.c:568
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) bị lỗi"
+
+#: 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: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:362
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "Lỗi phân tích số gần « %s »"
+
+#: tests/genfile.c:368
+#, c-format
+msgid "Unknown date format"
+msgstr "Không rõ định dạng ngày tháng"
+
+#: tests/genfile.c:392
+msgid "[ARGS...]"
+msgstr "[ĐỐI SỐ...]"
+
+#: 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:435
+msgid "cannot seek"
+msgstr "không thể tìm nơi"
+
+#: 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: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:595
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "mặt nạ không đúng (gần « %s »)"
+
+#: tests/genfile.c:601 tests/genfile.c:634
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "Không rõ trường « %s »"
+
+#: 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: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: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: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: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:837
+#, c-format
+msgid "Command dumped core\n"
+msgstr "Lệnh đã đổ lõi\n"
+
+#: tests/genfile.c:840
+#, c-format
+msgid "Command terminated\n"
+msgstr "Lệnh đã chấm dứt\n"
+
+#: tests/genfile.c:872
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat yêu cầu tên tập tin"
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 00000000..c77197f8
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,3044 @@
+# Chinese (simplified) translation for tar.
+# Copyright (C) 2008 Free Software Foundation, Inc.
+# 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, 2009, 2010, 2011.
+#
+#: src/create.c:1552
+msgid ""
+msgstr ""
+"Project-Id-Version: tar 1.26\n"
+"Report-Msgid-Bugs-To: bug-tar@gnu.org\n"
+"POT-Creation-Date: 2011-03-12 11:53+0200\n"
+"PO-Revision-Date: 2011-04-28 20:42+0800\n"
+"Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
+"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\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"
+
+#: gnu/argmatch.c:135
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "%2$s 的参数 %1$s 无效"
+
+#: gnu/argmatch.c:136
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "%2$s 的参数 %1$s 具有歧义"
+
+#: gnu/argmatch.c:155
+#, c-format
+msgid "Valid arguments are:"
+msgstr "有效的参数为:"
+
+#: 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"
+
+#: gnu/argp-help.c:222
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT 参数需要一个值"
+
+#: gnu/argp-help.c:228
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT 参数值必须为正"
+
+#: gnu/argp-help.c:237
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: 未知的 ARGP_HELP_FMT 参数"
+
+#: gnu/argp-help.c:249
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "ARGP_HELP_FMT 中的参数错误: %s"
+
+#: gnu/argp-help.c:1248
+msgid "Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options."
+msgstr "长选项和相应短选项具有相同的强制参数或可选参数。"
+
+#: gnu/argp-help.c:1641
+msgid "Usage:"
+msgstr "用法:"
+
+#: gnu/argp-help.c:1645
+msgid " or: "
+msgstr " 或: "
+
+#: gnu/argp-help.c:1657
+msgid " [OPTION...]"
+msgstr " [选项...]"
+
+#: gnu/argp-help.c:1684
+#, c-format
+msgid "Try `%s --help' or `%s --usage' for more information.\n"
+msgstr "请用“%s --help”或“%s --usage”获得更多信息。\n"
+
+#: gnu/argp-help.c:1712
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "将错误报告发送到 %s。\n"
+
+#: gnu/argp-help.c:1931 gnu/error.c:183
+msgid "Unknown system error"
+msgstr "未知的系统错误"
+
+#: gnu/argp-parse.c:83
+msgid "give this help list"
+msgstr "显示此帮助列表"
+
+#: gnu/argp-parse.c:84
+msgid "give a short usage message"
+msgstr "显示简短的用法说明"
+
+#: gnu/argp-parse.c:85 src/tar.c:489 src/tar.c:491 src/tar.c:560
+#: tests/genfile.c:130
+msgid "NAME"
+msgstr "名称"
+
+#: gnu/argp-parse.c:85
+msgid "set the program name"
+msgstr "设置程序名"
+
+#: gnu/argp-parse.c:86
+msgid "SECS"
+msgstr "秒"
+
+#: gnu/argp-parse.c:87
+msgid "hang for SECS seconds (default 3600)"
+msgstr "挂起 SECS 秒(默认 3600)"
+
+#: gnu/argp-parse.c:144
+msgid "print program version"
+msgstr "打印程序版本"
+
+#: gnu/argp-parse.c:160
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(程序错误)未知版本!?"
+
+#: gnu/argp-parse.c:613
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s:参数太多\n"
+
+#: gnu/argp-parse.c:756
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(程序错误)选项可否被识别!?"
+
+#: gnu/closeout.c:114
+msgid "write error"
+msgstr "写错误"
+
+#: gnu/getopt.c:529 gnu/getopt.c:545
+#, c-format
+msgid "%s: option '%s' is ambiguous\n"
+msgstr "%s: 选项\"%s\"具有歧义\n"
+
+#: gnu/getopt.c:578 gnu/getopt.c:582
+#, c-format
+msgid "%s: option '--%s' doesn't allow an argument\n"
+msgstr "%s: 选项\"--%s\"不需要参数\n"
+
+#: gnu/getopt.c:591 gnu/getopt.c:596
+#, c-format
+msgid "%s: option '%c%s' doesn't allow an argument\n"
+msgstr "%s: 选项\"%c%s\"不需要参数\n"
+
+#: gnu/getopt.c:639 gnu/getopt.c:658
+#, c-format
+msgid "%s: option '--%s' requires an argument\n"
+msgstr "%s: 选项\"%s\"需要带参数\n"
+
+#: gnu/getopt.c:696 gnu/getopt.c:699
+#, c-format
+msgid "%s: unrecognized option '--%s'\n"
+msgstr "%s: 无法识别的选项\"--%s\"\n"
+
+#: gnu/getopt.c:707 gnu/getopt.c:710
+#, c-format
+msgid "%s: unrecognized option '%c%s'\n"
+msgstr "%s: 无法识别的选项\"%c%s\"\n"
+
+#: gnu/getopt.c:759 gnu/getopt.c:762
+#, c-format
+msgid "%s: invalid option -- '%c'\n"
+msgstr "%s: 无效选项 -- \"%c\"\n"
+
+#: gnu/getopt.c:812 gnu/getopt.c:829 gnu/getopt.c:1037 gnu/getopt.c:1055
+#, c-format
+msgid "%s: option requires an argument -- '%c'\n"
+msgstr "%s: 选项需要参数 -- \"%c\"\n"
+
+#: gnu/getopt.c:885 gnu/getopt.c:901
+#, c-format
+msgid "%s: option '-W %s' is ambiguous\n"
+msgstr "%s: 选项\"-W %s\"具有歧义\n"
+
+#: gnu/getopt.c:925 gnu/getopt.c:943
+#, c-format
+msgid "%s: option '-W %s' doesn't allow an argument\n"
+msgstr "%s: 选项\"-W %s\"不要参数\n"
+
+#: gnu/getopt.c:964 gnu/getopt.c:982
+#, c-format
+msgid "%s: option '-W %s' requires an argument\n"
+msgstr "%s: 选项\"%s\"需要带参数\n"
+
+#: gnu/obstack.c:423 gnu/obstack.c:425 gnu/xalloc-die.c:36
+msgid "memory exhausted"
+msgstr "内存耗尽"
+
+#: gnu/openat-die.c:40
+#, c-format
+msgid "unable to record current working directory"
+msgstr "无法记录当前工作目录"
+
+#: gnu/openat-die.c:59
+#, c-format
+msgid "failed to return to initial working directory"
+msgstr "无法回到起始的工作目录"
+
+#. 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.
+#: gnu/quotearg.c:273
+msgid "`"
+msgstr "“"
+
+#: gnu/quotearg.c:274
+msgid "'"
+msgstr "”"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^yesexpr='
+#: gnu/rpmatch.c:149
+msgid "^[yY]"
+msgstr "^[yY]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. To enquire the regular expression that your system uses for this
+#. purpose, you can use the command
+#. locale -k LC_MESSAGES | grep '^noexpr='
+#: gnu/rpmatch.c:162
+msgid "^[nN]"
+msgstr "^[nN]"
+
+#: gnu/version-etc.c:76
+#, c-format
+msgid "Packaged by %s (%s)\n"
+msgstr "由 %s (%s) 打包\n"
+
+#: gnu/version-etc.c:79
+#, c-format
+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.
+#: gnu/version-etc.c:86
+msgid "(C)"
+msgstr "(C)"
+
+#: gnu/version-etc.c:88
+msgid ""
+"\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"
+msgstr ""
+"\n"
+"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>\n"
+"这是自由软件:您可以自由地更改并重新发布它。\n"
+"在法律所允许的范围内不含任何担保。\n"
+"\n"
+
+#. TRANSLATORS: %s denotes an author name.
+#: gnu/version-etc.c:104
+#, c-format
+msgid "Written by %s.\n"
+msgstr "由 %s 所写。\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: 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.
+#: gnu/version-etc.c:112
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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.
+#: 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).
+#: gnu/version-etc.c:247
+#, c-format
+msgid ""
+"\n"
+"Report bugs to: %s\n"
+msgstr ""
+"\n"
+"将错误报告发送到: %s。翻译错误报告给 <i18n-zh@googlegroups.com>\n"
+
+#: gnu/version-etc.c:249
+#, c-format
+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"
+
+#: 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"
+
+#: 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:140
+#, c-format
+msgid "Removing leading `%s' from member names"
+msgstr "从成员名中删除开头的“%s”"
+
+#: lib/paxnames.c:141
+#, c-format
+msgid "Removing leading `%s' from hard link targets"
+msgstr "从硬连接目标中删除开头的“%s”"
+
+#: lib/paxnames.c:154
+msgid "Substituting `.' for empty member name"
+msgstr "为空成员名替换“.”"
+
+#: lib/paxnames.c:155
+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: 解析失败"
+
+#: lib/rtapelib.c:515
+#, c-format
+msgid "Cannot execute remote shell"
+msgstr "无法执行远程 shell"
+
+#: rmt/rmt.c:432
+msgid "Seek direction out of range"
+msgstr "查寻方向超出范围"
+
+#: rmt/rmt.c:438
+msgid "Invalid seek direction"
+msgstr "无效的查寻方向"
+
+#: rmt/rmt.c:446
+msgid "Invalid seek offset"
+msgstr "无效的查寻偏移量"
+
+#: rmt/rmt.c:452
+msgid "Seek offset out of range"
+msgstr "查寻操作的偏移量超出范围"
+
+#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608
+msgid "Invalid byte count"
+msgstr "无效的字节数"
+
+#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625
+msgid "Byte count out of range"
+msgstr "字节数超出范围"
+
+#: rmt/rmt.c:558
+msgid "Premature eof"
+msgstr "文件结尾出现过早"
+
+#: rmt/rmt.c:601
+msgid "Invalid operation code"
+msgstr "无效操作模式"
+
+#: rmt/rmt.c:636 rmt/rmt.c:680
+msgid "Operation not supported"
+msgstr "不支持的操作"
+
+#: rmt/rmt.c:664
+msgid "Unexpected arguments"
+msgstr "参数异常"
+
+#: rmt/rmt.c:689
+msgid "Manipulate a tape drive, accepting commands from a remote process"
+msgstr "接受远程程序的命令操作磁带机"
+
+#: rmt/rmt.c:696 src/tar.c:424 src/tar.c:428 src/tar.c:558 src/tar.c:573
+#: src/tar.c:704 src/tar.c:742 tests/genfile.c:166
+msgid "NUMBER"
+msgstr "NUMBER"
+
+#: rmt/rmt.c:697
+msgid "set debug level"
+msgstr "设定调试级别"
+
+#: rmt/rmt.c:698 src/tar.c:422 src/tar.c:563 src/tar.c:639 src/tar.c:643
+#: src/tar.c:655 src/tar.c:665 src/tar.c:668 src/tar.c:670 src/tar.c:759
+#: tests/genfile.c:132 tests/genfile.c:180 tests/genfile.c:184
+#: tests/genfile.c:187 tests/genfile.c:193
+msgid "FILE"
+msgstr "FILE"
+
+#: rmt/rmt.c:699
+msgid "set debug output file name"
+msgstr "设定调试输出文件名"
+
+#: rmt/rmt.c:715 rmt/rmt.c:783
+#, c-format
+msgid "cannot open %s"
+msgstr "无法打开 %s"
+
+#: rmt/rmt.c:780 tests/genfile.c:884 tests/genfile.c:901
+#, c-format
+msgid "too many arguments"
+msgstr "参数过多"
+
+#: rmt/rmt.c:822
+msgid "Garbage command"
+msgstr "垃圾命令"
+
+#: src/buffer.c:457 src/buffer.c:462 src/buffer.c:706 src/buffer.c:1321
+#: src/buffer.c:1367 src/buffer.c:1396 src/delete.c:211 src/list.c:245
+#: src/update.c:200
+msgid "This does not look like a tar archive"
+msgstr "它似乎不像是一个 tar 归档文件"
+
+#: src/buffer.c:521 src/buffer.c:530
+msgid "Total bytes written"
+msgstr "总计写入字节数"
+
+#: src/buffer.c:528 src/buffer.c:542
+msgid "Total bytes read"
+msgstr "总计读取字节数"
+
+#: src/buffer.c:532
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "总计删除字节数:%s\n"
+
+#: src/buffer.c:621
+msgid "(pipe)"
+msgstr "(管道)"
+
+#: src/buffer.c:644
+msgid "Invalid value for record_size"
+msgstr "record_size 的无效值"
+
+#: src/buffer.c:647
+msgid "No archive name given"
+msgstr "未给出归档文件名"
+
+#: src/buffer.c:689
+msgid "Cannot verify stdin/stdout archive"
+msgstr "无法验证标准输入/标准输出归档文件"
+
+#: src/buffer.c:703
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "归档被压缩。使用 %s 选项"
+
+#: src/buffer.c:760 src/tar.c:2448
+msgid "Cannot update compressed archives"
+msgstr "无法更新压缩归档文件"
+
+#: src/buffer.c:853
+msgid "At beginning of tape, quitting now"
+msgstr "处于磁带的起点,现在退出"
+
+#: src/buffer.c:859
+msgid "Too many errors, quitting"
+msgstr "错误过多,退出"
+
+#: src/buffer.c:892
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "记录大小 = %lu 块"
+
+#: src/buffer.c:913
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "归档中未对齐的块 (%lu 字节)s"
+
+#: src/buffer.c:990
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "无法倒回归档文件;如果没有 -i 可能无法读入它"
+
+#: src/buffer.c:1022
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek 未停在记录边界处"
+
+#: src/buffer.c:1073
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s:包含无效的卷编号"
+
+#: src/buffer.c:1108
+msgid "Volume number overflow"
+msgstr "卷编号溢出"
+
+#: src/buffer.c:1123
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "为 %2$s 准备卷 #%1$d 并按回车:"
+
+#: src/buffer.c:1129
+msgid "EOF where user reply was expected"
+msgstr "需得到用户应答时文件结束"
+
+#: src/buffer.c:1134 src/buffer.c:1166
+msgid "WARNING: Archive is incomplete"
+msgstr "警告:归档文件不完整"
+
+#: src/buffer.c:1148
+#, 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]\t给下一卷(及以后的卷)取一个新文件名\n"
+" q\t\t终止 tar\n"
+" y or newline\t继续操作\n"
+
+#: src/buffer.c:1153
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! 衍生出一个子 shell\n"
+
+#: src/buffer.c:1154
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? 打印此列表\n"
+
+#: src/buffer.c:1161
+msgid "No new volume; exiting.\n"
+msgstr "没有新的卷;退出。\n"
+
+#: src/buffer.c:1194
+msgid "File name not specified. Try again.\n"
+msgstr "未指定文件名。重试。\n"
+
+#: src/buffer.c:1207
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "无效输入。输入 ? 显示帮助。\n"
+
+#: src/buffer.c:1258
+#, c-format
+msgid "%s command failed"
+msgstr "%s 命令失败"
+
+#: src/buffer.c:1439
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s 在本卷可能连续: 头部包含截短的名字"
+
+#: src/buffer.c:1443
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s 在本卷中不连续"
+
+#: src/buffer.c:1457
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s 的大小错误 (%s != %s + %s)"
+
+#: src/buffer.c:1472
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "此卷次序有误(%s - %s != %s)"
+
+#: src/buffer.c:1550 src/buffer.c:1576
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "归档未被标记为匹配 %s"
+
+#: src/buffer.c:1580
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "卷标 %s 不匹配 %s"
+
+#: src/buffer.c:1674
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s: 文件名太长而无法贮存在 GNU 多卷头,已被截短"
+
+#: src/buffer.c:1865
+msgid "write did not end on a block boundary"
+msgstr "写操作未在记录边界处终止"
+
+#: 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:105 src/compare.c:383
+msgid "Contents differ"
+msgstr "内容不同"
+
+#: src/compare.c:131 src/extract.c:984 src/incremen.c:1456 src/list.c:456
+#: src/list.c:1388 src/xheader.c:711
+msgid "Unexpected EOF in archive"
+msgstr "归档文件中异常的 EOF"
+
+#: src/compare.c:179 src/compare.c:195 src/compare.c:309 src/compare.c:407
+msgid "File type differs"
+msgstr "文件类型不同"
+
+#: src/compare.c:182 src/compare.c:202 src/compare.c:323
+msgid "Mode differs"
+msgstr "访问模式不同"
+
+#: src/compare.c:205
+msgid "Uid differs"
+msgstr "Uid 不同"
+
+#: src/compare.c:207
+msgid "Gid differs"
+msgstr "Gid 不同"
+
+#: src/compare.c:211
+msgid "Mod time differs"
+msgstr "修改时间不同"
+
+#: src/compare.c:215 src/compare.c:415
+msgid "Size differs"
+msgstr "大小不同"
+
+#: src/compare.c:264
+#, c-format
+msgid "Not linked to %s"
+msgstr "没有连接到 %s"
+
+#: src/compare.c:288
+msgid "Symlink differs"
+msgstr "符号连接不同"
+
+#: src/compare.c:317
+msgid "Device number differs"
+msgstr "设备号不同"
+
+#: src/compare.c:457
+#, c-format
+msgid "Verify "
+msgstr "校验"
+
+#: src/compare.c:464
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s:未知的文件类型“%c”,与普通文件不同"
+
+#: src/compare.c:520
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "归档包含带有被移除前导字符的文件名。"
+
+#: src/compare.c:526
+msgid "Archive contains transformed file names."
+msgstr "归档中有文件被改名。"
+
+#: src/compare.c:531
+msgid "Verification may fail to locate original files."
+msgstr "位于原始文件中的验证可能失败。"
+
+#: src/compare.c:603
+#, c-format
+msgid "VERIFY FAILURE: %d invalid header detected"
+msgid_plural "VERIFY FAILURE: %d invalid headers detected"
+msgstr[0] "校验失败:检测到 %d 个无效的头"
+
+#: src/compare.c:621 src/list.c:222
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "在 %s 处一个单独的零块"
+
+#: src/create.c:72
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s: 包含一个缓存目录标识 %s;%s"
+
+#: src/create.c:261
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "值 %s 超出了 %s 的范围 %s..%s;正在替换 %s"
+
+#: src/create.c:267
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "值 %s 超出了 %s 的范围 %s..%s"
+
+#: src/create.c:327
+msgid "Generating negative octal headers"
+msgstr "正在生成负八进制头"
+
+#: src/create.c:612 src/create.c:675
+#, c-format
+msgid "%s: file name is too long (max %d); not dumped"
+msgstr "%s:文件名太长(最长 %d);未输出"
+
+#: src/create.c:622
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s:文件名太长(不能被分割);未输出"
+
+#: src/create.c:649
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s:连接名太长;未输出"
+
+#: src/create.c:1064
+#, 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:1160
+#, c-format
+msgid "%s: file is on a different filesystem; not dumped"
+msgstr "%s:文件在不同的文件系统上;未输出"
+
+#: src/create.c:1203 src/create.c:1214 src/incremen.c:578 src/incremen.c:584
+msgid "contents not dumped"
+msgstr "未输出内容"
+
+#: src/create.c:1418
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s:未知的文件类型;忽略文件"
+
+#: src/create.c:1529
+#, c-format
+msgid "Missing links to %s."
+msgstr "缺少到 %s 的连接。"
+
+#: src/create.c:1690
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s: 文件未改变;未输出"
+
+#: src/create.c:1699
+#, c-format
+msgid "%s: file is the archive; not dumped"
+msgstr "%s: 文件是归档文件;未输出"
+
+#: src/create.c:1723 src/incremen.c:571
+msgid "directory not dumped"
+msgstr "未输出目录"
+
+#: src/create.c:1795
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s: 在我们读入文件时文件发生了变化"
+
+#: src/create.c:1858
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s: 忽略套接字(socket)"
+
+#: src/create.c:1864
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s: 忽略权限"
+
+#: src/delete.c:217 src/list.c:259 src/update.c:205
+msgid "Skipping to next header"
+msgstr "跳转到下一个头"
+
+#: src/delete.c:283
+msgid "Deleting non-header from archive"
+msgstr "从归档文件中删除非头信息"
+
+#: src/extract.c:277
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s:不可信的旧时间戳 %s"
+
+#: src/extract.c:295
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s:时间戳 %s 是未来的 %s 秒之后"
+
+#: src/extract.c:475
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s:创建目录时出现意外的不一致"
+
+#: src/extract.c:721
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s:目录名在状态信息被获取之前改变了"
+
+#: src/extract.c:875
+msgid "Extracting contiguous files as regular files"
+msgstr "展开紧邻的文件为普通文件"
+
+#: src/extract.c:1209
+msgid "Attempting extraction of symbolic links as hard links"
+msgstr "正试图将符号连接展开为硬连接"
+
+#: src/extract.c:1365
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s:无法展开 -- 文件一直延伸至另一卷中"
+
+#: src/extract.c:1372 src/list.c:1121
+msgid "Unexpected long name header"
+msgstr "异常的长名字头部"
+
+#: src/extract.c:1379
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s:未知的文件类型“%c”,作为普通文件展开"
+
+#: src/extract.c:1405
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "当前的“%s”更新或一样新"
+
+#: src/extract.c:1457
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s:无法备份该文件"
+
+#: src/extract.c:1594
+#, c-format
+msgid "Cannot rename %s to %s"
+msgstr "无法将 %s 重命名为 %s"
+
+#: src/incremen.c:473 src/incremen.c:517
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s:目录已改名,不再是 %s"
+
+#: src/incremen.c:485
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s:目录已被改名"
+
+#: src/incremen.c:530
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s:目录是新的"
+
+#: src/incremen.c:951 src/incremen.c:968
+msgid "Invalid time stamp"
+msgstr "无效的时间戳"
+
+#: src/incremen.c:1007
+msgid "Invalid modification time (seconds)"
+msgstr "无效的修改时间(秒)"
+
+#: src/incremen.c:1022
+msgid "Invalid modification time (nanoseconds)"
+msgstr "无效的修改时间(纳秒)"
+
+#: src/incremen.c:1042
+msgid "Invalid device number"
+msgstr "无效的设备号"
+
+#: src/incremen.c:1057
+msgid "Invalid inode number"
+msgstr "无效的 inode 号"
+
+#: src/incremen.c:1108 src/incremen.c:1145
+msgid "Field too long while reading snapshot file"
+msgstr "读取目录文件时字段太长"
+
+#: src/incremen.c:1115 src/incremen.c:1153
+msgid "Read error in snapshot file"
+msgstr "目录文件读取错误"
+
+#: src/incremen.c:1117 src/incremen.c:1157 src/incremen.c:1209
+#: src/incremen.c:1267
+msgid "Unexpected EOF in snapshot file"
+msgstr "目录文件中异常的文件结尾(EOF)"
+
+#: src/incremen.c:1124 src/incremen.c:1164
+msgid "Unexpected field value in snapshot file"
+msgstr "目录文件中异常的字段值"
+
+#: src/incremen.c:1259
+msgid "Missing record terminator"
+msgstr "缺少记录终止符"
+
+#: src/incremen.c:1320 src/incremen.c:1323
+msgid "Bad incremental file format"
+msgstr "文件格式错误增量"
+
+#: src/incremen.c:1342
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "不支持增量格式版本: %<PRIuMAX>"
+
+#: src/incremen.c:1496
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "错误的 dumpdir: 需要“%c”但实际为 %#3o"
+
+#: src/incremen.c:1506
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "错误的 dumpdir: 重复的“X”"
+
+#: src/incremen.c:1519
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "错误的 dumpdir: “R”中有空名字"
+
+#: src/incremen.c:1532
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "错误的 dumpdir: “R”后未紧接着用“T”"
+
+#: src/incremen.c:1538
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "错误的 dumpdir: “T”中有空名字"
+
+#: src/incremen.c:1558
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "错误的 dumpdir: 需要“%c”但实际为数据结尾"
+
+#: src/incremen.c:1565
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "错误的 dumpdir: 从未用过“X”"
+
+#: src/incremen.c:1609
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "无法通过模板 %s 创建临时目录"
+
+#: src/incremen.c:1670
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s:未清除目录:无法 stat"
+
+#: src/incremen.c:1683
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s: 目录在不同的设备上: 未清除"
+
+#: src/incremen.c:1691
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s:正在删除 %s\n"
+
+#: src/incremen.c:1696
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s:无法删除"
+
+#: src/list.c:190
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s:忽略"
+
+#: src/list.c:207
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "块 %s:** 空块 **\n"
+
+#: src/list.c:233
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "块 %s:** 文件结束 **\n"
+
+#: src/list.c:256 src/list.c:1093 src/list.c:1356
+#, c-format
+msgid "block %s: "
+msgstr "块 %s:"
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t,
+#. etc.)
+#: src/list.c:708
+#, 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:763
+#, 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:774
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "归档八进制值 %.*s 超出 %s 的范围"
+
+#: src/list.c:795
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "归档包含过时的 base-64 头"
+
+#: src/list.c:809
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "归档签署的 base-64 字符串 %s 超出范围 %s"
+
+#: src/list.c:840
+#, 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:869
+#, 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:891
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "归档值 %s 超出 %s 的范围 %s..%s"
+
+#: src/list.c:1257
+#, c-format
+msgid " link to %s\n"
+msgstr " 连接到 %s\n"
+
+#: src/list.c:1265
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " 未知的文件类型 %s\n"
+
+#: src/list.c:1283
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--长连接--\n"
+
+#: src/list.c:1287
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--长名--\n"
+
+#: src/list.c:1291
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--卷头--\n"
+
+#: src/list.c:1299
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--从 %s 字节继续--\n"
+
+#: src/list.c:1361
+msgid "Creating directory:"
+msgstr "正在创建目录:"
+
+#: src/misc.c:297
+msgid "Cannot get working directory"
+msgstr "无法获取工作目录"
+
+#: src/misc.c:570
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "将 %s 改名为 %s\n"
+
+#: src/misc.c:579 src/misc.c:598
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s:无法重命名为 %s"
+
+#: src/misc.c:603
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "将 %s 的名字改回 %s\n"
+
+#: src/misc.c:850
+#, c-format
+msgid "%s: File removed before we read it"
+msgstr "%s:文件在我们读入之前被删除了"
+
+#: src/misc.c:871
+msgid "child process"
+msgstr "子进程"
+
+#: src/misc.c:880
+msgid "interprocess channel"
+msgstr "进程内通道"
+
+#: src/names.c:590
+msgid "Pattern matching characters used in file names"
+msgstr "文件名中所使用的字符匹配模式"
+
+#: src/names.c:592
+msgid "Use --wildcards to enable pattern matching, or --no-wildcards to suppress this warning"
+msgstr "使用 --wildcards 打开模式匹配,或是 --no-wildcards 来关闭之"
+
+#: src/names.c:610 src/names.c:626
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s:归档中找不到"
+
+#: src/names.c:611
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s:没有在归档中找到需要的"
+
+#: src/names.c:645
+#, c-format
+msgid "Archive label mismatch"
+msgstr "归档卷标不匹配"
+
+#: src/names.c:949
+msgid "Using -C option inside file list is not allowed with --listed-incremental"
+msgstr "在文件列表中 -C 选项与 --listed-incremental 选项不许合用"
+
+#: src/names.c:955
+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:158
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s:无效的归档格式"
+
+#: src/tar.c:182
+msgid "GNU features wanted on incompatible archive format"
+msgstr "在不兼容的归档格式上需要 GNU 特征"
+
+#: 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:348
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"示例\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:357
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"除非以 --suffix 或 SIMPLE_BACKUP_SUFFIX 设置备份后缀,否则备份后缀就是“~”。\n"
+"可以用 --backup 或 VERSION_CONTROL 设置版本控制,可能的值为:\n"
+"\n"
+" none, off\t 从不做备份\n"
+" t, numbered 进行编号备份\n"
+" nil, existing 如果编号备份存在则进行编号备份,否则进行简单备份\n"
+" never, simple 总是使用简单备份\n"
+
+#: src/tar.c:387
+msgid "Main operation mode:"
+msgstr "主操作模式:"
+
+#: src/tar.c:390
+msgid "list the contents of an archive"
+msgstr "列出归档内容"
+
+#: src/tar.c:392
+msgid "extract files from an archive"
+msgstr "从归档中解出文件"
+
+#: src/tar.c:395
+msgid "create a new archive"
+msgstr "创建一个新归档"
+
+#: src/tar.c:397
+msgid "find differences between archive and file system"
+msgstr "找出归档和文件系统的差异"
+
+#: src/tar.c:400
+msgid "append files to the end of an archive"
+msgstr "追加文件至归档结尾"
+
+#: src/tar.c:402
+msgid "only append files newer than copy in archive"
+msgstr "仅追加比归档中副本更新的文件"
+
+#: src/tar.c:404
+msgid "append tar files to an archive"
+msgstr "追加 tar 文件至归档"
+
+#: src/tar.c:407
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "从归档(非磁带!)中删除"
+
+#: src/tar.c:409
+msgid "test the archive volume label and exit"
+msgstr "测试归档卷标并退出"
+
+#: src/tar.c:414
+msgid "Operation modifiers:"
+msgstr "操作修饰符:"
+
+#: src/tar.c:417
+msgid "handle sparse files efficiently"
+msgstr "高效处理离散文件"
+
+#: src/tar.c:418
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:419
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "设置所用的离散格式版本(隐含 --sparse)"
+
+#: src/tar.c:421
+msgid "handle old GNU-format incremental backup"
+msgstr "处理老式的 GNU 格式的增量备份"
+
+#: src/tar.c:423
+msgid "handle new GNU-format incremental backup"
+msgstr "处理新式的 GNU 格式的增量备份"
+
+#: src/tar.c:425
+msgid "dump level for created listed-incremental archive"
+msgstr "所创建的增量列表归档的输出级别"
+
+#: src/tar.c:427
+msgid "do not exit with nonzero on unreadable files"
+msgstr "当遇上不可读文件时不要以非零值退出"
+
+#: src/tar.c:429
+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 "仅处理归档中每个文件的第 NUMBER 个事件;仅当与以下子命令 --delete, --diff, --extract 或是 --list 中的一个联合使用时,此选项才有效。而且不管文件列表是以命令行形式给出或是通过 -T 选项指定的;NUMBER 值默认为 1"
+
+#: src/tar.c:435
+msgid "archive is seekable"
+msgstr "归档可检索"
+
+#: src/tar.c:437
+msgid "archive is not seekable"
+msgstr "归档不可检索"
+
+#: src/tar.c:439
+msgid "do not check device numbers when creating incremental archives"
+msgstr "当创建增量归档时不要检查设备号"
+
+#: src/tar.c:442
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "当创建增量归档时检查设备号(默认)"
+
+#: src/tar.c:448
+msgid "Overwrite control:"
+msgstr "重写控制:"
+
+#: src/tar.c:451
+msgid "attempt to verify the archive after writing it"
+msgstr "在写入以后尝试校验归档"
+
+#: src/tar.c:453
+msgid "remove files after adding them to the archive"
+msgstr "在添加文件至归档后删除它们"
+
+#: src/tar.c:455
+msgid "don't replace existing files when extracting"
+msgstr "解压时不要替换存在的文件"
+
+#: src/tar.c:457
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "不要替换比归档中副本更新的已存在的文件"
+
+#: src/tar.c:459
+msgid "overwrite existing files when extracting"
+msgstr "解压时重写存在的文件"
+
+#: src/tar.c:461
+msgid "remove each file prior to extracting over it"
+msgstr "在解压要重写的文件之前先删除它们"
+
+#: src/tar.c:463
+msgid "empty hierarchies prior to extracting directory"
+msgstr "解压目录之前先清除目录层次"
+
+#: src/tar.c:465
+msgid "preserve metadata of existing directories"
+msgstr "保留已存在目录的元数据"
+
+#: src/tar.c:467
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "解压时重写已存在目录的元数据(默认)"
+
+#: src/tar.c:473
+msgid "Select output stream:"
+msgstr "选择输出流:"
+
+#: src/tar.c:476
+msgid "extract files to standard output"
+msgstr "解压文件至标准输出"
+
+#: src/tar.c:477 src/tar.c:536 src/tar.c:538 tests/genfile.c:190
+msgid "COMMAND"
+msgstr "COMMAND"
+
+#: src/tar.c:478
+msgid "pipe extracted files to another program"
+msgstr "将解压的文件通过管道传送至另一个程序"
+
+#: src/tar.c:480
+msgid "ignore exit codes of children"
+msgstr "忽略子进程的退出代码"
+
+#: src/tar.c:482
+msgid "treat non-zero exit codes of children as error"
+msgstr "将子进程的非零退出代码认为发生错误"
+
+#: src/tar.c:487
+msgid "Handling of file attributes:"
+msgstr "操作文件属性:"
+
+#: src/tar.c:490
+msgid "force NAME as owner for added files"
+msgstr "强制将 NAME 作为所添加的文件的所有者"
+
+#: src/tar.c:492
+msgid "force NAME as group for added files"
+msgstr "强制将 NAME 作为所添加的文件的组所有者"
+
+#: src/tar.c:493 src/tar.c:690
+msgid "DATE-OR-FILE"
+msgstr "DATE-OR-FILE"
+
+#: src/tar.c:494
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "从 DATE-OR-FILE 中为添加的文件设置 mtime"
+
+#: src/tar.c:495
+msgid "CHANGES"
+msgstr "CHANGES"
+
+#: src/tar.c:496
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "强制将所添加的文件(符号)更改为权限 CHANGES"
+
+#: src/tar.c:498
+msgid "METHOD"
+msgstr "METHOD"
+
+#: src/tar.c:499
+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 "在输出的文件上保留访问时间,要么通过在读取(默认 METHOD=‘replace’)后还原时间,要不就不要在第一次(METHOD=‘system’)设置时间"
+
+#: src/tar.c:503
+msgid "don't extract file modified time"
+msgstr "不要解压文件的修改时间"
+
+#: src/tar.c:505
+msgid "try extracting files with the same ownership as exists in the archive (default for superuser)"
+msgstr "尝试解压时保持所有者关系一致(超级用户默认此项)"
+
+#: src/tar.c:507
+msgid "extract files as yourself (default for ordinary users)"
+msgstr "将文件解压为您所有(普通用户默认此项)"
+
+#: src/tar.c:509
+msgid "always use numbers for user/group names"
+msgstr "总是以数字代表用户/组的名称"
+
+#: src/tar.c:511
+msgid "extract information about file permissions (default for superuser)"
+msgstr "解压文件权限信息(默认只为超级用户服务)"
+
+#: src/tar.c:515
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "从归档中解压权限时使用用户的掩码位(默认为普通用户服务)"
+
+#: src/tar.c:517
+msgid "sort names to extract to match archive"
+msgstr "为解压至匹配归档排序名称"
+
+#: src/tar.c:520
+msgid "same as both -p and -s"
+msgstr "与 -p 和 -s 一样"
+
+#: src/tar.c:522
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "直到解压结束才设置修改时间和所解目录的权限"
+
+#: src/tar.c:525
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "取消 --delay-directory-restore 选项的效果"
+
+#: src/tar.c:530
+msgid "Device selection and switching:"
+msgstr "设备选择和切换:"
+
+#: src/tar.c:532
+msgid "ARCHIVE"
+msgstr "ARCHIVE"
+
+#: src/tar.c:533
+msgid "use archive file or device ARCHIVE"
+msgstr "使用归档文件或 ARCHIVE 设备"
+
+#: src/tar.c:535
+msgid "archive file is local even if it has a colon"
+msgstr "即使归档文件存在副本还是把它认为是本地归档"
+
+#: src/tar.c:537
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "使用指定的 rmt COMMAND 代替 rmt"
+
+#: src/tar.c:539
+msgid "use remote COMMAND instead of rsh"
+msgstr "使用远程 COMMAND 代替 rsh"
+
+#: src/tar.c:543
+msgid "specify drive and density"
+msgstr "指定驱动器和压缩率"
+
+#: src/tar.c:557
+msgid "create/list/extract multi-volume archive"
+msgstr "创建/列出/解压多卷归档文件"
+
+#: src/tar.c:559
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "写入 NUMBER × 1024 字节后更换磁带"
+
+#: src/tar.c:561
+msgid "run script at end of each tape (implies -M)"
+msgstr "在每卷磁带最后运行脚本(隐含 -M)"
+
+#: src/tar.c:564
+msgid "use/update the volume number in FILE"
+msgstr "使用/更新 FILE 中的卷数"
+
+#: src/tar.c:569
+msgid "Device blocking:"
+msgstr "设备分块:"
+
+#: src/tar.c:571
+msgid "BLOCKS"
+msgstr "BLOCKS"
+
+#: src/tar.c:572
+msgid "BLOCKS x 512 bytes per record"
+msgstr "每个记录 BLOCKS x 512 字节"
+
+#: src/tar.c:574
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "每个记录的字节数 NUMBER,乘以 512"
+
+#: src/tar.c:576
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "忽略归档中的零字节块(即文件结尾)"
+
+#: src/tar.c:578
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "读取时重新分块(只对 4.2BSD 管道有效)"
+
+#: src/tar.c:583
+msgid "Archive format selection:"
+msgstr "选择归档格式:"
+
+#: src/tar.c:585 tests/genfile.c:153
+msgid "FORMAT"
+msgstr "FORMAT"
+
+#: src/tar.c:586
+msgid "create archive of the given format"
+msgstr "创建指定格式的归档"
+
+#: src/tar.c:588
+msgid "FORMAT is one of the following:"
+msgstr "FORMAT 是以下格式中的一种:"
+
+#: src/tar.c:589
+msgid "old V7 tar format"
+msgstr "old V7 tar 格式"
+
+#: src/tar.c:592
+msgid "GNU format as per tar <= 1.12"
+msgstr "GNU 格式 as per tar <= 1.12"
+
+#: src/tar.c:594
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x 格式"
+
+#: src/tar.c:596
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) 格式"
+
+#: src/tar.c:598
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) 格式"
+
+#: src/tar.c:599
+msgid "same as pax"
+msgstr "等同于 pax"
+
+#: src/tar.c:602
+msgid "same as --format=v7"
+msgstr "等同于 --format=v7"
+
+#: src/tar.c:605
+msgid "same as --format=posix"
+msgstr "等同于 --format=posix"
+
+#: src/tar.c:606
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "关键字[[:]=值][,关键字[[:]=值]]..."
+
+#: src/tar.c:607
+msgid "control pax keywords"
+msgstr "控制 pax 关键字"
+
+#: src/tar.c:608
+msgid "TEXT"
+msgstr "TEXT"
+
+#: src/tar.c:609
+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:614
+msgid "Compression options:"
+msgstr "压缩选项:"
+
+#: src/tar.c:616
+msgid "use archive suffix to determine the compression program"
+msgstr "使用归档后缀名来决定压缩程序"
+
+#: src/tar.c:618
+msgid "do not use archive suffix to determine the compression program"
+msgstr "不使用归档后缀名来决定压缩程序"
+
+#: src/tar.c:620
+msgid "PROG"
+msgstr "PROG"
+
+#: src/tar.c:621
+msgid "filter through PROG (must accept -d)"
+msgstr "通过 PROG 过滤(必须是能接受 -d 选项的程序)"
+
+#: src/tar.c:637
+msgid "Local file selection:"
+msgstr "本地文件选择:"
+
+#: src/tar.c:640
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "添加指定的 FILE 至归档(如果名字以 - 开始会很有用的)"
+
+#: src/tar.c:641
+msgid "DIR"
+msgstr "DIR"
+
+#: src/tar.c:642
+msgid "change to directory DIR"
+msgstr "改变至目录 DIR"
+
+#: src/tar.c:644
+msgid "get names to extract or create from FILE"
+msgstr "从 FILE 中获取文件名来解压或创建文件"
+
+#: src/tar.c:646
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T 读取以空终止的名字,-C 禁用"
+
+#: src/tar.c:648
+msgid "disable the effect of the previous --null option"
+msgstr "禁用上一次的效果 --null 选项"
+
+#: src/tar.c:650
+msgid "unquote filenames read with -T (default)"
+msgstr "以 -T 读取的文件名作为引用结束(默认)"
+
+#: src/tar.c:652
+msgid "do not unquote filenames read with -T"
+msgstr "不以 -T 读取的文件名作为引用结束"
+
+#: src/tar.c:653 tests/genfile.c:136
+msgid "PATTERN"
+msgstr "PATTERN"
+
+#: src/tar.c:654
+msgid "exclude files, given as a PATTERN"
+msgstr "排除以 PATTERN 指定的文件"
+
+#: src/tar.c:656
+msgid "exclude patterns listed in FILE"
+msgstr "排除 FILE 中列出的模式串"
+
+#: src/tar.c:658
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "除标识文件本身外,排除包含 CACHEDIR.TAG 的目录中的内容"
+
+#: src/tar.c:661
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "排除包含 CACHEDIR.TAG 的目录中所有内容"
+
+#: src/tar.c:664
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "排除包含 CACHEDIR.TAG 的目录"
+
+#: src/tar.c:666
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "除 FILE 自身外,排除包含 FILE 的目录中的内容"
+
+#: src/tar.c:669
+msgid "exclude everything under directories containing FILE"
+msgstr "排除包含 FILE 的目录中的所有内容"
+
+#: src/tar.c:671
+msgid "exclude directories containing FILE"
+msgstr "排除包含 FILE 的目录"
+
+#: src/tar.c:673
+msgid "exclude version control system directories"
+msgstr "排除版本控制系统目录"
+
+#: src/tar.c:675
+msgid "exclude backup and lock files"
+msgstr "排除备份和锁文件"
+
+#: src/tar.c:677
+msgid "avoid descending automatically in directories"
+msgstr "避免目录中的自动降级"
+
+#: src/tar.c:679
+msgid "stay in local file system when creating archive"
+msgstr "创建归档时保存在本地文件系统中"
+
+#: src/tar.c:681
+msgid "recurse into directories (default)"
+msgstr "目录递归(默认)"
+
+#: src/tar.c:683
+msgid "don't strip leading `/'s from file names"
+msgstr "不要从文件名中清除引导符‘/’"
+
+#: src/tar.c:685
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "跟踪符号链接;将它们所指向的文件归档并输出"
+
+#: src/tar.c:687
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "跟踪硬链接;将它们所指向的文件归档并输出"
+
+#: src/tar.c:688
+msgid "MEMBER-NAME"
+msgstr "MEMBER-NAME"
+
+#: src/tar.c:689
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "从归档中的 MEMBER-NAME 成员处开始"
+
+#: src/tar.c:691
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "只保存比 DATE-OR-FILE 更新的文件"
+
+#: src/tar.c:693
+msgid "DATE"
+msgstr "DATE"
+
+#: src/tar.c:694
+msgid "compare date and time when data changed only"
+msgstr "当只有数据改变时比较数据和时间"
+
+#: src/tar.c:695
+msgid "CONTROL"
+msgstr "CONTROL"
+
+#: src/tar.c:696
+msgid "backup before removal, choose version CONTROL"
+msgstr "在删除前备份,选择 CONTROL 版本"
+
+#: src/tar.c:697 src/tar.c:776 src/tar.c:778 tests/genfile.c:169
+msgid "STRING"
+msgstr "STRING"
+
+#: src/tar.c:698
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "在删除前备份,除非被环境变量 SIMPLE_BACKUP_SUFFIX 覆盖,否则覆盖常用后缀(‘’)"
+
+#: src/tar.c:703
+msgid "File name transformations:"
+msgstr "文件名变换:"
+
+#: src/tar.c:705
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "解压时从文件名中清除 NUMBER 个引导部分"
+
+#: src/tar.c:707
+msgid "EXPRESSION"
+msgstr "EXPRESSION"
+
+#: src/tar.c:708
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "使用 sed 代替 EXPRESSION 来进行文件名变换"
+
+#: src/tar.c:714
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "文件名匹配选项(同时影响排除和包括模式串):"
+
+#: src/tar.c:717
+msgid "ignore case"
+msgstr "忽略大小写"
+
+#: src/tar.c:719
+msgid "patterns match file name start"
+msgstr "模式串匹配文件名头部"
+
+#: src/tar.c:721
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "模式串匹配任意‘/’后字符(默认对 exclusion 有效)"
+
+#: src/tar.c:723
+msgid "case sensitive matching (default)"
+msgstr "匹配大小写(默认)"
+
+#: src/tar.c:725
+msgid "use wildcards (default for exclusion)"
+msgstr "使用通配符(默认对 exclusion )"
+
+#: src/tar.c:727
+msgid "verbatim string matching"
+msgstr "逐字匹配字符串"
+
+#: src/tar.c:729
+msgid "wildcards do not match `/'"
+msgstr "通配符不匹配‘/’"
+
+#: src/tar.c:731
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "通配符匹配‘/’(默认对排除操作有效)"
+
+#: src/tar.c:736
+msgid "Informative output:"
+msgstr "提示性输出:"
+
+#: src/tar.c:739
+msgid "verbosely list files processed"
+msgstr "详细地列出处理的文件"
+
+#: src/tar.c:740
+msgid "KEYWORD"
+msgstr "KEYWORD"
+
+#: src/tar.c:741
+msgid "warning control"
+msgstr "警告控制:"
+
+#: src/tar.c:743
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "每隔 NUMBER 个记录显示进度信息(默认为 10 个)"
+
+#: src/tar.c:745
+msgid "ACTION"
+msgstr "ACTION"
+
+#: src/tar.c:746
+msgid "execute ACTION on each checkpoint"
+msgstr "在每个检查点上执行 ACTION"
+
+#: src/tar.c:749
+msgid "print a message if not all links are dumped"
+msgstr "只要不是所有链接都被输出就打印信息"
+
+#: src/tar.c:750
+msgid "SIGNAL"
+msgstr "SIGNAL"
+
+#: src/tar.c:751
+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 "处理归档后打印出总字节数;当此 SIGNAL 被触发时带参数 - 打印总字节数;允许的信号为: SIGHUP,SIGQUIT,SIGINT,SIGUSR1 和 SIGUSR2;同时也接受不带 SIG 前缀的信号名称"
+
+#: src/tar.c:756
+msgid "print file modification times in UTC"
+msgstr "以 UTC 格式打印文件修改时间"
+
+#: src/tar.c:758
+msgid "print file time to its full resolution"
+msgstr "按文件原本时间格式打印"
+
+#: src/tar.c:760
+msgid "send verbose output to FILE"
+msgstr "将详细输出发送至 FILE"
+
+#: src/tar.c:762
+msgid "show block number within archive with each message"
+msgstr "每个信息都显示归档内的块数"
+
+#: src/tar.c:764
+msgid "ask for confirmation for every action"
+msgstr "每次操作都要求确认"
+
+#: src/tar.c:767
+msgid "show tar defaults"
+msgstr "显示 tar 默认选项"
+
+#: src/tar.c:769
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "列表或解压时,列出每个不匹配查找标准的目录"
+
+#: src/tar.c:771
+msgid "show file or archive names after transformation"
+msgstr "显示变换后的文件名或归档名"
+
+#: src/tar.c:774
+msgid "STYLE"
+msgstr "STYLE"
+
+#: src/tar.c:775
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "设置名称引用风格;有效的 STYLE 值请参阅以下说明"
+
+#: src/tar.c:777
+msgid "additionally quote characters from STRING"
+msgstr "来自 STRING 的额外的引用字符"
+
+#: src/tar.c:779
+msgid "disable quoting for characters from STRING"
+msgstr "禁用来自 STRING 的字符引用"
+
+#: src/tar.c:784
+msgid "Compatibility options:"
+msgstr "兼容性选项:"
+
+#: src/tar.c:787
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "创建归档时,相当于 --old-archive;展开归档时,相当于 --no-same-owner"
+
+#: src/tar.c:792
+msgid "Other options:"
+msgstr "其它选项:"
+
+#: src/tar.c:795
+msgid "disable use of some potentially harmful options"
+msgstr "禁用某些潜在的有危险的选项"
+
+#: src/tar.c:930
+msgid "You may not specify more than one `-Acdtrux' or `--test-label' option"
+msgstr "您不能指定超过一个\"-Acdtrux\"或是\"--test-label\"外的选项"
+
+#: src/tar.c:940
+msgid "Conflicting compression options"
+msgstr "压缩选项冲突"
+
+#: src/tar.c:996
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "未知的信号名称: %s"
+
+#: src/tar.c:1020
+msgid "Date sample file not found"
+msgstr "找不到数据样板文件"
+
+#: src/tar.c:1028
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "把未知的时间格式 %2$s 替换为 %1$s"
+
+#: src/tar.c:1057
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "选项 %s: 将日期 ‘%s’ 当作 %s"
+
+#: src/tar.c:1135
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s: 文件列表已经读取"
+
+#: src/tar.c:1201
+#, c-format
+msgid "%s: file name read contains nul character"
+msgstr "%s: 读取的文件名含有空字符"
+
+#: src/tar.c:1268 src/tar.c:1272 src/tar.c:1276 src/tar.c:1280 src/tar.c:1284
+#: src/tar.c:1288
+#, c-format
+msgid "filter the archive through %s"
+msgstr "通过 %s 过滤归档"
+
+#: src/tar.c:1296
+msgid "Valid arguments for the --quoting-style option are:"
+msgstr "--quoting-style 选项的有效参数为:"
+
+#: src/tar.c:1300
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"此 tar 默认为:\n"
+
+#: src/tar.c:1402
+#, fuzzy
+msgid "Invalid blocking factor"
+msgstr "无效的块因子"
+
+#: src/tar.c:1515
+msgid "Invalid tape length"
+msgstr "无效的磁带长度"
+
+#: src/tar.c:1529
+msgid "Invalid incremental level value"
+msgstr "无效的增量度"
+
+#: src/tar.c:1575
+msgid "More than one threshold date"
+msgstr "多于一个时间阈值"
+
+#: src/tar.c:1630 src/tar.c:1633
+#, fuzzy
+msgid "Invalid sparse version value"
+msgstr "无效的稀疏版本值"
+
+#: src/tar.c:1718
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "此平台不支持 --atime-preserve=‘system’ "
+
+#: src/tar.c:1743
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint 值不是个整数"
+
+#: src/tar.c:1848
+msgid "Invalid group"
+msgstr "无效的组"
+
+#: src/tar.c:1855
+msgid "Invalid mode given on option"
+msgstr "选项中给出无效的访问模式"
+
+#: src/tar.c:1912
+msgid "Invalid number"
+msgstr "无效的数字"
+
+#: src/tar.c:1934
+msgid "Invalid owner"
+msgstr "无效的所有者"
+
+#: src/tar.c:1964
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "--preserve 选项已经废弃了,请使用 --preserve-permissions --preserve-order 代替"
+
+#: src/tar.c:1975
+msgid "Invalid record size"
+msgstr "无效的记录大小"
+
+#: src/tar.c:1978
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "记录大小必须是 %d 的倍数。"
+
+#: src/tar.c:2019
+msgid "Invalid number of elements"
+msgstr "无效的元素数"
+
+#: src/tar.c:2039
+msgid "Only one --to-command option allowed"
+msgstr "仅允许使用一个 --to-command 选项"
+
+#: src/tar.c:2119
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "错误的压缩参数: %s"
+
+#: src/tar.c:2145
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "未知的压缩参数: ‘%c’"
+
+#: src/tar.c:2162
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "本 tar 不支持选项“-[0-7][lmh]”"
+
+#: src/tar.c:2175
+msgid "[FILE]..."
+msgstr "[FILE]..."
+
+#: src/tar.c:2293
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "旧选项“%c”需要参数。"
+
+#: src/tar.c:2374
+msgid "--occurrence is meaningless without a file list"
+msgstr "没有一个文件列表时 --occurrence 是没有意义的"
+
+#: src/tar.c:2380
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence 不能用于请求的操作模式中"
+
+#: src/tar.c:2398
+msgid "Multiple archive files require `-M' option"
+msgstr "多个归档文件需要使用“-M”选项"
+
+#: src/tar.c:2403
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "无法在使用 --newer 的时候使用 --listed-incremental"
+
+#: src/tar.c:2406
+msgid "--level is meaningless without --listed-incremental"
+msgstr "没有 --listed-incremental 选项的话 --level 选项是无意义的"
+
+#: src/tar.c:2423
+#, 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:2436
+msgid "Cannot verify multi-volume archives"
+msgstr "无法检验多卷归档文件"
+
+#: src/tar.c:2438
+msgid "Cannot verify compressed archives"
+msgstr "无法检验压缩归档文件"
+
+#: src/tar.c:2444
+msgid "Cannot use multi-volume compressed archives"
+msgstr "无法使用多卷压缩归档文件"
+
+#: src/tar.c:2450
+msgid "Cannot concatenate compressed archives"
+msgstr "无法联结压缩归档文件"
+
+#: src/tar.c:2462
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option 只能用于 POSIX 归档中"
+
+#: src/tar.c:2492
+msgid "Volume length cannot be less than record size"
+msgstr "卷长度不可小于记录大小"
+
+#: src/tar.c:2495
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order 与 --listed-incremental 不匹配"
+
+#: src/tar.c:2506
+msgid "Cowardly refusing to create an empty archive"
+msgstr "谨慎地拒绝创建空归档文件"
+
+#: src/tar.c:2532
+msgid "Options `-Aru' are incompatible with `-f -'"
+msgstr "选项“-Aru”与“-f -”不兼容"
+
+#: src/tar.c:2621
+msgid "You must specify one of the `-Acdtrux' or `--test-label' options"
+msgstr "您必须从\"-Acdtrux\"或是\"--test-label\"选项中指定一个"
+
+#: src/tar.c:2675
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+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 字节"
+
+#: src/xheader.c:164
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "关键字 %s 未知或还未实现"
+
+#: src/xheader.c:174
+msgid "Time stamp is out of allowed range"
+msgstr "时间标记超出允许范围"
+
+#: src/xheader.c:205
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "不能使用模式 %s"
+
+#: src/xheader.c:219
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "不能覆盖关键字 %s"
+
+#: src/xheader.c:542
+msgid "Malformed extended header: missing length"
+msgstr "错误的扩展头: 缺少 length"
+
+#: src/xheader.c:550
+msgid "Extended header length is out of allowed range"
+msgstr "扩展头长度超出所允许的范围"
+
+#: src/xheader.c:557
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "扩展头长度 %*s 超出范围"
+
+#: src/xheader.c:569
+msgid "Malformed extended header: missing blank after length"
+msgstr "错误的扩展头: length 后缺少空白符"
+
+#: src/xheader.c:577
+msgid "Malformed extended header: missing equal sign"
+msgstr "错误的扩展头: 缺少等于符号"
+
+#: src/xheader.c:583
+msgid "Malformed extended header: missing newline"
+msgstr "错误的扩展头: 缺少空行"
+
+#: src/xheader.c:621
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "忽略未知的扩展头关键字‘%s’"
+
+#: src/xheader.c:831
+#, 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:863
+#, c-format
+msgid "Extended header %s=%s is out of range %s..%s"
+msgstr "扩展头 %s=%s 超出范围 %s..%s"
+
+#: src/xheader.c:994 src/xheader.c:1024 src/xheader.c:1338
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "错误的扩展头: %s=%s 无效"
+
+#: src/xheader.c:1291 src/xheader.c:1316 src/xheader.c:1366
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "错误的扩展头: %s=%s 溢出"
+
+#: src/xheader.c:1379
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "错误的扩展头: %s 无效: 非预期的分隔符 %c"
+
+#: src/xheader.c:1389
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "错误的扩展头: %s 无效: 奇怪的数值"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s: 无效的超时设置"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s: 未知的检查点操作"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "写入"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "读取操作的检查点 %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile 为 GNU paxutils 测试软件操作数据文件。\n"
+"选项为:\n"
+
+#: tests/genfile.c:127
+msgid "File creation options:"
+msgstr "文件创建选项:"
+
+#: tests/genfile.c:128 tests/genfile.c:139
+msgid "SIZE"
+msgstr "SIZE"
+
+#: tests/genfile.c:129
+msgid "Create file of the given SIZE"
+msgstr "创建指定 SIZE 的文件"
+
+#: tests/genfile.c:131
+msgid "Write to file NAME, instead of standard output"
+msgstr "写入文件 NAME,而不是标准输出"
+
+#: tests/genfile.c:133
+msgid "Read file names from FILE"
+msgstr "从 FILE 读取文件名"
+
+#: tests/genfile.c:135
+msgid "-T reads null-terminated names"
+msgstr "-T 读取以 NULL 终止的名字"
+
+#: tests/genfile.c:137
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "以指定的 PATTERN 填充文件。PATTERN 可以是‘default’或是‘zeros’"
+
+#: tests/genfile.c:140
+msgid "Size of a block for sparse file"
+msgstr "稀疏文件的块大小"
+
+#: tests/genfile.c:142
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "生成稀疏文件。命令行其余选项指定 map 文件。"
+
+#: tests/genfile.c:144
+msgid "OFFSET"
+msgstr "OFFSET"
+
+#: tests/genfile.c:145
+msgid "Seek to the given offset before writing data"
+msgstr "在写入数据前定位至指定的偏移位"
+
+#: tests/genfile.c:151
+msgid "File statistics options:"
+msgstr "文件统计选项:"
+
+#: tests/genfile.c:154
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "打印每个给定文件的 stat 结构定义的内容。默认 FORMAT 是: "
+
+#: tests/genfile.c:161
+msgid "Synchronous execution options:"
+msgstr "同步执行选项:"
+
+#: tests/genfile.c:163
+msgid "OPTION"
+msgstr "OPTION"
+
+#: tests/genfile.c:164
+msgid "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"
+msgstr "执行 ARGS。与 --checkpoint 或 --cut,--append,--touch 中的一个一起使用时有用"
+
+#: tests/genfile.c:167
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "只要达到 checkpoint NUMBER 指定的数值就执行指定的操作(见下)"
+
+#: tests/genfile.c:170
+msgid "Set date for next --touch option"
+msgstr "为下一个 --touch 选项设定日期"
+
+#: tests/genfile.c:173
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "显示执行的 checkpoints 以及 COMMAND 的退出状态"
+
+#: tests/genfile.c:178
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "同步执行操作。当达到由 --checkpoint 选项指定的 checkpoint 数值时会执行这些操作。"
+
+#: tests/genfile.c:181
+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:185
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "添加 SIZE 字节至 FILE。SIZE 由前面的 --length 选项指定。"
+
+#: tests/genfile.c:188
+msgid "Update the access and modification times of FILE"
+msgstr "更新 FILE 的访问和修改时间"
+
+#: tests/genfile.c:191
+msgid "Execute COMMAND"
+msgstr "执行 COMMAND"
+
+#: tests/genfile.c:194
+msgid "Unlink FILE"
+msgstr "删除 FILE"
+
+#: tests/genfile.c:244
+#, c-format
+msgid "Invalid size: %s"
+msgstr "无效的值: %s"
+
+#: tests/genfile.c:249
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "数值超出所允许的范围: %s"
+
+#: tests/genfile.c:252
+#, c-format
+msgid "Negative size: %s"
+msgstr "负值: %s"
+
+#: tests/genfile.c:265 tests/genfile.c:567
+#, c-format
+msgid "stat(%s) failed"
+msgstr "stat(%s) 错误"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "需要文件长度为 %lu,实际为 %lu"
+
+#: tests/genfile.c:272
+#, c-format
+msgid "created file is not sparse"
+msgstr "所创建的文件非稀疏文件"
+
+#: tests/genfile.c:361
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "“%s”附近解析数字错误"
+
+#: tests/genfile.c:367
+#, c-format
+msgid "Unknown date format"
+msgstr "未知的数据格式"
+
+#: tests/genfile.c:391
+msgid "[ARGS...]"
+msgstr "[ARGS...]"
+
+#: tests/genfile.c:428 tests/genfile.c:468 tests/genfile.c:521
+#: tests/genfile.c:671 tests/genfile.c:685
+#, c-format
+msgid "cannot open `%s'"
+msgstr "无法打开“%s”"
+
+#: tests/genfile.c:434
+msgid "cannot seek"
+msgstr "无法定位"
+
+#: tests/genfile.c:451
+#, c-format
+msgid "file name contains null character"
+msgstr "文件名包含空字符"
+
+#: tests/genfile.c:516
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "使用 --file 选项无法在标准输出上生成离散文件"
+
+#: tests/genfile.c:594
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "不正确的掩码(“%s”附近)"
+
+#: tests/genfile.c:600 tests/genfile.c:633
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "未知的文件掩码位“%s”"
+
+#: tests/genfile.c:660
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "无法设定“%s”的时间"
+
+#: tests/genfile.c:699
+#, c-format
+msgid "cannot unlink `%s'"
+msgstr "无法删除 \"%s\""
+
+#: tests/genfile.c:825
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "命令成功退出\n"
+
+#: tests/genfile.c:827
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "命令出错,状态 %d\n"
+
+#: tests/genfile.c:831
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "命令由信号 %d 终止了\n"
+
+#: tests/genfile.c:833
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "命令由信号 %d 停止了\n"
+
+#: tests/genfile.c:836
+#, c-format
+msgid "Command dumped core\n"
+msgstr "命令输出 core\n"
+
+#: tests/genfile.c:839
+#, c-format
+msgid "Command terminated\n"
+msgstr "命令终止\n"
+
+#: tests/genfile.c:871
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat 选项需要文件名"
+
+#~ msgid "%s: Directory removed before we read it"
+#~ msgstr "%s: 文件在读入之前被删除了"
+
+#~ msgid "Cannot save working directory"
+#~ 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 ?"
+
+#~ msgid "Error exit delayed from previous errors"
+#~ msgstr "由于前面延迟的错误而退出"
+
+#~ msgid "block size"
+#~ msgstr "块大小"
+
+#~ msgid "WARNING: No volume header"
+#~ msgstr "警告:没有卷头"
+
+#~ msgid "Visible long name error"
+#~ 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 ""
+#~ "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"
+#~ "您可以在 GNU 一般通用许可证的条款下分发本程序;\n"
+#~ "请参考名为 COPYING 的文件以了解详细信息。"
+
+#~ msgid "rmtd: Garbage command %c\n"
+#~ msgstr "rmtd:垃圾命令 %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”将许多文件保存到一个磁带或磁盘归档文件中,\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 ""
+#~ "\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 只附加比归档中新的文件\n"
+#~ " -A, --catenate 将 tar 文件附加到归档文件之后\n"
+#~ " --concatenate 与 -A 相同\n"
+#~ " --delete 从归档文件中删除 (不能在磁带上!)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Operation modifiers:\n"
+#~ " -W, --verify attempt to verify the archive after writing it\n"
+#~ " --remove-files remove files after adding them to the archive\n"
+#~ " -k, --keep-old-files don't replace existing files when extracting\n"
+#~ " --keep-newer-files don't replace existing files that are newer\n"
+#~ " than their archive copies\n"
+#~ " --overwrite overwrite existing files when extracting\n"
+#~ " --no-overwrite-dir preserve metadata of existing directories\n"
+#~ " -U, --unlink-first remove each file prior to extracting over it\n"
+#~ " --recursive-unlink empty hierarchies prior to extracting directory\n"
+#~ " -S, --sparse handle sparse files efficiently\n"
+#~ " -O, --to-stdout extract files to standard output\n"
+#~ " -G, --incremental handle old GNU-format incremental backup\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " handle new GNU-format incremental backup\n"
+#~ " --ignore-failed-read do not exit with nonzero on unreadable files\n"
+#~ " --occurrence[=NUM] process only the NUMth occurrence of each file in\n"
+#~ " the archive. This option is valid only in\n"
+#~ " conjunction with one of the subcommands --delete,\n"
+#~ " --diff, --extract or --list and when a list of\n"
+#~ " files is given either on the command line or\n"
+#~ " via -T option.\n"
+#~ " NUM defaults to 1.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "操作修饰符:\n"
+#~ " -W, --verify 试图在写入归档之后对其进行验证\n"
+#~ " --remove-files 在将文件添加到归档之后删除文件\n"
+#~ " -k, --keep-old-files 在展开时不替换已存在的文件\n"
+#~ " --keep-newer-files 不替换比归档中的副本更新的文件\n"
+#~ " --overwrite 在展开时覆盖已存在的文件\n"
+#~ " --no-overwrite-dir 在展开时保持已存在目录元数据\n"
+#~ " -U, --unlink-first 在展开文件之前删除已存在的文件\n"
+#~ " --recursive-unlink 在展开目录之前清空目录结构\n"
+#~ " -S, --sparse 有效地处理离散文件\n"
+#~ " -O, --to-stdout 将文件展开到标准输出\n"
+#~ " -G, --incremental 处理旧 GNU-格式的增量备份\n"
+#~ " -g, --listed-incremental=FILE\n"
+#~ " 处理新 GNU-格式的增量备份\n"
+#~ " --ignore-failed-read 遇到不可读文件时不退出\n"
+#~ " --occurrence[=NUM] 仅处理归档中每个文件的第 NUM 次出现\n"
+#~ " 此选项只在和 --delete,--diff,--extract 或者 --list\n"
+#~ " 等子命令一起使用时,并且当没有通过命令行或 -T\n"
+#~ " 选项提供一个文件列表时才有效。\n"
+#~ " NUM 默认为 1.\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Handling of file attributes:\n"
+#~ " --owner=NAME force NAME as owner for added files\n"
+#~ " --group=NAME force NAME as group for added files\n"
+#~ " --mode=CHANGES force (symbolic) mode CHANGES for added files\n"
+#~ " --atime-preserve don't change access times on dumped files\n"
+#~ " -m, --modification-time don't extract file modified time\n"
+#~ " --same-owner try extracting files with the same ownership\n"
+#~ " --no-same-owner extract files as yourself\n"
+#~ " --numeric-owner always use numbers for user/group names\n"
+#~ " -p, --same-permissions extract permissions information\n"
+#~ " --no-same-permissions do not extract permissions information\n"
+#~ " --preserve-permissions same as -p\n"
+#~ " -s, --same-order sort names to extract to match archive\n"
+#~ " --preserve-order same as -s\n"
+#~ " --preserve same as both -p and -s\n"
+#~ msgstr ""
+#~ "\n"
+#~ "处理文件属性:\n"
+#~ " --owner=NAME 将被添加的文件所有者设置为 NAME\n"
+#~ " --group=NAME 将被添加的文件所属的组设置为 NAME\n"
+#~ " --mode=CHANGES 将被添加的文件的属性设置为 CHANGES\n"
+#~ " --atime-preserve 不要改变输出文件的访问时间\n"
+#~ " -m, --modification-time 不要展开文件的修改时间\n"
+#~ " --same-owner 试图以相同的所有权展开文件\n"
+#~ " --no-same-owner 以您自己的身份展开文件\n"
+#~ " --numeric-owner 总是用编号作为用户/组的名字\n"
+#~ " -p, --same-permissions 展开权限信息\n"
+#~ " --no-same-permissions 不展开权限信息\n"
+#~ " --preserve-permissions 与 -p 相同\n"
+#~ " -s, --same-order 对要展开的名称进行排序以便与归档匹配\n"
+#~ " --preserve-order 与 -s 相同\n"
+#~ " --preserve 与 -p 和 -s 都相同\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device selection and switching:\n"
+#~ " -f, --file=ARCHIVE use archive file or device ARCHIVE\n"
+#~ " --force-local archive file is local even if has a colon\n"
+#~ " --rmt-command=COMMAND use given rmt COMMAND instead of /etc/rmt\n"
+#~ " --rsh-command=COMMAND use remote COMMAND instead of rsh\n"
+#~ " -[0-7][lmh] specify drive and density\n"
+#~ " -M, --multi-volume create/list/extract multi-volume archive\n"
+#~ " -L, --tape-length=NUM change tape after writing NUM x 1024 bytes\n"
+#~ " -F, --info-script=FILE run script at end of each tape (implies -M)\n"
+#~ " --new-volume-script=FILE same as -F FILE\n"
+#~ " --volno-file=FILE use/update the volume number in FILE\n"
+#~ msgstr ""
+#~ "\n"
+#~ "设备选择与切换:\n"
+#~ " -f, --file=ARCHIVE 使用归档文件或设备 ARCHIVE\n"
+#~ " --force-local 即使含有冒号,归档文件也是本地文件\n"
+#~ " --rmt-command=COMMAND 用给定的 rmt COMMAND 代替 /etc/rmt\n"
+#~ " --rsh-command=COMMAND 用远程 COMMAND 代替 rsh\n"
+#~ " -[0-7][lmh] 指定驱动器和密度\n"
+#~ " -M, --multi-volume 创建/列举/展开多卷归档文件\n"
+#~ " -L, --tape-length=NUM 在写入 NUM x 1024 个字节后更换磁带\n"
+#~ " -F, --info-script=FILE 在每个磁带末端运行脚本 (隐含 -M)\n"
+#~ " --new-volume-script=FILE 与 -F FILE 相同\n"
+#~ " --volno-file=FILE 使用/更新 FILE 中的卷编号\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Device blocking:\n"
+#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n"
+#~ " --record-size=SIZE SIZE bytes per record, multiple of 512\n"
+#~ " -i, --ignore-zeros ignore zeroed blocks in archive (means EOF)\n"
+#~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "设备分块:\n"
+#~ " -b, --blocking-factor=BLOCKS 每个记录 BLOCKS x 512 个字节\n"
+#~ " --record-size=SIZE 每个记录 SIZE 个字节,512 的倍数\n"
+#~ " -i, --ignore-zeros 忽略归档中全为零的块 (标示文件结束)\n"
+#~ " -B, --read-full-records 当我们读入时重新分块 (为 4.2BSD 管道提供)\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Archive format selection:\n"
+#~ " --format=FMTNAME create archive of the given format.\n"
+#~ " FMTNAME is one of the following:\n"
+#~ " v7 old V7 tar format\n"
+#~ " oldgnu GNU format as per tar <= 1.12\n"
+#~ " gnu GNU tar 1.13 format\n"
+#~ " ustar POSIX 1003.1-1988 (ustar) format\n"
+#~ " posix POSIX 1003.1-2001 (pax) format\n"
+#~ " --old-archive, --portability same as --format=v7\n"
+#~ " --posix same as --format=posix\n"
+#~ " --pax-option keyword[[:]=value][,keyword[[:]=value], ...]\n"
+#~ " control pax keywords\n"
+#~ " -V, --label=NAME create archive with volume name NAME\n"
+#~ " PATTERN at list/extract time, a globbing PATTERN\n"
+#~ " -j, --bzip2 filter the archive through bzip2\n"
+#~ " -z, --gzip, --ungzip filter the archive through gzip\n"
+#~ " -Z, --compress, --uncompress filter the archive through compress\n"
+#~ " --use-compress-program=PROG filter through PROG (must accept -d)\n"
+#~ msgstr ""
+#~ "\n"
+#~ "归档格式选择:\n"
+#~ " --format=FMTNAME 创建指定格式的归档。\n"
+#~ " FMTNAME 为下列格式中的一个:\n"
+#~ " v7 旧式 V7 tar 格式\n"
+#~ " oldgnu tar <= 1.12 时的 GNU 格式\n"
+#~ " gnu GNU tar 1.13 格式\n"
+#~ " ustar POSIX 1003.1-1988 (ustar) 格式\n"
+#~ " posix POSIX 1003.1-2001 (pax) 格式\n"
+#~ " --old-archive, --portability 与 --format=v7 相同\n"
+#~ " --posix 与 --format=posix 相同\n"
+#~ " --pax-option keyword[[:]=value][,keyword[[:]=value], ...]\n"
+#~ " 控制 pax 关键字\n"
+#~ " -V, --label=NAME 以卷标名 NAME 创建归档\n"
+#~ " PATTERN 在列出/展开时,一个模糊匹配 PATTERN\n"
+#~ " -j, --bzip2 用 bzip2 过滤归档\n"
+#~ " -z, --gzip, --ungzip 用 gzip 过滤归档\n"
+#~ " -Z, --compress, --uncompress 用 compress 过滤归档\n"
+#~ " --use-compress-program=PROG 用程序 PROG(必须接受参数 -d) 过滤归档\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Local file selection:\n"
+#~ " -C, --directory=DIR change to directory DIR\n"
+#~ " -T, --files-from=NAME get names to extract or create from file NAME\n"
+#~ " --null -T reads null-terminated names, disable -C\n"
+#~ " --exclude=PATTERN exclude files, given as a PATTERN\n"
+#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n"
+#~ " --anchored exclude patterns match file name start (default)\n"
+#~ " --no-anchored exclude patterns match after any /\n"
+#~ " --ignore-case exclusion ignores case\n"
+#~ " --no-ignore-case exclusion is case sensitive (default)\n"
+#~ " --wildcards exclude patterns use wildcards (default)\n"
+#~ " --no-wildcards exclude patterns are plain strings\n"
+#~ " --wildcards-match-slash exclude pattern wildcards match '/' (default)\n"
+#~ " --no-wildcards-match-slash exclude pattern wildcards do not match '/'\n"
+#~ " -P, --absolute-names don't strip leading `/'s from file names\n"
+#~ " -h, --dereference dump instead the files symlinks point to\n"
+#~ " --no-recursion avoid descending automatically in directories\n"
+#~ " -l, --one-file-system stay in local file system when creating archive\n"
+#~ " -K, --starting-file=NAME begin at file NAME in the archive\n"
+#~ " --strip-path=NUM strip NUM leading components from file names\n"
+#~ " before extraction\n"
+#~ msgstr ""
+#~ "\n"
+#~ "本地文件选择:\n"
+#~ " -C, --directory=DIR 进入目录 DIR\n"
+#~ " -T, --files-from=NAME 从文件 NAME 中获取要展开或创建的文件名\n"
+#~ " --null -T 读入以 null 终止的名称,禁用 -C\n"
+#~ " --exclude=PATTERN 除去匹配 PATTERN 的文件\n"
+#~ " -X, --exclude-from=FILE 出去匹配在 FILE 中列出的模式的文件\n"
+#~ " --anchored 去除模式匹配文件起点 (默认)\n"
+#~ " --no-anchored 去除任何 / 之后的模式匹配\n"
+#~ " --ignore-case 去除匹配时忽略大小写\n"
+#~ " --no-ignore-case 去除匹配时关心大小写 (默认)\n"
+#~ " --wildcards 在去除匹配时使用通配符 (默认)\n"
+#~ " --no-wildcards 在去除匹配时使用普通字符串\n"
+#~ " --wildcards-match-slash 去除模式通配符匹配“/” (默认)\n"
+#~ " --no-wildcards-match-slash 去除模式通配符不匹配“/”\n"
+#~ " -P, --absolute-names 不要从文件名中去掉最前头的“/”\n"
+#~ " -h, --dereference 输出连接指向的文件而不是文件连接\n"
+#~ " --no-recursion 避免在目录间自动递归\n"
+#~ " -l, --one-file-system 创建归档文件时留在本地文件系统中\n"
+#~ " -K, --starting-file=NAME 从归档中的文件 NAME 开始\n"
+#~ " --strip-path=NUM 展开前从文件名中删除前面的 NUM 个元素\n"
+
+#~ msgid ""
+#~ " -N, --newer=DATE-OR-FILE only store files newer than DATE-OR-FILE\n"
+#~ " --newer-mtime=DATE compare date and time when data changed only\n"
+#~ " --after-date=DATE same as -N\n"
+#~ msgstr ""
+#~ " -N, --newer=DATE-OR-FILE 只存储比指定的日期或者文件更新的文件\n"
+#~ " --newer-mtime=DATE 只在数据发生变化时比较日期和时间\n"
+#~ " --after-date=DATE 与 -N 相同\n"
+
+#~ msgid ""
+#~ " --backup[=CONTROL] backup before removal, choose version control\n"
+#~ " --suffix=SUFFIX backup before removal, override usual suffix\n"
+#~ msgstr ""
+#~ " --backup[=CONTROL] 在删除前备份,选择版本控制\n"
+#~ " --suffix=SUFFIX 在删除前备份,覆盖常用后缀\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "Informative output:\n"
+#~ " --help print this help, then exit\n"
+#~ " --version print tar program version number, then exit\n"
+#~ " -v, --verbose verbosely list files processed\n"
+#~ " --checkpoint print directory names while reading the archive\n"
+#~ " --check-links print a message if not all links are dumped\n"
+#~ " --totals print total bytes written while creating archive\n"
+#~ " --index-file=FILE send verbose output to FILE\n"
+#~ " --utc print file modification dates in UTC\n"
+#~ " -R, --block-number show block number within archive with each message\n"
+#~ " -w, --interactive ask for confirmation for every action\n"
+#~ " --confirmation same as -w\n"
+#~ msgstr ""
+#~ "\n"
+#~ "提示性输出:\n"
+#~ " --help 打印该求助信息,而后退出\n"
+#~ " --version 打印 tar 程序的版本号,而后退出\n"
+#~ " -v, --verbose 详细列出处理的文件\n"
+#~ " --checkpoint 在读入归档文件时打印目录名\n"
+#~ " --check-links 如果未输出所以连接则打印一条消息\n"
+#~ " --totals 在创建归档文件时打印总计写入的字节数\n"
+#~ " --index-file=FILE 输出详细输出到文件 FILE\n"
+#~ " --utc 以 UTC 格式打印文件修改时间\n"
+#~ " -R, --block-number 在每条消息中都显示归档文件中的块编号\n"
+#~ " -w, --interactive 每一动作都请求确认\n"
+#~ " --confirmation 与 -w 相同\n"
+
+#~ msgid ""
+#~ "\n"
+#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual date\n"
+#~ "or a file name starting with `/' or `.', in which case the file's date is used.\n"
+#~ "*This* `tar' defaults to `--format=%s -f%s -b%d'.\n"
+#~ msgstr ""
+#~ "\n"
+#~ "ARCHIVE 可以是 FILE,HOST:FILE 或者 USER@HOST:FILE;DATE 可以是一文字时间\n"
+#~ "或者是一以“/”或“.”开头的文件名,这时使用该文件的时间。\n"
+#~ "*本* “tar” 默认为“--format=%s -f%s -b%d”。\n"
+
+#~ msgid "Warning: the -y option is not supported; perhaps you meant -j?"
+#~ msgstr "警告:不支持 -y 选项;您的意思可能是 -j?"
+
+#~ msgid "Written by John Gilmore and Jay Fenlason."
+#~ msgstr "由 John Gilmore 和 Jay Fenlason 编写。"
diff --git a/po/zh_TW.po b/po/zh_TW.po
new file mode 100644
index 00000000..d870b361
--- /dev/null
+++ b/po/zh_TW.po
@@ -0,0 +1,2543 @@
+# Traditional Chinese Messages for tar.
+# Copyright (C) 2005 Free Software Foundation, Inc.
+# 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.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-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
+#, c-format
+msgid "invalid argument %s for %s"
+msgstr "%2$s 的引數 %1$s 無效"
+
+#: lib/argmatch.c:134
+#, c-format
+msgid "ambiguous argument %s for %s"
+msgstr "%2$s 的引數 %1$s 是模稜兩可的"
+
+#: lib/argmatch.c:153
+#, c-format
+msgid "Valid arguments are:"
+msgstr "有效的引數為:"
+
+#: lib/argp-help.c:147
+#, 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
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter requires a value"
+msgstr "%.*s: ARGP_HELP_FMT 參數需要一個值"
+
+#: lib/argp-help.c:226
+#, c-format
+msgid "%.*s: ARGP_HELP_FMT parameter must be positive"
+msgstr "%.*s: ARGP_HELP_FMT 參數必須是正值"
+
+#: lib/argp-help.c:235
+#, c-format
+msgid "%.*s: Unknown ARGP_HELP_FMT parameter"
+msgstr "%.*s: 不明的 ARGP_HELP_FMT 參數"
+
+#: lib/argp-help.c:247
+#, c-format
+msgid "Garbage in ARGP_HELP_FMT: %s"
+msgstr "ARGP_HELP_FMT 中無用的資訊: %s"
+
+#: lib/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
+msgid "Usage:"
+msgstr "用法:"
+
+#: lib/argp-help.c:1643
+msgid " or: "
+msgstr " 或:"
+
+#: lib/argp-help.c:1655
+msgid " [OPTION...]"
+msgstr " [選項…]"
+
+#: lib/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
+#, c-format
+msgid "Report bugs to %s.\n"
+msgstr "請向 %s 回報錯誤。\n"
+
+#: lib/argp-help.c:1929 lib/error.c:125
+msgid "Unknown system error"
+msgstr "不明的系統錯誤"
+
+#: lib/argp-parse.c:81 src/tar.c:774
+msgid "give this help list"
+msgstr "給出這個使用方式列表"
+
+#: lib/argp-parse.c:82 src/tar.c:775
+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
+msgid "NAME"
+msgstr "名稱"
+
+#: lib/argp-parse.c:83
+msgid "set the program name"
+msgstr "設定程式名稱"
+
+#: lib/argp-parse.c:84
+msgid "SECS"
+msgstr "秒"
+
+#: lib/argp-parse.c:85 src/tar.c:780
+msgid "hang for SECS seconds (default 3600)"
+msgstr "掛斷若干秒 (預設 3600)"
+
+#: lib/argp-parse.c:142 src/tar.c:776
+msgid "print program version"
+msgstr "印出程式版本"
+
+#: lib/argp-parse.c:158
+#, c-format
+msgid "(PROGRAM ERROR) No version known!?"
+msgstr "(程式錯誤) 沒有已知版本 !?"
+
+#: lib/argp-parse.c:611
+#, c-format
+msgid "%s: Too many arguments\n"
+msgstr "%s:太多引數\n"
+
+#: lib/argp-parse.c:754
+msgid "(PROGRAM ERROR) Option should have been recognized!?"
+msgstr "(程式錯誤) 選項應該已被辨識 !?"
+
+#: lib/closeout.c:112
+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"
+
+#: 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
+#, c-format
+msgid "unable to record current working directory"
+msgstr "無法記錄目前的工作目錄"
+
+#: lib/openat-die.c:48
+#, 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 位元組"
+
+#: 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 "以「.」來替換空白的硬式連結目標"
+
+#. 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.
+#: lib/quotearg.c:249
+msgid "`"
+msgstr "「"
+
+#: lib/quotearg.c:250
+msgid "'"
+msgstr "」"
+
+#. TRANSLATORS: A regular expression testing for an affirmative answer
+#. (english: "yes"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. 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
+msgid "^[yY]"
+msgstr "^[yY是]"
+
+#. TRANSLATORS: A regular expression testing for a negative answer
+#. (english: "no"). Testing the first character may be sufficient.
+#. Take care to consider upper and lower case.
+#. 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
+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
+#, c-format
+msgid "stdout"
+msgstr "標準輸出"
+
+#: lib/rtapelib.c:512
+#, c-format
+msgid "Cannot execute remote shell"
+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
+msgid "(C)"
+msgstr "©"
+
+#: lib/version-etc.c:67
+msgid ""
+"\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"
+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
+#, c-format
+msgid "Written by %s.\n"
+msgstr "由 %s 編寫。\n"
+
+#. TRANSLATORS: Each %s denotes an author name.
+#: lib/version-etc.c:87
+#, 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
+#, c-format
+msgid "Written by %s, %s, and %s.\n"
+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
+#, 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
+#, 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
+#, 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
+#, 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
+#, 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
+#, 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
+#, 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
+msgid ""
+"\n"
+"Report bugs to <%s>.\n"
+msgstr ""
+"\n"
+"將錯誤回報給 <%s>。\n"
+
+#: lib/version-etc.c:182
+#, c-format
+msgid "%s home page: <http://www.gnu.org/software/%s/>.\n"
+msgstr "%s 首頁:<http://www.gnu.org/software/%s/>。\n"
+
+#: lib/version-etc.c:184
+msgid "General help using GNU software: <http://www.gnu.org/gethelp/>.\n"
+msgstr "使用 GNU 軟體的一般說明:<http://www.gnu.org/gethelp/>。\n"
+
+#: rmt/rmt.c:142
+msgid "Input string too long"
+msgstr "輸入字串太長"
+
+#: rmt/rmt.c:161
+msgid "Number syntax error"
+msgstr "數字語法錯誤"
+
+#: rmt/rmt.c:180
+msgid "rmtd: Cannot allocate buffer space\n"
+msgstr "rmtd:無法配置緩衝區空間\n"
+
+#: rmt/rmt.c:182
+msgid "Cannot allocate buffer space"
+msgstr "無法配置緩衝區空間"
+
+#: rmt/rmt.c:304
+#, c-format
+msgid "Try `%s --help' for more information.\n"
+msgstr "請嘗試「%s --help」以獲得更多資訊。\n"
+
+#: rmt/rmt.c:308
+#, 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"
+
+#: rmt/rmt.c:397
+msgid "Seek offset error"
+msgstr "尋覓偏移值錯誤"
+
+#: rmt/rmt.c:406 rmt/rmt.c:547 rmt/rmt.c:557
+msgid "Seek offset out of range"
+msgstr "尋覓偏移值超出範圍"
+
+#: rmt/rmt.c:428
+msgid "Seek direction out of range"
+msgstr "尋覓方向超出範圍"
+
+#: rmt/rmt.c:472
+msgid "rmtd: Premature eof\n"
+msgstr "rmtd:檔案突然結束\n"
+
+#: rmt/rmt.c:474
+msgid "Premature end of file"
+msgstr "檔案突然結束"
+
+#: rmt/rmt.c:672
+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
+msgid "This does not look like a tar archive"
+msgstr "這個看起來不像 tar 保存檔"
+
+#: src/buffer.c:354 src/buffer.c:363
+msgid "Total bytes written"
+msgstr "已寫入位元組總數"
+
+#: src/buffer.c:361 src/buffer.c:375
+msgid "Total bytes read"
+msgstr "已讀取位元組總數"
+
+#: src/buffer.c:365
+#, c-format
+msgid "Total bytes deleted: %s\n"
+msgstr "已刪除位元組總數:%s\n"
+
+#: src/buffer.c:454
+msgid "(pipe)"
+msgstr "(管線)"
+
+#: src/buffer.c:477
+msgid "Invalid value for record_size"
+msgstr "無效的記錄大小"
+
+#: src/buffer.c:480
+msgid "No archive name given"
+msgstr "沒有指定保存檔名稱"
+
+#: src/buffer.c:524
+msgid "Cannot verify stdin/stdout archive"
+msgstr "無法檢驗標準輸出入保存檔"
+
+#: src/buffer.c:538
+#, c-format
+msgid "Archive is compressed. Use %s option"
+msgstr "保存檔被壓縮過。使用 %s 選項"
+
+#: src/buffer.c:593 src/tar.c:2317
+msgid "Cannot update compressed archives"
+msgstr "無法更新壓縮的保存檔"
+
+#: src/buffer.c:672
+msgid "At beginning of tape, quitting now"
+msgstr "位於磁帶起始部份,立刻退出"
+
+#: src/buffer.c:678
+msgid "Too many errors, quitting"
+msgstr "太多錯誤,離開中"
+
+#: src/buffer.c:697
+#, c-format
+msgid "Record size = %lu block"
+msgid_plural "Record size = %lu blocks"
+msgstr[0] "記錄大小 = %lu 區塊"
+
+#: src/buffer.c:718
+#, c-format
+msgid "Unaligned block (%lu byte) in archive"
+msgid_plural "Unaligned block (%lu bytes) in archive"
+msgstr[0] "保存檔中未排列的區塊 (%lu 位元組)"
+
+#: src/buffer.c:795
+msgid "Cannot backspace archive file; it may be unreadable without -i"
+msgstr "無法倒退保存檔檔案;沒有 -i 也許會無法讀取"
+
+#: src/buffer.c:827
+msgid "rmtlseek not stopped at a record boundary"
+msgstr "rmtlseek 無法在記錄分界處停止"
+
+#: src/buffer.c:881
+#, c-format
+msgid "%s: contains invalid volume number"
+msgstr "%s:包含無效的卷冊號碼"
+
+#: src/buffer.c:916
+msgid "Volume number overflow"
+msgstr "卷冊號碼已滿"
+
+#: src/buffer.c:931
+#, c-format
+msgid "Prepare volume #%d for %s and hit return: "
+msgstr "準備好卷冊 #%d 以完成 %s 並按下 return: "
+
+#: src/buffer.c:937
+msgid "EOF where user reply was expected"
+msgstr "到達期待使用者回答的檔案末端"
+
+#: src/buffer.c:942 src/buffer.c:974
+msgid "WARNING: Archive is incomplete"
+msgstr "警告:保存檔不完整"
+
+#: src/buffer.c:956
+#, 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 放棄打包\n"
+" y 或 newline 繼續作業\n"
+
+#: src/buffer.c:961
+#, c-format
+msgid " ! Spawn a subshell\n"
+msgstr " ! 衍生一個子命令殼\n"
+
+#: src/buffer.c:962
+#, c-format
+msgid " ? Print this list\n"
+msgstr " ? 列印這個清單\n"
+
+#: src/buffer.c:969
+msgid "No new volume; exiting.\n"
+msgstr "沒有新卷冊;離開。\n"
+
+#: src/buffer.c:1002
+msgid "File name not specified. Try again.\n"
+msgstr "檔案名稱尚未指定。再次嘗試。\n"
+
+#: src/buffer.c:1015
+#, c-format
+msgid "Invalid input. Type ? for help.\n"
+msgstr "無效的輸入。按下 ? 以獲得說明。\n"
+
+#: src/buffer.c:1066
+#, c-format
+msgid "%s command failed"
+msgstr "%s 命令失敗"
+
+#: src/buffer.c:1221
+#, c-format
+msgid "%s is possibly continued on this volume: header contains truncated name"
+msgstr "%s 在本卷冊中可能連續:標頭含有截斷的名稱"
+
+#: src/buffer.c:1225
+#, c-format
+msgid "%s is not continued on this volume"
+msgstr "%s 在本卷冊中並不連續"
+
+#: src/buffer.c:1239
+#, c-format
+msgid "%s is the wrong size (%s != %s + %s)"
+msgstr "%s 的大小有錯 (%s != %s + %s)"
+
+#: src/buffer.c:1253
+#, c-format
+msgid "This volume is out of sequence (%s - %s != %s)"
+msgstr "本卷冊已超出序列 (%s - %s !=%s)"
+
+#: src/buffer.c:1303
+#, c-format
+msgid "Archive not labeled to match %s"
+msgstr "保存檔未標誌為符合 %s"
+
+#: src/buffer.c:1306
+#, c-format
+msgid "Volume %s does not match %s"
+msgstr "卷冊 %s 不符合 %s"
+
+#: src/buffer.c:1402
+#, c-format
+msgid "%s: file name too long to be stored in a GNU multivolume header, truncated"
+msgstr "%s:檔名太長,無法儲存於 GNU 多重卷冊標頭之中,已截斷"
+
+#: src/buffer.c:1621
+msgid "write did not end on a block boundary"
+msgstr "並未於區段界限結束寫入"
+
+#: src/compare.c:96
+#, 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
+msgid "Contents differ"
+msgstr "內容不同"
+
+#: src/compare.c:132 src/extract.c:790 src/incremen.c:1399 src/list.c:372
+#: src/list.c:1323
+msgid "Unexpected EOF in archive"
+msgstr "未預期的保存檔結尾"
+
+#: src/compare.c:180 src/compare.c:196 src/compare.c:314 src/compare.c:412
+msgid "File type differs"
+msgstr "檔案類型不同"
+
+#: src/compare.c:183 src/compare.c:203 src/compare.c:328
+msgid "Mode differs"
+msgstr "模式不同"
+
+#: src/compare.c:206
+msgid "Uid differs"
+msgstr "Uid 號碼不同"
+
+#: src/compare.c:208
+msgid "Gid differs"
+msgstr "Gid 號碼不同"
+
+#: src/compare.c:212
+msgid "Mod time differs"
+msgstr "修改時間不同"
+
+#: src/compare.c:216 src/compare.c:420
+msgid "Size differs"
+msgstr "大小不同"
+
+#: src/compare.c:270
+#, c-format
+msgid "Not linked to %s"
+msgstr "並未鏈結至 %s"
+
+#: src/compare.c:293
+msgid "Symlink differs"
+msgstr "符號連結不同"
+
+#: src/compare.c:322
+msgid "Device number differs"
+msgstr "裝置編號不同"
+
+#: src/compare.c:462
+#, c-format
+msgid "Verify "
+msgstr "驗證 "
+
+#: src/compare.c:469
+#, c-format
+msgid "%s: Unknown file type `%c', diffed as normal file"
+msgstr "%s:不明檔案類型「%c」,會以普通檔案的方式作比較"
+
+#: src/compare.c:524
+msgid "Archive contains file names with leading prefixes removed."
+msgstr "保存檔包含前置文字被移除的檔案名稱。"
+
+#: src/compare.c:526
+msgid "Verification may fail to locate original files."
+msgstr "查核動作可能無法找到原始檔案"
+
+#: src/compare.c:596
+#, 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
+#, c-format
+msgid "A lone zero block at %s"
+msgstr "位於 %s 的孤立零值區塊"
+
+#: src/create.c:67
+#, c-format
+msgid "%s: contains a cache directory tag %s; %s"
+msgstr "%s:包含一個快取目錄標記 %s; %s"
+
+#: src/create.c:272
+#, c-format
+msgid "value %s out of %s range %s..%s; substituting %s"
+msgstr "數值 %s 已超出 %s 的範圍 %s..%s;以 %s 替代中"
+
+#: src/create.c:278
+#, c-format
+msgid "value %s out of %s range %s..%s"
+msgstr "數值 %s 已超出 %s 的範圍 %s..%s"
+
+#: src/create.c:338
+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);未傾印"
+
+#: src/create.c:634
+#, c-format
+msgid "%s: file name is too long (cannot be split); not dumped"
+msgstr "%s:檔名太長 (無法分割);未傾印"
+
+#: src/create.c:661
+#, c-format
+msgid "%s: link name is too long; not dumped"
+msgstr "%s:鏈結名稱太長;未傾印"
+
+#: src/create.c:1076
+#, 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
+#, 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
+msgid "contents not dumped"
+msgstr "內容無法傾印"
+
+#: src/create.c:1361
+#, c-format
+msgid "%s: Unknown file type; file ignored"
+msgstr "%s:不明檔案類型;忽略該檔案"
+
+#: src/create.c:1464
+#, c-format
+msgid "Missing links to %s.\n"
+msgstr "失去至 %s 的連結。\n"
+
+#: src/create.c:1535
+#, c-format
+msgid "%s: file is unchanged; not dumped"
+msgstr "%s:檔案沒有變更;未傾印"
+
+#: src/create.c:1543
+#, 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
+msgid "directory not dumped"
+msgstr "目錄未傾印"
+
+#: src/create.c:1659
+#, c-format
+msgid "%s: file changed as we read it"
+msgstr "%s:檔案在讀取時已變更"
+
+#: src/create.c:1739
+#, c-format
+msgid "%s: socket ignored"
+msgstr "%s:忽略通訊端"
+
+#: src/create.c:1744
+#, c-format
+msgid "%s: door ignored"
+msgstr "%s:忽略匣門"
+
+#: src/delete.c:216 src/list.c:181 src/update.c:170
+msgid "Skipping to next header"
+msgstr "跳至下一個標頭"
+
+#: src/delete.c:281
+msgid "Deleting non-header from archive"
+msgstr "從保存檔中刪除無標頭者"
+
+#: src/extract.c:198
+#, c-format
+msgid "%s: implausibly old time stamp %s"
+msgstr "%s:難以確信的舊時間戳記 %s"
+
+#: src/extract.c:215
+#, c-format
+msgid "%s: time stamp %s is %s s in the future"
+msgstr "%s:時間戳記 %s 代表未來的 %s 秒"
+
+#: src/extract.c:395
+#, c-format
+msgid "%s: Unexpected inconsistency when making directory"
+msgstr "%s:產生目錄時有未預期的不一致"
+
+#: src/extract.c:588
+#, c-format
+msgid "%s: Directory renamed before its status could be extracted"
+msgstr "%s:解開目錄狀態之前已更改了名稱"
+
+#: src/extract.c:724
+msgid "Extracting contiguous files as regular files"
+msgstr "正在解開連續檔案為正常檔案"
+
+#: src/extract.c:997
+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
+#, c-format
+msgid "%s: Cannot extract -- file is continued from another volume"
+msgstr "%s:無法解開 -- 檔案延續自其他卷冊"
+
+#: src/extract.c:1150 src/list.c:1090
+msgid "Unexpected long name header"
+msgstr "未預期的長名稱標頭"
+
+#: src/extract.c:1156
+#, c-format
+msgid "%s: Unknown file type `%c', extracted as normal file"
+msgstr "%s:不明檔案類型「%c」,會以普通檔案的方式解開資料"
+
+#: src/extract.c:1181
+#, c-format
+msgid "Current %s is newer or same age"
+msgstr "目前的 %s 較新或相同"
+
+#: src/extract.c:1227
+#, c-format
+msgid "%s: Was unable to backup this file"
+msgstr "%s:之前無法備份這個檔案"
+
+#: src/extract.c:1355
+#, 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
+#, c-format
+msgid "%s: Directory has been renamed from %s"
+msgstr "%s:目錄已從 %s 重新命名"
+
+#: src/incremen.c:460
+#, c-format
+msgid "%s: Directory has been renamed"
+msgstr "%s:目錄已被重新命名"
+
+#: src/incremen.c:505
+#, c-format
+msgid "%s: Directory is new"
+msgstr "%s:目錄是新的"
+
+#: src/incremen.c:903 src/incremen.c:920
+msgid "Invalid time stamp"
+msgstr "無效的時間戳記"
+
+#: src/incremen.c:959
+msgid "Invalid modification time (seconds)"
+msgstr "無效的修改時間 (秒)"
+
+#: src/incremen.c:974
+msgid "Invalid modification time (nanoseconds)"
+msgstr "無效的修改時間 (奈秒)"
+
+#: src/incremen.c:994
+msgid "Invalid device number"
+msgstr "無效的裝置號碼"
+
+#: src/incremen.c:1009
+msgid "Invalid inode number"
+msgstr "無效的 inode 號碼"
+
+#: src/incremen.c:1060 src/incremen.c:1097
+msgid "Field too long while reading snapshot file"
+msgstr "讀取快照檔時欄位太長"
+
+#: src/incremen.c:1067 src/incremen.c:1105
+msgid "Read error in snapshot file"
+msgstr "讀取快照檔時發生錯誤"
+
+#: src/incremen.c:1069 src/incremen.c:1109 src/incremen.c:1161
+#: src/incremen.c:1219
+msgid "Unexpected EOF in snapshot file"
+msgstr "未預期的快照檔結尾"
+
+#: src/incremen.c:1076 src/incremen.c:1116
+msgid "Unexpected field value in snapshot file"
+msgstr "未預期的快照檔欄位值"
+
+#: src/incremen.c:1211
+msgid "Missing record terminator"
+msgstr "缺少記錄終止符號"
+
+#: src/incremen.c:1262 src/incremen.c:1265
+msgid "Bad incremental file format"
+msgstr "不當的遞增檔案格式"
+
+#: src/incremen.c:1284
+#, c-format
+msgid "Unsupported incremental format version: %<PRIuMAX>"
+msgstr "不受支援的遞增格式版本:%<PRIuMAX>"
+
+#: src/incremen.c:1439
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found %#3o"
+msgstr "異常的傾印目錄:預期「%c」但是找到 %#3o"
+
+#: src/incremen.c:1449
+msgid "Malformed dumpdir: 'X' duplicated"
+msgstr "異常的傾印目錄:「X」重製"
+
+#: src/incremen.c:1462
+msgid "Malformed dumpdir: empty name in 'R'"
+msgstr "異常的傾印目錄:在「R」中有空的名稱"
+
+#: src/incremen.c:1475
+msgid "Malformed dumpdir: 'T' not preceeded by 'R'"
+msgstr "異常的傾印目錄:「R」未在「T」之前"
+
+#: src/incremen.c:1481
+msgid "Malformed dumpdir: empty name in 'T'"
+msgstr "異常的傾印目錄:在「T」中有空的名稱"
+
+#: src/incremen.c:1501
+#, c-format
+msgid "Malformed dumpdir: expected '%c' but found end of data"
+msgstr "異常的傾印目錄:預期「%c」但是發現資料的結束"
+
+#: src/incremen.c:1507
+msgid "Malformed dumpdir: 'X' never used"
+msgstr "異常的傾印目錄:「X」永不使用"
+
+#: src/incremen.c:1551
+#, c-format
+msgid "Cannot create temporary directory using template %s"
+msgstr "無法使用模板 %s 建立暫存目錄"
+
+#: src/incremen.c:1613
+#, c-format
+msgid "%s: Not purging directory: unable to stat"
+msgstr "%s:未能清空目錄;無法顯示狀態"
+
+#: src/incremen.c:1626
+#, c-format
+msgid "%s: directory is on a different device: not purging"
+msgstr "%s:目錄位於不同的裝置;無法清空"
+
+#: src/incremen.c:1634
+#, c-format
+msgid "%s: Deleting %s\n"
+msgstr "%s:正在刪除 %s\n"
+
+#: src/incremen.c:1639
+#, c-format
+msgid "%s: Cannot remove"
+msgstr "%s:無法移除"
+
+#: src/list.c:113
+#, c-format
+msgid "%s: Omitting"
+msgstr "%s:省略中"
+
+#: src/list.c:131
+#, c-format
+msgid "block %s: ** Block of NULs **\n"
+msgstr "區塊 %s:** 空值區塊 **\n"
+
+#: src/list.c:155
+#, c-format
+msgid "block %s: ** End of File **\n"
+msgstr "區塊 %s:** 檔案結尾 **\n"
+
+#: src/list.c:178 src/list.c:1063 src/list.c:1291
+#, c-format
+msgid "block %s: "
+msgstr "區塊 %s:"
+
+#. TRANSLATORS: %s is type of the value (gid_t, uid_t, etc.)
+#: src/list.c:671
+#, 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
+#, 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
+#, c-format
+msgid "Archive octal value %.*s is out of %s range"
+msgstr "保存檔八進位數值 %.*s 超出 %s 範圍"
+
+#: src/list.c:758
+msgid "Archive contains obsolescent base-64 headers"
+msgstr "保存檔含有過時的 base-64 標頭"
+
+#: src/list.c:772
+#, c-format
+msgid "Archive signed base-64 string %s is out of %s range"
+msgstr "保存檔有號 base-64 字串 %s 超出 %s 範圍"
+
+#: src/list.c:803
+#, 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
+#, 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
+#, c-format
+msgid "Archive value %s is out of %s range %s..%s"
+msgstr "保存檔值 %s 已超出 %s 的範圍 %s..%s"
+
+#: src/list.c:1226
+#, c-format
+msgid " link to %s\n"
+msgstr " 連結到 %s\n"
+
+#: src/list.c:1234
+#, c-format
+msgid " unknown file type %s\n"
+msgstr " 不明檔案類型 %s\n"
+
+#: src/list.c:1252
+#, c-format
+msgid "--Long Link--\n"
+msgstr "--長 連 結--\n"
+
+#: src/list.c:1256
+#, c-format
+msgid "--Long Name--\n"
+msgstr "--長 名 稱--\n"
+
+#: src/list.c:1260
+#, c-format
+msgid "--Volume Header--\n"
+msgstr "--卷 冊 標 頭--\n"
+
+#: src/list.c:1268
+#, c-format
+msgid "--Continued at byte %s--\n"
+msgstr "--於第 %s 位元組繼續--\n"
+
+#: src/list.c:1296
+msgid "Creating directory:"
+msgstr "正在建立目錄:"
+
+#: src/misc.c:456
+#, c-format
+msgid "Renaming %s to %s\n"
+msgstr "正在將 %s 重新命名為 %s\n"
+
+#: src/misc.c:465 src/misc.c:483
+#, c-format
+msgid "%s: Cannot rename to %s"
+msgstr "%s:無法重新命名為 %s"
+
+#: src/misc.c:488
+#, c-format
+msgid "Renaming %s back to %s\n"
+msgstr "將 %s 的名稱還原為 %s\n"
+
+#: src/misc.c:615
+msgid "Cannot save working directory"
+msgstr "無法儲存工作目錄"
+
+#: src/misc.c:621
+msgid "Cannot change working directory"
+msgstr "無法變更工作目錄"
+
+#: src/misc.c:711
+msgid "child process"
+msgstr "子進程"
+
+#: src/misc.c:720
+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"
+msgstr "使用 --wildcards 以啟用式樣匹配,或 --no-wildcards 來"
+
+#: src/names.c:597
+msgid "suppress this warning."
+msgstr "抑制這個警告。"
+
+#: src/names.c:612 src/names.c:630
+#, c-format
+msgid "%s: Not found in archive"
+msgstr "%s:在保存檔中找不到"
+
+#: src/names.c:615
+#, c-format
+msgid "%s: Required occurrence not found in archive"
+msgstr "%s:要求項目在保存檔中找不到"
+
+#: src/tar.c:79
+#, c-format
+msgid "Options `-%s' and `-%s' both want standard input"
+msgstr "選項「-%s」和「-%s」兩者都需要標準輸入"
+
+#: src/tar.c:156
+#, c-format
+msgid "%s: Invalid archive format"
+msgstr "%s:無效的保存檔格式"
+
+#: src/tar.c:180
+msgid "GNU features wanted on incompatible archive format"
+msgstr "不能在不兼容的保存檔格式中使用 GNU 功能"
+
+#: src/tar.c:241
+#, 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
+msgid ""
+"GNU `tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.\n"
+"\n"
+"Examples:\n"
+" tar -cf archive.tar foo bar # Create archive.tar from files foo and bar.\n"
+" 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"
+"範例:\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
+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 are:\n"
+"\n"
+" none, off never make backups\n"
+" t, numbered make numbered backups\n"
+" nil, existing numbered if numbered backups exist, simple otherwise\n"
+" never, simple always make simple backups\n"
+msgstr ""
+"備份檔的後置字串為‘~’,除非以 --suffix 選項或是 SIMPLE_BACKUP_SUFFIX\n"
+"環境變數指定。版本控制的方式可透過 --backup 選項或 VERSION_CONTROL 環境\n"
+"變數來選擇。可用的變數值為:\n"
+"\n"
+" none, off 永不製作備份 t, numbered 備份檔會加上數字\n"
+" nil, existing 若有數字的備份檔已經存在則使用數字,否則使用普通方式備份\n"
+" never, simple 永遠使用普通方式備份\n"
+
+#: src/tar.c:370
+msgid "Main operation mode:"
+msgstr "主要操作模式:"
+
+#: src/tar.c:373
+msgid "list the contents of an archive"
+msgstr "列出保存檔的內容"
+
+#: src/tar.c:375
+msgid "extract files from an archive"
+msgstr "從保存檔中解開檔案"
+
+#: src/tar.c:378
+msgid "create a new archive"
+msgstr "建立新的保存檔"
+
+#: src/tar.c:380
+msgid "find differences between archive and file system"
+msgstr "在保存檔與檔案系統之間找出差異"
+
+#: src/tar.c:383
+msgid "append files to the end of an archive"
+msgstr "加入檔案到保存檔末端"
+
+#: src/tar.c:385
+msgid "only append files newer than copy in archive"
+msgstr "只加入比保存檔中複本還新的檔案"
+
+#: src/tar.c:387
+msgid "append tar files to an archive"
+msgstr "加入 tar 檔案到保存檔中"
+
+#: src/tar.c:390
+msgid "delete from the archive (not on mag tapes!)"
+msgstr "從保存檔中刪除 (並非在磁帶上!)"
+
+#: src/tar.c:392
+msgid "test the archive volume label and exit"
+msgstr "測試保存檔卷冊標籤然後離開"
+
+#: src/tar.c:397
+msgid "Operation modifiers:"
+msgstr "運算變更項:"
+
+#: src/tar.c:400
+msgid "handle sparse files efficiently"
+msgstr "有效率地處理稀疏檔案"
+
+#: src/tar.c:401
+msgid "MAJOR[.MINOR]"
+msgstr "MAJOR[.MINOR]"
+
+#: src/tar.c:402
+msgid "set version of the sparse format to use (implies --sparse)"
+msgstr "設定稀疏格式版本以使用 (意味著 --sparse)"
+
+#: src/tar.c:404
+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
+msgid "handle new GNU-format incremental backup"
+msgstr "處理新型 GNU-格式之遞增備份"
+
+#: src/tar.c:408
+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
+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 "只有對於每一個在保存檔中第 NUM 個出現的檔案才會處理。此選項只有與 --delete、--diff、--extract 或 --list 等次命令之一合併使用時才有效,而且要經由命令列或是 -T 選項來提供一個檔案序列。預設的數目是 1。"
+
+#: src/tar.c:416
+msgid "archive is seekable"
+msgstr "保存檔是可尋指的"
+
+#: src/tar.c:418
+msgid "do not check device numbers when creating incremental archives"
+msgstr "不檢查裝置數量時建立遞增檔案"
+
+#: src/tar.c:421
+msgid "check device numbers when creating incremental archives (default)"
+msgstr "檢查裝置數量時建立遞增檔案 (預設)"
+
+#: src/tar.c:427
+msgid "Overwrite control:"
+msgstr "覆寫控制:"
+
+#: src/tar.c:430
+msgid "attempt to verify the archive after writing it"
+msgstr "嘗試在寫入之後驗證保存檔"
+
+#: src/tar.c:432
+msgid "remove files after adding them to the archive"
+msgstr "在加入檔案至保存檔之後移除它們"
+
+#: src/tar.c:434
+msgid "don't replace existing files when extracting"
+msgstr "解開時不要替換既有的檔案"
+
+#: src/tar.c:436
+msgid "don't replace existing files that are newer than their archive copies"
+msgstr "不要替換既有且比它們在保存檔中複本還新的檔案"
+
+#: src/tar.c:438
+msgid "overwrite existing files when extracting"
+msgstr "解開時覆寫既有檔案"
+
+#: src/tar.c:440
+msgid "remove each file prior to extracting over it"
+msgstr "在解開並覆寫檔案之前先移除它"
+
+#: src/tar.c:442
+msgid "empty hierarchies prior to extracting directory"
+msgstr "在解開目錄之前先清空階層結構"
+
+#: src/tar.c:444
+msgid "preserve metadata of existing directories"
+msgstr "保留既有目錄的後設資料"
+
+#: src/tar.c:446
+msgid "overwrite metadata of existing directories when extracting (default)"
+msgstr "解開時覆寫既有目錄的後設資料 (預設)"
+
+#: src/tar.c:452
+msgid "Select output stream:"
+msgstr "選取輸出串流:"
+
+#: src/tar.c:455
+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
+msgid "COMMAND"
+msgstr "命令"
+
+#: src/tar.c:457
+msgid "pipe extracted files to another program"
+msgstr "將解開的檔案管線引導到另外的程式"
+
+#: src/tar.c:459
+msgid "ignore exit codes of children"
+msgstr "忽略子進程的離開代碼"
+
+#: src/tar.c:461
+msgid "treat non-zero exit codes of children as error"
+msgstr "將子進程的非零離開代碼視為錯誤"
+
+#: src/tar.c:466
+msgid "Handling of file attributes:"
+msgstr "檔案屬性的處理:"
+
+#: src/tar.c:469
+msgid "force NAME as owner for added files"
+msgstr "強制以 NAME 做為加入檔案的擁有者"
+
+#: src/tar.c:471
+msgid "force NAME as group for added files"
+msgstr "強制以 NAME 做為加入檔案的群組"
+
+#: src/tar.c:472 src/tar.c:671
+msgid "DATE-OR-FILE"
+msgstr "檔案的日期"
+
+#: src/tar.c:473
+msgid "set mtime for added files from DATE-OR-FILE"
+msgstr "將加入檔案的 mtime 設定為 DATE-OR-FILE"
+
+#: src/tar.c:474
+msgid "CHANGES"
+msgstr "變更"
+
+#: src/tar.c:475
+msgid "force (symbolic) mode CHANGES for added files"
+msgstr "強制將 (符號) 模式 CHANGES 用於已加入檔案"
+
+#: src/tar.c:477
+msgid "METHOD"
+msgstr "方法"
+
+#: src/tar.c:478
+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
+msgid "don't extract file modified time"
+msgstr "不要解開檔案的修改時間"
+
+#: src/tar.c:484
+msgid "try extracting files with the same ownership"
+msgstr "嘗試以相同的擁有身分去解開檔案"
+
+#: src/tar.c:486
+msgid "extract files as yourself"
+msgstr "以自己的身分解開檔案"
+
+#: src/tar.c:488
+msgid "always use numbers for user/group names"
+msgstr "總是使用數字做為使用者/群組名稱"
+
+#: src/tar.c:490
+msgid "extract information about file permissions (default for superuser)"
+msgstr "解開檔案權限相關資訊 (預設用於超級使用者)"
+
+#: src/tar.c:494
+msgid "apply the user's umask when extracting permissions from the archive (default for ordinary users)"
+msgstr "從保存檔解開權限時套用使用者 umask (預設用於一般使用者)"
+
+#: src/tar.c:496
+msgid "sort names to extract to match archive"
+msgstr "解開時依名稱排序以符合保存檔"
+
+#: src/tar.c:499
+msgid "same as both -p and -s"
+msgstr "等同於指定 -p 與 -s"
+
+#: src/tar.c:501
+msgid "delay setting modification times and permissions of extracted directories until the end of extraction"
+msgstr "延遲設定解開目錄的修改時間和權限,直到解開結束"
+
+#: src/tar.c:504
+msgid "cancel the effect of --delay-directory-restore option"
+msgstr "取消 --delay-directory-restore 選項的效果"
+
+#: src/tar.c:509
+msgid "Device selection and switching:"
+msgstr "裝置選擇與切換:"
+
+#: src/tar.c:511
+msgid "ARCHIVE"
+msgstr "保存檔"
+
+#: src/tar.c:512
+msgid "use archive file or device ARCHIVE"
+msgstr "使用 ARCHIVE 檔案或 ARCHIVE 裝置"
+
+#: src/tar.c:514
+msgid "archive file is local even if it has a colon"
+msgstr "即使具有冒號,保存檔檔案仍位於本地端"
+
+#: src/tar.c:516
+msgid "use given rmt COMMAND instead of rmt"
+msgstr "使用給定的 rmt COMMAND 以代替 rmt"
+
+#: src/tar.c:518
+msgid "use remote COMMAND instead of rsh"
+msgstr "使用遠端 COMMAND 以代替 rsh"
+
+#: src/tar.c:522
+msgid "specify drive and density"
+msgstr "指定磁碟機與記錄密度"
+
+#: src/tar.c:536
+msgid "create/list/extract multi-volume archive"
+msgstr "建立/列表/解開 多重卷冊的保存檔"
+
+#: src/tar.c:538
+msgid "change tape after writing NUMBER x 1024 bytes"
+msgstr "在寫入 NUMBER x 1024 位元組之後更換磁帶"
+
+#: src/tar.c:540
+msgid "run script at end of each tape (implies -M)"
+msgstr "在每卷磁帶末端執行命令稿 (意指 -M)"
+
+#: src/tar.c:543
+msgid "use/update the volume number in FILE"
+msgstr "使用/更新 FILE 中的卷冊號碼"
+
+#: src/tar.c:548
+msgid "Device blocking:"
+msgstr "裝置分區:"
+
+#: src/tar.c:550
+msgid "BLOCKS"
+msgstr "區塊"
+
+#: src/tar.c:551
+msgid "BLOCKS x 512 bytes per record"
+msgstr "每筆記錄含有 BLOCKS x 512 位元組"
+
+#: src/tar.c:553
+msgid "NUMBER of bytes per record, multiple of 512"
+msgstr "每筆記錄 SIZE 位元組,為 512 的倍數"
+
+#: src/tar.c:555
+msgid "ignore zeroed blocks in archive (means EOF)"
+msgstr "忽略保存檔中零值的區塊 (意指 EOF)"
+
+#: src/tar.c:557
+msgid "reblock as we read (for 4.2BSD pipes)"
+msgstr "讀取時重新分區 (用於 4.2BSD 管線)"
+
+#: src/tar.c:562
+msgid "Archive format selection:"
+msgstr "保存檔格式選擇:"
+
+#: src/tar.c:564 tests/genfile.c:152
+msgid "FORMAT"
+msgstr "格式"
+
+#: src/tar.c:565
+msgid "create archive of the given format"
+msgstr "以給定格式建立保存檔"
+
+#: src/tar.c:567
+msgid "FORMAT is one of the following:"
+msgstr "符合下列任一 FORMAT:"
+
+#: src/tar.c:568
+msgid "old V7 tar format"
+msgstr "舊式 V7 tar 格式"
+
+#: src/tar.c:571
+msgid "GNU format as per tar <= 1.12"
+msgstr "tar <= 1.12 之 GNU 格式"
+
+#: src/tar.c:573
+msgid "GNU tar 1.13.x format"
+msgstr "GNU tar 1.13.x 格式"
+
+#: src/tar.c:575
+msgid "POSIX 1003.1-1988 (ustar) format"
+msgstr "POSIX 1003.1-1988 (ustar) 格式"
+
+#: src/tar.c:577
+msgid "POSIX 1003.1-2001 (pax) format"
+msgstr "POSIX 1003.1-2001 (pax) 格式"
+
+#: src/tar.c:578
+msgid "same as pax"
+msgstr "等同 pax"
+
+#: src/tar.c:581
+msgid "same as --format=v7"
+msgstr "等同 --format=v7"
+
+#: src/tar.c:584
+msgid "same as --format=posix"
+msgstr "等同 --format=posix"
+
+#: src/tar.c:585
+msgid "keyword[[:]=value][,keyword[[:]=value]]..."
+msgstr "關鍵字[[:]=值][,關鍵字[[:]=值]…]"
+
+#: src/tar.c:586
+msgid "control pax keywords"
+msgstr "控制 pax 的關鍵字"
+
+#: src/tar.c:587
+msgid "TEXT"
+msgstr "文字"
+
+#: src/tar.c:588
+msgid "create archive with volume name TEXT; at list/extract time, use TEXT as a globbing pattern for volume name"
+msgstr "以卷冊名稱 NAME 來建立保存檔。在列表/解開時,使用 TEXT 做為卷冊名稱的萬用比對式樣"
+
+#: src/tar.c:593
+msgid "Compression options:"
+msgstr "壓縮選項:"
+
+#: src/tar.c:595
+msgid "use archive suffix to determine the compression program"
+msgstr "利用保存檔字尾決定壓縮程式"
+
+#: src/tar.c:597
+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
+msgid "filter the archive through xz"
+msgstr "保存檔以 xz 過濾處理"
+
+#: src/tar.c:614
+msgid "PROG"
+msgstr "程式"
+
+#: src/tar.c:615
+msgid "filter through PROG (must accept -d)"
+msgstr "以 PROG 過濾處理 (必須接受 -d)"
+
+#: src/tar.c:620
+msgid "Local file selection:"
+msgstr "本機檔案選擇:"
+
+#: src/tar.c:623
+msgid "add given FILE to the archive (useful if its name starts with a dash)"
+msgstr "將給定的 FILE 加入保存檔 (如果它的名稱以減號開始時就很有用)"
+
+#: src/tar.c:624
+msgid "DIR"
+msgstr "目錄"
+
+#: src/tar.c:625
+msgid "change to directory DIR"
+msgstr "更改至目錄 DIR"
+
+#: src/tar.c:627
+msgid "get names to extract or create from FILE"
+msgstr "從 FILE 中取得要解開或建立的名稱"
+
+#: src/tar.c:629
+msgid "-T reads null-terminated names, disable -C"
+msgstr "-T 讀取零值終結的名稱,停用 -C"
+
+#: src/tar.c:631
+msgid "disable the effect of the previous --null option"
+msgstr "停用先前 --null 選項的效果"
+
+#: src/tar.c:633
+msgid "unquote filenames read with -T (default)"
+msgstr "去除以 -T 讀取的檔名引號 (預設)"
+
+#: src/tar.c:635
+msgid "do not unquote filenames read with -T"
+msgstr "不去除以 -T 讀取的檔名引號"
+
+#: src/tar.c:636 tests/genfile.c:135
+msgid "PATTERN"
+msgstr "式樣"
+
+#: src/tar.c:637
+msgid "exclude files, given as a PATTERN"
+msgstr "排除給定式樣的檔案"
+
+#: src/tar.c:639
+msgid "exclude patterns listed in FILE"
+msgstr "排除 FILE 中所列出的式樣"
+
+#: src/tar.c:641
+msgid "exclude contents of directories containing CACHEDIR.TAG, except for the tag file itself"
+msgstr "排除包含 CACHEDIR.TAG 的目錄內容,除了該標記檔案本身"
+
+#: src/tar.c:644
+msgid "exclude everything under directories containing CACHEDIR.TAG"
+msgstr "排除包含 CACHEDIR.TAG 的目錄之下所有東西"
+
+#: src/tar.c:647
+msgid "exclude directories containing CACHEDIR.TAG"
+msgstr "排除包含 CACHEDIR.TAG 的目錄"
+
+#: src/tar.c:649
+msgid "exclude contents of directories containing FILE, except for FILE itself"
+msgstr "排除包含 FILE 的目錄內容,除了該檔案本身"
+
+#: src/tar.c:652
+msgid "exclude everything under directories containing FILE"
+msgstr "排除包含 FILE 的目錄之下所有東西"
+
+#: src/tar.c:654
+msgid "exclude directories containing FILE"
+msgstr "排除包含 FILE 的目錄"
+
+#: src/tar.c:656
+msgid "exclude version control system directories"
+msgstr "排除版本控制系統目錄"
+
+#: src/tar.c:658
+msgid "avoid descending automatically in directories"
+msgstr "避免自動在目錄中遞降"
+
+#: src/tar.c:660
+msgid "stay in local file system when creating archive"
+msgstr "建立保存檔時保持在本地檔案系統中"
+
+#: src/tar.c:662
+msgid "recurse into directories (default)"
+msgstr "遞迴進入目錄 (預設)"
+
+#: src/tar.c:664
+msgid "don't strip leading `/'s from file names"
+msgstr "不要從檔案名稱中截去前導的 '/'"
+
+#: src/tar.c:666
+msgid "follow symlinks; archive and dump the files they point to"
+msgstr "跟隨符號連結;保存和傾印它們所指涉的檔案"
+
+#: src/tar.c:668
+msgid "follow hard links; archive and dump the files they refer to"
+msgstr "跟隨硬式連結;保存和傾印它們所參考的檔案"
+
+#: src/tar.c:669
+msgid "MEMBER-NAME"
+msgstr "成員-名稱"
+
+#: src/tar.c:670
+msgid "begin at member MEMBER-NAME in the archive"
+msgstr "從保存檔中名為 MEMBER-NAME 的成員開始"
+
+#: src/tar.c:672
+msgid "only store files newer than DATE-OR-FILE"
+msgstr "只儲存比 DATE-OF-FILE 還新的檔案"
+
+#: src/tar.c:674
+msgid "DATE"
+msgstr "日期"
+
+#: src/tar.c:675
+msgid "compare date and time when data changed only"
+msgstr "只有當資料變更時才比較日期和時間"
+
+#: src/tar.c:676
+msgid "CONTROL"
+msgstr "控制"
+
+#: src/tar.c:677
+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
+msgid "STRING"
+msgstr "字串"
+
+#: src/tar.c:679
+msgid "backup before removal, override usual suffix ('~' unless overridden by environment variable SIMPLE_BACKUP_SUFFIX)"
+msgstr "移除之前先備份並覆寫常用後置文字 (「~」除非被環境變數 SIMPLE_BACKUP_SUFFIX 所蓋過)"
+
+#: src/tar.c:684
+msgid "File name transformations:"
+msgstr "檔案名稱變換:"
+
+#: src/tar.c:686
+msgid "strip NUMBER leading components from file names on extraction"
+msgstr "從檔案名稱中截去以 NUMBER 為首的成分"
+
+#: src/tar.c:688
+msgid "EXPRESSION"
+msgstr "表示式"
+
+#: src/tar.c:689
+msgid "use sed replace EXPRESSION to transform file names"
+msgstr "利用 sed 將 EXPRESSION 替代為變換檔案名稱"
+
+#: src/tar.c:695
+msgid "File name matching options (affect both exclude and include patterns):"
+msgstr "檔案名稱吻合選項 (同時影響排除和包含式樣同者):"
+
+#: src/tar.c:698
+msgid "ignore case"
+msgstr "忽略大小寫"
+
+#: src/tar.c:700
+msgid "patterns match file name start"
+msgstr "吻合檔案名稱開頭的式樣"
+
+#: src/tar.c:702
+msgid "patterns match after any `/' (default for exclusion)"
+msgstr "式樣吻合任何「/」之後的式樣 (預設排除)"
+
+#: src/tar.c:704
+msgid "case sensitive matching (default)"
+msgstr "大小寫需相符的吻合 (預設)"
+
+#: src/tar.c:706
+msgid "use wildcards (default for exclusion)"
+msgstr "使用萬用字元 (預設排除)"
+
+#: src/tar.c:708
+msgid "verbatim string matching"
+msgstr "逐字進行吻合"
+
+#: src/tar.c:710
+msgid "wildcards do not match `/'"
+msgstr "萬用字元不會吻合「/」"
+
+#: src/tar.c:712
+msgid "wildcards match `/' (default for exclusion)"
+msgstr "萬用字元會吻合「/」(預設排除)"
+
+#: src/tar.c:717
+msgid "Informative output:"
+msgstr "富含資訊的輸出:"
+
+#: src/tar.c:720
+msgid "verbosely list files processed"
+msgstr "詳細列出處理過的檔案"
+
+#: src/tar.c:722
+msgid "display progress messages every NUMBERth record (default 10)"
+msgstr "每幾項記錄顯示一次進度訊息 (預設 10)"
+
+#: src/tar.c:724
+msgid "ACTION"
+msgstr "動作"
+
+#: src/tar.c:725
+msgid "execute ACTION on each checkpoint"
+msgstr "於每個查核點執行 ACTION"
+
+#: src/tar.c:728
+msgid "print a message if not all links are dumped"
+msgstr "如果並非所有連結都被傾印則印出訊息"
+
+#: src/tar.c:729
+msgid "SIGNAL"
+msgstr "信號"
+
+#: src/tar.c:730
+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
+msgid "print file modification dates in UTC"
+msgstr "以 UTC 格式印出檔案修改日期"
+
+#: src/tar.c:737
+msgid "send verbose output to FILE"
+msgstr "將詳細輸出送至 FILE"
+
+#: src/tar.c:739
+msgid "show block number within archive with each message"
+msgstr "每則訊息附帶顯示在保存檔中的區塊號碼"
+
+#: src/tar.c:741
+msgid "ask for confirmation for every action"
+msgstr "任何動作都要求確認"
+
+#: src/tar.c:744
+msgid "show tar defaults"
+msgstr "顯示 tar 預設值"
+
+#: src/tar.c:746
+msgid "when listing or extracting, list each directory that does not match search criteria"
+msgstr "當表列或解開時,列出每一個不符合搜尋條件的目錄"
+
+#: src/tar.c:748
+msgid "show file or archive names after transformation"
+msgstr "顯示變換之後的檔案或保存檔名稱"
+
+#: src/tar.c:751
+msgid "STYLE"
+msgstr "樣式"
+
+#: src/tar.c:752
+msgid "set name quoting style; see below for valid STYLE values"
+msgstr "設定名稱引號樣式;參看下列的有效樣式值"
+
+#: src/tar.c:754
+msgid "additionally quote characters from STRING"
+msgstr "來自 STRING 的額外引號字元"
+
+#: src/tar.c:756
+msgid "disable quoting for characters from STRING"
+msgstr "停用來自字串的引號字元"
+
+#: src/tar.c:761
+msgid "Compatibility options:"
+msgstr "相容選項:"
+
+#: src/tar.c:764
+msgid "when creating, same as --old-archive; when extracting, same as --no-same-owner"
+msgstr "當建立時,等同於 --old-archive。當解開時,等同於 --no-same-owner"
+
+#: src/tar.c:769
+msgid "Other options:"
+msgstr "其他選項:"
+
+#: src/tar.c:772
+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:930
+msgid "Conflicting compression options"
+msgstr "互相抵觸的壓縮選項"
+
+#: src/tar.c:986
+#, c-format
+msgid "Unknown signal name: %s"
+msgstr "不明的信號名稱:%s"
+
+#: src/tar.c:1010
+msgid "Date sample file not found"
+msgstr "找不到日期範例檔案"
+
+#: src/tar.c:1018
+#, c-format
+msgid "Substituting %s for unknown date format %s"
+msgstr "以 %s 代替不明的日期格式 %s"
+
+#: src/tar.c:1043
+#, c-format
+msgid "Option %s: Treating date `%s' as %s"
+msgstr "選項 %1$s: 以 %3$s 格式來處理日期「%2$s」"
+
+#: src/tar.c:1120
+#, c-format
+msgid "%s: file list already read"
+msgstr "%s:已經讀取檔案清單"
+
+#: src/tar.c:1185
+#, 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:1253
+msgid ""
+"\n"
+"*This* tar defaults to:\n"
+msgstr ""
+"\n"
+"*這個* tar 預設為:\n"
+
+#: src/tar.c:1294
+msgid "Invalid blocking factor"
+msgstr "無效的分區因子"
+
+#: src/tar.c:1401
+msgid "Invalid tape length"
+msgstr "無效的磁帶長度"
+
+#: src/tar.c:1441
+msgid "More than one threshold date"
+msgstr "一個以上的限定日期"
+
+#: src/tar.c:1496 src/tar.c:1499
+msgid "Invalid sparse version value"
+msgstr "無效的稀疏版本值"
+
+#: src/tar.c:1584
+msgid "--atime-preserve='system' is not supported on this platform"
+msgstr "--atime-preserve='system' 於這個平台未被支援"
+
+#: src/tar.c:1609
+msgid "--checkpoint value is not an integer"
+msgstr "--checkpoint 值不是整數"
+
+#: src/tar.c:1710
+#, c-format
+msgid "%s: Invalid group"
+msgstr "%s:無效的群組"
+
+#: src/tar.c:1717
+msgid "Invalid mode given on option"
+msgstr "選項中的模式無效"
+
+#: src/tar.c:1774
+msgid "Invalid number"
+msgstr "無效的號碼"
+
+#: src/tar.c:1796
+msgid "Invalid owner"
+msgstr "無效的擁有者"
+
+#: src/tar.c:1822
+msgid "The --preserve option is deprecated, use --preserve-permissions --preserve-order instead"
+msgstr "--preserve 選項不宜再用,請以 --preserve-permissions --preserve-order 做為替代"
+
+#: src/tar.c:1832
+msgid "Invalid record size"
+msgstr "無效的記錄大小"
+
+#: src/tar.c:1835
+#, c-format
+msgid "Record size must be a multiple of %d."
+msgstr "記錄大小必須是 %d 的倍數。"
+
+#: src/tar.c:1872
+msgid "Invalid number of elements"
+msgstr "無效的元素號碼"
+
+#: src/tar.c:1892
+msgid "Only one --to-command option allowed"
+msgstr "只允許一個 --to-command 選項"
+
+#: src/tar.c:1968
+#, c-format
+msgid "Malformed density argument: %s"
+msgstr "異常的密度引數:%s"
+
+#: src/tar.c:1994
+#, c-format
+msgid "Unknown density: `%c'"
+msgstr "不明的密度:「%c」"
+
+#: src/tar.c:2011
+#, c-format
+msgid "Options `-[0-7][lmh]' not supported by *this* tar"
+msgstr "此版本的 tar 不支援「-[0-7][ lmh]」選項"
+
+#: src/tar.c:2046
+msgid "[FILE]..."
+msgstr "[FILE]…"
+
+#: src/tar.c:2152
+#, c-format
+msgid "Old option `%c' requires an argument."
+msgstr "舊的選項「%c」需要一個引數。"
+
+#: src/tar.c:2234
+msgid "--occurrence is meaningless without a file list"
+msgstr "若無檔案列表,--occurrence 便不具意義"
+
+#: src/tar.c:2240
+msgid "--occurrence cannot be used in the requested operation mode"
+msgstr "--occurrence 無法於要求的作業模式中使用"
+
+#: src/tar.c:2270
+msgid "Multiple archive files require `-M' option"
+msgstr "指定多個保存檔時需要「-M」選項"
+
+#: src/tar.c:2275
+msgid "Cannot combine --listed-incremental with --newer"
+msgstr "無法同時使用 --listed-incremental 及 --newer"
+
+#: src/tar.c:2292
+#, 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
+msgid "Cannot verify multi-volume archives"
+msgstr "無法驗證多重卷冊的保存檔"
+
+#: src/tar.c:2307
+msgid "Cannot verify compressed archives"
+msgstr "無法驗證壓縮過的保存檔"
+
+#: src/tar.c:2313
+msgid "Cannot use multi-volume compressed archives"
+msgstr "無法使用多重卷冊的壓縮保存檔"
+
+#: src/tar.c:2319
+msgid "Cannot concatenate compressed archives"
+msgstr "無法串接壓縮過的檔案"
+
+#: src/tar.c:2331
+msgid "--pax-option can be used only on POSIX archives"
+msgstr "--pax-option 只能用於 POSIX 保存檔"
+
+#: src/tar.c:2349
+msgid "Volume length cannot be less than record size"
+msgstr "卷冊長度無法少於記錄大小"
+
+#: src/tar.c:2352
+msgid "--preserve-order is not compatible with --listed-incremental"
+msgstr "--preserve-order 與 --listed-incremental 不相容"
+
+#: src/tar.c:2363
+msgid "Cowardly refusing to create an empty archive"
+msgstr "低調拒絕建立空白的保存檔"
+
+#: src/tar.c:2388
+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:2528
+#, c-format
+msgid "Exiting with failure status due to previous errors"
+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 位元組"
+
+#: src/xheader.c:156
+#, c-format
+msgid "Keyword %s is unknown or not yet implemented"
+msgstr "關鍵字 %s 為未知或尚未實作"
+
+#: src/xheader.c:182
+#, c-format
+msgid "Pattern %s cannot be used"
+msgstr "式樣 %s 無法使用"
+
+#: src/xheader.c:192
+#, c-format
+msgid "Keyword %s cannot be overridden"
+msgstr "關鍵字 %s 無法被蓋過"
+
+#: src/xheader.c:496
+msgid "Malformed extended header: missing length"
+msgstr "異常的擴充標頭:長度缺少"
+
+#: src/xheader.c:504
+msgid "Extended header length is out of allowed range"
+msgstr "擴充標頭長度超出允許範圍"
+
+#: src/xheader.c:511
+#, c-format
+msgid "Extended header length %*s is out of range"
+msgstr "擴充標頭長度 %*s 超出範圍"
+
+#: src/xheader.c:523
+msgid "Malformed extended header: missing blank after length"
+msgstr "異常的擴充標頭:在長度之後缺少空白"
+
+#: src/xheader.c:531
+msgid "Malformed extended header: missing equal sign"
+msgstr "異常的擴充標頭:缺少等號"
+
+#: src/xheader.c:537
+msgid "Malformed extended header: missing newline"
+msgstr "異常的擴充標頭:缺少新列"
+
+#: src/xheader.c:574
+#, c-format
+msgid "Ignoring unknown extended header keyword `%s'"
+msgstr "忽略不明擴充標頭關鍵字「%s」"
+
+#: src/xheader.c:778
+#, 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
+#, 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
+#, c-format
+msgid "Malformed extended header: invalid %s=%s"
+msgstr "異常的擴充標頭:無效的 %s=%s"
+
+#: src/xheader.c:1238 src/xheader.c:1263 src/xheader.c:1313
+#, c-format
+msgid "Malformed extended header: excess %s=%s"
+msgstr "異常的擴充標頭:過剩的 %s=%s"
+
+#: src/xheader.c:1326
+#, c-format
+msgid "Malformed extended header: invalid %s: unexpected delimiter %c"
+msgstr "異常的擴充標頭:無效的 %s:未預期的分隔符號 %c"
+
+#: src/xheader.c:1336
+#, c-format
+msgid "Malformed extended header: invalid %s: odd number of values"
+msgstr "異常的擴充標頭:無效的 %s:奇怪的數值數量"
+
+#: src/checkpoint.c:107
+#, c-format
+msgid "%s: not a valid timeout"
+msgstr "%s:不是有效的時間限制"
+
+#: src/checkpoint.c:112
+#, c-format
+msgid "%s: unknown checkpoint action"
+msgstr "%s:不明查核點動作"
+
+#: src/checkpoint.c:132
+msgid "write"
+msgstr "寫入"
+
+#: src/checkpoint.c:132
+msgid "read"
+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
+#, c-format
+msgid "Write checkpoint %u"
+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
+#, c-format
+msgid "Read checkpoint %u"
+msgstr "讀取的查核點 %u"
+
+#: tests/genfile.c:111
+msgid ""
+"genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n"
+msgstr ""
+"genfile 在 GNU paxutils 測試套件中用於操控資料檔案。\n"
+"選項:\n"
+
+#: tests/genfile.c:126
+msgid "File creation options:"
+msgstr "檔案建立選項:"
+
+#: tests/genfile.c:127 tests/genfile.c:138
+msgid "SIZE"
+msgstr "大小"
+
+#: tests/genfile.c:128
+msgid "Create file of the given SIZE"
+msgstr "以給定 SIZE 建立檔案。"
+
+#: tests/genfile.c:130
+msgid "Write to file NAME, instead of standard output"
+msgstr "寫入檔案 NAME,以代替標準輸出"
+
+#: tests/genfile.c:132
+msgid "Read file names from FILE"
+msgstr "從 FILE 讀取檔案名稱"
+
+#: tests/genfile.c:134
+msgid "-T reads null-terminated names"
+msgstr "-T 讀取零值終結的名稱"
+
+#: tests/genfile.c:136
+msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"
+msgstr "以給定 PATTERN 填充檔案。PATTERN 是「default」或「zeros」"
+
+#: tests/genfile.c:139
+msgid "Size of a block for sparse file"
+msgstr "用於稀疏檔案的區塊大小"
+
+#: tests/genfile.c:141
+msgid "Generate sparse file. Rest of the command line gives the file map."
+msgstr "產生稀疏檔案。命令列的其餘部份給出檔案對映。"
+
+#: tests/genfile.c:143
+msgid "OFFSET"
+msgstr "偏移值"
+
+#: tests/genfile.c:144
+msgid "Seek to the given offset before writing data"
+msgstr "寫入資料之前尋指給定的偏移值"
+
+#: tests/genfile.c:150
+msgid "File statistics options:"
+msgstr "檔案統計選項:"
+
+#: tests/genfile.c:153
+msgid "Print contents of struct stat for each given file. Default FORMAT is: "
+msgstr "列印每個給定檔案的結構狀態內容。預設 FORMAT 為:"
+
+#: tests/genfile.c:160
+msgid "Synchronous execution options:"
+msgstr "同步的執行選項:"
+
+#: tests/genfile.c:163
+msgid "Execute given COMMAND. Useful with --checkpoint and one of --cut, --append, --touch"
+msgstr "執行給定的 COMMAND。同時與 --checkpoint 和 --cut, --append, --touch 之一使用會有作用"
+
+#: tests/genfile.c:166
+msgid "Perform given action (see below) upon reaching checkpoint NUMBER"
+msgstr "當達到查核點 NUMBER 時實行給定動作 (參看以下)"
+
+#: tests/genfile.c:169
+msgid "Set date for next --touch option"
+msgstr "設定後續 --touch 選項所需的日期"
+
+#: tests/genfile.c:172
+msgid "Display executed checkpoints and exit status of COMMAND"
+msgstr "顯示已執行的查核點以及 COMMAND 的離開狀態"
+
+#: tests/genfile.c:177
+msgid "Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."
+msgstr "同步的執行動作。當到達由 --checkpoint 選項所給定的查核點編號時,這些動作會被執行。"
+
+#: tests/genfile.c:180
+msgid "Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"
+msgstr "依先前 --length 選項指定的大小來截斷檔案 (如果它未被給定就是 0)"
+
+#: tests/genfile.c:184
+msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option."
+msgstr "附加 SIZE 位元組到 FILE。SIZE 是由先前 --length 選項所給定。"
+
+#: tests/genfile.c:187
+msgid "Update the access and modification times of FILE"
+msgstr "更新檔案的存取和修改時間"
+
+#: tests/genfile.c:190
+msgid "Execute COMMAND"
+msgstr "執行 COMMAND"
+
+#: tests/genfile.c:240
+#, c-format
+msgid "Invalid size: %s"
+msgstr "無效的大小:%s"
+
+#: tests/genfile.c:245
+#, c-format
+msgid "Number out of allowed range: %s"
+msgstr "號碼超出允許的範圍:%s"
+
+#: tests/genfile.c:248
+#, c-format
+msgid "Negative size: %s"
+msgstr "負值大小:%s"
+
+#: tests/genfile.c:261 tests/genfile.c:558
+#, c-format
+msgid "stat(%s) failed"
+msgstr "狀態(%s) 失敗"
+
+#: tests/genfile.c:264
+#, c-format
+msgid "requested file length %lu, actual %lu"
+msgstr "要求檔案長度 %lu,實際則是 %lu"
+
+#: tests/genfile.c:268
+#, c-format
+msgid "created file is not sparse"
+msgstr "建立的不是稀疏檔案"
+
+#: tests/genfile.c:353
+#, c-format
+msgid "Error parsing number near `%s'"
+msgstr "剖析數字接近「%s」時發生錯誤"
+
+#: tests/genfile.c:359
+#, c-format
+msgid "Unknown date format"
+msgstr "不明的日期格式"
+
+#: tests/genfile.c:382
+msgid "[ARGS...]"
+msgstr "[引數…]"
+
+#: tests/genfile.c:419 tests/genfile.c:459 tests/genfile.c:512
+#: tests/genfile.c:662 tests/genfile.c:676
+#, c-format
+msgid "cannot open `%s'"
+msgstr "無法開啟「%s」"
+
+#: tests/genfile.c:425
+msgid "cannot seek"
+msgstr "無法尋指"
+
+#: tests/genfile.c:442
+#, c-format
+msgid "file name contains null character"
+msgstr "檔案名稱含有空字元"
+
+#: tests/genfile.c:507
+#, c-format
+msgid "cannot generate sparse files on standard output, use --file option"
+msgstr "無法於標準輸出產生稀疏檔案,使用 --file 選項"
+
+#: tests/genfile.c:585
+#, c-format
+msgid "incorrect mask (near `%s')"
+msgstr "不正確遮罩 (接近「%s」)"
+
+#: tests/genfile.c:591 tests/genfile.c:624
+#, c-format
+msgid "Unknown field `%s'"
+msgstr "不明的欄位「%s」"
+
+#: tests/genfile.c:651
+#, c-format
+msgid "cannot set time on `%s'"
+msgstr "無法設定時間為「%s」"
+
+#: tests/genfile.c:805
+#, c-format
+msgid "Command exited successfully\n"
+msgstr "成功離開命令\n"
+
+#: tests/genfile.c:807
+#, c-format
+msgid "Command failed with status %d\n"
+msgstr "命令以狀態 %d 失敗\n"
+
+#: tests/genfile.c:811
+#, c-format
+msgid "Command terminated on signal %d\n"
+msgstr "命令於信號 %d 終止\n"
+
+#: tests/genfile.c:813
+#, c-format
+msgid "Command stopped on signal %d\n"
+msgstr "命令於信號 %d 停止\n"
+
+#: tests/genfile.c:816
+#, c-format
+msgid "Command dumped core\n"
+msgstr "命令傾印核心\n"
+
+#: tests/genfile.c:819
+#, c-format
+msgid "Command terminated\n"
+msgstr "命令終止\n"
+
+#: tests/genfile.c:851
+#, c-format
+msgid "--stat requires file names"
+msgstr "--stat 需要檔案名稱"
+
+#: tests/genfile.c:864
+#, c-format
+msgid "too many arguments"
+msgstr "太多引數"
diff --git a/rmt/Makefile.am b/rmt/Makefile.am
new file mode 100644
index 00000000..37f621a1
--- /dev/null
+++ b/rmt/Makefile.am
@@ -0,0 +1,13 @@
+rmtdir=$(DEFAULT_RMT_DIR)
+rmt_PROGRAMS = @PU_RMT_PROG@
+EXTRA_PROGRAMS = rmt
+
+rmt_SOURCES = rmt.c
+
+INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib
+
+LDADD = ../gnu/libgnu.a $(LIBINTL)
+
+rmt_LDADD = $(LDADD) $(LIB_SETSOCKOPT)
+
+rmt.o: ../gnu/configmake.h
diff --git a/rmt/Makefile.in b/rmt/Makefile.in
new file mode 100644
index 00000000..b0f01d10
--- /dev/null
+++ b/rmt/Makefile.in
@@ -0,0 +1,1361 @@
+# 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@
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@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@
+EXTRA_PROGRAMS = rmt$(EXEEXT)
+subdir = rmt
+DIST_COMMON = $(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/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/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+ $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.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/double-slash-root.m4 $(top_srcdir)/m4/dup.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/exponentd.m4 \
+ $(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fchdir.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/filenamecat.m4 \
+ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
+ $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+ $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
+ $(top_srcdir)/m4/getcwd-abort-bug.m4 \
+ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.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/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/iswblank.m4 \
+ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.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/libunistring-base.m4 \
+ $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
+ $(top_srcdir)/m4/linkat.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/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
+ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
+ $(top_srcdir)/m4/mkdtemp.m4 $(top_srcdir)/m4/mkfifo.m4 \
+ $(top_srcdir)/m4/mkfifoat.m4 $(top_srcdir)/m4/mknod.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/msvc-inval.m4 \
+ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/open.m4 \
+ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \
+ $(top_srcdir)/m4/parse-datetime.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/raise.m4 \
+ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/read.m4 \
+ $(top_srcdir)/m4/readdir.m4 $(top_srcdir)/m4/readlink.m4 \
+ $(top_srcdir)/m4/readlinkat.m4 $(top_srcdir)/m4/realloc.m4 \
+ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
+ $(top_srcdir)/m4/renameat.m4 $(top_srcdir)/m4/rewinddir.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/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
+ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stdalign.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/strtol.m4 \
+ $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
+ $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+ $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
+ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
+ $(top_srcdir)/m4/sys_types_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/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+ $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+ $(top_srcdir)/m4/utimensat.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 =
+am__installdirs = "$(DESTDIR)$(rmtdir)"
+PROGRAMS = $(rmt_PROGRAMS)
+am_rmt_OBJECTS = rmt.$(OBJEXT)
+rmt_OBJECTS = $(am_rmt_OBJECTS)
+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
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = @pkglibexecdir@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+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_CHDIR = @GNULIB_CHDIR@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@
+GNULIB_DIRFD = @GNULIB_DIRFD@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
+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_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+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_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
+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_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
+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_GETS = @GNULIB_GETS@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
+GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
+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_MBTOWC = @GNULIB_MBTOWC@
+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_NONBLOCKING = @GNULIB_NONBLOCKING@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
+GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
+GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
+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_REWINDDIR = @GNULIB_REWINDDIR@
+GNULIB_RMDIR = @GNULIB_RMDIR@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SIGACTION = @GNULIB_SIGACTION@
+GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
+GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+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_STRERROR_R = @GNULIB_STRERROR_R@
+GNULIB_STRNCAT = @GNULIB_STRNCAT@
+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_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TIMEGM = @GNULIB_TIMEGM@
+GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNLINK = @GNULIB_UNLINK@
+GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
+GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
+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_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
+GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
+GREP = @GREP@
+HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
+HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
+HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
+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_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_DUP3 = @HAVE_DUP3@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FACCESSAT = @HAVE_FACCESSAT@
+HAVE_FCHDIR = @HAVE_FCHDIR@
+HAVE_FCHMODAT = @HAVE_FCHMODAT@
+HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSTATAT = @HAVE_FSTATAT@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_FUTIMENS = @HAVE_FUTIMENS@
+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_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWBLANK = @HAVE_ISWBLANK@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
+HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
+HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
+HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
+HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
+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_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSLEN = @HAVE_MBSLEN@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMCHR = @HAVE_MEMCHR@
+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_MKSTEMP = @HAVE_MKSTEMP@
+HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
+HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
+HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
+HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
+HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
+HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
+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_SIGSET_T = @HAVE_SIGSET_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_STRINGS_H = @HAVE_STRINGS_H@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRPTIME = @HAVE_STRPTIME@
+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_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+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_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNLINKAT = @HAVE_UNLINKAT@
+HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
+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_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
+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@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+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_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_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_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_SIGNAL_H = @NEXT_SIGNAL_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_SYS_TYPES_H = @NEXT_SYS_TYPES_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_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PU_RMT_PROG = @PU_RMT_PROG@
+RANLIB = @RANLIB@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
+REPLACE_DIRFD = @REPLACE_DIRFD@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_DUP = @REPLACE_DUP@
+REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+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_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
+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_MALLOC = @REPLACE_MALLOC@
+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_MBTOWC = @REPLACE_MBTOWC@
+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_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
+REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
+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_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPNCPY = @REPLACE_STPNCPY@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
+REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNDUP = @REPLACE_STRNDUP@
+REPLACE_STRNLEN = @REPLACE_STRNLEN@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
+REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
+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_WCSWIDTH = @REPLACE_WCSWIDTH@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
+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@
+STDALIGN_H = @STDALIGN_H@
+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@
+gltests_WITNESS = @gltests_WITNESS@
+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@
+lispdir = @lispdir@
+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@
+rmtdir = $(DEFAULT_RMT_DIR)
+rmt_PROGRAMS = @PU_RMT_PROG@
+rmt_SOURCES = rmt.c
+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
+
+.SUFFIXES:
+.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 ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ 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 \
+ *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):
+install-rmtPROGRAMS: $(rmt_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(rmtdir)" || $(MKDIR_P) "$(DESTDIR)$(rmtdir)"
+ @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)'; 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)
+
+installcheck-rmtPROGRAMS: $(rmt_PROGRAMS)
+ bad=0; pid=$$$$; list="$(rmt_PROGRAMS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | \
+ sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(rmtdir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
+rmt$(EXEEXT): $(rmt_OBJECTS) $(rmt_DEPENDENCIES)
+ @rm -f rmt$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(rmt_OBJECTS) $(rmt_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rmt.Po@am__quote@
+
+.c.o:
+@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@ $(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) '$<'`
+
+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: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ 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: $(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
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+ for dir in "$(DESTDIR)$(rmtdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: 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-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:
+
+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-rmtPROGRAMS mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+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
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-rmtPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-rmtPROGRAMS 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-rmtPROGRAMS install-strip \
+ installcheck installcheck-am installcheck-rmtPROGRAMS \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+ ps ps-am tags uninstall uninstall-am uninstall-rmtPROGRAMS
+
+
+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
new file mode 100644
index 00000000..fff83b87
--- /dev/null
+++ b/rmt/rmt.c
@@ -0,0 +1,831 @@
+/* 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 <configmake.h>
+#include <argp.h>
+#include <argp-version-etc.h>
+#include <getopt.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
+#endif
+#ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
+#endif
+
+
+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
+trimnl (char *str)
+{
+ if (str)
+ {
+ size_t len = strlen (str);
+ if (len > 1 && str[len-1] == '\n')
+ str[len-1] = 0;
+ }
+}
+
+
+
+char *input_buf_ptr = NULL;
+size_t input_buf_size = 0;
+
+static char *
+rmt_read (void)
+{
+ ssize_t rc = getline (&input_buf_ptr, &input_buf_size, stdin);
+ if (rc > 0)
+ {
+ DEBUG1 (10, "C: %s", input_buf_ptr);
+ trimnl (input_buf_ptr);
+ return input_buf_ptr;
+ }
+ DEBUG (10, "reached EOF");
+ return NULL;
+}
+
+static void
+rmt_write (const char *fmt, ...)
+{
+ va_list ap;
+ va_start (ap, fmt);
+ vfprintf (stdout, fmt, ap);
+ fflush (stdout);
+ VDEBUG (10, "S: ", fmt, ap);
+}
+
+static void
+rmt_reply (uintmax_t code)
+{
+ char buf[UINTMAX_STRSIZE_BOUND];
+ rmt_write ("A%s\n", umaxtostr (code, buf));
+}
+
+static 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);
+ fflush (stdout);
+}
+
+static void
+rmt_error (int code)
+{
+ rmt_error_message (code, strerror (code));
+}
+
+
+char *record_buffer_ptr;
+size_t record_buffer_size;
+
+static void
+prepare_record_buffer (size_t size)
+{
+ if (size > record_buffer_size)
+ {
+ record_buffer_ptr = xrealloc (record_buffer_ptr, size);
+ record_buffer_size = size;
+ }
+}
+
+
+
+int device_fd = -1;
+
+struct rmt_kw
+{
+ char const *name;
+ size_t len;
+ int value;
+};
+
+#define RMT_KW(s,v) { #s, sizeof (#s) - 1, v }
+
+static 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 (pfx)
+ {
+ size_t pfxlen = strlen (pfx);
+ if (slen > pfxlen && memcmp (s, pfx, pfxlen) == 0)
+ {
+ s += pfxlen;
+ slen -= pfxlen;
+ }
+ }
+
+ for (; kw->name; kw++)
+ {
+ 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;
+ }
+ }
+ return 1;
+}
+
+static const char *
+skip_ws (const char *s)
+{
+ while (*s && c_isblank (*s))
+ s++;
+ return s;
+}
+
+static struct rmt_kw const open_flag_kw[] =
+ {
+#ifdef O_APPEND
+ RMT_KW(APPEND, O_APPEND),
+#endif
+ RMT_KW(CREAT, O_CREAT),
+#ifdef O_DSYNC
+ RMT_KW(DSYNC, O_DSYNC),
+#endif
+ RMT_KW(EXCL, O_EXCL),
+#ifdef O_LARGEFILE
+ RMT_KW(LARGEFILE, O_LARGEFILE),
+#endif
+#ifdef O_NOCTTY
+ RMT_KW(NOCTTY, O_NOCTTY),
+#endif
+#if O_NONBLOCK
+ RMT_KW(NONBLOCK, O_NONBLOCK),
+#endif
+ RMT_KW(RDONLY, O_RDONLY),
+ RMT_KW(RDWR, O_RDWR),
+#ifdef O_RSYNC
+ RMT_KW(RSYNC, O_RSYNC),
+#endif
+#ifdef O_SYNC
+ RMT_KW(SYNC, O_SYNC),
+#endif
+ RMT_KW(TRUNC, O_TRUNC),
+ RMT_KW(WRONLY, O_WRONLY),
+ { NULL }
+ };
+
+static int
+decode_open_flag (const char *mstr, int *pmode)
+{
+ int numeric_mode = 0;
+ int mode = 0;
+ const char *p;
+
+ mstr = skip_ws (mstr);
+ if (c_isdigit (*mstr))
+ {
+ numeric_mode = strtol (mstr, (char**) &p, 10);
+ mstr = skip_ws (p);
+ }
+
+ if (*mstr)
+ {
+ while (mstr)
+ {
+ int v;
+
+ 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;
+ }
+
+ 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;
+ }
+ }
+ }
+ else
+ mode = numeric_mode;
+ *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
+
+ In addition, a compined form is also allowed, i.e. a decimal mode followed
+ by its symbolic representation. In this case the symbolic representation
+ is given preference.
+
+ Reply
+ -----
+ A0\n on success, E0\n<msg>\n on error.
+
+ Extensions
+ ----------
+ BSD version allows only decimal number as <flags>
+*/
+
+static void
+open_device (char *str)
+{
+ 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);
+
+ 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, E0\n<msg>\n on error.
+*/
+static void
+close_device (void)
+{
+ if (close (device_fd) < 0)
+ rmt_error (errno);
+ else
+ {
+ device_fd = -1;
+ rmt_reply (0);
+ }
+}
+
+/* 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.
+ E0\n<msg>\n on error.
+
+ Extensions
+ ----------
+ 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 }
+ };
+
+static void
+lseek_device (const char *str)
+{
+ 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;
+
+ case '1':
+ whence = SEEK_CUR;
+ break;
+
+ case '2':
+ whence = SEEK_END;
+ break;
+
+ default:
+ rmt_error_message (EINVAL, N_("Seek direction out of range"));
+ return;
+ }
+ }
+ else if (xlat_kw (str, "SEEK_", seek_whence_kw, &whence, (const char **) &p))
+ {
+ rmt_error_message (EINVAL, N_("Invalid seek direction"));
+ return;
+ }
+
+ str = rmt_read ();
+ n = off = strtoumax (str, &p, 10);
+ if (*p)
+ {
+ rmt_error_message (EINVAL, N_("Invalid seek offset"));
+ return;
+ }
+
+ if (n != off || errno == ERANGE)
+ {
+ rmt_error_message (EINVAL, N_("Seek offset out of range"));
+ return;
+ }
+
+ off = lseek (device_fd, off, whence);
+ if (off < 0)
+ rmt_error (errno);
+ else
+ rmt_reply (off);
+}
+
+/* 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: E0\n<msg>\n
+*/
+
+static void
+read_device (const char *str)
+{
+ 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;
+ }
+
+ prepare_record_buffer (size);
+ status = safe_read (device_fd, record_buffer_ptr, size);
+ if (status == SAFE_READ_ERROR)
+ rmt_error (errno);
+ else
+ {
+ rmt_reply (status);
+ full_write (STDOUT_FILENO, record_buffer_ptr, status);
+ }
+}
+
+/* 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: E0\n<msg>\n
+*/
+
+static void
+write_device (const char *str)
+{
+ 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;
+ }
+
+ 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: E0\n<msg>\n
+*/
+
+static 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;
+
+ mtop.mt_count = count;
+ if (mtop.mt_count != count)
+ {
+ 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
+}
+
+/* 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: E0\n<msg>\n
+*/
+
+static void
+status_device (const char *str)
+{
+ if (*str)
+ {
+ rmt_error_message (EINVAL, N_("Unexpected arguments"));
+ return;
+ }
+#ifdef MTIOCGET
+ {
+ struct mtget mtget;
+
+ if (ioctl (device_fd, MTIOCGET, (char *) &mtget) < 0)
+ rmt_error (errno);
+ else
+ {
+ rmt_reply (sizeof (mtget));
+ full_write (STDOUT_FILENO, (char *) &mtget, sizeof (mtget));
+ }
+ }
+#else
+ rmt_error_message (ENOSYS, N_("Operation not supported"));
+#endif
+}
+
+
+
+const char *argp_program_version = "rmt (" PACKAGE_NAME ") " VERSION;
+const char *argp_program_bug_address = "<" PACKAGE_BUGREPORT ">";
+
+static char const doc[] = N_("Manipulate a tape drive, accepting commands from a remote process");
+
+enum {
+ DEBUG_FILE_OPTION = 256
+};
+
+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 }
+};
+
+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:
+ return ARGP_ERR_UNKNOWN;
+ }
+ return 0;
+}
+
+static struct argp argp = {
+ options,
+ parse_opt,
+ NULL,
+ doc,
+ NULL,
+ NULL,
+ NULL
+};
+
+static const char *rmt_authors[] = {
+ "Sergey Poznyakoff",
+ NULL
+};
+
+
+void
+xalloc_die (void)
+{
+ rmt_error (ENOMEM);
+ exit (EXIT_FAILURE);
+}
+
+
+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 (argp_parse (&argp, argc, argv, ARGP_IN_ORDER, &idx, NULL))
+ exit (EXIT_FAILURE);
+ if (idx != argc)
+ {
+ 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 (!stop && (buf = rmt_read ()) != NULL)
+ {
+ switch (buf[0])
+ {
+ case 'C':
+ close_device ();
+ stop = 1;
+ break;
+
+ case 'I':
+ iocop_device (buf + 1);
+ break;
+
+ case 'L':
+ lseek_device (buf + 1);
+ break;
+
+ case 'O':
+ open_device (buf + 1);
+ break;
+
+ case 'R':
+ read_device (buf + 1);
+ break;
+
+ case 'S':
+ status_device (buf + 1);
+ break;
+
+ case 'W':
+ write_device (buf + 1);
+ break;
+
+ default:
+ 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
new file mode 100644
index 00000000..aa873f5d
--- /dev/null
+++ b/scripts/Makefile.in
@@ -0,0 +1,1356 @@
+# 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) 2004, 2006, 2007 Free Software Foundation, Inc.
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@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 = scripts
+DIST_COMMON = $(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/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/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+ $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.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/double-slash-root.m4 $(top_srcdir)/m4/dup.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/exponentd.m4 \
+ $(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fchdir.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/filenamecat.m4 \
+ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
+ $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+ $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
+ $(top_srcdir)/m4/getcwd-abort-bug.m4 \
+ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.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/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/iswblank.m4 \
+ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.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/libunistring-base.m4 \
+ $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
+ $(top_srcdir)/m4/linkat.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/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
+ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
+ $(top_srcdir)/m4/mkdtemp.m4 $(top_srcdir)/m4/mkfifo.m4 \
+ $(top_srcdir)/m4/mkfifoat.m4 $(top_srcdir)/m4/mknod.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/msvc-inval.m4 \
+ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/open.m4 \
+ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \
+ $(top_srcdir)/m4/parse-datetime.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/raise.m4 \
+ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/read.m4 \
+ $(top_srcdir)/m4/readdir.m4 $(top_srcdir)/m4/readlink.m4 \
+ $(top_srcdir)/m4/readlinkat.m4 $(top_srcdir)/m4/realloc.m4 \
+ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
+ $(top_srcdir)/m4/renameat.m4 $(top_srcdir)/m4/rewinddir.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/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
+ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stdalign.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/strtol.m4 \
+ $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
+ $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+ $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
+ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
+ $(top_srcdir)/m4/sys_types_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/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+ $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+ $(top_srcdir)/m4/utimensat.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 =
+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)"
+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)
+pkglibexecdir = @pkglibexecdir@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+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_CHDIR = @GNULIB_CHDIR@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@
+GNULIB_DIRFD = @GNULIB_DIRFD@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
+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_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+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_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
+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_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
+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_GETS = @GNULIB_GETS@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
+GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
+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_MBTOWC = @GNULIB_MBTOWC@
+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_NONBLOCKING = @GNULIB_NONBLOCKING@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
+GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
+GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
+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_REWINDDIR = @GNULIB_REWINDDIR@
+GNULIB_RMDIR = @GNULIB_RMDIR@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SIGACTION = @GNULIB_SIGACTION@
+GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
+GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+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_STRERROR_R = @GNULIB_STRERROR_R@
+GNULIB_STRNCAT = @GNULIB_STRNCAT@
+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_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TIMEGM = @GNULIB_TIMEGM@
+GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNLINK = @GNULIB_UNLINK@
+GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
+GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
+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_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
+GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
+GREP = @GREP@
+HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
+HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
+HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
+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_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_DUP3 = @HAVE_DUP3@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FACCESSAT = @HAVE_FACCESSAT@
+HAVE_FCHDIR = @HAVE_FCHDIR@
+HAVE_FCHMODAT = @HAVE_FCHMODAT@
+HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSTATAT = @HAVE_FSTATAT@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_FUTIMENS = @HAVE_FUTIMENS@
+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_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWBLANK = @HAVE_ISWBLANK@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
+HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
+HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
+HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
+HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
+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_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSLEN = @HAVE_MBSLEN@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMCHR = @HAVE_MEMCHR@
+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_MKSTEMP = @HAVE_MKSTEMP@
+HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
+HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
+HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
+HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
+HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
+HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
+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_SIGSET_T = @HAVE_SIGSET_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_STRINGS_H = @HAVE_STRINGS_H@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRPTIME = @HAVE_STRPTIME@
+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_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+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_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNLINKAT = @HAVE_UNLINKAT@
+HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
+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_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
+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@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+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_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_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_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_SIGNAL_H = @NEXT_SIGNAL_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_SYS_TYPES_H = @NEXT_SYS_TYPES_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_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PU_RMT_PROG = @PU_RMT_PROG@
+RANLIB = @RANLIB@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
+REPLACE_DIRFD = @REPLACE_DIRFD@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_DUP = @REPLACE_DUP@
+REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+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_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
+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_MALLOC = @REPLACE_MALLOC@
+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_MBTOWC = @REPLACE_MBTOWC@
+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_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
+REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
+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_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPNCPY = @REPLACE_STPNCPY@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
+REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNDUP = @REPLACE_STRNDUP@
+REPLACE_STRNLEN = @REPLACE_STRNLEN@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
+REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
+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_WCSWIDTH = @REPLACE_WCSWIDTH@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
+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@
+STDALIGN_H = @STDALIGN_H@
+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@
+gltests_WITNESS = @gltests_WITNESS@
+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@
+lispdir = @lispdir@
+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@
+BACKUP_LIBEXEC_SCRIPTS_LIST = backup.sh dump-remind
+BACKUP_SBIN_SCRIPTS_LIST = backup restore
+libexec_SCRIPTS = @BACKUP_LIBEXEC_SCRIPTS@
+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = backup.sh dump-remind
+sbin_SCRIPTS = @BACKUP_SBIN_SCRIPTS@
+EXTRA_SCRIPTS = tarcat
+EXTRA_DIST = \
+ backup.sh.in\
+ backup.in\
+ restore.in\
+ dump-remind.in\
+ backup-specs
+
+CLEANFILES = backup.sh backup restore dump-remind
+SED_CMD = "s,\@libexecdir\@,$(libexecdir),;\
+ s,\@sysconfdir\@,$(sysconfdir),;\
+ s,\@PACKAGE_NAME\@,$(PACKAGE_NAME),;\
+ s,\@VERSION\@,$(VERSION),;\
+ s,\@PACKAGE_BUGREPORT\@,$(PACKAGE_BUGREPORT),;\
+ s,\@DATE_FORMAT_OK\@,$(DATE_FORMAT_OK),;@BACKUP_SED_COND@"
+
+all: all-am
+
+.SUFFIXES:
+$(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 scripts/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnits scripts/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):
+install-libexecSCRIPTS: $(libexec_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ test -z "$(libexecdir)" || $(MKDIR_P) "$(DESTDIR)$(libexecdir)"
+ @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 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)'; 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 \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | sed 's,^.*/,,;$(transform)'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(libexecdir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
+install-sbinSCRIPTS: $(sbin_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
+ @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 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)'; 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 \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | sed 's,^.*/,,;$(transform)'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(sbindir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+
+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
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS)
+installdirs:
+ for dir in "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(sbindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: 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-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:
+
+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)
+
+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 mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+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
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libexecSCRIPTS uninstall-sbinSCRIPTS
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic 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-libexecSCRIPTS install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-sbinSCRIPTS install-strip \
+ installcheck installcheck-am installcheck-libexecSCRIPTS \
+ installcheck-sbinSCRIPTS installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+ pdf-am ps ps-am uninstall uninstall-am \
+ uninstall-libexecSCRIPTS uninstall-sbinSCRIPTS
+
+
+backup.sh: $(srcdir)/backup.sh.in
+ sed $(SED_CMD) $? > $@
+
+backup: $(srcdir)/backup.in
+ sed $(SED_CMD) $? > $@
+
+restore: $(srcdir)/restore.in
+ sed $(SED_CMD) $? > $@
+
+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/.gitignore b/src/.gitignore
index 42f2fb72..e69de29b 100644
--- a/src/.gitignore
+++ b/src/.gitignore
@@ -1 +0,0 @@
-tar
diff --git a/src/Makefile.in b/src/Makefile.in
new file mode 100644
index 00000000..12eb95fe
--- /dev/null
+++ b/src/Makefile.in
@@ -0,0 +1,1416 @@
+# 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@
+
+# Makefile for GNU tar sources.
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006,
+# 2007, 2009 Free Software Foundation, Inc.
+
+
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@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@
+bin_PROGRAMS = tar$(EXEEXT)
+subdir = src
+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/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/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+ $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.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/double-slash-root.m4 $(top_srcdir)/m4/dup.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/exponentd.m4 \
+ $(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fchdir.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/filenamecat.m4 \
+ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
+ $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+ $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
+ $(top_srcdir)/m4/getcwd-abort-bug.m4 \
+ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.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/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/iswblank.m4 \
+ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.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/libunistring-base.m4 \
+ $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
+ $(top_srcdir)/m4/linkat.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/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
+ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
+ $(top_srcdir)/m4/mkdtemp.m4 $(top_srcdir)/m4/mkfifo.m4 \
+ $(top_srcdir)/m4/mkfifoat.m4 $(top_srcdir)/m4/mknod.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/msvc-inval.m4 \
+ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/open.m4 \
+ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \
+ $(top_srcdir)/m4/parse-datetime.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/raise.m4 \
+ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/read.m4 \
+ $(top_srcdir)/m4/readdir.m4 $(top_srcdir)/m4/readlink.m4 \
+ $(top_srcdir)/m4/readlinkat.m4 $(top_srcdir)/m4/realloc.m4 \
+ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
+ $(top_srcdir)/m4/renameat.m4 $(top_srcdir)/m4/rewinddir.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/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
+ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stdalign.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/strtol.m4 \
+ $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
+ $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+ $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
+ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
+ $(top_srcdir)/m4/sys_types_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/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+ $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+ $(top_srcdir)/m4/utimensat.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 =
+am__installdirs = "$(DESTDIR)$(bindir)"
+PROGRAMS = $(bin_PROGRAMS)
+am_tar_OBJECTS = buffer.$(OBJEXT) checkpoint.$(OBJEXT) \
+ compare.$(OBJEXT) create.$(OBJEXT) delete.$(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 ../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)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = @pkglibexecdir@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+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_CHDIR = @GNULIB_CHDIR@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@
+GNULIB_DIRFD = @GNULIB_DIRFD@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
+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_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+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_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
+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_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
+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_GETS = @GNULIB_GETS@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
+GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
+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_MBTOWC = @GNULIB_MBTOWC@
+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_NONBLOCKING = @GNULIB_NONBLOCKING@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
+GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
+GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
+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_REWINDDIR = @GNULIB_REWINDDIR@
+GNULIB_RMDIR = @GNULIB_RMDIR@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SIGACTION = @GNULIB_SIGACTION@
+GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
+GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+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_STRERROR_R = @GNULIB_STRERROR_R@
+GNULIB_STRNCAT = @GNULIB_STRNCAT@
+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_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TIMEGM = @GNULIB_TIMEGM@
+GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNLINK = @GNULIB_UNLINK@
+GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
+GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
+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_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
+GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
+GREP = @GREP@
+HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
+HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
+HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
+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_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_DUP3 = @HAVE_DUP3@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FACCESSAT = @HAVE_FACCESSAT@
+HAVE_FCHDIR = @HAVE_FCHDIR@
+HAVE_FCHMODAT = @HAVE_FCHMODAT@
+HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSTATAT = @HAVE_FSTATAT@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_FUTIMENS = @HAVE_FUTIMENS@
+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_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWBLANK = @HAVE_ISWBLANK@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
+HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
+HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
+HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
+HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
+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_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSLEN = @HAVE_MBSLEN@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMCHR = @HAVE_MEMCHR@
+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_MKSTEMP = @HAVE_MKSTEMP@
+HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
+HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
+HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
+HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
+HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
+HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
+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_SIGSET_T = @HAVE_SIGSET_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_STRINGS_H = @HAVE_STRINGS_H@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRPTIME = @HAVE_STRPTIME@
+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_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+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_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNLINKAT = @HAVE_UNLINKAT@
+HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
+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_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
+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@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+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_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_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_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_SIGNAL_H = @NEXT_SIGNAL_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_SYS_TYPES_H = @NEXT_SYS_TYPES_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_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PU_RMT_PROG = @PU_RMT_PROG@
+RANLIB = @RANLIB@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
+REPLACE_DIRFD = @REPLACE_DIRFD@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_DUP = @REPLACE_DUP@
+REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+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_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
+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_MALLOC = @REPLACE_MALLOC@
+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_MBTOWC = @REPLACE_MBTOWC@
+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_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
+REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
+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_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPNCPY = @REPLACE_STPNCPY@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
+REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNDUP = @REPLACE_STRNDUP@
+REPLACE_STRNLEN = @REPLACE_STRNLEN@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
+REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
+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_WCSWIDTH = @REPLACE_WCSWIDTH@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
+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@
+STDALIGN_H = @STDALIGN_H@
+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@
+gltests_WITNESS = @gltests_WITNESS@
+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@
+lispdir = @lispdir@
+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@
+noinst_HEADERS = arith.h common.h tar.h
+tar_SOURCES = \
+ buffer.c\
+ checkpoint.c\
+ compare.c\
+ create.c\
+ delete.c\
+ exit.c\
+ extract.c\
+ xheader.c\
+ incremen.c\
+ list.c\
+ misc.c\
+ names.c\
+ sparse.c\
+ suffix.c\
+ system.c\
+ tar.c\
+ transform.c\
+ unlink.c\
+ update.c\
+ utf8.c\
+ warning.c
+
+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) $(LIB_EACCESS)
+all: all-am
+
+.SUFFIXES:
+.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 ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ 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 \
+ *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):
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
+ @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)'; 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)
+
+installcheck-binPROGRAMS: $(bin_PROGRAMS)
+ bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | \
+ sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(bindir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
+tar$(EXEEXT): $(tar_OBJECTS) $(tar_DEPENDENCIES)
+ @rm -f tar$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(tar_OBJECTS) $(tar_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/checkpoint.Po@am__quote@
+@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@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/misc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/names.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sparse.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/suffix.Po@am__quote@
+@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@ $(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@ $(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) '$<'`
+
+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: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ 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: $(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
+check-am: all-am
+check: check-am
+all-am: Makefile $(PROGRAMS) $(HEADERS)
+installdirs:
+ for dir in "$(DESTDIR)$(bindir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: 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-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:
+
+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-binPROGRAMS clean-generic mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+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
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+ clean-generic ctags distclean distclean-compile \
+ distclean-generic distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-binPROGRAMS \
+ 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 installcheck-binPROGRAMS \
+ installdirs maintainer-clean maintainer-clean-generic \
+ 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/tar.morph b/tar.morph
index 0a183d29..4642bfd8 100644
--- a/tar.morph
+++ b/tar.morph
@@ -2,7 +2,6 @@
"name": "tar",
"kind": "chunk",
"configure-commands": [
- "bash bootstrap",
"FORCE_UNSAFE_CONFIGURE=1 ./configure --prefix=/usr --bindir=/bin --libexecdir=/usr/sbin"
],
"build-commands": [
diff --git a/tests/.gitignore b/tests/.gitignore
index c5382d04..e69de29b 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -1,10 +0,0 @@
-atconfig
-atlocal
-package.m4
-testsuite
-testsuite.dir
-testsuite.log
-argcv.c
-argcv.h
-genfile.c
-genfile
diff --git a/tests/Makefile.in b/tests/Makefile.in
new file mode 100644
index 00000000..0fa3f46f
--- /dev/null
+++ b/tests/Makefile.in
@@ -0,0 +1,1485 @@
+# 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@
+
+# Makefile for GNU tar regression tests.
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2001, 2003, 2004, 2005,
+# 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@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@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@
+check_PROGRAMS = genfile$(EXEEXT)
+subdir = tests
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(srcdir)/atlocal.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \
+ $(top_srcdir)/m4/alloca.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/closedir.m4 $(top_srcdir)/m4/closeout.m4 \
+ $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/configmake.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/double-slash-root.m4 $(top_srcdir)/m4/dup.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/exponentd.m4 \
+ $(top_srcdir)/m4/extensions.m4 $(top_srcdir)/m4/fchdir.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/filenamecat.m4 \
+ $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \
+ $(top_srcdir)/m4/fpending.m4 $(top_srcdir)/m4/fseek.m4 \
+ $(top_srcdir)/m4/fseeko.m4 $(top_srcdir)/m4/fstat.m4 \
+ $(top_srcdir)/m4/fstatat.m4 $(top_srcdir)/m4/futimens.m4 \
+ $(top_srcdir)/m4/getcwd-abort-bug.m4 \
+ $(top_srcdir)/m4/getcwd-path-max.m4 $(top_srcdir)/m4/getcwd.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/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/iswblank.m4 \
+ $(top_srcdir)/m4/langinfo_h.m4 $(top_srcdir)/m4/largefile.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/libunistring-base.m4 \
+ $(top_srcdir)/m4/link-follow.m4 $(top_srcdir)/m4/link.m4 \
+ $(top_srcdir)/m4/linkat.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/mbtowc.m4 $(top_srcdir)/m4/memchr.m4 \
+ $(top_srcdir)/m4/mempcpy.m4 $(top_srcdir)/m4/memrchr.m4 \
+ $(top_srcdir)/m4/mkdtemp.m4 $(top_srcdir)/m4/mkfifo.m4 \
+ $(top_srcdir)/m4/mkfifoat.m4 $(top_srcdir)/m4/mknod.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/msvc-inval.m4 \
+ $(top_srcdir)/m4/msvc-nothrow.m4 $(top_srcdir)/m4/multiarch.m4 \
+ $(top_srcdir)/m4/nl_langinfo.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/nocrash.m4 $(top_srcdir)/m4/open.m4 \
+ $(top_srcdir)/m4/openat.m4 $(top_srcdir)/m4/opendir.m4 \
+ $(top_srcdir)/m4/parse-datetime.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/raise.m4 \
+ $(top_srcdir)/m4/rawmemchr.m4 $(top_srcdir)/m4/read.m4 \
+ $(top_srcdir)/m4/readdir.m4 $(top_srcdir)/m4/readlink.m4 \
+ $(top_srcdir)/m4/readlinkat.m4 $(top_srcdir)/m4/realloc.m4 \
+ $(top_srcdir)/m4/regex.m4 $(top_srcdir)/m4/rename.m4 \
+ $(top_srcdir)/m4/renameat.m4 $(top_srcdir)/m4/rewinddir.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/save-cwd.m4 $(top_srcdir)/m4/savedir.m4 \
+ $(top_srcdir)/m4/setenv.m4 $(top_srcdir)/m4/signal_h.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/stdalign.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/strtol.m4 \
+ $(top_srcdir)/m4/strtoul.m4 $(top_srcdir)/m4/strtoull.m4 \
+ $(top_srcdir)/m4/strtoumax.m4 $(top_srcdir)/m4/symlink.m4 \
+ $(top_srcdir)/m4/symlinkat.m4 $(top_srcdir)/m4/sys_socket_h.m4 \
+ $(top_srcdir)/m4/sys_stat_h.m4 $(top_srcdir)/m4/sys_time_h.m4 \
+ $(top_srcdir)/m4/sys_types_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/unlinkdir.m4 $(top_srcdir)/m4/unlocked-io.m4 \
+ $(top_srcdir)/m4/utimbuf.m4 $(top_srcdir)/m4/utimens.m4 \
+ $(top_srcdir)/m4/utimensat.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 = 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 = ../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
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+pkglibexecdir = @pkglibexecdir@
+ACLOCAL = @ACLOCAL@
+ALLOCA = @ALLOCA@
+ALLOCA_H = @ALLOCA_H@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+APPLE_UNIVERSAL_BUILD = @APPLE_UNIVERSAL_BUILD@
+AR = @AR@
+ARFLAGS = @ARFLAGS@
+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_CHDIR = @GNULIB_CHDIR@
+GNULIB_CHOWN = @GNULIB_CHOWN@
+GNULIB_CLOSE = @GNULIB_CLOSE@
+GNULIB_CLOSEDIR = @GNULIB_CLOSEDIR@
+GNULIB_DIRFD = @GNULIB_DIRFD@
+GNULIB_DPRINTF = @GNULIB_DPRINTF@
+GNULIB_DUP = @GNULIB_DUP@
+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_FDATASYNC = @GNULIB_FDATASYNC@
+GNULIB_FDOPEN = @GNULIB_FDOPEN@
+GNULIB_FDOPENDIR = @GNULIB_FDOPENDIR@
+GNULIB_FFLUSH = @GNULIB_FFLUSH@
+GNULIB_FFS = @GNULIB_FFS@
+GNULIB_FFSL = @GNULIB_FFSL@
+GNULIB_FFSLL = @GNULIB_FFSLL@
+GNULIB_FGETC = @GNULIB_FGETC@
+GNULIB_FGETS = @GNULIB_FGETS@
+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_FREAD = @GNULIB_FREAD@
+GNULIB_FREOPEN = @GNULIB_FREOPEN@
+GNULIB_FSCANF = @GNULIB_FSCANF@
+GNULIB_FSEEK = @GNULIB_FSEEK@
+GNULIB_FSEEKO = @GNULIB_FSEEKO@
+GNULIB_FSTAT = @GNULIB_FSTAT@
+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_GETC = @GNULIB_GETC@
+GNULIB_GETCHAR = @GNULIB_GETCHAR@
+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_GETS = @GNULIB_GETS@
+GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@
+GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@
+GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@
+GNULIB_GL_UNISTD_H_GETOPT = @GNULIB_GL_UNISTD_H_GETOPT@
+GNULIB_GRANTPT = @GNULIB_GRANTPT@
+GNULIB_GROUP_MEMBER = @GNULIB_GROUP_MEMBER@
+GNULIB_IMAXABS = @GNULIB_IMAXABS@
+GNULIB_IMAXDIV = @GNULIB_IMAXDIV@
+GNULIB_ISATTY = @GNULIB_ISATTY@
+GNULIB_ISWBLANK = @GNULIB_ISWBLANK@
+GNULIB_ISWCTYPE = @GNULIB_ISWCTYPE@
+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_MBTOWC = @GNULIB_MBTOWC@
+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_NONBLOCKING = @GNULIB_NONBLOCKING@
+GNULIB_OBSTACK_PRINTF = @GNULIB_OBSTACK_PRINTF@
+GNULIB_OBSTACK_PRINTF_POSIX = @GNULIB_OBSTACK_PRINTF_POSIX@
+GNULIB_OPEN = @GNULIB_OPEN@
+GNULIB_OPENAT = @GNULIB_OPENAT@
+GNULIB_OPENDIR = @GNULIB_OPENDIR@
+GNULIB_PCLOSE = @GNULIB_PCLOSE@
+GNULIB_PERROR = @GNULIB_PERROR@
+GNULIB_PIPE = @GNULIB_PIPE@
+GNULIB_PIPE2 = @GNULIB_PIPE2@
+GNULIB_POPEN = @GNULIB_POPEN@
+GNULIB_POSIX_OPENPT = @GNULIB_POSIX_OPENPT@
+GNULIB_PREAD = @GNULIB_PREAD@
+GNULIB_PRINTF = @GNULIB_PRINTF@
+GNULIB_PRINTF_POSIX = @GNULIB_PRINTF_POSIX@
+GNULIB_PTHREAD_SIGMASK = @GNULIB_PTHREAD_SIGMASK@
+GNULIB_PTSNAME = @GNULIB_PTSNAME@
+GNULIB_PTSNAME_R = @GNULIB_PTSNAME_R@
+GNULIB_PUTC = @GNULIB_PUTC@
+GNULIB_PUTCHAR = @GNULIB_PUTCHAR@
+GNULIB_PUTENV = @GNULIB_PUTENV@
+GNULIB_PUTS = @GNULIB_PUTS@
+GNULIB_PWRITE = @GNULIB_PWRITE@
+GNULIB_RAISE = @GNULIB_RAISE@
+GNULIB_RANDOM = @GNULIB_RANDOM@
+GNULIB_RANDOM_R = @GNULIB_RANDOM_R@
+GNULIB_RAWMEMCHR = @GNULIB_RAWMEMCHR@
+GNULIB_READ = @GNULIB_READ@
+GNULIB_READDIR = @GNULIB_READDIR@
+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_REWINDDIR = @GNULIB_REWINDDIR@
+GNULIB_RMDIR = @GNULIB_RMDIR@
+GNULIB_RPMATCH = @GNULIB_RPMATCH@
+GNULIB_SCANDIR = @GNULIB_SCANDIR@
+GNULIB_SCANF = @GNULIB_SCANF@
+GNULIB_SETENV = @GNULIB_SETENV@
+GNULIB_SETHOSTNAME = @GNULIB_SETHOSTNAME@
+GNULIB_SIGACTION = @GNULIB_SIGACTION@
+GNULIB_SIGNAL_H_SIGPIPE = @GNULIB_SIGNAL_H_SIGPIPE@
+GNULIB_SIGPROCMASK = @GNULIB_SIGPROCMASK@
+GNULIB_SLEEP = @GNULIB_SLEEP@
+GNULIB_SNPRINTF = @GNULIB_SNPRINTF@
+GNULIB_SPRINTF_POSIX = @GNULIB_SPRINTF_POSIX@
+GNULIB_STAT = @GNULIB_STAT@
+GNULIB_STDIO_H_NONBLOCKING = @GNULIB_STDIO_H_NONBLOCKING@
+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_STRERROR_R = @GNULIB_STRERROR_R@
+GNULIB_STRNCAT = @GNULIB_STRNCAT@
+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_SYSTEM_POSIX = @GNULIB_SYSTEM_POSIX@
+GNULIB_TIMEGM = @GNULIB_TIMEGM@
+GNULIB_TIME_R = @GNULIB_TIME_R@
+GNULIB_TMPFILE = @GNULIB_TMPFILE@
+GNULIB_TOWCTRANS = @GNULIB_TOWCTRANS@
+GNULIB_TTYNAME_R = @GNULIB_TTYNAME_R@
+GNULIB_UNISTD_H_NONBLOCKING = @GNULIB_UNISTD_H_NONBLOCKING@
+GNULIB_UNISTD_H_SIGPIPE = @GNULIB_UNISTD_H_SIGPIPE@
+GNULIB_UNLINK = @GNULIB_UNLINK@
+GNULIB_UNLINKAT = @GNULIB_UNLINKAT@
+GNULIB_UNLOCKPT = @GNULIB_UNLOCKPT@
+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_VFSCANF = @GNULIB_VFSCANF@
+GNULIB_VPRINTF = @GNULIB_VPRINTF@
+GNULIB_VPRINTF_POSIX = @GNULIB_VPRINTF_POSIX@
+GNULIB_VSCANF = @GNULIB_VSCANF@
+GNULIB_VSNPRINTF = @GNULIB_VSNPRINTF@
+GNULIB_VSPRINTF_POSIX = @GNULIB_VSPRINTF_POSIX@
+GNULIB_WCPCPY = @GNULIB_WCPCPY@
+GNULIB_WCPNCPY = @GNULIB_WCPNCPY@
+GNULIB_WCRTOMB = @GNULIB_WCRTOMB@
+GNULIB_WCSCASECMP = @GNULIB_WCSCASECMP@
+GNULIB_WCSCAT = @GNULIB_WCSCAT@
+GNULIB_WCSCHR = @GNULIB_WCSCHR@
+GNULIB_WCSCMP = @GNULIB_WCSCMP@
+GNULIB_WCSCOLL = @GNULIB_WCSCOLL@
+GNULIB_WCSCPY = @GNULIB_WCSCPY@
+GNULIB_WCSCSPN = @GNULIB_WCSCSPN@
+GNULIB_WCSDUP = @GNULIB_WCSDUP@
+GNULIB_WCSLEN = @GNULIB_WCSLEN@
+GNULIB_WCSNCASECMP = @GNULIB_WCSNCASECMP@
+GNULIB_WCSNCAT = @GNULIB_WCSNCAT@
+GNULIB_WCSNCMP = @GNULIB_WCSNCMP@
+GNULIB_WCSNCPY = @GNULIB_WCSNCPY@
+GNULIB_WCSNLEN = @GNULIB_WCSNLEN@
+GNULIB_WCSNRTOMBS = @GNULIB_WCSNRTOMBS@
+GNULIB_WCSPBRK = @GNULIB_WCSPBRK@
+GNULIB_WCSRCHR = @GNULIB_WCSRCHR@
+GNULIB_WCSRTOMBS = @GNULIB_WCSRTOMBS@
+GNULIB_WCSSPN = @GNULIB_WCSSPN@
+GNULIB_WCSSTR = @GNULIB_WCSSTR@
+GNULIB_WCSTOK = @GNULIB_WCSTOK@
+GNULIB_WCSWIDTH = @GNULIB_WCSWIDTH@
+GNULIB_WCSXFRM = @GNULIB_WCSXFRM@
+GNULIB_WCTOB = @GNULIB_WCTOB@
+GNULIB_WCTOMB = @GNULIB_WCTOMB@
+GNULIB_WCTRANS = @GNULIB_WCTRANS@
+GNULIB_WCTYPE = @GNULIB_WCTYPE@
+GNULIB_WCWIDTH = @GNULIB_WCWIDTH@
+GNULIB_WMEMCHR = @GNULIB_WMEMCHR@
+GNULIB_WMEMCMP = @GNULIB_WMEMCMP@
+GNULIB_WMEMCPY = @GNULIB_WMEMCPY@
+GNULIB_WMEMMOVE = @GNULIB_WMEMMOVE@
+GNULIB_WMEMSET = @GNULIB_WMEMSET@
+GNULIB_WRITE = @GNULIB_WRITE@
+GNULIB__EXIT = @GNULIB__EXIT@
+GREP = @GREP@
+HAVE_ALPHASORT = @HAVE_ALPHASORT@
+HAVE_ATOLL = @HAVE_ATOLL@
+HAVE_BTOWC = @HAVE_BTOWC@
+HAVE_CANONICALIZE_FILE_NAME = @HAVE_CANONICALIZE_FILE_NAME@
+HAVE_CHOWN = @HAVE_CHOWN@
+HAVE_CLOSEDIR = @HAVE_CLOSEDIR@
+HAVE_DECL_DIRFD = @HAVE_DECL_DIRFD@
+HAVE_DECL_ENVIRON = @HAVE_DECL_ENVIRON@
+HAVE_DECL_FCHDIR = @HAVE_DECL_FCHDIR@
+HAVE_DECL_FDATASYNC = @HAVE_DECL_FDATASYNC@
+HAVE_DECL_FDOPENDIR = @HAVE_DECL_FDOPENDIR@
+HAVE_DECL_FPURGE = @HAVE_DECL_FPURGE@
+HAVE_DECL_FSEEKO = @HAVE_DECL_FSEEKO@
+HAVE_DECL_FTELLO = @HAVE_DECL_FTELLO@
+HAVE_DECL_GETDELIM = @HAVE_DECL_GETDELIM@
+HAVE_DECL_GETDOMAINNAME = @HAVE_DECL_GETDOMAINNAME@
+HAVE_DECL_GETLINE = @HAVE_DECL_GETLINE@
+HAVE_DECL_GETLOADAVG = @HAVE_DECL_GETLOADAVG@
+HAVE_DECL_GETLOGIN_R = @HAVE_DECL_GETLOGIN_R@
+HAVE_DECL_GETPAGESIZE = @HAVE_DECL_GETPAGESIZE@
+HAVE_DECL_GETUSERSHELL = @HAVE_DECL_GETUSERSHELL@
+HAVE_DECL_IMAXABS = @HAVE_DECL_IMAXABS@
+HAVE_DECL_IMAXDIV = @HAVE_DECL_IMAXDIV@
+HAVE_DECL_LOCALTIME_R = @HAVE_DECL_LOCALTIME_R@
+HAVE_DECL_MEMMEM = @HAVE_DECL_MEMMEM@
+HAVE_DECL_MEMRCHR = @HAVE_DECL_MEMRCHR@
+HAVE_DECL_OBSTACK_PRINTF = @HAVE_DECL_OBSTACK_PRINTF@
+HAVE_DECL_SETENV = @HAVE_DECL_SETENV@
+HAVE_DECL_SETHOSTNAME = @HAVE_DECL_SETHOSTNAME@
+HAVE_DECL_SNPRINTF = @HAVE_DECL_SNPRINTF@
+HAVE_DECL_STRDUP = @HAVE_DECL_STRDUP@
+HAVE_DECL_STRERROR_R = @HAVE_DECL_STRERROR_R@
+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_TTYNAME_R = @HAVE_DECL_TTYNAME_R@
+HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@
+HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@
+HAVE_DECL_WCTOB = @HAVE_DECL_WCTOB@
+HAVE_DECL_WCWIDTH = @HAVE_DECL_WCWIDTH@
+HAVE_DIRENT_H = @HAVE_DIRENT_H@
+HAVE_DPRINTF = @HAVE_DPRINTF@
+HAVE_DUP2 = @HAVE_DUP2@
+HAVE_DUP3 = @HAVE_DUP3@
+HAVE_EUIDACCESS = @HAVE_EUIDACCESS@
+HAVE_FACCESSAT = @HAVE_FACCESSAT@
+HAVE_FCHDIR = @HAVE_FCHDIR@
+HAVE_FCHMODAT = @HAVE_FCHMODAT@
+HAVE_FCHOWNAT = @HAVE_FCHOWNAT@
+HAVE_FCNTL = @HAVE_FCNTL@
+HAVE_FDATASYNC = @HAVE_FDATASYNC@
+HAVE_FDOPENDIR = @HAVE_FDOPENDIR@
+HAVE_FEATURES_H = @HAVE_FEATURES_H@
+HAVE_FFS = @HAVE_FFS@
+HAVE_FFSL = @HAVE_FFSL@
+HAVE_FFSLL = @HAVE_FFSLL@
+HAVE_FSEEKO = @HAVE_FSEEKO@
+HAVE_FSTATAT = @HAVE_FSTATAT@
+HAVE_FSYNC = @HAVE_FSYNC@
+HAVE_FTELLO = @HAVE_FTELLO@
+HAVE_FTRUNCATE = @HAVE_FTRUNCATE@
+HAVE_FUTIMENS = @HAVE_FUTIMENS@
+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_GRANTPT = @HAVE_GRANTPT@
+HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@
+HAVE_INTTYPES_H = @HAVE_INTTYPES_H@
+HAVE_ISWBLANK = @HAVE_ISWBLANK@
+HAVE_ISWCNTRL = @HAVE_ISWCNTRL@
+HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@
+HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@
+HAVE_LANGINFO_H = @HAVE_LANGINFO_H@
+HAVE_LANGINFO_T_FMT_AMPM = @HAVE_LANGINFO_T_FMT_AMPM@
+HAVE_LANGINFO_YESEXPR = @HAVE_LANGINFO_YESEXPR@
+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_MBRLEN = @HAVE_MBRLEN@
+HAVE_MBRTOWC = @HAVE_MBRTOWC@
+HAVE_MBSINIT = @HAVE_MBSINIT@
+HAVE_MBSLEN = @HAVE_MBSLEN@
+HAVE_MBSNRTOWCS = @HAVE_MBSNRTOWCS@
+HAVE_MBSRTOWCS = @HAVE_MBSRTOWCS@
+HAVE_MEMCHR = @HAVE_MEMCHR@
+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_MKSTEMP = @HAVE_MKSTEMP@
+HAVE_MKSTEMPS = @HAVE_MKSTEMPS@
+HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@
+HAVE_NANOSLEEP = @HAVE_NANOSLEEP@
+HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@
+HAVE_OPENAT = @HAVE_OPENAT@
+HAVE_OPENDIR = @HAVE_OPENDIR@
+HAVE_OS_H = @HAVE_OS_H@
+HAVE_PCLOSE = @HAVE_PCLOSE@
+HAVE_PIPE = @HAVE_PIPE@
+HAVE_PIPE2 = @HAVE_PIPE2@
+HAVE_POPEN = @HAVE_POPEN@
+HAVE_POSIX_OPENPT = @HAVE_POSIX_OPENPT@
+HAVE_POSIX_SIGNALBLOCKING = @HAVE_POSIX_SIGNALBLOCKING@
+HAVE_PREAD = @HAVE_PREAD@
+HAVE_PTHREAD_SIGMASK = @HAVE_PTHREAD_SIGMASK@
+HAVE_PTSNAME = @HAVE_PTSNAME@
+HAVE_PTSNAME_R = @HAVE_PTSNAME_R@
+HAVE_PWRITE = @HAVE_PWRITE@
+HAVE_RAISE = @HAVE_RAISE@
+HAVE_RANDOM = @HAVE_RANDOM@
+HAVE_RANDOM_H = @HAVE_RANDOM_H@
+HAVE_RANDOM_R = @HAVE_RANDOM_R@
+HAVE_RAWMEMCHR = @HAVE_RAWMEMCHR@
+HAVE_READDIR = @HAVE_READDIR@
+HAVE_READLINK = @HAVE_READLINK@
+HAVE_READLINKAT = @HAVE_READLINKAT@
+HAVE_REALPATH = @HAVE_REALPATH@
+HAVE_RENAMEAT = @HAVE_RENAMEAT@
+HAVE_REWINDDIR = @HAVE_REWINDDIR@
+HAVE_RPMATCH = @HAVE_RPMATCH@
+HAVE_SCANDIR = @HAVE_SCANDIR@
+HAVE_SETENV = @HAVE_SETENV@
+HAVE_SETHOSTNAME = @HAVE_SETHOSTNAME@
+HAVE_SIGACTION = @HAVE_SIGACTION@
+HAVE_SIGHANDLER_T = @HAVE_SIGHANDLER_T@
+HAVE_SIGINFO_T = @HAVE_SIGINFO_T@
+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_SIGSET_T = @HAVE_SIGSET_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_STRINGS_H = @HAVE_STRINGS_H@
+HAVE_STRPBRK = @HAVE_STRPBRK@
+HAVE_STRPTIME = @HAVE_STRPTIME@
+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_SIGACTION_SA_SIGACTION = @HAVE_STRUCT_SIGACTION_SA_SIGACTION@
+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_TIMEGM = @HAVE_TIMEGM@
+HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@
+HAVE_UNISTD_H = @HAVE_UNISTD_H@
+HAVE_UNLINKAT = @HAVE_UNLINKAT@
+HAVE_UNLOCKPT = @HAVE_UNLOCKPT@
+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_WCPCPY = @HAVE_WCPCPY@
+HAVE_WCPNCPY = @HAVE_WCPNCPY@
+HAVE_WCRTOMB = @HAVE_WCRTOMB@
+HAVE_WCSCASECMP = @HAVE_WCSCASECMP@
+HAVE_WCSCAT = @HAVE_WCSCAT@
+HAVE_WCSCHR = @HAVE_WCSCHR@
+HAVE_WCSCMP = @HAVE_WCSCMP@
+HAVE_WCSCOLL = @HAVE_WCSCOLL@
+HAVE_WCSCPY = @HAVE_WCSCPY@
+HAVE_WCSCSPN = @HAVE_WCSCSPN@
+HAVE_WCSDUP = @HAVE_WCSDUP@
+HAVE_WCSLEN = @HAVE_WCSLEN@
+HAVE_WCSNCASECMP = @HAVE_WCSNCASECMP@
+HAVE_WCSNCAT = @HAVE_WCSNCAT@
+HAVE_WCSNCMP = @HAVE_WCSNCMP@
+HAVE_WCSNCPY = @HAVE_WCSNCPY@
+HAVE_WCSNLEN = @HAVE_WCSNLEN@
+HAVE_WCSNRTOMBS = @HAVE_WCSNRTOMBS@
+HAVE_WCSPBRK = @HAVE_WCSPBRK@
+HAVE_WCSRCHR = @HAVE_WCSRCHR@
+HAVE_WCSRTOMBS = @HAVE_WCSRTOMBS@
+HAVE_WCSSPN = @HAVE_WCSSPN@
+HAVE_WCSSTR = @HAVE_WCSSTR@
+HAVE_WCSTOK = @HAVE_WCSTOK@
+HAVE_WCSWIDTH = @HAVE_WCSWIDTH@
+HAVE_WCSXFRM = @HAVE_WCSXFRM@
+HAVE_WCTRANS_T = @HAVE_WCTRANS_T@
+HAVE_WCTYPE_H = @HAVE_WCTYPE_H@
+HAVE_WCTYPE_T = @HAVE_WCTYPE_T@
+HAVE_WINSOCK2_H = @HAVE_WINSOCK2_H@
+HAVE_WINT_T = @HAVE_WINT_T@
+HAVE_WMEMCHR = @HAVE_WMEMCHR@
+HAVE_WMEMCMP = @HAVE_WMEMCMP@
+HAVE_WMEMCPY = @HAVE_WMEMCPY@
+HAVE_WMEMMOVE = @HAVE_WMEMMOVE@
+HAVE_WMEMSET = @HAVE_WMEMSET@
+HAVE__BOOL = @HAVE__BOOL@
+HAVE__EXIT = @HAVE__EXIT@
+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@
+LIBUNISTRING_UNITYPES_H = @LIBUNISTRING_UNITYPES_H@
+LIBUNISTRING_UNIWIDTH_H = @LIBUNISTRING_UNIWIDTH_H@
+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_SIGNAL_H = @NEXT_AS_FIRST_DIRECTIVE_SIGNAL_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_SYS_TYPES_H = @NEXT_AS_FIRST_DIRECTIVE_SYS_TYPES_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_SIGNAL_H = @NEXT_SIGNAL_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_SYS_TYPES_H = @NEXT_SYS_TYPES_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_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+POSUB = @POSUB@
+PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
+PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
+PRIPTR_PREFIX = @PRIPTR_PREFIX@
+PRI_MACROS_BROKEN = @PRI_MACROS_BROKEN@
+PTHREAD_H_DEFINES_STRUCT_TIMESPEC = @PTHREAD_H_DEFINES_STRUCT_TIMESPEC@
+PTRDIFF_T_SUFFIX = @PTRDIFF_T_SUFFIX@
+PU_RMT_PROG = @PU_RMT_PROG@
+RANLIB = @RANLIB@
+REPLACE_BTOWC = @REPLACE_BTOWC@
+REPLACE_CALLOC = @REPLACE_CALLOC@
+REPLACE_CANONICALIZE_FILE_NAME = @REPLACE_CANONICALIZE_FILE_NAME@
+REPLACE_CHOWN = @REPLACE_CHOWN@
+REPLACE_CLOSE = @REPLACE_CLOSE@
+REPLACE_CLOSEDIR = @REPLACE_CLOSEDIR@
+REPLACE_DIRFD = @REPLACE_DIRFD@
+REPLACE_DPRINTF = @REPLACE_DPRINTF@
+REPLACE_DUP = @REPLACE_DUP@
+REPLACE_DUP2 = @REPLACE_DUP2@
+REPLACE_FCHOWNAT = @REPLACE_FCHOWNAT@
+REPLACE_FCLOSE = @REPLACE_FCLOSE@
+REPLACE_FCNTL = @REPLACE_FCNTL@
+REPLACE_FDOPEN = @REPLACE_FDOPEN@
+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_GETDOMAINNAME = @REPLACE_GETDOMAINNAME@
+REPLACE_GETGROUPS = @REPLACE_GETGROUPS@
+REPLACE_GETLINE = @REPLACE_GETLINE@
+REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@
+REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@
+REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@
+REPLACE_ISATTY = @REPLACE_ISATTY@
+REPLACE_ISWBLANK = @REPLACE_ISWBLANK@
+REPLACE_ISWCNTRL = @REPLACE_ISWCNTRL@
+REPLACE_ITOLD = @REPLACE_ITOLD@
+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_MALLOC = @REPLACE_MALLOC@
+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_MBTOWC = @REPLACE_MBTOWC@
+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_PTHREAD_SIGMASK = @REPLACE_PTHREAD_SIGMASK@
+REPLACE_PTSNAME_R = @REPLACE_PTSNAME_R@
+REPLACE_PUTENV = @REPLACE_PUTENV@
+REPLACE_PWRITE = @REPLACE_PWRITE@
+REPLACE_RAISE = @REPLACE_RAISE@
+REPLACE_RANDOM_R = @REPLACE_RANDOM_R@
+REPLACE_READ = @REPLACE_READ@
+REPLACE_READLINK = @REPLACE_READLINK@
+REPLACE_REALLOC = @REPLACE_REALLOC@
+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_READ_FUNCS = @REPLACE_STDIO_READ_FUNCS@
+REPLACE_STDIO_WRITE_FUNCS = @REPLACE_STDIO_WRITE_FUNCS@
+REPLACE_STPNCPY = @REPLACE_STPNCPY@
+REPLACE_STRCASESTR = @REPLACE_STRCASESTR@
+REPLACE_STRCHRNUL = @REPLACE_STRCHRNUL@
+REPLACE_STRDUP = @REPLACE_STRDUP@
+REPLACE_STRERROR = @REPLACE_STRERROR@
+REPLACE_STRERROR_R = @REPLACE_STRERROR_R@
+REPLACE_STRNCAT = @REPLACE_STRNCAT@
+REPLACE_STRNDUP = @REPLACE_STRNDUP@
+REPLACE_STRNLEN = @REPLACE_STRNLEN@
+REPLACE_STRSIGNAL = @REPLACE_STRSIGNAL@
+REPLACE_STRSTR = @REPLACE_STRSTR@
+REPLACE_STRTOD = @REPLACE_STRTOD@
+REPLACE_STRTOIMAX = @REPLACE_STRTOIMAX@
+REPLACE_STRTOK_R = @REPLACE_STRTOK_R@
+REPLACE_SYMLINK = @REPLACE_SYMLINK@
+REPLACE_TIMEGM = @REPLACE_TIMEGM@
+REPLACE_TMPFILE = @REPLACE_TMPFILE@
+REPLACE_TOWLOWER = @REPLACE_TOWLOWER@
+REPLACE_TTYNAME_R = @REPLACE_TTYNAME_R@
+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_WCSWIDTH = @REPLACE_WCSWIDTH@
+REPLACE_WCTOB = @REPLACE_WCTOB@
+REPLACE_WCTOMB = @REPLACE_WCTOMB@
+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@
+STDALIGN_H = @STDALIGN_H@
+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@
+gltests_WITNESS = @gltests_WITNESS@
+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@
+lispdir = @lispdir@
+localedir = $(datadir)/locale
+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@
+EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4 star/README star/quicktest.sh
+DISTCLEANFILES = atconfig $(check_SCRIPTS)
+MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
+
+#
+TESTSUITE_AT = \
+ T-empty.at\
+ T-null.at\
+ testsuite.at\
+ append.at\
+ append01.at\
+ append02.at\
+ append03.at\
+ backup01.at\
+ chtype.at\
+ comprec.at\
+ delete01.at\
+ delete02.at\
+ delete03.at\
+ delete04.at\
+ delete05.at\
+ exclude.at\
+ exclude01.at\
+ exclude02.at\
+ exclude03.at\
+ exclude04.at\
+ exclude05.at\
+ exclude06.at\
+ exclude07.at\
+ extrac01.at\
+ extrac02.at\
+ extrac03.at\
+ extrac04.at\
+ extrac05.at\
+ extrac06.at\
+ extrac07.at\
+ extrac08.at\
+ extrac09.at\
+ extrac10.at\
+ extrac11.at\
+ extrac12.at\
+ extrac13.at\
+ extrac14.at\
+ extrac15.at\
+ extrac16.at\
+ extrac17.at\
+ extrac18.at\
+ extrac19.at\
+ filerem01.at\
+ filerem02.at\
+ gzip.at\
+ grow.at\
+ incremental.at\
+ incr01.at\
+ incr02.at\
+ incr03.at\
+ incr04.at\
+ incr05.at\
+ incr06.at\
+ indexfile.at\
+ ignfail.at\
+ label01.at\
+ label02.at\
+ label03.at\
+ label04.at\
+ label05.at\
+ link01.at\
+ link02.at\
+ link03.at\
+ link04.at\
+ listed01.at\
+ listed02.at\
+ listed03.at\
+ listed04.at\
+ long01.at\
+ longv7.at\
+ lustar01.at\
+ lustar02.at\
+ lustar03.at\
+ multiv01.at\
+ multiv02.at\
+ multiv03.at\
+ multiv04.at\
+ multiv05.at\
+ multiv06.at\
+ multiv07.at\
+ multiv08.at\
+ old.at\
+ options.at\
+ options02.at\
+ owner.at\
+ pipe.at\
+ recurse.at\
+ rename01.at\
+ rename02.at\
+ rename03.at\
+ rename04.at\
+ rename05.at\
+ remfiles01.at\
+ remfiles02.at\
+ remfiles03.at\
+ same-order01.at\
+ same-order02.at\
+ shortfile.at\
+ shortupd.at\
+ shortrec.at\
+ sigpipe.at\
+ sparse01.at\
+ sparse02.at\
+ sparse03.at\
+ sparse04.at\
+ sparsemv.at\
+ sparsemvp.at\
+ spmvp00.at\
+ spmvp01.at\
+ spmvp10.at\
+ truncate.at\
+ update.at\
+ update01.at\
+ update02.at\
+ volsize.at\
+ volume.at\
+ verbose.at\
+ verify.at\
+ version.at\
+ xform-h.at\
+ xform01.at\
+ star/gtarfail.at\
+ star/gtarfail2.at\
+ star/multi-fail.at\
+ star/ustar-big-2g.at\
+ star/ustar-big-8g.at\
+ star/pax-big-10g.at
+
+TESTSUITE = $(srcdir)/testsuite
+AUTOTEST = $(AUTOM4TE) --language=autotest
+genfile_SOURCES = genfile.c argcv.c argcv.h
+INCLUDES = -I$(top_srcdir)/gnu -I../gnu -I$(top_srcdir)/gnu -I$(top_srcdir)/lib
+AM_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
+LDADD = ../gnu/libgnu.a $(LIBINTL) $(LIB_CLOCK_GETTIME) $(LIB_EACCESS)
+all: all-am
+
+.SUFFIXES:
+.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 ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ 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 \
+ *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):
+atlocal: $(top_builddir)/config.status $(srcdir)/atlocal.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+
+clean-checkPROGRAMS:
+ -test -z "$(check_PROGRAMS)" || rm -f $(check_PROGRAMS)
+genfile$(EXEEXT): $(genfile_OBJECTS) $(genfile_DEPENDENCIES)
+ @rm -f genfile$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(genfile_OBJECTS) $(genfile_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argcv.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/genfile.Po@am__quote@
+
+.c.o:
+@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@ $(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) '$<'`
+
+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: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ 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: $(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
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-local
+check: check-am
+all-am: Makefile
+installdirs:
+install: 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-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:
+
+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:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-checkPROGRAMS clean-generic clean-local mostlyclean-am
+
+distclean: distclean-am
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+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
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.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 \
+ 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 installcheck-local installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am
+
+
+$(srcdir)/package.m4: $(top_srcdir)/configure.ac
+ { \
+ echo '# Signature of the current package.'; \
+ echo 'm4_define([AT_PACKAGE_NAME], [@PACKAGE_NAME@])'; \
+ echo 'm4_define([AT_PACKAGE_TARNAME], [@PACKAGE_TARNAME@])'; \
+ echo 'm4_define([AT_PACKAGE_VERSION], [@PACKAGE_VERSION@])'; \
+ echo 'm4_define([AT_PACKAGE_STRING], [@PACKAGE_STRING@])'; \
+ echo 'm4_define([AT_PACKAGE_BUGREPORT], [@PACKAGE_BUGREPORT@])'; \
+ } >$(srcdir)/package.m4
+$(TESTSUITE): package.m4 $(TESTSUITE_AT)
+ $(AUTOTEST) -I $(srcdir) testsuite.at -o $@.tmp
+ mv $@.tmp $@
+
+atconfig: $(top_builddir)/config.status
+ cd $(top_builddir) && ./config.status tests/$@
+
+clean-local:
+ test ! -f $(TESTSUITE) || $(SHELL) $(TESTSUITE) --clean
+
+check-local: atconfig atlocal $(TESTSUITE)
+ $(SHELL) $(TESTSUITE) $(TESTSUITEFLAGS)
+
+check-full:
+ FULL_TEST=1 $(MAKE) check
+
+#check_SCRIPTS = tar
+
+# Run the test suite on the *installed* tree.
+installcheck-local:
+ $(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/argcv.c b/tests/argcv.c
new file mode 100644
index 00000000..dfde2ff3
--- /dev/null
+++ b/tests/argcv.c
@@ -0,0 +1,400 @@
+/* argcv.c - simple functions for parsing input based on whitespace
+ 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
+ License as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version.
+
+ This library 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 Lesser General Public
+ 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>
+
+/*
+ * takes a string and splits it into several strings, breaking at ' '
+ * command is the string to split
+ * the number of strings is placed into argc
+ * the split strings are put into argv
+ * returns 0 on success, nonzero on failure
+ */
+
+#define isws(c) ((c)==' '||(c)=='\t'||(c)=='\n')
+#define isdelim(c,delim) ((c)=='"'||strchr(delim,(c))!=NULL)
+
+static int
+argcv_scan (int len, const char *command, const char *delim, const char* cmnt,
+ int *start, int *end, int *save)
+{
+ int i = 0;
+
+ for (;;)
+ {
+ i = *save;
+
+ if (i >= len)
+ return i + 1;
+
+ /* Skip initial whitespace */
+ while (i < len && isws (command[i]))
+ i++;
+ *start = i;
+
+ switch (command[i])
+ {
+ case '"':
+ case '\'':
+ while (++i < len
+ && (command[i] != command[*start]
+ || command[i-1] == '\\'))
+ ;
+ if (i < len) /* found matching quote */
+ break;
+ /*FALLTHRU*/ default:
+ if (isdelim (command[i], delim))
+ break;
+ /* Skip until next whitespace character or end of line. Honor
+ escaped whitespace. */
+ while (++i < len &&
+ !((isws (command[i]) && command[i-1] != '\\')
+ || isdelim (command[i], delim)));
+ i--;
+ break;
+ }
+
+ *end = i;
+ *save = i + 1;
+
+ /* If we have a token, and it starts with a comment character, skip
+ to the newline and restart the token search. */
+ if (*save <= len)
+ {
+ if (cmnt && strchr (cmnt, command[*start]) != NULL)
+ {
+ i = *save;
+ while (i < len && command[i] != '\n')
+ i++;
+
+ *save = i;
+ continue;
+ }
+ }
+ break;
+ }
+ return *save;
+}
+
+static char escape_transtab[] = "\\\\a\ab\bf\fn\nr\rt\t";
+
+int
+argcv_unescape_char (int c)
+{
+ char *p;
+
+ for (p = escape_transtab; *p; p += 2)
+ {
+ if (*p == c)
+ return p[1];
+ }
+ return c;
+}
+
+int
+argcv_escape_char (int c)
+{
+ char *p;
+
+ for (p = escape_transtab + sizeof(escape_transtab) - 2;
+ p > escape_transtab; p -= 2)
+ {
+ if (*p == c)
+ return p[-1];
+ }
+ return -1;
+}
+
+
+static int
+xtonum (const char *src, int base, size_t cnt)
+{
+ int val;
+ char *p;
+ char tmp[4]; /* At most three characters + zero */
+
+ /* Notice: No use to check `cnt'. It should be either 2 or 3 */
+ memcpy (tmp, src, cnt);
+ tmp[cnt] = 0;
+ val = strtoul (tmp, &p, base);
+ return (*p == 0) ? val : -1;
+}
+
+static size_t
+escaped_length (const char *str, int *quote)
+{
+ size_t len = 0;
+
+ for (; *str; str++)
+ {
+ if (*str == ' ')
+ {
+ len++;
+ *quote = 1;
+ }
+ else if (*str == '"')
+ {
+ len += 2;
+ *quote = 1;
+ }
+ else if (isprint ((unsigned char) *str))
+ len++;
+ else if (argcv_escape_char (*str) != -1)
+ len += 2;
+ else
+ len += 4;
+ }
+ return len;
+}
+
+static void
+unescape_copy (char *dst, const char *src, size_t n)
+{
+ int c;
+
+ while (n > 0)
+ {
+ n--;
+ if (*src == '\\')
+ {
+ switch (*++src)
+ {
+ case 'x':
+ case 'X':
+ ++src;
+ --n;
+ if (n == 0)
+ {
+ *dst++ = '\\';
+ *dst++ = src[-1];
+ }
+ else
+ {
+ c = xtonum(src, 16, 2);
+ if (c == -1)
+ {
+ *dst++ = '\\';
+ *dst++ = src[-1];
+ }
+ else
+ {
+ *dst++ = c;
+ src += 2;
+ n -= 2;
+ }
+ }
+ break;
+
+ case '0':
+ ++src;
+ --n;
+ if (n == 0)
+ {
+ *dst++ = '\\';
+ *dst++ = src[-1];
+ }
+ else
+ {
+ c = xtonum(src, 8, 3);
+ if (c == -1)
+ {
+ *dst++ = '\\';
+ *dst++ = src[-1];
+ }
+ else
+ {
+ *dst++ = c;
+ src += 3;
+ n -= 3;
+ }
+ }
+ break;
+
+ default:
+ *dst++ = argcv_unescape_char (*src++);
+ n--;
+ }
+ }
+ else
+ {
+ *dst++ = *src++;
+ }
+ }
+ *dst = 0;
+}
+
+static void
+escape_copy (char *dst, const char *src)
+{
+ for (; *src; src++)
+ {
+ if (*src == '"')
+ {
+ *dst++ = '\\';
+ *dst++ = '"';
+ }
+ else if (*src != '\t' && isprint ((unsigned char) *src))
+ *dst++ = *src;
+ else
+ {
+ int c = argcv_escape_char (*src);
+ *dst++ = '\\';
+ if (c != -1)
+ *dst++ = c;
+ else
+ {
+ char tmp[4];
+ snprintf (tmp, sizeof tmp, "%03o", *(unsigned char*)src);
+ memcpy (dst, tmp, 3);
+ dst += 3;
+ }
+ }
+ }
+}
+
+int
+argcv_get (const char *command, const char *delim, const char* cmnt,
+ int *argc, char ***argv)
+{
+ int len = strlen (command);
+ int i = 0;
+ int start, end, save;
+
+ *argv = NULL;
+
+ /* Count number of arguments */
+ *argc = 0;
+ save = 0;
+
+ while (argcv_scan (len, command, delim, cmnt, &start, &end, &save) <= len)
+ (*argc)++;
+
+ *argv = calloc ((*argc + 1), sizeof (char *));
+
+ i = 0;
+ save = 0;
+ for (i = 0; i < *argc; i++)
+ {
+ int n;
+ argcv_scan (len, command, delim, cmnt, &start, &end, &save);
+
+ if ((command[start] == '"' || command[end] == '\'')
+ && command[end] == command[start])
+ {
+ start++;
+ end--;
+ }
+ n = end - start + 1;
+ (*argv)[i] = calloc (n+1, sizeof (char));
+ if ((*argv)[i] == NULL)
+ return 1;
+ unescape_copy ((*argv)[i], &command[start], n);
+ (*argv)[i][n] = 0;
+ }
+ (*argv)[i] = NULL;
+ return 0;
+}
+
+/*
+ * frees all elements of an argv array
+ * argc is the number of elements
+ * argv is the array
+ */
+int
+argcv_free (int argc, char **argv)
+{
+ while (--argc >= 0)
+ if (argv[argc])
+ free (argv[argc]);
+ free (argv);
+ return 1;
+}
+
+/* Take a argv an make string separated by ' '. */
+
+int
+argcv_string (int argc, char **argv, char **pstring)
+{
+ size_t i, j, len;
+ char *buffer;
+
+ /* No need. */
+ if (pstring == NULL)
+ return 1;
+
+ buffer = malloc (1);
+ if (buffer == NULL)
+ return 1;
+ *buffer = '\0';
+
+ for (len = i = j = 0; i < argc; i++)
+ {
+ int quote = 0;
+ int toklen;
+
+ toklen = escaped_length (argv[i], &quote);
+
+ len += toklen + 2;
+ if (quote)
+ len += 2;
+
+ buffer = realloc (buffer, len);
+ if (buffer == NULL)
+ return 1;
+
+ if (i != 0)
+ buffer[j++] = ' ';
+ if (quote)
+ buffer[j++] = '"';
+ escape_copy (buffer + j, argv[i]);
+ j += toklen;
+ if (quote)
+ buffer[j++] = '"';
+ }
+
+ for (; j > 0 && isspace ((unsigned char) buffer[j - 1]); j--)
+ ;
+ buffer[j] = 0;
+ if (pstring)
+ *pstring = buffer;
+ return 0;
+}
+
+#if 0
+char *command = "set prompt=\"& \a\\\"\" \\x25\\0145\\098\\ta";
+
+main(int xargc, char **xargv)
+{
+ int i, argc;
+ char **argv;
+ char *s;
+
+ argcv_get (xargv[1] ? xargv[1]:command, "=", "#", &argc, &argv);
+ printf ("%d args:\n", argc);
+ for (i = 0; i < argc; i++)
+ printf ("%s\n", argv[i]);
+ printf ("===\n");
+ argcv_string (argc, argv, &s);
+ printf ("%s\n", s);
+}
+#endif
diff --git a/tests/argcv.h b/tests/argcv.h
new file mode 100644
index 00000000..48637fbd
--- /dev/null
+++ b/tests/argcv.h
@@ -0,0 +1,50 @@
+/* GNU Mailutils -- a suite of utilities for electronic mail
+ Copyright (C) 1999, 2000, 2001, 2007 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
+ License as published by the Free Software Foundation; either
+ version 3 of the License, or (at your option) any later version.
+
+ This library 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 Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */
+
+#ifndef _ARGCV_H
+#define _ARGCV_H 1
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <string.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef __P
+# if defined PROTOTYPES || (defined __STDC__ && __STDC__)
+# define __P(args) args
+# else
+# define __P(args) ()
+# endif
+#endif /*__P */
+
+extern int argcv_get __P ((const char *command, const char *delim,
+ const char* cmnt,
+ int *argc, char ***argv));
+extern int argcv_string __P ((int argc, char **argv, char **string));
+extern int argcv_free __P ((int argc, char **argv));
+extern int argcv_unescape_char __P((int c));
+extern int argcv_escape_char __P((int c));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ARGCV_H */
diff --git a/tests/genfile.c b/tests/genfile.c
new file mode 100644
index 00000000..8541be6c
--- /dev/null
+++ b/tests/genfile.c
@@ -0,0 +1,910 @@
+/* Generate a file containing some preset patterns.
+ Print statistics for existing files.
+
+ Copyright (C) 1995, 1996, 1997, 2001, 2003, 2004, 2005, 2006, 2007,
+ 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.
+
+ This 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 <signal.h>
+#include <stdarg.h>
+#include <argmatch.h>
+#include <argp.h>
+#include <argcv.h>
+#include <parse-datetime.h>
+#include <inttostr.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+#define obstack_chunk_alloc malloc
+#define obstack_chunk_free free
+#include <obstack.h>
+
+#ifndef EXIT_SUCCESS
+# define EXIT_SUCCESS 0
+#endif
+#ifndef EXIT_FAILURE
+# define EXIT_FAILURE 1
+#endif
+
+#if ! defined SIGCHLD && defined SIGCLD
+# define SIGCHLD SIGCLD
+#endif
+
+enum pattern
+{
+ DEFAULT_PATTERN,
+ ZEROS_PATTERN
+};
+
+/* The name this program was run with. */
+const char *program_name;
+
+/* Name of file to generate */
+static char *file_name;
+
+/* Name of the file-list file: */
+static char *files_from;
+static char filename_terminator = '\n';
+
+/* Length of file to generate. */
+static off_t file_length = 0;
+static off_t seek_offset = 0;
+
+/* Pattern to generate. */
+static enum pattern pattern = DEFAULT_PATTERN;
+
+/* Next checkpoint number */
+size_t checkpoint;
+
+enum genfile_mode
+ {
+ mode_generate,
+ mode_sparse,
+ mode_stat,
+ mode_exec
+ };
+
+enum genfile_mode mode = mode_generate;
+
+#define DEFAULT_STAT_FORMAT \
+ "name,dev,ino,mode,nlink,uid,gid,size,blksize,blocks,atime,mtime,ctime"
+
+/* Format for --stat option */
+static char *stat_format = DEFAULT_STAT_FORMAT;
+
+/* Size of a block for sparse file */
+size_t block_size = 512;
+
+/* Block buffer for sparse file */
+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;
+
+/* Verbose mode */
+int verbose;
+
+const char *argp_program_version = "genfile (" PACKAGE ") " VERSION;
+const char *argp_program_bug_address = "<" PACKAGE_BUGREPORT ">";
+static char doc[] = N_("genfile manipulates data files for GNU paxutils test suite.\n"
+"OPTIONS are:\n");
+
+#define OPT_CHECKPOINT 256
+#define OPT_TOUCH 257
+#define OPT_APPEND 258
+#define OPT_TRUNCATE 259
+#define OPT_EXEC 260
+#define OPT_DATE 261
+#define OPT_VERBOSE 262
+#define OPT_SEEK 263
+#define OPT_UNLINK 264
+
+static struct argp_option options[] = {
+#define GRP 0
+ {NULL, 0, NULL, 0,
+ N_("File creation options:"), GRP},
+ {"length", 'l', N_("SIZE"), 0,
+ N_("Create file of the given SIZE"), GRP+1 },
+ {"file", 'f', N_("NAME"), 0,
+ N_("Write to file NAME, instead of standard output"), GRP+1},
+ {"files-from", 'T', N_("FILE"), 0,
+ N_("Read file names from FILE"), GRP+1},
+ {"null", '0', NULL, 0,
+ N_("-T reads null-terminated names"), GRP+1},
+ {"pattern", 'p', N_("PATTERN"), 0,
+ N_("Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'"),
+ GRP+1 },
+ {"block-size", 'b', N_("SIZE"), 0,
+ N_("Size of a block for sparse file"), GRP+1},
+ {"sparse", 's', NULL, 0,
+ N_("Generate sparse file. Rest of the command line gives the file map."),
+ GRP+1 },
+ {"seek", OPT_SEEK, N_("OFFSET"), 0,
+ N_("Seek to the given offset before writing data"),
+ GRP+1 },
+
+#undef GRP
+#define GRP 10
+ {NULL, 0, NULL, 0,
+ N_("File statistics options:"), GRP},
+
+ {"stat", 'S', N_("FORMAT"), OPTION_ARG_OPTIONAL,
+ N_("Print contents of struct stat for each given file. Default FORMAT is: ")
+ DEFAULT_STAT_FORMAT,
+ GRP+1 },
+
+#undef GRP
+#define GRP 20
+ {NULL, 0, NULL, 0,
+ N_("Synchronous execution options:"), GRP},
+
+ {"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"),
+ GRP+1 },
+ {"date", OPT_DATE, N_("STRING"), 0,
+ N_("Set date for next --touch option"),
+ GRP+1 },
+ {"verbose", OPT_VERBOSE, NULL, 0,
+ N_("Display executed checkpoints and exit status of COMMAND"),
+ GRP+1 },
+#undef GRP
+#define GRP 30
+ {NULL, 0, NULL, 0,
+ N_("Synchronous execution actions. These are executed when checkpoint number given by --checkpoint option is reached."), GRP},
+
+ {"cut", OPT_TRUNCATE, N_("FILE"), 0,
+ N_("Truncate FILE to the size specified by previous --length option (or 0, if it is not given)"),
+ GRP+1 },
+ {"truncate", 0, NULL, OPTION_ALIAS, NULL, GRP+1 },
+ {"append", OPT_APPEND, N_("FILE"), 0,
+ N_("Append SIZE bytes to FILE. SIZE is given by previous --length option."),
+ GRP+1 },
+ {"touch", OPT_TOUCH, N_("FILE"), 0,
+ N_("Update the access and modification times of FILE"),
+ GRP+1 },
+ {"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, }
+};
+
+static char const * const pattern_args[] = { "default", "zeros", 0 };
+static enum pattern const pattern_types[] = {DEFAULT_PATTERN, ZEROS_PATTERN};
+
+static int
+xlat_suffix (off_t *vp, const char *p)
+{
+ off_t val = *vp;
+
+ if (p[1])
+ return 1;
+ switch (p[0])
+ {
+ case 'g':
+ case 'G':
+ *vp *= 1024;
+
+ case 'm':
+ case 'M':
+ *vp *= 1024;
+
+ case 'k':
+ case 'K':
+ *vp *= 1024;
+ break;
+
+ default:
+ return 1;
+ }
+ return *vp <= val;
+}
+
+static off_t
+get_size (const char *str, int allow_zero)
+{
+ const char *p;
+ off_t v = 0;
+
+ for (p = str; *p; p++)
+ {
+ int digit = *p - '0';
+ off_t x = v * 10;
+ if (9 < (unsigned) digit)
+ {
+ if (xlat_suffix (&v, p))
+ error (EXIT_FAILURE, 0, _("Invalid size: %s"), str);
+ else
+ break;
+ }
+ else if (x / 10 != v)
+ error (EXIT_FAILURE, 0, _("Number out of allowed range: %s"), str);
+ v = x + digit;
+ if (v < 0)
+ error (EXIT_FAILURE, 0, _("Negative size: %s"), str);
+ }
+ return v;
+}
+
+void
+verify_file (char *file_name)
+{
+ if (file_name)
+ {
+ struct stat st;
+
+ if (stat (file_name, &st))
+ error (0, errno, _("stat(%s) failed"), file_name);
+
+ if (st.st_size != file_length + seek_offset)
+ error (1, 0, _("requested file length %lu, actual %lu"),
+ (unsigned long)st.st_size, (unsigned long)file_length);
+
+ if (mode == mode_sparse && !ST_IS_SPARSE (st))
+ error (1, 0, _("created file is not sparse"));
+ }
+}
+
+struct action
+{
+ struct action *next;
+ size_t checkpoint;
+ int action;
+ char *name;
+ off_t size;
+ enum pattern pattern;
+ struct timespec ts;
+};
+
+static struct action *action_list;
+
+void
+reg_action (int action, char *arg)
+{
+ struct action *act = xmalloc (sizeof (*act));
+ act->checkpoint = checkpoint;
+ act->action = action;
+ act->pattern = pattern;
+ act->ts = touch_time;
+ act->size = file_length;
+ act->name = arg;
+ act->next = action_list;
+ action_list = act;
+}
+
+static error_t
+parse_opt (int key, char *arg, struct argp_state *state)
+{
+ switch (key)
+ {
+ case '0':
+ filename_terminator = 0;
+ break;
+
+ case 'f':
+ file_name = arg;
+ break;
+
+ case 'l':
+ file_length = get_size (arg, 1);
+ break;
+
+ case 'p':
+ pattern = XARGMATCH ("--pattern", arg, pattern_args, pattern_types);
+ break;
+
+ case 'b':
+ block_size = get_size (arg, 0);
+ break;
+
+ case 's':
+ mode = mode_sparse;
+ break;
+
+ case 'S':
+ mode = mode_stat;
+ if (arg)
+ stat_format = arg;
+ break;
+
+ case 'r':
+ mode = mode_exec;
+ if (arg)
+ {
+ argcv_get (arg, "", NULL, &exec_argc, &exec_argv);
+ checkpoint_option = "--checkpoint";
+ }
+ break;
+
+ case 'T':
+ files_from = arg;
+ break;
+
+ case OPT_SEEK:
+ seek_offset = get_size (arg, 0);
+ break;
+
+ case OPT_CHECKPOINT:
+ {
+ char *p;
+
+ checkpoint = strtoul (arg, &p, 0);
+ if (*p)
+ argp_error (state, _("Error parsing number near `%s'"), p);
+ }
+ break;
+
+ case OPT_DATE:
+ if (! parse_datetime (&touch_time, arg, NULL))
+ argp_error (state, _("Unknown date format"));
+ break;
+
+ case OPT_APPEND:
+ case OPT_TRUNCATE:
+ case OPT_TOUCH:
+ case OPT_EXEC:
+ case OPT_UNLINK:
+ reg_action (key, arg);
+ break;
+
+ case OPT_VERBOSE:
+ verbose++;
+ break;
+
+ default:
+ return ARGP_ERR_UNKNOWN;
+ }
+ return 0;
+}
+
+static struct argp argp = {
+ options,
+ parse_opt,
+ N_("[ARGS...]"),
+ doc,
+ NULL,
+ NULL,
+ NULL
+};
+
+
+void
+fill (FILE *fp, off_t length, enum pattern pattern)
+{
+ off_t i;
+
+ switch (pattern)
+ {
+ case DEFAULT_PATTERN:
+ for (i = 0; i < length; i++)
+ fputc (i & 255, fp);
+ break;
+
+ case ZEROS_PATTERN:
+ for (i = 0; i < length; i++)
+ fputc (0, fp);
+ break;
+ }
+}
+
+/* Generate Mode: usual files */
+static void
+generate_simple_file (char *filename)
+{
+ FILE *fp;
+
+ if (filename)
+ {
+ fp = fopen (filename, seek_offset ? "rb+" : "wb");
+ if (!fp)
+ error (EXIT_FAILURE, errno, _("cannot open `%s'"), filename);
+ }
+ else
+ fp = stdout;
+
+ if (fseeko (fp, seek_offset, 0))
+ error (EXIT_FAILURE, errno, "%s", _("cannot seek"));
+
+ fill (fp, file_length, pattern);
+
+ fclose (fp);
+}
+
+/* A simplified version of the same function from tar */
+int
+read_name_from_file (FILE *fp, struct obstack *stk)
+{
+ int c;
+ size_t counter = 0;
+
+ for (c = getc (fp); c != EOF && c != filename_terminator; c = getc (fp))
+ {
+ if (c == 0)
+ error (EXIT_FAILURE, 0, _("file name contains null character"));
+ obstack_1grow (stk, c);
+ counter++;
+ }
+
+ obstack_1grow (stk, 0);
+
+ return (counter == 0 && c == EOF);
+}
+
+void
+generate_files_from_list ()
+{
+ FILE *fp = strcmp (files_from, "-") ? fopen (files_from, "rb") : stdin;
+ struct obstack stk;
+
+ if (!fp)
+ error (EXIT_FAILURE, errno, _("cannot open `%s'"), files_from);
+
+ obstack_init (&stk);
+ while (!read_name_from_file (fp, &stk))
+ {
+ char *name = obstack_finish (&stk);
+ generate_simple_file (name);
+ verify_file (name);
+ obstack_free (&stk, name);
+ }
+ fclose (fp);
+ obstack_free (&stk, NULL);
+}
+
+
+/* Generate Mode: sparse files */
+
+static void
+mkhole (int fd, off_t displ)
+{
+ if (lseek (fd, displ, SEEK_CUR) == -1)
+ error (EXIT_FAILURE, errno, "lseek");
+ ftruncate (fd, lseek (fd, 0, SEEK_CUR));
+}
+
+static void
+mksparse (int fd, off_t displ, char *marks)
+{
+ if (lseek (fd, displ, SEEK_CUR) == -1)
+ error (EXIT_FAILURE, errno, "lseek");
+
+ for (; *marks; marks++)
+ {
+ memset (buffer, *marks, block_size);
+ if (write (fd, buffer, block_size) != block_size)
+ error (EXIT_FAILURE, errno, "write");
+ }
+}
+
+static void
+generate_sparse_file (int argc, char **argv)
+{
+ int i;
+ int fd;
+ int flags = O_CREAT | O_RDWR | O_BINARY;
+
+ if (!file_name)
+ error (EXIT_FAILURE, 0,
+ _("cannot generate sparse files on standard output, use --file option"));
+ if (!seek_offset)
+ flags |= O_TRUNC;
+ fd = open (file_name, flags, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+ if (fd < 0)
+ error (EXIT_FAILURE, errno, _("cannot open `%s'"), file_name);
+
+ buffer = xmalloc (block_size);
+
+ file_length = 0;
+
+ for (i = 0; i < argc; i += 2)
+ {
+ off_t displ = get_size (argv[i], 1);
+ file_length += displ;
+
+ if (i == argc-1)
+ {
+ mkhole (fd, displ);
+ break;
+ }
+ else
+ {
+ file_length += block_size * strlen (argv[i+1]);
+ mksparse (fd, displ, argv[i+1]);
+ }
+ }
+
+ close (fd);
+}
+
+
+/* Status Mode */
+
+void
+print_time (time_t t)
+{
+ char buf[20]; /* ccyy-mm-dd HH:MM:SS\0 */
+ strftime (buf, sizeof buf, "%Y-%m-%d %H:%M:%S", gmtime (&t));
+ printf ("%s ", buf);
+}
+
+void
+print_stat (const char *name)
+{
+ char *fmt, *p;
+ struct stat st;
+ char buf[UINTMAX_STRSIZE_BOUND];
+
+ if (stat (name, &st))
+ {
+ error (0, errno, _("stat(%s) failed"), name);
+ return;
+ }
+
+ fmt = strdup (stat_format);
+ for (p = strtok (fmt, ","); p; )
+ {
+ if (memcmp (p, "st_", 3) == 0)
+ p += 3;
+ if (strcmp (p, "name") == 0)
+ printf ("%s", name);
+ else if (strcmp (p, "dev") == 0)
+ printf ("%lu", (unsigned long) st.st_dev);
+ else if (strcmp (p, "ino") == 0)
+ printf ("%lu", (unsigned long) st.st_ino);
+ else if (strncmp (p, "mode", 4) == 0)
+ {
+ unsigned val = st.st_mode;
+
+ if (ispunct ((unsigned char) p[4]))
+ {
+ char *q;
+
+ val &= strtoul (p + 5, &q, 8);
+ if (*q)
+ {
+ printf ("\n");
+ error (EXIT_FAILURE, 0, _("incorrect mask (near `%s')"), q);
+ }
+ }
+ else if (p[4])
+ {
+ printf ("\n");
+ error (EXIT_FAILURE, 0, _("Unknown field `%s'"), p);
+ }
+ printf ("%0o", val);
+ }
+ else if (strcmp (p, "nlink") == 0)
+ printf ("%lu", (unsigned long) st.st_nlink);
+ else if (strcmp (p, "uid") == 0)
+ printf ("%ld", (long unsigned) st.st_uid);
+ else if (strcmp (p, "gid") == 0)
+ printf ("%lu", (unsigned long) st.st_gid);
+ else if (strcmp (p, "size") == 0)
+ printf ("%s", umaxtostr (st.st_size, buf));
+ else if (strcmp (p, "blksize") == 0)
+ printf ("%s", umaxtostr (st.st_blksize, buf));
+ else if (strcmp (p, "blocks") == 0)
+ printf ("%s", umaxtostr (st.st_blocks, buf));
+ else if (strcmp (p, "atime") == 0)
+ printf ("%lu", (unsigned long) st.st_atime);
+ else if (strcmp (p, "atimeH") == 0)
+ print_time (st.st_atime);
+ else if (strcmp (p, "mtime") == 0)
+ printf ("%lu", (unsigned long) st.st_mtime);
+ else if (strcmp (p, "mtimeH") == 0)
+ print_time (st.st_mtime);
+ else if (strcmp (p, "ctime") == 0)
+ printf ("%lu", (unsigned long) st.st_ctime);
+ else if (strcmp (p, "ctimeH") == 0)
+ print_time (st.st_ctime);
+ else if (strcmp (p, "sparse") == 0)
+ printf ("%d", ST_IS_SPARSE (st));
+ else
+ {
+ printf ("\n");
+ error (EXIT_FAILURE, 0, _("Unknown field `%s'"), p);
+ }
+ p = strtok (NULL, ",");
+ if (p)
+ printf (" ");
+ }
+ printf ("\n");
+ free (fmt);
+}
+
+
+/* Exec Mode */
+
+void
+exec_checkpoint (struct action *p)
+{
+ if (verbose)
+ printf ("processing checkpoint %lu\n", (unsigned long) p->checkpoint);
+ switch (p->action)
+ {
+ case OPT_TOUCH:
+ {
+ struct timespec ts[2];
+
+ ts[0] = ts[1] = p->ts;
+ if (utimensat (AT_FDCWD, p->name, ts, 0) != 0)
+ {
+ error (0, errno, _("cannot set time on `%s'"), p->name);
+ break;
+ }
+ }
+ break;
+
+ case OPT_APPEND:
+ {
+ FILE *fp = fopen (p->name, "ab");
+ if (!fp)
+ {
+ error (0, errno, _("cannot open `%s'"), p->name);
+ break;
+ }
+
+ fill (fp, p->size, p->pattern);
+ fclose (fp);
+ }
+ break;
+
+ case OPT_TRUNCATE:
+ {
+ int fd = open (p->name, O_RDWR | O_BINARY);
+ if (fd == -1)
+ {
+ error (0, errno, _("cannot open `%s'"), p->name);
+ break;
+ }
+ ftruncate (fd, p->size);
+ close (fd);
+ }
+ break;
+
+ case OPT_EXEC:
+ system (p->name);
+ break;
+
+ case OPT_UNLINK:
+ if (unlink (p->name))
+ error (0, errno, _("cannot unlink `%s'"), p->name);
+ break;
+
+ default:
+ abort ();
+ }
+}
+
+void
+process_checkpoint (size_t n)
+{
+ struct action *p, *prev = NULL;
+
+ for (p = action_list; p; )
+ {
+ struct action *next = p->next;
+
+ if (p->checkpoint <= n)
+ {
+ exec_checkpoint (p);
+ /* Remove the item from the list */
+ if (prev)
+ prev->next = next;
+ else
+ action_list = next;
+ free (p);
+ }
+ else
+ prev = p;
+
+ p = next;
+ }
+}
+
+#define CHECKPOINT_TEXT "Write checkpoint"
+
+void
+exec_command (void)
+{
+ int status;
+ pid_t pid;
+ int fd[2];
+ char *p;
+ FILE *fp;
+ char buf[128];
+
+ /* Insert --checkpoint option.
+ FIXME: This assumes that exec_argv does not use traditional tar options
+ (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. */
+ signal (SIGCHLD, SIG_DFL);
+#endif
+
+ pipe (fd);
+
+ pid = fork ();
+ if (pid == -1)
+ error (EXIT_FAILURE, errno, "fork");
+
+ if (pid == 0)
+ {
+ /* Child */
+
+ /* Pipe stderr */
+ if (fd[1] != 2)
+ dup2 (fd[1], 2);
+ close (fd[0]);
+
+ /* Make sure POSIX locale is used */
+ setenv ("LC_ALL", "POSIX", 1);
+
+ execvp (exec_argv[0], exec_argv);
+ error (EXIT_FAILURE, errno, "execvp %s", exec_argv[0]);
+ }
+
+ /* Master */
+ close (fd[1]);
+ fp = fdopen (fd[0], "rb");
+ if (fp == NULL)
+ error (EXIT_FAILURE, errno, "fdopen");
+
+ while ((p = fgets (buf, sizeof buf, fp)))
+ {
+ while (*p && !isspace ((unsigned char) *p) && *p != ':')
+ p++;
+
+ if (*p == ':')
+ {
+ for (p++; *p && isspace ((unsigned char) *p); p++)
+ ;
+
+ if (*p
+ && memcmp (p, CHECKPOINT_TEXT, sizeof CHECKPOINT_TEXT - 1) == 0)
+ {
+ char *end;
+ size_t n = strtoul (p + sizeof CHECKPOINT_TEXT - 1, &end, 10);
+ if (!(*end && !isspace ((unsigned char) *end)))
+ {
+ process_checkpoint (n);
+ continue;
+ }
+ }
+ }
+ fprintf (stderr, "%s", buf);
+ }
+
+ /* Collect exit status */
+ waitpid (pid, &status, 0);
+
+ if (verbose)
+ {
+ if (WIFEXITED (status))
+ {
+ if (WEXITSTATUS (status) == 0)
+ printf (_("Command exited successfully\n"));
+ else
+ printf (_("Command failed with status %d\n"),
+ WEXITSTATUS (status));
+ }
+ else if (WIFSIGNALED (status))
+ printf (_("Command terminated on signal %d\n"), WTERMSIG (status));
+ else if (WIFSTOPPED (status))
+ printf (_("Command stopped on signal %d\n"), WSTOPSIG (status));
+#ifdef WCOREDUMP
+ else if (WCOREDUMP (status))
+ printf (_("Command dumped core\n"));
+#endif
+ else
+ printf(_("Command terminated\n"));
+ }
+
+ if (WIFEXITED (status))
+ exit (WEXITSTATUS (status));
+ exit (EXIT_FAILURE);
+}
+
+int
+main (int argc, char **argv)
+{
+ int index;
+
+ program_name = argv[0];
+ setlocale (LC_ALL, "");
+ bindtextdomain (PACKAGE, LOCALEDIR);
+ textdomain (PACKAGE);
+
+ parse_datetime (&touch_time, "now", NULL);
+
+ /* Decode command options. */
+
+ if (argp_parse (&argp, argc, argv, 0, &index, NULL))
+ exit (EXIT_FAILURE);
+
+ argc -= index;
+ argv += index;
+
+ switch (mode)
+ {
+ case mode_stat:
+ if (argc == 0)
+ error (EXIT_FAILURE, 0, _("--stat requires file names"));
+
+ while (argc--)
+ print_stat (*argv++);
+ break;
+
+ case mode_sparse:
+ generate_sparse_file (argc, argv);
+ verify_file (file_name);
+ break;
+
+ case mode_generate:
+ if (argc)
+ error (EXIT_FAILURE, 0, _("too many arguments"));
+ if (files_from)
+ generate_files_from_list ();
+ else
+ {
+ generate_simple_file (file_name);
+ verify_file (file_name);
+ }
+ 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;
+
+ default:
+ /* Just in case */
+ abort ();
+ }
+ exit (EXIT_SUCCESS);
+}